Daily bump.
[gcc.git] / gcc / ChangeLog
1 2020-11-29 Jan Hubicka <jh@suse.cz>
2
3 * ipa-modref.c (ipa_merge_modref_summary_after_inlining): Fix
4 handling of ignore_stores.
5
6 2020-11-29 Jan Hubicka <jh@suse.cz>
7
8 PR jit/97867
9 * symtab-thunks.h (thunk_info::release): Use ggc_delete.
10
11 2020-11-29 Martin Sebor <msebor@redhat.com>
12
13 PR middle-end/92936
14 PR middle-end/92940
15 PR middle-end/89428
16 * builtins.c (access_ref::access_ref): Initialize member.
17 (access_ref::phi): New function.
18 (access_ref::get_ref): New function.
19 (access_ref::add_offset): Remove duplicate assignment.
20 (maybe_warn_for_bound): Add "maybe" kind of warning messages.
21 (warn_for_access): Same.
22 (inform_access): Rename...
23 (access_ref::inform_access): ...to this. Print PHI arguments. Format
24 offset the same as size and simplify. Improve printing of allocation
25 functions and VLAs.
26 (check_access): Adjust to the above.
27 (gimple_parm_array_size): Change argument.
28 (handle_min_max_size): New function.
29 * builtins.h (class ssa_name_limit_t): Move class here from
30 tree-ssa-strlen.c.
31 (struct access_ref): Declare new members.
32 (gimple_parm_array_size): Change argument.
33 * tree-ssa-strlen.c (maybe_warn_overflow): Use access_ref and simplify.
34 (handle_builtin_memcpy): Correct argument passed to maybe_warn_overflow.
35 (handle_builtin_memset): Same.
36 (class ssa_name_limit_t): Move class to builtins.{h,c}.
37
38 2020-11-29 Iain Buclaw <ibuclaw@gdcproject.org>
39
40 * config.gcc (*-*-darwin*): Set d_target_objs and target_has_targetdm.
41 * config/elfos.h (TARGET_D_MINFO_SECTION): New macro.
42 (TARGET_D_MINFO_START_NAME): New macro.
43 (TARGET_D_MINFO_END_NAME): New macro.
44 * config/t-darwin: Add darwin-d.o.
45 * doc/tm.texi: Regenerate.
46 * doc/tm.texi.in (D language and ABI): Add @hook for
47 TARGET_D_MINFO_SECTION, TARGET_D_MINFO_START_NAME, and
48 TARGET_D_MINFO_END_NAME.
49 * config/darwin-d.c: New file.
50
51 2020-11-29 Jan Hubicka <jh@suse.cz>
52
53 * tree-ssa-structalias.c (handle_pure_call): Skip EAF_UNUSED
54 parameters.
55
56 2020-11-29 Jan Hubicka <jh@suse.cz>
57
58 * ipa-modref.c (modref_lattice::merge): Do nothing if F is EAF_UNUSED.
59 (analyze_parms): Detect unused params.
60 (modref_merge_call_site_flags): Merge correct EAF_UNUSED.
61
62 2020-11-28 Eric Botcazou <ebotcazou@adacore.com>
63
64 PR target/97939
65 * config/sparc/predicates.md (arith_double_add_operand): Comment.
66 * config/sparc/sparc.md (uaddvdi4): Use arith_double_operand.
67 (addvdi4): Use arith_double_add_operand.
68 (addsi3): Remove useless attributes.
69 (addvsi4): Use arith_add_operand.
70 (*cmp_ccv_plus): Likewise and add second alternative accordingly.
71 (*cmp_ccxv_plus): Likewise.
72 (*cmp_ccv_plus_set): Likewise.
73 (*cmp_ccxv_plus_set): Likewise.
74 (*cmp_ccv_plus_sltu_set): Likewise.
75 (usubvdi4): Use arith_double_operand.
76 (subvdi4): Use arith_double_add_operand.
77 (subsi3): Remove useless attributes.
78 (subvsi4): Use arith_add_operand.
79 (*cmp_ccv_minus): Likewise and add second alternative accordingly.
80 (*cmp_ccxv_minus): Likewise.
81 (*cmp_ccv_minus_set): Likewise.
82 (*cmp_ccxv_minus_set): Likewise.
83 (*cmp_ccv_minus_sltu_set): Likewise.
84 (negsi2): Use register_operand.
85 (unegvsi3): Likewise.
86 (negvsi3) Likewise.
87 (*cmp_ccnz_neg): Likewise.
88 (*cmp_ccxnz_neg): Likewise.
89 (*cmp_ccnz_neg_set): Likewise.
90 (*cmp_ccxnz_neg_set): Likewise.
91 (*cmp_ccc_neg_set): Likewise.
92 (*cmp_ccxc_neg_set): Likewise.
93 (*cmp_ccc_neg_sltu_set): Likewise.
94 (*cmp_ccv_neg): Likewise.
95 (*cmp_ccxv_neg): Likewise.
96 (*cmp_ccv_neg_set): Likewise.
97 (*cmp_ccxv_neg_set): Likewise.
98 (*cmp_ccv_neg_sltu_set): Likewise.
99
100 2020-11-27 H.J. Lu <hjl.tools@gmail.com>
101
102 PR other/98027
103 * doc/install.texi: Default to --enable-cet=auto.
104
105 2020-11-27 Thomas Schwinge <thomas@codesourcery.com>
106
107 * omp-oacc-kernels-decompose.cc (flatten_binds): Don't choke on
108 empty GIMPLE sequence, and examine all statements contained in
109 inner 'GIMPLE_BIND'.
110
111 2020-11-27 Richard Biener <rguenther@suse.de>
112
113 PR tree-optimization/98024
114 * tree-ssa-pre.c (insert): Fix successor RPO order check.
115 (do_pre_regular_insertion): When inserting an assignment
116 in place of an all-same-value PHI still record that into
117 PHI_GEN.
118
119 2020-11-27 Jakub Jelinek <jakub@redhat.com>
120
121 * tree-ssanames.c (get_range_info): Handle INTEGER_CST by returning
122 VR_RANGE with both *min and *max set to the wide_int value of the
123 INTEGER_CST. Return VR_VARYING for non-SSA_NAMEs.
124 * match.pd ((t * 2) / 2) -> t): Handle also @0 being INTEGER_CST.
125 Simplify by calling get_range_info on everything.
126 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Simplify by calling
127 get_range_info on everything.
128 * tree-scalar-evolution.c (iv_can_overflow_p): Likewise.
129
130 2020-11-27 Jakub Jelinek <jakub@redhat.com>
131
132 PR libstdc++/88101
133 * gimple-fold.c (clear_padding_type): Ignore fields with is_empty_type
134 types.
135
136 2020-11-27 Tobias Burnus <tobias@codesourcery.com>
137
138 PR c/97880
139 * omp-expand.c (expand_oacc_collapse_init, expand_oacc_collapse_vars):
140 Use now passed diff_type.
141 (expand_oacc_for): Take largest type for diff_type, taking tiling
142 and collapsing into account.
143
144 2020-11-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
145
146 * config/aarch64/aarch64.opt
147 (-param=aarch64-autovec-preference): Define.
148 * config/aarch64/aarch64.c (aarch64_override_options_internal):
149 Set aarch64_sve_compare_costs to 0 when preferring only Advanced
150 SIMD.
151 (aarch64_cmp_autovec_modes): Define.
152 (aarch64_preferred_simd_mode): Adjust to use the above.
153 (aarch64_autovectorize_vector_modes): Likewise.
154 * doc/invoke.texi: Document aarch64-autovec-preference param.
155
156 2020-11-27 Xionghu Luo <luoxhu@linux.ibm.com>
157
158 * config/rs6000/rs6000-call.c (altivec_expand_vec_set_builtin):
159 Change call param 2 from type int to rtx.
160 * config/rs6000/rs6000-protos.h (rs6000_expand_vector_set):
161 Likewise.
162 * config/rs6000/rs6000.c (rs6000_expand_vector_init):
163 Change call param 2 from type int to rtx.
164 (rs6000_expand_vector_set): Likewise.
165 * config/rs6000/vector.md (vec_set<mode>): Support both constant
166 and variable index vec_set.
167
168 2020-11-27 Haochen Gui <guihaoc@gcc.gnu.org>
169
170 * config/rs6000/rs6000-protos.h (rs6000_output_addr_vec_elt): Declare.
171 * config/rs6000/rs6000.c (TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC):
172 Define.
173 (rs6000_gen_pic_addr_diff_vec, rs6000_output_addr_vec_elt): Implement.
174 * config/rs6000/rs6000.h (CASE_VECTOR_PC_RELATIVE,
175 CASE_VECTOR_MODE, ASM_OUTPUT_ADDR_VEC_ELT): Define.
176 * config/rs6000/rs6000.md (tablejump<mode>_absolute,
177 tablejump<mode>_absolute_nospec): New expanders.
178 * config/rs6000/rs6000.opt (mrelative-jumptables): New.
179
180 2020-11-26 Eric Botcazou <ebotcazou@adacore.com>
181
182 PR target/96607
183 * config/sparc/sparc-protos.h (eligible_for_call_delay): Delete.
184 * config/sparc/sparc.c (eligible_for_call_delay): Likewise.
185 * config/sparc/sparc.md (in_call_delay): Likewise.
186 (tls_delay_slot): New attribute.
187 (define_delay [call]): Use in_branch_delay.
188 (tgd_call<P:mode>): Set type to call_no_delay_slot when
189 tls_delay_slot is false.
190 (tldm_call<P:mode>): Likewise.
191
192 2020-11-26 Jakub Jelinek <jakub@redhat.com>
193
194 PR tree-optimization/97997
195 * match.pd ((t * 2) / 2) -> t): Optimize even for defined
196 overflow if ranges prove there is no overflow.
197
198 2020-11-26 Richard Biener <rguenther@suse.de>
199
200 PR tree-optimization/97953
201 * gimple-ssa-evrp-analyze.c
202 (evrp_range_analyzer::record_ranges_from_incoming_edge): Make
203 sure the condition post-dominates the SSA definition before
204 recording into SSA_NAME_RANGE_INFO.
205
206 2020-11-26 Richard Biener <rguenther@suse.de>
207
208 * gimple-isel.cc (gimple_expand_vec_cond_expr): Only
209 lower VECTOR_BOOLEAN_TYPE_P VEC_COND_EXPRs.
210
211 2020-11-26 Andrew Stubbs <ams@codesourcery.com>
212
213 * config/gcn/mkoffload.c (copy_early_debug_info): Don't wipe
214 relocation symbols.
215
216 2020-11-26 Uroš Bizjak <ubizjak@gmail.com>
217
218 * config/i386/i386-expand.c (ix86_expand_multi_arg_builtin):
219 Remove args array of structs, declare rtx xops array instead.
220 Update all uses.
221 (ix86_expand_args_builtin): Ditto.
222 (ix86_expand_round_builtin): Ditto.
223 (ix86_expand_special_args_builtin): Ditto.
224
225 2020-11-26 Martin Liska <mliska@suse.cz>
226
227 * dwarf2out.c (gen_compile_unit_die): Fix missing == 0 in a
228 strcmp.
229
230 2020-11-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
231
232 * config/sol2.h (TIME_LIBRARY): Remove.
233
234 2020-11-26 Kewen Lin <linkw@linux.ibm.com>
235
236 * config/rs6000/rs6000.c (rs6000_option_override_internal):
237 Set param_vect_partial_vector_usage as 1 for Power10 and up
238 by default.
239
240 2020-11-26 Jakub Jelinek <jakub@redhat.com>
241
242 * gimple-fold.c (clear_padding_union): Ignore DECL_PADDING_P
243 fields.
244 (clear_padding_type): Ignore DECL_PADDING_P fields, rather than
245 DECL_BIT_FIELD with NULL DECL_NAME.
246
247 2020-11-26 Jakub Jelinek <jakub@redhat.com>
248
249 PR tree-optimization/97979
250 * match.pd ((X {&,^,|} C2) << C1 into (X << C1) {&,^,|} (C2 << C1)):
251 Only optimize if int_const_binop returned non-NULL.
252
253 2020-11-26 liuhongt <hongtao.liu@intel.com>
254
255 * config/i386/i386-expand.c
256 (ix86_expand_special_args_builtin): Delete last_arg_constant
257 and match.
258
259 2020-11-26 Uroš Bizjak <ubizjak@gmail.com>
260
261 PR target/97873
262 * config/i386/i386.md (abs<mode>2): Use SDWIM mode iterator.
263 (*abs<mode>2_1): Use SWI mode iterator.
264 (<maxmin:code><mode>3): Use SDWIM mode iterator.
265 (*<maxmin:code><mode>3_1): Use SWI mode iterator.
266
267 2020-11-26 Jakub Jelinek <jakub@redhat.com>
268
269 PR target/96906
270 * config/i386/sse.md (VI12_AVX2): Remove V64QI/V32HI modes.
271 (VI12_AVX2_AVX512BW): New mode iterator.
272 (<sse2_avx2>_<plusminus_insn><mode>3<mask_name>,
273 uavg<mode>3_ceil, <sse2_avx2>_uavg<mode>3<mask_name>): Use
274 VI12_AVX2_AVX512BW iterator instead of VI12_AVX2.
275 (*<sse2_avx2>_<plusminus_insn><mode>3<mask_name>): Likewise.
276 (*<sse2_avx2>_uavg<mode>3<mask_name>): Likewise.
277 (*<sse2_avx2>_<plusminus_insn><mode>3<mask_name>): Add a new
278 define_split after this insn.
279
280 2020-11-26 Martin Uecker <muecker@gwdg.de>
281
282 PR c/65455
283 PR c/92935
284 * ginclude/stdatomic.h: Use comma operator to drop qualifiers.
285
286 2020-11-26 Vladimir Makarov <vmakarov@redhat.com>
287
288 PR bootstrap/97983
289 * lra.c (lra_process_new_insns): Use emit_insn_before_noloc or
290 emit_insn_after_noloc with the destination BB.
291
292 2020-11-25 Martin Sebor <msebor@redhat.com>
293
294 PR bootstrap/97622
295 PR bootstrap/94982
296 * config/i386/i386-options.c (ix86_valid_target_attribute_inner_p):
297 Avoid -Wformat-diag.
298 * digraph.cc (struct test_edge): Same.
299 * dumpfile.c (dump_loc): Same.
300 (dump_context::begin_scope): Same.
301 * edit-context.c (edited_file::print_diff): Same.
302 (edited_file::print_diff_hunk): Same.
303 * json.cc (object::print): Same.
304 * lto-wrapper.c (merge_and_complain): Same.
305 * reload.c (find_reloads): Same.
306 * tree-diagnostic-path.cc (print_path_summary_as_text): Same.
307 * ubsan.c (ubsan_type_descriptor): Same.
308
309 2020-11-25 Jan Hubicka <jh@suse.cz>
310
311 * gimple.c (gimple_call_arg_flags): Also imply EAF_NODIRECTESCAPE.
312 * tree-core.h (EAF_NODRECTESCAPE): New flag.
313 * tree-ssa-structalias.c (make_indirect_escape_constraint): New
314 function.
315 (handle_rhs_call): Hanlde EAF_NODIRECTESCAPE.
316 * ipa-modref.c (dump_eaf_flags): Print EAF_NODIRECTESCAPE.
317 (deref_flags): Dereference is always EAF_NODIRECTESCAPE.
318 (modref_lattice::init): Also set EAF_NODIRECTESCAPE.
319 (analyze_ssa_name_flags): Pure functions do not affect
320 EAF_NODIRECTESCAPE.
321 (analyze_params): Likewise.
322 (ipa_merge_modref_summary_after_inlining): Likewise.
323 (modref_merge_call_site_flags): Likewise.
324
325 2020-11-25 Jan Hubicka <jh@suse.cz>
326
327 * ipa-modref.c (modref_summaries::duplicate,
328 modref_summaries_lto::duplicate): Copy arg_flags.
329 (remap_arg_flags): Fix remapping of arg_flags.
330
331 2020-11-25 Martin Sebor <msebor@redhat.com>
332
333 PR middle-end/97956
334 * gimple-fold.c (gimple_fold_builtin_memchr): Use sizetype for pointer
335 offsets.
336
337 2020-11-25 Matthew Malcomson <matthew.malcomson@arm.com>
338
339 * asan.c (asan_instrument_reads): New.
340 (asan_instrument_writes): New.
341 (asan_memintrin): New.
342 (handle_builtin_stack_restore): Account for HWASAN.
343 (handle_builtin_alloca): Account for HWASAN.
344 (get_mem_refs_of_builtin_call): Special case strlen for HWASAN.
345 (hwasan_instrument_reads): New.
346 (hwasan_instrument_writes): New.
347 (hwasan_memintrin): New.
348 (report_error_func): Assert not HWASAN.
349 (build_check_stmt): Make HWASAN_CHECK instead of ASAN_CHECK.
350 (instrument_derefs): HWASAN does not tag globals.
351 (instrument_builtin_call): Use new helper functions.
352 (maybe_instrument_call): Don't instrument `noreturn` functions.
353 (initialize_sanitizer_builtins): Add new type.
354 (asan_expand_mark_ifn): Account for HWASAN.
355 (asan_expand_check_ifn): Assert never called by HWASAN.
356 (asan_expand_poison_ifn): Account for HWASAN.
357 (asan_instrument): Branch based on whether using HWASAN or ASAN.
358 (pass_asan::gate): Return true if sanitizing HWASAN.
359 (pass_asan_O0::gate): Return true if sanitizing HWASAN.
360 (hwasan_check_func): New.
361 (hwasan_expand_check_ifn): New.
362 (hwasan_expand_mark_ifn): New.
363 (gate_hwasan): New.
364 * asan.h (hwasan_expand_check_ifn): New decl.
365 (hwasan_expand_mark_ifn): New decl.
366 (gate_hwasan): New decl.
367 (asan_intercepted_p): Always false for hwasan.
368 (asan_sanitize_use_after_scope): Account for HWASAN.
369 * builtin-types.def (BT_FN_PTR_CONST_PTR_UINT8): New.
370 * gimple-fold.c (gimple_build): New overload for building function
371 calls without arguments.
372 (gimple_build_round_up): New.
373 * gimple-fold.h (gimple_build): New decl.
374 (gimple_build): New inline function.
375 (gimple_build_round_up): New decl.
376 (gimple_build_round_up): New inline function.
377 * gimple-pretty-print.c (dump_gimple_call_args): Account for
378 HWASAN.
379 * gimplify.c (asan_poison_variable): Account for HWASAN.
380 (gimplify_function_tree): Remove requirement of
381 SANITIZE_ADDRESS, requiring asan or hwasan is accounted for in
382 `asan_sanitize_use_after_scope`.
383 * internal-fn.c (expand_HWASAN_CHECK): New.
384 (expand_HWASAN_ALLOCA_UNPOISON): New.
385 (expand_HWASAN_CHOOSE_TAG): New.
386 (expand_HWASAN_MARK): New.
387 (expand_HWASAN_SET_TAG): New.
388 * internal-fn.def (HWASAN_ALLOCA_UNPOISON): New.
389 (HWASAN_CHOOSE_TAG): New.
390 (HWASAN_CHECK): New.
391 (HWASAN_MARK): New.
392 (HWASAN_SET_TAG): New.
393 * sanitizer.def (BUILT_IN_HWASAN_LOAD1): New.
394 (BUILT_IN_HWASAN_LOAD2): New.
395 (BUILT_IN_HWASAN_LOAD4): New.
396 (BUILT_IN_HWASAN_LOAD8): New.
397 (BUILT_IN_HWASAN_LOAD16): New.
398 (BUILT_IN_HWASAN_LOADN): New.
399 (BUILT_IN_HWASAN_STORE1): New.
400 (BUILT_IN_HWASAN_STORE2): New.
401 (BUILT_IN_HWASAN_STORE4): New.
402 (BUILT_IN_HWASAN_STORE8): New.
403 (BUILT_IN_HWASAN_STORE16): New.
404 (BUILT_IN_HWASAN_STOREN): New.
405 (BUILT_IN_HWASAN_LOAD1_NOABORT): New.
406 (BUILT_IN_HWASAN_LOAD2_NOABORT): New.
407 (BUILT_IN_HWASAN_LOAD4_NOABORT): New.
408 (BUILT_IN_HWASAN_LOAD8_NOABORT): New.
409 (BUILT_IN_HWASAN_LOAD16_NOABORT): New.
410 (BUILT_IN_HWASAN_LOADN_NOABORT): New.
411 (BUILT_IN_HWASAN_STORE1_NOABORT): New.
412 (BUILT_IN_HWASAN_STORE2_NOABORT): New.
413 (BUILT_IN_HWASAN_STORE4_NOABORT): New.
414 (BUILT_IN_HWASAN_STORE8_NOABORT): New.
415 (BUILT_IN_HWASAN_STORE16_NOABORT): New.
416 (BUILT_IN_HWASAN_STOREN_NOABORT): New.
417 (BUILT_IN_HWASAN_TAG_MISMATCH4): New.
418 (BUILT_IN_HWASAN_HANDLE_LONGJMP): New.
419 (BUILT_IN_HWASAN_TAG_PTR): New.
420 * sanopt.c (sanopt_optimize_walker): Act for hwasan.
421 (pass_sanopt::execute): Act for hwasan.
422 * toplev.c (compile_file): Use `gate_hwasan` function.
423
424 2020-11-25 Matthew Malcomson <matthew.malcomson@arm.com>
425
426 * asan.c (struct hwasan_stack_var): New.
427 (hwasan_sanitize_p): New.
428 (hwasan_sanitize_stack_p): New.
429 (hwasan_sanitize_allocas_p): New.
430 (initialize_sanitizer_builtins): Define new builtins.
431 (ATTR_NOTHROW_LIST): New macro.
432 (hwasan_current_frame_tag): New.
433 (hwasan_frame_base): New.
434 (stack_vars_base_reg_p): New.
435 (hwasan_maybe_init_frame_base_init): New.
436 (hwasan_record_stack_var): New.
437 (hwasan_get_frame_extent): New.
438 (hwasan_increment_frame_tag): New.
439 (hwasan_record_frame_init): New.
440 (hwasan_emit_prologue): New.
441 (hwasan_emit_untag_frame): New.
442 (hwasan_finish_file): New.
443 (hwasan_truncate_to_tag_size): New.
444 * asan.h (hwasan_record_frame_init): New declaration.
445 (hwasan_record_stack_var): New declaration.
446 (hwasan_emit_prologue): New declaration.
447 (hwasan_emit_untag_frame): New declaration.
448 (hwasan_get_frame_extent): New declaration.
449 (hwasan_maybe_enit_frame_base_init): New declaration.
450 (hwasan_frame_base): New declaration.
451 (stack_vars_base_reg_p): New declaration.
452 (hwasan_current_frame_tag): New declaration.
453 (hwasan_increment_frame_tag): New declaration.
454 (hwasan_truncate_to_tag_size): New declaration.
455 (hwasan_finish_file): New declaration.
456 (hwasan_sanitize_p): New declaration.
457 (hwasan_sanitize_stack_p): New declaration.
458 (hwasan_sanitize_allocas_p): New declaration.
459 (HWASAN_TAG_SIZE): New macro.
460 (HWASAN_TAG_GRANULE_SIZE): New macro.
461 (HWASAN_STACK_BACKGROUND): New macro.
462 * builtin-types.def (BT_FN_VOID_PTR_UINT8_PTRMODE): New.
463 * builtins.def (DEF_SANITIZER_BUILTIN): Enable for HWASAN.
464 * cfgexpand.c (align_local_variable): When using hwasan ensure
465 alignment to tag granule.
466 (align_frame_offset): New.
467 (expand_one_stack_var_at): For hwasan use tag offset.
468 (expand_stack_vars): Record stack objects for hwasan.
469 (expand_one_stack_var_1): Record stack objects for hwasan.
470 (init_vars_expansion): Initialise hwasan state.
471 (expand_used_vars): Emit hwasan prologue and generate hwasan epilogue.
472 (pass_expand::execute): Emit hwasan base initialization if needed.
473 * doc/tm.texi (TARGET_MEMTAG_TAG_SIZE,TARGET_MEMTAG_GRANULE_SIZE,
474 TARGET_MEMTAG_INSERT_RANDOM_TAG,TARGET_MEMTAG_ADD_TAG,
475 TARGET_MEMTAG_SET_TAG,TARGET_MEMTAG_EXTRACT_TAG,
476 TARGET_MEMTAG_UNTAGGED_POINTER): Document new hooks.
477 * doc/tm.texi.in (TARGET_MEMTAG_TAG_SIZE,TARGET_MEMTAG_GRANULE_SIZE,
478 TARGET_MEMTAG_INSERT_RANDOM_TAG,TARGET_MEMTAG_ADD_TAG,
479 TARGET_MEMTAG_SET_TAG,TARGET_MEMTAG_EXTRACT_TAG,
480 TARGET_MEMTAG_UNTAGGED_POINTER): Document new hooks.
481 * explow.c (get_dynamic_stack_base): Take new `base` argument.
482 * explow.h (get_dynamic_stack_base): Take new `base` argument.
483 * sanitizer.def (BUILT_IN_HWASAN_INIT): New.
484 (BUILT_IN_HWASAN_TAG_MEM): New.
485 * target.def (target_memtag_tag_size,target_memtag_granule_size,
486 target_memtag_insert_random_tag,target_memtag_add_tag,
487 target_memtag_set_tag,target_memtag_extract_tag,
488 target_memtag_untagged_pointer): New hooks.
489 * targhooks.c (HWASAN_SHIFT): New.
490 (HWASAN_SHIFT_RTX): New.
491 (default_memtag_tag_size): New default hook.
492 (default_memtag_granule_size): New default hook.
493 (default_memtag_insert_random_tag): New default hook.
494 (default_memtag_add_tag): New default hook.
495 (default_memtag_set_tag): New default hook.
496 (default_memtag_extract_tag): New default hook.
497 (default_memtag_untagged_pointer): New default hook.
498 * targhooks.h (default_memtag_tag_size): New default hook.
499 (default_memtag_granule_size): New default hook.
500 (default_memtag_insert_random_tag): New default hook.
501 (default_memtag_add_tag): New default hook.
502 (default_memtag_set_tag): New default hook.
503 (default_memtag_extract_tag): New default hook.
504 (default_memtag_untagged_pointer): New default hook.
505 * toplev.c (compile_file): Call hwasan_finish_file when finished.
506
507 2020-11-25 Matthew Malcomson <matthew.malcomson@arm.com>
508
509 * common.opt (flag_sanitize_recover): Default for kernel
510 hwaddress.
511 (static-libhwasan): New cli option.
512 * config/aarch64/aarch64.c (aarch64_can_tag_addresses): New.
513 (TARGET_MEMTAG_CAN_TAG_ADDRESSES): New.
514 * config/gnu-user.h (LIBHWASAN_EARLY_SPEC): hwasan equivalent of
515 asan command line flags.
516 * cppbuiltin.c (define_builtin_macros_for_compilation_flags):
517 Add hwasan equivalent of __SANITIZE_ADDRESS__.
518 * doc/invoke.texi: Document hwasan command line flags.
519 * doc/tm.texi: Document new hook.
520 * doc/tm.texi.in: Document new hook.
521 * flag-types.h (enum sanitize_code): New sanitizer values.
522 * gcc.c (STATIC_LIBHWASAN_LIBS): New macro.
523 (LIBHWASAN_SPEC): New macro.
524 (LIBHWASAN_EARLY_SPEC): New macro.
525 (SANITIZER_EARLY_SPEC): Update to include hwasan.
526 (SANITIZER_SPEC): Update to include hwasan.
527 (sanitize_spec_function): Use hwasan options.
528 * opts.c (finish_options): Describe conflicts between address
529 sanitizers.
530 (find_sanitizer_argument): New.
531 (report_conflicting_sanitizer_options): New.
532 (sanitizer_opts): Introduce new sanitizer flags.
533 (common_handle_option): Add defaults for kernel sanitizer.
534 * params.opt (hwasan--instrument-stack): New
535 (hwasan-random-frame-tag): New
536 (hwasan-instrument-allocas): New
537 (hwasan-instrument-reads): New
538 (hwasan-instrument-writes): New
539 (hwasan-instrument-mem-intrinsics): New
540 * target.def (HOOK_PREFIX): Add new hook.
541 (can_tag_addresses): Add new hook under memtag prefix.
542 * targhooks.c (default_memtag_can_tag_addresses): New.
543 * targhooks.h (default_memtag_can_tag_addresses): New decl.
544 * toplev.c (process_options): Ensure hwasan only on
545 architectures that advertise the possibility.
546
547 2020-11-25 Matthew Malcomson <matthew.malcomson@arm.com>
548
549 * doc/install.texi: Document new option.
550
551 2020-11-25 Richard Sandiford <richard.sandiford@arm.com>
552
553 * config/aarch64/aarch64.c (aarch64_maybe_expand_sve_subreg_move):
554 Do not optimize LRA subregs.
555 * config/aarch64/aarch64-sve.md
556 (@aarch64_pred_<SVE_INT_UNARY:optab><mode>): Tie the input to the
557 output.
558 (@aarch64_sve_revbhw_<SVE_ALL:mode><PRED_HSD:mode>): Likewise.
559 (*<ANY_EXTEND:optab><SVE_PARTIAL_I:mode><SVE_HSDI:mode>2): Likewise.
560 (@aarch64_pred_sxt<SVE_FULL_HSDI:mode><SVE_PARTIAL_I:mode>): Likewise.
561 (*cnot<mode>): Likewise.
562 (@aarch64_pred_<SVE_COND_FP_UNARY:optab><mode>): Likewise.
563 (@aarch64_sve_<optab>_nontrunc<SVE_FULL_F:mode><SVE_FULL_HSDI:mode>):
564 Likewise.
565 (@aarch64_sve_<optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>):
566 Likewise.
567 (@aarch64_sve_<optab>_nonextend<SVE_FULL_HSDI:mode><SVE_FULL_F:mode>):
568 Likewise.
569 (@aarch64_sve_<optab>_extend<VNx4SI_ONLY:mode><VNx2DF_ONLY:mode>):
570 Likewise.
571 (@aarch64_sve_<optab>_trunc<SVE_FULL_SDF:mode><SVE_FULL_HSF:mode>):
572 Likewise.
573 (@aarch64_sve_<optab>_trunc<VNx4SF_ONLY:mode><VNx8BF_ONLY:mode>):
574 Likewise.
575 (@aarch64_sve_<optab>_nontrunc<SVE_FULL_HSF:mode><SVE_FULL_SDF:mode>):
576 Likewise.
577 * config/aarch64/aarch64-sve2.md
578 (@aarch64_pred_<SVE2_COND_FP_UNARY_LONG:sve_fp_op><mode>): Likewise.
579 (@aarch64_pred_<SVE2_COND_FP_UNARY_NARROWB:sve_fp_op><mode>): Likewise.
580 (@aarch64_pred_<SVE2_U32_UNARY:sve_int_op><mode>): Likewise.
581 (@aarch64_pred_<SVE2_COND_INT_UNARY_FP:sve_fp_op><mode>): Likewise.
582
583 2020-11-25 Jakub Jelinek <jakub@redhat.com>
584
585 PR rtl-optimization/95862
586 * internal-fn.c (get_min_precision): For narrowing conversion, recurse
587 on the operand and if the operand precision is smaller than the
588 current one, return that smaller precision.
589 (expand_mul_overflow): For s1 * u2 -> ur and s1 * s2 -> ur cases
590 if the sum of minimum precisions of both operands is smaller or equal
591 to the result precision, just perform normal multiplication and
592 set overflow to the sign bit of the multiplication result. For
593 u1 * u2 -> sr if both arguments have the MSB known zero, use
594 normal s1 * s2 -> sr expansion.
595
596 2020-11-25 Jan Hubicka <jh@suse.cz>
597
598 * cfg.c (free_block): New function.
599 (clear_edges): Rename to ....
600 (free_cfg): ... this one; also free BBs and vectors.
601 (expunge_block): Update comment.
602 * cfg.h (clear_edges): Rename to ...
603 (free_cfg): ... this one.
604 * cgraph.c (release_function_body): Use free_cfg.
605
606 2020-11-25 Richard Biener <rguenther@suse.de>
607
608 PR middle-end/97579
609 * gimple-isel.cc (gimple_expand_vec_cond_expr): Lower
610 VECTOR_BOOLEAN_TYPE_P, non-vector mode VEC_COND_EXPRs.
611
612 2020-11-25 Jakub Jelinek <jakub@redhat.com>
613
614 PR middle-end/97943
615 * gimple-fold.c (clear_padding_union, clear_padding_type): Error on and
616 ignore flexible array member fields. Ignore fields with
617 error_mark_node type.
618
619 2020-11-24 Ulrich Weigand <ulrich.weigand@de.ibm.com>
620
621 Revert:
622 2020-11-24 Ulrich Weigand <uweigand@de.ibm.com>
623
624 * doc/invoke.texi (-ffast-math): Remove mention of -fno-signaling-nans.
625 Clarify conditions when __FAST_MATH__ preprocessor macro is defined.
626 * opts.c (common_handle_option): Pass OPTS_SET to set_fast_math_flags
627 and set_unsafe_math_optimizations_flags.
628 (set_fast_math_flags): Add OPTS_SET argument, and use it to avoid
629 setting flags already explicitly set on the command line. In the !set
630 case, also reset x_flag_cx_limited_range and x_flag_excess_precision.
631 Never reset x_flag_signaling_nans or x_flag_rounding_math.
632 (set_unsafe_math_optimizations_flags): Add OPTS_SET argument, and use
633 it to avoid setting flags already explicitly set on the command line.
634 (fast_math_flags_set_p): Also test x_flag_cx_limited_range,
635 x_flag_associative_math, x_flag_reciprocal_math, and
636 x_flag_rounding_math.
637
638 2020-11-24 Vladimir Makarov <vmakarov@redhat.com>
639
640 PR bootstrap/97933
641 * lra.c (lra_process_new_insns): Stop on the first real insn after
642 head of e->dest.
643
644 2020-11-24 Richard Earnshaw <rearnsha@arm.com>
645
646 PR target/97534
647 * config/arm/arm.c (arm_split_atomic_op): Use gen_int_mode when
648 negating a const_int.
649
650 2020-11-24 Ilya Leoshkevich <iii@linux.ibm.com>
651
652 * config/s390/vector.md: Use vcond_comparison_operator
653 predicate.
654
655 2020-11-24 Ulrich Weigand <uweigand@de.ibm.com>
656
657 * doc/invoke.texi (-ffast-math): Remove mention of -fno-signaling-nans.
658 Clarify conditions when __FAST_MATH__ preprocessor macro is defined.
659 * opts.c (common_handle_option): Pass OPTS_SET to set_fast_math_flags
660 and set_unsafe_math_optimizations_flags.
661 (set_fast_math_flags): Add OPTS_SET argument, and use it to avoid
662 setting flags already explicitly set on the command line. In the !set
663 case, also reset x_flag_cx_limited_range and x_flag_excess_precision.
664 Never reset x_flag_signaling_nans or x_flag_rounding_math.
665 (set_unsafe_math_optimizations_flags): Add OPTS_SET argument, and use
666 it to avoid setting flags already explicitly set on the command line.
667 (fast_math_flags_set_p): Also test x_flag_cx_limited_range,
668 x_flag_associative_math, x_flag_reciprocal_math, and
669 x_flag_rounding_math.
670
671 2020-11-24 Jakub Jelinek <jakub@redhat.com>
672
673 PR target/97950
674 * config/i386/i386.md (*setcc_si_1_and): Macroize into...
675 (*setcc_<mode>_1_and): New define_insn_and_split with SWI24 iterator.
676 (*setcc_si_1_movzbl): Macroize into...
677 (*setcc_<mode>_1_movzbl): New define_insn_and_split with SWI24
678 iterator.
679
680 2020-11-24 Jakub Jelinek <jakub@redhat.com>
681
682 * gimple-fold.c (clear_padding_flush): If a word contains only 0
683 or 0xff bytes of padding other than all set, all clear, all set
684 followed by all clear or all clear followed by all set, don't emit
685 a RMW operation on the whole word or parts of it, but instead
686 clear the individual bytes of padding. For paddings of one byte
687 size, don't use char[1] and {}, but instead just char and 0.
688
689 2020-11-24 Thomas Schwinge <thomas@codesourcery.com>
690
691 * omp-expand.c (expand_oacc_for): More explicit checking of which
692 OMP constructs we're expecting.
693
694 2020-11-24 Thomas Schwinge <thomas@codesourcery.com>
695
696 * doc/install.texi (Prerequisites) <Tcl>: Add comment.
697
698 2020-11-24 Jakub Jelinek <jakub@redhat.com>
699
700 PR tree-optimization/96929
701 * fold-const.c (wide_int_binop) <case LSHIFT_EXPR, case RSHIFT_EXPR>:
702 Return false on negative second argument rather than trying to handle
703 it as shift in the other direction.
704 * tree-ssa-ccp.c (bit_value_binop) <case LSHIFT_EXPR,
705 case RSHIFT_EXPR>: Punt on negative shift count rather than trying
706 to handle it as shift in the other direction.
707 * match.pd (-1 >> x to -1): Remove tree_expr_nonnegative_p check.
708
709 2020-11-24 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
710
711 PR tree-optimization/97849
712 * tree-if-conv.c (tree_if_conversion): Move ssa_name
713 replacement code from ifcvt_local_dce to this function
714 before calling do_rpo_vn.
715
716 2020-11-24 Martin Sebor <msebor@redhat.com>
717
718 * tree-cfg.c (dump_function_to_file): Print type attributes
719 and return type.
720
721 2020-11-23 Martin Jambor <mjambor@suse.cz>
722
723 * ipa-prop.h (ipa_pass_through_data): Expand comment describing
724 operation.
725 * ipa-prop.c (analyze_agg_content_value): Detect new special case and
726 encode it as ASSERT_EXPR.
727 * ipa-cp.c (values_equal_for_ipcp_p): Move before
728 ipa_get_jf_arith_result.
729 (ipa_get_jf_arith_result): Special case ASSERT_EXPR.
730
731 2020-11-23 Jeff Law <law@redhat.com>
732
733 * config/h8300/h8300.c (h8300_rtx_costs): Handle the various
734 comparison rtx codes too.
735
736 2020-11-23 Jan Hubicka <jh@suse.cz>
737
738 * ipa-prop.c (build_agg_jump_func_from_list,
739 ipa_read_jump_function): Reserve agg.items precisely.
740 * ipa-prop.h (ipa_node_params::~ipa_node_params): Release descriptors
741 (ipa_edge_args::~ipa_edge_args): Release agg.items.
742
743 2020-11-23 Jan Hubicka <jh@suse.cz>
744
745 * lto-streamer-in.c (input_cfg): Do not init ssa operands.
746 (input_function): Do not init tree_ssa and set in_ssa_p.
747 (input_ssa_names): Do it here.
748 * tree-ssa.c (init_tree_ssa): Add additional SIZE parameter, default
749 to 0
750 * tree-ssanames.c (init_ssanames): Do not round size up to 50, allocate
751 precisely.
752 * tree-ssa.h (init_tree_ssa): Update prototype.
753
754 2020-11-23 Nathan Sidwell <nathan@acm.org>
755
756 * diagnostic.c (diagnostic_report_current_module): Adjust for C++
757 module importation.
758
759 2020-11-23 Jozef Lawrynowicz <jozef.l@mittosystems.com>
760
761 * config/msp430/msp430.c (msp430_section_attr): Don't warn for "lower"
762 attribute used with "noinit" or "persistent" attributes.
763 (msp430_persist_attr): Remove.
764 (attr_lower_exclusions): Remove ATTR_PERSIST exclusion.
765 (attr_upper_exclusions): Likewise.
766 (attr_either_exclusions): Likewise.
767 (attr_persist_exclusions): Remove.
768 (msp430_attribute_table): Remove ATTR_PERSIST handling.
769 (msp430_handle_generic_attribute): Remove ATTR_PERSIST section conflict
770 handling.
771 (TARGET_ASM_INIT_SECTIONS): Remove.
772 (msp430_init_sections): Remove.
773 (msp430_select_section): Use default_elf_select_section for decls with
774 the "persistent" attribute.
775 (msp430_section_type_flags): Remove ".persistent" section handling.
776 * doc/extend.texi (MSP430 Variable Attributes): Remove "noinit" and
777 "persistent" documentation.
778
779 2020-11-23 Richard Biener <rguenther@suse.de>
780
781 * tree-vect-slp.c (maybe_push_to_hybrid_worklist): Skip
782 debug stmts.
783
784 2020-11-23 Jozef Lawrynowicz <jozef.l@mittosystems.com>
785
786 * doc/extend.texi (Common Variable Attributes): Document the
787 "persistent" variable attribute.
788 * doc/sourcebuild.texi (Effective-Target Keywords): Document
789 the "persistent" effective target keyword.
790 * tree.h (DECL_PERSISTENT_P): Define.
791 * varasm.c (bss_initializer_p): Return false for a
792 DECL_PERSISTENT_P decl initialized to zero.
793 (default_section_type_flags): Handle the ".persistent" section.
794 (default_elf_select_section): Likewise.
795 (default_unique_section): Likewise.
796
797 2020-11-23 Jozef Lawrynowicz <jozef.l@mittosystems.com>
798
799 * tree.h (DECL_NOINIT_P): Define.
800 * varasm.c (DECL_NOINIT_P): Check DECL_NOINIT_P before using
801 unnamed bss/lcomm sections for bss_initializer variables.
802 (default_elf_select_section): Use DECL_NOINIT_P instead of
803 looking up attribute for .noinit section selection.
804 (default_unique_section): Check DECL_NOINIT_P for .noinit
805 section selection.
806
807 2020-11-23 Matthew Malcomson <matthew.malcomson@arm.com>
808
809 * doc/install.texi: Document bootstrap-asan option.
810
811 2020-11-22 Uroš Bizjak <ubizjak@gmail.com>
812
813 PR target/97873
814 * config/i386/i386.md (abs<mode>2): Use SWI48DWI mode iterator.
815 (*abs<dwi>2_doubleword): Use DWIH mode iterator.
816 (<maxmin:code><mode>3): Use SWI48DWI mode iterator.
817 (*<maxmin:code><dwi>3_doubleword): Use DWIH mode iterator.
818
819 2020-11-22 Austin Law <austinklaw@gmail.com>
820
821 * config/h8300/addsub.md: Turn existing patterns into
822 define_insn_and_split style patterns where the splitter
823 adds a clobber of the condition code register. Drop "cc"
824 attribute. Add _clobber_flags patterns to match output of
825 the splitters.
826 (add<mod>3_incdec): Remove pattern
827 (adds/subs splitter): Only run before reload.
828 * config/h8300/bitfield.md: Turn existing patterns into
829 define_insn_and_split style patterns where the splitter
830 adds a clobber of the condition code register. Drop "cc"
831 attribute. Add _clobber_flags patterns to match output
832 of the splitters.
833 (cstoreqi4, cstorehi4, cstoresi4): Comment out
834 (*bstzhireg, *cmpstz, *bstz, *bistz, *cmpcondset): Likewise
835 (*condbset, *cmpcondbclr, *condbclr): Likewise.
836 (*cmpcondbsetreg, *condbsetreg, *cmpcondbclrreg): Likewise.
837 (*condbclrreg): Likewise.
838 * config/h8300/combiner.md: Turn existing patterns into
839 define_insn_and_split style patterns where the splitter
840 adds a clobber of the condition code register. Drop "cc"
841 attribute. Add _clobber_flags patterns to match output of
842 the splitters. Add appropriate CC register clobbers to
843 existing splitters.
844 (*addsi3_and_r_1): Disable for now.
845 (*addsi3_and_not_r_1, bit-test branches): Likewise.
846 * config/h8300/divmod.md: Turn existing patterns into
847 define_insn_and_split style patterns where the splitter
848 adds a clobber of the condition code register. Drop "cc"
849 attribute. Add _clobber_flags patterns to match output of
850 the splitters.
851 * config/h8300/extensions.md: Turn existing patterns into
852 define_insn_and_split style patterns where the splitter
853 adds a clobber of the condition code register. Drop "cc"
854 attribute. Add _clobber_flags patterns to match output of
855 the splitters.
856 * config/h8300/genmova.sh: Drop "cc" attribute from patterns.
857 * config/h8300/mova.md: Drop "cc" attribute from patterns.
858 * config/h8300/h8300-modes.def: Add CCZN and CCZNV modes.
859 * config/h8300/h8300-protos.h (output_plussi): Update prototype.
860 (compute_plussi_length): Likewise.
861 (h8300_select_cc_mode): Add prototype.
862 (compute_a_shift_cc): Remove prototype
863 (cmpute_logical_op_cc): Likewise.
864 * config/h8300/h8300.c (names_big): Add "cc" register.
865 (names_extended, names_upper_extended): Likewise.
866 (h8300_emit_stack_adjustment): Be more selective about setting
867 RTX_FRAME_RELATED_P.
868 (h8300_print_operand): Handle CCZN mode
869 (h8300_select_cc_mode): New function.
870 (notice_update_cc): if-0 out. Only kept for reference purposes.
871 (h8300_expand_store): Likewise.
872 (h8300_binary_length): Handle new insn forms.
873 (output_plussi): Add argument for NEED_FLAGS and handle that case.
874 (compute_plussi_length): Likewise.
875 (compute_logical_op_cc): Return integer.
876 (TARGET_FLAGS_REGNUM): Define.
877 * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Bump for cc register.
878 (FIXED_REGISTERS, CALL_USED_REGISTERS): Handle cc register.
879 (REG_ALLOC_ORDER, REGISTER_NAMES): Likewise.
880 (SELECT_CC_MODE): Define.
881 * config/h8300/h8300.md: Add CC_REG.
882 Do not include peepholes.md for now.
883 * config/h8300/jumpcall.md (cbranchqi4): Consolidate into
884 cbranch<mode>4.
885 (cbranchhi4, cbranchsi4): Likewise.
886 (cbranch<mode>4): New expander.
887 (branch): New define_insn_and_split for use before reload.
888 (branch_1, branch_1_false): New patterns to match splitter output.
889 Remove code to manage cc_status.flags.
890 * config/h8300/logical.md: Turn existing patterns into
891 define_insn_and_split style patterns where the splitter
892 adds a clobber of the condition code register. Drop "cc"
893 attribute. Add _clobber_flags patterns to match output of
894 the splitters. Move various peepholes into this file.
895 * config/h8300/movepush.md: Turn existing patterns into
896 define_insn_and_split style patterns where the splitter
897 adds a clobber of the condition code register. Drop "cc"
898 attribute. Add _clobber_flags patterns to match output of
899 the splitters.
900 * config/h8300/multiply.md: Turn existing patterns into
901 define_insn_and_split style patterns where the splitter
902 adds a clobber of the condition code register. Drop "cc"
903 attribute. Add _clobber_flags patterns to match output of
904 the splitters.
905 * config/h8300/other.md: Turn existing patterns into
906 define_insn_and_split style patterns where the splitter
907 adds a clobber of the condition code register. Drop "cc"
908 attribute. Add _clobber_flags patterns to match output of
909 the splitters.
910 * config/h8300/peepholes.md: Remove peepholes that were moved
911 elsewhere.
912 * config/h8300/predicates.md (simple_memory_operand): New.
913 * config/h8300/proepi.md: Drop "cc" attribute setting.
914 * config/h8300/shiftrotate.md: Turn existing patterns into
915 define_insn_and_split style patterns where the splitter
916 adds a clobber of the condition code register. Drop "cc"
917 attribute. Add _clobber_flags patterns to match output of
918 the splitters.
919 * config/h8300/testcompare.md: Turn existing patterns into
920 define_insn_and_split style patterns where the splitter
921 adds a clobber of the condition code register. Drop "cc"
922 attribute. Add _clobber_flags patterns to match output of
923 the splitters. Disable various patterns for now.
924 Move some peepholes that were previously in peepholes.md here.
925 * config/h8300/save.md: New file.
926
927 2020-11-22 Jakub Jelinek <jakub@redhat.com>
928
929 PR tree-optimization/95853
930 * tree-ssa-math-opts.c (uaddsub_overflow_check_p): Add maxval
931 argument, if non-NULL, instead look for r > maxval or r <= maxval
932 comparisons.
933 (match_uaddsub_overflow): Pattern recognize even other forms of
934 __builtin_add_overflow, in particular when addition is performed
935 in a wider type and result compared to maximum of the narrower
936 type.
937
938 2020-11-22 Jeff Law <law@redhat.com>
939
940 * config/h8300/jumpcall.md (branch_true, branch_false): Revert
941 recent change. Ensure operand[0] is always the target label.
942
943 2020-11-22 Iain Sandoe <iain@sandoe.co.uk>
944
945 * config/darwin-c.c (struct f_align_stack): Rename
946 to type from align_stack to f_align_stack.
947 (push_field_alignment): Likewise.
948 (pop_field_alignment): Likewise.
949
950 2020-11-21 Marek Polacek <polacek@redhat.com>
951
952 PR c++/94695
953 * doc/invoke.texi: Update the -Wrange-loop-construct description.
954
955 2020-11-21 Jan Hubicka <jh@suse.cz>
956
957 * tree-ssa-alias.c (ao_compare::compare_ao_refs,
958 ao_compare::hash_ao_ref): Use OEP_MATCH_SIDE_EFFECTS.
959
960 2020-11-21 Jan Hubicka <jh@suse.cz>
961
962 * ipa-icf.c (sem_function::equals_wpa): Do not compare ODR type with
963 -fno-devirtualize.
964 (sem_item_optimizer::update_hash_by_addr_refs): Hash anonymous ODR
965 types by TYPE_UID of their main variant.
966
967 2020-11-21 Aaron Sawdey <acsawdey@linux.ibm.com>
968
969 * config/rs6000/rs6000.c (rs6000_option_override_internal):
970 Enable vector pair memcpy/memmove expansion.
971
972 2020-11-21 Aaron Sawdey <acsawdey@linux.ibm.com>
973
974 * config/rs6000/mma.md (unspec): Add assemble/extract UNSPECs.
975 (movoi): Change to movoo.
976 (*movpoi): Change to *movoo.
977 (movxi): Change to movxo.
978 (*movpxi): Change to *movxo.
979 (mma_assemble_pair): Change to OO mode.
980 (*mma_assemble_pair): New define_insn_and_split.
981 (mma_disassemble_pair): New define_expand.
982 (*mma_disassemble_pair): New define_insn_and_split.
983 (mma_assemble_acc): Change to XO mode.
984 (*mma_assemble_acc): Change to XO mode.
985 (mma_disassemble_acc): New define_expand.
986 (*mma_disassemble_acc): New define_insn_and_split.
987 (mma_<acc>): Change to XO mode.
988 (mma_<vv>): Change to XO mode.
989 (mma_<avv>): Change to XO mode.
990 (mma_<pv>): Change to OO mode.
991 (mma_<apv>): Change to XO/OO mode.
992 (mma_<vvi4i4i8>): Change to XO mode.
993 (mma_<avvi4i4i8>): Change to XO mode.
994 (mma_<vvi4i4i2>): Change to XO mode.
995 (mma_<avvi4i4i2>): Change to XO mode.
996 (mma_<vvi4i4>): Change to XO mode.
997 (mma_<avvi4i4>): Change to XO mode.
998 (mma_<pvi4i2>): Change to XO/OO mode.
999 (mma_<apvi4i2>): Change to XO/OO mode.
1000 (mma_<vvi4i4i4>): Change to XO mode.
1001 (mma_<avvi4i4i4>): Change to XO mode.
1002 * config/rs6000/predicates.md (input_operand): Allow opaque.
1003 (mma_disassemble_output_operand): New predicate.
1004 * config/rs6000/rs6000-builtin.def:
1005 Changes to disassemble builtins.
1006 * config/rs6000/rs6000-call.c (rs6000_return_in_memory):
1007 Disallow __vector_pair/__vector_quad as return types.
1008 (rs6000_promote_function_mode): Remove function return type
1009 check because we can't test it here any more.
1010 (rs6000_function_arg): Do not allow __vector_pair/__vector_quad
1011 as as function arguments.
1012 (rs6000_gimple_fold_mma_builtin):
1013 Handle mma_disassemble_* builtins.
1014 (rs6000_init_builtins): Create types for XO/OO modes.
1015 * config/rs6000/rs6000-modes.def: DElete OI, XI,
1016 POI, and PXI modes, and create XO and OO modes.
1017 * config/rs6000/rs6000-string.c (expand_block_move):
1018 Update to OO mode.
1019 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_uncached):
1020 Update for XO/OO modes.
1021 (rs6000_rtx_costs): Make UNSPEC_MMA_XXSETACCZ cost 0.
1022 (rs6000_modes_tieable_p): Update for XO/OO modes.
1023 (rs6000_debug_reg_global): Update for XO/OO modes.
1024 (rs6000_setup_reg_addr_masks): Update for XO/OO modes.
1025 (rs6000_init_hard_regno_mode_ok): Update for XO/OO modes.
1026 (reg_offset_addressing_ok_p): Update for XO/OO modes.
1027 (rs6000_emit_move): Update for XO/OO modes.
1028 (rs6000_preferred_reload_class): Update for XO/OO modes.
1029 (rs6000_split_multireg_move): Update for XO/OO modes.
1030 (rs6000_mangle_type): Update for opaque types.
1031 (rs6000_invalid_conversion): Update for XO/OO modes.
1032 * config/rs6000/rs6000.h (VECTOR_ALIGNMENT_P):
1033 Update for XO/OO modes.
1034 * config/rs6000/rs6000.md (RELOAD): Update for XO/OO modes.
1035
1036 2020-11-21 Aaron Sawdey <acsawdey@linux.ibm.com>
1037
1038 * typeclass.h: Add opaque_type_class.
1039 * builtins.c (type_to_class): Identify opaque type class.
1040 * dwarf2out.c (is_base_type): Handle opaque types.
1041 (gen_type_die_with_usage): Handle opaque types.
1042 * expr.c (count_type_elements): Opaque types should
1043 never have initializers.
1044 * ipa-devirt.c (odr_types_equivalent_p): No type-specific handling
1045 for opaque types is needed as it eventually checks the underlying
1046 mode which is what is important.
1047 * tree-streamer.c (record_common_node): Handle opaque types.
1048 * tree.c (type_contains_placeholder_1): Handle opaque types.
1049 (type_cache_hasher::equal): No additional comparison needed for
1050 opaque types.
1051
1052 2020-11-20 Michael Meissner <meissner@linux.ibm.com>
1053
1054 * config/rs6000/rs6000-call.c (rs6000_expand_builtin): Add missing
1055 XSCMP* cases for IEEE 128-bit long double.
1056
1057 2020-11-20 Jason Merrill <jason@redhat.com>
1058
1059 PR c++/97918
1060 * dwarf2out.c (dwarf2out_early_finish): flush_limbo_die_list
1061 after gen_scheduled_generic_parms_dies.
1062
1063 2020-11-20 Martin Sebor <msebor@redhat.com>
1064
1065 PR middle-end/97879
1066 * tree-core.h (enum attribute_flags): Add ATTR_FLAG_INTERNAL.
1067
1068 2020-11-20 Jan Hubicka <jh@suse.cz>
1069
1070 * ipa-icf-gimple.c (func_checker::hash_operand): Improve hashing of
1071 decls.
1072
1073 2020-11-20 Jan Hubicka <jh@suse.cz>
1074
1075 * ipa-icf-gimple.c (func_checker::compare_decl): Do not compare types
1076 of local variables.
1077
1078 2020-11-20 Nathan Sidwell <nathan@acm.org>
1079
1080 * doc/invoke.texi: Replace a couple of @code with @command
1081
1082 2020-11-20 Tamar Christina <tamar.christina@arm.com>
1083
1084 * tree-vect-slp.c (vectorizable_slp_permutation): Update types on nodes
1085 when needed.
1086
1087 2020-11-20 Richard Biener <rguenther@suse.de>
1088
1089 * tree-vect-slp.c (maybe_push_to_hybrid_worklist): New function.
1090 (vect_detect_hybrid_slp): Use it. Perform a backward walk
1091 over the IL.
1092
1093 2020-11-20 Richard Biener <rguenther@suse.de>
1094
1095 * tree-vect-slp.c (vect_print_slp_tree): Also dump
1096 SLP_TREE_REPRESENTATIVE.
1097
1098 2020-11-20 Jakub Jelinek <jakub@redhat.com>
1099
1100 PR libstdc++/88101
1101 * builtins.def (BUILT_IN_CLEAR_PADDING): New built-in function.
1102 * gimplify.c (gimplify_call_expr): Rewrite single argument
1103 BUILT_IN_CLEAR_PADDING into two-argument variant.
1104 * gimple-fold.c (clear_padding_unit, clear_padding_buf_size): New
1105 const variables.
1106 (struct clear_padding_struct): New type.
1107 (clear_padding_flush, clear_padding_add_padding,
1108 clear_padding_emit_loop, clear_padding_type,
1109 clear_padding_union, clear_padding_real_needs_padding_p,
1110 clear_padding_type_may_have_padding_p,
1111 gimple_fold_builtin_clear_padding): New functions.
1112 (gimple_fold_builtin): Handle BUILT_IN_CLEAR_PADDING.
1113 * doc/extend.texi (__builtin_clear_padding): Document.
1114
1115 2020-11-20 Jakub Jelinek <jakub@redhat.com>
1116
1117 PR target/97528
1118 * config/arm/arm.c (neon_vector_mem_operand): For POST_MODIFY, require
1119 first POST_MODIFY operand is a REG and is equal to the first operand
1120 of PLUS.
1121
1122 2020-11-20 Eric Botcazou <ebotcazou@adacore.com>
1123
1124 * gimple-ssa-store-merging.c (struct merged_store_group): Add
1125 new 'consecutive' field.
1126 (merged_store_group): Set it to true.
1127 (do_merge): Set it to false if the store is not consecutive and
1128 set string_concatenation to false in this case.
1129 (merge_into): Call do_merge on entry.
1130 (merge_overlapping): Likewise.
1131
1132 2020-11-20 Jan Hubicka <jh@suse.cz>
1133
1134 * ipa-icf-gimple.c (func_checker::operand_equal_p): Fix comment.
1135
1136 2020-11-20 Jan Hubicka <jh@suse.cz>
1137
1138 * ipa-icf-gimple.c (func_checker::hash_operand): Hash gimple clobber.
1139 (func_checker::operand_equal_p): Special case gimple clobber.
1140
1141 2020-11-20 Uroš Bizjak <ubizjak@gmail.com>
1142
1143 PR target/97873
1144 * config/i386/i386.md (*neg<mode>2_2): Rename from
1145 "*neg<mode>2_cmpz". Use CCGOCmode instead of CCZmode.
1146 (*negsi2_zext): Rename from *negsi2_cmpz_zext.
1147 Use CCGOCmode instead of CCZmode.
1148 (*neg<mode>_ccc_1): New insn pattern.
1149 (*neg<dwi>2_doubleword): Use *neg<mode>_ccc_1.
1150 (abs<mode>2): Add FLAGS_REG clobber.
1151 Use TARGET_CMOVE insn predicate.
1152 (*abs<mode>2_1): New insn_and_split pattern.
1153 (*absdi2_doubleword): Ditto.
1154 (<maxmin:code><mode>3): Use SWI48x mode iterator.
1155 (*<maxmin:code><mode>3): Use SWI48 mode iterator.
1156 * config/i386/i386-features.c
1157 (general_scalar_chain::compute_convert_gain): Handle ABS code.
1158 (general_scalar_chain::convert_insn): Ditto.
1159 (general_scalar_to_vector_candidate_p): Ditto.
1160
1161 2020-11-20 Jakub Jelinek <jakub@redhat.com>
1162
1163 PR other/97911
1164 * configure.ac: In SERIAL_LIST use lang words without .serial
1165 suffix. Change $lang.prev from a target to variable and instead
1166 of depending on *.serial expand to the *.serial variable if
1167 the word is in the SERIAL_LIST at all, otherwise to nothing.
1168 * configure: Regenerated.
1169
1170 2020-11-20 Kewen Lin <linkw@linux.ibm.com>
1171
1172 * config/rs6000/rs6000.md (p8_mtvsrd_df): Fix insn type.
1173
1174 2020-11-20 Martin Uecker <muecker@gwdg.de>
1175
1176 * gimplify.c (gimplify_modify_expr_rhs): Optimizie
1177 NOP_EXPRs that contain compound literals.
1178
1179 2020-11-19 Jakub Jelinek <jakub@redhat.com>
1180
1181 PR tree-optimization/91029
1182 * range-op.cc (operator_trunc_mod::op1_range): Don't require signed
1183 types, nor require that op2 >= 0. Implement (a % b) >= x && x > 0
1184 implies a >= x and (a % b) <= x && x < 0 implies a <= x.
1185 (operator_trunc_mod::op2_range): New method.
1186
1187 2020-11-19 Andrew MacLeod <amacleod@redhat.com>
1188
1189 PR tree-optimization/93781
1190 * range-op.cc (get_shift_range): Rename from
1191 undefined_shift_range_check and now return valid shift ranges.
1192 (operator_lshift::fold_range): Use result from get_shift_range.
1193 (operator_rshift::fold_range): Ditto.
1194
1195 2020-11-19 Jan Hubicka <jh@suse.cz>
1196
1197 * fold-const.c (operand_compare::operand_equal_p): Fix thinko in
1198 COMPONENT_REF handling and guard types_same_for_odr by
1199 virtual_method_call_p.
1200 (operand_compare::hash_operand): Likewise.
1201
1202 2020-11-19 Jakub Jelinek <jakub@redhat.com>
1203
1204 PR c/97860
1205 * tree.c (array_type_nelts): For complete arrays with zero min
1206 and NULL max and zero size return -1.
1207
1208 2020-11-19 Nathan Sidwell <nathan@acm.org>
1209
1210 * configure.ac: Add tests for fstatat, sighandler_t, O_CLOEXEC,
1211 unix-domain and ipv6 sockets.
1212 * config.in: Rebuilt.
1213 * configure: Rebuilt.
1214
1215 2020-11-19 Dimitar Dimitrov <dimitar@dinux.eu>
1216
1217 * config/pru/alu-zext.md: Add lmbd patterns for zero_extend
1218 variants.
1219 * config/pru/pru.c (enum pru_builtin): Add HALT and LMBD.
1220 (pru_init_builtins): Ditto.
1221 (pru_builtin_decl): Ditto.
1222 (pru_expand_builtin): Ditto.
1223 * config/pru/pru.h (CLZ_DEFINED_VALUE_AT_ZERO): Define PRU
1224 value for CLZ with zero value parameter.
1225 * config/pru/pru.md: Add halt, lmbd and clz patterns.
1226 * doc/extend.texi: Document PRU builtins.
1227
1228 2020-11-19 Richard Sandiford <richard.sandiford@arm.com>
1229
1230 * doc/invoke.texi (-fvect-cost-model): Add a very-cheap model.
1231 * common.opt (fvect-cost-model=): Add very-cheap as a possible option.
1232 (fsimd-cost-model=): Likewise.
1233 (vect_cost_model): Add very-cheap.
1234 * flag-types.h (vect_cost_model): Add VECT_COST_MODEL_VERY_CHEAP.
1235 Put the values in order of increasing aggressiveness.
1236 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Use
1237 range checks when comparing against VECT_COST_MODEL_CHEAP.
1238 (vect_prune_runtime_alias_test_list): Do not allow any alias
1239 checks for the very-cheap cost model.
1240 * tree-vect-loop.c (vect_analyze_loop_costing): Do not allow
1241 any peeling for the very-cheap cost model. Also require one
1242 iteration of the vector loop to pay for itself.
1243
1244 2020-11-19 Wilco Dijkstra <wdijkstr@arm.com>
1245
1246 * config/aarch64/aarch64.c (neoversen1_tunings): Use new
1247 cortexa76_extra_costs.
1248 (neoversev1_tunings): Likewise.
1249 (neoversen2_tunines): Likewise.
1250 * config/arm/aarch-cost-tables.h (cortexa76_extra_costs):
1251 add new costs.
1252
1253 2020-11-19 Wilco Dijkstra <wdijkstr@arm.com>
1254
1255 * config/aarch64/aarch64.c (aarch64_expand_cpymem): Cleanup code and
1256 comments, tweak expansion decisions and improve tail expansion.
1257
1258 2020-11-19 Richard Biener <rguenther@suse.de>
1259
1260 * fold-const.c (operand_compare::hash_operand): Fix typo.
1261
1262 2020-11-19 Richard Biener <rguenther@suse.de>
1263
1264 * tree-ssa-reassoc.c (get_rank): Refactor to consistently
1265 use the cache and dump ranks assigned.
1266
1267 2020-11-19 Jan Hubicka <jh@suse.cz>
1268
1269 * fold-const.c (operand_compare::operand_equal_p): More OBJ_TYPE_REF
1270 matching to correct place; drop OEP_ADDRESS_OF for TOKEN, OBJECT and
1271 class.
1272 (operand_compare::hash_operand): Hash ODR type for OBJ_TYPE_REF.
1273
1274 2020-11-19 Joel Hutton <joel.hutton@arm.com>
1275
1276 * config/aarch64/aarch64-simd.md: Add vec_widen_lshift_hi/lo<mode>
1277 patterns.
1278 * tree-vect-stmts.c (vectorizable_conversion): Fix for widen_lshift
1279 case.
1280
1281 2020-11-19 Joel Hutton <joel.hutton@arm.com>
1282
1283 * doc/generic.texi: Document new widen_plus/minus_lo/hi tree codes.
1284 * doc/md.texi: Document new widenening add/subtract hi/lo optabs.
1285 * expr.c (expand_expr_real_2): Add widen_add, widen_subtract cases.
1286 * optabs-tree.c (optab_for_tree_code): Add case for widening optabs.
1287 * optabs.def (OPTAB_D): Define vectorized widen add, subtracts.
1288 * tree-cfg.c (verify_gimple_assign_binary): Add case for widening adds,
1289 subtracts.
1290 * tree-inline.c (estimate_operator_cost): Add case for widening adds,
1291 subtracts.
1292 * tree-vect-generic.c (expand_vector_operations_1): Add case for
1293 widening adds, subtracts
1294 * tree-vect-patterns.c (vect_recog_widen_add_pattern): New recog
1295 pattern.
1296 (vect_recog_widen_sub_pattern): New recog pattern.
1297 (vect_recog_average_pattern): Update widened add code.
1298 (vect_recog_average_pattern): Update widened add code.
1299 * tree-vect-stmts.c (vectorizable_conversion): Add case for widened add,
1300 subtract.
1301 (supportable_widening_operation): Add case for widened add, subtract.
1302 * tree.def
1303 (WIDEN_PLUS_EXPR): New tree code.
1304 (WIDEN_MINUS_EXPR): New tree code.
1305 (VEC_WIDEN_ADD_HI_EXPR): New tree code.
1306 (VEC_WIDEN_PLUS_LO_EXPR): New tree code.
1307 (VEC_WIDEN_MINUS_HI_EXPR): New tree code.
1308 (VEC_WIDEN_MINUS_LO_EXPR): New tree code.
1309
1310 2020-11-19 Joel Hutton <joel.hutton@arm.com>
1311
1312 * config/aarch64/aarch64-simd.md: New patterns
1313 vec_widen_saddl_lo/hi_<mode>.
1314
1315 2020-11-19 Richard Biener <rguenther@suse.de>
1316
1317 PR tree-optimization/97901
1318 * tree-ssa-propagate.c (clean_up_loop_closed_phi): Compute
1319 dominators and use replace_uses_by.
1320
1321 2020-11-19 Eric Botcazou <ebotcazou@adacore.com>
1322
1323 * dwarf2out.h (struct fixed_point_type_info) <scale_factor>: Turn
1324 numerator and denominator into a tree.
1325 * dwarf2out.c (base_type_die): In the case of a fixed-point type
1326 with arbitrary scale factor, call add_scalar_info on numerator and
1327 denominator to emit the appropriate attributes.
1328
1329 2020-11-19 Richard Biener <rguenther@suse.de>
1330
1331 PR tree-optimization/97897
1332 * tree-complex.c (complex_propagate::visit_stmt): Make sure
1333 abnormally used SSA names are VARYING.
1334 (complex_propagate::visit_phi): Likewise.
1335 * tree-ssa.c (verify_phi_args): Verify PHI arguments on abnormal
1336 edges are SSA names.
1337
1338 2020-11-19 Uroš Bizjak <ubizjak@gmail.com>
1339
1340 * config/i386/i386.md (*<absneg:code><mode>2_i387_1):
1341 Disable for TARGET_SSE_MATH modes.
1342
1343 2020-11-19 Jeff Law <law@redhat.com>
1344
1345 * config/h8300/constraints.md (R constraint): Add argument to call
1346 to h8300_shift_needs_scratch_p.
1347 (S and T constraints): Similary.
1348 * config/h8300/h8300-protos.h: Update h8300_shift_needs_scratch_p
1349 prototype.
1350 * config/h8300/h8300.c (expand_a_shift): Emit a different pattern
1351 if the shift does not require a scratch register.
1352 (h8300_shift_needs_scratch_p): Refine to be more accurate.
1353 * config/h8300/shiftrotate.md (shiftqi_noscratch): New pattern.
1354 (shifthi_noscratch, shiftsi_noscratch): Similarly.
1355
1356 2020-11-18 Roger Sayle <roger@nextmovesoftware.com>
1357
1358 PR middle-end/85811
1359 * fold-const.c (tree_expr_finite_p): New function to test whether
1360 a tree expression must be finite, i.e. not a FP NaN or infinity.
1361 (tree_expr_infinite_p): New function to test whether a tree
1362 expression must be infinite, i.e. a FP infinity.
1363 (tree_expr_maybe_infinite_p): New function to test whether a tree
1364 expression may be infinite, i.e. a FP infinity.
1365 (tree_expr_signaling_nan_p): New function to test whether a tree
1366 expression must evaluate to a signaling NaN (sNaN).
1367 (tree_expr_maybe_signaling_nan_p): New function to test whether a
1368 tree expression may be a signaling NaN (sNaN).
1369 (tree_expr_nan_p): New function to test whether a tree expression
1370 must evaluate to a (quiet or signaling) NaN.
1371 (tree_expr_maybe_nan_p): New function to test whether a tree
1372 expression me be a (quiet or signaling) NaN.
1373 (tree_binary_nonnegative_warnv_p) [MAX_EXPR]: In the presence
1374 of NaNs, MAX_EXPR is only guaranteed to be non-negative, if both
1375 operands are non-negative.
1376 (tree_call_nonnegative_warnv_p) [CASE_CFN_FMAX,CASE_CFN_FMAX_FN]:
1377 In the presence of signaling NaNs, fmax is only guaranteed to be
1378 non-negative if both operands are negative. In the presence of
1379 quiet NaNs, fmax is non-negative if either operand is non-negative
1380 and not a qNaN, or both operands are non-negative.
1381 * fold-const.h (tree_expr_finite_p, tree_expr_infinite_p,
1382 tree_expr_maybe_infinite_p, tree_expr_signaling_nan_p,
1383 tree_expr_maybe_signaling_nan_p, tree_expr_nan_p,
1384 tree_expr_maybe_nan_p): Prototype new functions here.
1385 * builtins.c (fold_builtin_classify) [BUILT_IN_ISINF]: Fold to
1386 a constant if argument is known to be (or not to be) an Infinity.
1387 [BUILT_IN_ISFINITE]: Fold to a constant if argument is known to
1388 be (or not to be) finite.
1389 [BUILT_IN_ISNAN]: Fold to a constant if argument is known to be
1390 (or not to be) a NaN.
1391 (fold_builtin_fpclassify): Check tree_expr_maybe_infinite_p and
1392 tree_expr_maybe_nan_p instead of HONOR_INFINITIES and HONOR_NANS
1393 respectively.
1394 (fold_builtin_unordered_cmp): Fold UNORDERED_EXPR to a constant
1395 when its arguments are known to be (or not be) NaNs. Check
1396 tree_expr_maybe_nan_p instead of HONOR_NANS when choosing between
1397 unordered and regular forms of comparison operators.
1398 * match.pd (ordered(x,y)->true/false): Constant fold ORDERED_EXPR
1399 if its operands are known to be (or not to be) NaNs.
1400 (unordered(x,y)->true/false): Constant fold UNORDERED_EXPR if its
1401 operands are known to be (or not to be) NaNs.
1402 (sqrt(x)*sqrt(x)->x): Check tree_expr_maybe_signaling_nan_p instead
1403 of HONOR_SNANS.
1404
1405 2020-11-18 Jakub Jelinek <jakub@redhat.com>
1406
1407 PR tree-optimization/91029
1408 PR tree-optimization/97888
1409 * range-op.cc (operator_trunc_mod::op1_range): Only set op1
1410 range to >= 0 if lhs is > 0, rather than >= 0. Fix up comments.
1411
1412 2020-11-18 Jakub Jelinek <jakub@redhat.com>
1413
1414 * opts.h (struct cl_var): New type.
1415 (cl_vars): Declare.
1416 * optc-gen.awk: Generate cl_vars array.
1417
1418 2020-11-18 Eugene Rozenfeld <Eugene.Rozenfeld@microsoft.com>
1419
1420 PR tree-optimization/96671
1421 * match.pd (three xor patterns): New patterns.
1422
1423 2020-11-18 Jakub Jelinek <jakub@redhat.com>
1424
1425 * optc-save-gen.awk: Initialize var_opt_init. In
1426 cl_optimization_stream_out for params with default values larger than
1427 10, xor the default value with the actual parameter value. In
1428 cl_optimization_stream_in repeat the above xor.
1429
1430 2020-11-18 Jakub Jelinek <jakub@redhat.com>
1431
1432 * configure.ac: Add $lang.prev rules, INDEX.$lang and SERIAL_LIST and
1433 SERIAL_COUNT variables to Make-hooks.
1434 (--enable-link-serialization): New configure option.
1435 * Makefile.in (DO_LINK_SERIALIZATION, LINK_PROGRESS): New variables.
1436 * doc/install.texi (--enable-link-serialization): Document.
1437 * configure: Regenerated.
1438
1439 2020-11-18 Vladimir Makarov <vmakarov@redhat.com>
1440
1441 PR target/97870
1442 * lra-constraints.c (curr_insn_transform): Do not delete asm goto
1443 with wrong constraints. Nullify it saving CFG.
1444
1445 2020-11-18 Jozef Lawrynowicz <jozef.l@mittosystems.com>
1446
1447 * config/msp430/msp430.md (mulhi3): New.
1448 (mulsi3): New.
1449 (mulsidi3): Rename to *mulsidi3_inline.
1450 (umulsidi3): Rename to *umulsidi3_inline.
1451 (mulsidi3): New define_expand.
1452 (umulsidi3): New define_expand.
1453
1454 2020-11-18 Richard Biener <rguenther@suse.de>
1455
1456 PR tree-optimization/97886
1457 * tree-vect-loop.c (vectorizable_lc_phi): Properly assign
1458 vector types to invariants for SLP.
1459
1460 2020-11-18 Iain Buclaw <ibuclaw@gdcproject.org>
1461
1462 * config.gcc (*-*-dragonfly*): Add dragonfly-d.o and t-dragonfly.
1463 * config/dragonfly-d.c: New file.
1464 * config/t-dragonfly: New file.
1465
1466 2020-11-18 Jakub Jelinek <jakub@redhat.com>
1467
1468 PR middle-end/97862
1469 * omp-expand.c (expand_omp_for_init_vars): Don't use the sqrt path
1470 if number of iterations is constant 0.
1471
1472 2020-11-18 Kito Cheng <kito.cheng@sifive.com>
1473
1474 * common/config/riscv/riscv-common.c (riscv_ext_version): New.
1475 (riscv_ext_version_table): Ditto.
1476 (get_default_version): Ditto.
1477 (riscv_subset_t::implied_p): New field.
1478 (riscv_subset_t::riscv_subset_t): Init implied_p.
1479 (riscv_subset_list::add): New.
1480 (riscv_subset_list::handle_implied_ext): Pass riscv_subset_t
1481 instead of separated argument.
1482 (riscv_subset_list::to_string): Handle zifencei and zicsr, and
1483 omit version if version is unknown.
1484 (riscv_subset_list::parsing_subset_version): New argument `ext`,
1485 remove default_major_version and default_minor_version, get
1486 default version info via get_default_version.
1487 (riscv_subset_list::parse_std_ext): Update argument for
1488 parsing_subset_version calls.
1489 Handle 2.2 ISA spec, always enable zicsr and zifencei, they are
1490 included in baseline ISA in that time.
1491 (riscv_subset_list::parse_multiletter_ext): Update argument for
1492 `parsing_subset_version` and `add` calls.
1493 (riscv_subset_list::parse): Adjust argument for
1494 riscv_subset_list::handle_implied_ext call.
1495 * config.gcc (riscv*-*-*): Handle --with-isa-spec=.
1496 * config.in (HAVE_AS_MISA_SPEC): New.
1497 (HAVE_AS_MARCH_ZIFENCEI): Ditto.
1498 * config/riscv/riscv-opts.h (riscv_isa_spec_class): New.
1499 (riscv_isa_spec): Ditto.
1500 * config/riscv/riscv.h (HAVE_AS_MISA_SPEC): New.
1501 (ASM_SPEC): Pass -misa-spec if gas supported.
1502 * config/riscv/riscv.opt (riscv_isa_spec_class) New.
1503 * configure.ac (HAVE_AS_MARCH_ZIFENCEI): New test.
1504 (HAVE_AS_MISA_SPEC): Ditto.
1505 * configure: Regen.
1506
1507 2020-11-18 Kito Cheng <kito.cheng@sifive.com>
1508
1509 * common/config/riscv/riscv-common.c (riscv_implied_info):
1510 d and f implied zicsr.
1511 (riscv_ext_flag_table): Handle zicsr and zifencei.
1512 * config/riscv/riscv-opts.h (MASK_ZICSR): New.
1513 (MASK_ZIFENCEI): Ditto.
1514 (TARGET_ZICSR): Ditto.
1515 (TARGET_ZIFENCEI): Ditto.
1516 * config/riscv/riscv.md (clear_cache): Check TARGET_ZIFENCEI.
1517 (fence_i): Ditto.
1518 * config/riscv/riscv.opt (riscv_zi_subext): New.
1519
1520 2020-11-18 Kito Cheng <kito.cheng@sifive.com>
1521
1522 * common/config/riscv/riscv-common.c (single_letter_subset_rank): New.
1523 (multi_letter_subset_rank): Ditto.
1524 (subset_cmp): Ditto.
1525 (riscv_subset_list::add): Insert subext in canonical ordering.
1526 (riscv_subset_list::parse_std_ext): Move handle_implied_ext to ...
1527 (riscv_subset_list::parse): ... here.
1528
1529 2020-11-18 Jiufu Guo <guojiufu@linux.ibm.com>
1530
1531 * cfgloop.h (loop_optimizer_finalize): Add flag argument.
1532 * loop-init.c (loop_optimizer_finalize): Call clean_up_loop_closed_phi.
1533 * tree-cfgcleanup.h (clean_up_loop_closed_phi): New declare.
1534 * tree-ssa-loop.c (tree_ssa_loop_done): Call loop_optimizer_finalize
1535 with flag argument.
1536 * tree-ssa-propagate.c (clean_up_loop_closed_phi): New function.
1537
1538 2020-11-17 Sebastian Pop <spop@amazon.com>
1539
1540 * config.gcc: add configure flags --with-{cpu,arch,tune}-{32,64}
1541 as alias flags for --with-{cpu,arch,tune} on AArch64.
1542 * doc/install.texi: Document new flags for aarch64.
1543
1544 2020-11-17 Sebastian Pop <spop@amazon.com>
1545
1546 * config.gcc: Add --with-tune to AArch64 configure flags.
1547
1548 2020-11-17 Andrew MacLeod <amacleod@redhat.com>
1549
1550 PR tree-optimization/91029
1551 * range-op.cc (operator_trunc_mod::op1_range): New.
1552
1553 2020-11-17 Jan Hubicka <jh@suse.cz>
1554
1555 * ipa-icf.c (sem_function::hash_stmt): Fix conditional on
1556 variably_modified_type_p.
1557
1558 2020-11-17 Nathan Sidwell <nathan@acm.org>
1559
1560 * tree.h (cache_integer_cst): Add defaulted might_duplicate parm.
1561 * tree.c (cache_integer_cst): Return the integer cst, add
1562 might_duplicate parm to permit finding a small duplicate.
1563
1564 2020-11-17 Andrew MacLeod <amacleod@redhat.com>
1565
1566 PR tree-optimization/83072
1567 * range-op.cc (wi_optimize_and_or): Remove zero from IOR range when
1568 mask is non-zero.
1569
1570 2020-11-17 Joseph Myers <joseph@codesourcery.com>
1571
1572 * ginclude/float.h (CR_DECIMAL_DIG): Also define for
1573 [__STDC_WANT_IEC_60559_EXT__].
1574
1575 2020-11-17 Joseph Myers <joseph@codesourcery.com>
1576
1577 * ginclude/float.h [__STDC_VERSION__ > 201710L] (FLT_IS_IEC_60559,
1578 DBL_IS_IEC_60559, LDBL_IS_IEC_60559): New macros.
1579
1580 2020-11-17 Aaron Sawdey <acsawdey@linux.ibm.com>
1581
1582 PR target/96791
1583 * mode-classes.def: Add MODE_OPAQUE.
1584 * machmode.def: Add OPAQUE_MODE.
1585 * tree.def: Add OPAQUE_TYPE for types that will use
1586 MODE_OPAQUE.
1587 * doc/generic.texi: Document OPAQUE_TYPE.
1588 * doc/rtl.texi: Document MODE_OPAQUE.
1589 * machmode.h: Add OPAQUE_MODE_P().
1590 * genmodes.c (complete_mode): Add MODE_OPAQUE.
1591 (opaque_mode): New function.
1592 * tree.c (tree_code_size): Add OPAQUE_TYPE.
1593 * tree.h: Add OPAQUE_TYPE_P().
1594 * stor-layout.c (int_mode_for_mode): Treat MODE_OPAQUE modes
1595 like BLKmode.
1596 * ira.c (find_moveable_pseudos): Treat MODE_OPAQUE modes more
1597 like integer/float modes here.
1598 * dbxout.c (dbxout_type): Treat OPAQUE_TYPE like VOID_TYPE.
1599 * tree-pretty-print.c (dump_generic_node): Treat OPAQUE_TYPE
1600 like like other types.
1601
1602 2020-11-17 Jan Hubicka <hubicka@ucw.cz>
1603 Martin Liska <mliska@suse.cz>
1604
1605 * ipa-icf.c: Include data-streamer.h and alias.h.
1606 (sem_function::sem_function): Initialize memory_access_types
1607 and m_alias_sets_hash.
1608 (sem_function::hash_stmt): For memory accesses and when going to
1609 do lto streaming add base and ref types into memory_access_types.
1610 (sem_item_optimizer::write_summary): Stream memory access types.
1611 (sem_item_optimizer::read_section): Likewise and also iniitalize
1612 m_alias_sets_hash.
1613 (sem_item_optimizer::execute): Call
1614 sem_item_optimizer::update_hash_by_memory_access_type.
1615 (sem_item_optimizer::update_hash_by_memory_access_type): Updat.
1616 * ipa-icf.h (sem_function): Add memory_access_types and
1617 m_alias_sets_hash.
1618
1619 2020-11-17 Jan Hubicka <jh@suse.cz>
1620
1621 PR bootstrap/97857
1622 * ipa-devirt.c (odr_based_tbaa_p): Do not ICE when
1623 odr_hash is not initialized
1624 * ipa-utils.h (type_with_linkage_p): Do not sanity check
1625 CXX_ODR_P.
1626 * tree-streamer-out.c (pack_ts_type_common_value_fields): Set
1627 CXX_ODR_P according to the canonical type.
1628
1629 2020-11-17 Nathan Sidwell <nathan@acm.org>
1630
1631 * langhooks-def.h (LANG_HOOKS_PREPROCESS_MAIN_FILE)
1632 (LANG_HOOKS_PREPROCESS_OPTIONS, LANG_HOOKS_PREPROCESS_UNDEF)
1633 (LANG_HOOKS_PREPROCESS_TOKEN): New.
1634 (LANG_HOOKS_INITIALIZER): Add them.
1635 * langhooks.h (struct lang_hooks): Add preprocess_main_file,
1636 preprocess_options, preprocess_undef, preprocess_token hooks. Add
1637 enum PT_flags.
1638
1639 2020-11-17 Richard Sandiford <richard.sandiford@arm.com>
1640
1641 PR tree-optimization/97693
1642 * tree-vect-stmts.c (vectorizable_call): Pass the required vectype
1643 to vect_get_vec_defs_for_operand.
1644
1645 2020-11-17 Liu Hao <lh_mouse@126.com>
1646
1647 * config/i386/msformat-c.c: Add more length modifiers.
1648
1649 2020-11-17 Tamar Christina <tamar.christina@arm.com>
1650
1651 PR driver/97574
1652 * gcc.c (convert_filename): Don't add suffix to things that are
1653 not files.
1654 (not_actual_file_p): Use supplied argument.
1655
1656 2020-11-17 Haochen Gui <guihaoc@gcc.gnu.org>
1657
1658 * final.c (final_scan_insn_1): Set jump table relocatable as the
1659 second argument of targetm.asm_out.function_rodata_section.
1660 * output.h (default_function_rodata_section,
1661 default_no_function_rodata_section): Add the second argument to the
1662 declarations.
1663 * target.def (function_rodata_section): Change the doc and add
1664 the second argument.
1665 * doc/tm.texi: Regenerate.
1666 * varasm.c (jumptable_relocatable): Implement.
1667 (default_function_rodata_section): Add the second argument
1668 and the support for relocatable read only sections.
1669 (default_no_function_rodata_section): Add the second argument.
1670 (function_mergeable_rodata_prefix): Set the second argument to false.
1671 * config/mips/mips.c (mips_function_rodata_section): Add the second
1672 arugment and set it to false.
1673 * config/s390/s390.c (targetm.asm_out.function_rodata_section): Set
1674 the second argument to false.
1675 * config/s390/s390.md: Likewise.
1676
1677 2020-11-17 liuhongt <hongtao.liu@intel.com>
1678
1679 PR target/97194
1680 * config/i386/i386-expand.c (ix86_expand_vector_set_var): New function.
1681 * config/i386/i386-protos.h (ix86_expand_vector_set_var): New Decl.
1682 * config/i386/predicates.md (vec_setm_operand): New predicate,
1683 true for const_int_operand or register_operand under TARGET_AVX2.
1684 * config/i386/sse.md (vec_set<mode>): Support both constant
1685 and variable index vec_set.
1686
1687 2020-11-17 Martin Sebor <msebor@redhat.com>
1688
1689 * tree-ssa-uninit.c (maybe_warn_operand): Call is_empty_type.
1690 * tree.c (default_is_empty_type): Rename...
1691 (is_empty_type): ...to this.
1692 * tree.h (is_empty_type): Declare.
1693
1694 2020-11-17 Martin Sebor <msebor@redhat.com>
1695
1696 PR middle-end/95673
1697 * tree-ssa-strlen.c (used_only_for_zero_equality): Rename...
1698 (use_in_zero_equality): ...to this. Add a default argument.
1699 (handle_builtin_memcmp): Adjust to the name change above.
1700 (handle_builtin_string_cmp): Same.
1701 (maybe_warn_pointless_strcmp): Same. Pass in an explicit argument.
1702
1703 2020-11-17 Joseph Myers <joseph@codesourcery.com>
1704
1705 * ginclude/float.h (DEC32_SNAN, DEC64_SNAN, DEC128_SNAN): New C2x
1706 macros.
1707
1708 2020-11-17 Joseph Myers <joseph@codesourcery.com>
1709
1710 * ginclude/float.h (INFINITY, NAN, FLT_SNAN, DBL_SNAN, LDBL_SNAN)
1711 (FLT16_SNAN, FLT32_SNAN, FLT64_SNAN, FLT128_SNAN, FLT32X_SNAN)
1712 (FLT64X_SNAN, FLT128X_SNAN, DEC_INFINITY, DEC_NAN): New C2x
1713 macros.
1714 * doc/sourcebuild.texi (Effective-Target Keywords): Document inff.
1715
1716 2020-11-17 Armin Brauns via Gcc-patches <gcc-patches@gcc.gnu.org>
1717
1718 * gcc.c: Document %T spec file directive.
1719 * doc/invoke.texi: Remove %p, %P spec file directives.
1720 Add %M, %R, %V, %nSTR, %>S, %<S*, %{%:function(args):X}, %@{...} spec
1721 file directives add sanitize, version-compare, include, gt and
1722 debug-level-gt spec functions.
1723
1724 2020-11-16 Roger Sayle <roger@nextmovesoftware.com>
1725
1726 PR rtl-optimization/92180
1727 * config/i386/i386.c (ix86_hardreg_mov_ok): New function to
1728 determine whether (set DST SRC) should be allowed at this point.
1729 * config/i386/i386-protos.h (ix86_hardreg_mov_ok): Prototype here.
1730 * config/i386/i386-expand.c (ix86_expand_move): Check whether
1731 this is a complex set of a likely spilled hard register, and if
1732 so place the value in a pseudo, and load the hard reg from it.
1733 * config/i386/i386.md (*movdi_internal, *movsi_internal)
1734 (*movhi_internal, *movqi_internal): Make these instructions
1735 conditional on ix86_hardreg_mov_ok.
1736 (*lea<mode>): Make this define_insn_and_split conditional on
1737 ix86_hardreg_mov_ok.
1738
1739 2020-11-16 Martin Liska <mliska@suse.cz>
1740
1741 * params.opt: Add missing dot.
1742
1743 2020-11-16 Jan Hubicka <jh@suse.cz>
1744
1745 * ipa-modref.c (escape_point): New type.
1746 (modref_lattice): New type.
1747 (escape_entry): New type.
1748 (escape_summary): New type.
1749 (escape_summaries_t): New type.
1750 (escape_summaries): New static variable.
1751 (eaf_flags_useful_p): New function.
1752 (modref_summary::useful_p): Add new check_flags
1753 attribute; check eaf_flags for usefulness.
1754 (modref_summary_lto): Add arg_flags.
1755 (modref_summary_lto::useful_p): Add new check_flags
1756 attribute; check eaf_flags for usefulness.
1757 (dump_modref_edge_summaries): New function.
1758 (remove_modref_edge_summaries): New function.
1759 (ignore_retval_p): New predicate.
1760 (ignore_stores_p): Also ignore for const.
1761 (remove_summary): Call remove_modref_edge_summaries.
1762 (modref_lattice::init): New member function.
1763 (modref_lattice::release): New member unction.
1764 (modref_lattice::dump): New member function.
1765 (modref_lattice::add_escape_point): New member function.
1766 (modref_lattice::merge): Two new member functions.
1767 (modref_lattice::merge_deref): New member functions.
1768 (modref_lattice::merge_direct_load): New member function.
1769 (modref_lattice::merge_direct_store): New member function.
1770 (call_lhs_flags): Rename to ...
1771 (merge_call_lhs_flags): ... this one; reimplement using
1772 modreflattice.
1773 (analyze_ssa_name_flags): Replace KNOWN_FLAGS param by LATTICE;
1774 add IPA parametr; use modref_lattice.
1775 (analyze_parms): New parameter IPA and SUMMARY_LTO; update for
1776 modref_lattice; initialize escape_summary.
1777 (analyze_function): Allocate escape_summaries; update uses of useful_p.
1778 (modref_write_escape_summary): New function.
1779 (modref_read_escape_summary): New function.
1780 (modref_write): Write escape summary.
1781 (read_section): Read escape summary.
1782 (modref_read): Initialie escape_summaries.
1783 (remap_arg_flags): New function.
1784 (update_signature): Use it.
1785 (escape_map): New structure.
1786 (update_escape_summary_1, update_escape_summary): New functions.
1787 (ipa_merge_modref_summary_after_inlining): Merge escape summaries.
1788 (propagate_unknown_call): Do not remove useless summaries.
1789 (remove_useless_summaries): Remove them here.
1790 (modref_propagate_in_scc): Update; do not dump scc.
1791 (modref_propagate_dump_scc): New function.
1792 (modref_merge_call_site_flags): New function.
1793 (modref_propagate_flags_in_scc): New function.
1794 (pass_ipa_modref::execute): Use modref_propagate_flags_in_scc
1795 and modref_propagate_dump_scc; delete escape_summaries.
1796 (ipa_modref_c_finalize): Remove escape_summaries.
1797 * ipa-modref.h (modref_summary): Update prototype of useful_p.
1798 * params.opt (param=modref-max-escape-points): New param.
1799 * doc/invoke.texi (modref-max-escape-points): Document.
1800
1801 2020-11-16 Jan Hubicka <jh@suse.cz>
1802
1803 PR middle-end/97840
1804 * ipa-modref.c (analyze_ssa_name_flags): Skip clobbers if inlining
1805 is done.
1806 * tree-ssa-uninit.c (maybe_warn_pass_by_reference): Make stmt gcall;
1807 skip const calls and unused arguments.
1808 (warn_uninitialized_vars): Update prototype.
1809
1810 2020-11-16 Richard Biener <rguenther@suse.de>
1811
1812 * tree-vectorizer.h (vect_gather_slp_loads): Declare.
1813 * tree-vect-loop.c (vect_analyze_loop_2): Call
1814 vect_gather_slp_loads.
1815 * tree-vect-slp.c (vect_build_slp_instance): Do not gather
1816 SLP loads here.
1817 (vect_gather_slp_loads): Remove wrapper, new function.
1818 (vect_slp_analyze_bb_1): Call it.
1819
1820 2020-11-16 Richard Biener <rguenther@suse.de>
1821
1822 * tree-ssa-loop-im.c (analyze_memory_references): Add
1823 store_motion parameter and elide unnecessary work.
1824 (tree_ssa_lim_initialize): Likewise.
1825 (loop_invariant_motion_in_fun): Pass down store_motion.
1826
1827 2020-11-16 Martin Liska <mliska@suse.cz>
1828
1829 * params.opt: All modref parameters miss Optimization and Param
1830 keyword as seen in testsuite failure.
1831
1832 2020-11-16 Jan Hubicka <jh@suse.cz>
1833
1834 * params.opt (-param=modref-max-depth=): Add missing full stop.
1835
1836 2020-11-16 Sebastian Huber <sebastian.huber@embedded-brains.de>
1837
1838 * common.opt (fprofile-info-section): New.
1839 * coverage.c (build_gcov_info_var_registration): New.
1840 (coverage_obj_init): Evaluate profile_info_section and use
1841 build_gcov_info_var_registration().
1842 * doc/invoke.texi (fprofile-info-section): Document.
1843 * opts.c (common_handle_option): Process fprofile-info-section
1844 option.
1845
1846 2020-11-16 Richard Biener <rguenther@suse.de>
1847
1848 PR tree-optimization/97838
1849 * tree-vect-slp.c (vect_slp_build_vertices): Properly handle
1850 not backwards reachable cycles.
1851 (vect_optimize_slp): Check a node is leaf before marking it
1852 visited.
1853
1854 2020-11-16 Martin Liska <mliska@suse.cz>
1855
1856 PR tree-optimization/97736
1857 * tree-switch-conversion.c (switch_decision_tree::analyze_switch_statement):
1858 Prefer bit tests.
1859
1860 2020-11-16 Richard Biener <rguenther@suse.de>
1861
1862 PR tree-optimization/97835
1863 * tree-vect-loop.c (vectorizable_induction): Convert step
1864 scalars rather than step vector.
1865
1866 2020-11-16 Richard Biener <rguenther@suse.de>
1867
1868 PR tree-optimization/97830
1869 * tree-ssa-sccvn.c (vn_reference_eq): Check for incomplete
1870 types before comparing TYPE_SIZE.
1871
1872 2020-11-16 Cui,Lili <lili.cui@intel.com>
1873
1874 * config/i386/i386.h: Add PREFETCHW to march=broadwell.
1875 * doc/invoke.texi: Put PREFETCHW back to relation arch.
1876
1877 2020-11-15 Jozef Lawrynowicz <jozef.l@mittosystems.com>
1878
1879 * config/msp430/msp430.c (msp430_output_labelref): Don't process mspabi
1880 hwmult library function names into GCC-style names.
1881
1882 2020-11-15 Jozef Lawrynowicz <jozef.l@mittosystems.com>
1883
1884 * config/msp430/msp430.c (msp430_use_16bit_hwmult): New.
1885 (use_32bit_hwmult): Rename to..
1886 (msp430_use_32bit_hwmult): ..this.
1887 (msp430_muldiv_costs): Use msp430_use_16bit_hwmult and
1888 msp430_use_32bit_hwmult.
1889 (msp430_expand_helper): Use msp430_use_16bit_hwmult and
1890 msp430_use_32bit_hwmult.
1891 (msp430_output_labelref): Use msp430_use_32bit_hwmult.
1892
1893 2020-11-15 Maciej W. Rozycki <macro@linux-mips.org>
1894
1895 * config/vax/vax.c (vax_rtx_costs): Use `rtx_code' rather than
1896 `int' for `code'.
1897
1898 2020-11-15 Maciej W. Rozycki <macro@linux-mips.org>
1899
1900 * config/vax/vax.c (vax_output_int_add) <E_DImode>: Fix a typo
1901 in NO_EXTERNAL_INDIRECT_ADDRESS.
1902
1903 2020-11-15 Maciej W. Rozycki <macro@linux-mips.org>
1904
1905 * config/vax/vax.c (vax_output_int_add) <E_SImode>: Also check
1906 `operands[2]' for being symbolic with PIC rather than checking
1907 `operands[1]' twice.
1908
1909 2020-11-15 Aldy Hernandez <aldyh@redhat.com>
1910
1911 * vr-values.c (vr_values::extract_range_builtin): Rename to...
1912 (vr_values::extract_range_from_ubsan_builtin): ...this.
1913 Remove everything but UBSAN code.
1914 (vr_values::extract_range_basic): Call ranger version for
1915 everything except UBSAN built-ins.
1916 * vr-values.h (class vr_values): Rename extract_range_builtin to
1917 extract_range_from_ubsan_builtin.
1918
1919 2020-11-15 Vladimir N. Makarov <vmakarov@redhat.com>
1920
1921 * lra.c (lra_process_new_insns): Don't put reload insns in the
1922 last empty BB.
1923
1924 2020-11-15 Jan Hubicka <jh@suse.cz>
1925
1926 * ipa-modref.c (analyze_ssa_name_flags): Make return to clear
1927 EAF_UNUSED flag.
1928
1929 2020-11-14 Jan Hubicka <jh@suse.cz>
1930
1931 * gimple.c: Include ipa-modref-tree.h and ipa-modref.h.
1932 (gimple_call_arg_flags): Use modref to determine flags.
1933 * ipa-modref.c: Include gimple-ssa.h, tree-phinodes.h,
1934 tree-ssa-operands.h, stringpool.h and tree-ssanames.h.
1935 (analyze_ssa_name_flags): Declare.
1936 (modref_summary::useful_p): Summary is also useful if arg flags are
1937 known.
1938 (dump_eaf_flags): New function.
1939 (modref_summary::dump): Use it.
1940 (get_modref_function_summary): Be read for current_function_decl
1941 being NULL.
1942 (memory_access_to): New function.
1943 (deref_flags): New function.
1944 (call_lhs_flags): New function.
1945 (analyze_parms): New function.
1946 (analyze_function): Use it.
1947 * ipa-modref.h (struct modref_summary): Add arg_flags.
1948 * doc/invoke.texi (ipa-modref-max-depth): Document.
1949 * params.opt (ipa-modref-max-depth): New param.
1950
1951 2020-11-14 Jakub Jelinek <jakub@redhat.com>
1952
1953 PR debug/97599
1954 * dwarf2out.c (gen_subprogram_die): Call
1955 gen_unspecified_parameters_die even if not early dwarf, but only
1956 if subr_die is a newly created DIE.
1957
1958 2020-11-14 Monk Chiang <monk.chiang@sifive.com>
1959
1960 PR target/97682
1961 * config/riscv/riscv.h (RISCV_PROLOGUE_TEMP_REGNUM): Change register
1962 to t0.
1963 (RISCV_CALL_ADDRESS_TEMP_REGNUM): New Marco, define t1 register.
1964 (RISCV_CALL_ADDRESS_TEMP): Use it for call instructions.
1965 * config/riscv/riscv.c (riscv_legitimize_call_address): Use
1966 RISCV_CALL_ADDRESS_TEMP.
1967 (riscv_compute_frame_info): Change temporary register to t0 form t1.
1968 (riscv_trampoline_init): Adjust comment.
1969
1970 2020-11-14 Jim Wilson <jimw@sifive.com>
1971 cooper.joshua <cooper.joshua@linux.alibaba.com>
1972
1973 * config/riscv/riscv.c (riscv_asan_shadow_offset): New.
1974 (TARGET_ASAN_SHADOW_OFFSET): New.
1975 * doc/tm.texi: Regenerated.
1976 * target.def (asan_shadow_offset); Mention that it can return zero.
1977 * toplev.c (process_options): Check for and handle zero return from
1978 targetm.asan_shadow_offset call.
1979
1980 2020-11-14 Jakub Jelinek <jakub@redhat.com>
1981
1982 * gimplify.c (gimplify_omp_for): Add OMP_CLAUSE_ALLOCATE_ALLOCATOR
1983 decls as firstprivate on task clauses even when allocate clause
1984 decl is not lastprivate.
1985 * omp-low.c (install_var_field): Don't dereference omp_is_reference
1986 types if mask is 33 rather than 1.
1987 (scan_sharing_clauses): Populate allocate_map even for task
1988 constructs. For now remove it back for variables mentioned in
1989 reduction and in_reduction clauses on task/taskloop constructs
1990 or on VLA task firstprivates. For firstprivate on task construct,
1991 install the var field into field_map with by_ref and 33 instead
1992 of false and 1 if mentioned in allocate clause.
1993 (lower_private_allocate): Set TREE_THIS_NOTRAP on the created
1994 MEM_REF.
1995 (lower_rec_input_clauses): Handle allocate for task firstprivatized
1996 non-VLA variables.
1997 (create_task_copyfn): Likewise.
1998
1999 2020-11-13 Jan Hubicka <jh@suse.cz>
2000
2001 * tree-ssa-alias.c (ao_ref_base_alias_ptr_type): Remove accidental
2002 commit.
2003 (ao_ref_alias_ptr_type): Remove accidental commit.
2004
2005 2020-11-13 Kwok Cheung Yeung <kcy@codesourcery.com>
2006
2007 * omp-oacc-kernels-decompose.cc (maybe_build_inner_data_region):
2008 Use langhook instead of accessing language-specific decl
2009 information.
2010
2011 2020-11-13 Gergö Barany <gergo@codesourcery.com>
2012 Thomas Schwinge <thomas@codesourcery.com>
2013
2014 * omp-oacc-kernels-decompose.cc: New.
2015 * Makefile.in (OBJS): Add it.
2016 * passes.def: Instantiate it.
2017 * tree-pass.h (make_pass_omp_oacc_kernels_decompose): Declare.
2018 * flag-types.h (enum openacc_kernels): Add.
2019 * doc/invoke.texi (-fopenacc-kernels): Document.
2020 * gimple.h (enum gf_mask): Add
2021 'GF_OMP_TARGET_KIND_OACC_PARALLEL_KERNELS_PARALLELIZED',
2022 'GF_OMP_TARGET_KIND_OACC_PARALLEL_KERNELS_GANG_SINGLE',
2023 'GF_OMP_TARGET_KIND_OACC_DATA_KERNELS'.
2024 (is_gimple_omp_oacc, is_gimple_omp_offloaded): Handle these.
2025 * gimple-pretty-print.c (dump_gimple_omp_target): Likewise.
2026 * omp-expand.c (expand_omp_target, build_omp_regions_1)
2027 (omp_make_gimple_edges): Likewise.
2028 * omp-low.c (scan_sharing_clauses, scan_omp_for)
2029 (check_omp_nesting_restrictions, lower_oacc_reductions)
2030 (lower_oacc_head_mark, lower_omp_target): Likewise.
2031 * omp-offload.c (execute_oacc_device_lower): Likewise.
2032
2033 2020-11-13 Thomas Schwinge <thomas@codesourcery.com>
2034
2035 * omp-low.c (scan_sharing_clauses, scan_omp_for)
2036 (lower_oacc_reductions, lower_omp_target): More explicit checking
2037 of which OMP constructs we're expecting.
2038
2039 2020-11-13 Thomas Schwinge <thomas@codesourcery.com>
2040
2041 * omp-expand.c (expand_omp_target): Attach an attribute to all
2042 outlined OpenACC compute regions.
2043 * omp-offload.c (execute_oacc_device_lower): Adjust.
2044
2045 2020-11-13 Jan Hubicka <jh@suse.cz>
2046
2047 * ipa-modref.c (modref_summaries::insert,
2048 modref_summaries_lto::insert): Remove summary if ipa-modref is disabled.
2049
2050 2020-11-13 Jan Hubicka <jh@suse.cz>
2051
2052 * attr-fnspec.h (attr_fnspec::arg_readonly_p): Accept '1'...'9'.
2053
2054 2020-11-13 Peter Jones <pjones@redhat.com>
2055
2056 * doc/extend.texi: Clarify the documentation for the ms_abi
2057 function attribute.
2058
2059 2020-11-13 Andrew MacLeod <amacleod@redhat.com>
2060
2061 * gimple-range.h (gimple_range_handler): Cast to gimple stmt
2062 kinds before asking for code and type.
2063 * gimple.h (gimple_expr_code): Call gassign and gcond routines
2064 to get their expr_code.
2065
2066 2020-11-13 Jason Merrill <jason@redhat.com>
2067
2068 * dwarf2out.c (gen_enumeration_type_die): Call
2069 equate_decl_number_to_die for enumerators.
2070 (gen_member_die): Don't move enumerators to their
2071 enclosing class.
2072 (dwarf2out_imported_module_or_decl_1): Allow importing
2073 individual enumerators.
2074 (force_decl_die): Handle CONST_DECL.
2075
2076 2020-11-13 Vladimir N. Makarov <vmakarov@redhat.com>
2077
2078 * cfgexpand.c (expand_asm_stmt): Output asm goto with outputs too.
2079 Place insns after asm goto on edges.
2080 * doc/extend.texi: Reflect the changes in asm goto documentation.
2081 * gimple.c (gimple_build_asm_1): Remove an assert checking output
2082 absence for asm goto.
2083 * gimple.h (gimple_asm_label_op, gimple_asm_set_label_op): Take
2084 possible asm goto outputs into account.
2085 * ira.c (ira): Remove critical edges for potential asm goto output
2086 reloads.
2087 (ira_nullify_asm_goto): New function.
2088 * ira.h (ira_nullify_asm_goto): New prototype.
2089 * lra-assigns.c (lra_split_hard_reg_for): Use ira_nullify_asm_goto.
2090 Check that splitting is done inside a basic block.
2091 * lra-constraints.c (curr_insn_transform): Permit output reloads
2092 for any jump insn.
2093 * lra-spills.c (lra_final_code_change): Remove USEs added in ira
2094 for asm gotos.
2095 * lra.c (lra_process_new_insns): Place output reload insns after
2096 jumps in the beginning of destination BBs.
2097 * reload.c (find_reloads): Report error for asm gotos with
2098 outputs. Modify them to keep CFG consistency to avoid crashes.
2099 * tree-into-ssa.c (rewrite_stmt): Don't put debug stmt after asm
2100 goto.
2101
2102 2020-11-13 Jakub Jelinek <jakub@redhat.com>
2103
2104 * omp-low.c (scan_sharing_clauses): For now remove for reduction
2105 clauses with inscan or task modifiers decl from allocate_map.
2106 (lower_private_allocate): Handle TYPE_P (new_var).
2107 (lower_rec_input_clauses): Handle allocate clause for C/C++ array
2108 reductions.
2109
2110 2020-11-13 Martin Jambor <mjambor@suse.cz>
2111
2112 PR ipa/97816
2113 * ipa-cp.c (value_topo_info<valtype>::propagate_effects): Use
2114 safe_add instead of a simple addition.
2115
2116 2020-11-13 Jozef Lawrynowicz <jozef.l@mittosystems.com>
2117
2118 * config/msp430/msp430.c (TARGET_INSN_COST): Define.
2119 (msp430_insn_cost): New function.
2120 * config/msp430/msp430.h (BRANCH_COST): Define.
2121 (LOGICAL_OP_NON_SHORT_CIRCUIT): Define.
2122
2123 2020-11-13 Jozef Lawrynowicz <jozef.l@mittosystems.com>
2124
2125 * config/msp430/msp430-protos.h (msp430x_extendhisi): Return int
2126 instead of char *.
2127 (msp430_output_asm_shift_insns): Likewise.
2128 Add new return_length argument.
2129 (msp430x_insn_required): Add prototype.
2130 * config/msp430/msp430.c (msp430_output_asm_shift_insns): Return the
2131 total length, in bytes, of the emitted instructions.
2132 (msp430x_insn_required): New function.
2133 (msp430x_extendhisi): Return the total length, in bytes, of the
2134 emitted instructions.
2135 * config/msp430/msp430.h (ADJUST_INSN_LENGTH): Define.
2136 * config/msp430/msp430.md: New define_attr "type".
2137 New define_attr "extension".
2138 New define_attr "length_multiplier".
2139 New define_attr "extra_length".
2140 Rewrite define_attr "length".
2141 Set type, extension, length, length_multiplier or extra_length insn
2142 attributes on all insns, as appropriate.
2143 (andneghi3): Rewrite using constraints instead of C code to decide
2144 output insns.
2145 * config/msp430/predicates.md (msp430_cheap_operand): New predicate.
2146 (msp430_high_memory_operand): New predicate.
2147
2148 2020-11-13 Jozef Lawrynowicz <jozef.l@mittosystems.com>
2149
2150 * config/msp430/msp430.c (use_helper_for_const_shift): Add forward
2151 declaration.
2152 Remove unused argument.
2153 (struct msp430_multlib_costs): New struct.
2154 (msp430_is_mem_indirect): New function.
2155 (msp430_costs): Likewise.
2156 (msp430_shift_costs): Likewise.
2157 (msp430_muldiv_costs): Likewise.
2158 (msp430_get_inner_dest_code): Likewise.
2159 (msp430_single_op_cost): Likewise.
2160 (msp430_rtx_costs): Rewrite from scratch.
2161 (msp430_expand_shift): Adjust use_helper_for_const_shift call.
2162
2163 2020-11-13 Jozef Lawrynowicz <jozef.l@mittosystems.com>
2164
2165 * config/msp430/msp430.c (struct single_op_cost): New struct.
2166 (struct double_op_cost): Likewise.
2167 (TARGET_REGISTER_MOVE_COST): Don't define but add comment.
2168 (TARGET_MEMORY_MOVE_COST): Define to...
2169 (msp430_memory_move_cost): New function.
2170 (BRANCH_COST): Don't define but add comment.
2171
2172 2020-11-13 Jan Hubicka <jh@suse.cz>
2173
2174 * ipa-icf-gimple.c: Include tree-ssa-alias-compare.h.
2175 (find_checker::func_checker): Initialize m_tbaa.
2176 (func_checker::hash_operand): Use hash_ao_ref for memory accesses.
2177 (func_checker::compare_operand): Use compare_ao_refs for memory
2178 accesses.
2179 (func_checker::cmopare_gimple_assign): Do not check LHS types
2180 of memory stores.
2181 * ipa-icf-gimple.h (func_checker): Derive from ao_compare;
2182 add m_tbaa.
2183 * ipa-icf.c: Include tree-ssa-alias-compare.h.
2184 (sem_function::equals_private): Update call of
2185 func_checker::func_checker.
2186 * ipa-utils.h (lto_streaming_expected_p): New inline
2187 predicate.
2188 * tree-ssa-alias-compare.h: New file.
2189 * tree-ssa-alias.c: Include tree-ssa-alias-compare.h
2190 and bultins.h
2191 (view_converted_memref_p): New function.
2192 (types_equal_for_same_type_for_tbaa_p): New function.
2193 (ao_ref_alias_ptr_type, ao_ref_base_alias_ptr_type): New functions.
2194 (ao_compare::compare_ao_refs): New member function.
2195 (ao_compare::hash_ao_ref): New function
2196 * tree-ssa-alias.h (ao_ref_base_alias_ptr_type,
2197 ao_ref_alias_ptr_type): Declare.
2198
2199 2020-11-13 Jan Hubicka <jh@suse.cz>
2200
2201 * ipa-icf-gimple.c: Include gimple-walk.h.
2202 (func_checker::compare_ssa_name): Update call of compare_operand.
2203 (func_checker::hash_operand): Fix comment and add variant taking
2204 operand_access_type parameter.
2205 (func_checker::compare_operand): Add operand_access_type parameter.
2206 (func_checker::compare_asm_inputs_outputs): Add
2207 operand_access_type_map parameter; update use of
2208 func_checker::compare_operand.
2209 (func_checker::compare_gimple_call): Update use of
2210 func_checker::compare_operand.
2211 (func_checker::compare_gimple_assign): Likewise.
2212 (func_checker::compare_gimple_cond): Likewise.
2213 (func_checker::compare_gimple_switch): Likewise.
2214 (func_checker::compare_gimple_return): Likewise.
2215 (func_checker::compare_gimple_goto): Likewise.
2216 (func_checker::compare_gimple_asm): Likewise.
2217 (visit_load_store): New static functio.
2218 (func_checker::classify_operands): New member function.
2219 (func_checker::get_operand_access_type): New member function.
2220 * ipa-icf-gimple.h (func_checker::operand_access_type): New enum
2221 (func_checker::operand_access_type_map): New typedef.
2222 (func_checker::compare_operand): Update prototype.
2223 (func_checker::compare_asm_inputs_outputs): Likewise.
2224 (func_checker::cleassify_operands): Declare.
2225 (func_checker::get_operand_access_type): Declare.
2226 (func_checker::hash_operand): New variant with operand_access_type.
2227 * ipa-icf.c (sem_function::hash_stmt): Update uses of hash_operand.
2228 (sem_function::compare_phi_node): Update use of compare_operand.
2229
2230 2020-11-13 Andrea Corallo <andrea.corallo@arm.com>
2231
2232 * config/arm/aarch-common.c (aarch_accumulator_forwarding): Use
2233 RTL predicates where possible.
2234 * config/arm/arm.c (legitimate_pic_operand_p)
2235 (legitimize_pic_address, arm_is_segment_info_known)
2236 (can_avoid_literal_pool_for_label_p)
2237 (thumb1_legitimate_address_p, arm_legitimize_address)
2238 (arm_tls_referenced_p, thumb_legitimate_constant_p)
2239 (REG_OR_SUBREG_REG, thumb1_rtx_costs, thumb1_size_rtx_costs)
2240 (arm_adjust_cost, arm_coproc_mem_operand_wb)
2241 (neon_vector_mem_operand, neon_struct_mem_operand)
2242 (symbol_mentioned_p, label_mentioned_p, )
2243 (load_multiple_sequence, store_multiple_sequence)
2244 (arm_select_cc_mode, arm_reload_in_hi, arm_reload_out_hi)
2245 (mem_ok_for_ldrd_strd, arm_emit_call_insn, output_move_neon)
2246 (arm_attr_length_move_neon, arm_assemble_integer)
2247 (arm_emit_coreregs_64bit_shift, arm_valid_symbolic_address_p)
2248 (extract_base_offset_in_addr, fusion_load_store): Likewise.
2249
2250 2020-11-13 Andrew MacLeod <amacleod@redhat.com>
2251
2252 * gimple-range.cc: (gimple_ranger::range_of_range_op): Check for
2253 ADDR_EXPR and call range_of_address.
2254 (gimple_ranger::range_of_address): Rename from
2255 range_of_non_trivial_assignment and match vrp_stmt_computes_nonzero.
2256 * gimple-range.h: (range_of_address): Renamed.
2257 * range-op.cc: (pointer_table): Add INTEGER_CST handler.
2258
2259 2020-11-13 Martin Jambor <mjambor@suse.cz>
2260
2261 PR tree-optimization/94406
2262 * tree-ssa-loop-im.c (tree_ssa_lim): Renamed to
2263 loop_invariant_motion_in_fun, added a parameter to control store
2264 motion.
2265 (pass_lim::execute): Adjust call to tree_ssa_lim, now
2266 loop_invariant_motion_in_fun.
2267 * tree-ssa-loop-manip.h (loop_invariant_motion_in_fun): Declare.
2268 * gimple-loop-interchange.cc (pass_linterchange::execute): Call
2269 loop_invariant_motion_in_fun if any interchange has been done.
2270
2271 2020-11-13 Richard Biener <rguenther@suse.de>
2272
2273 * tree-ssa-sccvn.c (vn_phi_compute_hash): Always hash the
2274 number of predecessors. Hash the block number also for
2275 loop header PHIs.
2276 (expressions_equal_p): Short-cut SSA name compares, remove
2277 test for NULL operands.
2278 (vn_phi_eq): Cache number of predecessors, change inlined
2279 test from expressions_equal_p.
2280
2281 2020-11-13 Iain Sandoe <iain@sandoe.co.uk>
2282
2283 * doc/extend.texi: Don't try to line-wrap an @r command.
2284
2285 2020-11-13 Richard Biener <rguenther@suse.de>
2286
2287 PR tree-optimization/97812
2288 * tree-vrp.c (register_edge_assert_for_2): Extend the range
2289 according to its sign before seeing whether it fits.
2290
2291 2020-11-13 Andrea Corallo <andrea.corallo@arm.com>
2292
2293 * config/aarch64/aarch64.c (tls_symbolic_operand_type)
2294 (aarch64_load_symref_appropriately, aarch64_mov128_immediate)
2295 (aarch64_expand_mov_immediate)
2296 (aarch64_maybe_expand_sve_subreg_move)
2297 (aarch64_tls_referenced_p, aarch64_cannot_force_const_mem)
2298 (aarch64_base_register_rtx_p, aarch64_classify_index)
2299 (aarch64_classify_address, aarch64_symbolic_address_p)
2300 (aarch64_reinterpret_float_as_int, aarch64_float_const_rtx_p)
2301 (aarch64_can_const_movi_rtx_p, aarch64_select_cc_mode)
2302 (aarch64_print_operand, aarch64_label_mentioned_p)
2303 (aarch64_secondary_reload, aarch64_preferred_reload_class)
2304 (aarch64_address_cost, aarch64_tls_symbol_p)
2305 (aarch64_classify_symbol, aarch64_legitimate_pic_operand_p)
2306 (aarch64_legitimate_constant_p)
2307 (aarch64_sve_float_arith_immediate_p)
2308 (aarch64_sve_float_mul_immediate_p, aarch64_mov_operand_p)
2309 (fusion_load_store): Use RTL operands where possible.
2310
2311 2020-11-13 Sudakshina Das <sudi.das@arm.com>
2312
2313 * config/aarch64/aarch64-protos.h (aarch64_expand_setmem): New
2314 declaration.
2315 * config/aarch64/aarch64.c (aarch64_gen_store_pair): Add case for
2316 E_V16QImode.
2317 (aarch64_set_one_block_and_progress_pointer): New helper for
2318 aarch64_expand_setmem.
2319 (aarch64_expand_setmem): Define the expansion for memset.
2320 * config/aarch64/aarch64.h (CLEAR_RATIO): Tweak to favor
2321 aarch64_expand_setmem when allowed and profitable.
2322 (SET_RATIO): Likewise.
2323 * config/aarch64/aarch64.md: Define pattern for setmemdi.
2324
2325 2020-11-13 Iain Sandoe <iain@sandoe.co.uk>
2326
2327 PR objc/90707
2328 * doc/extend.texi: Document the objc_nullability attribute.
2329
2330 2020-11-13 Iain Sandoe <iain@sandoe.co.uk>
2331
2332 PR objc/77404
2333 * doc/extend.texi: Document the objc_root_class attribute.
2334 * doc/invoke.texi: Document -Wobjc-root-class.
2335
2336 2020-11-13 Richard Biener <rguenther@suse.de>
2337
2338 * cfgexpand.c (gimple_assign_rhs_to_tree): Use
2339 gimple_assign_rhs_class.
2340 (expand_gimple_stmt_1): Likewise.
2341 * gimplify-me.c (gimple_regimplify_operands): Use
2342 gimple_assign_single_p.
2343 * ipa-icf-gimple.c (func_checker::compare_gimple_assign):
2344 Remove redundant compare.
2345 (func_checker::compare_gimple_cond): Use gimple_cond_code.
2346 * tree-ssa-tail-merge.c (gimple_equal_p): Likewise.
2347 * predict.c (predict_loops): Use gimple_assign_rhs_code.
2348
2349 2020-11-13 Aldy Hernandez <aldyh@redhat.com>
2350
2351 * tree-vrp.c (class vrp_folder): Make visit_stmt, visit_phi,
2352 and m_vr_values private.
2353 (vrp_folder::vrp_evaluate_conditional): Remove.
2354 (vrp_folder::vrp_simplify_stmt_using_ranges): Remove.
2355 (vrp_folder::fold_predicate_in): Inline
2356 vrp_evaluate_conditional and vrp_simplify_stmt_using_ranges.
2357 (vrp_folder::fold_stmt): Same.
2358
2359 2020-11-13 Aldy Hernandez <aldyh@redhat.com>
2360
2361 * tree-vrp.c (class vrp_prop): Rename vr_values to m_vr_values.
2362 (vrp_prop::vrp_prop): New.
2363 (vrp_prop::initialize): Rename vr_values to m_vr_values.
2364 (vrp_prop::visit_stmt): Same.
2365 (vrp_prop::visit_phi): Same.
2366 (vrp_prop::finalize): Same.
2367 (execute_vrp): Instantiate vrp_vr_values and pass it to folder
2368 and propagator.
2369
2370 2020-11-13 Aldy Hernandez <aldyh@redhat.com>
2371
2372 * tree-vrp.c (class vrp_prop): Move entire class...
2373 (class vrp_folder): ...before here.
2374
2375 2020-11-13 Aldy Hernandez <aldyh@redhat.com>
2376
2377 * tree-vrp.c (identify_jump_threads): Refactor to..
2378 (vrp_jump_threader::vrp_jump_threader): ...here
2379 (vrp_jump_threader::~vrp_jump_threader): ...and here.
2380 (vrp_jump_threader::after_dom_children): Rename vr_values to
2381 m_vr_values.
2382 (execute_vrp): Use vrp_jump_threader.
2383
2384 2020-11-13 Aldy Hernandez <aldyh@redhat.com>
2385
2386 * tree-vrp.c (struct assert_locus): Move.
2387 (class vrp_insert): Rename to vrp_asserts.
2388 (vrp_insert::build_assert_expr_for): Move to vrp_asserts.
2389 (fp_predicate): Same.
2390 (vrp_insert::dump): Same.
2391 (vrp_insert::register_new_assert_for): Same.
2392 (extract_code_and_val_from_cond_with_ops): Move.
2393 (vrp_insert::finish_register_edge_assert_for): Move to vrp_asserts.
2394 (maybe_set_nonzero_bits): Move.
2395 (vrp_insert::find_conditional_asserts): Move to vrp_asserts.
2396 (stmt_interesting_for_vrp): Move.
2397 (struct case_info): Move.
2398 (compare_case_labels): Move.
2399 (lhs_of_dominating_assert): Move.
2400 (find_case_label_index): Move.
2401 (find_case_label_range): Move.
2402 (class vrp_asserts): New.
2403 (vrp_asserts::build_assert_expr_for): Rename from vrp_insert.
2404 (vrp_asserts::dump): Same.
2405 (vrp_asserts::register_new_assert_for): Same.
2406 (vrp_asserts::finish_register_edge_assert_for): Same.
2407 (vrp_asserts::find_conditional_asserts): Same.
2408 (vrp_asserts::compare_case_labels): Same.
2409 (vrp_asserts::find_switch_asserts): Same.
2410 (vrp_asserts::find_assert_locations_in_bb): Same.
2411 (vrp_asserts::find_assert_locations): Same.
2412 (vrp_asserts::process_assert_insertions_for): Same.
2413 (vrp_asserts::compare_assert_loc): Same.
2414 (vrp_asserts::process_assert_insertions): Same.
2415 (vrp_asserts::insert_range_assertions): Same.
2416 (vrp_asserts::all_imm_uses_in_stmt_or_feed_cond): Same.
2417 (vrp_asserts::remove_range_assertions): Same.
2418 (class vrp_prop): Move.
2419 (all_imm_uses_in_stmt_or_feed_cond): Move.
2420 (vrp_prop::vrp_initialize): Move.
2421 (class vrp_folder): Move.
2422 (vrp_folder::fold_predicate_in): Move.
2423 (vrp_folder::fold_stmt): Move.
2424 (vrp_prop::initialize): Move.
2425 (vrp_prop::visit_stmt): Move.
2426 (enum ssa_prop_result): Move.
2427 (vrp_prop::visit_phi): Move.
2428 (vrp_prop::finalize): Move.
2429 (class vrp_dom_walker): Rename to...
2430 (class vrp_jump_threader): ...this.
2431 (vrp_jump_threader::before_dom_children): Rename from
2432 vrp_dom_walker.
2433 (simplify_stmt_for_jump_threading): Rename to...
2434 (vrp_jump_threader::simplify_stmt): ...here.
2435 (vrp_jump_threader::after_dom_children): Same.
2436 (identify_jump_threads): Move.
2437 (vrp_prop::vrp_finalize): Move array bounds setup code to...
2438 (execute_vrp): ...here.
2439
2440 2020-11-13 Andrew MacLeod <amacleod@redhat.com>
2441
2442 * gimple-range.h (gimple_range_handler): Use gimple_assign and
2443 gimple_cond routines to get type and code.
2444 * range-op.cc (range_op_handler): Check for integral types.
2445
2446 2020-11-12 Nelson Chu <nelson.chu@sifive.com>
2447
2448 * configure: Regenerated.
2449 * configure.ac: If ifunc was supported in the binutils for
2450 linux toolchain, then set enable_gnu_indirect_function to yes.
2451
2452 2020-11-12 Joseph Myers <joseph@codesourcery.com>
2453
2454 * doc/cpp.texi (__has_attribute): Document when scopes are allowed
2455 for C.
2456 (__has_c_attribute): New.
2457
2458 2020-11-12 Jakub Jelinek <jakub@redhat.com>
2459
2460 * builtin-types.def (BT_FN_PTR_SIZE_SIZE_PTRMODE): New function type.
2461 * omp-builtins.def (BUILT_IN_GOACC_DECLARE): Move earlier.
2462 (BUILT_IN_GOMP_ALLOC, BUILT_IN_GOMP_FREE): New builtins.
2463 * gimplify.c (gimplify_scan_omp_clauses): Force allocator into a
2464 decl if it is not NULL, INTEGER_CST or decl.
2465 (gimplify_adjust_omp_clauses): Clear GOVD_EXPLICIT on explicit clauses
2466 which are being removed. Remove allocate clauses for variables not seen
2467 if they are private, firstprivate or linear too. Call
2468 omp_notice_variable on the allocator otherwise.
2469 (gimplify_omp_for): Handle iterator vars mentioned in allocate clauses
2470 similarly to non-is_gimple_reg iterators.
2471 * omp-low.c (struct omp_context): Add allocate_map field.
2472 (delete_omp_context): Delete it.
2473 (scan_sharing_clauses): Fill it from allocate clauses. Remove it
2474 if mentioned also in shared clause.
2475 (lower_private_allocate): New function.
2476 (lower_rec_input_clauses): Handle allocate clause for privatized
2477 variables, except for task/taskloop, C/C++ array reductions for now
2478 and task/inscan variables.
2479 (lower_send_shared_vars): Don't consider variables in allocate_map
2480 as shared.
2481 * omp-expand.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
2482 expand_omp_for_static_chunk): Use expand_omp_build_assign instead of
2483 gimple_build_assign + gsi_insert_after.
2484 * builtins.c (builtin_fnspec): Handle BUILTIN_GOMP_ALLOC and
2485 BUILTIN_GOMP_FREE.
2486 * tree-ssa-ccp.c (evaluate_stmt): Handle BUILTIN_GOMP_ALLOC.
2487 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Handle
2488 BUILTIN_GOMP_ALLOC.
2489 (mark_all_reaching_defs_necessary_1): Handle BUILTIN_GOMP_ALLOC
2490 and BUILTIN_GOMP_FREE.
2491 (propagate_necessity): Likewise.
2492
2493 2020-11-12 Martin Jambor <mjambor@suse.cz>
2494
2495 * cgraphclones.c (cgraph_node::materialize_clone): Check that clone
2496 info is not NULL before attempting to dump it.
2497
2498 2020-11-12 Martin Jambor <mjambor@suse.cz>
2499
2500 * ipa-cp.c (class ipcp_value_base): Change the type of
2501 local_time_benefit and prop_time_benefit to sreal. Adjust the
2502 constructor initializer.
2503 (ipcp_lattice::print): Dump sreals.
2504 (struct caller_statistics): Change the type of freq_sum to sreal.
2505 (gather_caller_stats): Work with sreal freq_sum.
2506 (incorporate_penalties): Work with sreal evaluation.
2507 (good_cloning_opportunity_p): Adjusted for sreal sreal time_benefit
2508 and freq_sum. Bail out if size_cost is INT_MAX.
2509 (perform_estimation_of_a_value): Work with sreal time_benefit. Avoid
2510 unnecessary capping.
2511 (estimate_local_effects): Pass sreal time benefit to
2512 good_cloning_opportunity_p without capping it. Adjust dumping.
2513 (safe_add): If there can be overflow, return INT_MAX.
2514 (propagate_effects): Work with sreal times.
2515 (get_info_about_necessary_edges): Work with sreal frequencies.
2516 (decide_about_value): Likewise and with sreal time benefits.
2517
2518 2020-11-12 Marek Polacek <polacek@redhat.com>
2519
2520 * system.h (WARN_UNUSED_RESULT): Define for GCC >= 3.4.
2521 * tree.h (maybe_wrap_with_location): Add WARN_UNUSED_RESULT.
2522
2523 2020-11-12 Jan Hubicka <jh@suse.cz>
2524
2525 * fold-const.c (operand_compare::operand_equal_p): Compare field
2526 offsets in operand_equal_p and OEP_ADDRESS_OF.
2527 (operand_compare::hash_operand): Update.
2528
2529 2020-11-12 Richard Biener <rguenther@suse.de>
2530
2531 * bitmap.c (bitmap_list_view): Restore head->current.
2532 * tree-ssa-pre.c (pre_expr_DFS): Elide expr_visited bitmap.
2533 Special-case value expression bitmaps with one element.
2534 (bitmap_find_leader): Likewise.
2535 (sorted_array_from_bitmap_set): Elide expr_visited bitmap.
2536
2537 2020-11-12 Jan Hubicka <jh@suse.cz>
2538
2539 * attr-fnspec.h: Update topleve comment.
2540 (attr_fnspec::arg_direct_p): Accept 1...9.
2541 (attr_fnspec::arg_maybe_written_p): Reject 1...9.
2542 (attr_fnspec::arg_copied_to_arg_p): New member function.
2543 * builtins.c (builtin_fnspec): Update fnspec of block copy.
2544 * tree-ssa-alias.c (attr_fnspec::verify): Update.
2545
2546 2020-11-12 Richard Biener <rguenther@suse.de>
2547
2548 * tree-ssa-pre.c (bitmap_value_replace_in_set): Return
2549 whether we have changed anything.
2550 (do_pre_regular_insertion): Get topologically sorted array
2551 of expressions from caller.
2552 (do_pre_partial_partial_insertion): Likewise.
2553 (insert): Compute topologically sorted arrays of expressions
2554 here and locally iterate actual insertion. Iterate only
2555 when AVAIL_OUT of an already visited block source changed.
2556
2557 2020-11-12 Alex Coplan <alex.coplan@arm.com>
2558
2559 PR target/97730
2560 * config/aarch64/aarch64-sve2.md (@aarch64_sve2_bcax<mode>):
2561 Change to define_expand, add missing (trivially-predicated) not
2562 rtx to fix wrong code bug.
2563 (*aarch64_sve2_bcax<mode>): New.
2564
2565 2020-11-12 Richard Biener <rguenther@suse.de>
2566
2567 PR tree-optimization/97806
2568 * tree-ssa-pre.c (pre_expr_DFS): New overload for visiting
2569 values, visiting all leaders for a value. Use a bitmap
2570 for visited values.
2571 (sorted_array_from_bitmap_set): Walk over values and adjust.
2572
2573 2020-11-12 Andreas Krebbel <krebbel@linux.ibm.com>
2574
2575 PR target/97326
2576 * config/s390/vector.md: Support vector floating point modes in
2577 vec_cmp.
2578
2579 2020-11-12 Andreas Krebbel <krebbel@linux.ibm.com>
2580
2581 * config/s390/vector.md: Rename tointvec to TOINTVEC.
2582 * config/s390/vx-builtins.md: Likewise.
2583
2584 2020-11-12 Jason Merrill <jason@redhat.com>
2585
2586 PR debug/97060
2587 * dwarf2out.c (gen_subprogram_die): It's a declaration
2588 if DECL_INITIAL isn't set.
2589
2590 2020-11-12 David Malcolm <dmalcolm@redhat.com>
2591
2592 PR tree-optimization/97424
2593 * doc/invoke.texi (Static Analyzer Options): Add
2594 -Wno-analyzer-shift-count-negative and
2595 -Wno-analyzer-shift-count-overflow.
2596 (-Wno-analyzer-shift-count-negative): New.
2597 (-Wno-analyzer-shift-count-overflow): New.
2598
2599 2020-11-11 Iain Sandoe <iain@sandoe.co.uk>
2600
2601 * config/darwin-protos.h (darwin_make_eh_symbol_indirect): New.
2602 * config/darwin.c (darwin_make_eh_symbol_indirect): New. Use
2603 Mach-O semantics for personality and ldsa indirections.
2604 * config/darwin.h (TARGET_ASM_MAKE_EH_SYMBOL_INDIRECT): New.
2605 * doc/tm.texi: Regenerate.
2606 * doc/tm.texi.in: Add TARGET_ASM_MAKE_EH_SYMBOL_INDIRECT hook.
2607 * dwarf2out.c (dwarf2out_do_cfi_startproc): If the target defines
2608 a hook for indirecting personality and ldsa references, use that
2609 otherwise default to ELF semantics.
2610 * target.def (make_eh_symbol_indirect): New target hook.
2611
2612 2020-11-11 Patrick Palka <ppalka@redhat.com>
2613
2614 PR c++/88115
2615 * common.opt (-fabi-version): Document =15.
2616 * doc/invoke.texi (C++ Dialect Options): Likewise.
2617
2618 2020-11-11 Marek Polacek <polacek@redhat.com>
2619
2620 PR c++/97518
2621 * tree.c (maybe_wrap_with_location): Don't add a location
2622 wrapper around an artificial and ignored decl.
2623
2624 2020-11-11 Richard Biener <rguenther@suse.de>
2625
2626 PR tree-optimization/97623
2627 * tree-ssa-pre.c (create_expression_by_pieces): Guard
2628 NEW_SETS access.
2629 (insert_into_preds_of_block): Likewise.
2630
2631 2020-11-11 Richard Biener <rguenther@suse.de>
2632
2633 * tree-ssa-pre.c (pre_expr_DFS): New function.
2634 (sorted_array_from_bitmap_set): Use it to properly
2635 topologically sort the expression set.
2636 (clean): Verify we've cleaned everything we should.
2637
2638 2020-11-11 Richard Biener <rguenther@suse.de>
2639
2640 PR tree-optimization/97623
2641 * params.opt (-param=max-pre-hoist-insert-iterations): Remove
2642 again.
2643 * doc/invoke.texi (max-pre-hoist-insert-iterations): Likewise.
2644 * tree-ssa-pre.c (insert): Move hoist insertion after PRE
2645 insertion iteration and do not iterate it.
2646
2647 2020-11-11 Richard Sandiford <richard.sandiford@arm.com>
2648
2649 * config/aarch64/aarch64-sve.md (@vcond_mask_<mode><vpred>): Extend
2650 from SVE_FULL to SVE_ALL.
2651 (*vcond_mask_<mode><vpred>): Likewise.
2652 (@aarch64_sel_dup<mode>): Likewise.
2653 (vcond<SVE_FULL:mode><v_int_equiv>): Extend to...
2654 (vcond<SVE_ALL:mode><SVE_I:mode>): ...this, but requiring the
2655 sizes of the container modes to match.
2656 (vcondu<SVE_FULL:mode><v_int_equiv>): Extend to...
2657 (vcondu<SVE_ALL:mode><SVE_I:mode>): ...this.
2658 (vec_cmp<SVE_FULL_I:mode><vpred>): Extend to...
2659 (vec_cmp<SVE_I:mode><vpred>): ...this.
2660 (vec_cmpu<SVE_FULL_I:mode><vpred>): Extend to...
2661 (vec_cmpu<SVE_I:mode><vpred>): ...this.
2662 (@aarch64_pred_cmp<cmp_op><SVE_FULL_I:mode>): Extend to...
2663 (@aarch64_pred_cmp<cmp_op><SVE_I:mode>): ...this.
2664 (*cmp<cmp_op><SVE_FULL_I:mode>_cc): Extend to...
2665 (*cmp<cmp_op><SVE_I:mode>_cc): ...this.
2666 (*cmp<cmp_op><SVE_FULL_I:mode>_ptest): Extend to...
2667 (*cmp<cmp_op><SVE_I:mode>_ptest): ...this.
2668 (*cmp<cmp_op><SVE_FULL_I:mode>_and): Extend to...
2669 (*cmp<cmp_op><SVE_I:mode>_and): ...this.
2670
2671 2020-11-11 Richard Sandiford <richard.sandiford@arm.com>
2672
2673 * optabs-tree.c (expand_vec_cond_expr_p): Allow the compared values
2674 and the selected values to have different mode sizes.
2675 * gimple-isel.cc (gimple_expand_vec_cond_expr): Likewise.
2676
2677 2020-11-11 Hongtao Liu <hongtao.liu@intel.com>
2678 Hongyu Wang <hongyu.wang@intel.com>
2679
2680 * common/config/i386/cpuinfo.h (get_available_features):
2681 Detect AVXVNNI.
2682 * common/config/i386/i386-common.c
2683 (OPTION_MASK_ISA2_AVXVNNI_SET,
2684 OPTION_MASK_ISA2_AVXVNNI_UNSET): New.
2685 (OPTION_MASK_ISA2_AVX2_UNSET): Add AVXVNNI.
2686 (ix86_hanlde_option): Handle -mavxvnni, unset avxvnni when
2687 avx2 is disabled.
2688 * common/config/i386/i386-cpuinfo.h (enum processor_features):
2689 Add FEATURE_AVXVNNI.
2690 * common/config/i386/i386-isas.h: Add ISA_NAMES_TABLE_ENTRY
2691 for avxvnni.
2692 * config.gcc: Add avxvnniintrin.h.
2693 * config/i386/avx512vnnivlintrin.h: Reimplement 128/256 bit non-mask
2694 intrinsics with macros to support unified interface.
2695 * config/i386/avxvnniintrin.h: New header file.
2696 * config/i386/cpuid.h (bit_AVXVNNI): New.
2697 * config/i386/i386-builtins.c (def_builtin): Handle AVXVNNI mask
2698 for unified builtin.
2699 * config/i386/i386-builtin.def (BDESC): Adjust AVX512VNNI
2700 builtins for AVXVNNI.
2701 * config/i386/i386-c.c (ix86_target_macros_internal): Define
2702 __AVXVNNI__.
2703 * config/i386/i386-expand.c (ix86_expand_builtin): Handle bisa
2704 for AVXVNNI to support unified intrinsic name, since there is no
2705 dependency between AVX512VNNI and AVXVNNI.
2706 * config/i386/i386-options.c (isa2_opts): Add -mavxvnni.
2707 (ix86_valid_target_attribute_inner_p): Handle avxnnni.
2708 (ix86_option_override_internal): Ditto.
2709 * config/i386/i386.h (TARGET_AVXVNNI, TARGET_AVXVNNI_P,
2710 TARGET_AVXVNNI_P, PTA_AVXVNNI): New.
2711 (PTA_SAPPHIRERAPIDS): Add AVX_VNNI.
2712 (PTA_ALDERLAKE): Likewise.
2713 * config/i386/i386.md ("isa"): Add avxvnni, avx512vnnivl.
2714 ("enabled"): Adjust for avxvnni and avx512vnnivl.
2715 * config/i386/i386.opt: Add option -mavxvnni.
2716 * config/i386/immintrin.h: Include avxvnniintrin.h.
2717 * config/i386/sse.md (vpdpbusd_<mode>): Adjust for AVXVNNI.
2718 (vpdpbusds_<mode>): Likewise.
2719 (vpdpwssd_<mode>): Likewise.
2720 (vpdpwssds_<mode>): Likewise.
2721 (vpdpbusd_v16si): New.
2722 (vpdpbusds_v16si): Likewise.
2723 (vpdpwssd_v16si): Likewise.
2724 (vpdpwssds_v16si): Likewise.
2725 * doc/invoke.texi: Document -mavxvnni.
2726 * doc/extend.texi: Document avxvnni.
2727 * doc/sourcebuild.texi: Document target avxvnni.
2728
2729 2020-11-11 Martin Liska <mliska@suse.cz>
2730
2731 * tree.c (copy_node): Fix spelling.
2732
2733 2020-11-11 Richard Biener <rguenther@suse.de>
2734
2735 * tree-ssa-pre.c (phi_translate_set): Do not sort the
2736 expression set topologically.
2737
2738 2020-11-11 Aldy Hernandez <aldyh@redhat.com>
2739
2740 * value-range.cc (irange::set): Early exit on VR_VARYING.
2741
2742 2020-11-11 Zhiheng Xie <xiezhiheng@huawei.com>
2743 Nannan Zheng <zhengnannan@huawei.com>
2744
2745 * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG
2746 for arithmetic operation intrinsics.
2747
2748 2020-11-11 Strager Neds <strager.nds@gmail.com>
2749
2750 * cgraph.h (symtab_node::set_section_for_node): Declare new
2751 overload.
2752 (symtab_node::set_section_from_string): Rename from set_section.
2753 (symtab_node::set_section_from_node): Declare.
2754 * symtab.c (symtab_node::set_section_for_node): Define new
2755 overload.
2756 (symtab_node::set_section_from_string): Rename from set_section.
2757 (symtab_node::set_section_from_node): Define.
2758 (symtab_node::set_section): Call renamed set_section_from_string.
2759 (symtab_node::set_section): Call new set_section_from_node.
2760
2761 2020-11-11 Strager Neds <strager.nds@gmail.com>
2762
2763 * symtab.c (symtab_node::set_section_for_node): Extract reference
2764 counting logic into ...
2765 (retain_section_hash_entry): ... here (new function) and ...
2766 (release_section_hash_entry): ... here (new function).
2767
2768 2020-11-11 liuhongt <hongtao.liu@intel.com>
2769
2770 * config/i386/i386.h (PTA_MOVDIRI, PTA_MOVDIR64B,
2771 PTA_AMX_TILE, PTA_AMX_INT8, PTA_AMX_BF16, PTA_HRESET):
2772 Formatting.
2773
2774 2020-11-11 Ilya Leoshkevich <iii@linux.ibm.com>
2775
2776 * config/s390/s390.h (HAVE_TF): Use opaque value when
2777 GENERATOR_FILE is defined.
2778
2779 2020-11-10 Strager Neds <strager.nds@gmail.com>
2780
2781 * cgraph.h (symtab_node::get_section): Constify.
2782 (symtab_node::set_section): Declare new overload.
2783 * symtab.c (symtab_node::set_section): Define new overload.
2784 (symtab_node::copy_visibility_from): Use new overload of
2785 symtab_node::set_section.
2786 (symtab_node::resolve_alias): Same.
2787 * tree.h (set_decl_section_name): Declare new overload.
2788 * tree.c (set_decl_section_name): Define new overload.
2789 * tree-emutls.c (get_emutls_init_templ_addr): Same.
2790 * cgraphclones.c (cgraph_node::create_virtual_clone): Use new
2791 overload of symtab_node::set_section.
2792 (cgraph_node::create_version_clone_with_body): Same.
2793 * trans-mem.c (ipa_tm_create_version): Same.
2794
2795 2020-11-10 Aldy Hernandez <aldyh@redhat.com>
2796
2797 * value-range.cc (irange::set): Early exit for poly ints.
2798
2799 2020-11-10 Tobias Burnus <tobias@codesourcery.com>
2800
2801 * gimplify.c (gimplify_scan_omp_clauses, gimplify_omp_loop): Use 'do'
2802 instead of 'for' in error messages for Fortran.
2803 * omp-low.c (check_omp_nesting_restrictions): Likewise
2804
2805 2020-11-10 Matthew Malcomson <matthew.malcomson@arm.com>
2806
2807 * opts.c (control_options_for_live_patching): Reform 'is incompatible
2808 with' error messages to use a standard message with differing format
2809 arguments.
2810 (finish_options): Likewise.
2811
2812 2020-11-10 Richard Biener <rguenther@suse.de>
2813
2814 PR tree-optimization/97769
2815 * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
2816 Remove assert.
2817
2818 2020-11-10 Richard Biener <rguenther@suse.de>
2819
2820 PR tree-optimization/97780
2821 * tree-ssa-pre.c (fini_pre): Deal with added basic blocks
2822 when freeing PHI_TRANS_TABLE.
2823
2824 2020-11-10 Zhiheng Xie <xiezhiheng@huawei.com>
2825 Nannan Zheng <zhengnannan@huawei.com>
2826
2827 * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG
2828 for tbl/tbx intrinsics.
2829
2830 2020-11-10 Chung-Lin Tang <cltang@codesourcery.com>
2831
2832 * gimplify.c (is_or_contains_p): New static helper function.
2833 (omp_target_reorder_clauses): New function.
2834 (gimplify_scan_omp_clauses): Add use of omp_target_reorder_clauses to
2835 reorder clause list according to OpenMP 5.0 rules. Add handling of
2836 GOMP_MAP_ATTACH_DETACH for OpenMP cases.
2837 * omp-low.c (is_omp_target): New static helper function.
2838 (scan_sharing_clauses): Add scan phase handling of GOMP_MAP_ATTACH/DETACH
2839 for OpenMP cases.
2840 (lower_omp_target): Add lowering handling of GOMP_MAP_ATTACH/DETACH for
2841 OpenMP cases.
2842
2843 2020-11-10 Ilya Leoshkevich <iii@linux.ibm.com>
2844
2845 * config/s390/s390-modes.def (FPRX2): New mode.
2846 * config/s390/s390-protos.h (s390_fma_allowed_p): New function.
2847 * config/s390/s390.c (s390_fma_allowed_p): Likewise.
2848 (s390_build_signbit_mask): Support 128-bit masks.
2849 (print_operand): Support printing the second word of a TFmode
2850 operand as vector register.
2851 (constant_modes): Add FPRX2mode.
2852 (s390_class_max_nregs): Return 1 for TFmode on z14+.
2853 (s390_is_fpr128): New function.
2854 (s390_is_vr128): Likewise.
2855 (s390_can_change_mode_class): Use s390_is_fpr128 and
2856 s390_is_vr128 in order to determine whether mode refers to a FPR
2857 pair or to a VR.
2858 (s390_emit_compare): Force TFmode operands into registers on
2859 z14+.
2860 * config/s390/s390.h (HAVE_TF): New macro.
2861 (EXPAND_MOVTF): New macro.
2862 (EXPAND_TF): Likewise.
2863 * config/s390/s390.md (PFPO_OP_TYPE_FPRX2): PFPO_OP_TYPE_TF
2864 alias.
2865 (ALL): Add FPRX2.
2866 (FP_ALL): Add FPRX2 for z14+, restrict TFmode to z13-.
2867 (FP): Likewise.
2868 (FP_ANYTF): New mode iterator.
2869 (BFP): Add FPRX2 for z14+, restrict TFmode to z13-.
2870 (TD_TF): Likewise.
2871 (xde): Add FPRX2.
2872 (nBFP): Likewise.
2873 (nDFP): Likewise.
2874 (DSF): Likewise.
2875 (DFDI): Likewise.
2876 (SFSI): Likewise.
2877 (DF): Likewise.
2878 (SF): Likewise.
2879 (fT0): Likewise.
2880 (bt): Likewise.
2881 (_d): Likewise.
2882 (HALF_TMODE): Likewise.
2883 (tf_fpr): New mode_attr.
2884 (type): New mode_attr.
2885 (*cmp<mode>_ccz_0): Use type instead of mode with fsimp.
2886 (*cmp<mode>_ccs_0_fastmath): Likewise.
2887 (*cmptf_ccs): New pattern for wfcxb.
2888 (*cmptf_ccsfps): New pattern for wfkxb.
2889 (mov<mode>): Rename to mov<mode><tf_fpr>.
2890 (signbit<mode>2): Rename to signbit<mode>2<tf_fpr>.
2891 (isinf<mode>2): Renamed to isinf<mode>2<tf_fpr>.
2892 (*TDC_insn_<mode>): Use type instead of mode with fsimp.
2893 (fixuns_trunc<FP:mode><GPR:mode>2): Rename to
2894 fixuns_trunc<FP:mode><GPR:mode>2<FP:tf_fpr>.
2895 (fix_trunctf<mode>2): Rename to fix_trunctf<mode>2_fpr.
2896 (floatdi<mode>2): Rename to floatdi<mode>2<tf_fpr>, use type
2897 instead of mode with itof.
2898 (floatsi<mode>2): Rename to floatsi<mode>2<tf_fpr>, use type
2899 instead of mode with itof.
2900 (*floatuns<GPR:mode><FP:mode>2): Use type instead of mode for
2901 itof.
2902 (floatuns<GPR:mode><FP:mode>2): Rename to
2903 floatuns<GPR:mode><FP:mode>2<tf_fpr>.
2904 (trunctf<mode>2): Rename to trunctf<mode>2_fpr, use type instead
2905 of mode with fsimp.
2906 (extend<DSF:mode><BFP:mode>2): Rename to
2907 extend<DSF:mode><BFP:mode>2<BFP:tf_fpr>.
2908 (<FPINT:fpint_name><BFP:mode>2): Rename to
2909 <FPINT:fpint_name><BFP:mode>2<BFP:tf_fpr>, use type instead of
2910 mode with fsimp.
2911 (rint<BFP:mode>2): Rename to rint<BFP:mode>2<BFP:tf_fpr>, use
2912 type instead of mode with fsimp.
2913 (<FPINT:fpint_name><DFP:mode>2): Use type instead of mode for
2914 fsimp.
2915 (rint<DFP:mode>2): Likewise.
2916 (trunc<BFP:mode><DFP_ALL:mode>2): Rename to
2917 trunc<BFP:mode><DFP_ALL:mode>2<BFP:tf_fpr>.
2918 (trunc<DFP_ALL:mode><BFP:mode>2): Rename to
2919 trunc<DFP_ALL:mode><BFP:mode>2<BFP:tf_fpr>.
2920 (extend<BFP:mode><DFP_ALL:mode>2): Rename to
2921 extend<BFP:mode><DFP_ALL:mode>2<BFP:tf_fpr>.
2922 (extend<DFP_ALL:mode><BFP:mode>2): Rename to
2923 extend<DFP_ALL:mode><BFP:mode>2<BFP:tf_fpr>.
2924 (add<mode>3): Rename to add<mode>3<tf_fpr>, use type instead of
2925 mode with fsimp.
2926 (*add<mode>3_cc): Use type instead of mode with fsimp.
2927 (*add<mode>3_cconly): Likewise.
2928 (sub<mode>3): Rename to sub<mode>3<tf_fpr>, use type instead of
2929 mode with fsimp.
2930 (*sub<mode>3_cc): Use type instead of mode with fsimp.
2931 (*sub<mode>3_cconly): Likewise.
2932 (mul<mode>3): Rename to mul<mode>3<tf_fpr>, use type instead of
2933 mode with fsimp.
2934 (fma<mode>4): Restrict using s390_fma_allowed_p.
2935 (fms<mode>4): Restrict using s390_fma_allowed_p.
2936 (div<mode>3): Rename to div<mode>3<tf_fpr>, use type instead of
2937 mode with fdiv.
2938 (neg<mode>2): Rename to neg<mode>2<tf_fpr>.
2939 (*neg<mode>2_cc): Use type instead of mode with fsimp.
2940 (*neg<mode>2_cconly): Likewise.
2941 (*neg<mode>2_nocc): Likewise.
2942 (*neg<mode>2): Likeiwse.
2943 (abs<mode>2): Rename to abs<mode>2<tf_fpr>, use type instead of
2944 mode with fdiv.
2945 (*abs<mode>2_cc): Use type instead of mode with fsimp.
2946 (*abs<mode>2_cconly): Likewise.
2947 (*abs<mode>2_nocc): Likewise.
2948 (*abs<mode>2): Likewise.
2949 (*negabs<mode>2_cc): Likewise.
2950 (*negabs<mode>2_cconly): Likewise.
2951 (*negabs<mode>2_nocc): Likewise.
2952 (*negabs<mode>2): Likewise.
2953 (sqrt<mode>2): Rename to sqrt<mode>2<tf_fpr>, use type instead
2954 of mode with fsqrt.
2955 (cbranch<mode>4): Use FP_ANYTF instead of FP.
2956 (copysign<mode>3): Rename to copysign<mode>3<tf_fpr>, use type
2957 instead of mode with fsimp.
2958 * config/s390/s390.opt (flag_vx_long_double_fma): New
2959 undocumented option.
2960 * config/s390/vector.md (V_HW): Add TF for z14+.
2961 (V_HW2): Likewise.
2962 (VFT): Likewise.
2963 (VF_HW): Likewise.
2964 (V_128): Likewise.
2965 (tf_vr): New mode_attr.
2966 (tointvec): Add TF.
2967 (mov<mode>): Rename to mov<mode><tf_vr>.
2968 (movetf): New dispatcher.
2969 (*vec_tf_to_v1tf): Rename to *vec_tf_to_v1tf_fpr, restrict to
2970 z13-.
2971 (*vec_tf_to_v1tf_vr): New pattern for z14+.
2972 (*fprx2_to_tf): Likewise.
2973 (*mov_tf_to_fprx2_0): Likewise.
2974 (*mov_tf_to_fprx2_1): Likewise.
2975 (add<mode>3): Rename to add<mode>3<tf_vr>.
2976 (addtf3): New dispatcher.
2977 (sub<mode>3): Rename to sub<mode>3<tf_vr>.
2978 (subtf3): New dispatcher.
2979 (mul<mode>3): Rename to mul<mode>3<tf_vr>.
2980 (multf3): New dispatcher.
2981 (div<mode>3): Rename to div<mode>3<tf_vr>.
2982 (divtf3): New dispatcher.
2983 (sqrt<mode>2): Rename to sqrt<mode>2<tf_vr>.
2984 (sqrttf2): New dispatcher.
2985 (fma<mode>4): Restrict using s390_fma_allowed_p.
2986 (fms<mode>4): Likewise.
2987 (neg_fma<mode>4): Likewise.
2988 (neg_fms<mode>4): Likewise.
2989 (neg<mode>2): Rename to neg<mode>2<tf_vr>.
2990 (negtf2): New dispatcher.
2991 (abs<mode>2): Rename to abs<mode>2<tf_vr>.
2992 (abstf2): New dispatcher.
2993 (float<mode>tf2_vr): New forwarder.
2994 (float<mode>tf2): New dispatcher.
2995 (floatuns<mode>tf2_vr): New forwarder.
2996 (floatuns<mode>tf2): New dispatcher.
2997 (fix_trunctf<mode>2_vr): New forwarder.
2998 (fix_trunctf<mode>2): New dispatcher.
2999 (fixuns_trunctf<mode>2_vr): New forwarder.
3000 (fixuns_trunctf<mode>2): New dispatcher.
3001 (<FPINT:fpint_name><VF_HW:mode>2<VF_HW:tf_vr>): New pattern.
3002 (<FPINT:fpint_name>tf2): New forwarder.
3003 (rint<mode>2<tf_vr>): New pattern.
3004 (rinttf2): New forwarder.
3005 (*trunctfdf2_vr): New pattern.
3006 (trunctfdf2_vr): New forwarder.
3007 (trunctfdf2): New dispatcher.
3008 (trunctfsf2_vr): New forwarder.
3009 (trunctfsf2): New dispatcher.
3010 (extenddftf2_vr): New pattern.
3011 (extenddftf2): New dispatcher.
3012 (extendsftf2_vr): New forwarder.
3013 (extendsftf2): New dispatcher.
3014 (signbittf2_vr): New forwarder.
3015 (signbittf2): New dispatchers.
3016 (isinftf2_vr): New forwarder.
3017 (isinftf2): New dispatcher.
3018 * config/s390/vx-builtins.md (*vftci<mode>_cconly): Use VF_HW
3019 instead of VECF_HW, add missing constraint, add vw support.
3020 (vftci<mode>_intcconly): Use VF_HW instead of VECF_HW.
3021 (*vftci<mode>): Rename to vftci<mode>, use VF_HW instead of
3022 VECF_HW, and vw support.
3023 (vftci<mode>_intcc): Use VF_HW instead of VECF_HW.
3024
3025 2020-11-10 Eric Botcazou <ebotcazou@adacore.com>
3026
3027 * range-op.cc (operator_logical_not::fold_range): Tidy up.
3028 (operator_logical_not::op1_range): Call above method.
3029 (operator_bitwise_not::fold_range): If the type is compatible
3030 with boolean, call op_logical_not.fold_range.
3031 (operator_bitwise_not::op1_range): If the type is compatible
3032 with boolean, call op_logical_not.op1_range.
3033
3034 2020-11-10 Richard Biener <rguenther@suse.de>
3035
3036 * tree-ssa-pre.c (pre_expr_d::value_id): Add.
3037 (constant_value_expressions): Turn into an array of pre_expr.
3038 (get_or_alloc_expr_for_nary): New function.
3039 (get_or_alloc_expr_for_reference): Likewise.
3040 (add_to_value): For constant values only ever add a single
3041 CONSTANT.
3042 (get_expr_value_id): Return the new value_id member.
3043 (vn_valnum_from_value_id): Split out and simplify constant
3044 value id handling.
3045 (get_or_alloc_expr_for_constant): Set the value_id member.
3046 (phi_translate_1): Use get_or_alloc_expr_for_*.
3047 (compute_avail): Likewise.
3048 (bitmap_find_leader): Simplify constant value id handling.
3049
3050 2020-11-10 Alex Coplan <alex.coplan@arm.com>
3051
3052 * doc/md.texi (Modifiers): Fix grammar in description of
3053 earlyclobber constraint modifier.
3054
3055 2020-11-10 Jakub Jelinek <jakub@redhat.com>
3056
3057 PR tree-optimization/97764
3058 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): For
3059 little-endian stores with negative pd.offset, subtract
3060 BITS_PER_UNIT - amnt from size if amnt is non-zero.
3061
3062 2020-11-10 Richard Biener <rguenther@suse.de>
3063
3064 PR tree-optimization/97760
3065 * tree-vect-loop.c (check_reduction_path): Reject
3066 reduction paths we do not handle in epilogue generation.
3067
3068 2020-11-10 Aldy Hernandez <aldyh@redhat.com>
3069
3070 PR tree-optimization/97767
3071 * value-range.cc (dump_bound_with_infinite_markers): Use
3072 wi::min_value and wi::max_value.
3073 (range_tests_strict_enum): New.
3074 (range_tests): Call range_tests_strict_enum.
3075 * value-range.h (irange::varying_p): Use wi::min_value
3076 and wi::max_value.
3077 (irange::set_varying): Same.
3078 (irange::normalize_min_max): Remove comment.
3079
3080 2020-11-10 Andrew MacLeod <amacleod@redhat.com>
3081
3082 PR tree-optimization/97567
3083 * gimple-range-gori.cc: (gori_compute::logical_combine): False
3084 OR operations should intersect the 2 results.
3085 (gori_compute::compute_logical_operands_in_chain): If def chains
3086 are outside the current basic block, don't follow them.
3087
3088 2020-11-09 Claudiu Zissulescu <claziss@synopsys.com>
3089
3090 * config/arc/arc.c (arc_split_move): Recognize vadd2 instructions.
3091 * config/arc/arc.md (movdi_insn): Update pattern to use vadd2
3092 instructions.
3093 (movdf_insn): Likewise.
3094 (maddhisi4): New pattern.
3095 (umaddhisi4): Likewise.
3096 * config/arc/simdext.md (mov<mode>_int): Update pattern to use
3097 vadd2.
3098 (sdot_prodv4hi): New pattern.
3099 (udot_prodv4hi): Likewise.
3100 (arc_vec_<V_US>mac_hi_v4hi): Update/renamed to
3101 arc_vec_<V_US>mac_v2hiv2si.
3102 (arc_vec_<V_US>mac_v2hiv2si_zero): New pattern.
3103 * config/arc/constraints.md (Ral): Accumulator register
3104 constraint.
3105
3106 2020-11-09 Aldy Hernandez <aldyh@redhat.com>
3107
3108 * function-tests.c (test_ranges): Call range_op_tests.
3109 * range-op.cc (build_range3): Move to value-range.cc.
3110 (range3_tests): Same.
3111 (int_range_max_tests): Same.
3112 (multi_precision_range_tests): Same.
3113 (range_tests): Same.
3114 (operator_tests): Split up...
3115 (range_op_tests): Split up...
3116 (range_op_cast_tests): ...here.
3117 (range_op_lshift_tests): ...here.
3118 (range_op_rshift_tests): ...here.
3119 (range_op_bitwise_and_tests): ...here.
3120 * selftest.h (range_op_tests): New.
3121 * value-range.cc (build_range3): New.
3122 (range_tests_irange3): New.
3123 (range_tests_int_range_max): New.
3124 (range_tests_legacy): New.
3125 (range_tests_misc): New.
3126 (range_tests): New.
3127
3128 2020-11-09 Richard Biener <rguenther@suse.de>
3129
3130 PR tree-optimization/97761
3131 * tree-vect-slp.c (vect_bb_slp_mark_live_stmts): Remove
3132 premature end of DFS walk.
3133
3134 2020-11-09 Aldy Hernandez <aldyh@redhat.com>
3135
3136 * value-range.cc (irange::swap_out_of_order_endpoints): Rewrite
3137 into static function.
3138 (irange::set): Cleanup redundant manipulations.
3139 * value-range.h (irange::normalize_min_max): Modify object
3140 in-place instead of modifying arguments.
3141
3142 2020-11-09 Andrea Corallo <andrea.corallo@arm.com>
3143
3144 * config/aarch64/aarch64-builtins.c
3145 (aarch64_expand_fcmla_builtin): Do not alter force_reg returned
3146 register.
3147
3148 2020-11-09 Richard Biener <rguenther@suse.de>
3149
3150 PR tree-optimization/97753
3151 * tree-vect-loop.c (vectorizable_induction): Fill vec_steps
3152 when CSEing inside the group.
3153
3154 2020-11-09 Richard Biener <rguenther@suse.de>
3155
3156 PR tree-optimization/97746
3157 * tree-vect-patterns.c (vect_determine_precisions): First walk PHIs.
3158
3159 2020-11-09 Richard Biener <rguenther@suse.de>
3160
3161 * tree-ssa-pre.c (get_representative_for): CSE VN_INFO calls.
3162 (create_expression_by_pieces): Likewise.
3163 (insert_into_preds_of_block): Likewsie.
3164 (do_pre_regular_insertion): Likewsie.
3165 * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_insert):
3166 Likewise.
3167 (eliminate_dom_walker::eliminate_stmt): Likewise.
3168
3169 2020-11-09 Richard Biener <rguenther@suse.de>
3170
3171 PR tree-optimization/97765
3172 * tree-ssa-pre.c (bb_bitmap_sets::phi_translate_table): Add.
3173 (PHI_TRANS_TABLE): New macro.
3174 (phi_translate_table): Remove.
3175 (expr_pred_trans_d::pred): Remove.
3176 (expr_pred_trans_d::hash): Simplify.
3177 (expr_pred_trans_d::equal): Likewise.
3178 (phi_trans_add): Adjust.
3179 (phi_translate): Likewise. Remove hash-table expansion
3180 detection and optimization.
3181 (phi_translate_set): Allocate PHI_TRANS_TABLE here.
3182 (init_pre): Adjsust.
3183 (fini_pre): Free PHI_TRANS_TABLE.
3184
3185 2020-11-09 Lili Cui <lili.cui@intel.com>
3186
3187 PR target/97685
3188 * config/i386/i386.h:
3189 (PTA_BROADWELL): Delete PTA_PRFCHW.
3190 (PTA_SILVERMONT): Add PTA_PRFCHW.
3191 (PTA_KNL): Add PTA_PREFETCHWT1.
3192 (PTA_TREMONT): Add PTA_MOVDIRI, PTA_MOVDIR64B, PTA_CLDEMOTE and PTA_WAITPKG.
3193 * doc/invoke.texi: Delete PREFETCHW for broadwell, skylake, knl, knm,
3194 skylake-avx512, cannonlake, icelake-client, icelake-server, cascadelake,
3195 cooperlake, tigerlake and sapphirerapids.
3196 Add PREFETCHW for silvermont, goldmont, goldmont-plus and tremont.
3197 Add XSAVEC and XSAVES for goldmont, goldmont-plus and tremont.
3198 Add MOVDIRI, MOVDIR64B, CLDEMOTE and WAITPKG for tremont.
3199 Add KEYLOCKER and HREST for alderlake.
3200 Add AMX-BF16, AMX-TILE, AMX-INT8 and UINTR for sapphirerapids.
3201 Add KEYLOCKER for tigerlake.
3202
3203 2020-11-09 Kewen Lin <linkw@linux.ibm.com>
3204
3205 PR rtl-optimization/97705
3206 * ira.c (ira): Refactor some regstat free/init/compute invocation
3207 into lambda function regstat_recompute_for_max_regno, and call it
3208 when max_regno increases as remove_scratches succeeds.
3209
3210 2020-11-08 David Edelsohn <dje.gcc@gmail.com>
3211
3212 * config/rs6000/rs6000.c (rs6000_mangle_decl_assembler_name): Change
3213 DECL_IS_BUILTIN -> DECL_IS_UNDECLARED_BUILTIN.
3214
3215 2020-11-07 Martin Uecker <muecker@gwdg.de>
3216
3217 * doc/extend.texi: Document mixing labels and code.
3218 * doc/invoke.texi: Likewise.
3219
3220 2020-11-06 Segher Boessenkool <segher@kernel.crashing.org>
3221
3222 * config/rs6000/rs6000.md (@tablejump<mode>_normal): Don't abuse
3223 operands[].
3224 (@tablejump<mode>_nospec): Ditto.
3225
3226 2020-11-06 Peter Bergner <bergner@linux.ibm.com>
3227
3228 * config/rs6000/rs6000.h (BIGGEST_ALIGNMENT): Revert previous commit
3229 so as not to break the ABI.
3230 * config/rs6000/rs6000-call.c (rs6000_init_builtins): Set the ABI
3231 mandated alignment for __vector_pair and __vector_quad types.
3232
3233 2020-11-06 Jeff Law <law@torsion.usersys.redhat.com>
3234
3235 PR target/91489
3236 * config/i386/i386.md (simple_return): Also check
3237 for ms_hook_prologue function attribute.
3238 * config/i386/i386.c (ix86_can_use_return_insn_p):
3239 Also check for ms_hook_prologue function attribute.
3240 * config/i386/i386-protos.h (ix86_function_ms_hook_prologue): Declare.
3241
3242 2020-11-06 Segher Boessenkool <segher@kernel.crashing.org>
3243
3244 PR target/96933
3245 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
3246 TARGET_POWERPC64 instead of TARGET_64BIT.
3247
3248 2020-11-06 Joseph Myers <joseph@codesourcery.com>
3249
3250 * builtins.def (BUILT_IN_NANSD32, BUILT_IN_NANSD64)
3251 (BUILT_IN_NANSD128): New built-in functions.
3252 * fold-const-call.c (fold_const_call): Handle the new built-in
3253 functions.
3254 * doc/extend.texi (__builtin_nansd32, __builtin_nansd64)
3255 (__builtin_nansd128): Document.
3256 * doc/sourcebuild.texi (Effective-Target Keywords): Document
3257 fenv_exceptions_dfp.
3258
3259 2020-11-06 Bin Cheng <bin.cheng@linux.alibaba.com>
3260
3261 * tree-ssa-uninit.c (find_var_cmp_const): New function.
3262 (use_pred_not_overlap_with_undef_path_pred): Call above.
3263
3264 2020-11-06 Iain Sandoe <iain@sandoe.co.uk>
3265
3266 * config/darwin-c.c: Allow for Darwin20 to correspond to macOS 11.
3267 * config/darwin-driver.c: Likewise.
3268
3269 2020-11-06 Richard Biener <rguenther@suse.de>
3270
3271 * tree-ssa-pre.c (expr_pred_trans_d): Modify so elements
3272 are embedded rather than allocated. Remove hashval member,
3273 make all members integers.
3274 (phi_trans_add): Adjust accordingly.
3275 (phi_translate): Likewise. Deal with re-allocation
3276 of the table.
3277
3278 2020-11-06 Andrew MacLeod <amacleod@redhat.com>
3279
3280 PR tree-optimization/97737
3281 PR tree-optimization/97741
3282 * gimple-range.cc: (gimple_ranger::range_of_stmt): Intersect newly
3283 calculated ranges with the existing known global range.
3284
3285 2020-11-06 Darius Galis <darius.galis@cyberthorstudios.com>
3286
3287 * config/rx/rx.md (CTRLREG_PC): Add.
3288 * config/rx/rx.c (CTRLREG_PC): Add
3289 (rx_expand_builtin_mvtc): Add warning: PC register cannot
3290 be used as dest.
3291
3292 2020-11-06 Nathan Sidwell <nathan@acm.org>
3293
3294 * tree.h (DECL_IS_BUILTIN): Rename to ...
3295 (DECL_IS_UNDECLARED_BUILTIN): ... here. No need to use SOURCE_LOCUS.
3296 * calls.c (maybe_warn_alloc_args_overflow): Adjust for rename.
3297 * cfgexpand.c (pass_expand::execute): Likewise.
3298 * dwarf2out.c (base_type_die, is_naming_typedef_decl): Likewise.
3299 * godump.c (go_decl, go_type_decl): Likewise.
3300 * print-tree.c (print_decl_identifier): Likewise.
3301 * tree-pretty-print.c (dump_generic_node): Likewise.
3302 * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Likewise.
3303 * xcoffout.c (xcoff_assign_fundamental_type_number): Likewise.
3304
3305 2020-11-06 David Candler <david.candler@arm.com>
3306
3307 * config/aarch64/aarch64-builtins.c
3308 (TYPES_SHIFT2IMM): Add define.
3309 (TYPES_SHIFT2IMM_UUSS): Add define.
3310 (TYPES_USHIFT2IMM): Add define.
3311 * config/aarch64/aarch64-simd.md
3312 (aarch64_<sur>q<r>shr<u>n2_n<mode>): Add new insn for upper saturating shift right.
3313 * config/aarch64/aarch64-simd-builtins.def: Add intrinsics.
3314 * config/aarch64/arm_neon.h:
3315 (vqrshrn_high_n_s16): Expand using intrinsic rather than inline asm.
3316 (vqrshrn_high_n_s32): Likewise.
3317 (vqrshrn_high_n_s64): Likewise.
3318 (vqrshrn_high_n_u16): Likewise.
3319 (vqrshrn_high_n_u32): Likewise.
3320 (vqrshrn_high_n_u64): Likewise.
3321 (vqrshrun_high_n_s16): Likewise.
3322 (vqrshrun_high_n_s32): Likewise.
3323 (vqrshrun_high_n_s64): Likewise.
3324 (vqshrn_high_n_s16): Likewise.
3325 (vqshrn_high_n_s32): Likewise.
3326 (vqshrn_high_n_s64): Likewise.
3327 (vqshrn_high_n_u16): Likewise.
3328 (vqshrn_high_n_u32): Likewise.
3329 (vqshrn_high_n_u64): Likewise.
3330 (vqshrun_high_n_s16): Likewise.
3331 (vqshrun_high_n_s32): Likewise.
3332 (vqshrun_high_n_s64): Likewise.
3333
3334 2020-11-06 Richard Sandiford <richard.sandiford@arm.com>
3335
3336 * config/aarch64/aarch64-modes.def (VNx2BF, VNx4BF): Adjust nunits
3337 and alignment based on the current VG.
3338 * config/aarch64/iterators.md (SVE_ALL, SVE_24, SVE_2, SVE_4): Add
3339 partial SVE BF modes.
3340 (UNSPEC_REVBHW): New unspec.
3341 (Vetype, Vesize, Vctype, VEL, Vel, vwcore, V_INT_CONTAINER)
3342 (v_int_container, VPRED, vpred): Handle partial SVE BF modes.
3343 (container_bits, Vcwtype): New mode attributes.
3344 * config/aarch64/aarch64-sve.md
3345 (@aarch64_sve_revbhw_<SVE_ALL:mode><PRED_HSD:mode>): New pattern.
3346 (@aarch64_sve_dup_lane<mode>): Extended from SVE_FULL to SVE_ALL.
3347 (@aarch64_sve_rev<mode>, @aarch64_sve_<perm_insn><mode>): Likewise.
3348 (@aarch64_sve_ext<mode>): Likewise.
3349 * config/aarch64/aarch64.c (aarch64_classify_vector_mode): Handle
3350 E_VNx2BFmode and E_VNx4BFmode.
3351 (aarch64_evpc_rev_local): Base the analysis on the container size
3352 instead of the element size. Use the new aarch64_sve_revbhw
3353 patterns for SVE.
3354 (aarch64_evpc_dup): Handle partial SVE data modes. Use the
3355 container size instead of the element size when applying the
3356 SVE immediate limit. Fix a previously incorrect bounds check.
3357 (aarch64_expand_vec_perm_const_1): Handle partial SVE data modes.
3358
3359 2020-11-06 Martin Liska <mliska@suse.cz>
3360
3361 * common.opt: Add new -fbit-tests option.
3362 * doc/invoke.texi: Document the option.
3363 * tree-switch-conversion.c (bit_test_cluster::find_bit_tests):
3364 Use the option.
3365 * tree-switch-conversion.h (is_enabled): New function.
3366
3367 2020-11-06 Richard Biener <rguenther@suse.de>
3368
3369 * tree-ssa-sccvn.h (get_max_constant_value_id): Declare.
3370 (get_next_constant_value_id): Likewise.
3371 (value_id_constant_p): Inline and simplify.
3372 * tree-ssa-sccvn.c (constant_value_ids): Remove.
3373 (next_constant_value_id): Add.
3374 (get_or_alloc_constant_value_id): Adjust.
3375 (value_id_constant_p): Remove definition.
3376 (get_max_constant_value_id): Define.
3377 (get_next_value_id): Add assert for overflow.
3378 (get_next_constant_value_id): Define.
3379 (run_rpo_vn): Adjust.
3380 (free_rpo_vn): Likewise.
3381 (do_rpo_vn): Initialize next_constant_value_id.
3382 * tree-ssa-pre.c (constant_value_expressions): New.
3383 (add_to_value): Split into constant/non-constant value
3384 handling. Avoid exact re-allocation.
3385 (vn_valnum_from_value_id): Adjust.
3386 (phi_translate_1): Remove spurious exact re-allocation.
3387 (bitmap_find_leader): Adjust. Make sure we return
3388 a CONSTANT value for a constant value id.
3389 (do_pre_regular_insertion): Use 2 auto-elements for avail.
3390 (do_pre_partial_partial_insertion): Likewise.
3391 (init_pre): Allocate constant_value_expressions.
3392 (fini_pre): Release constant_value_expressions.
3393
3394 2020-11-06 Richard Biener <rguenther@suse.de>
3395
3396 PR tree-optimization/97706
3397 * tree-vect-patterns.c (possible_vector_mask_operation_p):
3398 PHIs are possible mask operations.
3399 (vect_determine_mask_precision): Handle PHIs.
3400 (vect_determine_precisions): Walk PHIs in BB analysis.
3401
3402 2020-11-06 Richard Biener <rguenther@suse.de>
3403
3404 * tree-vect-slp.c (vect_analyze_slp): Pass down the
3405 SLP graph entry kind.
3406 (vect_analyze_slp_instance): Simplify.
3407 (vect_build_slp_instance): Adjust.
3408 (vect_slp_check_for_constructors): Perform more
3409 eligibility checks here.
3410
3411 2020-11-06 Jan Hubicka <jh@suse.cz>
3412
3413 * ipa-ref.h (enum ipa_ref_use): Remove GTY marker.
3414 (struct ipa_ref): Remove GTY marker; reorder for better packing.
3415 (struct ipa_ref_list): Remove GTY marker; turn references
3416 nad referring to va_heap, vl_ptr vectors; update accesors.
3417 * cgraph.h (symtab_node::iterate_reference): Update.
3418 * ipa-ref.c (ipa_ref::remove_reference): Update.
3419 * symtab.c (symtab_node::create_reference): Update.
3420 (symtab_node::remove_all_references): Update.
3421 (symtab_node::resolve_alias): Update.
3422
3423 2020-11-06 Jakub Jelinek <jakub@redhat.com>
3424
3425 * ipa-modref-tree.h: Fix comment typos.
3426 * ipa-modref.c: Likewise.
3427
3428 2020-11-06 Andreas Krebbel <krebbel@linux.ibm.com>
3429
3430 * config/s390/s390.c (s390_option_override_internal): Remove
3431 override of inline params.
3432
3433 2020-11-06 Richard Biener <rguenther@suse.de>
3434
3435 PR tree-optimization/97706
3436 * tree-vect-patterns.c (vect_determine_mask_precision):
3437 Remove worklist operation.
3438 (vect_determine_stmt_precisions): Do not call
3439 vect_determine_mask_precision here.
3440 (vect_determine_precisions): Compute mask precision
3441 in a forward walk.
3442
3443 2020-11-06 Richard Biener <rguenther@suse.de>
3444
3445 PR tree-optimization/97732
3446 * tree-vect-loop.c (vectorizable_induction): Convert the
3447 init elements to the vector component type.
3448 * gimple-fold.c (gimple_build_vector): Use CONSTANT_CLASS_P
3449 rather than TREE_CONSTANT to determine if elements are
3450 eligible for VECTOR_CSTs.
3451
3452 2020-11-06 Jan Hubicka <jh@suse.cz>
3453
3454 * attr-fnspec.h (attr_fnspec::get_str): New accessor
3455 * ipa-fnsummary.c (read_ipa_call_summary): Store also parm info
3456 for builtins.
3457 * ipa-modref.c (class fnspec_summary): New type.
3458 (class fnspec_summaries_t): New type.
3459 (modref_summary::modref_summary): Initialize writes_errno.
3460 (struct modref_summary_lto): Add writes_errno.
3461 (modref_summary_lto::modref_summary_lto): Initialize writes_errno.
3462 (modref_summary::dump): Check for NULL pointers.
3463 (modref_summary_lto::dump): Dump writes_errno.
3464 (collapse_loads): Move up in source file.
3465 (collapse_stores): New function.
3466 (process_fnspec): Handle also internal calls.
3467 (analyze_call): Likewise.
3468 (analyze_stmt): Store fnspec string if needed.
3469 (analyze_function): Initialize fnspec_sumarries.
3470 (modref_summaries_lto::duplicate): Copy writes_errno.
3471 (modref_write): Store writes_errno and fnspec summaries.
3472 (read_section): Read writes_errno and fnspec summaries.
3473 (modref_read): Initialize fnspec summaries.
3474 (update_signature): Fix formating.
3475 (compute_parm_map): Return true if sucessful.
3476 (get_parm_type): New function.
3477 (get_access_for_fnspec): New function.
3478 (propagate_unknown_call): New function.
3479 (modref_propagate_in_scc): Use it.
3480 (pass_ipa_modref::execute): Delete fnspec_summaries.
3481 (ipa_modref_c_finalize): Delete fnspec_summaries.
3482 * ipa-prop.c: Include attr-fnspec.h.
3483 (ipa_compute_jump_functions_for_bb): Also compute jump functions
3484 for functions with fnspecs.
3485 (ipa_read_edge_info): Read jump functions for builtins.
3486
3487 2020-11-06 Jan Hubicka <jh@suse.cz>
3488
3489 * ipa-fnsummary.h (class size_time_entry): Do not GTY annotate.
3490 (class ipa_fnsummary): Turn size_time_table to auto_vec and
3491 call_size_time_table to effecient vec; update constructors.
3492 * ipa-fnsummary.c (ipa_fn_summary::account_size_time): Update.
3493 (ipa_fn_summary::~ipa_fn_summary): Update.
3494 (ipa_fn_summary_t::duplicate): Update.
3495 (ipa_dump_fn_summary): Update.
3496 (set_switch_stmt_execution_predicate): Update.
3497 (analyze_function_body): Update.
3498 (estimate_calls_size_and_time): Update.
3499 (ipa_call_context::estimate_size_and_time): Update.
3500 (ipa_merge_fn_summary_after_inlining): Update.
3501 (ipa_update_overall_fn_summary): Update.
3502 (inline_read_section): Update.
3503 (ipa_fn_summary_write): Update.
3504
3505 2020-11-06 Richard Biener <rguenther@suse.de>
3506
3507 PR tree-optimization/97733
3508 * tree-vect-slp.c (vect_analyze_slp_instance): If less
3509 than two reductions were relevant or live do nothing.
3510
3511 2020-11-06 Jeff Law <law@redhat.com>
3512
3513 PR tree-optimization/97223
3514 * match.pd (overflow detection and optimization): Handle conversions.
3515
3516 2020-11-06 Eugene Rozenfeld <erozen@microsoft.com>
3517
3518 * match.pd (x >> x): New pattern.
3519
3520 2020-11-06 Kito Cheng <kito.cheng@sifive.com>
3521
3522 * common/config/riscv/riscv-common.c (riscv_implied_info):
3523 Add static and const.
3524 (riscv_subset_list::handle_implied_ext): Add const due to
3525 riscv_implied_info changed to const.
3526
3527 2020-11-06 Kito Cheng <kito.cheng@sifive.com>
3528
3529 PR target/96307
3530 * toplev.c (process_options): Remove param_asan_stack checking for kasan
3531 option checking.
3532
3533 2020-11-05 Marek Polacek <polacek@redhat.com>
3534
3535 PR c++/97675
3536 * doc/invoke.texi: Document -Wexceptions.
3537
3538 2020-11-05 Marek Polacek <polacek@redhat.com>
3539
3540 PR c++/25814
3541 * doc/invoke.texi: Document -Wvexing-parse.
3542
3543 2020-11-05 Andrew MacLeod <amacleod@redhat.com>
3544
3545 PR tree-optimization/97725
3546 * range-op.cc (operator_equal::fold_range): Use new tmp value.
3547 (operator_not_equal::fold_range): Ditto.
3548 * value-query.cc (range_query::value_of_expr): Use int_range_max
3549 not a value_range.
3550 (range_query::value_on_edge): Ditto.
3551 (range_query::value_of_stmt): Ditto.
3552
3553 2020-11-05 Olivier Hainque <hainque@adacore.com>
3554
3555 * config/aarch64/aarch64-vxworks.h (TARGET_OS_USES_R18):
3556 Remove definition.
3557 (STATIC_CHAIN_REGNUM): Redefine to 9.
3558
3559 2020-11-05 Olivier Hainque <hainque@adacore.com>
3560
3561 * config/aarch64/aarch64.md: Define PROBE_STACK_FIRST_REGNUM
3562 and PROBE_STACK_SECOND_REGNUM constants, designating r10/r11.
3563 Replacements for the PROBE_STACK_FIRST/SECOND_REG constants in
3564 aarch64.c.
3565 * config/aarch64/aarch64.c (PROBE_STACK_FIRST_REG): Remove.
3566 (PROBE_STACK_SECOND_REG): Remove.
3567 (aarch64_emit_probe_stack_range): Adjust to the _REG -> _REGNUM
3568 suffix update for PROBE_STACK register numbers.
3569
3570 2020-11-05 Jan Hubicka <jh@suse.cz>
3571
3572 * gimple.c (gimple_call_fnspec): Handle C++ new and delete.
3573 * gimple.h (gimple_call_from_new_or_delete): Constify parameter.
3574
3575 2020-11-05 Aldy Hernandez <aldyh@redhat.com>
3576
3577 PR tree-optimization/97721
3578 * gimple-range.cc (get_tree_range): Drop overflow from constants.
3579
3580 2020-11-05 David Malcolm <dmalcolm@redhat.com>
3581
3582 * tree-diagnostic-path.cc (struct path_summary::event_range): Move
3583 out of path_summary to...
3584 (struct event_range): ...here.
3585 (class path_summary): Convert to...
3586 (struct path_summary): ...this.
3587 (path_summary::m_ranges): Drop "private".
3588 (path_summary::print): Convert to...
3589 (print_path_summary_as_text): ...this, passing in the path_summary
3590 explicitly.
3591 (default_tree_diagnostic_path_printer): Update for above change.
3592 (selftest::test_empty_path): Likewise.
3593 (selftest::test_intraprocedural_path): Likewise.
3594 (selftest::test_interprocedural_path_1): Likewise.
3595 (selftest::test_interprocedural_path_2): Likewise.
3596 (selftest::test_recursion): Likewise.
3597
3598 2020-11-05 qing zhao <qinzhao@gcc.gnu.org>
3599
3600 PR target/97715
3601 * config/i386/i386.c (zero_all_st_registers): Return
3602 earlier when the FPU is disabled.
3603
3604 2020-11-05 Jan Hubicka <jh@suse.cz>
3605
3606 * ipa-modref.c (parm_map_for_arg): Initialize parm_offset and
3607 parm_offset_knonw.
3608 (read_section): Set writes_errno to false.
3609
3610 2020-11-05 Richard Biener <rguenther@suse.de>
3611
3612 * tree-vect-data-refs.c (vect_slp_analyze_node_dependences):
3613 Use the original stmts.
3614 (vect_slp_analyze_node_alignment): Use the pattern stmt.
3615 * tree-vect-slp.c (vect_fixup_store_groups_with_patterns):
3616 New function.
3617 (vect_slp_analyze_bb_1): Call it.
3618
3619 2020-11-05 Tamar Christina <tamar.christina@arm.com>
3620
3621 * tree-vect-slp.c (vect_slp_tree_permute_noop_p): New.
3622 (vect_optimize_slp): Optimize permutes.
3623 (vectorizable_slp_permutation): Fix typo.
3624
3625 2020-11-05 Richard Biener <rguenther@suse.de>
3626
3627 PR debug/97718
3628 * dwarf2out.c (add_abstract_origin_attribute): Make sure to
3629 point to the abstract instance.
3630
3631 2020-11-05 Tamar Christina <tamar.christina@arm.com>
3632
3633 * tree-vect-loop.c (vect_analyze_loop_2): Check kind.
3634 * tree-vect-slp.c (vect_build_slp_instance): New.
3635 (enum slp_instance_kind): Move to...
3636 * tree-vectorizer.h (enum slp_instance_kind): .. Here
3637 (SLP_INSTANCE_KIND): New.
3638
3639 2020-11-05 Kewen Lin <linkw@linux.ibm.com>
3640
3641 PR target/96933
3642 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Use direct move
3643 instructions for vector construction with char/short types.
3644 * config/rs6000/rs6000.md (p8_mtvsrwz_v16qisi2): New define_insn.
3645 (p8_mtvsrd_v16qidi2): Likewise.
3646
3647 2020-11-04 Tamar Christina <tamar.christina@arm.com>
3648
3649 * tree-vect-slp.c (vect_analyze_slp_instance): Moved load/store lanes
3650 check to ...
3651 * tree-vect-loop.c (vect_analyze_loop_2): ..Here
3652
3653 2020-11-04 Ilya Leoshkevich <iii@linux.ibm.com>
3654
3655 * config/s390/s390.c (NR_C_MODES): Unhardcode.
3656 (s390_alloc_pool): Use size_t for iterating from 0 to
3657 NR_C_MODES.
3658 (s390_add_constant): Likewise.
3659 (s390_find_constant): Likewise.
3660 (s390_dump_pool): Likewise.
3661 (s390_free_pool): Likewise.
3662
3663 2020-11-04 Ilya Leoshkevich <iii@linux.ibm.com>
3664
3665 * config/s390/s390.md (RRe): Remove.
3666 (RXe): Remove.
3667
3668 2020-11-04 Andrew MacLeod <amacleod@redhat.com>
3669
3670 PR tree-optimization/97515
3671 * gimple-range-cache.h (class ranger_cache): New prototypes plus
3672 temporal cache pointer.
3673 * gimple-range-cache.cc (struct range_timestamp): New.
3674 (class temporal_cache): New.
3675 (temporal_cache::temporal_cache): New.
3676 (temporal_cache::~temporal_cache): New.
3677 (temporal_cache::get_timestamp): New.
3678 (temporal_cache::set_dependency): New.
3679 (temporal_cache::temporal_value): New.
3680 (temporal_cache::current_p): New.
3681 (temporal_cache::set_timestamp): New.
3682 (temporal_cache::set_always_current): New.
3683 (ranger_cache::ranger_cache): Allocate the temporal cache.
3684 (ranger_cache::~ranger_cache): Free temporal cache.
3685 (ranger_cache::get_non_stale_global_range): New.
3686 (ranger_cache::set_global_range): Add a timestamp.
3687 (ranger_cache::register_dependency): New. Add timestamp dependency.
3688 * gimple-range.cc (gimple_ranger::range_of_range_op): Add operand
3689 dependencies.
3690 (gimple_ranger::range_of_phi): Ditto.
3691 (gimple_ranger::range_of_stmt): Check if global range is stale, and
3692 recalculate if so.
3693
3694 2020-11-04 Tobias Burnus <tobias@codesourcery.com>
3695
3696 * targhooks.c (default_zero_call_used_regs): Fix flag-name typo
3697 in sorry.
3698
3699 2020-11-04 Richard Biener <rguenther@suse.de>
3700
3701 * tree-vectorizer.h (vectorizable_phi): Adjust prototype.
3702 * tree-vect-stmts.c (vect_transform_stmt): Adjust.
3703 (vect_analyze_stmt): Pass cost_vec to vectorizable_phi.
3704 * tree-vect-loop.c (vectorizable_phi): Do costing.
3705
3706 2020-11-04 Richard Biener <rguenther@suse.de>
3707
3708 PR tree-optimization/97709
3709 * tree-vect-loop.c (vectorizable_live_operation): Set
3710 SSA_NAME_OCCURS_IN_ABNORMAL_PHI when necessary.
3711
3712 2020-11-04 Jakub Jelinek <jakub@redhat.com>
3713
3714 PR tree-optimization/97690
3715 * tree-ssa-phiopt.c (conditional_replacement): Also optimize
3716 cond ? pow2p_cst : 0 as ((type) cond) << cst.
3717
3718 2020-11-04 Richard Biener <rguenther@suse.de>
3719
3720 * tree-vect-loop.c (vectorizable_induction): Re-instantiate
3721 previously removed CSE of SLP IVs.
3722
3723 2020-11-04 Uroš Bizjak <ubizjak@gmail.com>
3724
3725 * config/i386/i386-options.c (ix86_recompute_optlev_based_flags):
3726 Fix Intel MCU psABI comment w.r.t DEFAULT_PCC_STRUCT_RETURN.
3727
3728 2020-11-04 Richard Biener <rguenther@suse.de>
3729
3730 PR bootstrap/97666
3731 * tree-vect-slp.c (vect_build_slp_tree_2): Revert previous
3732 fix and instead adjust the memset.
3733
3734 2020-11-04 Pat Bernardi <bernardi@adacore.com>
3735
3736 * config/i386/i386elf.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
3737 (ASM_OUTPUT_ASCII): Likewise.
3738 (DEFAULT_PCC_STRUCT_RETURN): Define.
3739 * config/i386/i386.c (ix86_return_in_memory): Remove
3740 SUBTARGET_RETURN_IN_MEMORY.
3741
3742 2020-11-04 liuhongt <hongtao.liu@intel.com>
3743
3744 PR target/97540
3745 * ira.c: (ira_setup_alts): Extract memory from operand only
3746 for special memory constraint.
3747 * recog.c (asm_operand_ok): Ditto.
3748 * lra-constraints.c (process_alt_operands): MEM_P is
3749 required for normal memory constraint.
3750
3751 2020-11-04 liuhongt <hongtao.liu@intel.com>
3752
3753 PR target/97532
3754 * lra-constraints.c (valid_address_p): Handle operand of
3755 special memory constraint.
3756 (process_address_1): Ditto.
3757
3758 2020-11-03 Jan Hubicka <hubicka@ucw.cz>
3759
3760 PR ipa/97695
3761 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Fix ICE with
3762 in dumping code.
3763 (cgraph_node::remove): Save clone info before releasing it and pass it
3764 to unregister.
3765 * cgraph.h (symtab_node::unregister): Add clone_info parameter.
3766 (cgraph_clone::unregister): Likewise.
3767 * cgraphclones.c (cgraph_node::find_replacement): Copy clone info
3768 * symtab-clones.cc (clone_infos_t::duplicate): Remove.
3769 (clone_info::get_create): Simplify.
3770 * symtab.c (symtab_node::unregister): Pass around clone info.
3771 * varpool.c (varpool_node::remove): Update.
3772
3773 2020-11-03 Thomas Schwinge <thomas@codesourcery.com>
3774
3775 * omp-low.c (scan_omp_for) <OpenACC>: Use proper location to
3776 'inform' of enclosing parent compute construct.
3777
3778 2020-11-03 Jan Hubicka <hubicka@ucw.cz>
3779
3780 PR ipa/97698
3781 * cgraphclones.c (duplicate_thunk_for_node): Check that info is
3782 non-NULL.
3783
3784 2020-11-03 Uroš Bizjak <ubizjak@gmail.com>
3785
3786 * config/i386/i386.c (ix86_function_arg_regno_p): Use up to
3787 SSE_REGPARM_MAX registers to pass function parameters
3788 for 32bit Mach-O targets.
3789 * config/i386/i386.h (X86_32_MMX_REGPARM_MAX): New macro.
3790 (MMX_REGPARM_MAX): Use it.
3791
3792 2020-11-03 Dennis Zhang <dennis.zhang@arm.com>
3793
3794 * config/aarch64/aarch64-simd-builtins.def (vget_lo_half): New entry.
3795 (vget_hi_half): Likewise.
3796 * config/aarch64/aarch64-simd.md (aarch64_vget_lo_halfv8bf): New entry.
3797 (aarch64_vget_hi_halfv8bf): Likewise.
3798 * config/aarch64/arm_neon.h (vget_low_bf16): New intrinsic.
3799 (vget_high_bf16): Likewise.
3800
3801 2020-11-03 Yang Yang <yangyang305@huawei.com>
3802
3803 * cgraph.h (struct cgraph_simd_clone): Change field "simdlen" of
3804 struct cgraph_simd_clone from unsigned int to poly_uint64.
3805 * config/aarch64/aarch64.c
3806 (aarch64_simd_clone_compute_vecsize_and_simdlen): adaptation of
3807 operations on "simdlen".
3808 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
3809 Printf formats update.
3810 * gengtype.c (main): Handle poly_uint64.
3811 * omp-simd-clone.c (simd_clone_mangle): Likewise.Re
3812 (simd_clone_adjust_return_type): Likewise.
3813 (create_tmp_simd_array): Likewise.
3814 (simd_clone_adjust_argument_types): Likewise.
3815 (simd_clone_init_simd_arrays): Likewise.
3816 (ipa_simd_modify_function_body): Likewise.
3817 (simd_clone_adjust): Likewise.
3818 (expand_simd_clones): Likewise.
3819 * poly-int-types.h (vector_unroll_factor): New macro.
3820 * poly-int.h (constant_multiple_p): Add two-argument versions.
3821 * tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise.
3822
3823 2020-11-03 Richard Biener <rguenther@suse.de>
3824
3825 PR tree-optimization/97623
3826 * params.opt (-param=max-pre-hoist-insert-iterations): New.
3827 * doc/invoke.texi (max-pre-hoist-insert-iterations): Document.
3828 * tree-ssa-pre.c (insert): Do at most max-pre-hoist-insert-iterations
3829 hoist insert iterations.
3830
3831 2020-11-03 Richard Biener <rguenther@suse.de>
3832
3833 PR middle-end/97579
3834 * gimple-isel.cc (gimple_expand_vec_cond_expr): Use
3835 the correct types for the vcond_mask/vec_cmp optab queries.
3836
3837 2020-11-03 Andrew MacLeod <amacleod@redhat.com>
3838
3839 * gimple-range-cache.cc (ssa_global_cache::get_global_range): Return
3840 true if there was a previous range set.
3841 (ranger_cache::ranger_cache): Take a gimple_ranger parameter.
3842 (ranger_cache::set_global_range): Propagate the value if updating.
3843 (ranger_cache::propagate_cache): Renamed from iterative_cache_update.
3844 (ranger_cache::propagate_updated_value): New. Split from:
3845 (ranger_cache::fill_block_cache): Split out value propagator.
3846 * gimple-range-cache.h (ssa_global_cache): Update prototypes.
3847 (ranger_cache): Update prototypes.
3848
3849 2020-11-03 Andrew MacLeod <amacleod@redhat.com>
3850
3851 * gimple-range-cache.h (block_range_cache): Add new entry point.
3852 (ranger_cache): Privatize global abnd block cache members.
3853 * gimple-range-cache.cc (ssa_block_ranges::set_bb_range): Add bounds
3854 check.
3855 (ssa_block_ranges::set_bb_varying): Ditto.
3856 (ssa_block_ranges::get_bb_range): Ditto.
3857 (ssa_block_ranges::bb_range_p): Ditto.
3858 (block_range_cache::get_block_ranges): Fix formatting.
3859 (block_range_cache::query_block_ranges): New.
3860 (block_range_cache::get_bb_range): Use Query_block_ranges.
3861 (block_range_cache::bb_range_p): Ditto.
3862 (ranger_cache::dump): New.
3863 (ranger_cache::get_global_range): New.
3864 (ranger_cache::set_global_range): New.
3865 * gimple-range.cc (gimple_ranger::range_of_expr): Use new API.
3866 (gimple_ranger::range_of_stmt): Ditto.
3867 (gimple_ranger::export_global_ranges): Ditto.
3868 (gimple_ranger::dump): Ditto.
3869
3870 2020-11-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
3871
3872 * fold-const.c (getbyterep): Remove duplicated statement.
3873
3874 2020-11-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
3875
3876 PR target/97205
3877 * cfgexpand.c (align_local_variable): Make SSA_NAMEs
3878 at least MODE_ALIGNED.
3879 (expand_one_stack_var_at): Increase MEM_ALIGN for SSA_NAMEs.
3880
3881 2020-11-03 Zhiheng Xie <xiezhiheng@huawei.com>
3882 Nannan Zheng <zhengnannan@huawei.com>
3883
3884 * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG
3885 for AES/SHA/SM3/SM4 intrinsics.
3886
3887 2020-11-03 Zhiheng Xie <xiezhiheng@huawei.com>
3888 Nannan Zheng <zhengnannan@huawei.com>
3889
3890 * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG
3891 for compare intrinsics.
3892
3893 2020-11-03 Richard Biener <rguenther@suse.de>
3894
3895 * dwarf2out.c (maybe_create_die_with_external_ref): Remove
3896 hashtable entry.
3897
3898 2020-11-03 Andrea Corallo <andrea.corallo@arm.com>
3899
3900 * config/arm/arm_neon.h (vst2_lane_bf16, vst2q_lane_bf16)
3901 (vst3_lane_bf16, vst3q_lane_bf16, vst4_lane_bf16)
3902 (vst4q_lane_bf16): New intrinsics.
3903 * config/arm/arm_neon_builtins.def: Touch it for:
3904 __builtin_neon_vst2_lanev4bf, __builtin_neon_vst2_lanev8bf,
3905 __builtin_neon_vst3_lanev4bf, __builtin_neon_vst3_lanev8bf,
3906 __builtin_neon_vst4_lanev4bf,__builtin_neon_vst4_lanev8bf.
3907
3908 2020-11-03 Andrea Corallo <andrea.corallo@arm.com>
3909
3910 * config/arm/arm_neon.h (vld2_lane_bf16, vld2q_lane_bf16)
3911 (vld3_lane_bf16, vld3q_lane_bf16, vld4_lane_bf16)
3912 (vld4q_lane_bf16): Add intrinsics.
3913 * config/arm/arm_neon_builtins.def: Touch for:
3914 __builtin_neon_vld2_lanev4bf, __builtin_neon_vld2_lanev8bf,
3915 __builtin_neon_vld3_lanev4bf, __builtin_neon_vld3_lanev8bf,
3916 __builtin_neon_vld4_lanev4bf, __builtin_neon_vld4_lanev8bf.
3917 * config/arm/iterators.md (VQ_HS): Add V8BF to the iterator.
3918
3919 2020-11-03 Andrea Corallo <andrea.corallo@arm.com>
3920
3921 * config/arm/arm_neon.h (vst1_bf16, vst1q_bf16): Add intrinsics.
3922 * config/arm/arm_neon_builtins.def : Touch for:
3923 __builtin_neon_vst1v4bf, __builtin_neon_vst1v8bf.
3924
3925 2020-11-03 Andrea Corallo <andrea.corallo@arm.com>
3926
3927 * config/arm/arm-builtins.c (VAR14): Define macro.
3928 * config/arm/arm_neon_builtins.def: Touch for:
3929 __builtin_neon_vld1v4bf, __builtin_neon_vld1v8bf.
3930 * config/arm/arm_neon.h (vld1_bf16, vld1q_bf16): Add intrinsics.
3931
3932 2020-11-03 Andrea Corallo <andrea.corallo@arm.com>
3933
3934 * config/arm/arm_neon.h (vst1_lane_bf16, vst1q_lane_bf16): Add
3935 intrinsics.
3936 * config/arm/arm_neon_builtins.def (STORE1LANE): Add v4bf, v8bf.
3937
3938 2020-11-03 Andrea Corallo <andrea.corallo@arm.com>
3939
3940 * config/arm/arm_neon_builtins.def: Add to LOAD1LANE v4bf, v8bf.
3941 * config/arm/arm_neon.h (vld1_lane_bf16, vld1q_lane_bf16): Add
3942 intrinsics.
3943
3944 2020-11-03 Richard Biener <rguenther@suse.de>
3945
3946 PR bootstrap/97666
3947 * tree-vect-slp.c (vect_build_slp_tree_2): Scale
3948 allocation of skip_args by sizeof (bool).
3949
3950 2020-11-03 Richard Biener <rguenther@suse.de>
3951
3952 PR tree-optimization/80928
3953 * tree-vect-loop.c (vectorizable_induction): SLP vectorize
3954 nested inductions.
3955
3956 2020-11-03 Jan Hubicka <hubicka@ucw.cz>
3957
3958 PR ipa/97578
3959 * ipa-inline-transform.c (maybe_materialize_called_clones): New
3960 function.
3961 (inline_transform): Use it.
3962
3963 2020-11-03 Richard Biener <rguenther@suse.de>
3964
3965 PR tree-optimization/97678
3966 * tree-vect-slp.c (vect_build_slp_tree_2): Do not track
3967 the initial values of inductions when not nested.
3968 * tree-vect-loop.c (vectorizable_induction): Look at
3969 PHI node initial values again for SLP and not nested
3970 inductions. Handle LOOP_VINFO_MASK_SKIP_NITERS and cost
3971 invariants.
3972
3973 2020-11-03 Uroš Bizjak <ubizjak@gmail.com>
3974
3975 * config/i386/sse.md (aes<aeswideklvariant>u8):
3976 Do not use xmm_regs array. Fix whitespace.
3977
3978 2020-11-03 Uroš Bizjak <ubizjak@gmail.com>
3979
3980 * config/i386/i386-expand.c (ix86_expand_builtin): Fix comment.
3981
3982 2020-11-03 Thomas Schwinge <thomas@codesourcery.com>
3983
3984 * omp-low.c (scan_omp_for) <OpenACC>: Move earlier inconsistent
3985 nested 'reduction' clauses checking.
3986
3987 2020-11-03 Thomas Schwinge <thomas@codesourcery.com>
3988
3989 * omp-low.c (scan_omp_for) <OpenACC>: More precise diagnostics for
3990 'gang', 'worker', 'vector' clauses with arguments only allowed in
3991 'kernels' regions.
3992
3993 2020-11-03 Kewen Lin <linkw@gcc.gnu.org>
3994
3995 PR tree-optimization/96789
3996 * function.h (struct function): New member unsigned pending_TODOs.
3997 * passes.c (class pass_pre_slp_scalar_cleanup): New class.
3998 (make_pass_pre_slp_scalar_cleanup): New function.
3999 (pass_data_pre_slp_scalar_cleanup): New pass data.
4000 * passes.def: (pass_pre_slp_scalar_cleanup): New pass, add
4001 pass_fre and pass_dse as its children.
4002 * timevar.def (TV_SCALAR_CLEANUP): New timevar.
4003 * tree-pass.h (PENDING_TODO_force_next_scalar_cleanup): New
4004 pending TODO flag.
4005 (make_pass_pre_slp_scalar_cleanup): New declare.
4006 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1):
4007 Once any outermost loop gets unrolled, flag cfun pending_TODOs
4008 PENDING_TODO_force_next_scalar_cleanup on.
4009
4010 2020-11-02 Alan Modra <amodra@gmail.com>
4011
4012 PR middle-end/97267
4013 * calls.h (maybe_complain_about_tail_call): Declare.
4014 * calls.c (maybe_complain_about_tail_call): Make global.
4015 (can_implement_as_sibling_call_p): Delete reg_parm_stack_space
4016 param. Adjust caller. Move REG_PARM_STACK_SPACE check to..
4017 * config/i386/i386.c (ix86_function_ok_for_sibcall): ..here.
4018
4019 2020-11-02 Vladimir N. Makarov <vmakarov@redhat.com>
4020
4021 * ira.c (ira_remove_scratches): Rename to remove_scratches. Make
4022 it static and returning flag of any change.
4023 (ira.c): Call ira_expand_reg_equiv in case of removing scratches.
4024
4025 2020-11-02 H.J. Lu <hjl.tools@gmail.com>
4026
4027 PR target/97140
4028 * config/i386/i386-expand.c (ix86_expand_builtin): Require MMX
4029 for __builtin_ia32_maskmovq.
4030
4031 2020-11-02 Martin Sebor <msebor@redhat.com>
4032
4033 * doc/invoke.texi (-Wstringop-overflow): Correct default setting.
4034 (-Wstringop-overread): Move past -Wstringop-overflow.
4035
4036 2020-11-02 François-Xavier Coudert <fxcoudert@gcc.gnu.org>
4037
4038 PR bootstrap/57076
4039 * Makefile.in (gcc-vers.texi): Quote @, { and }.
4040
4041 2020-11-02 Carl Love <cel@us.ibm.com>
4042
4043 PR target/93449
4044 * config/rs6000/altivec.h (__builtin_bcdadd, __builtin_bcdadd_lt,
4045 __builtin_bcdadd_eq, __builtin_bcdadd_gt, __builtin_bcdadd_ofl,
4046 __builtin_bcdadd_ov, __builtin_bcdsub, __builtin_bcdsub_lt,
4047 __builtin_bcdsub_eq, __builtin_bcdsub_gt, __builtin_bcdsub_ofl,
4048 __builtin_bcdsub_ov, __builtin_bcdinvalid, __builtin_bcdmul10,
4049 __builtin_bcddiv10, __builtin_bcd2dfp, __builtin_bcdcmpeq,
4050 __builtin_bcdcmpgt, __builtin_bcdcmplt, __builtin_bcdcmpge,
4051 __builtin_bcdcmple): Add defines.
4052 * config/rs6000/altivec.md: Add UNSPEC_BCDSHIFT.
4053 (BCD_TEST): Add le, ge to code iterator.
4054 Add VBCD mode iterator.
4055 (bcd<bcd_add_sub>_test, *bcd<bcd_add_sub>_test2,
4056 bcd<bcd_add_sub>_<code>, bcd<bcd_add_sub>_<code>): Add mode to name.
4057 Change iterator from V1TI to VBCD.
4058 (*bcdinvalid_<mode>, bcdshift_v16qi): New define_insn.
4059 (bcdinvalid_<mode>, bcdmul10_v16qi, bcddiv10_v16qi): New define.
4060 * config/rs6000/dfp.md (dfp_denbcd_v16qi_inst): New define_insn.
4061 (dfp_denbcd_v16qi): New define_expand.
4062 * config/rs6000/rs6000-builtin.def (BU_P8V_MISC_1): New define.
4063 (BCDADD): Replaced with BCDADD_V1TI and BCDADD_V16QI.
4064 (BCDADD_LT): Replaced with BCDADD_LT_V1TI and BCDADD_LT_V16QI.
4065 (BCDADD_EQ): Replaced with BCDADD_EQ_V1TI and BCDADD_EQ_V16QI.
4066 (BCDADD_GT): Replaced with BCDADD_GT_V1TI and BCDADD_GT_V16QI.
4067 (BCDADD_OV): Replaced with BCDADD_OV_V1TI and BCDADD_OV_V16QI.
4068 (BCDSUB_V1TI, BCDSUB_V16QI, BCDSUB_LT_V1TI, BCDSUB_LT_V16QI,
4069 BCDSUB_LE_V1TI, BCDSUB_LE_V16QI, BCDSUB_EQ_V1TI, BCDSUB_EQ_V16QI,
4070 BCDSUB_GT_V1TI, BCDSUB_GT_V16QI, BCDSUB_GE_V1TI, BCDSUB_GE_V16QI,
4071 BCDSUB_OV_V1TI, BCDSUB_OV_V16QI, BCDINVALID_V1TI, BCDINVALID_V16QI,
4072 BCDMUL10_V16QI, BCDDIV10_V16QI, DENBCD_V16QI): New builtin definitions.
4073 (BCDADD, BCDADD_LT, BCDADD_EQ, BCDADD_GT, BCDADD_OV, BCDSUB, BCDSUB_LT,
4074 BCDSUB_LE, BCDSUB_EQ, BCDSUB_GT, BCDSUB_GE, BCDSUB_OV, BCDINVALID,
4075 BCDMUL10, BCDDIV10, DENBCD): New overload definitions.
4076 * config/rs6000/rs6000-call.c (P8V_BUILTIN_VEC_BCDADD, P8V_BUILTIN_VEC_BCDADD_LT,
4077 P8V_BUILTIN_VEC_BCDADD_EQ, P8V_BUILTIN_VEC_BCDADD_GT, P8V_BUILTIN_VEC_BCDADD_OV,
4078 P8V_BUILTIN_VEC_BCDINVALID, P9V_BUILTIN_VEC_BCDMUL10, P8V_BUILTIN_VEC_DENBCD.
4079 P8V_BUILTIN_VEC_BCDSUB, P8V_BUILTIN_VEC_BCDSUB_LT, P8V_BUILTIN_VEC_BCDSUB_LE,
4080 P8V_BUILTIN_VEC_BCDSUB_EQ, P8V_BUILTIN_VEC_BCDSUB_GT, P8V_BUILTIN_VEC_BCDSUB_GE,
4081 P8V_BUILTIN_VEC_BCDSUB_OV): New overloaded specifications.
4082 (CODE_FOR_bcdadd): Replaced with CODE_FOR_bcdadd_v16qi and CODE_FOR_bcdadd_v1ti.
4083 (CODE_FOR_bcdadd_lt): Replaced with CODE_FOR_bcdadd_lt_v16qi and CODE_FOR_bcdadd_lt_v1ti.
4084 (CODE_FOR_bcdadd_eq): Replaced with CODE_FOR_bcdadd_eq_v16qi and CODE_FOR_bcdadd_eq_v1ti.
4085 (CODE_FOR_bcdadd_gt): Replaced with CODE_FOR_bcdadd_gt_v16qi and CODE_FOR_bcdadd_gt_v1ti.
4086 (CODE_FOR_bcdsub): Replaced with CODE_FOR_bcdsub_v16qi and CODE_FOR_bcdsub_v1ti.
4087 (CODE_FOR_bcdsub_lt): Replaced with CODE_FOR_bcdsub_lt_v16qi and CODE_FOR_bcdsub_lt_v1ti.
4088 (CODE_FOR_bcdsub_eq): Replaced with CODE_FOR_bcdsub_eq_v16qi and CODE_FOR_bcdsub_eq_v1ti.
4089 (CODE_FOR_bcdsub_gt): Replaced with CODE_FOR_bcdsub_gt_v16qi and CODE_FOR_bcdsub_gt_v1ti.
4090 (rs6000_expand_ternop_builtin): Add CODE_FOR_dfp_denbcd_v16qi to else if.
4091 * doc/extend.texi: Add documentation for new builtins.
4092
4093 2020-11-02 Nathan Sidwell <nathan@acm.org>
4094
4095 * tree.c (cache_integer_cst): Fixup pointer caching to match
4096 wide_int_to_type_1's expectations. Add comment.
4097
4098 2020-11-02 Nathan Sidwell <nathan@acm.org>
4099
4100 * tree.h (id_equal): Call the symetric predicate with swapped
4101 arguments.
4102
4103 2020-11-02 Nathan Sidwell <nathan@acm.org>
4104
4105 * print-tree.c (print_node): Display all the operands of a call
4106 expr.
4107
4108 2020-11-02 Vladimir N. Makarov <vmakarov@redhat.com>
4109
4110 * config/rs6000/vsx.md (*vsx_extract_<mode>_store_p9): Add hint *
4111 to 2nd alternative of the 1st scratch.
4112
4113 2020-11-02 Sudakshina Das <sudi.das@arm.com>
4114
4115 PR target/97638
4116 * config/aarch64/aarch64-bti-insert.c (aarch64_pac_insn_p): Update
4117 return value on INSN_P check.
4118
4119 2020-11-02 Richard Biener <rguenther@suse.de>
4120
4121 * tree.h (build_real_from_wide): Declare.
4122 * tree.c (build_real_from_wide): New function.
4123 * tree-vect-slp.c (vect_build_slp_tree_2): Remove
4124 restriction on induction vectorization, represent
4125 the initial value.
4126 * tree-vect-loop.c (vect_model_induction_cost): Inline ...
4127 (vectorizable_induction): ... here. Rewrite SLP
4128 code generation.
4129
4130 2020-11-02 Martin Jambor <mjambor@suse.cz>
4131
4132 * dbgcnt.def (ipa_cp_values): New counter.
4133 (ipa_cp_vr): Likewise.
4134 * ipa-cp.c (decide_about_value): Check and bump ipa_cp_values debug
4135 counter.
4136 (decide_whether_version_node): Likewise.
4137 (ipcp_store_vr_results):Check and bump ipa_cp_vr debug counter.
4138
4139 2020-11-02 Christophe Lyon <christophe.lyon@linaro.org>
4140
4141 * config/arm/arm.c (arm_thumb1_mi_thunk): Build mi_delta in r3 and
4142 do not emit function address and delta when -mpure-code is used.
4143
4144 2020-11-02 Christophe Lyon <christophe.lyon@linaro.org>
4145
4146 * config/arm/thumb1.md (thumb1_movsi_insn): Call
4147 thumb1_gen_const_int_print.
4148 * config/arm/arm-protos.h (thumb1_gen_const_int_print): Add
4149 prototype.
4150 * config/arm/arm.c (thumb1_gen_const_int_print): New.
4151
4152 2020-11-02 Christophe Lyon <christophe.lyon@linaro.org>
4153
4154 * config/arm/arm.c (thumb1_const_rtl, thumb1_const_print): New
4155 classes.
4156 (thumb1_gen_const_int): Rename to ...
4157 (thumb1_gen_const_int_1): ... New helper function. Add capability
4158 to emit either RTL or asm, improve generated code.
4159 (thumb1_gen_const_int_rtl): New function.
4160 * config/arm/arm-protos.h (thumb1_gen_const_int): Rename to
4161 thumb1_gen_const_int_rtl.
4162 * config/arm/thumb1.md: Call thumb1_gen_const_int_rtl instead
4163 of thumb1_gen_const_int.
4164
4165 2020-11-02 Richard Biener <rguenther@suse.de>
4166
4167 PR tree-optimization/97558
4168 * tree-vect-loop.c (vectorizable_reduction): For nested SLP
4169 cycles compute invariant operands vector type.
4170
4171 2020-11-02 Richard Biener <rguenther@suse.de>
4172
4173 PR tree-optimization/97558
4174 * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns):
4175 Check for any mismatch in pattern vs. non-pattern and dissolve
4176 the group if there is one.
4177 * tree-vect-slp.c (vect_analyze_slp_instance): Avoid
4178 analyzing not relevant reductions.
4179 (vect_analyze_slp): Avoid analyzing not relevant reduction
4180 groups.
4181
4182 2020-11-02 Richard Biener <rguenther@suse.de>
4183
4184 PR tree-optimization/97650
4185 * tree-vect-slp.c (vect_get_and_check_slp_defs): Check
4186 for SSA_NAME before checking SSA_NAME_IS_DEFAULT_DEF.
4187
4188 2020-11-02 Kito Cheng <kito.cheng@sifive.com>
4189
4190 * common/config/riscv/riscv-common.c
4191 (riscv_subset_list::parse_multiletter_ext): Checking multiletter
4192 extension has more than 1 letter.
4193
4194 2020-11-02 Kito Cheng <kito.cheng@sifive.com>
4195
4196 * config.gcc (riscv*-*-*): Handle --with-multilib-generator.
4197 * configure: Regen.
4198 * configure.ac: Add --with-multilib-generator.
4199 * config/riscv/multilib-generator: Exit when parsing arch string error.
4200 * config/riscv/t-withmultilib-generator: New.
4201 * doc/install.texi: Document --with-multilib-generator.
4202
4203 2020-11-02 Christophe Lyon <christophe.lyon@linaro.org>
4204
4205 PR target/96770
4206 * config/arm/arm.c (thumb_legitimate_constant_p): Accept
4207 (symbol_ref + addend) when literal pool is disabled.
4208 (arm_valid_symbolic_address_p): Add support for thumb-1 without
4209 MOVT/MOVW.
4210 * config/arm/thumb1.md (*thumb1_movsi_insn): Accept (symbol_ref +
4211 addend) in the pure-code alternative.
4212
4213 2020-11-02 Christophe Lyon <christophe.lyon@linaro.org>
4214
4215 PR target/96967
4216 * config/arm/arm.c (thumb_legitimate_constant_p): Add support for
4217 disabled literal pool in thumb-1.
4218 * config/arm/thumb1.md (thumb1_movsi_symbol_ref): Remove.
4219 (*thumb1_movsi_insn): Add support for SYMBOL_REF with -mpure-code.
4220
4221 2020-11-01 Iain Sandoe <iain@sandoe.co.uk>
4222
4223 * config/host-darwin.c: Align pch_address_space to 16384.
4224
4225 2020-11-01 Pat Bernardi <bernardi@adacore.com>
4226
4227 * config/i386/i386.c (ix86_expand_prologue): Set the stack usage to 0
4228 for naked functions.
4229
4230 2020-11-01 Iain Buclaw <ibuclaw@gdcproject.org>
4231
4232 PR ipa/97660
4233 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Don't call
4234 clone_info::get when cgraph_node::get returns NULL.
4235
4236 2020-10-31 Jan Hubicka <jh@suse.cz>
4237
4238 * Makefile.in: (OBJS): Add symtab-clones.o
4239 (GTFILES): Add symtab-clones.h
4240 * cgraph.c: Include symtab-clones.h.
4241 (cgraph_edge::resolve_speculation): Fix formating
4242 (cgraph_edge::redirect_call_stmt_to_callee): Update.
4243 (cgraph_update_edges_for_call_stmt): Update
4244 (release_function_body): Fix formating.
4245 (cgraph_node::remove): Fix formating.
4246 (cgraph_node::dump): Fix formating.
4247 (cgraph_node::get_availability): Fix formating.
4248 (cgraph_node::call_for_symbol_thunks_and_aliases): Fix formating.
4249 (set_const_flag_1): Fix formating.
4250 (set_pure_flag_1): Fix formating.
4251 (cgraph_node::can_remove_if_no_direct_calls_p): Fix formating.
4252 (collect_callers_of_node_1): Fix formating.
4253 (clone_of_p): Update.
4254 (cgraph_node::verify_node): Update.
4255 (cgraph_c_finalize): Call clone_info::release ().
4256 * cgraph.h (struct cgraph_clone_info): Move to symtab-clones.h.
4257 (cgraph_node): Remove clone_info.
4258 (symbol_table): Add m_clones.
4259 * cgraphclones.c: Include symtab-clone.h.
4260 (duplicate_thunk_for_node): Update.
4261 (cgraph_node::create_clone): Update.
4262 (cgraph_node::create_virtual_clone): Update.
4263 (cgraph_node::find_replacement): Update.
4264 (cgraph_node::materialize_clone): Update.
4265 * gengtype.c (open_base_files): Include symtab-clones.h.
4266 * ipa-cp.c: Include symtab-clones.h.
4267 (initialize_node_lattices): Update.
4268 (want_remove_some_param_p): Update.
4269 (create_specialized_node): Update.
4270 * ipa-fnsummary.c: Include symtab-clones.h.
4271 (ipa_fn_summary_t::duplicate): Update.
4272 * ipa-modref.c: Include symtab-clones.h.
4273 (update_signature): Update.
4274 * ipa-param-manipulation.c: Include symtab-clones.h.
4275 (ipa_param_body_adjustments::common_initialization): Update.
4276 * ipa-prop.c: Include symtab-clones.h.
4277 (adjust_agg_replacement_values): Update.
4278 (ipcp_get_parm_bits): Update.
4279 (ipcp_update_bits): Update.
4280 (ipcp_update_vr): Update.
4281 * ipa-sra.c: Include symtab-clones.h.
4282 (process_isra_node_results): Update.
4283 (disable_unavailable_parameters): Update.
4284 * lto-cgraph.c: Include symtab-clone.h.
4285 (output_cgraph_opt_summary_p): Update.
4286 (output_node_opt_summary): Update.
4287 (input_node_opt_summary): Update.
4288 * symtab-clones.cc: New file.
4289 * symtab-clones.h: New file.
4290 * tree-inline.c (expand_call_inline): Update.
4291 (update_clone_info): Update.
4292 (tree_function_versioning): Update.
4293
4294 2020-10-31 Jan Hubicka <jh@suse.cz>
4295
4296 * ipa-modref.c (modref_summary::dump): Dump writes_errno.
4297 (parm_map_for_arg): Break out from ...
4298 (merge_call_side_effects): ... here.
4299 (get_access_for_fnspec): New function.
4300 (process_fnspec): New function.
4301 (analyze_call): Use it.
4302 (analyze_stmt): Update.
4303 (analyze_function): Initialize writes_errno.
4304 (modref_summaries::duplicate): Duplicate writes_errno.
4305 * ipa-modref.h (struct modref_summary): Add writes_errno.
4306 * tree-ssa-alias.c (call_may_clobber_ref_p_1): Check errno.
4307
4308 2020-10-30 Michael Meissner <meissner@linux.ibm.com>
4309
4310 * config/rs6000/rs6000.c (glibc_supports_ieee_128bit): New helper
4311 function.
4312 (rs6000_option_override_internal): Call it.
4313
4314 2020-10-30 Qing Zhao <qing.zhao@oracle.com>
4315 H.J.Lu <hjl.tools@gmail.com>
4316
4317 * common.opt: Add new option -fzero-call-used-regs
4318 * config/i386/i386.c (zero_call_used_regno_p): New function.
4319 (zero_call_used_regno_mode): Likewise.
4320 (zero_all_vector_registers): Likewise.
4321 (zero_all_st_registers): Likewise.
4322 (zero_all_mm_registers): Likewise.
4323 (ix86_zero_call_used_regs): Likewise.
4324 (TARGET_ZERO_CALL_USED_REGS): Define.
4325 * df-scan.c (df_epilogue_uses_p): New function.
4326 (df_get_exit_block_use_set): Replace EPILOGUE_USES with
4327 df_epilogue_uses_p.
4328 * df.h (df_epilogue_uses_p): Declare.
4329 * doc/extend.texi: Document the new zero_call_used_regs attribute.
4330 * doc/invoke.texi: Document the new -fzero-call-used-regs option.
4331 * doc/tm.texi: Regenerate.
4332 * doc/tm.texi.in (TARGET_ZERO_CALL_USED_REGS): New hook.
4333 * emit-rtl.h (struct rtl_data): New field must_be_zero_on_return.
4334 * flag-types.h (namespace zero_regs_flags): New namespace.
4335 * function.c (gen_call_used_regs_seq): New function.
4336 (class pass_zero_call_used_regs): New class.
4337 (pass_zero_call_used_regs::execute): New function.
4338 (make_pass_zero_call_used_regs): New function.
4339 * optabs.c (expand_asm_reg_clobber_mem_blockage): New function.
4340 * optabs.h (expand_asm_reg_clobber_mem_blockage): Declare.
4341 * opts.c (zero_call_used_regs_opts): New structure array
4342 initialization.
4343 (parse_zero_call_used_regs_options): New function.
4344 (common_handle_option): Handle -fzero-call-used-regs.
4345 * opts.h (zero_call_used_regs_opts): New structure array.
4346 * passes.def: Add new pass pass_zero_call_used_regs.
4347 * recog.c (valid_insn_p): New function.
4348 * recog.h (valid_insn_p): Declare.
4349 * resource.c (init_resource_info): Replace EPILOGUE_USES with
4350 df_epilogue_uses_p.
4351 * target.def (zero_call_used_regs): New hook.
4352 * targhooks.c (default_zero_call_used_regs): New function.
4353 * targhooks.h (default_zero_call_used_regs): Declare.
4354 * tree-pass.h (make_pass_zero_call_used_regs): Declare.
4355
4356 2020-10-30 Vladimir N. Makarov <vmakarov@redhat.com>
4357
4358 * lra.c (get_scratch_reg): New function.
4359 (remove_scratches_1): Rename remove_insn_scratches. Use
4360 ira_remove_insn_scratches and get_scratch_reg.
4361 (remove_scratches): Do not
4362 initialize scratches, scratch_bitmap, and scratch_operand_bitmap.
4363 (lra): Call ira_restore_scratches instead of restore_scratches.
4364 (struct sloc, sloc_t, scratches, scratch_bitmap)
4365 (scratch_operand_bitmap, lra_former_scratch_p)
4366 (lra_former_scratch_operand_p, lra_register_new_scratch_op)
4367 (restore_scratches): Move them to ...
4368 * ira.c: ... here.
4369 (former_scratch_p, former_scratch_operand_p): Rename to
4370 ira_former_scratch_p and ira_former_scratch_operand_p.
4371 (contains_X_constraint_p): New function.
4372 (register_new_scratch_op): Rename to ira_register_new_scratch_op.
4373 Change it to work for IRA and LRA.
4374 (restore_scratches): Rename to ira_restore_scratches.
4375 (get_scratch_reg, ira_remove_insn_scratches): New functions.
4376 (ira): Call ira_remove_scratches if we use LRA.
4377 * ira.h (ira_former_scratch_p, ira_former_scratch_operand_p): New
4378 prototypes.
4379 (ira_register_new_scratch_op, ira_restore_scratches): New prototypes.
4380 (ira_remove_insn_scratches): New prototype.
4381 * lra-int.h (lra_former_scratch_p, lra_former_scratch_operand_p):
4382 Remove prototypes.
4383 (lra_register_new_scratch_op): Ditto.
4384 * lra-constraints.c: Rename lra_former_scratch_p and
4385 lra_former_scratch_p to ira_former_scratch_p and to
4386 ira_former_scratch_p.
4387 * lra-remat.c: Ditto.
4388 * lra-spills.c: Rename lra_former_scratch_p to ira_former_scratch_p.
4389
4390 2020-10-30 Martin Sebor <msebor@redhat.com>
4391
4392 PR middle-end/97556
4393 * builtins.c (access_ref::add_offset): Cap offset lower bound
4394 to at most the the upper bound.
4395
4396 2020-10-30 Jan Hubicka <jh@suse.cz>
4397
4398 PR pch/97593
4399 * cgraph.c (cgraph_node::create_thunk): Register thunk as early during
4400 parsing.
4401 * cgraphunit.c (analyze_functions): Call
4402 thunk_info::process_early_thunks.
4403 * symtab-thunks.cc (struct unprocessed_thunk): New struct.
4404 (thunks): New static variable.
4405 (thunk_info::register_early): New member function.
4406 (thunk_info::process_early_thunks): New member function.
4407 * symtab-thunks.h (thunk_info::register_early): Declare.
4408 (thunk_info::process_early_thunks): Declare.
4409
4410 2020-10-30 Richard Biener <rguenther@suse.de>
4411
4412 PR tree-optimization/97623
4413 * tree-ssa-pre.c (insert): First do hoist insertion in
4414 a backward walk.
4415
4416 2020-10-30 Richard Biener <rguenther@suse.de>
4417
4418 PR tree-optimization/97626
4419 * tree-vect-slp.c (vect_slp_analyze_node_operations):
4420 Exchange the lvisited hash-set for a vector, roll back
4421 recursive adds to visited when analysis failed.
4422 (vect_slp_analyze_operations): Likewise.
4423
4424 2020-10-30 Zhiheng Xie <xiezhiheng@huawei.com>
4425 Nannan Zheng <zhengnannan@huawei.com>
4426
4427 * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG
4428 for conversion intrinsics.
4429
4430 2020-10-30 Richard Biener <rguenther@suse.de>
4431
4432 PR tree-optimization/97633
4433 * tree-vect-slp.c (): Update backedges in single-node cycles.
4434 Optimize processing of externals.
4435
4436 2020-10-30 Alex Coplan <alex.coplan@arm.com>
4437
4438 PR target/96998
4439 * combine.c (make_extraction): Also handle shifts written as
4440 (mult x 2^n), avoid creating an extract rtx for these.
4441 * config/aarch64/aarch64.c (aarch64_is_extend_from_extract): Delete.
4442 (aarch64_classify_index): Remove extract-based address handling.
4443 (aarch64_strip_extend): Likewise.
4444 (aarch64_rtx_arith_op_extract_p): Likewise, remove now-unused parameter.
4445 Update callers...
4446 (aarch64_rtx_costs): ... here.
4447
4448 2020-10-30 Olivier Hainque <hainque@adacore.com>
4449
4450 * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Also
4451 builtin_define __ppc and __ppc__ for VxWorks 7.
4452
4453 2020-10-30 Olivier Hainque <hainque@adacore.com>
4454 Douglas Rupp <rupp@adacore.com>
4455 Pat Bernardi <bernardi@adacore.com>
4456
4457 * config.gcc: Adjust the ix86/x86_64-wrs-vxworks filters
4458 to apply to VxWorks 7 as well.
4459 * config/i386/t-vxworks (MULTILIB_OPTIONS, MULTILIB_DIRNAMES):
4460 Remove the fPIC multilib and add one for the large code model
4461 on x86_64.
4462 * config/i386/vxworks.h: Separate sections for TARGET_VXWORKS7,
4463 other variants and common bits.
4464 (TARGET_OS_CPP_BUILTINS): Augment to support a range of CPU
4465 families. Leverage VX_CPU_PREFIX.
4466 (CC1_SPEC): Add definition.
4467 (STACK_CHECK_PROTECT): Use conditional expression instead of
4468 heavier to read conditioned macro definitions.
4469
4470 2020-10-30 Jakub Jelinek <jakub@redhat.com>
4471
4472 * gimplify.c (gimplify_scan_omp_clauses): Force
4473 OMP_CLAUSE_ALLOCATE_ALLOCATOR into a temporary if it is non-NULL and
4474 non-constant.
4475 (gimplify_omp_for): Only put allocate on inner taskloop if lastprivate
4476 for the same variable is going to be put there, and in that case
4477 if the OMP_CLAUSE_ALLOCATE_ALLOCATOR is non-NULL non-constant, make
4478 the allocator firstprivate on task.
4479
4480 2020-10-30 Michael Meissner <meissner@linux.ibm.com>
4481
4482 * config/rs6000/rs6000.c (rs6000_option_override_internal): Allow
4483 long double type to be changed for C/C++ if glibc 2.32 or newer.
4484 (rs6000_invalid_binary_op): Update error messages about mixing IBM
4485 long double and IEEE 128-bit.
4486
4487 2020-10-29 Richard Biener <rguenther@suse.de>
4488
4489 * tree-ssa-pre.c (compute_avail): Free operands consistently.
4490 * tree-vect-loop.c (vectorizable_phi): Make sure all operand
4491 defs vectors are released.
4492
4493 2020-10-29 Jan Hubicka <jh@suse.cz>
4494
4495 * vec.h (vec<T, va_heap, vl_ptr>::copy): Pass mem stat info.
4496
4497 2020-10-29 Jan Hubicka <jh@suse.cz>
4498
4499 * wide-int.h (trailing_wide_ints <N>): Turn len to array of structures
4500 so it does not imply typeless storage.
4501 (trailing_wide_ints <N>::operator): update
4502 (trailing_wide_ints <N>::operator []): Update.
4503
4504 2020-10-29 Joseph Myers <joseph@codesourcery.com>
4505
4506 * ginclude/stdbool.h [__STDC_VERSION__ > 201710L] (true, false):
4507 Define with type _Bool.
4508
4509 2020-10-29 Aldy Hernandez <aldyh@redhat.com>
4510
4511 PR tree-optimization/97505
4512 * vr-values.c (vr_values::extract_range_basic): Enable
4513 trap again for everything except UBSAN builtins.
4514
4515 2020-10-29 Richard Sandiford <richard.sandiford@arm.com>
4516
4517 * tree-vectorizer.h (vect_transform_slp_perm_load): Take an
4518 optional extra parameter.
4519 * tree-vect-slp.c (vect_transform_slp_perm_load): Calculate
4520 the number of loads as well as the number of permutes, taking
4521 the counting loop from...
4522 * tree-vect-stmts.c (vect_model_load_cost): ...here. Use the
4523 value computed by vect_transform_slp_perm_load for ncopies.
4524
4525 2020-10-29 Martin Liska <mliska@suse.cz>
4526
4527 PR lto/97508
4528 * langhooks.c (lhd_begin_section): Call get_section with
4529 not_existing = true.
4530 * output.h (get_section): Add new argument.
4531 * varasm.c (get_section): Fail when NOT_EXISTING is true
4532 and a section already exists.
4533 * ipa-cp.c (ipcp_write_summary): Remove.
4534 (ipcp_read_summary): Likewise.
4535 * ipa-fnsummary.c (ipa_fn_summary_read): Always read jump
4536 functions summary.
4537 (ipa_fn_summary_write): Always stream it.
4538
4539 2020-10-29 Richard Biener <rguenther@suse.de>
4540
4541 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Pass
4542 SLP_TREE_VECTYPE to record_stmt_cost.
4543
4544 2020-10-29 Martin Liska <mliska@suse.cz>
4545
4546 * optc-gen.awk: Check that params start with -param=.
4547 * params.opt: Fix ipa-jump-function-lookups.
4548
4549 2020-10-29 Alexandre Oliva <oliva@adacore.com>
4550
4551 * tree-ssa-math-opts.c (sincos_stats): Add conv_removed.
4552 (execute_cse_conv_1): New.
4553 (execute_cse_sincos_1): Call it. Fix return within
4554 FOR_EACH_IMM_USE_STMT.
4555 (pass_cse_sincos::execute): Report conv_inserted.
4556
4557 2020-10-29 Xuepeng Guo <xuepeng.guo@intel.com>
4558 Hongyu Wang <hongyu.wang@intel.com>
4559 Hongtao Liu <hongtao.liu@intel.com>
4560
4561 * common/config/i386/cpuinfo.h (get_available_features):
4562 Detect KL, AESKLE and WIDEKL features.
4563 * common/config/i386/i386-common.c
4564 (OPTION_MASK_ISA_KL_SET): New.
4565 (OPTION_MASK_ISA_WIDEKL_SET): Likewise.
4566 (OPTION_MASK_ISA_KL_UNSET): Likewise.
4567 (OPTION_MASK_ISA_WIDEKL_UNSET): Likewise.
4568 (OPTION_MASK_ISA2_AVX2_UNSET): Likewise.
4569 (OPTION_MASK_ISA2_AVX_UNSET): Likewise.
4570 (OPTION_MASK_ISA2_SSE4_2_UNSET): Likewise.
4571 (OPTION_MASK_ISA2_SSE4_1_UNSET): Likewise.
4572 (OPTION_MASK_ISA2_SSE4_UNSET): Likewise.
4573 (OPTION_MASK_ISA2_SSSE3_UNSET): Likewise.
4574 (OPTION_MASK_ISA2_SSE3_UNSET): Likewise.
4575 (OPTION_MASK_ISA2_SSE2_UNSET): Likewise.
4576 (OPTION_MASK_ISA2_SSE_UNSET): Likewise.
4577 (ix86_handle_option): Handle kl and widekl, add dependency chain
4578 for KL and SSE2.
4579 * common/config/i386/i386-cpuinfo.h (enum processor_features):
4580 (FEATURE_KL, FEATURE_AESKLE, FEATURE_WIDEKL): New.
4581 * common/config/i386/i386-isas.h: Add ISA_NAMES_TABLE_ENTRY
4582 for KL, AESKLE and WIDEKL.
4583 * config.gcc: Add keylockerintrin.h.
4584 * doc/invoke.texi: Document new option -mkl and -mwidekl.
4585 * doc/extend.texi: Document kl and widekl.
4586 * config/i386/cpuid.h (bit_KL, bit_AESKLE, bit_WIDEKL): New.
4587 * config/i386/i386-builtin-types.def ((UINT, UINT, V2DI, V2DI, PVOID),
4588 (UINT, UINT, V2DI, PVOID), (VOID, V2DI, V2DI, V2DI, UINT),
4589 (UINT8, PV2DI, V2DI, PCVOID), (UINT8, PV2DI, PCV2DI, PCVOID)): New
4590 function types.
4591 * config/i386/i386-builtin.def: Add
4592 __builtin_ia32_loadiwkey,
4593 __builtin_ia32_aesdec128kl_u8,
4594 __builtin_ia32_aesdec256kl_u8,
4595 __builtin_ia32_aesenc128kl_u8,
4596 __builtin_ia32_aesenc256kl_u8,
4597 __builtin_ia32_aesdecwide128kl_u8,
4598 __builtin_ia32_aesdecwide256kl_u8,
4599 __builtin_ia32_aesencwide128kl_u8,
4600 __builtin_ia32_aesencwide256kl_u8,
4601 __builtin_ia32_encodekey128_u32,
4602 __builtin_ia32_encodekey256_u32.
4603 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
4604 kl and widekl.
4605 * config/i386/i386-options.c (isa2_opts): Add -mkl and -mwidekl.
4606 (ix86_option_override_internal): Handle KL and WIDEKL.
4607 (ix86_valid_target_attribute_inner_p): Add attribute for kl and widekl.
4608 * config/i386/i386-expand.c
4609 (ix86_expand_builtin): Expand Keylocker Builtins.
4610 * config/i386/i386.h (TARGET_KL): New.
4611 (TARGET_KL_P): Likewise.
4612 (TARGET_WIDEKL): Likewise.
4613 (TARGET_WIDEKL_P): Likewise.
4614 (PTA_KL): Likewise.
4615 (PTA_WIDEKL): Likewise.
4616 (PTA_TIGERLAKE): Add PTA_KL, PTA_WIDEKL.
4617 (PTA_ALDERLAKE): Likewise.
4618 * config/i386/i386.opt: Add new option mkl and mwidekl.
4619 * config/i386/keylockerintrin.h: New header file for Keylocker.
4620 * config/i386/immintrin.h: Include keylockerintrin.h.
4621 * config/i386/predicates.md (encodekey128_operation): New
4622 predicate.
4623 (encodekey256_operation): Likewise.
4624 (aeswidekl_operation): Likewise.
4625 * config/i386/sse.md (UNSPECV_LOADIWKEY): New.
4626 (UNSPECV_AESDEC128KLU8): Likewise.
4627 (UNSPECV_AESENC128KLU8): Likewise.
4628 (UNSPECV_AESDEC256KLU8): Likewise.
4629 (UNSPECV_AESENC256KLU8): Likewise.
4630 (UNSPECV_AESDECWIDE128KLU8): Likewise.
4631 (UNSPECV_AESENCWIDE128KLU8): Likewise.
4632 (UNSPECV_AESDECWIDE256KLU8): Likewise.
4633 (UNSPECV_AESENCWIDE256KLU8): Likewise.
4634 (UNSPECV_ENCODEKEY128U32): Likewise.
4635 (UNSPECV_ENCODEKEY256U32): Likewise.
4636 (encodekey128u32): New expander.
4637 (encodekey256u32): Likewise.
4638 (aes<aeswideklvariant>u8): Likewise.
4639 (loadiwkey): New insn pattern.
4640 (*encodekey128u32): Likewise.
4641 (*encodekey256u32): Likewise.
4642 (aes<aesklvariant>u8): Likewise.
4643 (*aes<aeswideklvariant>u8): Likewise.
4644
4645 2020-10-29 Richard Biener <rguenther@suse.de>
4646
4647 * tree-vect-slp.c (vect_build_slp_tree_2): Allow splatting
4648 not vectorizable loads.
4649 (vect_build_slp_instance): Amend dumping with address.
4650 (vect_slp_convert_to_external): Likewise.
4651
4652 2020-10-29 Andrew MacLeod <amacleod@redhat.com>
4653
4654 PR tree-optimization/97609
4655 * gimple-range-cache.cc (non_null_ref::process_name): Call
4656 infer_nonnull_range directly instead of infer_value_range.
4657
4658 2020-10-29 David Malcolm <dmalcolm@redhat.com>
4659
4660 * Makefile.in (ANALYZER_OBJS): Add analyzer/complexity.o.
4661
4662 2020-10-28 Marek Polacek <polacek@redhat.com>
4663
4664 PR c++/97573
4665 * doc/invoke.texi: Document -Wdeprecated-enum-enum-conversion
4666 and -Wdeprecated-enum-float-conversion. -Wenum-conversion is
4667 no longer C/ObjC only.
4668
4669 2020-10-28 Richard Sandiford <richard.sandiford@arm.com>
4670
4671 PR tree-optimization/97457
4672 * value-range.cc (irange::set): Don't decay POLY_INT_CST ranges
4673 to integer ranges.
4674
4675 2020-10-28 Carl Love <cel@us.ibm.com>
4676
4677 * config/rs6000/vsx.md(xxgenpcvm_<mode>_internal): Remove TARGET_64BIT.
4678
4679 2020-10-28 Richard Biener <rguenther@suse.de>
4680
4681 * tree-vect-slp.c (vect_slp_analyze_node_operations_1): Dump
4682 when shared vectype update fails.
4683
4684 2020-10-28 Richard Biener <rguenther@suse.de>
4685
4686 * tree-vect-slp.c (vect_get_and_check_slp_defs): For skipped
4687 args just push NULLs and vect_uninitialized_def.
4688 (vect_build_slp_tree_2): Allocate skip_args for all ops
4689 and pass it down to vect_get_and_check_slp_defs.
4690
4691 2020-10-28 Richard Biener <rguenther@suse.de>
4692
4693 PR tree-optimization/97615
4694 * tree-vect-slp.c (vect_build_slp_tree_2): Do not build
4695 an external from pattern defs.
4696
4697 2020-10-28 Richard Biener <rguenther@suse.de>
4698
4699 * tree-vect-slp.c (vect_optimize_slp): Fix iteration over
4700 all loads.
4701
4702 2020-10-28 Richard Biener <rguenther@suse.de>
4703
4704 * tree-vect-slp.c (vect_build_slp_instance): Split the store
4705 group at the failure boundary and also re-analyze a large enough
4706 matching rest.
4707
4708 2020-10-28 Richard Biener <rguenther@suse.de>
4709
4710 * tree-vect-data-refs.c (vect_slp_analyze_node_alignment):
4711 Dump when vect_update_shared_vectype fails.
4712
4713 2020-10-28 Andrea Corallo <andrea.corallo@arm.com>
4714
4715 * config/aarch64/arm_neon.h (__ST2_LANE_FUNC, __ST3_LANE_FUNC)
4716 (__ST4_LANE_FUNC): Rename the macro generating the 'q' variants
4717 into __ST2Q_LANE_FUNC, __ST2Q_LANE_FUNC, __ST2Q_LANE_FUNC so they
4718 all can be undefed at the and of the file.
4719 (vst2_lane_bf16, vst2q_lane_bf16, vst3_lane_bf16, vst3q_lane_bf16)
4720 (vst4_lane_bf16, vst4q_lane_bf16): Add new intrinsics.
4721
4722 2020-10-28 Andrea Corallo <andrea.corallo@arm.com>
4723
4724 * config/aarch64/arm_neon.h (__LD2_LANE_FUNC, __LD3_LANE_FUNC)
4725 (__LD4_LANE_FUNC): Rename the macro generating the 'q' variants
4726 into __LD2Q_LANE_FUNC, __LD2Q_LANE_FUNC, __LD2Q_LANE_FUNC so they
4727 all can be undefed at the and of the file.
4728 (vld2_lane_bf16, vld2q_lane_bf16, vld3_lane_bf16, vld3q_lane_bf16)
4729 (vld4_lane_bf16, vld4q_lane_bf16): Add new intrinsics.
4730
4731 2020-10-28 Jakub Jelinek <jakub@redhat.com>
4732
4733 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_ALLOCATE.
4734 * tree.h (OMP_CLAUSE_ALLOCATE_ALLOCATOR,
4735 OMP_CLAUSE_ALLOCATE_COMBINED): Define.
4736 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add allocate
4737 clause.
4738 (walk_tree_1): Handle OMP_CLAUSE_ALLOCATE.
4739 * tree-pretty-print.c (dump_omp_clause): Likewise.
4740 * gimplify.c (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses,
4741 gimplify_omp_for): Likewise.
4742 * tree-nested.c (convert_nonlocal_omp_clauses,
4743 convert_local_omp_clauses): Likewise.
4744 * omp-low.c (scan_sharing_clauses): Likewise.
4745
4746 2020-10-28 Jakub Jelinek <jakub@redhat.com>
4747
4748 * omp-offload.c (omp_declare_target_tgt_fn_r): Handle direct calls to
4749 declare variant base functions.
4750
4751 2020-10-28 Jakub Jelinek <jakub@redhat.com>
4752
4753 PR lto/96680
4754 * lto-streamer.h (omp_lto_output_declare_variant_alt,
4755 omp_lto_input_declare_variant_alt): Declare variant.
4756 * symtab.c (symtab_node::get_partitioning_class): Return
4757 SYMBOL_DUPLICATE for declare_variant_alt nodes.
4758 * passes.c (ipa_write_summaries): Add declare_variant_alt to
4759 partition.
4760 * lto-cgraph.c (output_refs): Call omp_lto_output_declare_variant_alt
4761 on declare_variant_alt nodes.
4762 (input_refs): Call omp_lto_input_declare_variant_alt on
4763 declare_variant_alt nodes.
4764 * lto-streamer-out.c (output_function): Don't call
4765 collect_block_tree_leafs if DECL_INITIAL is error_mark_node.
4766 (lto_output): Call output_function even for declare_variant_alt
4767 nodes.
4768 * omp-general.c (omp_lto_output_declare_variant_alt,
4769 omp_lto_input_declare_variant_alt): New functions.
4770
4771 2020-10-28 Jakub Jelinek <jakub@redhat.com>
4772
4773 * wide-int.cc (wi::set_bit_large): Call canonize unless setting
4774 msb bit and clearing bits above it.
4775
4776 2020-10-28 Andrew MacLeod <amacleod@redhat.com>
4777
4778 * gimple-range-gori.cc (gori_compute_cache::cache_stmt): Accumulate
4779 return values and only set cache when everything returned true.
4780 * gimple-range.cc (get_tree_range): Set the return range to UNDEFINED
4781 when the range isn't supported.
4782 (gimple_ranger::calc_stmt): Return varying if the type is supported,
4783 even if the stmt processing failed. False otherwise.
4784 (range_of_builtin_ubsan_call): Don't use gcc_assert.
4785 (range_of_builtin_call): Ditto.
4786 (gimple_ranger::range_of_cond_expr): Ditto.
4787 (gimple_ranger::range_of_expr): Ditto
4788 (gimple_ranger::range_on_entry): Ditto.
4789 (gimple_ranger::range_on_exit): Ditto.
4790 (gimple_ranger::range_on_edge): DItto.
4791 (gimple_ranger::range_of_stmt): Don't use gcc_assert, and initialize
4792 return value to UNDEFINED.
4793
4794 2020-10-27 Andreas Krebbel <krebbel@linux.ibm.com>
4795
4796 PR rtl-optimization/97497
4797 * config/s390/s390.c (s390_hard_regno_call_part_clobbered): Do not
4798 return true for r12 when -fpic is used.
4799
4800 2020-10-27 Tamar Christina <tamar.christina@arm.com>
4801
4802 PR target/97535
4803 * config/aarch64/aarch64.c (aarch64_expand_cpymem): Use unsigned
4804 arithmetic in check.
4805
4806 2020-10-27 Andrea Corallo <andrea.corallo@arm.com>
4807
4808 * config/aarch64/arm_neon.h (vcopy_lane_bf16, vcopyq_lane_bf16)
4809 (vcopyq_laneq_bf16, vcopy_laneq_bf16): New intrinsics.
4810
4811 2020-10-27 Olivier Hainque <hainque@adacore.com>
4812
4813 * config/vxworks.h (VX_CPU_PREFIX): #define here.
4814 * config/rs6000/vxworks.h: Remove #definition.
4815
4816 2020-10-27 Olivier Hainque <hainque@adacore.com>
4817
4818 * config/rs6000/vxworks.h (CPP_SPEC): Fix macro definition
4819 for -mcpu=e6500.
4820
4821 2020-10-27 Richard Biener <rguenther@suse.de>
4822
4823 * tree-vect-slp.c (vect_build_slp_instance): Use ceil_log2
4824 to compute maximum group-size.
4825
4826 2020-10-27 Jan Hubicka <jh@suse.cz>
4827
4828 PR ipa/97586
4829 * ipa-modref-tree.h (modref_tree::remap_params): New member function.
4830 * ipa-modref.c (modref_summaries_lto::duplicate): Check that
4831 optimization summaries are not duplicated.
4832 (remap_arguments): Remove.
4833 (modref_transform): Rename to ...
4834 (update_signature): ... this one; handle also lto summary.
4835 (pass_ipa_modref::execute): Update signatures here rather
4836 than in transform hook.
4837
4838 2020-10-27 Richard Biener <rguenther@suse.de>
4839
4840 * tree-vect-slp.c (vect_slp_bbs): Remove no-op
4841 slp-max-insns-in-bb check.
4842 (vect_slp_function): Dump when splitting the function.
4843 Adjust the split condition for control altering stmts.
4844 * params.opt (-param=slp-max-insns-in-bb): Remove.
4845 * doc/invoke.texi (-param=slp-max-insns-in-bb): Likewise.
4846
4847 2020-10-27 Richard Biener <rguenther@suse.de>
4848
4849 * gimple.h (gimple_expr_type): For PHIs return the type
4850 of the result.
4851 * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg):
4852 Make sure edge order into copied loop headers line up with the
4853 originals.
4854 * tree-vect-loop.c (vect_transform_cycle_phi): Handle nested
4855 loops with SLP.
4856 (vectorizable_phi): New function.
4857 (vectorizable_live_operation): For BB vectorization compute insert
4858 location here.
4859 * tree-vect-slp.c (vect_free_slp_tree): Deal with NULL
4860 SLP_TREE_CHILDREN entries.
4861 (vect_create_new_slp_node): Add overloads with pre-existing node
4862 argument.
4863 (vect_print_slp_graph): Likewise.
4864 (vect_mark_slp_stmts): Likewise.
4865 (vect_mark_slp_stmts_relevant): Likewise.
4866 (vect_gather_slp_loads): Likewise.
4867 (vect_optimize_slp): Likewise.
4868 (vect_slp_analyze_node_operations): Likewise.
4869 (vect_bb_slp_scalar_cost): Likewise.
4870 (vect_remove_slp_scalar_calls): Likewise.
4871 (vect_get_and_check_slp_defs): Handle PHIs.
4872 (vect_build_slp_tree_1): Handle PHIs.
4873 (vect_build_slp_tree_2): Continue SLP build, following PHI
4874 arguments. Fix memory leak.
4875 (vect_build_slp_tree): Put stub node into the hash-map so
4876 we can discover cycles directly.
4877 (vect_build_slp_instance): Set the backedge SLP def for
4878 reduction chains.
4879 (vect_analyze_slp_backedges): Remove.
4880 (vect_analyze_slp): Do not call it.
4881 (vect_slp_convert_to_external): Release SLP_TREE_LOAD_PERMUTATION.
4882 (vect_slp_analyze_node_operations): Handle stray failed
4883 backedge defs by failing.
4884 (vect_slp_build_vertices): Adjust leaf condition.
4885 (vect_bb_slp_mark_live_stmts): Handle PHIs, use visited
4886 hash-set to handle cycles.
4887 (vect_slp_analyze_operations): Adjust.
4888 (vect_bb_partition_graph_r): Likewise.
4889 (vect_slp_function): Adjust split condition to allow CFG
4890 merges.
4891 (vect_schedule_slp_instance): Rename to ...
4892 (vect_schedule_slp_node): ... this. Move DFS walk to ...
4893 (vect_schedule_scc): ... this new function.
4894 (vect_schedule_slp): Call it. Remove ad-hoc vectorized
4895 backedge fill code.
4896 * tree-vect-stmts.c (vect_analyze_stmt): Call
4897 vectorizable_phi.
4898 (vect_transform_stmt): Likewise.
4899 (vect_is_simple_use): Handle vect_backedge_def.
4900 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Only
4901 set loop header PHIs to vect_unknown_def_type for loop
4902 vectorization.
4903 * tree-vectorizer.h (enum vect_def_type): Add vect_backedge_def.
4904 (enum stmt_vec_info_type): Add phi_info_type.
4905 (vectorizable_phi): Declare.
4906
4907 2020-10-27 Richard Biener <rguenther@suse.de>
4908
4909 * tree-vect-slp.c (vect_build_slp_tree_2): When vectorizing
4910 BBs splat uniform operands and stop SLP discovery.
4911
4912 2020-10-27 Iain Buclaw <ibuclaw@gdcproject.org>
4913
4914 * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_D_CRITSEC_SIZE):
4915 Remove.
4916 * config/glibc-d.c (glibc_d_critsec_size): Likewise.
4917 (TARGET_D_CRITSEC_SIZE): Likewise.
4918 * config/i386/linux-common.h (GNU_USER_TARGET_D_CRITSEC_SIZE):
4919 Likewise.
4920 * config/sol2-d.c (solaris_d_critsec_size): Likewise.
4921 (TARGET_D_CRITSEC_SIZE): Likewise.
4922 * doc/tm.texi.in (TARGET_D_CRITSEC_SIZE): Likewise.
4923 * doc/tm.texi: Regenerate.
4924
4925 2020-10-27 Martin Liska <mliska@suse.cz>
4926
4927 PR gcov-profile/97461
4928 * gcov-io.h (GCOV_PREALLOCATED_KVP): Pre-allocate 64
4929 static counters.
4930
4931 2020-10-27 Jan Hubicka <jh@suse.cz>
4932
4933 * tree-ssa-alias.c (attr_fnspec::verify): Re-enabl checking.
4934
4935 2020-10-27 Jan Hubicka <jh@suse.cz>
4936
4937 * builtin-attrs.def (STRERRNOC): New macro.
4938 (STRERRNOP): New macro.
4939 (ATTR_ERRNOCONST_NOTHROW_LEAF_LIST): New attr list.
4940 (ATTR_ERRNOPURE_NOTHROW_LEAF_LIST): New attr list.
4941 * builtins.def (ATTR_MATHFN_ERRNO): Use
4942 ATTR_ERRNOCONST_NOTHROW_LEAF_LIST.
4943 (ATTR_MATHFN_FPROUNDING_ERRNO): Use ATTR_ERRNOCONST_NOTHROW_LEAF_LIST
4944 or ATTR_ERRNOPURE_NOTHROW_LEAF_LIST.
4945
4946 2020-10-27 Kito Cheng <kito.cheng@sifive.com>
4947
4948 * common/config/riscv/riscv-common.c (opt_var_ref_t): New.
4949 (riscv_ext_flag_table_t): New.
4950 (riscv_ext_flag_table): New.
4951 (riscv_parse_arch_string): Pass gcc_options* instead of
4952 &opts->x_target_flags only, and using riscv_arch_option_table to
4953 setup flags.
4954 (riscv_handle_option): Update argument for riscv_parse_arch_string.
4955 (riscv_expand_arch): Ditto.
4956 (riscv_expand_arch_from_cpu): Ditto.
4957
4958 2020-10-27 Jan Hubicka <jh@suse.cz>
4959
4960 * tree-ssa-ccp.c (evaluate_stmt): Use EAF_RETURN_ARG; do not handle
4961 string buitings specially.
4962
4963 2020-10-27 Jan Hubicka <jh@suse.cz>
4964
4965 * tree.c (set_call_expr_flags): Fix string for ECF_RET1.
4966 (build_common_builtin_nodes): Do not set ECF_RET1 for memcpy, memmove,
4967 and memset. They are handled by builtin_fnspec.
4968
4969 2020-10-27 Jan Hubicka <jh@suse.cz>
4970
4971 * builtins.c (builtin_fnspec): Add bzero, memcmp, memcmp_eq, bcmp,
4972 strncmp, strncmp_eq, strncasecmp, rindex, strlen, strlnen, strcasecmp,
4973 strcspn, strspn, strcmp, strcmp_eq.
4974
4975 2020-10-27 Richard Biener <rguenther@suse.de>
4976
4977 * tree-vectorizer.h (slp_tree_pool): Declare.
4978 (_slp_tree::operator new): Likewise.
4979 (_slp_tree::operator delete): Likewise.
4980 * tree-vectorizer.c (vectorize_loops): Allocate and free the
4981 slp_tree_pool.
4982 (pass_slp_vectorize::execute): Likewise.
4983 * tree-vect-slp.c (slp_tree_pool): Define.
4984 (_slp_tree::operator new): Likewise.
4985 (_slp_tree::operator delete): Likewise.
4986
4987 2020-10-27 Martin Liska <mliska@suse.cz>
4988
4989 * lto-wrapper.c (run_gcc): Do not use sub-make when jobserver is
4990 not detected properly.
4991
4992 2020-10-27 Martin Liska <mliska@suse.cz>
4993
4994 * symbol-summary.h (call_summary_base): Pass symtab hooks to
4995 base and register (or unregister) hooks directly.
4996
4997 2020-10-27 Martin Liska <mliska@suse.cz>
4998
4999 * symbol-summary.h (function_summary_base::unregister_hooks):
5000 Call disable_insertion_hook and disable_duplication_hook.
5001 (function_summary_base::symtab_insertion): New field.
5002 (function_summary_base::symtab_removal): Likewise.
5003 (function_summary_base::symtab_duplication): Likewise.
5004 Register hooks in function_summary_base and directly register
5005 (or unregister) hooks.
5006
5007 2020-10-26 Andrew MacLeod <amacleod@redhat.com>
5008
5009 PR tree-optimization/97567
5010 * gimple-range-gori.cc (gori_compute::logical_combine): Union the
5011 ranges of operand1 and operand2, not intersect.
5012
5013 2020-10-26 Jan Hubicka <jh@suse.cz>
5014
5015 * attr-fnspec.h: Update toplevel comment.
5016 (attr_fnspec::attr_fnspec): New constructor.
5017 (attr_fnspec::arg_read_p,
5018 attr_fnspec::arg_written_p,
5019 attr_fnspec::arg_access_size_given_by_arg_p,
5020 attr_fnspec::arg_single_access_p
5021 attr_fnspec::loads_known_p
5022 attr_fnspec::stores_known_p,
5023 attr_fnspec::clobbers_errno_p): New member functions.
5024 (gimple_call_fnspec): Declare.
5025 (builtin_fnspec): Declare.
5026 * builtins.c: Include attr-fnspec.h
5027 (builtin_fnspec): New function.
5028 * builtins.def (BUILT_IN_MEMCPY): Do not specify RET1 fnspec.
5029 (BUILT_IN_MEMMOVE): Do not specify RET1 fnspec.
5030 (BUILT_IN_MEMSET): Do not specify RET1 fnspec.
5031 (BUILT_IN_STRCAT): Do not specify RET1 fnspec.
5032 (BUILT_IN_STRCPY): Do not specify RET1 fnspec.
5033 (BUILT_IN_STRNCAT): Do not specify RET1 fnspec.
5034 (BUILT_IN_STRNCPY): Do not specify RET1 fnspec.
5035 (BUILT_IN_MEMCPY_CHK): Do not specify RET1 fnspec.
5036 (BUILT_IN_MEMMOVE_CHK): Do not specify RET1 fnspec.
5037 (BUILT_IN_MEMSET_CHK): Do not specify RET1 fnspec.
5038 (BUILT_IN_STRCAT_CHK): Do not specify RET1 fnspec.
5039 (BUILT_IN_STRCPY_CHK): Do not specify RET1 fnspec.
5040 (BUILT_IN_STRNCAT_CHK): Do not specify RET1 fnspec.
5041 (BUILT_IN_STRNCPY_CHK): Do not specify RET1 fnspec.
5042 * gimple.c (gimple_call_fnspec): Return attr_fnspec.
5043 (gimple_call_arg_flags): Update.
5044 (gimple_call_return_flags): Update.
5045 * tree-ssa-alias.c (check_fnspec): New function.
5046 (ref_maybe_used_by_call_p_1): Use fnspec for builtin handling.
5047 (call_may_clobber_ref_p_1): Likewise.
5048 (attr_fnspec::verify): Update verifier.
5049 * calls.c (decl_fnspec): New function.
5050 (decl_return_flags): Use it.
5051
5052 2020-10-26 Aldy Hernandez <aldyh@redhat.com>
5053
5054 PR tree-optimization/97555
5055 * range-op.cc (range_tests): Test 1-bit signed invert.
5056 * value-range.cc (subtract_one): Adjust comment.
5057 (add_one): New.
5058 (irange::invert): Call add_one.
5059
5060 2020-10-26 Jan Hubicka <jh@suse.cz>
5061
5062 * cgraph.h (cgraph_node::optimize_for_size_p): Return
5063 optimize_size_level.
5064 (cgraph_node::optimize_for_size_p): Update.
5065 * coretypes.h (enum optimize_size_level): New enum.
5066 * predict.c (unlikely_executed_edge_p): Microoptimize.
5067 (optimize_function_for_size_p): Return optimize_size_level.
5068 (optimize_bb_for_size_p): Likewise.
5069 (optimize_edge_for_size_p): Likewise.
5070 (optimize_insn_for_size_p): Likewise.
5071 (optimize_loop_nest_for_size_p): Likewise.
5072 * predict.h (optimize_function_for_size_p): Update declaration.
5073 (optimize_bb_for_size_p): Update declaration.
5074 (optimize_edge_for_size_p): Update declaration.
5075 (optimize_insn_for_size_p): Update declaration.
5076 (optimize_loop_for_size_p): Update declaration.
5077 (optimize_loop_nest_for_size_p): Update declaration.
5078
5079 2020-10-26 Richard Biener <rguenther@suse.de>
5080
5081 * tree-vect-slp.c (enum slp_instance_kind): New.
5082 (vect_build_slp_instance): Split out from...
5083 (vect_analyze_slp_instance): ... this.
5084
5085 2020-10-26 Andrew MacLeod <amacleod@redhat.com>
5086
5087 * gimple-range.cc (range_of_builtin_call): Initialize zerov to 0.
5088
5089 2020-10-26 Jan Hubicka <jh@suse.cz>
5090
5091 PR ipa/97576
5092 * cgraphclones.c (cgraph_node::materialize_clone): Clear stmt
5093 references.
5094 * cgraphunit.c (mark_functions_to_output): Do not clear them here.
5095 * ipa-inline-transform.c (inline_transform): Clear stmt references.
5096 * symtab.c (symtab_node::clear_stmts_in_references): Make recursive
5097 for clones.
5098 * tree-ssa-structalias.c (ipa_pta_execute): Do not clear references.
5099
5100 2020-10-26 Zhiheng Xie <xiezhiheng@huawei.com>
5101 Nannan Zheng <zhengnannan@huawei.com>
5102
5103 * config/aarch64/aarch64-builtins.c: Add FLAG STORE.
5104 * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG
5105 for store intrinsics.
5106
5107 2020-10-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5108
5109 PR tree-optimization/97546
5110 * gimple-ssa-store-merging.c (find_bswap_or_nop): Return NULL if
5111 type is not INTEGER_CST.
5112
5113 2020-10-26 Richard Biener <rguenther@suse.de>
5114
5115 PR middle-end/97521
5116 * expr.c (const_scalar_mask_from_tree): Remove.
5117 (expand_expr_real_1): Always VIEW_CONVERT integer mode
5118 vector constants to an integer type.
5119 * tree.c (build_truth_vector_type_for_mode): Use a single-bit
5120 boolean component type for non-vector-mode mask_mode.
5121
5122 2020-10-26 H.J. Lu <hjl.tools@gmail.com>
5123
5124 PR target/95458
5125 * config/i386/i386-expand.c (ix86_expand_cmpstrn_or_cmpmem):
5126 Return false for -mno-inline-all-stringops.
5127
5128 2020-10-26 H.J. Lu <hjl.tools@gmail.com>
5129
5130 PR target/95151
5131 * config/i386/i386-expand.c (ix86_expand_cmpstrn_or_cmpmem): New
5132 function.
5133 * config/i386/i386-protos.h (ix86_expand_cmpstrn_or_cmpmem): New
5134 prototype.
5135 * config/i386/i386.md (cmpmemsi): New pattern.
5136
5137 2020-10-26 Andreas Krebbel <krebbel@linux.ibm.com>
5138
5139 * config/s390/vector.md ("vcond_mask_<mode><mode>"): New expander.
5140
5141 2020-10-26 Richard Biener <rguenther@suse.de>
5142
5143 * sbitmap.c (sbitmap_vector_alloc): Use size_t for byte
5144 quantities to avoid overflow.
5145
5146 2020-10-26 Richard Biener <rguenther@suse.de>
5147
5148 PR tree-optimization/97539
5149 * tree-vect-loop-manip.c (vect_do_peeling): Reset out-of-loop
5150 debug uses before peeling.
5151
5152 2020-10-26 Jan Hubicka <hubicka@ucw.cz>
5153
5154 * cgraph.h (struct cgraph_node): Make ipa_transforms_to_apply vl_ptr.
5155 * ipa-inline-analysis.c (initialize_growth_caches): Disable insertion
5156 and duplication hooks.
5157 * ipa-inline-transform.c (clone_inlined_nodes): Clear
5158 ipa_transforms_to_apply.
5159 (save_inline_function_body): Disable insertion hoook for
5160 ipa_saved_clone_sources.
5161 * ipa-prop.c (ipcp_transformation_initialize): Disable insertion hook.
5162 * ipa-prop.h (ipa_node_params_t): Disable insertion hook.
5163 * ipa-reference.c (propagate): Disable insertion hoook.
5164 * ipa-sra.c (ipa_sra_summarize_function): Move out of anonymous
5165 namespace.
5166 (ipa_sra_function_summaries::insert): New virtual function.
5167 * passes.c (execute_one_pass): Do not add transforms to inline clones.
5168 * symbol-summary.h (function_summary_base): Make insert and duplicate
5169 hooks fail instead of silently producing empty summaries; add way to
5170 disable duplication hooks
5171 (call_summary_base): Likewise.
5172 * tree-nested.c (nested_function_info::get_create): Disable insertion
5173 hooks
5174 (maybe_record_nested_function): Likewise.
5175
5176 2020-10-26 Xionghu Luo <luoxhu@linux.ibm.com>
5177
5178 * cfg.c (debug_bb): New overloaded function.
5179 (debug_bb_n): New overloaded function.
5180 * cfg.h (debug_bb): New declaration.
5181 (debug_bb_n): New declaration.
5182 * print-rtl.c (debug_bb_slim): Call debug_bb with flags.
5183
5184 2020-10-24 H.J. Lu <hjl.tools@gmail.com>
5185
5186 PR bootstrap/97451
5187 * configure.ac (HAVE_AS_WORKING_DWARF_4_FLAG): Renamed to ...
5188 (HAVE_AS_WORKING_DWARF_N_FLAG): This. Don't define if there is
5189 an extra assembly input file in debug info. Replace success
5190 with dwarf4_success in the 32-bit --gdwarf-4 check.
5191 * dwarf2out.c (asm_outputs_debug_line_str): Check
5192 HAVE_AS_WORKING_DWARF_N_FLAG instead of
5193 HAVE_AS_WORKING_DWARF_4_FLAG.
5194 * gcc.c (ASM_DEBUG_SPEC): Likewise.
5195 (ASM_DEBUG_OPTION_SPEC): Likewise.
5196 * config.in: Regenerated.
5197 * configure: Likewise.
5198
5199 2020-10-24 Aldy Hernandez <aldyh@redhat.com>
5200
5201 PR tree-optimization/97538
5202 * calls.c (get_size_range): Handle undefined ranges.
5203
5204 2020-10-24 Martin Liska <mliska@suse.cz>
5205
5206 * cgraph.c (cgraph_node::former_thunk_p): Move out of CHECKING_P
5207 macro.
5208
5209 2020-10-24 Alan Modra <amodra@gmail.com>
5210
5211 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Limit
5212 AND addressing to just lvx/stvx style addresses.
5213
5214 2020-10-24 Alan Modra <amodra@gmail.com>
5215
5216 * config/rs6000/rs6000.md (cstore<mode>4): Don't call
5217 rs6000_emit_int_cmove for power10 when -mno-isel.
5218
5219 2020-10-23 Jan Hubicka <hubicka@ucw.cz>
5220
5221 * Makefile.in: Add symtab-thunks.o
5222 (GTFILES): Add symtab-thunks.h and symtab-thunks.cc; remove cgraphunit.c
5223 * cgraph.c: Include symtab-thunks.h.
5224 (cgraph_node::create_thunk): Update
5225 (symbol_table::create_edge): Update
5226 (cgraph_node::dump): Update
5227 (cgraph_node::call_for_symbol_thunks_and_aliases): Update
5228 (set_nothrow_flag_1): Update
5229 (set_malloc_flag_1): Update
5230 (set_const_flag_1): Update
5231 (collect_callers_of_node_1): Update
5232 (clone_of_p): Update
5233 (cgraph_node::verify_node): Update
5234 (cgraph_node::function_symbol): Update
5235 (cgraph_c_finalize): Call thunk_info::release.
5236 (cgraph_node::has_thunk_p): Update
5237 (cgraph_node::former_thunk_p): Move here from cgraph.h; reimplement.
5238 * cgraph.h (struct cgraph_thunk_info): Rename to symtab-thunks.h.
5239 (cgraph_node): Remove thunk field; add thunk bitfield.
5240 (cgraph_node::expand_thunk): Move to symtab-thunks.h
5241 (symtab_thunks_cc_finalize): Declare.
5242 (cgraph_node::has_gimple_body_p): Update.
5243 (cgraph_node::former_thunk_p): Update.
5244 * cgraphclones.c: Include symtab-thunks.h.
5245 (duplicate_thunk_for_node): Update.
5246 (cgraph_edge::redirect_callee_duplicating_thunks): Update.
5247 (cgraph_node::expand_all_artificial_thunks): Update.
5248 (cgraph_node::create_edge_including_clones): Update.
5249 * cgraphunit.c: Include symtab-thunks.h.
5250 (vtable_entry_type): Move to symtab-thunks.c.
5251 (cgraph_node::analyze): Update.
5252 (analyze_functions): Update.
5253 (mark_functions_to_output): Update.
5254 (thunk_adjust): Move to symtab-thunks.c
5255 (cgraph_node::expand_thunk): Move to symtab-thunks.c
5256 (cgraph_node::assemble_thunks_and_aliases): Update.
5257 (output_in_order): Update.
5258 (cgraphunit_c_finalize): Do not clear vtable_entry_type.
5259 (cgraph_node::create_wrapper): Update.
5260 * gengtype.c (open_base_files): Add symtab-thunks.h
5261 * ipa-comdats.c (propagate_comdat_group): UPdate.
5262 (ipa_comdats): Update.
5263 * ipa-cp.c (determine_versionability): UPdate.
5264 (gather_caller_stats): Update.
5265 (count_callers): Update
5266 (set_single_call_flag): Update
5267 (initialize_node_lattices): Update
5268 (call_passes_through_thunk_p): Update
5269 (call_passes_through_thunk): Update
5270 (propagate_constants_across_call): Update
5271 (find_more_scalar_values_for_callers_subset): Update
5272 (has_undead_caller_from_outside_scc_p): Update
5273 * ipa-fnsummary.c (evaluate_properties_for_edge): Update.
5274 (compute_fn_summary): Update.
5275 (inline_analyze_function): Update.
5276 * ipa-icf.c: Include symtab-thunks.h.
5277 (sem_function::equals_wpa): Update.
5278 (redirect_all_callers): Update.
5279 (sem_function::init): Update.
5280 (sem_function::parse): Update.
5281 * ipa-inline-transform.c: Include symtab-thunks.h.
5282 (inline_call): Update.
5283 (save_inline_function_body): Update.
5284 (preserve_function_body_p): Update.
5285 * ipa-inline.c (inline_small_functions): Update.
5286 * ipa-polymorphic-call.c: Include alloc-pool.h, symbol-summary.h,
5287 symtab-thunks.h
5288 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Update.
5289 * ipa-pure-const.c: Include symtab-thunks.h.
5290 (analyze_function): Update.
5291 * ipa-sra.c (check_for_caller_issues): Update.
5292 * ipa-utils.c (ipa_reverse_postorder): Update.
5293 (ipa_merge_profiles): Update.
5294 * ipa-visibility.c (non_local_p): Update.
5295 (cgraph_node::local_p): Update.
5296 (function_and_variable_visibility): Update.
5297 * ipa.c (symbol_table::remove_unreachable_nodes): Update.
5298 * lto-cgraph.c: Include alloc-pool.h, symbol-summary.h and
5299 symtab-thunks.h
5300 (lto_output_edge): Update.
5301 (lto_output_node): Update.
5302 (compute_ltrans_boundary): Update.
5303 (output_symtab): Update.
5304 (verify_node_partition): Update.
5305 (input_overwrite_node): Update.
5306 (input_node): Update.
5307 * lto-streamer-in.c (fixup_call_stmt_edges): Update.
5308 * symtab-thunks.cc: New file.
5309 * symtab-thunks.h: New file.
5310 * toplev.c (toplev::finalize): Call symtab_thunks_cc_finalize.
5311 * trans-mem.c (ipa_tm_mayenterirr_function): Update.
5312 (ipa_tm_execute): Update.
5313 * tree-inline.c (expand_call_inline): Update.
5314 * tree-nested.c (create_nesting_tree): Update.
5315 (convert_all_function_calls): Update.
5316 (gimplify_all_functions): Update.
5317 * tree-profile.c (tree_profiling): Update.
5318 * tree-ssa-structalias.c (associate_varinfo_to_alias): Update.
5319 * tree.c (free_lang_data_in_decl): Update.
5320 * value-prof.c (init_node_map): Update.
5321
5322 2020-10-23 Marek Polacek <polacek@redhat.com>
5323
5324 PR c++/91741
5325 * doc/invoke.texi: Document -Wsizeof-array-div.
5326
5327 2020-10-23 Martin Sebor <msebor@redhat.com>
5328
5329 PR middle-end/97552
5330 * attribs.c (init_attr_rdwr_indices): Handle static VLA parameters.
5331
5332 2020-10-23 Douglas Rupp <rupp@adacore.com>
5333
5334 * config/vxworks.h (VXWORKS_NET_LIBS_RTP): Use -lrtnet if
5335 rtnetStackLib.h is available,fallback to -lnet otherwise.
5336
5337 2020-10-23 Douglas Rupp <rupp@adacore.com>
5338
5339 * gcc.c (if-exists-then-else): New built-in spec function.
5340 * doc/invoke.texi: Document it.
5341
5342 2020-10-23 Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
5343
5344 * doc/extend.texi (PowerPC Built-in Functions): Replace
5345 extraneous characters with whitespace.
5346
5347 2020-10-23 Martin Liska <mliska@suse.cz>
5348
5349 * gcov.c (read_count_file): Never call gcov_sync with a negative
5350 value.
5351
5352 2020-10-23 Jakub Jelinek <jakub@redhat.com>
5353
5354 * Makefile.in (PLUGIN_HEADERS): Add gomp-constants.h and $(EXPR_H).
5355 (s-header-vars): Accept not just spaces but also tabs between *_H name
5356 and =. Handle common/config/ headers similarly to config. Don't
5357 throw away everything from first ... to last / on the remaining
5358 string, instead skip just ... to corresponding last / without
5359 intervening spaces and tabs.
5360 (install-plugin): Treat common/config headers like config headers.
5361 * config/i386/t-i386 (TM_H): Add
5362 $(srcdir)/common/config/i386/i386-cpuinfo.h.
5363
5364 2020-10-23 Jakub Jelinek <jakub@redhat.com>
5365
5366 PR tree-optimization/97164
5367 * stor-layout.c (layout_type): Also reject arrays where element size
5368 is constant, but not a multiple of element alignment.
5369
5370 2020-10-23 Eric Botcazou <ebotcazou@adacore.com>
5371
5372 * tree-ssa-loop-ivopts.c (analyze_and_mark_doloop_use): Bail out if
5373 the loop is subject to a pragma Unroll with no specific count.
5374
5375 2020-10-23 Dennis Zhang <dennis.zhang@arm.com>
5376
5377 * config/arm/mve.md (mve_vsubq<mode>): New entry for vsub instruction
5378 using expression 'minus'.
5379 (mve_vsubq_f<mode>): Use minus instead of VSUBQ_F unspec.
5380 * config/arm/neon.md (sub<mode>3, sub<mode>3_fp16): Removed.
5381 (neon_vsub<mode>): Use gen_sub<mode>3 instead of gen_sub<mode>3_fp16.
5382 * config/arm/vec-common.md (sub<mode>3): Use the new mode macros
5383 ARM_HAVE_<MODE>_ARITH. Use iterator VDQ instead of VALL.
5384
5385 2020-10-23 Martin Liska <mliska@suse.cz>
5386
5387 PR lto/97524
5388 * lto-wrapper.c (make_exists): New function.
5389 (run_gcc): Use it to check that make is present and working
5390 for parallel execution.
5391
5392 2020-10-23 Richard Biener <rguenther@suse.de>
5393
5394 Revert:
5395 2020-10-22 Richard Biener <rguenther@suse.de>
5396
5397 PR middle-end/97521
5398 * expr.c (expand_expr_real_1): Be more careful when
5399 expanding a VECTOR_BOOLEAN_TYPE_P VECTOR_CSTs.
5400
5401 2020-10-23 Kewen Lin <linkw@linux.ibm.com>
5402
5403 * tree-vect-loop.c (vect_transform_loop): Remove the redundant
5404 LOOP_VINFO_FULLY_MASKED_P check.
5405
5406 2020-10-23 Dennis Zhang <dennis.zhang@arm.com>
5407
5408 * config/arm/mve.md (mve_vsubq<mode>): New entry for vsub instruction
5409 using expression 'minus'.
5410 (mve_vsubq_f<mode>): Use minus instead of VSUBQ_F unspec.
5411 * config/arm/neon.md (sub<mode>3, sub<mode>3_fp16): Removed.
5412 (neon_vsub<mode>): Use gen_sub<mode>3 instead of gen_sub<mode>3_fp16.
5413 * config/arm/vec-common.md (sub<mode>3): Use the new mode macros
5414 ARM_HAVE_<MODE>_ARITH. Use iterator VDQ instead of VALL.
5415
5416 2020-10-22 Alan Modra <amodra@gmail.com>
5417
5418 * config/rs6000/rs6000.c (rs6000_emit_xxspltidp_v2df): Delete
5419 debug printf. Remove trailing ".\n" from inform message.
5420 Break long line.
5421
5422 2020-10-22 Andrew MacLeod <amacleod@redhat.com>
5423
5424 * gimple-range-gori.cc (is_gimple_logical_p): Use types_compatible_p
5425 for logical compatibility.
5426 (logical_stmt_cache::cacheable_p): Ditto.
5427
5428 2020-10-22 Jan Hubicka <hubicka@ucw.cz>
5429
5430 * cgraph.c (cgraph_node::get_untransformed_body): Perform lazy
5431 clone materialization.
5432 * cgraph.h (cgraph_node::materialize_clone): Declare.
5433 (symbol_table::materialize_all_clones): Remove.
5434 * cgraphclones.c (cgraph_materialize_clone): Turn to ...
5435 (cgraph_node::materialize_clone): .. this one; move here
5436 dumping from symbol_table::materialize_all_clones.
5437 (symbol_table::materialize_all_clones): Remove.
5438 * cgraphunit.c (mark_functions_to_output): Clear stmt references.
5439 (cgraph_node::expand): Initialize bitmaps early;
5440 do not call execute_all_ipa_transforms if there are no transforms.
5441 * ipa-inline-transform.c (save_inline_function_body): Fix formating.
5442 (inline_transform): Materialize all clones before function is modified.
5443 * ipa-param-manipulation.c (ipa_param_adjustments::modify_call):
5444 Materialize clone if needed.
5445 * ipa.c (class pass_materialize_all_clones): Remove.
5446 (make_pass_materialize_all_clones): Remove.
5447 * passes.c (execute_all_ipa_transforms): Materialize all clones.
5448 * passes.def: Remove pass_materialize_all_clones.
5449 * tree-pass.h (make_pass_materialize_all_clones): Remove.
5450 * tree-ssa-structalias.c (ipa_pta_execute): Clear refs.
5451
5452 2020-10-22 Will Schmidt <will_schmidt@vnet.ibm.com>
5453
5454 * config/rs6000/altivec.h (vec_xl_zext, vec_xl_sext, vec_xst_trunc):
5455 New defines.
5456 * config/rs6000/rs6000-builtin.def (BU_P10V_OVERLOAD_X): New builtin
5457 macro.
5458 (BU_P10V_AV_X): New builtin macro.
5459 (se_lxvrhbx, se_lxrbhx, se_lxvrwx, se_lxvrdx): Define internal names
5460 for load and sign extend vector element.
5461 (ze_lxvrbx, ze_lxvrhx, ze_lxvrwx, ze_lxvrdx): Define internal names
5462 for load and zero extend vector element.
5463 (tr_stxvrbx, tr_stxvrhx, tr_stxvrwx, tr_stxvrdx): Define internal names
5464 for truncate and store vector element.
5465 (se_lxvrx, ze_lxvrx, tr_stxvrx): Define internal names for overloaded
5466 load/store rightmost element.
5467 * config/rs6000/rs6000-call.c (altivec_builtin_types): Define the
5468 internal monomorphs P10_BUILTIN_SE_LXVRBX, P10_BUILTIN_SE_LXVRHX,
5469 P10_BUILTIN_SE_LXVRWX, P10_BUILTIN_SE_LXVRDX,
5470 P10_BUILTIN_ZE_LXVRBX, P10_BUILTIN_ZE_LXVRHX, P10_BUILTIN_ZE_LXVRWX,
5471 P10_BUILTIN_ZE_LXVRDX,
5472 P10_BUILTIN_TR_STXVRBX, P10_BUILTIN_TR_STXVRHX, P10_BUILTIN_TR_STXVRWX,
5473 P10_BUILTIN_TR_STXVRDX,
5474 (altivec_expand_lxvr_builtin): New expansion for load element builtins.
5475 (altivec_expand_stv_builtin): Update to for truncate and store builtins.
5476 (altivec_expand_builtin): Add clases for load/store rightmost builtins.
5477 (altivec_init_builtins): Add def_builtin entries for
5478 __builtin_altivec_se_lxvrbx, __builtin_altivec_se_lxvrhx,
5479 __builtin_altivec_se_lxvrwx, __builtin_altivec_se_lxvrdx,
5480 __builtin_altivec_ze_lxvrbx, __builtin_altivec_ze_lxvrhx,
5481 __builtin_altivec_ze_lxvrwx, __builtin_altivec_ze_lxvrdx,
5482 __builtin_altivec_tr_stxvrbx, __builtin_altivec_tr_stxvrhx,
5483 __builtin_altivec_tr_stxvrwx, __builtin_altivec_tr_stxvrdx,
5484 __builtin_vec_se_lxvrx, __builtin_vec_ze_lxvrx, __builtin_vec_tr_stxvrx.
5485 * config/rs6000/vsx.md (vsx_lxvr<wd>x, vsx_stxvr<wd>x, vsx_stxvr<wd>x):
5486 New define_insn entries.
5487 * doc/extend.texi: Add documentation for vsx_xl_sext, vsx_xl_zext,
5488 and vec_xst_trunc.
5489
5490 2020-10-22 Will Schmidt <will_schmidt@vnet.ibm.com>
5491
5492 * config/rs6000/vsx.md (enum unspec): Add
5493 UNSPEC_EXTENDDITI2 and UNSPEC_MTVSRD_DITI_W1 entries.
5494 (mtvsrdd_diti_w1, extendditi2_vector): New define_insns.
5495 (extendditi2): New define_expand.
5496
5497 2020-10-22 Alexandre Oliva <oliva@adacore.com>
5498
5499 * config/i386/mingw-w64.h (TARGET_LIBC_HAS_FUNCTION): Enable
5500 sincos optimization.
5501
5502 2020-10-22 Alan Modra <amodra@gmail.com>
5503
5504 * config/rs6000/vsx.md (vec_cntmb_<mode>, vec_extract_<mode>),
5505 (vec_expand_<mode>): Replace <VSX_MM_SUFFIX> with <wd>.
5506
5507 2020-10-22 Richard Biener <rguenther@suse.de>
5508
5509 * tree-vect-slp.c (vect_analyze_slp_instance): Refactor so
5510 computing a vector type early is not needed, for store group
5511 splitting compute a new vector type based on the desired
5512 group size.
5513
5514 2020-10-22 Richard Biener <rguenther@suse.de>
5515
5516 PR middle-end/97521
5517 * expr.c (expand_expr_real_1): Be more careful when
5518 expanding a VECTOR_BOOLEAN_TYPE_P VECTOR_CSTs.
5519
5520 2020-10-22 David Malcolm <dmalcolm@redhat.com>
5521
5522 * ipa-modref-tree.c (selftest::test_insert_search_collapse): Fix
5523 leak.
5524 (selftest::test_merge): Fix leaks.
5525
5526 2020-10-22 Andreas Krebbel <krebbel@linux.ibm.com>
5527
5528 PR target/97502
5529 * config/s390/vector.md ("vec_cmp<VI_HW:mode><VI_HW:mode>")
5530 ("vec_cmpu<VI_HW:mode><VI_HW:mode>"): New expanders.
5531
5532 2020-10-22 Andreas Krebbel <krebbel@linux.ibm.com>
5533
5534 PR rtl-optimization/97439
5535 * dfp.c (decimal_real_maxval): Set the sign flag in the
5536 generated number.
5537
5538 2020-10-22 Martin Liska <mliska@suse.cz>
5539
5540 PR c/94722
5541 * cfgexpand.c (stack_protect_decl_phase):
5542 Guard with lookup_attribute("no_stack_protector") at
5543 various places.
5544 (expand_used_vars): Likewise here.
5545 * doc/extend.texi: Document no_stack_protector attribute.
5546
5547 2020-10-22 Martin Liska <mliska@suse.cz>
5548
5549 * cfgexpand.c: Move the enum to ...
5550 * coretypes.h (enum stack_protector): ... here.
5551 * function.c (assign_parm_adjust_stack_rtl): Use the stack_protector
5552 enum.
5553
5554 2020-10-22 Kito Cheng <kito.cheng@sifive.com>
5555
5556 * config/riscv/multilib-generator: Add TODO, import itertools
5557 and functools.reduce.
5558 Handle expantion operator.
5559 (LONG_EXT_PREFIXES): New.
5560 (arch_canonicalize): Update comment and improve python3
5561 debuggability/compatibility.
5562 (add_underline_prefix): New.
5563 (_expand_combination): Ditto.
5564 (unique): Ditto.
5565 (expand_combination): Ditto.
5566
5567 2020-10-22 Jakub Jelinek <jakub@redhat.com>
5568
5569 * tree-ssa-phiopt.c (cond_removal_in_popcount_clz_ctz_pattern):
5570 For CLZ and CTZ tests, use type temporary instead of mode.
5571
5572 2020-10-22 Jakub Jelinek <jakub@redhat.com>
5573
5574 * config.gcc (x86_archs): Add samuel-2, nehemiah, c7 and esther.
5575 (x86_64_archs): Add eden-x2, nano, nano-1000, nano-2000, nano-3000,
5576 nano-x2, eden-x4, nano-x4, x86-64-v2, x86-64-v3 and x86-64-v4.
5577 (i[34567]86-*-* | x86_64-*-*): Only allow x86-64-v* as argument
5578 to --with-arch_64=.
5579
5580 2020-10-22 Jan Hubicka <jh@suse.cz>
5581
5582 * ipa-pure-const.c (funct_state_summary_t::insert): Free stale
5583 summaries.
5584
5585 2020-10-22 Jan Hubicka <hubicka@ucw.cz>
5586
5587 * cgraph.c: Include tree-nested.h
5588 (cgraph_node::create): Call maybe_record_nested_function.
5589 (cgraph_node::remove): Do not remove function from nested function
5590 infos.
5591 (cgraph_node::dump): Update.
5592 (cgraph_node::unnest): Move to tree-nested.c
5593 (cgraph_node::verify_node): Update.
5594 (cgraph_c_finalize): Call nested_function_info::release.
5595 * cgraph.h (struct symtab_node): Remove nested function info.
5596 * cgraphclones.c (cgraph_node::create_clone): Do not clone nested
5597 function info.
5598 * cgraphunit.c (cgraph_node::analyze): Update.
5599 (cgraph_node::expand): Do not worry about nested functions; they are
5600 lowered.
5601 (symbol_table::finalize_compilation_unit): Call
5602 nested_function_info::release.
5603 * gimplify.c: Include tree-nested.h
5604 (unshare_body): Update.
5605 (unvisit_body): Update.
5606 * omp-offload.c (omp_discover_implicit_declare_target): Update.
5607 * tree-nested.c: Include alloc-pool.h, tree-nested.h, symbol-summary.h
5608 (nested_function_sum): New static variable.
5609 (nested_function_info::get): New member function.
5610 (nested_function_info::get_create): New member function.
5611 (unnest_function): New function.
5612 (nested_function_info::~nested_function_info): New member function.
5613 (nested_function_info::release): New function.
5614 (maybe_record_nested_function): New function.
5615 (lookup_element_for_decl): Update.
5616 (check_for_nested_with_variably_modified): Update.
5617 (create_nesting_tree): Update.
5618 (unnest_nesting_tree_1): Update.
5619 (gimplify_all_functions): Update.
5620 (lower_nested_functions): Update.
5621 * tree-nested.h (class nested_function_info): New class.
5622 (maybe_record_nested_function): Declare.
5623 (unnest_function): Declare.
5624 (first_nested_function): New inline function.
5625 (next_nested_function): New inline function.
5626 (nested_function_origin): New inline function.
5627
5628 2020-10-22 liuhongt <hongtao.liu@intel.com>
5629
5630 PR rtl-optimization/97249
5631 * simplify-rtx.c (simplify_binary_operation_1): Simplify
5632 vec_select of a subreg of X to a vec_select of X.
5633
5634 2020-10-22 liuhongt <hongtao.liu@intel.com>
5635
5636 PR target/87767
5637 * config/i386/constraints.md ("Br"): New special memory
5638 constraint.
5639 * config/i386/i386-expand.c (ix86_binary_operator_ok): Both
5640 source operand cannot be in memory or bcst_memory_operand.
5641 * config/i386/i386.c (ix86_print_operand): Print bcst_mem_operand.
5642 * config/i386/i386.h (VALID_BCST_MODE_P): New.
5643 * config/i386/predicates.md (bcst_mem_operand): New predicate
5644 for AVX512 embedding broadcast memory operand.
5645 (bcst_vector_operand): New predicate, vector_operand or
5646 bcst_mem_operand.
5647 * config/i386/sse.md
5648 (*<plusminus_insn><mode>3<mask_name><round_name>): Extend
5649 predicate and constraints to handle bcst_mem_operand.
5650 (*mul<mode>3<mask_name><round_name>): Ditto.
5651 (<sse>_div<mode>3<mask_name><round_name>): Ditto.
5652 (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>):
5653 Ditto.
5654 (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>):
5655 Ditto.
5656 (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>):
5657 Ditto.
5658 (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>):
5659 Ditto.
5660 (*<plusminus_insn><mode>3): Ditto.
5661 (avx512dq_mul<mode>3<mask_name>): Ditto.
5662 (*<sse4_1_avx2>_mul<mode>3<mask_name>): Ditto.
5663 (*andnot<mode>3): Ditto.
5664 (<mask_codefor><code><mode>3<mask_name>): Ditto.
5665 (*sub<mode>3<mask_name>_bcst): Removed.
5666 (*add<mode>3<mask_name>_bcst): Ditto.
5667 (*mul<mode>3<mask_name>_bcst): Ditto.
5668 (*<avx512>_div<mode>3<mask_name>_bcst): Ditto.
5669 (*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_1):
5670 Ditto.
5671 (*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_2):
5672 Ditto.
5673 (*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_3):
5674 Ditto.
5675 (*<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_1):
5676 Ditto.
5677 (*<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_2):
5678 Ditto.
5679 (*<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_3):
5680 Ditto.
5681 (*<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_1):
5682 Ditto.
5683 (*<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_2):
5684 Ditto.
5685 (*<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_3):
5686 Ditto.
5687 (*<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_1):
5688 Ditto.
5689 (*<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_2):
5690 Ditto.
5691 (*<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_3):
5692 Ditto.
5693 (*sub<mode>3_bcst): Ditto.
5694 (*add<mode>3_bcst): Ditto.
5695 (*avx512dq_mul<mode>3<mask_name>_bcst): Ditto.
5696 (*avx512f_mul<mode>3<mask_name>_bcst): Ditto.
5697 (*andnot<mode>3_bcst): Ditto.
5698 (*<code><mode>3_bcst): Ditto.
5699 * config/i386/subst.md (bcst_round_constraint): New subst
5700 attribute.
5701 (bcst_round_nimm_predicate): Ditto.
5702 (bcst_mask_prefix3): Ditto.
5703 (bcst_mask_prefix4): Ditto.
5704
5705 2020-10-22 liuhongt <hongtao.liu@intel.com>
5706
5707 PR target/87767
5708 * ira-costs.c (record_operand_costs): Extract memory operand
5709 from recog_data.operand[i] for record_address_regs.
5710 (record_reg_classes): Extract memory operand from OP for
5711 conditional judgement MEM_P.
5712 * ira.c (ira_setup_alts): Ditto.
5713 * lra-constraints.c (extract_mem_from_operand): New function.
5714 (satisfies_memory_constraint_p): Extract memory operand from
5715 OP for decompose_mem_address, return false when there's no
5716 memory operand inside OP.
5717 (process_alt_operands): Remove MEM_P (op) since it would be
5718 judged in satisfies_memory_constraint_p.
5719 * recog.c (asm_operand_ok): Extract memory operand from OP for
5720 judgement of memory_operand (OP, VOIDmode).
5721 (constrain_operands): Don't unwrapper unary operator when
5722 there's memory operand inside.
5723 * rtl.h (extract_mem_from_operand): New decl.
5724
5725 2020-10-22 Dennis Zhang <dennis.zhang@arm.com>
5726
5727 * config/arm/mve.md (mve_vmaxq_<supf><mode>): Replace with ...
5728 (mve_vmaxq_s<mode>, mve_vmaxq_u<mode>): ... these new insns to
5729 use smax/umax instead of VMAXQ.
5730 (mve_vminq_<supf><mode>): Replace with ...
5731 (mve_vminq_s<mode>, mve_vminq_u<mode>): ... these new insns to
5732 use smin/umin instead of VMINQ.
5733 (mve_vmaxnmq_f<mode>): Use smax instead of VMAXNMQ_F.
5734 (mve_vminnmq_f<mode>): Use smin instead of VMINNMQ_F.
5735 * config/arm/vec-common.md (smin<mode>3): Use the new mode macros
5736 ARM_HAVE_<MODE>_ARITH.
5737 (umin<mode>3, smax<mode>3, umax<mode>3): Likewise.
5738
5739 2020-10-22 Andrew MacLeod <amacleod@redhat.com>
5740
5741 PR tree-optimization/97520
5742 * gimple-range.cc (range_of_non_trivial_assignment): Handle x = &a
5743 by returning a non-zero range.
5744
5745 2020-10-22 Dennis Zhang <dennis.zhang@arm.com>
5746
5747 * config/arm/mve.md (mve_vmulq<mode>): New entry for vmul instruction
5748 using expression 'mult'.
5749 (mve_vmulq_f<mode>): Use mult instead of VMULQ_F.
5750 * config/arm/neon.md (mul<mode>3): Removed.
5751 * config/arm/vec-common.md (mul<mode>3): Use the new mode macros
5752 ARM_HAVE_<MODE>_ARITH. Use mode iterator VDQWH instead of VALLW.
5753
5754 2020-10-22 Andrew MacLeod <amacleod@redhat.com>
5755
5756 PR tree-optimization/97515
5757 * value-query.cc (range_query::value_of_expr): If the result is
5758 UNDEFINED, check to see if the global value is a constant.
5759 (range_query::value_on_edge): Ditto.
5760
5761 2020-10-21 Jan Hubicka <hubicka@ucw.cz>
5762
5763 PR ipa/97445
5764 * ipa-inline.c (inline_insns_single): Add hint2 parameter.
5765 (inline_insns_auto): Add hint2 parameter.
5766 (can_inline_edge_by_limits_p): Update.
5767 (want_inline_small_function_p): Update.
5768 (wrapper_heuristics_may_apply): Update.
5769
5770 2020-10-21 Richard Biener <rguenther@suse.de>
5771 Andrew MacLeod <amacleod@redhat.com>
5772 Martin Liska <mliska@suse.cz>
5773
5774 PR target/97360
5775 * config/rs6000/rs6000-call.c (rs6000_init_builtins): Remove call to
5776 build_distinct_type_copy().
5777
5778 2020-10-21 Jan Hubicka <jh@suse.cz>
5779
5780 PR ipa/97445
5781 * ipa-fnsummary.c (ipa_dump_hints): Add INLINE_HINT_builtin_constant_p.
5782 (ipa_fn_summary::~ipa_fn_summary): Free builtin_constant_p_parms.
5783 (ipa_fn_summary_t::duplicate): Duplicate builtin_constant_p_parms.
5784 (ipa_dump_fn_summary): Dump builtin_constant_p_parms.
5785 (add_builtin_constant_p_parm): New function
5786 (set_cond_stmt_execution_predicate): Update builtin_constant_p_parms.
5787 (ipa_call_context::estimate_size_and_time): Set
5788 INLINE_HINT_builtin_constant_p..
5789 (ipa_merge_fn_summary_after_inlining): Merge builtin_constant_p_parms.
5790 (inline_read_section): Read builtin_constant_p_parms.
5791 (ipa_fn_summary_write): Write builtin_constant_p_parms.
5792 * ipa-fnsummary.h (enum ipa_hints_vals): Add
5793 INLINE_HINT_builtin_constant_p.
5794 * ipa-inline.c (want_inline_small_function_p): Use
5795 INLINE_HINT_builtin_constant_p.
5796 (edge_badness): Use INLINE_HINT_builtin_constant_p.
5797
5798 2020-10-21 Douglas Rupp <rupp@adacore.com>
5799
5800 * config/vx-common.h (LINK_SPEC, LIB_SPEC): Remove #undef.
5801
5802 2020-10-21 Douglas Rupp <rupp@adacore.com>
5803 Olivier Hainque <hainque@adacore.com>
5804
5805 * config.gcc (powerpc*-wrs-vxworks7r*): New case.
5806 * config/rs6000/vxworks.h: Rework to handle VxWorks7.
5807 Refactor as common bits + vx6 vs vx7 ones. For the
5808 latter, rely essentially on the Linux configuration
5809 and adjust CPU to _VX_CPU in CPP_SPEC. Add a case
5810 for e6500. Use SUB3TARGET_OVERRIDE_OPTIONS for specifics
5811 to preserve the Linux SUBSUBTARGET_OVERRIDE_OPTIONS
5812 for vx7.
5813
5814 2020-10-21 Richard Biener <rguenther@suse.de>
5815
5816 PR tree-optimization/97500
5817 * tree-vect-slp.c (vect_analyze_slp_backedges): Do not
5818 fill backedges for inductions.
5819
5820 2020-10-21 liuhongt <hongtao.liu@intel.com>
5821
5822 PR target/97506
5823 * config/i386/i386-expand.c (ix86_expand_sse_movcc): Move
5824 op_true to dest directly when op_true equals op_false.
5825
5826 2020-10-21 Jakub Jelinek <jakub@redhat.com>
5827
5828 PR tree-optimization/97503
5829 * tree-ssa-phiopt.c: Include internal-fn.h.
5830 (cond_removal_in_popcount_pattern): Rename to ...
5831 (cond_removal_in_popcount_clz_ctz_pattern): ... this. Handle not just
5832 popcount, but also clz and ctz if it has C?Z_DEFINED_VALUE_AT_ZERO 2.
5833
5834 2020-10-21 Richard Biener <rguenther@suse.de>
5835
5836 * cfg.c (htab_bb_copy_original_entry): Remove.
5837 (bb_copy_hasher): Likewise.
5838 (bb_original, bb_copy, loop_copy): Use
5839 hash_map<int_hash<int, -1, -2>, int>.
5840 (original_copy_bb_pool): Remove.
5841 (initialize_original_copy_tables): Adjust.
5842 (reset_original_copy_tables): Likewise.
5843 (free_original_copy_tables): Likewise.
5844 (original_copy_tables_initialized_p): Likewise.
5845 (copy_original_table_clear): Simplify.
5846 (copy_original_table_set): Likewise.
5847 (get_bb_original): Likewise.
5848 (get_bb_copy): Likewise.
5849 (get_loop_copy): Likewise.
5850
5851 2020-10-21 Richard Biener <rguenther@suse.de>
5852
5853 * cfghooks.c (copy_bbs): Split out loop computing new_edges.
5854
5855 2020-10-21 Aldy Hernandez <aldyh@redhat.com>
5856
5857 * gimple-range.cc (gimple_ranger::range_of_ssa_name_with_loop_info):
5858 Remove TREE_OVERFLOW special case.
5859 * vr-values.c (bounds_of_var_in_loop): Adjust overflow for
5860 invariants.
5861
5862 2020-10-21 Aldy Hernandez <aldyh@redhat.com>
5863
5864 * vr-values.h: Remove simplify_cond_using_ranges_2.
5865 (range_fits_type_p): New.
5866 * vr-values.c (range_fits_type_p): Remove static qualifier.
5867 (vrp_simplify_cond_using_ranges): Move...
5868 * tree-vrp.c (vrp_simplify_cond_using_ranges): ...to here.
5869
5870 2020-10-20 Andrew MacLeod <amacleod@redhat.com>
5871
5872 PR tree-optimization/97505
5873 * vr-values.c (vr_values::extract_range_basic): Trap if
5874 vr_values version disagrees with range_of_builtin_call.
5875
5876 2020-10-20 David Edelsohn <dje.gcc@gmail.com>
5877
5878 * config/rs6000/rs6000.c (rs6000_option_override_internal):
5879 Don't implcitly enable Altivec ABI if set on the command line.
5880
5881 2020-10-20 Aldy Hernandez <aldyh@redhat.com>
5882
5883 * calls.c (get_size_range): Adjust to work with ranger.
5884 * calls.h (get_size_range): Add ranger argument to prototype.
5885 * gimple-ssa-warn-restrict.c (class wrestrict_dom_walker): Remove.
5886 (check_call): Pull out of wrestrict_dom_walker into a
5887 static function.
5888 (wrestrict_dom_walker::before_dom_children): Rename to...
5889 (wrestrict_walk): ...this.
5890 (pass_wrestrict::execute): Instantiate ranger.
5891 (class builtin_memref): Add stmt and query fields.
5892 (builtin_access::builtin_access): Add range_query field.
5893 (builtin_memref::builtin_memref): Same.
5894 (builtin_memref::extend_offset_range): Same.
5895 (builtin_access::builtin_access): Make work with ranger.
5896 (wrestrict_dom_walker::check_call): Pull out into...
5897 (check_call): ...here.
5898 (check_bounds_or_overlap): Add range_query argument.
5899 * gimple-ssa-warn-restrict.h (check_bounds_or_overlap):
5900 Add range_query and gimple stmt arguments.
5901
5902 2020-10-20 Aldy Hernandez <aldyh@redhat.com>
5903
5904 * gimple-ssa-warn-alloca.c (enum alloca_type): Remove
5905 ALLOCA_BOUND_UNKNOWN and ALLOCA_CAST_FROM_SIGNED.
5906 (warn_limit_specified_p): New.
5907 (alloca_call_type_by_arg): Remove.
5908 (cast_from_signed_p): Remove.
5909 (is_max): Remove.
5910 (alloca_call_type): Remove heuristics and replace with call into
5911 ranger.
5912 (pass_walloca::execute): Instantiate ranger.
5913
5914 2020-10-20 Tobias Burnus <tobias@codesourcery.com>
5915
5916 * lto-wrapper.c (run_gcc): Use proper variable for
5917 %u.ltrans_args dump suffix.
5918
5919 2020-10-20 Zhiheng Xie <xiezhiheng@huawei.com>
5920 Nannan Zheng <zhengnannan@huawei.com>
5921
5922 * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG
5923 for get/set reg intrinsics.
5924
5925 2020-10-20 Aldy Hernandez <aldyh@redhat.com>
5926
5927 * gimple-range.cc (gimple_ranger::range_of_builtin_ubsan_call):
5928 Make externally visble...
5929 (range_of_builtin_ubsan_call): ...here. Add range_query argument.
5930 (gimple_ranger::range_of_builtin_call): Make externally visible...
5931 (range_of_builtin_call): ...here. Add range_query argument.
5932 * gimple-range.h (range_of_builtin_call): Move out from class and
5933 make externally visible.
5934 * vr-values.c (vr_values::extract_range_basic): Abstract out
5935 builtin handling to...
5936 (vr_values::range_of_expr): Handle non SSAs.
5937 (vr_values::extract_range_builtin): ...here.
5938 * vr-values.h (class vr_values): Add extract_range_builtin.
5939 (range_of_expr): Rename NAME to EXPR.
5940
5941 2020-10-20 Aldy Hernandez <aldyh@redhat.com>
5942
5943 PR tree-optimization/97501
5944 * gimple-range.cc (gimple_ranger::range_of_ssa_name_with_loop_info):
5945 Saturate overflows returned from SCEV.
5946
5947 2020-10-20 Aldy Hernandez <aldyh@redhat.com>
5948
5949 * value-range.cc (irange::operator=): Split up call to
5950 copy_legacy_range into...
5951 (irange::copy_to_legacy): ...this.
5952 (irange::copy_legacy_to_multi_range): ...and this.
5953 (irange::copy_legacy_range): Remove.
5954 * value-range.h: Remove copoy_legacy_range.
5955 Add copy_legacy_to_multi_range and copy_to_legacy.
5956
5957 2020-10-20 Tobias Burnus <tobias@codesourcery.com>
5958
5959 * doc/invoke.texi (NVPTX options): Use @item not @itemx.
5960
5961 2020-10-20 Richard Biener <rguenther@suse.de>
5962
5963 * tree-cfg.c (reinstall_phi_args): Remove.
5964 (gimple_split_edge): Remove PHIs around the edge redirection
5965 to avoid touching them at all.
5966
5967 2020-10-20 Richard Biener <rguenther@suse.de>
5968
5969 * tree-vect-loop.c (vectorizable_reduction): Use the correct
5970 loops latch edge for the PHI arg lookup.
5971
5972 2020-10-20 Jozef Lawrynowicz <jozef.l@mittosystems.com>
5973
5974 * config/msp430/msp430.md (andneghi3): Allow general operand for
5975 op1 and update output assembler template.
5976
5977 2020-10-20 Tobias Burnus <tobias@codesourcery.com>
5978
5979 * collect-utils.c (collect_execute, fork_execute): Add at-file suffix
5980 argument.
5981 * collect-utils.h (collect_execute, fork_execute): Update prototype.
5982 * collect2.c (maybe_run_lto_and_relink, do_link, main, do_dsymutil):
5983 Update calls by passing NULL.
5984 * config/i386/intelmic-mkoffload.c (compile_for_target,
5985 generate_host_descr_file, prepare_target_image, main): Likewise.
5986 * config/gcn/mkoffload.c (compile_native, main): Pass at-file suffix.
5987 * config/nvptx/mkoffload.c (compile_native, main): Likewise.
5988 * lto-wrapper.c (compile_offload_image): Likewise.
5989
5990 2020-10-20 Aldy Hernandez <aldyh@redhat.com>
5991
5992 * range-op.cc (operator_rshift::op1_range): Special case
5993 shifting by zero.
5994
5995 2020-10-20 Richard Biener <rguenther@suse.de>
5996
5997 PR tree-optimization/97496
5998 * tree-vect-slp.c (vect_get_and_check_slp_defs): Guard extern
5999 promotion with not in pattern.
6000
6001 2020-10-20 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
6002
6003 * config/s390/s390.c (s390_expand_vec_strlen): Add alignment
6004 for memory access inside loop.
6005
6006 2020-10-19 Andrew MacLeod <amacleod@redhat.com>
6007
6008 PR tree-optimization/97360
6009 * gimple-range.h (range_compatible_p): New.
6010 * gimple-range-gori.cc (is_gimple_logical_p): Use range_compatible_p.
6011 (range_is_either_true_or_false): Ditto.
6012 (gori_compute::outgoing_edge_range_p): Cast result to the correct
6013 type if necessary.
6014 (logical_stmt_cache::cacheable_p): Use range_compatible_p.
6015 * gimple-range.cc (gimple_ranger::calc_stmt): Check range_compatible_p
6016 before casting the range.
6017 (gimple_ranger::range_on_exit): Use range_compatible_p.
6018 (gimple_ranger::range_on_edge): Ditto.
6019
6020 2020-10-19 Martin Jambor <mjambor@suse.cz>
6021
6022 PR tree-optimization/97456
6023 * tree-complex.c (set_component_ssa_name): Do not replace ignored decl
6024 default definitions with new component vars. Reorder if conditions.
6025
6026 2020-10-19 David Edelsohn <dje.gcc@gmail.com>
6027
6028 * config/rs6000/vsx.md (vextract_fp_from_shorth): Fix vals_be.
6029 (vextract_fp_from_shortl) Same.
6030
6031 2020-10-19 Aldy Hernandez <aldyh@redhat.com>
6032
6033 PR tree-optimization/97488
6034 * range-op.cc (operator_lshift::op1_range): Handle large right shifts.
6035
6036 2020-10-19 Martin Liska <mliska@suse.cz>
6037
6038 * ipa-modref.c (compute_parm_map): Clear vector.
6039
6040 2020-10-19 Richard Biener <rguenther@suse.de>
6041
6042 PR tree-optimization/97486
6043 * tree-vect-slp.c (vect_slp_function): Split after stmts
6044 ending a BB.
6045
6046 2020-10-19 Jonathan Wakely <jwakely@redhat.com>
6047
6048 * doc/invoke.texi (OPptimize Options): Add missing closing
6049 parenthesis.
6050
6051 2020-10-19 Aldy Hernandez <aldyh@redhat.com>
6052
6053 PR tree-optimization/97467
6054 * range-op.cc (operator_lshift::op1_range): Handle shifts by 0.
6055
6056 2020-10-19 Richard Biener <rguenther@suse.de>
6057
6058 PR tree-optimization/97466
6059 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove
6060 spurious assert, re-indent.
6061
6062 2020-10-19 Li Jia He <helijia@gcc.gnu.org>
6063
6064 PR tree-optimization/66552
6065 * match.pd (x << (n % C) -> x << (n & C-1)): New simplification.
6066
6067 2020-10-19 Richard Biener <rguenther@suse.de>
6068
6069 * tree-cfg.c (verify_gimple_comparison): Drop special-case
6070 for pointer comparison.
6071
6072 2020-10-16 Andrew MacLeod <amacleod@redhat.com>
6073
6074 * vr-values.c (dump_all_value_ranges): Only dump names which are
6075 still active.
6076
6077 2020-10-16 Andrew MacLeod <amacleod@redhat.com>
6078
6079 * range-op.cc (pointer_plus_operator::wi_fold): Make pointer_plus
6080 [0, 0] + const return a [const, const] range.
6081
6082 2020-10-16 Andrew MacLeod <amacleod@redhat.com>
6083
6084 * gimple-ssa-evrp.c (hybrid_folder::value_on_edge): Call
6085 evrp_folder::value_of_expr directly.
6086 (hybrid_folder::value_of_stmt): Ditto.
6087
6088 2020-10-16 Andrew MacLeod <amacleod@redhat.com>
6089
6090 PR tree-optimization/97462
6091 * range-op.cc (operator_lshift::op1_range): Don't trap on negative
6092 shifts.
6093
6094 2020-10-16 Olivier Hainque <hainque@adacore.com>
6095
6096 * config/vxworks.h (VX_CRTBEGIN_SPEC): Likewise.
6097
6098 2020-10-16 Olivier Hainque <hainque@adacore.com>
6099
6100 * config/vxworks/_vxworks-versions.h: Only include
6101 version.h if _WRS_VXWORKS_MAJOR is not defined.
6102 Provide a default _WRS_VXWORKS_MINOR (0).
6103
6104 2020-10-16 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
6105
6106 PR target/97327
6107 * config/arm/arm.c (fp_bitlist): Add isa_bit_mve_float to FP bits array.
6108
6109 2020-10-16 Richard Biener <rguenther@suse.de>
6110
6111 * tree-vect-slp.c (vect_get_and_check_slp_defs): For BB
6112 vectorization swap operands only if it helps, demote mismatches to
6113 external.
6114
6115 2020-10-16 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
6116
6117 PR target/97291
6118 * config/arm/arm-builtins.c (arm_strsbwbs_qualifiers): Modify array.
6119 (arm_strsbwbu_qualifiers): Likewise.
6120 (arm_strsbwbs_p_qualifiers): Likewise.
6121 (arm_strsbwbu_p_qualifiers): Likewise.
6122 * config/arm/arm_mve.h (__arm_vstrdq_scatter_base_wb_s64): Modify
6123 function definition.
6124 (__arm_vstrdq_scatter_base_wb_u64): Likewise.
6125 (__arm_vstrdq_scatter_base_wb_p_s64): Likewise.
6126 (__arm_vstrdq_scatter_base_wb_p_u64): Likewise.
6127 (__arm_vstrwq_scatter_base_wb_p_s32): Likewise.
6128 (__arm_vstrwq_scatter_base_wb_p_u32): Likewise.
6129 (__arm_vstrwq_scatter_base_wb_s32): Likewise.
6130 (__arm_vstrwq_scatter_base_wb_u32): Likewise.
6131 (__arm_vstrwq_scatter_base_wb_f32): Likewise.
6132 (__arm_vstrwq_scatter_base_wb_p_f32): Likewise.
6133 * config/arm/arm_mve_builtins.def (vstrwq_scatter_base_wb_add_u): Remove
6134 expansion for the builtin.
6135 (vstrwq_scatter_base_wb_add_s): Likewise.
6136 (vstrwq_scatter_base_wb_add_f): Likewise.
6137 (vstrdq_scatter_base_wb_add_u): Likewise.
6138 (vstrdq_scatter_base_wb_add_s): Likewise.
6139 (vstrwq_scatter_base_wb_p_add_u): Likewise.
6140 (vstrwq_scatter_base_wb_p_add_s): Likewise.
6141 (vstrwq_scatter_base_wb_p_add_f): Likewise.
6142 (vstrdq_scatter_base_wb_p_add_u): Likewise.
6143 (vstrdq_scatter_base_wb_p_add_s): Likewise.
6144 * config/arm/mve.md (mve_vstrwq_scatter_base_wb_<supf>v4si): Remove
6145 expand.
6146 (mve_vstrwq_scatter_base_wb_add_<supf>v4si): Likewise.
6147 (mve_vstrwq_scatter_base_wb_<supf>v4si_insn): Rename pattern to ...
6148 (mve_vstrwq_scatter_base_wb_<supf>v4si): This.
6149 (mve_vstrwq_scatter_base_wb_p_<supf>v4si): Remove expand.
6150 (mve_vstrwq_scatter_base_wb_p_add_<supf>v4si): Likewise.
6151 (mve_vstrwq_scatter_base_wb_p_<supf>v4si_insn): Rename pattern to ...
6152 (mve_vstrwq_scatter_base_wb_p_<supf>v4si): This.
6153 (mve_vstrwq_scatter_base_wb_fv4sf): Remove expand.
6154 (mve_vstrwq_scatter_base_wb_add_fv4sf): Likewise.
6155 (mve_vstrwq_scatter_base_wb_fv4sf_insn): Rename pattern to ...
6156 (mve_vstrwq_scatter_base_wb_fv4sf): This.
6157 (mve_vstrwq_scatter_base_wb_p_fv4sf): Remove expand.
6158 (mve_vstrwq_scatter_base_wb_p_add_fv4sf): Likewise.
6159 (mve_vstrwq_scatter_base_wb_p_fv4sf_insn): Rename pattern to ...
6160 (mve_vstrwq_scatter_base_wb_p_fv4sf): This.
6161 (mve_vstrdq_scatter_base_wb_<supf>v2di): Remove expand.
6162 (mve_vstrdq_scatter_base_wb_add_<supf>v2di): Likewise.
6163 (mve_vstrdq_scatter_base_wb_<supf>v2di_insn): Rename pattern to ...
6164 (mve_vstrdq_scatter_base_wb_<supf>v2di): This.
6165 (mve_vstrdq_scatter_base_wb_p_<supf>v2di): Remove expand.
6166 (mve_vstrdq_scatter_base_wb_p_add_<supf>v2di): Likewise.
6167 (mve_vstrdq_scatter_base_wb_p_<supf>v2di_insn): Rename pattern to ...
6168 (mve_vstrdq_scatter_base_wb_p_<supf>v2di): This.
6169
6170 2020-10-16 Kito Cheng <kito.cheng@sifive.com>
6171
6172 * config/riscv/multilib-generator (IMPLIED_EXT): New.
6173 (arch_canonicalize): Update comment and handle implied extensions.
6174
6175 2020-10-16 Richard Biener <rguenther@suse.de>
6176
6177 * tree-vect-slp.c (vect_get_and_check_slp_defs): First analyze
6178 all operands and fill in the def_stmts and ops entries.
6179 (vect_def_types_match): New helper.
6180
6181 2020-10-16 Martin Liska <mliska@suse.cz>
6182
6183 PR ipa/97404
6184 * ipa-prop.c (struct ipa_vr_ggc_hash_traits):
6185 Compare types of VRP as we can merge ranges of different types.
6186
6187 2020-10-16 Richard Biener <rguenther@suse.de>
6188
6189 PR tree-optimization/97428
6190 * tree-vect-slp.c (vect_analyze_slp_instance): Split store
6191 groups also for loop vectorization.
6192
6193 2020-10-15 Tom de Vries <tdevries@suse.de>
6194
6195 PR target/97436
6196 * config/nvptx/nvptx.opt (m32): Comment out.
6197 * doc/invoke.texi (NVPTX options): Remove -m32.
6198
6199 2020-10-15 Jan Hubicka <hubicka@ucw.cz>
6200 Richard Biener <rguenther@suse.de>
6201
6202 * attr-fnspec.h: Fix toplevel comment.
6203
6204 2020-10-15 Richard Biener <rguenther@suse.de>
6205
6206 * tree-pretty-print.c (dump_mem_ref): Print constant offset
6207 also for TARGET_MEM_REF.
6208
6209 2020-10-15 Jan Hubicka <jh@suse.cz>
6210
6211 * symtab.c (symtab_node::binds_to_current_def_p): Also accept symbols
6212 defined in other partition.
6213
6214 2020-10-15 Richard Biener <rguenther@suse.de>
6215
6216 * tree-vect-loop.c (vectorizable_live_operation): Adjust
6217 dominance query.
6218
6219 2020-10-15 Richard Biener <rguenther@suse.de>
6220
6221 PR tree-optimization/97482
6222 * tree-data-ref.c (split_constant_offset_1): Handle
6223 trivial conversions better.
6224 * fold-const.c (convert_to_ptrofftype_loc): Elide conversion
6225 if the offset is already ptrofftype_p.
6226
6227 2020-10-15 Martin Liska <mliska@suse.cz>
6228
6229 PR ipa/97295
6230 * profile-count.c (profile_count::to_frequency): Move part of
6231 gcc_assert to STATIC_ASSERT.
6232 * regs.h (REG_FREQ_FROM_BB): Do not use count.to_frequency for
6233 a function that does not have count_max initialized.
6234
6235 2020-10-15 Jakub Jelinek <jakub@redhat.com>
6236
6237 * params.opt (-param-ipa-jump-function-lookups=): Add full stop at
6238 the end of the parameter description.
6239
6240 2020-10-15 Kito Cheng <kito.cheng@sifive.com>
6241
6242 * common/config/riscv/riscv-common.c (riscv_cpu_tables): New.
6243 (riscv_arch_str): Return empty string if current_subset_list
6244 is NULL.
6245 (riscv_find_cpu): New.
6246 (riscv_handle_option): Verify option value of -mcpu.
6247 (riscv_expand_arch): Using std::string.
6248 (riscv_default_mtune): New.
6249 (riscv_expand_arch_from_cpu): Ditto.
6250 * config/riscv/riscv-cores.def: New.
6251 * config/riscv/riscv-protos.h (riscv_find_cpu): New.
6252 (riscv_cpu_info): New.
6253 * config/riscv/riscv.c (riscv_tune_info): Rename ...
6254 (riscv_tune_param): ... to this.
6255 (riscv_cpu_info): Rename ...
6256 (riscv_tune_info): ... to this.
6257 (tune_info): Rename ...
6258 (tune_param): ... to this.
6259 (rocket_tune_info): Update data type name.
6260 (sifive_7_tune_info): Ditto.
6261 (optimize_size_tune_info): Ditto.
6262 (riscv_cpu_info_table): Rename ...
6263 (riscv_tune_info_table): ... to this.
6264 (riscv_parse_cpu): Rename ...
6265 (riscv_parse_tune): ... to this, and translate valid -mcpu option to
6266 -mtune option.
6267 (riscv_rtx_costs): Rename tune_info to tune_param.
6268 (riscv_class_max_nregs): Ditto.
6269 (riscv_memory_move_cost): Ditto.
6270 (riscv_init_machine_status): Use value of -mcpu if -mtune is not
6271 given, and rename tune_info to tune_param.
6272 * config/riscv/riscv.h (riscv_expand_arch_from_cpu): New.
6273 (riscv_default_mtune): Ditto.
6274 (EXTRA_SPEC_FUNCTIONS): Add riscv_expand_arch_from_cpu and
6275 riscv_default_mtune.
6276 (OPTION_DEFAULT_SPECS): Handle default value of -march/-mabi.
6277 (DRIVER_SELF_SPECS): Expand -march from -mcpu if -march is not
6278 given.
6279 * config/riscv/riscv.opt (-mcpu): New option.
6280 * config/riscv/t-riscv ($(common_out_file)): Add
6281 riscv-cores.def to dependency.
6282 * doc/invoke.texi (RISC-V Option): Add -mcpu, and update the
6283 description of default value for -mtune and -march.
6284
6285 2020-10-15 Hongyu Wang <hongyu.wang@intel.com>
6286
6287 * common/config/i386/cpuinfo.h (get_available_features):
6288 Detect HRESET.
6289 * common/config/i386/i386-common.c (OPTION_MASK_ISA2_HRESET_SET,
6290 OPTION_MASK_ISA2_HRESET_UNSET): New macros.
6291 (ix86_handle_option): Handle -mhreset.
6292 * common/config/i386/i386-cpuinfo.h (enum processor_features):
6293 Add FEATURE_HRESET.
6294 * common/config/i386/i386-isas.h: Add ISA_NAMES_TABLE_ENTRY
6295 for hreset.
6296 * config.gcc: Add hresetintrin.h
6297 * config/i386/hresetintrin.h: New header file.
6298 * config/i386/x86gprintrin.h: Include hresetintrin.h.
6299 * config/i386/cpuid.h (bit_HRESET): New.
6300 * config/i386/i386-builtin.def: Add new builtin.
6301 * config/i386/i386-expand.c (ix86_expand_builtin):
6302 Handle new builtin.
6303 * config/i386/i386-c.c (ix86_target_macros_internal): Define
6304 __HRESET__.
6305 * config/i386/i386-options.c (isa2_opts): Add -mhreset.
6306 (ix86_valid_target_attribute_inner_p): Handle hreset.
6307 * config/i386/i386.h (TARGET_HRESET, TARGET_HRESET_P,
6308 PTA_HRESET): New.
6309 (PTA_ALDERLAKE): Add PTA_HRESET.
6310 * config/i386/i386.opt: Add option -mhreset.
6311 * config/i386/i386.md (UNSPECV_HRESET): New unspec.
6312 (hreset): New define_insn.
6313 * doc/invoke.texi: Document -mhreset.
6314 * doc/extend.texi: Document hreset.
6315
6316 2020-10-15 Hongtao Liu <hongtao.liu@intel.com>
6317
6318 * common/config/i386/cpuinfo.h (get_available_features):
6319 Detect UINTR.
6320 * common/config/i386/i386-common.c (OPTION_MASK_ISA2_UINTR_SET
6321 OPTION_MASK_ISA2_UINTR_UNSET): New.
6322 (ix86_handle_option): Handle -muintr.
6323 * common/config/i386/i386-cpuinfo.h (enum processor_features):
6324 Add FEATURE_UINTR.
6325 * common/config/i386/i386-isas.h: Add ISA_NAMES_TABLE_ENTRY
6326 for uintr.
6327 * config.gcc: Add uintrintrin.h to extra_headers.
6328 * config/i386/uintrintrin.h: New.
6329 * config/i386/cpuid.h (bit_UINTR): New.
6330 * config/i386/i386-builtin-types.def: Add new types.
6331 * config/i386/i386-builtin.def: Add new builtins.
6332 * config/i386/i386-builtins.c (ix86_init_mmx_sse_builtins): Add
6333 __builtin_ia32_testui.
6334 * config/i386/i386-builtins.h (ix86_builtins): Add
6335 IX86_BUILTIN_TESTUI.
6336 * config/i386/i386-c.c (ix86_target_macros_internal): Define
6337 __UINTR__.
6338 * config/i386/i386-expand.c (ix86_expand_special_args_builtin):
6339 Handle UINT8_FTYPE_VOID.
6340 (ix86_expand_builtin): Handle IX86_BUILTIN_TESTUI.
6341 * config/i386/i386-options.c (isa2_opts): Add -muintr.
6342 (ix86_valid_target_attribute_inner_p): Handle UINTR.
6343 (ix86_option_override_internal): Add TARGET_64BIT check for UINTR.
6344 * config/i386/i386.h (TARGET_UINTR, TARGET_UINTR_P, PTA_UINTR): New.
6345 (PTA_SAPPHIRRAPIDS): Add PTA_UINTR.
6346 * config/i386/i386.opt: Add -muintr.
6347 * config/i386/i386.md
6348 (define_int_iterator UINTR_UNSPECV): New.
6349 (define_int_attr uintr_unspecv): New.
6350 (uintr_<uintr_unspecv>, uintr_senduipi, testui):
6351 New define_insn patterns.
6352 * config/i386/x86gprintrin.h: Include uintrintrin.h
6353 * doc/invoke.texi: Document -muintr.
6354 * doc/extend.texi: Document uintr.
6355
6356 2020-10-14 Martin Sebor <msebor@redhat.com>
6357
6358 PR middle-end/97391
6359 * builtins.c (gimple_parm_array_size): Peel off one less layer
6360 of array types.
6361
6362 2020-10-14 Martin Sebor <msebor@redhat.com>
6363
6364 PR c/97413
6365 * attribs.c (init_attr_rdwr_indices): Unwrap extra list layer.
6366
6367 2020-10-14 Sunil K Pandey <skpgkp2@gmail.com>
6368
6369 PR target/95483
6370 * config/i386/avx2intrin.h (_mm_broadcastsi128_si256): New intrinsics.
6371 (_mm_broadcastsd_pd): Ditto.
6372 * config/i386/avx512bwintrin.h (_mm512_loadu_epi16): New intrinsics.
6373 (_mm512_storeu_epi16): Ditto.
6374 (_mm512_loadu_epi8): Ditto.
6375 (_mm512_storeu_epi8): Ditto.
6376 * config/i386/avx512dqintrin.h (_mm_reduce_round_sd): New intrinsics.
6377 (_mm_mask_reduce_round_sd): Ditto.
6378 (_mm_maskz_reduce_round_sd): Ditto.
6379 (_mm_reduce_round_ss): Ditto.
6380 (_mm_mask_reduce_round_ss): Ditto.
6381 (_mm_maskz_reduce_round_ss): Ditto.
6382 (_mm512_reduce_round_pd): Ditto.
6383 (_mm512_mask_reduce_round_pd): Ditto.
6384 (_mm512_maskz_reduce_round_pd): Ditto.
6385 (_mm512_reduce_round_ps): Ditto.
6386 (_mm512_mask_reduce_round_ps): Ditto.
6387 (_mm512_maskz_reduce_round_ps): Ditto.
6388 * config/i386/avx512erintrin.h
6389 (_mm_mask_rcp28_round_sd): New intrinsics.
6390 (_mm_maskz_rcp28_round_sd): Ditto.
6391 (_mm_mask_rcp28_round_ss): Ditto.
6392 (_mm_maskz_rcp28_round_ss): Ditto.
6393 (_mm_mask_rsqrt28_round_sd): Ditto.
6394 (_mm_maskz_rsqrt28_round_sd): Ditto.
6395 (_mm_mask_rsqrt28_round_ss): Ditto.
6396 (_mm_maskz_rsqrt28_round_ss): Ditto.
6397 (_mm_mask_rcp28_sd): Ditto.
6398 (_mm_maskz_rcp28_sd): Ditto.
6399 (_mm_mask_rcp28_ss): Ditto.
6400 (_mm_maskz_rcp28_ss): Ditto.
6401 (_mm_mask_rsqrt28_sd): Ditto.
6402 (_mm_maskz_rsqrt28_sd): Ditto.
6403 (_mm_mask_rsqrt28_ss): Ditto.
6404 (_mm_maskz_rsqrt28_ss): Ditto.
6405 * config/i386/avx512fintrin.h (_mm_mask_sqrt_sd): New intrinsics.
6406 (_mm_maskz_sqrt_sd): Ditto.
6407 (_mm_mask_sqrt_ss): Ditto.
6408 (_mm_maskz_sqrt_ss): Ditto.
6409 (_mm_mask_scalef_sd): Ditto.
6410 (_mm_maskz_scalef_sd): Ditto.
6411 (_mm_mask_scalef_ss): Ditto.
6412 (_mm_maskz_scalef_ss): Ditto.
6413 (_mm_mask_cvt_roundsd_ss): Ditto.
6414 (_mm_maskz_cvt_roundsd_ss): Ditto.
6415 (_mm_mask_cvt_roundss_sd): Ditto.
6416 (_mm_maskz_cvt_roundss_sd): Ditto.
6417 (_mm_mask_cvtss_sd): Ditto.
6418 (_mm_maskz_cvtss_sd): Ditto.
6419 (_mm_mask_cvtsd_ss): Ditto.
6420 (_mm_maskz_cvtsd_ss): Ditto.
6421 (_mm512_cvtsi512_si32): Ditto.
6422 (_mm_cvtsd_i32): Ditto.
6423 (_mm_cvtss_i32): Ditto.
6424 (_mm_cvti32_sd): Ditto.
6425 (_mm_cvti32_ss): Ditto.
6426 (_mm_cvtsd_i64): Ditto.
6427 (_mm_cvtss_i64): Ditto.
6428 (_mm_cvti64_sd): Ditto.
6429 (_mm_cvti64_ss): Ditto.
6430 * config/i386/avx512vlbwintrin.h (_mm256_storeu_epi8): New intrinsics.
6431 (_mm_storeu_epi8): Ditto.
6432 (_mm256_loadu_epi16): Ditto.
6433 (_mm_loadu_epi16): Ditto.
6434 (_mm256_loadu_epi8): Ditto.
6435 (_mm_loadu_epi8): Ditto.
6436 (_mm256_storeu_epi16): Ditto.
6437 (_mm_storeu_epi16): Ditto.
6438 * config/i386/avx512vlintrin.h (_mm256_load_epi64): New intrinsics.
6439 (_mm_load_epi64): Ditto.
6440 (_mm256_load_epi32): Ditto.
6441 (_mm_load_epi32): Ditto.
6442 (_mm256_store_epi32): Ditto.
6443 (_mm_store_epi32): Ditto.
6444 (_mm256_loadu_epi64): Ditto.
6445 (_mm_loadu_epi64): Ditto.
6446 (_mm256_loadu_epi32): Ditto.
6447 (_mm_loadu_epi32): Ditto.
6448 (_mm256_mask_cvt_roundps_ph): Ditto.
6449 (_mm256_maskz_cvt_roundps_ph): Ditto.
6450 (_mm_mask_cvt_roundps_ph): Ditto.
6451 (_mm_maskz_cvt_roundps_ph): Ditto.
6452 * config/i386/avxintrin.h (_mm256_cvtsi256_si32): New intrinsics.
6453 * config/i386/emmintrin.h (_mm_loadu_si32): New intrinsics.
6454 (_mm_loadu_si16): Ditto.
6455 (_mm_storeu_si32): Ditto.
6456 (_mm_storeu_si16): Ditto.
6457 * config/i386/i386-builtin-types.def
6458 (V8DF_FTYPE_V8DF_INT_V8DF_UQI_INT): Add new type.
6459 (V16SF_FTYPE_V16SF_INT_V16SF_UHI_INT): Ditto.
6460 (V4SF_FTYPE_V4SF_V2DF_V4SF_UQI_INT): Ditto.
6461 (V2DF_FTYPE_V2DF_V4SF_V2DF_UQI_INT): Ditto.
6462 * config/i386/i386-builtin.def
6463 (__builtin_ia32_cvtsd2ss_mask_round): New builtin.
6464 (__builtin_ia32_cvtss2sd_mask_round): Ditto.
6465 (__builtin_ia32_rcp28sd_mask_round): Ditto.
6466 (__builtin_ia32_rcp28ss_mask_round): Ditto.
6467 (__builtin_ia32_rsqrt28sd_mask_round): Ditto.
6468 (__builtin_ia32_rsqrt28ss_mask_round): Ditto.
6469 (__builtin_ia32_reducepd512_mask_round): Ditto.
6470 (__builtin_ia32_reduceps512_mask_round): Ditto.
6471 (__builtin_ia32_reducesd_mask_round): Ditto.
6472 (__builtin_ia32_reducess_mask_round): Ditto.
6473 * config/i386/i386-expand.c
6474 (ix86_expand_round_builtin): Expand round builtin for new type.
6475 (V8DF_FTYPE_V8DF_INT_V8DF_UQI_INT)
6476 (V16SF_FTYPE_V16SF_INT_V16SF_UHI_INT)
6477 (V4SF_FTYPE_V4SF_V2DF_V4SF_UQI_INT)
6478 (V2DF_FTYPE_V2DF_V4SF_V2DF_UQI_INT)
6479 * config/i386/mmintrin.h ()
6480 Define datatype __m32 and __m16.
6481 Define datatype __m32_u and __m16_u.
6482 * config/i386/sse.md: Adjust pattern.
6483 (<mask_codefor>reducep<mode><mask_name><round_saeonly_name>): Adjust.
6484 (reduces<mode><mask_scalar_name><round_saeonly_scalar_name>): Ditto.
6485 (sse2_cvtsd2ss<mask_name><round_name>): Ditto.
6486 (sse2_cvtss2sd<mask_name><round_saeonly_name>): Ditto.
6487 (avx512er_vmrcp28<mode><mask_name><round_saeonly_name>): Ditto.
6488 (avx512er_vmrsqrt28<mode><mask_name><round_saeonly_name>): Ditto.
6489
6490 2020-10-14 Olivier Hainque <hainque@adacore.com>
6491
6492 * config/arm/vxworks.h (TARGET_OS_CPP_BUILTINS): Fix
6493 the VX_CPU selection for -mcpu=xscale on arm-vxworks.
6494
6495 2020-10-14 Olivier Hainque <hainque@adacore.com>
6496
6497 * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Accommodate
6498 expectations from different versions of VxWorks, for 32 or 64bit
6499 configurations.
6500
6501 2020-10-14 Olivier Hainque <hainque@adacore.com>
6502
6503 * config/vxworks.h: #undef CPLUSPLUS_CPP_SPEC.
6504
6505 2020-10-14 Olivier Hainque <hainque@adacore.com>
6506
6507 * config/t-vxworks: Adjust the VxWorks alternative LIMITS_H guard
6508 for glimits.h, make it both closer to the previous one and easier to
6509 search for.
6510
6511 2020-10-14 Jakub Jelinek <jakub@redhat.com>
6512
6513 PR target/97387
6514 * config/i386/i386.md (CC_CCC): New mode iterator.
6515 (*setcc_qi_addqi3_cconly_overflow_1_<mode>): New
6516 define_insn_and_split.
6517 * config/i386/i386.c (ix86_cc_mode): Return CCCmode
6518 for *setcc_qi_addqi3_cconly_overflow_1_<mode> pattern operands.
6519 (ix86_rtx_costs): Return true and *total = 0;
6520 for *setcc_qi_addqi3_cconly_overflow_1_<mode> pattern. Use op0 and
6521 op1 temporaries to simplify COMPARE checks.
6522
6523 2020-10-14 Aldy Hernandez <aldyh@redhat.com>
6524
6525 PR tree-optimization/97396
6526 * gimple-range.cc (gimple_ranger::range_of_phi): Do not call
6527 range_of_ssa_name_with_loop_info with the loop tree root.
6528
6529 2020-10-14 Richard Biener <rguenther@suse.de>
6530
6531 * tree-vect-slp.c (vect_get_and_check_slp_defs): Split out
6532 test for compatible operand types.
6533
6534 2020-10-14 Olivier Hainque <hainque@adacore.com>
6535
6536 * config/vxworks.c (vxworks_override_options): Guard pic checks with
6537 flag_pic > 0 instead of just flag_pic.
6538
6539 2020-10-14 Jan Hubicka <hubicka@ucw.cz>
6540
6541 * ipa-fnsummary.c (remap_edge_summaries): Make offset_map HOST_WIDE_INT.
6542 (remap_freqcounting_predicate): Likewise.
6543 (ipa_merge_fn_summary_after_inlining): Likewise.
6544 * ipa-predicate.c (predicate::remap_after_inlining): Likewise
6545 * ipa-predicate.h (remap_after_inlining): Update.
6546
6547 2020-10-14 Jan Hubicka <jh@suse.cz>
6548
6549 * ipa-modref.c (compute_parm_map): Handle POINTER_PLUS_EXPR in
6550 PASSTHROUGH.
6551
6552 2020-10-14 Richard Biener <rguenther@suse.de>
6553
6554 * tree-vect-slp.c (vect_get_and_check_slp_defs): Move
6555 check for duplicate/interleave of variable size constants
6556 to a place done once and early.
6557 (vect_build_slp_tree_2): Adjust heuristics when to build
6558 a BB SLP node from scalars.
6559
6560 2020-10-14 Tom de Vries <tdevries@suse.de>
6561
6562 * tracer.c (cached_can_duplicate_bb_p, analyze_bb): Use
6563 can_duplicate_block_p.
6564 (can_duplicate_insn_p, can_duplicate_bb_no_insn_iter_p)
6565 (can_duplicate_bb_p): Move and merge ...
6566 * tree-cfg.c (gimple_can_duplicate_bb_p): ... here.
6567
6568 2020-10-14 Jan Hubicka <hubicka@ucw.cz>
6569
6570 * doc/invoke.texi: (ipa-jump-function-lookups): Document param.
6571 * ipa-modref.c (merge_call_side_effects): Use
6572 unadjusted_ptr_and_unit_offset.
6573 * ipa-prop.c (unadjusted_ptr_and_unit_offset): New function.
6574 * ipa-prop.h (unadjusted_ptr_and_unit_offset): Declare.
6575 * params.opt: (-param-ipa-jump-function-lookups): New.
6576
6577 2020-10-14 Jan Hubicka <jh@suse.cz>
6578
6579 PR bootstrap/97350
6580 * ipa-modref.c (ignore_edge): Do not ignore inlined edes.
6581 (ipa_merge_modref_summary_after_inlining): Improve debug output and
6582 fix parameter of ignore_stores_p.
6583
6584 2020-10-14 Kito Cheng <kito.cheng@sifive.com>
6585
6586 PR target/96759
6587 * expr.c (expand_assignment): Handle misaligned stores with PARALLEL
6588 value.
6589
6590 2020-10-13 Jakub Jelinek <jakub@redhat.com>
6591
6592 PR rtl-optimization/97386
6593 * combine.c (simplify_shift_const_1): Don't optimize nested ROTATEs if
6594 they have different modes.
6595
6596 2020-10-13 Aldy Hernandez <aldyh@redhat.com>
6597
6598 PR tree-optimization/97379
6599 * gimple-range-edge.cc (outgoing_range::calc_switch_ranges): Do
6600 not save hash slot across calls to hash_table<>::get_or_insert.
6601
6602 2020-10-13 Tobias Burnus <tobias@codesourcery.com>
6603
6604 * lto-wrapper.c (find_crtoffloadtable): Fix last commit
6605 by adding NULL as last argument to concat.
6606
6607 2020-10-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6608
6609 * config/aarch64/aarch64.c (neoversen2_tunings): Define.
6610 * config/aarch64/aarch64-cores.def (neoverse-n2): Use it.
6611
6612 2020-10-13 Tobias Burnus <tobias@codesourcery.com>
6613
6614 * lto-wrapper.c (find_crtoffloadtable): With -save-temps,
6615 use non-temp file name utilizing the dump prefix.
6616 (run_gcc): Update call.
6617
6618 2020-10-13 Richard Biener <rguenther@suse.de>
6619
6620 PR tree-optimization/97382
6621 * tree-vectorizer.h (_stmt_vec_info::same_align_refs): Remove.
6622 (STMT_VINFO_SAME_ALIGN_REFS): Likewise.
6623 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Do not
6624 allocate STMT_VINFO_SAME_ALIGN_REFS.
6625 (vec_info::free_stmt_vec_info): Do not release
6626 STMT_VINFO_SAME_ALIGN_REFS.
6627 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
6628 Do not compute self and read-read dependences.
6629 (vect_dr_aligned_if_related_peeled_dr_is): New helper.
6630 (vect_dr_aligned_if_peeled_dr_is): Likewise.
6631 (vect_update_misalignment_for_peel): Use it instead of
6632 iterating over STMT_VINFO_SAME_ALIGN_REFS.
6633 (dr_align_group_sort_cmp): New function.
6634 (vect_enhance_data_refs_alignment): Count the number of
6635 same aligned refs here and elide uses of STMT_VINFO_SAME_ALIGN_REFS.
6636 (vect_find_same_alignment_drs): Remove.
6637 (vect_analyze_data_refs_alignment): Do not call it.
6638 * vec.h (auto_vec<T, 0>::auto_vec): Adjust CTOR to take
6639 a vec<>&&, assert it isn't using auto storage.
6640 (auto_vec& operator=): Apply a similar change.
6641
6642 2020-10-13 Tobias Burnus <tobias@codesourcery.com>
6643
6644 * config/nvptx/mkoffload.c (main): Add missing fclose (in).
6645
6646 2020-10-13 Zhiheng Xie <xiezhiheng@huawei.com>
6647 Nannan Zheng <zhengnannan@huawei.com>
6648
6649 * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG
6650 for mul/mla/mls intrinsics.
6651
6652 2020-10-13 Jakub Jelinek <jakub@redhat.com>
6653
6654 * omp-low.c (add_taskreg_looptemp_clauses): For triangular loops
6655 with non-constant number of iterations add another 4 _looptemp_
6656 clauses before the (optional) one for lastprivate.
6657 (lower_omp_for_lastprivate): Skip those clauses when looking for
6658 the lastprivate clause.
6659 (lower_omp_for): For triangular loops with non-constant number of
6660 iterations add another 4 _looptemp_ clauses.
6661 * omp-expand.c (expand_omp_for_init_counts): For triangular loops
6662 with non-constant number of iterations set counts[0],
6663 fd->first_inner_iterations, fd->factor and fd->adjn1 from the newly
6664 added _looptemp_ clauses.
6665 (expand_omp_for_init_vars): Initialize the newly added _looptemp_
6666 clauses.
6667 (find_lastprivate_looptemp): New function.
6668 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk,
6669 expand_omp_taskloop_for_outer): Use it instead of manually skipping
6670 _looptemp_ clauses.
6671
6672 2020-10-13 Jan Hubicka <hubicka@ucw.cz>
6673
6674 PR ipa/97389
6675 * ipa-modref.c (dump_lto_records): Fix formating of dump file.
6676 (modref_summary::dump): Do not check loads to be non-null.
6677 (modref_summary_lto::dump): Do not check loads to be non-null.
6678 (merge_call_side_effects): Improve debug output.
6679 (analyze_call): Crash when cur_summary->loads is NULL.
6680 (analyze_function): Update.
6681 (modref_summaries::insert): Insert only into summaries, not
6682 optimization_summaries.
6683 (modref_summaries::duplicate): Likewise; crash when load or sotres
6684 are NULL.
6685 (modref_summaries_lto::duplicate): Crash when loads or stores are NULL.
6686 (write_modref_records): param_index is signed.
6687 (read_modref_records): param_index is signed.
6688 (modref_write): Crash when loads or stores are NULL.
6689 (read_section): Compensate previous change.
6690 (pass_modref::execute): Do not check optimization_summaries t be
6691 non-NULL.
6692 (ignore_edge): Fix.
6693 (compute_parm_map): Fix formating.
6694 (modref_propagate_in_scc): Do not expect loads/stores to be NULL.
6695
6696 2020-10-12 Alexandre Oliva <oliva@adacore.com>
6697
6698 * builtins.c (mathfn_built_in_type): Use CFN_ enumerators.
6699
6700 2020-10-12 Andrew MacLeod <amacleod@redhat.com>
6701
6702 PR tree-optimization/97381
6703 * gimple-range-gori.cc (gori_compute::compute_operand2_range): If a range cannot be
6704 calculated through operand 2, return false.
6705
6706 2020-10-12 Aldy Hernandez <aldyh@redhat.com>
6707
6708 PR tree-optimization/97378
6709 * range-op.cc (operator_trunc_mod::wi_fold): Return VARYING for mod by zero.
6710
6711 2020-10-12 David Malcolm <dmalcolm@redhat.com>
6712
6713 * doc/invoke.texi: Document -Wanalyzer-write-to-const and
6714 -Wanalyzer-write-to-string-literal.
6715
6716 2020-10-12 Martin Sebor <msebor@redhat.com>
6717
6718 PR middle-end/97342
6719 PR middle-end/97023
6720 PR middle-end/96384
6721 * builtins.c (access_ref::access_ref): Initialize new member. Use
6722 new enum.
6723 (access_ref::size_remaining): Define new member function.
6724 (inform_access): Handle expressions referencing objects.
6725 (gimple_call_alloc_size): Call get_size_range instead of get_range.
6726 (gimple_call_return_array): New function.
6727 (get_range): Rename...
6728 (get_offset_range): ...to this. Improve detection of ranges from
6729 types of expressions.
6730 (gimple_call_return_array): Adjust calls to get_range per above.
6731 (compute_objsize): Same. Set maximum size or offset instead of
6732 failing for unknown objects and handle more kinds of expressions.
6733 (compute_objsize): Call access_ref::size_remaining.
6734 (compute_objsize): Have transitional wrapper fail for pointers
6735 into unknown objects.
6736 (expand_builtin_strncmp): Call access_ref::size_remaining and
6737 handle new cases.
6738 * builtins.h (access_ref::size_remaining): Declare new member function.
6739 (access_ref::set_max_size_range): Define new member function.
6740 (access_ref::add_ofset, access_ref::add_max_ofset): Same.
6741 (access_ref::add_base0): New data member.
6742 * calls.c (get_size_range): Change argument type. Handle new
6743 condition.
6744 * calls.h (get_size_range): Adjust signature.
6745 (enum size_range_flags): Define new type.
6746 * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): Correct
6747 argument to get_size_range.
6748 * tree-ssa-strlen.c (get_range): Handle anti-ranges.
6749 (maybe_warn_overflow): Check DECL_P before assuming it's one.
6750
6751 2020-10-12 Martin Sebor <msebor@redhat.com>
6752
6753 PR c++/96511
6754 PR middle-end/96384
6755 * builtins.c (get_range): Return full range of type when neither
6756 value nor its range is available. Fail for ranges inverted due
6757 to the signedness of offsets.
6758 (compute_objsize): Handle more special array members. Handle
6759 POINTER_PLUS_EXPR and VIEW_CONVERT_EXPR that come up in front end
6760 code.
6761 (access_ref::offset_bounded): Define new member function.
6762 * builtins.h (access_ref::eval): New data member.
6763 (access_ref::offset_bounded): New member function.
6764 (access_ref::offset_zero): New member function.
6765 (compute_objsize): Declare a new overload.
6766 * gimple-array-bounds.cc (array_bounds_checker::check_array_ref): Use
6767 enum special_array_member.
6768 * tree.c (component_ref_size): Use special_array_member.
6769 * tree.h (special_array_member): Define a new type.
6770 (component_ref_size): Change signature.
6771
6772 2020-10-12 Jan Hubicka <hubicka@ucw.cz>
6773
6774 * ipa-modref.c (modref_summaries): Remove field IPA.
6775 (class modref_summary_lto): New global variable.
6776 (class modref_summaries_lto): New.
6777 (modref_summary::modref_summary): Remove loads_lto and stores_lto.
6778 (modref_summary::~modref_summary): Remove loads_lto and stores_lto.
6779 (modref_summary::useful_p): Do not use lto_useful.
6780 (modref_records_lto): New typedef.
6781 (struct modref_summary_lto): New type.
6782 (modref_summary_lto::modref_summary_lto): New member function.
6783 (modref_summary_lto::~modref_summary_lto): New member function.
6784 (modref_summary_lto::useful_p): New member function.
6785 (modref_summary::dump): Do not handle lto.
6786 (modref_summary_lto::dump): New member function.
6787 (get_modref_function_summary): Use optimization_summary.
6788 (merge_call_side_effects): Use optimization_summary.
6789 (analyze_call): Use optimization_summary.
6790 (struct summary_ptrs): New struture.
6791 (analyze_load): Update to handle separate lto and non-lto summaries.
6792 (analyze_store): Likewise.
6793 (analyze_stmt): Likewise.
6794 (remove_summary): Break out from ...
6795 (analyze_function): ... here; update to handle seprated summaries.
6796 (modref_summaries::insert): Do not handle lto summary.
6797 (modref_summaries_lto::insert): New member function.
6798 (modref_summaries::duplicate): Do not handle lto summary.
6799 (modref_summaries_lto::duplicate): New member function.
6800 (read_modref_records): Expect nolto_ret or lto_ret to be NULL>
6801 (modref_write): Write lto summary.
6802 (read_section): Handle separated summaries.
6803 (modref_read): Initialize separated summaries.
6804 (modref_transform): Handle separated summaries.
6805 (pass_modref::execute): Turn summary to optimization_summary; handle
6806 separate summaries.
6807 (ignore_edge): Handle separate summaries.
6808 (ipa_merge_modref_summary_after_inlining): Likewise.
6809 (collapse_loads): Likewise.
6810 (modref_propagate_in_scc): Likewise.
6811 (pass_ipa_modref::execute): Likewise.
6812 (ipa_modref_c_finalize): Likewise.
6813 * ipa-modref.h (modref_records_lto): Remove typedef.
6814 (struct modref_summary): Remove stores_lto, loads_lto and finished
6815 fields; remove lto_useful_p member function.
6816
6817 2020-10-12 Richard Biener <rguenther@suse.de>
6818
6819 * tree-vect-data-refs.c (vect_slp_analyze_instance_dependence):
6820 Use SLP_TREE_REPRESENTATIVE.
6821 * tree-vectorizer.h (_slp_tree::vertex): New member used
6822 for graphds interfacing.
6823 * tree-vect-slp.c (vect_build_slp_tree_2): Allocate space
6824 for PHI SLP children.
6825 (vect_analyze_slp_backedges): New function filling in SLP
6826 node children for PHIs that correspond to backedge values.
6827 (vect_analyze_slp): Call vect_analyze_slp_backedges for the
6828 graph.
6829 (vect_slp_analyze_node_operations): Deal with a cyclic graph.
6830 (vect_schedule_slp_instance): Likewise.
6831 (vect_schedule_slp): Likewise.
6832 (slp_copy_subtree): Remove.
6833 (vect_slp_rearrange_stmts): Likewise.
6834 (vect_attempt_slp_rearrange_stmts): Likewise.
6835 (vect_slp_build_vertices): New functions.
6836 (vect_slp_permute): Likewise.
6837 (vect_slp_perms_eq): Likewise.
6838 (vect_optimize_slp): Remove special code to elide
6839 permutations with SLP reductions. Implement generic
6840 permute optimization.
6841
6842 2020-10-12 Christophe Lyon <christophe.lyon@linaro.org>
6843
6844 * config/arm/arm.c (arm_preferred_simd_mode): Use E_FOOmode
6845 instead of FOOmode.
6846
6847 2020-10-12 Martin Liska <mliska@suse.cz>
6848
6849 PR tree-optimization/97079
6850 * internal-fn.c (internal_fn_stored_value_index): Handle also
6851 .MASK_STORE_LANES.
6852 * tree-vect-patterns.c (vect_recog_over_widening_pattern): Bail
6853 out for unsupported TREE_TYPE.
6854
6855 2020-10-12 Richard Biener <rguenther@suse.de>
6856
6857 * tree-vect-slp.c (vect_bb_partition_graph_r): Use visited
6858 hash-map.
6859 (vect_bb_partition_graph): Likewise.
6860
6861 2020-10-12 Duan bo <duanbo3@huawei.com>
6862
6863 PR target/96757
6864 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Add
6865 the identification and handling of the dropped situation in the
6866 cond expression processing phase.
6867
6868 2020-10-12 Tobias Burnus <tobias@codesourcery.com>
6869
6870 * doc/invoke.texi (nvptx's -misa): Update default to sm_35.
6871
6872 2020-10-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6873
6874 PR target/97349
6875 * config/aarch64/arm_neon.h (vdupq_n_p8, vdupq_n_p16,
6876 vdupq_n_p64, vdupq_n_s8, vdupq_n_s16, vdupq_n_u8, vdupq_n_u16):
6877 Fix argument type.
6878
6879 2020-10-12 Ilya Leoshkevich <iii@linux.ibm.com>
6880
6881 * config/s390/s390-protos.h (s390_build_signbit_mask): New
6882 function.
6883 * config/s390/s390.c (s390_contiguous_bitmask_vector_p):
6884 Bitcast the argument to an integral mode.
6885 (s390_expand_vec_init): Do not call
6886 s390_contiguous_bitmask_vector_p with a scalar argument.
6887 (s390_build_signbit_mask): New function.
6888 * config/s390/vector.md (copysign<mode>3): Use bitwise
6889 operations.
6890
6891 2020-10-12 Aldy Hernandez <aldyh@redhat.com>
6892
6893 PR tree-optimization/97371
6894 * range-op.cc (operator_rshift::op1_range): Ignore shifts larger than
6895 or equal to type precision.
6896
6897 2020-10-12 Martin Liska <mliska@suse.cz>
6898
6899 * ipa-modref.c (merge_call_side_effects): Clear modref_parm_map
6900 fields in the vector.
6901
6902 2020-10-12 Richard Biener <rguenther@suse.de>
6903
6904 * tree-vect-slp.c (vect_analyze_slp_instance): Set matches to true
6905 after successful discovery but forced split.
6906
6907 2020-10-12 Tom de Vries <tdevries@suse.de>
6908
6909 * config/nvptx/nvptx.opt (-msoft-stack-reserve-local): Rename to ...
6910 (-msoft-stack-reserve-local=): ... this.
6911
6912 2020-10-12 Richard Biener <rguenther@suse.de>
6913
6914 PR tree-optimization/97357
6915 * tree-ssa-loop-split.c (ssa_semi_invariant_p): Abnormal
6916 SSA names are not semi invariant.
6917
6918 2020-10-11 Iain Sandoe <iain@sandoe.co.uk>
6919
6920 * config/darwin.c (darwin_globalize_label): Make a subset of
6921 metadate symbols global.
6922 (darwin_label_is_anonymous_local_objc_name): Make a subset of
6923 metadata symbols linker-visible.
6924 (darwin_override_options): Track more target OS versions, make
6925 the next_runtime version track this (unless it's set to 0 for
6926 GNU runtime).
6927
6928 2020-10-11 Iain Sandoe <iain@sandoe.co.uk>
6929
6930 * config/darwin.c (darwin_globalize_label): Add protocol
6931 meta-data labels to the set that are global.
6932 (darwin_label_is_anonymous_local_objc_name): Arrange for meta-
6933 data start labels to be linker-visible.
6934
6935 2020-10-11 Iain Sandoe <iain@sandoe.co.uk>
6936
6937 * config/darwin.c (darwin_objc2_section): Allow for
6938 values > 1 to represent the next runtime.
6939 (darwin_objc1_section): Likewise.
6940 * config/darwin.h (NEXT_OBJC_RUNTIME): Set the default
6941 next runtime value to be 10.5.8.
6942
6943 2020-10-10 Jan Hubicka <jh@suse.cz>
6944
6945 * ipa-modref.c (modref_transform): Fix parameter map computation.
6946
6947 2020-10-10 Tom de Vries <tdevries@suse.de>
6948
6949 PR target/97318
6950 * config/nvptx/nvptx.c (nvptx_replace_dot): New function.
6951 (write_fn_proto, write_fn_proto_from_insn, nvptx_output_call_insn):
6952 Use nvptx_replace_dot.
6953
6954 2020-10-10 Tom de Vries <tdevries@suse.de>
6955
6956 * config/nvptx/nvptx.c (write_fn_proto_1): New function, factored out
6957 of ...
6958 (write_fn_proto): ... here. Return void.
6959
6960 2020-10-10 Jan Hubicka <jh@suse.cz>
6961
6962 * ipa-modref.c (remap_arguments): Check range in map access.
6963
6964 2020-10-10 Jan Hubicka <jh@suse.cz>
6965
6966 * ipa-modref.c (modref_transform): Use reserve instead of safe_grow.
6967
6968 2020-10-10 Jan Hubicka <jh@suse.cz>
6969
6970 * ipa-modref.c (modref_transform): Check that summaries are allocated.
6971
6972 2020-10-10 Jan Hubicka <jh@suse.cz>
6973
6974 * ipa-modref-tree.h (struct modref_tree): Revert prevoius change.
6975 * ipa-modref.c (analyze_function): Dump original summary.
6976 (modref_read): Only set IPA if streaming summary (not optimization
6977 summary).
6978 (remap_arguments): New function.
6979 (modref_transform): New function.
6980 (compute_parm_map): Fix offset calculation.
6981 (ipa_merge_modref_summary_after_inlining): Do not merge stores when
6982 they can be ignored.
6983
6984 2020-10-10 Jan Hubicka <jh@suse.cz>
6985
6986 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Improve debug dumps.
6987 (call_may_clobber_ref_p_1): Improve debug dumps.
6988
6989 2020-10-10 Iain Sandoe <iain@sandoe.co.uk>
6990
6991 * config/darwin.c (output_objc_section_asm_op): Avoid extra
6992 objective-c section switches unless the linker needs them.
6993
6994 2020-10-10 Iain Sandoe <iain@sandoe.co.uk>
6995
6996 * config/darwin-sections.def (objc2_data_section): New.
6997 (objc2_ivar_section): New.
6998 * config/darwin.c (darwin_objc2_section): Act on Protocol and
6999 ivar refs.
7000
7001 2020-10-10 Iain Sandoe <iain@sandoe.co.uk>
7002
7003 * config/darwin-sections.def (objc2_class_names_section,
7004 objc2_method_names_section, objc2_method_types_section): New
7005 * config/darwin.c (output_objc_section_asm_op): Output new
7006 sections. (darwin_objc2_section): Select new sections where
7007 used.
7008
7009 2020-10-10 Iain Sandoe <iain@sandoe.co.uk>
7010
7011 * config/darwin.c (darwin_emit_local_bss): Amend section names to
7012 match system tools. (darwin_output_aligned_bss): Likewise.
7013
7014 2020-10-10 Aldy Hernandez <aldyh@redhat.com>
7015
7016 PR tree-optimization/97359
7017 * gimple-range-gori.cc (logical_stmt_cache::cacheable_p): Only
7018 handle ANDs and ORs.
7019 (gori_compute_cache::cache_stmt): Adjust comment.
7020
7021 2020-10-09 Vladimir Makarov <vmakarov@redhat.com>
7022
7023 PR rtl-optimization/97313
7024 * lra-constraints.c (match_reload): Don't keep strict_low_part in
7025 reloads for non-registers.
7026
7027 2020-10-09 H.J. Lu <hjl.tools@gmail.com>
7028
7029 PR target/97148
7030 * config.gcc (extra_headers): Add x86gprintrin.h.
7031 * config/i386/adxintrin.h: Check _X86GPRINTRIN_H_INCLUDED for
7032 <x86gprintrin.h>.
7033 * config/i386/bmi2intrin.h: Likewise.
7034 * config/i386/bmiintrin.h: Likewise.
7035 * config/i386/cetintrin.h: Likewise.
7036 * config/i386/cldemoteintrin.h: Likewise.
7037 * config/i386/clflushoptintrin.h: Likewise.
7038 * config/i386/clwbintrin.h: Likewise.
7039 * config/i386/enqcmdintrin.h: Likewise.
7040 * config/i386/fxsrintrin.h: Likewise.
7041 * config/i386/ia32intrin.h: Likewise.
7042 * config/i386/lwpintrin.h: Likewise.
7043 * config/i386/lzcntintrin.h: Likewise.
7044 * config/i386/movdirintrin.h: Likewise.
7045 * config/i386/pconfigintrin.h: Likewise.
7046 * config/i386/pkuintrin.h: Likewise.
7047 * config/i386/rdseedintrin.h: Likewise.
7048 * config/i386/rtmintrin.h: Likewise.
7049 * config/i386/serializeintrin.h: Likewise.
7050 * config/i386/tbmintrin.h: Likewise.
7051 * config/i386/tsxldtrkintrin.h: Likewise.
7052 * config/i386/waitpkgintrin.h: Likewise.
7053 * config/i386/wbnoinvdintrin.h: Likewise.
7054 * config/i386/xsavecintrin.h: Likewise.
7055 * config/i386/xsaveintrin.h: Likewise.
7056 * config/i386/xsaveoptintrin.h: Likewise.
7057 * config/i386/xsavesintrin.h: Likewise.
7058 * config/i386/xtestintrin.h: Likewise.
7059 * config/i386/immintrin.h: Include <x86gprintrin.h> instead of
7060 <fxsrintrin.h>, <xsaveintrin.h>, <xsaveoptintrin.h>,
7061 <xsavesintrin.h>, <xsavecintrin.h>, <lzcntintrin.h>,
7062 <bmiintrin.h>, <bmi2intrin.h>, <xtestintrin.h>, <cetintrin.h>,
7063 <movdirintrin.h>, <sgxintrin.h, <pconfigintrin.h>,
7064 <waitpkgintrin.h>, <cldemoteintrin.h>, <enqcmdintrin.h>,
7065 <serializeintrin.h>, <tsxldtrkintrin.h>, <adxintrin.h>,
7066 <clwbintrin.h>, <clflushoptintrin.h>, <wbnoinvdintrin.h> and
7067 <pkuintrin.h>.
7068 (_wbinvd): Moved to config/i386/x86gprintrin.h.
7069 (_rdrand16_step): Likewise.
7070 (_rdrand32_step): Likewise.
7071 (_rdpid_u32): Likewise.
7072 (_readfsbase_u32): Likewise.
7073 (_readfsbase_u64): Likewise.
7074 (_readgsbase_u32): Likewise.
7075 (_readgsbase_u64): Likewise.
7076 (_writefsbase_u32): Likewise.
7077 (_writefsbase_u64): Likewise.
7078 (_writegsbase_u32): Likewise.
7079 (_writegsbase_u64): Likewise.
7080 (_rdrand64_step): Likewise.
7081 (_ptwrite64): Likewise.
7082 (_ptwrite32): Likewise.
7083 * config/i386/x86gprintrin.h: New file.
7084 * config/i386/x86intrin.h: Include <x86gprintrin.h>. Don't
7085 include <ia32intrin.h>, <lwpintrin.h>, <tbmintrin.h>,
7086 <popcntintrin.h>, <mwaitxintrin.h> and <clzerointrin.h>.
7087
7088 2020-10-09 Tom de Vries <tdevries@suse.de>
7089
7090 PR target/97348
7091 * config/nvptx/nvptx.h (ASM_SPEC): Also pass -m to nvptx-as if
7092 default is used.
7093 * config/nvptx/nvptx.opt (misa): Init with PTX_ISA_SM35.
7094
7095 2020-10-09 Richard Biener <rguenther@suse.de>
7096
7097 * doc/sourcebuild.texi (vect_masked_load): Document.
7098
7099 2020-10-09 Richard Biener <rguenther@suse.de>
7100
7101 PR tree-optimization/97334
7102 * tree-vect-slp.c (vect_build_slp_tree_1): Do not fatally
7103 fail lanes other than zero when BB vectorizing.
7104
7105 2020-10-09 Jan Hubicka <jh@suse.cz>
7106
7107 PR ipa/97292
7108 PR ipa/97335
7109 * ipa-modref-tree.h (copy_from): Drop summary in a
7110 clone.
7111
7112 2020-10-09 Richard Biener <rguenther@suse.de>
7113
7114 PR tree-optimization/97347
7115 * tree-vect-slp.c (vect_create_constant_vectors): Use
7116 edge insertion when inserting on the fallthru edge,
7117 appropriately insert at the start of BBs when inserting
7118 after PHIs.
7119
7120 2020-10-09 Andrew MacLeod <amacleod@redhat.com>
7121
7122 PR tree-optimization/97317
7123 * range-op.cc (operator_cast::op1_range): Handle casts where the precision
7124 of the RHS is only 1 greater than the precision of the LHS.
7125
7126 2020-10-09 Richard Biener <rguenther@suse.de>
7127
7128 * cgraphunit.c (expand_all_functions): Free tp_first_run_order.
7129 * ipa-modref.c (pass_ipa_modref::execute): Free order.
7130 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations): Free
7131 loop body.
7132 * tree-vect-data-refs.c (vect_find_stmt_data_reference): Free
7133 data references upon failure.
7134 * tree-vect-loop.c (update_epilogue_loop_vinfo): Free BBs
7135 array of the original loop.
7136 * tree-vect-slp.c (vect_slp_bbs): Use an auto_vec for
7137 dataref_groups to release its memory.
7138
7139 2020-10-09 Jakub Jelinek <jakub@redhat.com>
7140
7141 PR tree-optimization/94801
7142 PR target/97312
7143 * vr-values.c (vr_values::extract_range_basic) <CASE_CFN_CLZ,
7144 CASE_CFN_CTZ>: When stmt is not an internal-fn call or
7145 C?Z_DEFINED_VALUE_AT_ZERO is not 2, assume argument is not zero
7146 and thus use [0, prec-1] range unless it can be further improved.
7147 For CTZ, don't update maxi from upper bound if it was previously prec.
7148 * gimple-range.cc (gimple_ranger::range_of_builtin_call) <CASE_CFN_CLZ,
7149 CASE_CFN_CTZ>: Likewise.
7150
7151 2020-10-09 Jakub Jelinek <jakub@redhat.com>
7152
7153 PR tree-optimization/97325
7154 * match.pd (FFS(nonzero) -> CTZ(nonzero) + 1): Cast argument to
7155 corresponding unsigned type.
7156
7157 2020-10-09 Richard Biener <rguenther@suse.de>
7158
7159 * tree-vect-slp.c (vect_create_constant_vectors): Properly insert
7160 after PHIs.
7161
7162 2020-10-08 Alexandre Oliva <oliva@adacore.com>
7163
7164 * builtins.c (mathfn_built_in_type): New.
7165 * builtins.h (mathfn_built_in_type): Declare.
7166 * tree-ssa-math-opts.c (execute_cse_sincos_1): Use it to
7167 obtain the type expected by the intrinsic.
7168
7169 2020-10-08 Will Schmidt <will_schmidt@vnet.ibm.com>
7170
7171 * config/rs6000/rs6000-builtin.def (BU_P10_MISC_2): Rename
7172 to BU_P10_POWERPC64_MISC_2.
7173 CFUGED, CNTLZDM, CNTTZDM, PDEPD, PEXTD): Call renamed macro.
7174
7175 2020-10-08 Jan Hubicka <jh@suse.cz>
7176
7177 * tree-nrv.c (dest_safe_for_nrv_p): Disable tbaa in
7178 call_may_clobber_ref_p and ref_maybe_used_by_stmt_p.
7179 * tree-tailcall.c (find_tail_calls): Likewise.
7180 * tree-ssa-alias.c (call_may_clobber_ref_p): Add tbaa_p parameter.
7181 * tree-ssa-alias.h (call_may_clobber_ref_p): Update prototype.
7182 * tree-ssa-sccvn.c (vn_reference_lookup_3): Pass data->tbaa_p
7183 to call_may_clobber_ref_p_1.
7184
7185 2020-10-08 Mark Wielaard <mark@klomp.org>
7186
7187 * dwarf2out.c (dwarf2out_finish): Emit .file 0 entry when
7188 generating DWARF5 .debug_line table through gas.
7189
7190 2020-10-08 John Henning <john.henning@oracle.com>
7191
7192 PR other/97309
7193 * doc/invoke.texi: Improve documentation of
7194 -fallow-store-data-races.
7195
7196 2020-10-08 Christophe Lyon <christophe.lyon@linaro.org>
7197
7198 PR target/96914
7199 * config/arm/arm_mve.h (__arm_vcvtnq_u32_f32): New.
7200
7201 2020-10-08 Martin Liska <mliska@suse.cz>
7202 Richard Biener <rguenther@suse.de>
7203
7204 * tree-vectorizer.h (_bb_vec_info::const_iterator): Remove.
7205 (_bb_vec_info::const_reverse_iterator): Likewise.
7206 (_bb_vec_info::region_stmts): Likewise.
7207 (_bb_vec_info::reverse_region_stmts): Likewise.
7208 (_bb_vec_info::_bb_vec_info): Adjust.
7209 (_bb_vec_info::bb): Remove.
7210 (_bb_vec_info::region_begin): Remove.
7211 (_bb_vec_info::region_end): Remove.
7212 (_bb_vec_info::bbs): New vector of BBs.
7213 (vect_slp_function): Declare.
7214 * tree-vect-patterns.c (vect_determine_precisions): Use
7215 regular stmt iteration.
7216 (vect_pattern_recog): Likewise.
7217 * tree-vect-slp.c: Include cfganal.h, tree-eh.h and tree-cfg.h.
7218 (vect_build_slp_tree_1): Properly refuse to vectorize
7219 volatile and throwing stmts.
7220 (vect_build_slp_tree_2): Pass group-size down to
7221 get_vectype_for_scalar_type.
7222 (_bb_vec_info::_bb_vec_info): Use regular stmt iteration,
7223 adjust for changed region specification.
7224 (_bb_vec_info::~_bb_vec_info): Likewise.
7225 (vect_slp_check_for_constructors): Likewise.
7226 (vect_slp_region): Likewise.
7227 (vect_slp_bbs): New worker operating on a vector of BBs.
7228 (vect_slp_bb): Wrap it.
7229 (vect_slp_function): New function splitting the function
7230 into multi-BB regions.
7231 (vect_create_constant_vectors): Handle the case of inserting
7232 after a throwing def.
7233 (vect_schedule_slp_instance): Adjust.
7234 * tree-vectorizer.c (vec_info::remove_stmt): Simplify again.
7235 (vec_info::insert_seq_on_entry): Adjust.
7236 (pass_slp_vectorize::execute): Also init PHIs. Call
7237 vect_slp_function.
7238
7239 2020-10-08 Richard Biener <rguenther@suse.de>
7240
7241 PR tree-optimization/97330
7242 * tree-ssa-sink.c (statement_sink_location): Avoid skipping
7243 PHIs when they dominate the insert location.
7244
7245 2020-10-08 Jan Hubicka <jh@suse.cz>
7246
7247 * ipa-modref.c (get_access): Fix handling of offsets.
7248 * tree-ssa-alias.c (modref_may_conflict): Watch for overflows.
7249
7250 2020-10-08 Martin Liska <mliska@suse.cz>
7251
7252 * dbgcnt.def (DEBUG_COUNTER): Add ipa_mod_ref debug counter.
7253 * tree-ssa-alias.c (modref_may_conflict): Handle the counter.
7254
7255 2020-10-08 Richard Biener <rguenther@suse.de>
7256
7257 * tree-vectorizer.c (try_vectorize_loop_1): Do not dump
7258 "basic block vectorized".
7259 (pass_slp_vectorize::execute): Likewise.
7260 * tree-vect-slp.c (vect_analyze_slp_instance): Avoid
7261 re-analyzing split single stmts.
7262
7263 2020-10-08 Christophe Lyon <christophe.lyon@linaro.org>
7264
7265 PR target/96914
7266 * config/arm/arm_mve.h (vqrdmlashq_n_u8, vqrdmlashq_n_u16)
7267 (vqrdmlashq_n_u32, vqrdmlahq_n_u8, vqrdmlahq_n_u16)
7268 (vqrdmlahq_n_u32, vqdmlahq_n_u8, vqdmlahq_n_u16, vqdmlahq_n_u32)
7269 (vmlaldavaxq_p_u16, vmlaldavaxq_p_u32): Remove.
7270 * config/arm/arm_mve_builtins.def (vqrdmlashq_n_u, vqrdmlahq_n_u)
7271 (vqdmlahq_n_u, vmlaldavaxq_p_u): Remove.
7272 * config/arm/unspecs.md (VQDMLAHQ_N_U, VQRDMLAHQ_N_U)
7273 (VQRDMLASHQ_N_U)
7274 (VMLALDAVAXQ_P_U): Remove unspecs.
7275 * config/arm/iterators.md (VQDMLAHQ_N_U, VQRDMLAHQ_N_U)
7276 (VQRDMLASHQ_N_U, VMLALDAVAXQ_P_U): Remove attributes.
7277 (VQDMLAHQ_N, VQRDMLAHQ_N, VQRDMLASHQ_N, VMLALDAVAXQ_P): Remove
7278 unsigned variants from iterators.
7279 * config/arm/mve.md (mve_vqdmlahq_n_<supf><mode>)
7280 (mve_vqrdmlahq_n_<supf><mode>)
7281 (mve_vqrdmlashq_n_<supf><mode>, mve_vmlaldavaxq_p_<supf><mode>):
7282 Update comment.
7283
7284 2020-10-08 Christophe Lyon <christophe.lyon@linaro.org>
7285
7286 PR target/96914
7287 * config/arm/arm_mve.h (vqdmlashq, vqdmlashq_m): Define.
7288 * config/arm/arm_mve_builtins.def (vqdmlashq_n_s)
7289 (vqdmlashq_m_n_s,): New.
7290 * config/arm/unspecs.md (VQDMLASHQ_N_S, VQDMLASHQ_M_N_S): New
7291 unspecs.
7292 * config/arm/iterators.md (VQDMLASHQ_N_S, VQDMLASHQ_M_N_S): New
7293 attributes.
7294 (VQDMLASHQ_N): New iterator.
7295 * config/arm/mve.md (mve_vqdmlashq_n_, mve_vqdmlashq_m_n_s): New
7296 patterns.
7297
7298 2020-10-08 Jakub Jelinek <jakub@redhat.com>
7299
7300 PR target/97322
7301 * config/arm/arm.c (arm_expand_divmod_libfunc): Pass mode instead of
7302 GET_MODE (op0) or GET_MODE (op1) to emit_library_call_value.
7303
7304 2020-10-08 Aldy Hernandez <aldyh@redhat.com>
7305
7306 PR tree-optimization/97325
7307 * gimple-range.cc (gimple_ranger::range_of_builtin_call): Handle
7308 negative numbers in __builtin_ffs and __builtin_popcount.
7309
7310 2020-10-08 Aldy Hernandez <aldyh@redhat.com>
7311
7312 PR tree-optimization/97315
7313 * range-op.cc (value_range_with_overflow): Change any
7314 non-overflow calculation in which both bounds are
7315 overflow/underflow to be undefined.
7316
7317 2020-10-08 Aldy Hernandez <aldyh@redhat.com>
7318
7319 PR tree-optimization/97315
7320 * gimple-ssa-evrp.c (hybrid_folder::choose_value): Removes the
7321 trap and instead annotates the listing.
7322
7323 2020-10-08 Jakub Jelinek <jakub@redhat.com>
7324
7325 PR sanitizer/97294
7326 * tree-cfg.c (move_block_to_fn): Call notice_special_calls on
7327 call stmts being moved into dest_cfun.
7328 * omp-low.c (lower_rec_input_clauses): Set cfun->calls_alloca when
7329 adding __builtin_alloca_with_align call without gimplification.
7330
7331 2020-10-07 Aldy Hernandez <aldyh@redhat.com>
7332
7333 * common.opt (-fevrp-mode): Rename and move...
7334 * params.opt (--param=evrp-mode): ...here.
7335 * gimple-range.h (DEBUG_RANGE_CACHE): Use param_evrp_mode instead
7336 of flag_evrp_mode.
7337 * gimple-ssa-evrp.c (rvrp_folder): Same.
7338 (hybrid_folder): Same.
7339 (execute_early_vrp): Same.
7340
7341 2020-10-07 Richard Biener <rguenther@suse.de>
7342
7343 PR tree-optimization/97307
7344 * tree-ssa-sink.c (statement_sink_location): Change heuristic
7345 for not skipping stores to look for virtual definitions
7346 rather than uses.
7347
7348 2020-10-07 Andrew MacLeod <amacleod@redhat.com>
7349
7350 * value-range.h (irange_allocator::allocate): Allocate in two hunks
7351 instead of using the variably-sized trailing array approach.
7352
7353 2020-10-07 David Malcolm <dmalcolm@redhat.com>
7354
7355 * doc/invoke.texi (-fdiagnostics-plain-output): Add
7356 -fdiagnostics-path-format=separate-events to list of
7357 options injected by -fdiagnostics-plain-output.
7358 * opts-common.c (decode_cmdline_options_to_array): Likewise.
7359
7360 2020-10-07 Martin Jambor <mjambor@suse.cz>
7361
7362 PR ipa/96394
7363 * ipa-prop.c (update_indirect_edges_after_inlining): Do not add
7364 resolved speculation edges to vector of new direct edges even in
7365 presence of multiple speculative direct edges for a single call.
7366
7367 2020-10-07 Andrew Stubbs <ams@codesourcery.com>
7368
7369 * config/gcn/gcn.md (unspec): Add UNSPEC_ADDPTR.
7370 (addptrdi3): Add SGPR alternative.
7371
7372 2020-10-07 Mark Wielaard <mark@klomp.org>
7373
7374 * dwarf2out.c (add_filepath_AT_string): New function.
7375 (asm_outputs_debug_line_str): Likewise.
7376 (add_filename_attribute): Likewise.
7377 (add_comp_dir_attribute): Call add_filepath_AT_string.
7378 (gen_compile_unit_die): Call add_filename_attribute for name.
7379 (init_sections_and_labels): Init debug_line_str_section when
7380 asm_outputs_debug_line_str return true.
7381 (dwarf2out_early_finish): Remove DW_AT_name and DW_AT_comp_dir
7382 hack and call add_filename_attribute for the remap_debug_filename.
7383
7384 2020-10-07 Jakub Jelinek <jakub@redhat.com>
7385
7386 * configure.ac (HAVE_AS_GDWARF_5_DEBUG_FLAG,
7387 HAVE_AS_WORKING_DWARF_4_FLAG): New tests.
7388 * gcc.c (ASM_DEBUG_DWARF_OPTION): Define.
7389 (ASM_DEBUG_SPEC): Use ASM_DEBUG_DWARF_OPTION instead of
7390 "--gdwarf2". Use %{cond:opt1;:opt2} style.
7391 (ASM_DEBUG_OPTION_DWARF_OPT): Define.
7392 (ASM_DEBUG_OPTION_SPEC): Define.
7393 (asm_debug_option): New variable.
7394 (asm_options): Add "%(asm_debug_option)".
7395 (static_specs): Add asm_debug_option entry.
7396 (static_spec_functions): Add dwarf-version-gt.
7397 (debug_level_greater_than_spec_func): New function.
7398 * config/darwin.h (ASM_DEBUG_OPTION_SPEC): Define.
7399 * config/darwin9.h (ASM_DEBUG_OPTION_SPEC): Redefine.
7400 * config.in: Regenerated.
7401 * configure: Regenerated.
7402
7403 2020-10-07 Jakub Jelinek <jakub@redhat.com>
7404
7405 PR bootstrap/97305
7406 * optc-save-gen.awk: Don't declare mask variable if explicit_mask
7407 array is not present.
7408
7409 2020-10-07 Jakub Jelinek <jakub@redhat.com>
7410
7411 * omp-expand.c (expand_omp_simd): Don't emit MIN_EXPR and PLUS_EXPR
7412 at the end of entry_bb and innermost init_bb, instead force arguments
7413 for MIN_EXPR into temporaries in both cases and jump to a new bb that
7414 performs MIN_EXPR and PLUS_EXPR.
7415
7416 2020-10-07 Tom de Vries <tdevries@suse.de>
7417
7418 * tree-ssa-loop-ch.c (ch_base::copy_headers): Add missing NULL test
7419 for dump_file.
7420
7421 2020-10-06 Andrew MacLeod <amacleod@redhat.com>
7422
7423 * flag-types.h (enum evrp_mode): New enumerated type EVRP_MODE_*.
7424 * common.opt (fevrp-mode): New undocumented flag.
7425 * gimple-ssa-evrp.c: Include gimple-range.h
7426 (class rvrp_folder): EVRP folding using ranger exclusively.
7427 (rvrp_folder::rvrp_folder): New.
7428 (rvrp_folder::~rvrp_folder): New.
7429 (rvrp_folder::value_of_expr): New. Use rangers value_of_expr.
7430 (rvrp_folder::value_on_edge): New. Use rangers value_on_edge.
7431 (rvrp_folder::value_of_Stmt): New. Use rangers value_of_stmt.
7432 (rvrp_folder::fold_stmt): New. Call the simplifier.
7433 (class hybrid_folder): EVRP folding using both engines.
7434 (hybrid_folder::hybrid_folder): New.
7435 (hybrid_folder::~hybrid_folder): New.
7436 (hybrid_folder::fold_stmt): New. Simplify with one engne, then the
7437 other.
7438 (hybrid_folder::value_of_expr): New. Use both value routines.
7439 (hybrid_folder::value_on_edge): New. Use both value routines.
7440 (hybrid_folder::value_of_stmt): New. Use both value routines.
7441 (hybrid_folder::choose_value): New. Choose between range_analzyer and
7442 rangers values.
7443 (execute_early_vrp): Choose a folder based on flag_evrp_mode.
7444 * vr-values.c (simplify_using_ranges::fold_cond): Try range_of_stmt
7445 first to see if it returns a value.
7446 (simplify_using_ranges::simplify_switch_using_ranges): Return true if
7447 any changes were made to the switch.
7448
7449 2020-10-06 Andrew MacLeod <amacleod@redhat.com>
7450
7451 * Makefile.in (OBJS): Add gimple-range*.o.
7452 * gimple-range.h: New file.
7453 * gimple-range.cc: New file.
7454 * gimple-range-cache.h: New file.
7455 * gimple-range-cache.cc: New file.
7456 * gimple-range-edge.h: New file.
7457 * gimple-range-edge.cc: New file.
7458 * gimple-range-gori.h: New file.
7459 * gimple-range-gori.cc: New file.
7460
7461 2020-10-06 Dennis Zhang <dennis.zhang@arm.com>
7462
7463 * config/arm/arm.c (arm_preferred_simd_mode): Enable MVE SIMD modes.
7464
7465 2020-10-06 Tom de Vries <tdevries@suse.de>
7466
7467 PR middle-end/90861
7468 * gimplify.c (gimplify_bind_expr): Handle lookup in
7469 oacc_declare_returns using key with decl-expr.
7470
7471 2020-10-06 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
7472
7473 * config/arm/iterators.md (MVE_types): Move mode iterator from mve.md to
7474 iterators.md.
7475 (MVE_VLD_ST): Likewise.
7476 (MVE_0): Likewise.
7477 (MVE_1): Likewise.
7478 (MVE_3): Likewise.
7479 (MVE_2): Likewise.
7480 (MVE_5): Likewise.
7481 (MVE_6): Likewise.
7482 (MVE_CNVT): Move mode attribute iterator from mve.md to iterators.md.
7483 (MVE_LANES): Likewise.
7484 (MVE_constraint): Likewise.
7485 (MVE_constraint1): Likewise.
7486 (MVE_constraint2): Likewise.
7487 (MVE_constraint3): Likewise.
7488 (MVE_pred): Likewise.
7489 (MVE_pred1): Likewise.
7490 (MVE_pred2): Likewise.
7491 (MVE_pred3): Likewise.
7492 (MVE_B_ELEM): Likewise.
7493 (MVE_H_ELEM): Likewise.
7494 (V_sz_elem1): Likewise.
7495 (V_extr_elem): Likewise.
7496 (earlyclobber_32): Likewise.
7497 (supf): Move int attribute from mve.md to iterators.md.
7498 (mode1): Likewise.
7499 (VCVTQ_TO_F): Move int iterator from mve.md to iterators.md.
7500 (VMVNQ_N): Likewise.
7501 (VREV64Q): Likewise.
7502 (VCVTQ_FROM_F): Likewise.
7503 (VREV16Q): Likewise.
7504 (VCVTAQ): Likewise.
7505 (VMVNQ): Likewise.
7506 (VDUPQ_N): Likewise.
7507 (VCLZQ): Likewise.
7508 (VADDVQ): Likewise.
7509 (VREV32Q): Likewise.
7510 (VMOVLBQ): Likewise.
7511 (VMOVLTQ): Likewise.
7512 (VCVTPQ): Likewise.
7513 (VCVTNQ): Likewise.
7514 (VCVTMQ): Likewise.
7515 (VADDLVQ): Likewise.
7516 (VCTPQ): Likewise.
7517 (VCTPQ_M): Likewise.
7518 (VCVTQ_N_TO_F): Likewise.
7519 (VCREATEQ): Likewise.
7520 (VSHRQ_N): Likewise.
7521 (VCVTQ_N_FROM_F): Likewise.
7522 (VADDLVQ_P): Likewise.
7523 (VCMPNEQ): Likewise.
7524 (VSHLQ): Likewise.
7525 (VABDQ): Likewise.
7526 (VADDQ_N): Likewise.
7527 (VADDVAQ): Likewise.
7528 (VADDVQ_P): Likewise.
7529 (VANDQ): Likewise.
7530 (VBICQ): Likewise.
7531 (VBRSRQ_N): Likewise.
7532 (VCADDQ_ROT270): Likewise.
7533 (VCADDQ_ROT90): Likewise.
7534 (VCMPEQQ): Likewise.
7535 (VCMPEQQ_N): Likewise.
7536 (VCMPNEQ_N): Likewise.
7537 (VEORQ): Likewise.
7538 (VHADDQ): Likewise.
7539 (VHADDQ_N): Likewise.
7540 (VHSUBQ): Likewise.
7541 (VHSUBQ_N): Likewise.
7542 (VMAXQ): Likewise.
7543 (VMAXVQ): Likewise.
7544 (VMINQ): Likewise.
7545 (VMINVQ): Likewise.
7546 (VMLADAVQ): Likewise.
7547 (VMULHQ): Likewise.
7548 (VMULLBQ_INT): Likewise.
7549 (VMULLTQ_INT): Likewise.
7550 (VMULQ): Likewise.
7551 (VMULQ_N): Likewise.
7552 (VORNQ): Likewise.
7553 (VORRQ): Likewise.
7554 (VQADDQ): Likewise.
7555 (VQADDQ_N): Likewise.
7556 (VQRSHLQ): Likewise.
7557 (VQRSHLQ_N): Likewise.
7558 (VQSHLQ): Likewise.
7559 (VQSHLQ_N): Likewise.
7560 (VQSHLQ_R): Likewise.
7561 (VQSUBQ): Likewise.
7562 (VQSUBQ_N): Likewise.
7563 (VRHADDQ): Likewise.
7564 (VRMULHQ): Likewise.
7565 (VRSHLQ): Likewise.
7566 (VRSHLQ_N): Likewise.
7567 (VRSHRQ_N): Likewise.
7568 (VSHLQ_N): Likewise.
7569 (VSHLQ_R): Likewise.
7570 (VSUBQ): Likewise.
7571 (VSUBQ_N): Likewise.
7572 (VADDLVAQ): Likewise.
7573 (VBICQ_N): Likewise.
7574 (VMLALDAVQ): Likewise.
7575 (VMLALDAVXQ): Likewise.
7576 (VMOVNBQ): Likewise.
7577 (VMOVNTQ): Likewise.
7578 (VORRQ_N): Likewise.
7579 (VQMOVNBQ): Likewise.
7580 (VQMOVNTQ): Likewise.
7581 (VSHLLBQ_N): Likewise.
7582 (VSHLLTQ_N): Likewise.
7583 (VRMLALDAVHQ): Likewise.
7584 (VBICQ_M_N): Likewise.
7585 (VCVTAQ_M): Likewise.
7586 (VCVTQ_M_TO_F): Likewise.
7587 (VQRSHRNBQ_N): Likewise.
7588 (VABAVQ): Likewise.
7589 (VSHLCQ): Likewise.
7590 (VRMLALDAVHAQ): Likewise.
7591 (VADDVAQ_P): Likewise.
7592 (VCLZQ_M): Likewise.
7593 (VCMPEQQ_M_N): Likewise.
7594 (VCMPEQQ_M): Likewise.
7595 (VCMPNEQ_M_N): Likewise.
7596 (VCMPNEQ_M): Likewise.
7597 (VDUPQ_M_N): Likewise.
7598 (VMAXVQ_P): Likewise.
7599 (VMINVQ_P): Likewise.
7600 (VMLADAVAQ): Likewise.
7601 (VMLADAVQ_P): Likewise.
7602 (VMLAQ_N): Likewise.
7603 (VMLASQ_N): Likewise.
7604 (VMVNQ_M): Likewise.
7605 (VPSELQ): Likewise.
7606 (VQDMLAHQ_N): Likewise.
7607 (VQRDMLAHQ_N): Likewise.
7608 (VQRDMLASHQ_N): Likewise.
7609 (VQRSHLQ_M_N): Likewise.
7610 (VQSHLQ_M_R): Likewise.
7611 (VREV64Q_M): Likewise.
7612 (VRSHLQ_M_N): Likewise.
7613 (VSHLQ_M_R): Likewise.
7614 (VSLIQ_N): Likewise.
7615 (VSRIQ_N): Likewise.
7616 (VMLALDAVQ_P): Likewise.
7617 (VQMOVNBQ_M): Likewise.
7618 (VMOVLTQ_M): Likewise.
7619 (VMOVNBQ_M): Likewise.
7620 (VRSHRNTQ_N): Likewise.
7621 (VORRQ_M_N): Likewise.
7622 (VREV32Q_M): Likewise.
7623 (VREV16Q_M): Likewise.
7624 (VQRSHRNTQ_N): Likewise.
7625 (VMOVNTQ_M): Likewise.
7626 (VMOVLBQ_M): Likewise.
7627 (VMLALDAVAQ): Likewise.
7628 (VQSHRNBQ_N): Likewise.
7629 (VSHRNBQ_N): Likewise.
7630 (VRSHRNBQ_N): Likewise.
7631 (VMLALDAVXQ_P): Likewise.
7632 (VQMOVNTQ_M): Likewise.
7633 (VMVNQ_M_N): Likewise.
7634 (VQSHRNTQ_N): Likewise.
7635 (VMLALDAVAXQ): Likewise.
7636 (VSHRNTQ_N): Likewise.
7637 (VCVTMQ_M): Likewise.
7638 (VCVTNQ_M): Likewise.
7639 (VCVTPQ_M): Likewise.
7640 (VCVTQ_M_N_FROM_F): Likewise.
7641 (VCVTQ_M_FROM_F): Likewise.
7642 (VRMLALDAVHQ_P): Likewise.
7643 (VADDLVAQ_P): Likewise.
7644 (VABAVQ_P): Likewise.
7645 (VSHLQ_M): Likewise.
7646 (VSRIQ_M_N): Likewise.
7647 (VSUBQ_M): Likewise.
7648 (VCVTQ_M_N_TO_F): Likewise.
7649 (VHSUBQ_M): Likewise.
7650 (VSLIQ_M_N): Likewise.
7651 (VRSHLQ_M): Likewise.
7652 (VMINQ_M): Likewise.
7653 (VMULLBQ_INT_M): Likewise.
7654 (VMULHQ_M): Likewise.
7655 (VMULQ_M): Likewise.
7656 (VHSUBQ_M_N): Likewise.
7657 (VHADDQ_M_N): Likewise.
7658 (VORRQ_M): Likewise.
7659 (VRMULHQ_M): Likewise.
7660 (VQADDQ_M): Likewise.
7661 (VRSHRQ_M_N): Likewise.
7662 (VQSUBQ_M_N): Likewise.
7663 (VADDQ_M): Likewise.
7664 (VORNQ_M): Likewise.
7665 (VRHADDQ_M): Likewise.
7666 (VQSHLQ_M): Likewise.
7667 (VANDQ_M): Likewise.
7668 (VBICQ_M): Likewise.
7669 (VSHLQ_M_N): Likewise.
7670 (VCADDQ_ROT270_M): Likewise.
7671 (VQRSHLQ_M): Likewise.
7672 (VQADDQ_M_N): Likewise.
7673 (VADDQ_M_N): Likewise.
7674 (VMAXQ_M): Likewise.
7675 (VQSUBQ_M): Likewise.
7676 (VMLASQ_M_N): Likewise.
7677 (VMLADAVAQ_P): Likewise.
7678 (VBRSRQ_M_N): Likewise.
7679 (VMULQ_M_N): Likewise.
7680 (VCADDQ_ROT90_M): Likewise.
7681 (VMULLTQ_INT_M): Likewise.
7682 (VEORQ_M): Likewise.
7683 (VSHRQ_M_N): Likewise.
7684 (VSUBQ_M_N): Likewise.
7685 (VHADDQ_M): Likewise.
7686 (VABDQ_M): Likewise.
7687 (VMLAQ_M_N): Likewise.
7688 (VQSHLQ_M_N): Likewise.
7689 (VMLALDAVAQ_P): Likewise.
7690 (VMLALDAVAXQ_P): Likewise.
7691 (VQRSHRNBQ_M_N): Likewise.
7692 (VQRSHRNTQ_M_N): Likewise.
7693 (VQSHRNBQ_M_N): Likewise.
7694 (VQSHRNTQ_M_N): Likewise.
7695 (VRSHRNBQ_M_N): Likewise.
7696 (VRSHRNTQ_M_N): Likewise.
7697 (VSHLLBQ_M_N): Likewise.
7698 (VSHLLTQ_M_N): Likewise.
7699 (VSHRNBQ_M_N): Likewise.
7700 (VSHRNTQ_M_N): Likewise.
7701 (VSTRWSBQ): Likewise.
7702 (VSTRBSOQ): Likewise.
7703 (VSTRBQ): Likewise.
7704 (VLDRBGOQ): Likewise.
7705 (VLDRBQ): Likewise.
7706 (VLDRWGBQ): Likewise.
7707 (VLD1Q): Likewise.
7708 (VLDRHGOQ): Likewise.
7709 (VLDRHGSOQ): Likewise.
7710 (VLDRHQ): Likewise.
7711 (VLDRWQ): Likewise.
7712 (VLDRDGBQ): Likewise.
7713 (VLDRDGOQ): Likewise.
7714 (VLDRDGSOQ): Likewise.
7715 (VLDRWGOQ): Likewise.
7716 (VLDRWGSOQ): Likewise.
7717 (VST1Q): Likewise.
7718 (VSTRHSOQ): Likewise.
7719 (VSTRHSSOQ): Likewise.
7720 (VSTRHQ): Likewise.
7721 (VSTRWQ): Likewise.
7722 (VSTRDSBQ): Likewise.
7723 (VSTRDSOQ): Likewise.
7724 (VSTRDSSOQ): Likewise.
7725 (VSTRWSOQ): Likewise.
7726 (VSTRWSSOQ): Likewise.
7727 (VSTRWSBWBQ): Likewise.
7728 (VLDRWGBWBQ): Likewise.
7729 (VSTRDSBWBQ): Likewise.
7730 (VLDRDGBWBQ): Likewise.
7731 (VADCIQ): Likewise.
7732 (VADCIQ_M): Likewise.
7733 (VSBCQ): Likewise.
7734 (VSBCQ_M): Likewise.
7735 (VSBCIQ): Likewise.
7736 (VSBCIQ_M): Likewise.
7737 (VADCQ): Likewise.
7738 (VADCQ_M): Likewise.
7739 (UQRSHLLQ): Likewise.
7740 (SQRSHRLQ): Likewise.
7741 (VSHLCQ_M): Likewise.
7742 * config/arm/mve.md (MVE_types): Move mode iterator to iterators.md from mve.md.
7743 (MVE_VLD_ST): Likewise.
7744 (MVE_0): Likewise.
7745 (MVE_1): Likewise.
7746 (MVE_3): Likewise.
7747 (MVE_2): Likewise.
7748 (MVE_5): Likewise.
7749 (MVE_6): Likewise.
7750 (MVE_CNVT): Move mode attribute iterator to iterators.md from mve.md.
7751 (MVE_LANES): Likewise.
7752 (MVE_constraint): Likewise.
7753 (MVE_constraint1): Likewise.
7754 (MVE_constraint2): Likewise.
7755 (MVE_constraint3): Likewise.
7756 (MVE_pred): Likewise.
7757 (MVE_pred1): Likewise.
7758 (MVE_pred2): Likewise.
7759 (MVE_pred3): Likewise.
7760 (MVE_B_ELEM): Likewise.
7761 (MVE_H_ELEM): Likewise.
7762 (V_sz_elem1): Likewise.
7763 (V_extr_elem): Likewise.
7764 (earlyclobber_32): Likewise.
7765 (supf): Move int attribute to iterators.md from mve.md.
7766 (mode1): Likewise.
7767 (VCVTQ_TO_F): Move int iterator to iterators.md from mve.md.
7768 (VMVNQ_N): Likewise.
7769 (VREV64Q): Likewise.
7770 (VCVTQ_FROM_F): Likewise.
7771 (VREV16Q): Likewise.
7772 (VCVTAQ): Likewise.
7773 (VMVNQ): Likewise.
7774 (VDUPQ_N): Likewise.
7775 (VCLZQ): Likewise.
7776 (VADDVQ): Likewise.
7777 (VREV32Q): Likewise.
7778 (VMOVLBQ): Likewise.
7779 (VMOVLTQ): Likewise.
7780 (VCVTPQ): Likewise.
7781 (VCVTNQ): Likewise.
7782 (VCVTMQ): Likewise.
7783 (VADDLVQ): Likewise.
7784 (VCTPQ): Likewise.
7785 (VCTPQ_M): Likewise.
7786 (VCVTQ_N_TO_F): Likewise.
7787 (VCREATEQ): Likewise.
7788 (VSHRQ_N): Likewise.
7789 (VCVTQ_N_FROM_F): Likewise.
7790 (VADDLVQ_P): Likewise.
7791 (VCMPNEQ): Likewise.
7792 (VSHLQ): Likewise.
7793 (VABDQ): Likewise.
7794 (VADDQ_N): Likewise.
7795 (VADDVAQ): Likewise.
7796 (VADDVQ_P): Likewise.
7797 (VANDQ): Likewise.
7798 (VBICQ): Likewise.
7799 (VBRSRQ_N): Likewise.
7800 (VCADDQ_ROT270): Likewise.
7801 (VCADDQ_ROT90): Likewise.
7802 (VCMPEQQ): Likewise.
7803 (VCMPEQQ_N): Likewise.
7804 (VCMPNEQ_N): Likewise.
7805 (VEORQ): Likewise.
7806 (VHADDQ): Likewise.
7807 (VHADDQ_N): Likewise.
7808 (VHSUBQ): Likewise.
7809 (VHSUBQ_N): Likewise.
7810 (VMAXQ): Likewise.
7811 (VMAXVQ): Likewise.
7812 (VMINQ): Likewise.
7813 (VMINVQ): Likewise.
7814 (VMLADAVQ): Likewise.
7815 (VMULHQ): Likewise.
7816 (VMULLBQ_INT): Likewise.
7817 (VMULLTQ_INT): Likewise.
7818 (VMULQ): Likewise.
7819 (VMULQ_N): Likewise.
7820 (VORNQ): Likewise.
7821 (VORRQ): Likewise.
7822 (VQADDQ): Likewise.
7823 (VQADDQ_N): Likewise.
7824 (VQRSHLQ): Likewise.
7825 (VQRSHLQ_N): Likewise.
7826 (VQSHLQ): Likewise.
7827 (VQSHLQ_N): Likewise.
7828 (VQSHLQ_R): Likewise.
7829 (VQSUBQ): Likewise.
7830 (VQSUBQ_N): Likewise.
7831 (VRHADDQ): Likewise.
7832 (VRMULHQ): Likewise.
7833 (VRSHLQ): Likewise.
7834 (VRSHLQ_N): Likewise.
7835 (VRSHRQ_N): Likewise.
7836 (VSHLQ_N): Likewise.
7837 (VSHLQ_R): Likewise.
7838 (VSUBQ): Likewise.
7839 (VSUBQ_N): Likewise.
7840 (VADDLVAQ): Likewise.
7841 (VBICQ_N): Likewise.
7842 (VMLALDAVQ): Likewise.
7843 (VMLALDAVXQ): Likewise.
7844 (VMOVNBQ): Likewise.
7845 (VMOVNTQ): Likewise.
7846 (VORRQ_N): Likewise.
7847 (VQMOVNBQ): Likewise.
7848 (VQMOVNTQ): Likewise.
7849 (VSHLLBQ_N): Likewise.
7850 (VSHLLTQ_N): Likewise.
7851 (VRMLALDAVHQ): Likewise.
7852 (VBICQ_M_N): Likewise.
7853 (VCVTAQ_M): Likewise.
7854 (VCVTQ_M_TO_F): Likewise.
7855 (VQRSHRNBQ_N): Likewise.
7856 (VABAVQ): Likewise.
7857 (VSHLCQ): Likewise.
7858 (VRMLALDAVHAQ): Likewise.
7859 (VADDVAQ_P): Likewise.
7860 (VCLZQ_M): Likewise.
7861 (VCMPEQQ_M_N): Likewise.
7862 (VCMPEQQ_M): Likewise.
7863 (VCMPNEQ_M_N): Likewise.
7864 (VCMPNEQ_M): Likewise.
7865 (VDUPQ_M_N): Likewise.
7866 (VMAXVQ_P): Likewise.
7867 (VMINVQ_P): Likewise.
7868 (VMLADAVAQ): Likewise.
7869 (VMLADAVQ_P): Likewise.
7870 (VMLAQ_N): Likewise.
7871 (VMLASQ_N): Likewise.
7872 (VMVNQ_M): Likewise.
7873 (VPSELQ): Likewise.
7874 (VQDMLAHQ_N): Likewise.
7875 (VQRDMLAHQ_N): Likewise.
7876 (VQRDMLASHQ_N): Likewise.
7877 (VQRSHLQ_M_N): Likewise.
7878 (VQSHLQ_M_R): Likewise.
7879 (VREV64Q_M): Likewise.
7880 (VRSHLQ_M_N): Likewise.
7881 (VSHLQ_M_R): Likewise.
7882 (VSLIQ_N): Likewise.
7883 (VSRIQ_N): Likewise.
7884 (VMLALDAVQ_P): Likewise.
7885 (VQMOVNBQ_M): Likewise.
7886 (VMOVLTQ_M): Likewise.
7887 (VMOVNBQ_M): Likewise.
7888 (VRSHRNTQ_N): Likewise.
7889 (VORRQ_M_N): Likewise.
7890 (VREV32Q_M): Likewise.
7891 (VREV16Q_M): Likewise.
7892 (VQRSHRNTQ_N): Likewise.
7893 (VMOVNTQ_M): Likewise.
7894 (VMOVLBQ_M): Likewise.
7895 (VMLALDAVAQ): Likewise.
7896 (VQSHRNBQ_N): Likewise.
7897 (VSHRNBQ_N): Likewise.
7898 (VRSHRNBQ_N): Likewise.
7899 (VMLALDAVXQ_P): Likewise.
7900 (VQMOVNTQ_M): Likewise.
7901 (VMVNQ_M_N): Likewise.
7902 (VQSHRNTQ_N): Likewise.
7903 (VMLALDAVAXQ): Likewise.
7904 (VSHRNTQ_N): Likewise.
7905 (VCVTMQ_M): Likewise.
7906 (VCVTNQ_M): Likewise.
7907 (VCVTPQ_M): Likewise.
7908 (VCVTQ_M_N_FROM_F): Likewise.
7909 (VCVTQ_M_FROM_F): Likewise.
7910 (VRMLALDAVHQ_P): Likewise.
7911 (VADDLVAQ_P): Likewise.
7912 (VABAVQ_P): Likewise.
7913 (VSHLQ_M): Likewise.
7914 (VSRIQ_M_N): Likewise.
7915 (VSUBQ_M): Likewise.
7916 (VCVTQ_M_N_TO_F): Likewise.
7917 (VHSUBQ_M): Likewise.
7918 (VSLIQ_M_N): Likewise.
7919 (VRSHLQ_M): Likewise.
7920 (VMINQ_M): Likewise.
7921 (VMULLBQ_INT_M): Likewise.
7922 (VMULHQ_M): Likewise.
7923 (VMULQ_M): Likewise.
7924 (VHSUBQ_M_N): Likewise.
7925 (VHADDQ_M_N): Likewise.
7926 (VORRQ_M): Likewise.
7927 (VRMULHQ_M): Likewise.
7928 (VQADDQ_M): Likewise.
7929 (VRSHRQ_M_N): Likewise.
7930 (VQSUBQ_M_N): Likewise.
7931 (VADDQ_M): Likewise.
7932 (VORNQ_M): Likewise.
7933 (VRHADDQ_M): Likewise.
7934 (VQSHLQ_M): Likewise.
7935 (VANDQ_M): Likewise.
7936 (VBICQ_M): Likewise.
7937 (VSHLQ_M_N): Likewise.
7938 (VCADDQ_ROT270_M): Likewise.
7939 (VQRSHLQ_M): Likewise.
7940 (VQADDQ_M_N): Likewise.
7941 (VADDQ_M_N): Likewise.
7942 (VMAXQ_M): Likewise.
7943 (VQSUBQ_M): Likewise.
7944 (VMLASQ_M_N): Likewise.
7945 (VMLADAVAQ_P): Likewise.
7946 (VBRSRQ_M_N): Likewise.
7947 (VMULQ_M_N): Likewise.
7948 (VCADDQ_ROT90_M): Likewise.
7949 (VMULLTQ_INT_M): Likewise.
7950 (VEORQ_M): Likewise.
7951 (VSHRQ_M_N): Likewise.
7952 (VSUBQ_M_N): Likewise.
7953 (VHADDQ_M): Likewise.
7954 (VABDQ_M): Likewise.
7955 (VMLAQ_M_N): Likewise.
7956 (VQSHLQ_M_N): Likewise.
7957 (VMLALDAVAQ_P): Likewise.
7958 (VMLALDAVAXQ_P): Likewise.
7959 (VQRSHRNBQ_M_N): Likewise.
7960 (VQRSHRNTQ_M_N): Likewise.
7961 (VQSHRNBQ_M_N): Likewise.
7962 (VQSHRNTQ_M_N): Likewise.
7963 (VRSHRNBQ_M_N): Likewise.
7964 (VRSHRNTQ_M_N): Likewise.
7965 (VSHLLBQ_M_N): Likewise.
7966 (VSHLLTQ_M_N): Likewise.
7967 (VSHRNBQ_M_N): Likewise.
7968 (VSHRNTQ_M_N): Likewise.
7969 (VSTRWSBQ): Likewise.
7970 (VSTRBSOQ): Likewise.
7971 (VSTRBQ): Likewise.
7972 (VLDRBGOQ): Likewise.
7973 (VLDRBQ): Likewise.
7974 (VLDRWGBQ): Likewise.
7975 (VLD1Q): Likewise.
7976 (VLDRHGOQ): Likewise.
7977 (VLDRHGSOQ): Likewise.
7978 (VLDRHQ): Likewise.
7979 (VLDRWQ): Likewise.
7980 (VLDRDGBQ): Likewise.
7981 (VLDRDGOQ): Likewise.
7982 (VLDRDGSOQ): Likewise.
7983 (VLDRWGOQ): Likewise.
7984 (VLDRWGSOQ): Likewise.
7985 (VST1Q): Likewise.
7986 (VSTRHSOQ): Likewise.
7987 (VSTRHSSOQ): Likewise.
7988 (VSTRHQ): Likewise.
7989 (VSTRWQ): Likewise.
7990 (VSTRDSBQ): Likewise.
7991 (VSTRDSOQ): Likewise.
7992 (VSTRDSSOQ): Likewise.
7993 (VSTRWSOQ): Likewise.
7994 (VSTRWSSOQ): Likewise.
7995 (VSTRWSBWBQ): Likewise.
7996 (VLDRWGBWBQ): Likewise.
7997 (VSTRDSBWBQ): Likewise.
7998 (VLDRDGBWBQ): Likewise.
7999 (VADCIQ): Likewise.
8000 (VADCIQ_M): Likewise.
8001 (VSBCQ): Likewise.
8002 (VSBCQ_M): Likewise.
8003 (VSBCIQ): Likewise.
8004 (VSBCIQ_M): Likewise.
8005 (VADCQ): Likewise.
8006 (VADCQ_M): Likewise.
8007 (UQRSHLLQ): Likewise.
8008 (SQRSHRLQ): Likewise.
8009 (VSHLCQ_M): Likewise.
8010 (define_c_enum "unspec"): Move MVE enumerator to unspecs.md from mve.md.
8011 * config/arm/unspecs.md (define_c_enum "unspec"): Move MVE enumerator from
8012 mve.md to unspecs.md.
8013
8014 2020-10-06 Martin Liska <mliska@suse.cz>
8015
8016 * common.opt: Remove -fdbg-cnt-list from deferred options.
8017 * dbgcnt.c (dbg_cnt_set_limit_by_index): Make a copy
8018 to original_limits.
8019 (dbg_cnt_list_all_counters): Print also current counter value
8020 and print to stderr.
8021 * opts-global.c (handle_common_deferred_options): Do not handle
8022 -fdbg-cnt-list.
8023 * opts.c (common_handle_option): Likewise.
8024 * toplev.c (finalize): Handle it after compilation here.
8025
8026 2020-10-06 Martin Liska <mliska@suse.cz>
8027
8028 * dbgcnt.c (dbg_cnt): Report also upper limit.
8029
8030 2020-10-06 Tom de Vries <tdevries@suse.de>
8031
8032 * tracer.c (count_insns): Rename to ...
8033 (analyze_bb): ... this.
8034 (cache_can_duplicate_bb_p, cached_can_duplicate_bb_p): New function.
8035 (ignore_bb_p): Use cached_can_duplicate_bb_p.
8036 (tail_duplicate): Call cache_can_duplicate_bb_p.
8037
8038 2020-10-06 Tom de Vries <tdevries@suse.de>
8039
8040 * tracer.c (can_duplicate_insn_p, can_duplicate_bb_no_insn_iter_p)
8041 (can_duplicate_bb_p): New function, factored out of ...
8042 (ignore_bb_p): ... here.
8043
8044 2020-10-06 Jakub Jelinek <jakub@redhat.com>
8045
8046 PR rtl-optimization/97282
8047 * tree-ssa-math-opts.c (divmod_candidate_p): Don't return false for
8048 constant op2 if it is not a power of two and the type has precision
8049 larger than HOST_BITS_PER_WIDE_INT or BITS_PER_WORD.
8050 * internal-fn.c (contains_call_div_mod): New function.
8051 (expand_DIVMOD): If last argument is a constant, try to expand it as
8052 TRUNC_DIV_EXPR followed by TRUNC_MOD_EXPR, but if the sequence
8053 contains any calls or {,U}{DIV,MOD} rtxes, throw it away and use
8054 divmod optab or divmod libfunc.
8055
8056 2020-10-06 Aldy Hernandez <aldyh@redhat.com>
8057
8058 * value-range.h (irange_allocator::allocate): Increase
8059 newir storage by one.
8060
8061 2020-10-06 Jakub Jelinek <jakub@redhat.com>
8062
8063 PR middle-end/97289
8064 * omp-offload.c (omp_discover_declare_target_tgt_fn_r): Only follow
8065 node->alias_target if it is a FUNCTION_DECL.
8066
8067 2020-10-06 Joe Ramsay <joe.ramsay@arm.com>
8068
8069 * config/arm/arm-cpus.in:
8070 (ALL_FPU_INTERNAL): Remove vfp_base.
8071 (VFPv2): Remove vfp_base.
8072 (MVE): Remove vfp_base.
8073 (vfp_base): Redefine as implied bit dependent on MVE or FP
8074 (cortex-m55): Add flags to disable MVE, MVE FP, FP and DSP extensions.
8075 * config/arm/arm.c (arm_configure_build_target): Add implied bits to ISA.
8076 * config/arm/parsecpu.awk:
8077 (gen_isa): Print implied bits and their dependencies to ISA header.
8078 (gen_data): Add parsing for implied feature bits.
8079
8080 2020-10-06 Andreas Krebbel <krebbel@linux.ibm.com>
8081
8082 * doc/invoke.texi: Add z15/arch13 to the list of documented
8083 -march/-mtune options.
8084
8085 2020-10-05 Aldy Hernandez <aldyh@redhat.com>
8086
8087 * value-range.cc (irange::legacy_intersect): Only handle
8088 legacy ranges.
8089 (irange::legacy_union): Same.
8090 (irange::union_): When unioning legacy with non-legacy,
8091 first convert to legacy and do everything in legacy mode.
8092 (irange::intersect): Same, but for intersect.
8093 * range-op.cc (range_tests): Adjust for above changes.
8094
8095 2020-10-05 Aldy Hernandez <aldyh@redhat.com>
8096
8097 * range-op.cc (operator_div::wi_fold): Return varying for
8098 division by zero.
8099 (class operator_rshift): Move class up.
8100 (operator_abs::wi_fold): Return [-MIN,-MIN] for ABS([-MIN,-MIN]).
8101 (operator_tests): Adjust tests.
8102
8103 2020-10-05 Tom de Vries <tdevries@suse.de>
8104
8105 * tracer.c (ignore_bb_p): Ignore GOMP_SIMT_XCHG_*.
8106
8107 2020-10-05 Alex Coplan <alex.coplan@arm.com>
8108
8109 * config/arm/arm-cpus.in (neoverse-v1): Add missing vendor and
8110 part numbers.
8111
8112 2020-10-05 Tom de Vries <tdevries@suse.de>
8113
8114 * tracer.c (ignore_bb_p): Remove incorrect suggestion.
8115
8116 2020-10-05 Jakub Jelinek <jakub@redhat.com>
8117
8118 * opth-gen.awk: Don't emit explicit_mask array if n_target_explicit
8119 is equal to n_target_explicit_mask.
8120 * optc-save-gen.awk: Compute has_target_explicit_mask and if false,
8121 don't emit code iterating over explicit_mask array elements. Stream
8122 also explicit_mask_* target members.
8123
8124 2020-10-05 Jakub Jelinek <jakub@redhat.com>
8125
8126 * gimple-ssa-store-merging.c
8127 (imm_store_chain_info::output_merged_store): Use ~0U instead of ~0 in
8128 unsigned int array initializer.
8129
8130 2020-10-05 Tom de Vries <tdevries@suse.de>
8131
8132 PR fortran/95654
8133 * tracer.c (ignore_bb_p): Ignore GOMP_SIMT_ENTER_ALLOC,
8134 GOMP_SIMT_VOTE_ANY and GOMP_SIMT_EXIT.
8135
8136 2020-10-03 Jakub Jelinek <jakub@redhat.com>
8137
8138 * opth-gen.awk: For variables referenced in Mask and InverseMask,
8139 don't use the explicit_mask bitmask array, but add separate
8140 explicit_mask_* members with the same types as the variables.
8141 * optc-save-gen.awk: Save, restore, compare and hash the separate
8142 explicit_mask_* members.
8143
8144 2020-10-03 Jan Hubicka <hubicka@ucw.cz>
8145
8146 * ipa-modref-tree.c (test_insert_search_collapse): Update andling
8147 of accesses.
8148 (test_merge): Likewise.
8149 * ipa-modref-tree.h (struct modref_access_node): Add offset, size,
8150 max_size, parm_offset and parm_offset_known.
8151 (modref_access_node::useful_p): Constify.
8152 (modref_access_node::range_info_useful_p): New predicate.
8153 (modref_access_node::operator==): New.
8154 (struct modref_parm_map): New structure.
8155 (modref_tree::merge): Update for racking parameters)
8156 * ipa-modref.c (dump_access): Dump new fields.
8157 (get_access): Fill in new fields.
8158 (merge_call_side_effects): Update handling of parm map.
8159 (write_modref_records): Stream new fields.
8160 (read_modref_records): Stream new fields.
8161 (compute_parm_map): Update for new parm map.
8162 (ipa_merge_modref_summary_after_inlining): Update.
8163 (modref_propagate_in_scc): Update.
8164 * tree-ssa-alias.c (modref_may_conflict): Handle known ranges.
8165
8166 2020-10-03 H.J. Lu <hjl.tools@gmail.com>
8167
8168 PR other/97280
8169 * doc/extend.texi: Replace roudnevenl with roundevenl
8170
8171 2020-10-02 David Edelsohn <dje.gcc@gmail.com>
8172 Andrew MacLeod <amacleod@redhat.com>
8173
8174 * config/rs6000/rs6000.c: Include ssa.h. Reorder some headers.
8175 * config/rs6000/rs6000-call.c: Same.
8176
8177 2020-10-02 Martin Jambor <mjambor@suse.cz>
8178
8179 * params.opt (ipa-cp-large-unit-insns): New parameter.
8180 * ipa-cp.c (get_max_overall_size): Use the new parameter.
8181
8182 2020-10-02 Martin Jambor <mjambor@suse.cz>
8183
8184 * ipa-cp.c (estimate_local_effects): Add overeall_size to dumped
8185 string.
8186 (decide_about_value): Add dumping new overall_size.
8187
8188 2020-10-02 Martin Jambor <mjambor@suse.cz>
8189
8190 * ipa-fnsummary.h (ipa_freqcounting_predicate): New type.
8191 (ipa_fn_summary): Change the type of loop_iterations and loop_strides
8192 to vectors of ipa_freqcounting_predicate.
8193 (ipa_fn_summary::ipa_fn_summary): Construct the new vectors.
8194 (ipa_call_estimates): New fields loops_with_known_iterations and
8195 loops_with_known_strides.
8196 * ipa-cp.c (hint_time_bonus): Multiply param_ipa_cp_loop_hint_bonus
8197 with the expected frequencies of loops with known iteration count or
8198 stride.
8199 * ipa-fnsummary.c (add_freqcounting_predicate): New function.
8200 (ipa_fn_summary::~ipa_fn_summary): Release the new vectors instead of
8201 just two predicates.
8202 (remap_hint_predicate_after_duplication): Replace with function
8203 remap_freqcounting_preds_after_dup.
8204 (ipa_fn_summary_t::duplicate): Use it or duplicate new vectors.
8205 (ipa_dump_fn_summary): Dump the new vectors.
8206 (analyze_function_body): Compute the loop property vectors.
8207 (ipa_call_context::estimate_size_and_time): Calculate also
8208 loops_with_known_iterations and loops_with_known_strides. Adjusted
8209 dumping accordinly.
8210 (remap_hint_predicate): Replace with function
8211 remap_freqcounting_predicate.
8212 (ipa_merge_fn_summary_after_inlining): Use it.
8213 (inline_read_section): Stream loopcounting vectors instead of two
8214 simple predicates.
8215 (ipa_fn_summary_write): Likewise.
8216 * params.opt (ipa-max-loop-predicates): New parameter.
8217 * doc/invoke.texi (ipa-max-loop-predicates): Document new param.
8218
8219 2020-10-02 Martin Jambor <mjambor@suse.cz>
8220
8221 * ipa-inline-analysis.c (do_estimate_edge_time): Adjusted to use
8222 ipa_call_estimates.
8223 (do_estimate_edge_size): Likewise.
8224 (do_estimate_edge_hints): Likewise.
8225 * ipa-fnsummary.h (struct ipa_call_estimates): New type.
8226 (ipa_call_context::estimate_size_and_time): Adjusted declaration.
8227 (estimate_ipcp_clone_size_and_time): Likewise.
8228 * ipa-cp.c (hint_time_bonus): Changed the type of the second argument
8229 to ipa_call_estimates.
8230 (perform_estimation_of_a_value): Adjusted to use ipa_call_estimates.
8231 (estimate_local_effects): Likewise.
8232 * ipa-fnsummary.c (ipa_call_context::estimate_size_and_time): Adjusted
8233 to return estimates in a single ipa_call_estimates parameter.
8234 (estimate_ipcp_clone_size_and_time): Likewise.
8235
8236 2020-10-02 Martin Jambor <mjambor@suse.cz>
8237
8238 * ipa-fnsummary.h (ipa_cached_call_context): New forward declaration
8239 and class.
8240 (class ipa_call_context): Make friend ipa_cached_call_context. Moved
8241 methods duplicate_from and release to it too.
8242 * ipa-fnsummary.c (ipa_call_context::duplicate_from): Moved to class
8243 ipa_cached_call_context.
8244 (ipa_call_context::release): Likewise, removed the parameter.
8245 * ipa-inline-analysis.c (node_context_cache_entry): Change the type of
8246 ctx to ipa_cached_call_context.
8247 (do_estimate_edge_time): Remove parameter from the call to
8248 ipa_cached_call_context::release.
8249
8250 2020-10-02 Martin Jambor <mjambor@suse.cz>
8251
8252 * ipa-prop.h (ipa_auto_call_arg_values): New type.
8253 (class ipa_call_arg_values): Likewise.
8254 (ipa_get_indirect_edge_target): Replaced vector arguments with
8255 ipa_call_arg_values in declaration. Added an overload for
8256 ipa_auto_call_arg_values.
8257 * ipa-fnsummary.h (ipa_call_context): Removed members m_known_vals,
8258 m_known_contexts, m_known_aggs, duplicate_from, release and equal_to,
8259 new members m_avals, store_to_cache and equivalent_to_p. Adjusted
8260 construcotr arguments.
8261 (estimate_ipcp_clone_size_and_time): Replaced vector arguments
8262 with ipa_auto_call_arg_values in declaration.
8263 (evaluate_properties_for_edge): Likewise.
8264 * ipa-cp.c (ipa_get_indirect_edge_target): Adjusted to work on
8265 ipa_call_arg_values rather than on separate vectors. Added an
8266 overload for ipa_auto_call_arg_values.
8267 (devirtualization_time_bonus): Adjusted to work on
8268 ipa_auto_call_arg_values rather than on separate vectors.
8269 (gather_context_independent_values): Adjusted to work on
8270 ipa_auto_call_arg_values rather than on separate vectors.
8271 (perform_estimation_of_a_value): Likewise.
8272 (estimate_local_effects): Likewise.
8273 (modify_known_vectors_with_val): Adjusted both variants to work on
8274 ipa_auto_call_arg_values and rename them to
8275 copy_known_vectors_add_val.
8276 (decide_about_value): Adjusted to work on ipa_call_arg_values rather
8277 than on separate vectors.
8278 (decide_whether_version_node): Likewise.
8279 * ipa-fnsummary.c (evaluate_conditions_for_known_args): Likewise.
8280 (evaluate_properties_for_edge): Likewise.
8281 (ipa_fn_summary_t::duplicate): Likewise.
8282 (estimate_edge_devirt_benefit): Adjusted to work on
8283 ipa_call_arg_values rather than on separate vectors.
8284 (estimate_edge_size_and_time): Likewise.
8285 (estimate_calls_size_and_time_1): Likewise.
8286 (summarize_calls_size_and_time): Adjusted calls to
8287 estimate_edge_size_and_time.
8288 (estimate_calls_size_and_time): Adjusted to work on
8289 ipa_call_arg_values rather than on separate vectors.
8290 (ipa_call_context::ipa_call_context): Construct from a pointer to
8291 ipa_auto_call_arg_values instead of inividual vectors.
8292 (ipa_call_context::duplicate_from): Adjusted to access vectors within
8293 m_avals.
8294 (ipa_call_context::release): Likewise.
8295 (ipa_call_context::equal_to): Likewise.
8296 (ipa_call_context::estimate_size_and_time): Adjusted to work on
8297 ipa_call_arg_values rather than on separate vectors.
8298 (estimate_ipcp_clone_size_and_time): Adjusted to work with
8299 ipa_auto_call_arg_values rather than on separate vectors.
8300 (ipa_merge_fn_summary_after_inlining): Likewise. Adjusted call to
8301 estimate_edge_size_and_time.
8302 (ipa_update_overall_fn_summary): Adjusted call to
8303 estimate_edge_size_and_time.
8304 * ipa-inline-analysis.c (do_estimate_edge_time): Adjusted to work with
8305 ipa_auto_call_arg_values rather than with separate vectors.
8306 (do_estimate_edge_size): Likewise.
8307 (do_estimate_edge_hints): Likewise.
8308 * ipa-prop.c (ipa_auto_call_arg_values::~ipa_auto_call_arg_values):
8309 New destructor.
8310
8311 2020-10-02 Joe Ramsay <joe.ramsay@arm.com>
8312
8313 * config/arm/arm_mve.h (__arm_vmaxnmavq): Remove coercion of scalar
8314 argument.
8315 (__arm_vmaxnmvq): Likewise.
8316 (__arm_vminnmavq): Likewise.
8317 (__arm_vminnmvq): Likewise.
8318 (__arm_vmaxnmavq_p): Likewise.
8319 (__arm_vmaxnmvq_p): Likewise (and delete duplicate definition).
8320 (__arm_vminnmavq_p): Likewise.
8321 (__arm_vminnmvq_p): Likewise.
8322 (__arm_vmaxavq): Likewise.
8323 (__arm_vmaxavq_p): Likewise.
8324 (__arm_vmaxvq): Likewise.
8325 (__arm_vmaxvq_p): Likewise.
8326 (__arm_vminavq): Likewise.
8327 (__arm_vminavq_p): Likewise.
8328 (__arm_vminvq): Likewise.
8329 (__arm_vminvq_p): Likewise.
8330
8331 2020-10-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8332
8333 * config/aarch64/aarch64.c (neoversev1_tunings): Define.
8334 * config/aarch64/aarch64-cores.def (zeus): Use it.
8335 (neoverse-v1): Likewise.
8336
8337 2020-10-02 Jan Hubicka <hubicka@ucw.cz>
8338
8339 * attr-fnspec.h: Update documentation.
8340 (attr_fnsec::return_desc_size): Set to 2
8341 (attr_fnsec::arg_desc_size): Set to 2
8342 * builtin-attrs.def (STR1): Update fnspec.
8343 * internal-fn.def (UBSAN_NULL): Update fnspec.
8344 (UBSAN_VPTR): Update fnspec.
8345 (UBSAN_PTR): Update fnspec.
8346 (ASAN_CHECK): Update fnspec.
8347 (GOACC_DIM_SIZE): Remove fnspec.
8348 (GOACC_DIM_POS): Remove fnspec.
8349 * tree-ssa-alias.c (attr_fnspec::verify): Update verification.
8350
8351 2020-10-02 Jan Hubicka <jh@suse.cz>
8352
8353 * attr-fnspec.h: New file.
8354 * calls.c (decl_return_flags): Use attr_fnspec.
8355 * gimple.c (gimple_call_arg_flags): Use attr_fnspec.
8356 (gimple_call_return_flags): Use attr_fnspec.
8357 * tree-into-ssa.c (pass_build_ssa::execute): Use attr_fnspec.
8358 * tree-ssa-alias.c (attr_fnspec::verify): New member fuction.
8359
8360 2020-10-02 Jan Hubicka <jh@suse.cz>
8361
8362 * tree-ssa-alias.c (ao_ref_init_from_ptr_and_range): Break out from ...
8363 (ao_ref_init_from_ptr_and_size): ... here.
8364
8365 2020-10-02 Jan Hubicka <hubicka@ucw.cz>
8366
8367 * data-streamer-in.c (streamer_read_poly_int64): New function.
8368 * data-streamer-out.c (streamer_write_poly_int64): New function.
8369 * data-streamer.h (streamer_write_poly_int64): Declare.
8370 (streamer_read_poly_int64): Declare.
8371
8372 2020-10-02 Richard Sandiford <richard.sandiford@arm.com>
8373
8374 * config/aarch64/aarch64-protos.h (aarch64_sve_pred_dominates_p):
8375 Delete.
8376 * config/aarch64/aarch64.c (aarch64_sve_pred_dominates_p): Likewise.
8377 * config/aarch64/aarch64-sve.md: Add banner comment describing
8378 how merging predicated FP operations are represented.
8379 (*cond_<SVE_COND_FP_UNARY:optab><mode>_2): Split into...
8380 (*cond_<SVE_COND_FP_UNARY:optab><mode>_2_relaxed): ...this and...
8381 (*cond_<SVE_COND_FP_UNARY:optab><mode>_2_strict): ...this.
8382 (*cond_<SVE_COND_FP_UNARY:optab><mode>_any): Split into...
8383 (*cond_<SVE_COND_FP_UNARY:optab><mode>_any_relaxed): ...this and...
8384 (*cond_<SVE_COND_FP_UNARY:optab><mode>_any_strict): ...this.
8385 (*cond_<SVE_COND_FP_BINARY_INT:optab><mode>_2): Split into...
8386 (*cond_<SVE_COND_FP_BINARY_INT:optab><mode>_2_relaxed): ...this and...
8387 (*cond_<SVE_COND_FP_BINARY_INT:optab><mode>_2_strict): ...this.
8388 (*cond_<SVE_COND_FP_BINARY_INT:optab><mode>_any): Split into...
8389 (*cond_<SVE_COND_FP_BINARY_INT:optab><mode>_any_relaxed): ...this
8390 and...
8391 (*cond_<SVE_COND_FP_BINARY_INT:optab><mode>_any_strict): ...this.
8392 (*cond_<SVE_COND_FP_BINARY:optab><mode>_2): Split into...
8393 (*cond_<SVE_COND_FP_BINARY:optab><mode>_2_relaxed): ...this and...
8394 (*cond_<SVE_COND_FP_BINARY:optab><mode>_2_strict): ...this.
8395 (*cond_<SVE_COND_FP_BINARY_I1:optab><mode>_2_const): Split into...
8396 (*cond_<SVE_COND_FP_BINARY_I1:optab><mode>_2_const_relaxed): ...this
8397 and...
8398 (*cond_<SVE_COND_FP_BINARY_I1:optab><mode>_2_const_strict): ...this.
8399 (*cond_<SVE_COND_FP_BINARY:optab><mode>_3): Split into...
8400 (*cond_<SVE_COND_FP_BINARY:optab><mode>_3_relaxed): ...this and...
8401 (*cond_<SVE_COND_FP_BINARY:optab><mode>_3_strict): ...this.
8402 (*cond_<SVE_COND_FP_BINARY:optab><mode>_any): Split into...
8403 (*cond_<SVE_COND_FP_BINARY:optab><mode>_any_relaxed): ...this and...
8404 (*cond_<SVE_COND_FP_BINARY:optab><mode>_any_strict): ...this.
8405 (*cond_<SVE_COND_FP_BINARY_I1:optab><mode>_any_const): Split into...
8406 (*cond_<SVE_COND_FP_BINARY_I1:optab><mode>_any_const_relaxed): ...this
8407 and...
8408 (*cond_<SVE_COND_FP_BINARY_I1:optab><mode>_any_const_strict): ...this.
8409 (*cond_add<mode>_2_const): Split into...
8410 (*cond_add<mode>_2_const_relaxed): ...this and...
8411 (*cond_add<mode>_2_const_strict): ...this.
8412 (*cond_add<mode>_any_const): Split into...
8413 (*cond_add<mode>_any_const_relaxed): ...this and...
8414 (*cond_add<mode>_any_const_strict): ...this.
8415 (*cond_<SVE_COND_FCADD:optab><mode>_2): Split into...
8416 (*cond_<SVE_COND_FCADD:optab><mode>_2_relaxed): ...this and...
8417 (*cond_<SVE_COND_FCADD:optab><mode>_2_strict): ...this.
8418 (*cond_<SVE_COND_FCADD:optab><mode>_any): Split into...
8419 (*cond_<SVE_COND_FCADD:optab><mode>_any_relaxed): ...this and...
8420 (*cond_<SVE_COND_FCADD:optab><mode>_any_strict): ...this.
8421 (*cond_sub<mode>_3_const): Split into...
8422 (*cond_sub<mode>_3_const_relaxed): ...this and...
8423 (*cond_sub<mode>_3_const_strict): ...this.
8424 (*aarch64_pred_abd<mode>): Split into...
8425 (*aarch64_pred_abd<mode>_relaxed): ...this and...
8426 (*aarch64_pred_abd<mode>_strict): ...this.
8427 (*aarch64_cond_abd<mode>_2): Split into...
8428 (*aarch64_cond_abd<mode>_2_relaxed): ...this and...
8429 (*aarch64_cond_abd<mode>_2_strict): ...this.
8430 (*aarch64_cond_abd<mode>_3): Split into...
8431 (*aarch64_cond_abd<mode>_3_relaxed): ...this and...
8432 (*aarch64_cond_abd<mode>_3_strict): ...this.
8433 (*aarch64_cond_abd<mode>_any): Split into...
8434 (*aarch64_cond_abd<mode>_any_relaxed): ...this and...
8435 (*aarch64_cond_abd<mode>_any_strict): ...this.
8436 (*cond_<SVE_COND_FP_TERNARY:optab><mode>_2): Split into...
8437 (*cond_<SVE_COND_FP_TERNARY:optab><mode>_2_relaxed): ...this and...
8438 (*cond_<SVE_COND_FP_TERNARY:optab><mode>_2_strict): ...this.
8439 (*cond_<SVE_COND_FP_TERNARY:optab><mode>_4): Split into...
8440 (*cond_<SVE_COND_FP_TERNARY:optab><mode>_4_relaxed): ...this and...
8441 (*cond_<SVE_COND_FP_TERNARY:optab><mode>_4_strict): ...this.
8442 (*cond_<SVE_COND_FP_TERNARY:optab><mode>_any): Split into...
8443 (*cond_<SVE_COND_FP_TERNARY:optab><mode>_any_relaxed): ...this and...
8444 (*cond_<SVE_COND_FP_TERNARY:optab><mode>_any_strict): ...this.
8445 (*cond_<SVE_COND_FCMLA:optab><mode>_4): Split into...
8446 (*cond_<SVE_COND_FCMLA:optab><mode>_4_relaxed): ...this and...
8447 (*cond_<SVE_COND_FCMLA:optab><mode>_4_strict): ...this.
8448 (*cond_<SVE_COND_FCMLA:optab><mode>_any): Split into...
8449 (*cond_<SVE_COND_FCMLA:optab><mode>_any_relaxed): ...this and...
8450 (*cond_<SVE_COND_FCMLA:optab><mode>_any_strict): ...this.
8451 (*aarch64_pred_fac<cmp_op><mode>): Split into...
8452 (*aarch64_pred_fac<cmp_op><mode>_relaxed): ...this and...
8453 (*aarch64_pred_fac<cmp_op><mode>_strict): ...this.
8454 (*cond_<optab>_nontrunc<SVE_FULL_F:mode><SVE_FULL_HSDI:mode>): Split
8455 into...
8456 (*cond_<optab>_nontrunc<SVE_FULL_F:mode><SVE_FULL_HSDI:mode>_relaxed):
8457 ...this and...
8458 (*cond_<optab>_nontrunc<SVE_FULL_F:mode><SVE_FULL_HSDI:mode>_strict):
8459 ...this.
8460 (*cond_<optab>_nonextend<SVE_FULL_HSDI:mode><SVE_FULL_F:mode>): Split
8461 into...
8462 (*cond_<optab>_nonextend<SVE_FULL_HSDI:mode><SVE_FULL_F:mode>_relaxed):
8463 ...this and...
8464 (*cond_<optab>_nonextend<SVE_FULL_HSDI:mode><SVE_FULL_F:mode>_strict):
8465 ...this.
8466 * config/aarch64/aarch64-sve2.md
8467 (*cond_<SVE2_COND_FP_UNARY_LONG:optab><mode>): Split into...
8468 (*cond_<SVE2_COND_FP_UNARY_LONG:optab><mode>_relaxed): ...this and...
8469 (*cond_<SVE2_COND_FP_UNARY_LONG:optab><mode>_strict): ...this.
8470 (*cond_<SVE2_COND_FP_UNARY_NARROWB:optab><mode>_any): Split into...
8471 (*cond_<SVE2_COND_FP_UNARY_NARROWB:optab><mode>_any_relaxed): ...this
8472 and...
8473 (*cond_<SVE2_COND_FP_UNARY_NARROWB:optab><mode>_any_strict): ...this.
8474 (*cond_<SVE2_COND_INT_UNARY_FP:optab><mode>): Split into...
8475 (*cond_<SVE2_COND_INT_UNARY_FP:optab><mode>_relaxed): ...this and...
8476 (*cond_<SVE2_COND_INT_UNARY_FP:optab><mode>_strict): ...this.
8477
8478 2020-10-02 Richard Sandiford <richard.sandiford@arm.com>
8479
8480 * config/arm/neon.md (*sub<VDQ:mode>3_neon): Use the new mode macros
8481 for the insn condition.
8482 (sub<VH:mode>3, *mul<VDQW:mode>3_neon): Likewise.
8483 (mul<VDQW:mode>3add<VDQW:mode>_neon): Likewise.
8484 (mul<VH:mode>3add<VH:mode>_neon): Likewise.
8485 (mul<VDQW:mode>3neg<VDQW:mode>add<VDQW:mode>_neon): Likewise.
8486 (fma<VCVTF:mode>4, fma<VH:mode>4, *fmsub<VCVTF:mode>4): Likewise.
8487 (quad_halves_<code>v4sf, reduc_plus_scal_<VD:mode>): Likewise.
8488 (reduc_plus_scal_<VQ:mode>, reduc_smin_scal_<VD:mode>): Likewise.
8489 (reduc_smin_scal_<VQ:mode>, reduc_smax_scal_<VD:mode>): Likewise.
8490 (reduc_smax_scal_<VQ:mode>, mul<VH:mode>3): Likewise.
8491 (neon_vabd<VF:mode>_2, neon_vabd<VF:mode>_3): Likewise.
8492 (fma<VH:mode>4_intrinsic): Delete.
8493 (neon_vadd<VCVTF:mode>): Use the new mode macros to decide which
8494 form of instruction to generate.
8495 (neon_vmla<VDQW:mode>, neon_vmls<VDQW:mode>): Likewise.
8496 (neon_vsub<VCVTF:mode>): Likewise.
8497 (neon_vfma<VH:mode>): Generate the main fma<mode>4 form instead
8498 of using fma<mode>4_intrinsic.
8499
8500 2020-10-02 Martin Liska <mliska@suse.cz>
8501
8502 PR gcov-profile/97193
8503 * coverage.c (coverage_init): GCDA note files should not be
8504 mangled and should end in output directory.
8505
8506 2020-10-02 Jason Merril <jason@redhat.com>
8507
8508 * gimple.h (gimple_call_operator_delete_p): Rename from
8509 gimple_call_replaceable_operator_delete_p.
8510 * gimple.c (gimple_call_operator_delete_p): Likewise.
8511 * tree.h (DECL_IS_REPLACEABLE_OPERATOR_DELETE_P): Remove.
8512 * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): Adjust.
8513 (propagate_necessity): Likewise.
8514 (eliminate_unnecessary_stmts): Likewise.
8515 * tree-ssa-structalias.c (find_func_aliases_for_call): Likewise.
8516
8517 2020-10-02 Richard Biener <rguenther@suse.de>
8518
8519 * gimple.h (GF_CALL_FROM_NEW_OR_DELETE): New call flag.
8520 (gimple_call_set_from_new_or_delete): New.
8521 (gimple_call_from_new_or_delete): Likewise.
8522 * gimple.c (gimple_build_call_from_tree): Set
8523 GF_CALL_FROM_NEW_OR_DELETE appropriately.
8524 * ipa-icf-gimple.c (func_checker::compare_gimple_call):
8525 Compare gimple_call_from_new_or_delete.
8526 * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): Make
8527 sure to only consider new/delete calls from new or delete
8528 expressions.
8529 (propagate_necessity): Likewise.
8530 (eliminate_unnecessary_stmts): Likewise.
8531 * tree-ssa-structalias.c (find_func_aliases_for_call):
8532 Likewise.
8533
8534 2020-10-02 Jason Merril <jason@redhat.com>
8535
8536 * tree.h (CALL_FROM_NEW_OR_DELETE_P): Move from cp-tree.h.
8537 * tree-core.h: Document new usage of protected_flag.
8538
8539 2020-10-02 Aldy Hernandez <aldyh@redhat.com>
8540
8541 * value-range.h (irange::fits_p): New.
8542
8543 2020-10-01 Alan Modra <amodra@gmail.com>
8544
8545 * config/rs6000/rs6000.c (rs6000_legitimize_address): Use
8546 gen_int_mode for high part of address constant.
8547
8548 2020-10-01 Alan Modra <amodra@gmail.com>
8549
8550 * config/rs6000/rs6000.c (rs6000_linux64_override_options):
8551 Formatting. Correct setting of TARGET_NO_FP_IN_TOC and
8552 TARGET_NO_SUM_IN_TOC.
8553
8554 2020-10-01 Alan Modra <amodra@gmail.com>
8555
8556 * config/rs6000/freebsd64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
8557 rs6000_linux64_override_options.
8558 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Break
8559 out to..
8560 * config/rs6000/rs6000.c (rs6000_linux64_override_options): ..this,
8561 new function. Tweak non-biarch test and clearing of
8562 profile_kernel to work with freebsd64.h.
8563
8564 2020-10-01 Martin Liska <mliska@suse.cz>
8565
8566 * config/rs6000/rs6000-call.c: Include value-range.h.
8567 * config/rs6000/rs6000.c: Likewise.
8568
8569 2020-10-01 Tom de Vries <tdevries@suse.de>
8570
8571 PR target/80845
8572 * config/nvptx/nvptx.md (define_insn "truncsi<QHIM>2"): Emit mov.u32
8573 instead of cvt.u32.u32.
8574
8575 2020-10-01 Richard Sandiford <richard.sandiford@arm.com>
8576
8577 PR target/96528
8578 PR target/97288
8579 * config/arm/arm-protos.h (arm_expand_vector_compare): Declare.
8580 (arm_expand_vcond): Likewise.
8581 * config/arm/arm.c (arm_expand_vector_compare): New function.
8582 (arm_expand_vcond): Likewise.
8583 * config/arm/neon.md (vec_cmp<VDQW:mode><v_cmp_result>): New pattern.
8584 (vec_cmpu<VDQW:mode><VDQW:mode>): Likewise.
8585 (vcond<VDQW:mode><VDQW:mode>): Require operand 5 to be a register
8586 or zero. Use arm_expand_vcond.
8587 (vcond<V_cvtto><V32:mode>): New pattern.
8588 (vcondu<VDQIW:mode><VDQIW:mode>): Generalize to...
8589 (vcondu<VDQW:mode><v_cmp_result): ...this. Require operand 5
8590 to be a register or zero. Use arm_expand_vcond.
8591 (vcond_mask_<VDQW:mode><v_cmp_result>): New pattern.
8592 (neon_vc<cmp_op><mode>, neon_vc<cmp_op><mode>_insn): Add "@" marker.
8593 (neon_vbsl<mode>): Likewise.
8594 (neon_vc<cmp_op>u<mode>): Reexpress as...
8595 (@neon_vc<code><mode>): ...this.
8596
8597 2020-10-01 Michael Davidsaver <mdavidsaver@gmail.com>
8598
8599 * config/i386/t-rtems: Change from mtune to march when building
8600 multilibs. The mtune argument tunes or optimizes for a specific
8601 CPU model but does not ensure the generated code is appropriate
8602 for the CPU model. Prior to this patch, i386 compatible code
8603 was always generated but tuned for later models.
8604
8605 2020-10-01 Aldy Hernandez <aldyh@redhat.com>
8606
8607 * builtins.c (compute_objsize): Replace vr_values with range_query.
8608 (get_range): Same.
8609 (gimple_call_alloc_size): Same.
8610 * builtins.h (class vr_values): Remove.
8611 (gimple_call_alloc_size): Replace vr_values with range_query.
8612 * gimple-ssa-sprintf.c (get_int_range): Same.
8613 (struct directive): Pass gimple context to fmtfunc callback.
8614 (directive::set_width): Replace inline with out-of-line version.
8615 (directive::set_precision): Same.
8616 (format_none): New gimple argument.
8617 (format_percent): New gimple argument.
8618 (format_integer): New gimple argument.
8619 (format_floating): New gimple argument.
8620 (get_string_length): Use range_query API.
8621 (format_character): New gimple argument.
8622 (format_string): New gimple argument.
8623 (format_plain): New gimple argument.
8624 (format_directive): New gimple argument.
8625 (parse_directive): Replace vr_values with range_query.
8626 (compute_format_length): Same.
8627 (handle_printf_call): Same. Adjust for range_query API.
8628 * tree-ssa-strlen.c (get_range): Same.
8629 (compare_nonzero_chars): Same.
8630 (get_addr_stridx) Replace vr_values with range_query.
8631 (get_stridx): Same.
8632 (dump_strlen_info): Same.
8633 (get_range_strlen_dynamic): Adjust for range_query API.
8634 (set_strlen_range): Same
8635 (maybe_warn_overflow): Replace vr_values with range_query.
8636 (handle_builtin_strcpy): Same.
8637 (maybe_diag_stxncpy_trunc): Add FIXME comment.
8638 (handle_builtin_memcpy): Replace vr_values with range_query.
8639 (handle_builtin_memset): Same.
8640 (get_len_or_size): Same.
8641 (strxcmp_eqz_result): Same.
8642 (handle_builtin_string_cmp): Same.
8643 (count_nonzero_bytes_addr): Same, plus adjust for range_query API.
8644 (count_nonzero_bytes): Replace vr_values with range_query.
8645 (handle_store): Same.
8646 (strlen_check_and_optimize_call): Same.
8647 (handle_integral_assign): Same.
8648 (check_and_optimize_stmt): Same.
8649 * tree-ssa-strlen.h (class vr_values): Remove.
8650 (get_range): Replace vr_values with range_query.
8651 (get_range_strlen_dynamic): Same.
8652 (handle_printf_call): Same.
8653
8654 2020-10-01 Aldy Hernandez <aldyh@redhat.com>
8655
8656 * gimple-loop-versioning.cc (lv_dom_walker::before_dom_children):
8657 Pass m_range_analyzer instead of get_vr_values.
8658 (loop_versioning::name_prop::get_value): Rename to...
8659 (loop_versioning::name_prop::value_of_expr): ...this.
8660 * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::evrp_range_analyzer):
8661 Adjust for evrp_range_analyzer
8662 inheriting from vr_values.
8663 (evrp_range_analyzer::try_find_new_range): Same.
8664 (evrp_range_analyzer::record_ranges_from_incoming_edge): Same.
8665 (evrp_range_analyzer::record_ranges_from_phis): Same.
8666 (evrp_range_analyzer::record_ranges_from_stmt): Same.
8667 (evrp_range_analyzer::push_value_range): Same.
8668 (evrp_range_analyzer::pop_value_range): Same.
8669 * gimple-ssa-evrp-analyze.h (class evrp_range_analyzer): Inherit from
8670 vr_values. Adjust accordingly.
8671 * gimple-ssa-evrp.c: Adjust for evrp_range_analyzer inheriting from
8672 vr_values.
8673 (evrp_folder::value_of_evrp): Rename from get_value.
8674 * tree-ssa-ccp.c (class ccp_folder): Rename get_value to
8675 value_of_expr.
8676 (ccp_folder::get_value): Rename to...
8677 (ccp_folder::value_of_expr): ...this.
8678 * tree-ssa-copy.c (class copy_folder): Rename get_value to
8679 value_of_expr.
8680 (copy_folder::get_value): Rename to...
8681 (copy_folder::value_of_expr): ...this.
8682 * tree-ssa-dom.c (dom_opt_dom_walker::after_dom_children): Adjust
8683 for evrp_range_analyzer inheriting from vr_values.
8684 (dom_opt_dom_walker::optimize_stmt): Same.
8685 * tree-ssa-propagate.c (substitute_and_fold_engine::replace_uses_in):
8686 Call value_of_* instead of get_value.
8687 (substitute_and_fold_engine::replace_phi_args_in): Same.
8688 (substitute_and_fold_engine::propagate_into_phi_args): Same.
8689 (substitute_and_fold_dom_walker::before_dom_children): Same.
8690 * tree-ssa-propagate.h: Include value-query.h.
8691 (class substitute_and_fold_engine): Inherit from value_query.
8692 * tree-ssa-strlen.c (strlen_dom_walker::before_dom_children):
8693 Adjust for evrp_range_analyzer inheriting from vr_values.
8694 * tree-ssa-threadedge.c (record_temporary_equivalences_from_phis):
8695 Same.
8696 * tree-vrp.c (class vrp_folder): Same.
8697 (vrp_folder::get_value): Rename to value_of_expr.
8698 * vr-values.c (vr_values::get_lattice_entry): Adjust for
8699 vr_values inheriting from range_query.
8700 (vr_values::range_of_expr): New.
8701 (vr_values::value_of_expr): New.
8702 (vr_values::value_on_edge): New.
8703 (vr_values::value_of_stmt): New.
8704 (simplify_using_ranges::op_with_boolean_value_range_p): Call
8705 get_value_range through query.
8706 (check_for_binary_op_overflow): Rename store to query.
8707 (vr_values::vr_values): Remove vrp_value_range_pool.
8708 (vr_values::~vr_values): Same.
8709 (simplify_using_ranges::get_vr_for_comparison): Call get_value_range
8710 through query.
8711 (simplify_using_ranges::compare_names): Same.
8712 (simplify_using_ranges::vrp_evaluate_conditional): Same.
8713 (simplify_using_ranges::vrp_visit_cond_stmt): Same.
8714 (simplify_using_ranges::simplify_abs_using_ranges): Same.
8715 (simplify_using_ranges::simplify_cond_using_ranges_1): Same.
8716 (simplify_cond_using_ranges_2): Same.
8717 (simplify_using_ranges::simplify_switch_using_ranges): Same.
8718 (simplify_using_ranges::two_valued_val_range_p): Same.
8719 (simplify_using_ranges::simplify_using_ranges): Rename store to query.
8720 (simplify_using_ranges::simplify): Assert that we have a query.
8721 * vr-values.h (class range_query): Remove.
8722 (class simplify_using_ranges): Remove inheritance of range_query.
8723 (class vr_values): Add virtuals for range_of_expr, value_of_expr,
8724 value_on_edge, value_of_stmt, and get_value_range.
8725 Call range_query allocator instead of using vrp_value_range_pool.
8726 Remove vrp_value_range_pool.
8727 (simplify_using_ranges::get_value_range): Remove.
8728
8729 2020-10-01 Richard Biener <rguenther@suse.de>
8730
8731 PR tree-optimization/97236
8732 * tree-vect-stmts.c (get_group_load_store_type): Keep
8733 VMAT_ELEMENTWISE for single-element vectors.
8734
8735 2020-10-01 Jan Hubicka <jh@suse.cz>
8736
8737 * ipa-modref.c (compute_parm_map): Be ready for callee_pi to be NULL.
8738
8739 2020-10-01 Jan Hubicka <jh@suse.cz>
8740
8741 PR ipa/97244
8742 * ipa-fnsummary.c (pass_free_fnsummary::execute): Free
8743 also indirect inlining datastructure.
8744 * ipa-modref.c (pass_ipa_modref::execute): Do not free them here.
8745 * ipa-prop.c (ipa_free_all_node_params): Do not crash when info does
8746 not exist.
8747 (ipa_unregister_cgraph_hooks): Likewise.
8748
8749 2020-10-01 Jan Hubicka <jh@suse.cz>
8750
8751 * internal-fn.c (DEF_INTERNAL_FN): Fix handling of fnspec
8752
8753 2020-10-01 Aldy Hernandez <aldyh@redhat.com>
8754
8755 * Makefile.in: Add value-query.o.
8756 * value-query.cc: New file.
8757 * value-query.h: New file.
8758
8759 2020-10-01 Alex Coplan <alex.coplan@arm.com>
8760
8761 * config/arm/arm-cpus.in: Fix ordering, move Neoverse N2 down.
8762 * config/arm/arm-tables.opt: Regenerate.
8763 * config/arm/arm-tune.md: Regenerate.
8764
8765 2020-10-01 Jakub Jelinek <jakub@redhat.com>
8766
8767 * config/s390/s390.c (s390_atomic_assign_expand_fenv): Use
8768 TARGET_EXPR instead of MODIFY_EXPR for the first assignments to
8769 fenv_var and old_fpc. Formatting fixes.
8770
8771 2020-10-01 Richard Biener <rguenther@suse.de>
8772
8773 * tree-vect-patterns.c (vect_recog_bool_pattern): Also handle
8774 VIEW_CONVERT_EXPR.
8775
8776 2020-10-01 Florian Weimer <fweimer@redhat.com>
8777
8778 PR target/97250
8779 * config/i386/i386.h (PTA_NO_TUNE, PTA_X86_64_BASELINE)
8780 (PTA_X86_64_V2, PTA_X86_64_V3, PTA_X86_64_V4): New.
8781 * common/config/i386/i386-common.c (processor_alias_table):
8782 Add "x86-64-v2", "x86-64-v3", "x86-64-v4".
8783 * config/i386/i386-options.c (ix86_option_override_internal):
8784 Handle new PTA_NO_TUNE processor table entries.
8785 * doc/invoke.texi (x86 Options): Document new -march values.
8786
8787 2020-10-01 Alan Modra <amodra@gmail.com>
8788
8789 * config/rs6000/ppc-asm.h: Support __PCREL__ code.
8790
8791 2020-10-01 Alan Modra <amodra@gmail.com>
8792
8793 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't
8794 set -mcmodel=small for -mno-minimal-toc when pcrel.
8795
8796 2020-09-30 Martin Sebor <msebor@redhat.com>
8797
8798 PR middle-end/97189
8799 * attribs.c (attr_access::array_as_string): Avoid assuming a VLA
8800 access specification string contains a closing bracket.
8801
8802 2020-09-30 Martin Sebor <msebor@redhat.com>
8803
8804 PR c/97206
8805 * attribs.c (attr_access::array_as_string): Avoid modifying a shared
8806 type in place and use build_type_attribute_qual_variant instead.
8807
8808 2020-09-30 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
8809
8810 * config/arm/arm-cpus.in: Add Cortex-A78 and Cortex-A78AE cores.
8811 * config/arm/arm-tables.opt: Regenerate.
8812 * config/arm/arm-tune.md: Regenerate.
8813 * doc/invoke.texi: Update docs.
8814
8815 2020-09-30 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
8816
8817 * config/aarch64/aarch64-cores.def: Add Cortex-A78 and Cortex-A78AE cores.
8818 * config/aarch64/aarch64-tune.md: Regenerate.
8819 * doc/invoke.texi: Add -mtune=cortex-a78 and -mtune=cortex-a78ae.
8820
8821 2020-09-30 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
8822
8823 PR target/96795
8824 * config/arm/arm_mve.h (__ARM_mve_coerce2): Define.
8825 (__arm_vaddq): Correct the scalar argument.
8826 (__arm_vaddq_m): Likewise.
8827 (__arm_vaddq_x): Likewise.
8828 (__arm_vcmpeqq_m): Likewise.
8829 (__arm_vcmpeqq): Likewise.
8830 (__arm_vcmpgeq_m): Likewise.
8831 (__arm_vcmpgeq): Likewise.
8832 (__arm_vcmpgtq_m): Likewise.
8833 (__arm_vcmpgtq): Likewise.
8834 (__arm_vcmpleq_m): Likewise.
8835 (__arm_vcmpleq): Likewise.
8836 (__arm_vcmpltq_m): Likewise.
8837 (__arm_vcmpltq): Likewise.
8838 (__arm_vcmpneq_m): Likewise.
8839 (__arm_vcmpneq): Likewise.
8840 (__arm_vfmaq_m): Likewise.
8841 (__arm_vfmaq): Likewise.
8842 (__arm_vfmasq_m): Likewise.
8843 (__arm_vfmasq): Likewise.
8844 (__arm_vmaxnmavq): Likewise.
8845 (__arm_vmaxnmavq_p): Likewise.
8846 (__arm_vmaxnmvq): Likewise.
8847 (__arm_vmaxnmvq_p): Likewise.
8848 (__arm_vminnmavq): Likewise.
8849 (__arm_vminnmavq_p): Likewise.
8850 (__arm_vminnmvq): Likewise.
8851 (__arm_vminnmvq_p): Likewise.
8852 (__arm_vmulq_m): Likewise.
8853 (__arm_vmulq): Likewise.
8854 (__arm_vmulq_x): Likewise.
8855 (__arm_vsetq_lane): Likewise.
8856 (__arm_vsubq_m): Likewise.
8857 (__arm_vsubq): Likewise.
8858 (__arm_vsubq_x): Likewise.
8859
8860 2020-09-30 Joel Hutton <joel.hutton@arm.com>
8861
8862 PR target/96837
8863 * tree-vect-slp.c (vect_analyze_slp): Do not call
8864 vect_attempt_slp_rearrange_stmts for vector constructors.
8865
8866 2020-09-30 Tamar Christina <tamar.christina@arm.com>
8867
8868 * tree-vectorizer.h (SLP_TREE_REF_COUNT): New.
8869 * tree-vect-slp.c (_slp_tree::_slp_tree, _slp_tree::~_slp_tree,
8870 vect_free_slp_tree, vect_build_slp_tree, vect_print_slp_tree,
8871 slp_copy_subtree, vect_attempt_slp_rearrange_stmts): Use it.
8872
8873 2020-09-30 Tobias Burnus <tobias@codesourcery.com>
8874
8875 * omp-offload.c (omp_discover_implicit_declare_target): Also
8876 handled nested functions.
8877
8878 2020-09-30 Tobias Burnus <tobias@codesourcery.com>
8879 Tom de Vries <tdevries@suse.de>
8880
8881 * builtins.c (expand_builtin_cexpi, fold_builtin_sincos): Update
8882 targetm.libc_has_function call.
8883 * builtins.def (DEF_C94_BUILTIN, DEF_C99_BUILTIN, DEF_C11_BUILTIN):
8884 (DEF_C2X_BUILTIN, DEF_C99_COMPL_BUILTIN, DEF_C99_C90RES_BUILTIN):
8885 Same.
8886 * config/darwin-protos.h (darwin_libc_has_function): Update prototype.
8887 * config/darwin.c (darwin_libc_has_function): Add arg.
8888 * config/linux-protos.h (linux_libc_has_function): Update prototype.
8889 * config/linux.c (linux_libc_has_function): Add arg.
8890 * config/i386/i386.c (ix86_libc_has_function): Update
8891 targetm.libc_has_function call.
8892 * config/nvptx/nvptx.c (nvptx_libc_has_function): New function.
8893 (TARGET_LIBC_HAS_FUNCTION): Redefine to nvptx_libc_has_function.
8894 * convert.c (convert_to_integer_1): Update targetm.libc_has_function
8895 call.
8896 * match.pd: Same.
8897 * target.def (libc_has_function): Add arg.
8898 * doc/tm.texi: Regenerate.
8899 * targhooks.c (default_libc_has_function, gnu_libc_has_function)
8900 (no_c99_libc_has_function): Add arg.
8901 * targhooks.h (default_libc_has_function, no_c99_libc_has_function)
8902 (gnu_libc_has_function): Update prototype.
8903 * tree-ssa-math-opts.c (pass_cse_sincos::execute): Update
8904 targetm.libc_has_function call.
8905
8906 2020-09-30 H.J. Lu <hjl.tools@gmail.com>
8907
8908 PR target/97184
8909 * config/i386/i386.md (UNSPECV_MOVDIRI): Renamed to ...
8910 (UNSPEC_MOVDIRI): This.
8911 (UNSPECV_MOVDIR64B): Renamed to ...
8912 (UNSPEC_MOVDIR64B): This.
8913 (movdiri<mode>): Use SET operation.
8914 (@movdir64b_<mode>): Likewise.
8915
8916 2020-09-30 Florian Weimer <fweimer@redhat.com>
8917
8918 * config/i386/i386-c.c (ix86_target_macros_internal): Define
8919 __LAHF_SAHF__ and __MOVBE__ based on ISA flags.
8920
8921 2020-09-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8922
8923 PR target/97150
8924 * config/aarch64/arm_neon.h (vqrshlb_u8): Make second argument
8925 signed.
8926 (vqrshlh_u16): Likewise.
8927 (vqrshls_u32): Likewise.
8928 (vqrshld_u64): Likewise.
8929 (vqshlb_u8): Likewise.
8930 (vqshlh_u16): Likewise.
8931 (vqshls_u32): Likewise.
8932 (vqshld_u64): Likewise.
8933 (vshld_u64): Likewise.
8934
8935 2020-09-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8936
8937 PR target/96313
8938 * config/aarch64/aarch64-simd-builtins.def (sqmovun): Use UNOPUS
8939 qualifiers.
8940 * config/aarch64/arm_neon.h (vqmovun_s16): Adjust builtin call.
8941 Remove unnecessary result cast.
8942 (vqmovun_s32): Likewise.
8943 (vqmovun_s64): Likewise.
8944 (vqmovunh_s16): Likewise. Fix return type.
8945 (vqmovuns_s32): Likewise.
8946 (vqmovund_s64): Likewise.
8947
8948 2020-09-30 Richard Sandiford <richard.sandiford@arm.com>
8949
8950 * config/aarch64/aarch64.c (aarch64_split_128bit_move_p): Add a
8951 function comment. Tighten check for FP moves.
8952 * config/aarch64/aarch64.md (*movti_aarch64): Add a w<-Z alternative.
8953 (*movtf_aarch64): Handle r<-Y like r<-r. Remove unnecessary
8954 earlyclobber. Change splitter predicate from aarch64_reg_or_imm
8955 to nonmemory_operand.
8956
8957 2020-09-30 Alex Coplan <alex.coplan@arm.com>
8958
8959 PR target/97251
8960 * config/arm/arm.md (movsf): Relax TARGET_HARD_FLOAT to
8961 TARGET_VFP_BASE.
8962 (movdf): Likewise.
8963 * config/arm/vfp.md (no_literal_pool_df_immediate): Likewise.
8964 (no_literal_pool_sf_immediate): Likewise.
8965
8966 2020-09-30 Alan Modra <amodra@gmail.com>
8967
8968 * configure.ac (--with-long-double-format): Typo fix.
8969 * configure: Regenerate.
8970
8971 2020-09-30 Alan Modra <amodra@gmail.com>
8972
8973 * config/rs6000/rs6000.md (@tablejump<mode>_normal): Don't use
8974 non-existent operands[].
8975 (@tablejump<mode>_nospec): Likewise.
8976
8977 2020-09-30 Segher Boessenkool <segher@kernel.crashing.org>
8978
8979 * config/rs6000/rs6000.md (tablejump): Simplify.
8980 (tablejumpsi): Merge this ...
8981 (tablejumpdi): ... and this ...
8982 (@tablejump<mode>_normal): ... into this.
8983 (tablejumpsi_nospec): Merge this ...
8984 (tablejumpdi_nospec): ... and this ...
8985 (@tablejump<mode>_nospec): ... into this.
8986 (*tablejump<mode>_internal1): Delete, rename to ...
8987 (@tablejump<mode>_insn_normal): ... this.
8988 (*tablejump<mode>_internal1_nospec): Delete, rename to ...
8989 (@tablejump<mode>_insn_nospec): ... this.
8990
8991 2020-09-29 Martin Sebor <msebor@redhat.com>
8992
8993 PR middle-end/97188
8994 * calls.c (maybe_warn_rdwr_sizes): Simplify warning messages.
8995 Correct handling of VLA argumments.
8996
8997 2020-09-29 Marek Polacek <polacek@redhat.com>
8998
8999 PR c++/94695
9000 * doc/invoke.texi: Document -Wrange-loop-construct.
9001
9002 2020-09-29 Jim Wilson <jimw@sifive.com>
9003
9004 PR bootstrap/97183
9005 * configure.ac (gcc_cv_header_zstd_h): Check ZSTD_VERISON_NUMBER.
9006 * configure: Regenerated.
9007
9008 2020-09-29 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
9009
9010 * config/arm/arm-cpus.in: Add Cortex-X1 core.
9011 * config/arm/arm-tables.opt: Regenerate.
9012 * config/arm/arm-tune.md: Regenerate.
9013 * doc/invoke.texi: Update docs.
9014
9015 2020-09-29 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
9016
9017 * config/aarch64/aarch64-cores.def: Add Cortex-X1 Arm core.
9018 * config/aarch64/aarch64-tune.md: Regenerate.
9019 * doc/invoke.texi: Add -mtune=cortex-x1 docs.
9020
9021 2020-09-29 H.J. Lu <hjl.tools@gmail.com>
9022
9023 PR target/97247
9024 * config/i386/enqcmdintrin.h: Replace <enqcmdntrin.h> with
9025 <enqcmdintrin.h>. Replace _ENQCMDNTRIN_H_INCLUDED with
9026 _ENQCMDINTRIN_H_INCLUDED.
9027
9028 2020-09-29 Richard Biener <rguenther@suse.de>
9029
9030 PR tree-optimization/97241
9031 * tree-vect-loop.c (vectorizable_reduction): Move finding
9032 the SLP node for the reduction stmt to a better place.
9033
9034 2020-09-29 Richard Biener <rguenther@suse.de>
9035
9036 * tree-vect-slp.c (vect_analyze_slp): Move SLP reduction
9037 re-arrangement and SLP graph load gathering...
9038 (vect_optimize_slp): ... here.
9039 * tree-vectorizer.h (vec_info::slp_loads): Remove.
9040
9041 2020-09-29 Hongyu Wang <hongyu.wang@intel.com>
9042
9043 PR target/97231
9044 * config/i386/amxbf16intrin.h: Add FSF copyright notes.
9045 * config/i386/amxint8intrin.h: Ditto.
9046 * config/i386/amxtileintrin.h: Ditto.
9047 * config/i386/avx512vp2intersectintrin.h: Ditto.
9048 * config/i386/avx512vp2intersectvlintrin.h: Ditto.
9049 * config/i386/pconfigintrin.h: Ditto.
9050 * config/i386/tsxldtrkintrin.h: Ditto.
9051 * config/i386/wbnoinvdintrin.h: Ditto.
9052
9053 2020-09-29 Richard Biener <rguenther@suse.de>
9054
9055 PR tree-optimization/97238
9056 * tree-ssa-reassoc.c (ovce_extract_ops): Fix typo.
9057
9058 2020-09-29 Richard Sandiford <richard.sandiford@arm.com>
9059
9060 * config/arm/arm.h (ARM_HAVE_NEON_V8QI_ARITH, ARM_HAVE_NEON_V4HI_ARITH)
9061 (ARM_HAVE_NEON_V2SI_ARITH, ARM_HAVE_NEON_V16QI_ARITH): New macros.
9062 (ARM_HAVE_NEON_V8HI_ARITH, ARM_HAVE_NEON_V4SI_ARITH): Likewise.
9063 (ARM_HAVE_NEON_V2DI_ARITH, ARM_HAVE_NEON_V4HF_ARITH): Likewise.
9064 (ARM_HAVE_NEON_V8HF_ARITH, ARM_HAVE_NEON_V2SF_ARITH): Likewise.
9065 (ARM_HAVE_NEON_V4SF_ARITH, ARM_HAVE_V8QI_ARITH, ARM_HAVE_V4HI_ARITH)
9066 (ARM_HAVE_V2SI_ARITH, ARM_HAVE_V16QI_ARITH, ARM_HAVE_V8HI_ARITH)
9067 (ARM_HAVE_V4SI_ARITH, ARM_HAVE_V2DI_ARITH, ARM_HAVE_V4HF_ARITH)
9068 (ARM_HAVE_V2SF_ARITH, ARM_HAVE_V8HF_ARITH, ARM_HAVE_V4SF_ARITH):
9069 Likewise.
9070 * config/arm/iterators.md (VNIM, VNINOTM): Delete.
9071 * config/arm/vec-common.md (add<VNIM:mode>3, addv8hf3)
9072 (add<VNINOTM:mode>3): Replace with...
9073 (add<VDQ:mode>3): ...this new expander.
9074 * config/arm/neon.md (*add<VDQ:mode>3_neon): Use the new
9075 ARM_HAVE_NEON_<MODE>_ARITH macros as the C condition.
9076 (addv8hf3_neon, addv4hf3, add<VFH:mode>3_fp16): Delete in
9077 favor of the above.
9078 (neon_vadd<VH:mode>): Use gen_add<mode>3 instead of
9079 gen_add<mode>3_fp16.
9080
9081 2020-09-29 Kito Cheng <kito.cheng@sifive.com>
9082
9083 * config/riscv/riscv-c.c (riscv_cpu_cpp_builtins): Define
9084 __riscv_cmodel_medany when PIC mode.
9085
9086 2020-09-29 Alex Coplan <alex.coplan@arm.com>
9087
9088 * config/aarch64/aarch64-cores.def: Move neoverse-n2 after saphira.
9089 * config/aarch64/aarch64-tune.md: Regenerate.
9090
9091 2020-09-29 Martin Liska <mliska@suse.cz>
9092
9093 PR tree-optimization/96979
9094 * tree-switch-conversion.c (jump_table_cluster::can_be_handled):
9095 Make a fast bail out.
9096 (bit_test_cluster::can_be_handled): Likewise here.
9097 * tree-switch-conversion.h (get_range): Use wi::to_wide instead
9098 of a folding.
9099
9100 2020-09-29 Martin Liska <mliska@suse.cz>
9101
9102 Revert:
9103 2020-09-22 Martin Liska <mliska@suse.cz>
9104
9105 PR tree-optimization/96979
9106 * doc/invoke.texi: Document new param max-switch-clustering-attempts.
9107 * params.opt: Add new parameter.
9108 * tree-switch-conversion.c (jump_table_cluster::find_jump_tables):
9109 Limit number of attempts.
9110 (bit_test_cluster::find_bit_tests): Likewise.
9111
9112 2020-09-28 Aldy Hernandez <aldyh@redhat.com>
9113
9114 * value-range.h (class irange): Add irange_allocator friend.
9115 (class irange_allocator): New.
9116
9117 2020-09-28 Tobias Burnus <tobias@codesourcery.com>
9118
9119 PR middle-end/96390
9120 * omp-offload.c (omp_discover_declare_target_tgt_fn_r): Handle
9121 alias nodes.
9122
9123 2020-09-28 Paul A. Clarke <pc@us.ibm.com>
9124
9125 * config/rs6000/smmintrin.h (_mm_insert_epi8): New.
9126 (_mm_insert_epi32): New.
9127 (_mm_insert_epi64): New.
9128
9129 2020-09-28 liuhongt <hongtao.liu@intel.com>
9130
9131 * common/config/i386/i386-common.c (OPTION_MASK_ISA2_AMX_TILE_SET,
9132 OPTION_MASK_ISA2_AMX_INT8_SET, OPTION_MASK_ISA2_AMX_BF16_SET,
9133 OPTION_MASK_ISA2_AMX_TILE_UNSET, OPTION_MASK_ISA2_AMX_INT8_UNSET,
9134 OPTION_MASK_ISA2_AMX_BF16_UNSET, OPTION_MASK_ISA2_XSAVE_UNSET):
9135 New marcos.
9136 (ix86_handle_option): Hanlde -mamx-tile, -mamx-int8, -mamx-bf16.
9137 * common/config/i386/i386-cpuinfo.h (processor_types): Add
9138 FEATURE_AMX_TILE, FEATURE_AMX_INT8, FEATURE_AMX_BF16.
9139 * common/config/i386/cpuinfo.h (XSTATE_TILECFG,
9140 XSTATE_TILEDATA, XCR_AMX_ENABLED_MASK): New macro.
9141 (get_available_features): Enable AMX features only if
9142 their states are suoorited by OSXSAVE.
9143 * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY
9144 for amx-tile, amx-int8, amx-bf16.
9145 * config.gcc: Add amxtileintrin.h, amxint8intrin.h,
9146 amxbf16intrin.h to extra headers.
9147 * config/i386/amxbf16intrin.h: New file.
9148 * config/i386/amxint8intrin.h: Ditto.
9149 * config/i386/amxtileintrin.h: Ditto.
9150 * config/i386/cpuid.h (bit_AMX_BF16, bit_AMX_TILE, bit_AMX_INT8):
9151 New macro.
9152 * config/i386/i386-c.c (ix86_target_macros_internal): Define
9153 __AMX_TILE__, __AMX_INT8__, AMX_BF16__.
9154 * config/i386/i386-options.c (ix86_target_string): Add
9155 -mamx-tile, -mamx-int8, -mamx-bf16.
9156 (ix86_option_override_internal): Handle AMX-TILE,
9157 AMX-INT8, AMX-BF16.
9158 * config/i386/i386.h (TARGET_AMX_TILE, TARGET_AMX_TILE_P,
9159 TARGET_AMX_INT8, TARGET_AMX_INT8_P, TARGET_AMX_BF16_P,
9160 PTA_AMX_TILE, PTA_AMX_INT8, PTA_AMX_BF16): New macros.
9161 * config/i386/i386.opt: Add -mamx-tile, -mamx-int8, -mamx-bf16.
9162 * config/i386/immintrin.h: Include amxtileintrin.h,
9163 amxint8intrin.h, amxbf16intrin.h.
9164 * doc/invoke.texi: Document -mamx-tile, -mamx-int8, -mamx-bf16.
9165 * doc/extend.texi: Document amx-tile, amx-int8, amx-bf16.
9166 * doc/sourcebuild.texi ((Effective-Target Keywords, Other
9167 hardware attributes): Document amx_int8, amx_tile, amx_bf16.
9168
9169 2020-09-28 Andrea Corallo <andrea.corallo@arm.com>
9170
9171 * config/aarch64/aarch64-builtins.c
9172 (aarch64_general_expand_builtin): Do not alter value on a
9173 force_reg returned rtx.
9174
9175 2020-09-28 Eric Botcazou <ebotcazou@adacore.com>
9176
9177 * tree-eh.c (lower_try_finally_dup_block): Revert latest change.
9178
9179 2020-09-27 Jan Hubicka <jh@suse.cz>
9180
9181 * ipa-modref.c (modref_summary::useful_p): Fix testing of stores.
9182
9183 2020-09-27 Jakub Jelinek <jakub@redhat.com>
9184
9185 PR middle-end/97073
9186 * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
9187 expand_copysign_bit): Check reg_overlap_mentioned_p between target
9188 and operand(s) and if it returns true, force a pseudo as target.
9189
9190 2020-09-27 Xionghu Luo <luoxhu@linux.ibm.com>
9191
9192 * gimple-isel.cc (gimple_expand_vec_set_expr): New function.
9193 (gimple_expand_vec_cond_exprs): Rename to ...
9194 (gimple_expand_vec_exprs): ... this and call
9195 gimple_expand_vec_set_expr.
9196 * internal-fn.c (vec_set_direct): New define.
9197 (expand_vec_set_optab_fn): New function.
9198 (direct_vec_set_optab_supported_p): New define.
9199 * internal-fn.def (VEC_SET): New DEF_INTERNAL_OPTAB_FN.
9200 * optabs.c (can_vec_set_var_idx_p): New function.
9201 * optabs.h (can_vec_set_var_idx_p): New declaration.
9202
9203 2020-09-26 Jan Hubicka <jh@suse.cz>
9204
9205 * ipa-modref.c (analyze_stmt): Do not skip clobbers in early pass.
9206 * ipa-pure-const.c (analyze_stmt): Update comment.
9207
9208 2020-09-26 David Edelsohn <dje.gcc@gmail.com>
9209 Clement Chigot <clement.chigot@atos.com>
9210
9211 * collect2.c (visibility_flag): New.
9212 (main): Detect -fvisibility.
9213 (write_c_file_stat): Push and pop default visibility.
9214
9215 2020-09-26 Jan Hubicka <hubicka@ucw.cz>
9216
9217 * ipa-inline-transform.c: Include ipa-modref-tree.h and ipa-modref.h.
9218 (inline_call): Call ipa_merge_modref_summary_after_inlining.
9219 * ipa-inline.c (ipa_inline): Do not free summaries.
9220 * ipa-modref.c (dump_records): Fix formating.
9221 (merge_call_side_effects): Break out from ...
9222 (analyze_call): ... here; record recursive calls.
9223 (analyze_stmt): Add new parameter RECURSIVE_CALLS.
9224 (analyze_function): Do iterative dataflow on recursive calls.
9225 (compute_parm_map): New function.
9226 (ipa_merge_modref_summary_after_inlining): New function.
9227 (collapse_loads): New function.
9228 (modref_propagate_in_scc): Break out from ...
9229 (pass_ipa_modref::execute): ... here; Do iterative dataflow.
9230 * ipa-modref.h (ipa_merge_modref_summary_after_inlining): Declare.
9231
9232 2020-09-26 Jakub Jelinek <jakub@redhat.com>
9233
9234 * omp-expand.c (expand_omp_simd): Help vectorizer for the collapse == 1
9235 and non-composite collapse > 1 case with non-constant innermost loop
9236 step by precomputing number of iterations before loop and using an
9237 alternate IV from 0 to number of iterations - 1 with step of 1.
9238
9239 2020-09-26 Jan Hubicka <jh@suse.cz>
9240
9241 * ipa-fnsummary.c (dump_ipa_call_summary): Dump
9242 points_to_local_or_readonly_memory flag.
9243 (analyze_function_body): Compute points_to_local_or_readonly_memory
9244 flag.
9245 (remap_edge_change_prob): Rename to ...
9246 (remap_edge_params): ... this one; update
9247 points_to_local_or_readonly_memory.
9248 (remap_edge_summaries): Update.
9249 (read_ipa_call_summary): Stream the new flag.
9250 (write_ipa_call_summary): Likewise.
9251 * ipa-predicate.h (struct inline_param_summary): Add
9252 points_to_local_or_readonly_memory.
9253 (inline_param_summary::equal_to): Update.
9254 (inline_param_summary::useless_p): Update.
9255
9256 2020-09-26 Jan Hubicka <hubicka@ucw.cz>
9257
9258 * ipa-modref-tree.h (modref_ref_node::insert_access): Track if something
9259 changed.
9260 (modref_base_node::insert_ref): Likewise (and add a new optional
9261 argument)
9262 (modref_tree::insert): Likewise.
9263 (modref_tree::merge): Rewrite
9264
9265 2020-09-25 Jan Hubicka <hubicka@ucw.cz>
9266
9267 * doc/invoke.texi: Add -fno-ipa-modref to flags disabled by
9268 -flive-patching.
9269 * opts.c (control_options_for_live_patching): Disable ipa-modref.
9270
9271 2020-09-25 Jan Hubicka <hubicka@ucw.cz>
9272
9273 * ipa-modref.c (analyze_stmt): Fix return value for gimple_clobber.
9274
9275 2020-09-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9276
9277 * config/aarch64/aarch64-option-extensions.def (rng): Add
9278 cpuinfo string.
9279
9280 2020-09-25 Alex Coplan <alex.coplan@arm.com>
9281
9282 * config/arm/arm-cpus.in (neoverse-v1): Add FP16.
9283
9284 2020-09-25 Martin Liska <mliska@suse.cz>
9285
9286 PR gcov-profile/64636
9287 * value-prof.c (stream_out_histogram_value): Allow negative
9288 values for HIST_TYPE_IOR.
9289
9290 2020-09-25 Tom de Vries <tdevries@suse.de>
9291
9292 * config/nvptx/nvptx.c (nvptx_assemble_integer, nvptx_print_operand):
9293 Use gcc_fallthrough ().
9294
9295 2020-09-25 Richard Biener <rguenther@suse.de>
9296
9297 PR middle-end/96814
9298 * expr.c (store_constructor): Handle VECTOR_BOOLEAN_TYPE_P
9299 CTORs correctly.
9300
9301 2020-09-25 Richard Biener <rguenther@suse.de>
9302
9303 PR middle-end/97207
9304 * vec.h (auto_vec<T>::operator=(auto_vec<T>&&)): Implement.
9305
9306 2020-09-25 Richard Sandiford <richard.sandiford@arm.com>
9307
9308 * config/arm/arm-protos.h (arm_mve_mode_and_operands_type_check):
9309 Delete.
9310 * config/arm/arm.c (arm_coproc_mem_operand_wb): Use a scale factor
9311 of 2 rather than 4 for 16-bit modes.
9312 (arm_mve_mode_and_operands_type_check): Delete.
9313 * config/arm/constraints.md (Uj): Allow writeback for Neon,
9314 but continue to disallow it for MVE.
9315 * config/arm/arm.md (*arm32_mov<HFBF:mode>): Add !TARGET_HAVE_MVE.
9316 * config/arm/vfp.md (*mov_load_vfp_hf16, *mov_store_vfp_hf16): Fold
9317 back into...
9318 (*mov<mode>_vfp_<mode>16): ...here but use Uj for the FPR memory
9319 constraints. Use for base MVE too.
9320
9321 2020-09-25 Richard Biener <rguenther@suse.de>
9322
9323 PR tree-optimization/97199
9324 * tree-if-conv.c (combine_blocks): Remove edges only
9325 after looking at virtual PHI args.
9326
9327 2020-09-25 Jakub Jelinek <jakub@redhat.com>
9328
9329 * omp-low.c (scan_omp_1_stmt): Don't call scan_omp_simd for
9330 collapse > 1 loops as simt doesn't support collapsed loops yet.
9331 * omp-expand.c (expand_omp_for_init_counts, expand_omp_for_init_vars):
9332 Small tweaks to function comment.
9333 (expand_omp_simd): Rewritten collapse > 1 support to only attempt
9334 to vectorize the innermost loop and emit set of outer loops around it.
9335 For non-composite simd with collapse > 1 without broken loop don't
9336 even try to compute number of iterations first. Add support for
9337 non-rectangular simd loops.
9338 (expand_omp_for): Don't sorry_at on non-rectangular simd loops.
9339
9340 2020-09-25 Martin Liska <mliska@suse.cz>
9341
9342 * cgraph.c (cgraph_edge::debug): New.
9343 * cgraph.h (cgraph_edge::debug): New.
9344
9345 2020-09-25 Martin Liska <mliska@suse.cz>
9346
9347 * cgraph.c (cgraph_node::dump): Always print space at the end
9348 of a message. Remove one extra space.
9349
9350 2020-09-24 Alex Coplan <alex.coplan@arm.com>
9351
9352 * config/arm/arm-cpus.in (neoverse-n2): New.
9353 * config/arm/arm-tables.opt: Regenerate.
9354 * config/arm/arm-tune.md: Regenerate.
9355 * doc/invoke.texi: Document support for Neoverse N2.
9356
9357 2020-09-24 Alex Coplan <alex.coplan@arm.com>
9358
9359 * config/aarch64/aarch64-cores.def: Add Neoverse N2.
9360 * config/aarch64/aarch64-tune.md: Regenerate.
9361 * doc/invoke.texi: Document AArch64 support for Neoverse N2.
9362
9363 2020-09-24 Richard Biener <rguenther@suse.de>
9364
9365 * vec.h (auto_vec<T, 0>::auto_vec (auto_vec &&)): New move CTOR.
9366 (auto_vec<T, 0>::operator=(auto_vec &&)): Delete.
9367 * hash-table.h (hash_table::expand): Use std::move when expanding.
9368 * cfgloop.h (get_loop_exit_edges): Return auto_vec<edge>.
9369 * cfgloop.c (get_loop_exit_edges): Adjust.
9370 * cfgloopmanip.c (fix_loop_placement): Likewise.
9371 * ipa-fnsummary.c (analyze_function_body): Likewise.
9372 * ira-build.c (create_loop_tree_nodes): Likewise.
9373 (create_loop_tree_node_allocnos): Likewise.
9374 (loop_with_complex_edge_p): Likewise.
9375 * ira-color.c (ira_loop_edge_freq): Likewise.
9376 * loop-unroll.c (analyze_insns_in_loop): Likewise.
9377 * predict.c (predict_loops): Likewise.
9378 * tree-predcom.c (last_always_executed_block): Likewise.
9379 * tree-ssa-loop-ch.c (ch_base::copy_headers): Likewise.
9380 * tree-ssa-loop-im.c (store_motion_loop): Likewise.
9381 * tree-ssa-loop-ivcanon.c (loop_edge_to_cancel): Likewise.
9382 (canonicalize_loop_induction_variables): Likewise.
9383 * tree-ssa-loop-manip.c (get_loops_exits): Likewise.
9384 * tree-ssa-loop-niter.c (find_loop_niter): Likewise.
9385 (finite_loop_p): Likewise.
9386 (find_loop_niter_by_eval): Likewise.
9387 (estimate_numbers_of_iterations): Likewise.
9388 * tree-ssa-loop-prefetch.c (emit_mfence_after_loop): Likewise.
9389 (may_use_storent_in_loop_p): Likewise.
9390
9391 2020-09-24 Jan Hubicka <jh@suse.cz>
9392
9393 * doc/invoke.texi: Document -fipa-modref, ipa-modref-max-bases,
9394 ipa-modref-max-refs, ipa-modref-max-accesses, ipa-modref-max-tests.
9395 * ipa-modref-tree.c (test_insert_search_collapse): Update.
9396 (test_merge): Update.
9397 (gt_ggc_mx): New function.
9398 * ipa-modref-tree.h (struct modref_access_node): New structure.
9399 (struct modref_ref_node): Add every_access and accesses array.
9400 (modref_ref_node::modref_ref_node): Update ctor.
9401 (modref_ref_node::search): New member function.
9402 (modref_ref_node::collapse): New member function.
9403 (modref_ref_node::insert_access): New member function.
9404 (modref_base_node::insert_ref): Do not collapse base if ref is 0.
9405 (modref_base_node::collapse): Copllapse also refs.
9406 (modref_tree): Add accesses.
9407 (modref_tree::modref_tree): Initialize max_accesses.
9408 (modref_tree::insert): Add access parameter.
9409 (modref_tree::cleanup): New member function.
9410 (modref_tree::merge): Add parm_map; merge accesses.
9411 (modref_tree::copy_from): New member function.
9412 (modref_tree::create_ggc): Add max_accesses.
9413 * ipa-modref.c (dump_access): New function.
9414 (dump_records): Dump accesses.
9415 (dump_lto_records): Dump accesses.
9416 (get_access): New function.
9417 (record_access): Record access.
9418 (record_access_lto): Record access.
9419 (analyze_call): Compute parm_map.
9420 (analyze_function): Update construction of modref records.
9421 (modref_summaries::duplicate): Likewise; use copy_from.
9422 (write_modref_records): Stream accesses.
9423 (read_modref_records): Sream accesses.
9424 (pass_ipa_modref::execute): Update call of merge.
9425 * params.opt (-param=modref-max-accesses): New.
9426 * tree-ssa-alias.c (alias_stats): Add modref_baseptr_tests.
9427 (dump_alias_stats): Update.
9428 (base_may_alias_with_dereference_p): New function.
9429 (modref_may_conflict): Check accesses.
9430 (ref_maybe_used_by_call_p_1): Update call to modref_may_conflict.
9431 (call_may_clobber_ref_p_1): Update call to modref_may_conflict.
9432
9433 2020-09-24 Richard Sandiford <richard.sandiford@arm.com>
9434
9435 * config/arm/arm.md (*stack_protect_combined_set_insn): For non-PIC,
9436 load the address of the canary rather than the address of the
9437 constant pool entry that points to it.
9438 (*stack_protect_combined_test_insn): Likewise.
9439
9440 2020-09-24 Richard Biener <rguenther@suse.de>
9441
9442 PR tree-optimization/97085
9443 * match.pd (mask ? { false,..} : { true, ..} -> ~mask): New.
9444
9445 2020-09-24 Jan Hubicka <hubicka@ucw.cz>
9446
9447 * ipa-modref-tree.h (modref_base::collapse): Release memory.
9448 (modref_tree::create_ggc): New member function.
9449 (modref_tree::colapse): Release memory.
9450 (modref_tree::~modref_tree): New destructor.
9451 * ipa-modref.c (modref_summaries::create_ggc): New function.
9452 (analyze_function): Use create_ggc.
9453 (modref_summaries::duplicate): Likewise.
9454 (read_modref_records): Likewise.
9455 (modref_read): Likewise.
9456
9457 2020-09-24 Alan Modra <amodra@gmail.com>
9458
9459 * config/rs6000/rs6000.c (rs6000_rtx_costs): Pass mode to
9460 reg_or_add_cint_operand and reg_or_sub_cint_operand.
9461
9462 2020-09-24 Alan Modra <amodra@gmail.com>
9463
9464 PR target/93012
9465 * config/rs6000/rs6000.c (num_insns_constant_gpr): Count rldimi
9466 constants correctly.
9467
9468 2020-09-24 Alan Modra <amodra@gmail.com>
9469
9470 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
9471 Conditionally define __PCREL__.
9472
9473 2020-09-24 Alan Modra <amodra@gmail.com>
9474
9475 PR target/97107
9476 * config/rs6000/rs6000-internal.h (struct rs6000_stack): Improve
9477 calls_p comment.
9478 * config/rs6000/rs6000-logue.c (rs6000_stack_info): Likewise.
9479 (rs6000_expand_split_stack_prologue): Emit the prologue for
9480 functions that make a sibling call.
9481
9482 2020-09-24 David Malcolm <dmalcolm@redhat.com>
9483
9484 * doc/analyzer.texi (Analyzer Paths): Add note about
9485 -fno-analyzer-feasibility.
9486 * doc/invoke.texi (Static Analyzer Options): Add
9487 -fno-analyzer-feasibility.
9488
9489 2020-09-24 Paul A. Clarke <pc@us.ibm.com>
9490
9491 * doc/extend.texi: Add 'd' for doubleword variant of
9492 vector insert instruction.
9493
9494 2020-09-23 Martin Sebor <msebor@redhat.com>
9495
9496 * gimple-array-bounds.cc (build_zero_elt_array_type): New function.
9497 (array_bounds_checker::check_mem_ref): Call it.
9498
9499 2020-09-23 Martin Sebor <msebor@redhat.com>
9500
9501 PR middle-end/97175
9502 * builtins.c (maybe_warn_for_bound): Handle both DECLs and EXPRESSIONs
9503 in pad->dst.ref, same is pad->src.ref.
9504
9505 2020-09-23 Jan Hubicka <jh@suse.cz>
9506
9507 * ipa-fnsummary.c (refs_local_or_readonly_memory_p): New function.
9508 (points_to_local_or_readonly_memory_p): New function.
9509 * ipa-fnsummary.h (refs_local_or_readonly_memory_p): Declare.
9510 (points_to_local_or_readonly_memory_p): Declare.
9511 * ipa-modref.c (record_access_p): Use refs_local_or_readonly_memory_p.
9512 * ipa-pure-const.c (check_op): Likewise.
9513
9514 2020-09-23 Tom de Vries <tdevries@suse.de>
9515
9516 * config/nvptx/nvptx.md: Don't allow operand containing sum of
9517 function ref and const.
9518
9519 2020-09-23 Richard Sandiford <richard.sandiford@arm.com>
9520
9521 * config/aarch64/aarch64-protos.h (aarch64_salt_type): New enum.
9522 (aarch64_stack_protect_canary_mem): Declare.
9523 * config/aarch64/aarch64.md (UNSPEC_SALT_ADDR): New unspec.
9524 (stack_protect_set): Forward to stack_protect_combined_set.
9525 (stack_protect_combined_set): New pattern. Use
9526 aarch64_stack_protect_canary_mem.
9527 (reg_stack_protect_address_<mode>): Add a salt operand.
9528 (stack_protect_test): Forward to stack_protect_combined_test.
9529 (stack_protect_combined_test): New pattern. Use
9530 aarch64_stack_protect_canary_mem.
9531 * config/aarch64/aarch64.c (strip_salt): New function.
9532 (strip_offset_and_salt): Likewise.
9533 (tls_symbolic_operand_type): Use strip_offset_and_salt.
9534 (aarch64_stack_protect_canary_mem): New function.
9535 (aarch64_cannot_force_const_mem): Use strip_offset_and_salt.
9536 (aarch64_classify_address): Likewise.
9537 (aarch64_symbolic_address_p): Likewise.
9538 (aarch64_print_operand): Likewise.
9539 (aarch64_output_addr_const_extra): New function.
9540 (aarch64_tls_symbol_p): Use strip_salt.
9541 (aarch64_classify_symbol): Likewise.
9542 (aarch64_legitimate_pic_operand_p): Use strip_offset_and_salt.
9543 (aarch64_legitimate_constant_p): Likewise.
9544 (aarch64_mov_operand_p): Use strip_salt.
9545 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Override.
9546
9547 2020-09-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9548
9549 PR target/71233
9550 * config/aarch64/arm_neon.h (vreinterpretq_f64_p128,
9551 vreinterpretq_p128_f64): Define.
9552
9553 2020-09-23 Alex Coplan <alex.coplan@arm.com>
9554
9555 * config/arm/arm-cpus.in (neoverse-v1): New.
9556 * config/arm/arm-tables.opt: Regenerate.
9557 * config/arm/arm-tune.md: Regenerate.
9558 * doc/invoke.texi: Document support for Neoverse V1.
9559
9560 2020-09-23 Alex Coplan <alex.coplan@arm.com>
9561
9562 * config/aarch64/aarch64-cores.def: Add Neoverse V1.
9563 * config/aarch64/aarch64-tune.md: Regenerate.
9564 * doc/invoke.texi: Document support for Neoverse V1.
9565
9566 2020-09-23 Richard Biener <rguenther@suse.de>
9567
9568 PR middle-end/96453
9569 * gimple-isel.cc (gimple_expand_vec_cond_expr): Remove
9570 LT_EXPR -> NE_EXPR verification and also apply it for
9571 non-constant masks.
9572
9573 2020-09-23 Jan Hubicka <hubicka@ucw.cz>
9574
9575 * ipa-modref.c (modref_summary::lto_useful_p): New member function.
9576 (modref_summary::useful_p): New member function.
9577 (analyze_function): Drop useless summaries.
9578 (modref_write): Skip useless summaries.
9579 (pass_ipa_modref::execute): Drop useless summaries.
9580 * ipa-modref.h (struct GTY): Declare useful_p and lto_useful_p.
9581 * tree-ssa-alias.c (dump_alias_stats): Fix.
9582 (modref_may_conflict): Fix stats.
9583
9584 2020-09-23 Richard Biener <rguenther@suse.de>
9585
9586 PR middle-end/96466
9587 * internal-fn.c (expand_vect_cond_mask_optab_fn): Use
9588 appropriate mode for force_reg.
9589 * tree.c (build_truth_vector_type_for): Pass VOIDmode to
9590 make_vector_type.
9591
9592 2020-09-23 Richard Sandiford <richard.sandiford@arm.com>
9593
9594 * tree-vectorizer.h (determine_peel_for_niter): Delete in favor of...
9595 (vect_determine_partial_vectors_and_peeling): ...this new function.
9596 * tree-vect-loop-manip.c (vect_update_epilogue_niters): New function.
9597 Reject using vector epilogue loops for single iterations. Install
9598 the constant number of epilogue loop iterations in the associated
9599 loop_vinfo. Rely on vect_determine_partial_vectors_and_peeling
9600 to do the main part of the test.
9601 (vect_do_peeling): Use vect_update_epilogue_niters to handle
9602 epilogue loops with a known number of iterations. Skip recomputing
9603 the number of iterations later in that case. Otherwise, use
9604 vect_determine_partial_vectors_and_peeling to decide whether the
9605 epilogue loop needs to use partial vectors or peeling.
9606 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Set the
9607 default can_use_partial_vectors_p to false if partial-vector-usage=0.
9608 (determine_peel_for_niter): Remove in favor of...
9609 (vect_determine_partial_vectors_and_peeling): ...this new function,
9610 split out from...
9611 (vect_analyze_loop_2): ...here. Reflect the vect_verify_full_masking
9612 and vect_verify_loop_lens results in CAN_USE_PARTIAL_VECTORS_P
9613 rather than USING_PARTIAL_VECTORS_P.
9614
9615 2020-09-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9616
9617 PR target/71233
9618 * config/aarch64/aarch64-simd-builtins.def (frintn): Use BUILTIN_VHSDF_HSDF
9619 for modes. Remove explicit hf instantiation.
9620 * config/aarch64/arm_neon.h (vrndns_f32): Define.
9621
9622 2020-09-23 Richard Biener <rguenther@suse.de>
9623
9624 PR tree-optimization/97173
9625 * tree-vect-loop.c (vectorizable_live_operation): Extend
9626 assert to also conver element conversions.
9627
9628 2020-09-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9629
9630 PR target/71233
9631 * config/aarch64/arm_neon.h (vtrn1q_p64, vtrn2q_p64, vuzp1q_p64,
9632 vuzp2q_p64, vzip1q_p64, vzip2q_p64): Define.
9633
9634 2020-09-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9635
9636 PR target/71233
9637 * config/aarch64/arm_neon.h (vldrq_p128): Define.
9638
9639 2020-09-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9640
9641 PR target/71233
9642 * config/aarch64/arm_neon.h (vstrq_p128): Define.
9643
9644 2020-09-23 Richard Biener <rguenther@suse.de>
9645
9646 PR tree-optimization/97151
9647 * tree-ssa-structalias.c (find_func_aliases_for_call):
9648 DECL_IS_REPLACEABLE_OPERATOR_DELETE_P has no effect on
9649 arguments.
9650
9651 2020-09-23 Richard Biener <rguenther@suse.de>
9652
9653 PR middle-end/97162
9654 * alias.c (compare_base_decls): Use DECL_HARD_REGISTER
9655 and guard with VAR_P.
9656
9657 2020-09-23 Martin Liska <mliska@suse.cz>
9658
9659 PR gcov-profile/97069
9660 * profile.c (branch_prob): Line number must be at least 1.
9661
9662 2020-09-23 Tom de Vries <tdevries@suse.de>
9663
9664 PR target/97158
9665 * config/nvptx/nvptx.c (nvptx_output_mov_insn): Handle move from
9666 DF subreg to DF reg.
9667
9668 2020-09-23 David Malcolm <dmalcolm@redhat.com>
9669
9670 * Makefile.in: Add $(ZLIBINC) to CFLAGS-analyzer/engine.o.
9671
9672 2020-09-22 Jan Hubicka <jh@suse.cz>
9673
9674 * ipa-modref.c (analyze_stmt): Ignore gimple clobber.
9675
9676 2020-09-22 Jan Hubicka <jh@suse.cz>
9677
9678 * ipa-modref-tree.c: Add namespace selftest.
9679 (modref_tree_c_tests): Rename to ...
9680 (ipa_modref_tree_c_tests): ... this.
9681 * ipa-modref.c (pass_modref): Remove destructor.
9682 (ipa_modref_c_finalize): New function.
9683 * ipa-modref.h (ipa_modref_c_finalize): Declare.
9684 * selftest-run-tests.c (selftest::run_tests): Call
9685 ipa_modref_c_finalize.
9686 * selftest.h (ipa_modref_tree_c_tests): Declare.
9687 * toplev.c: Include ipa-modref-tree.h and ipa-modref.h
9688 (toplev::finalize): Call ipa_modref_c_finalize.
9689
9690 2020-09-22 David Malcolm <dmalcolm@redhat.com>
9691
9692 * doc/analyzer.texi (Other Debugging Techniques): Mention
9693 -fdump-analyzer-json.
9694 * doc/invoke.texi (Static Analyzer Options): Add
9695 -fdump-analyzer-json.
9696
9697 2020-09-22 David Faust <david.faust@oracle.com>
9698
9699 * config/bpf/bpf.md: Add defines for signed div and mod operators.
9700
9701 2020-09-22 Martin Liska <mliska@suse.cz>
9702
9703 PR tree-optimization/96979
9704 * doc/invoke.texi: Document new param max-switch-clustering-attempts.
9705 * params.opt: Add new parameter.
9706 * tree-switch-conversion.c (jump_table_cluster::find_jump_tables):
9707 Limit number of attempts.
9708 (bit_test_cluster::find_bit_tests): Likewise.
9709
9710 2020-09-22 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
9711
9712 * config/s390/s390.md ("*cmp<mode>_ccs_0", "*cmp<mode>_ccz_0",
9713 "*cmp<mode>_ccs_0_fastmath"): Basically change "*cmp<mode>_ccs_0" into
9714 "*cmp<mode>_ccz_0" and for fast math add "*cmp<mode>_ccs_0_fastmath".
9715
9716 2020-09-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9717
9718 PR target/71233
9719 * config/aarch64/arm_neon.h (vcls_u8, vcls_u16, vcls_u32,
9720 vclsq_u8, vclsq_u16, vclsq_u32): Define.
9721
9722 2020-09-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9723
9724 PR target/71233
9725 * config/aarch64/arm_neon.h (vceqq_p64, vceqz_p64, vceqzq_p64): Define.
9726
9727 2020-09-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9728
9729 PR target/71233
9730 * config/aarch64/arm_neon.h (vadd_p8, vadd_p16, vadd_p64, vaddq_p8,
9731 vaddq_p16, vaddq_p64, vaddq_p128): Define.
9732
9733 2020-09-22 Jakub Jelinek <jakub@redhat.com>
9734
9735 * params.opt (--param=modref-max-tests=): Fix typo in help text:
9736 perofmed -> performed.
9737 * common.opt: Fix typo: incrmeental -> incremental.
9738 * ipa-modref.c: Fix typos: recroding -> recording, becaue -> because,
9739 analsis -> analysis.
9740 (class modref_summaries): Fix typo: betweehn -> between.
9741 (analyze_call): Fix typo: calle -> callee.
9742 (read_modref_records): Fix typo: expcted -> expected.
9743 (pass_ipa_modref::execute): Fix typo: calle -> callee.
9744
9745 2020-09-22 Jakub Jelinek <jakub@redhat.com>
9746
9747 * common.opt (-fipa-modref): Add dot at the end of option help.
9748 * params.opt (--param=modref-max-tests=): Likewise.
9749
9750 2020-09-21 Marek Polacek <polacek@redhat.com>
9751
9752 * doc/invoke.texi: Document -Wctad-maybe-unsupported.
9753
9754 2020-09-21 Richard Biener <rguenther@suse.de>
9755
9756 PR tree-optimization/97139
9757 * tree-vect-slp.c (vect_bb_slp_mark_live_stmts): Only mark the
9758 pattern root, track visited vectorized stmts.
9759
9760 2020-09-21 Jakub Jelinek <jakub@redhat.com>
9761
9762 * configure.ac: Use mallinfo mallinfo2 as first operand of
9763 gcc_AC_CHECK_DECLS rather than [mallinfo, mallinfo2].
9764 * configure: Regenerated.
9765 * config.in: Regenerated.
9766
9767 2020-09-21 Andrea Corallo <andrea.corallo@arm.com>
9768
9769 * config/aarch64/aarch64-builtins.c
9770 (aarch64_general_expand_builtin): Use expand machinery not to
9771 alter the value of an rtx returned by force_reg.
9772
9773 2020-09-21 Richard Biener <rguenther@suse.de>
9774
9775 PR tree-optimization/97135
9776 * tree-ssa-loop-im.c (sm_seq_push_down): Do not ignore
9777 self-dependences.
9778
9779 2020-09-21 Martin Liska <mliska@suse.cz>
9780
9781 PR tree-optimization/96915
9782 * tree-switch-conversion.c (switch_conversion::expand): Accept
9783 also integer constants.
9784
9785 2020-09-21 Martin Liska <mliska@suse.cz>
9786
9787 * print-tree.c (print_node): Remove extra space.
9788
9789 2020-09-21 Andrea Corallo <andrea.corallo@arm.com>
9790
9791 PR target/96968
9792 * config/aarch64/aarch64-builtins.c
9793 (aarch64_expand_fpsr_fpcr_setter): Fix comment nit.
9794 (aarch64_expand_fpsr_fpcr_getter): New function, expand these
9795 getters using expand_insn machinery.
9796 (aarch64_general_expand_builtin): Make use of.
9797
9798 2020-09-21 Martin Liska <mliska@suse.cz>
9799
9800 * ggc-common.c (ggc_rlimit_bound): Use ONE_? macro.
9801 (ggc_min_expand_heuristic): Likewise.
9802 (ggc_min_heapsize_heuristic): Likewise.
9803 * ggc-page.c (ggc_collect): Likewise.
9804 * system.h (ONE_G): Likewise.
9805
9806 2020-09-21 Martin Liska <mliska@suse.cz>
9807
9808 * ggc-common.c (ggc_prune_overhead_list): Use SIZE_AMOUNT.
9809 * ggc-page.c (release_pages): Likewise.
9810 (ggc_collect): Likewise.
9811 (ggc_trim): Likewise.
9812 (ggc_grow): Likewise.
9813 * timevar.c (timer::print): Likewise.
9814
9815 2020-09-21 Martin Liska <mliska@suse.cz>
9816
9817 * config.in: Regenerate.
9818 * configure: Likewise.
9819 * configure.ac: Detect for mallinfo2.
9820 * ggc-common.c (defined): Use it.
9821 * system.h: Handle also HAVE_MALLINFO2.
9822
9823 2020-09-20 John David Anglin < danglin@gcc.gnu.org>
9824
9825 * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Delete.
9826 * config/pa/pa64-hpux.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
9827 (ENDFILE_SPEC): Link with libgcc_stub.a and mill.a.
9828 * config/pa/pa32-linux.h (ENDFILE_SPEC): Link with libgcc.a.
9829
9830 2020-09-20 Jan Hubicka <hubicka@ucw.cz>
9831
9832 * ipa-modref.c (dump_lto_records): Fix ICE.
9833
9834 2020-09-20 David Cepelik <d@dcepelik.cz>
9835 Jan Hubicka <hubicka@ucw.cz>
9836
9837 * Makefile.in: Add ipa-modref.c and ipa-modref-tree.c.
9838 * alias.c: (reference_alias_ptr_type_1): Export.
9839 * alias.h (reference_alias_ptr_type_1): Declare.
9840 * common.opt (fipa-modref): New.
9841 * gengtype.c (open_base_files): Add ipa-modref-tree.h and ipa-modref.h
9842 * ipa-modref-tree.c: New file.
9843 * ipa-modref-tree.h: New file.
9844 * ipa-modref.c: New file.
9845 * ipa-modref.h: New file.
9846 * lto-section-in.c (lto_section_name): Add ipa_modref.
9847 * lto-streamer.h (enum lto_section_type): Add LTO_section_ipa_modref.
9848 * opts.c (default_options_table): Enable ipa-modref at -O1+.
9849 * params.opt (-param=modref-max-bases, -param=modref-max-refs,
9850 -param=modref-max-tests): New params.
9851 * passes.def: Schedule pass_modref and pass_ipa_modref.
9852 * timevar.def (TV_IPA_MODREF): New timevar.
9853 (TV_TREE_MODREF): New timevar.
9854 * tree-pass.h (make_pass_modref): Declare.
9855 (make_pass_ipa_modref): Declare.
9856 * tree-ssa-alias.c (dump_alias_stats): Include ipa-modref-tree.h
9857 and ipa-modref.h
9858 (alias_stats): Add modref_use_may_alias, modref_use_no_alias,
9859 modref_clobber_may_alias, modref_clobber_no_alias, modref_tests.
9860 (dump_alias_stats): Dump new stats.
9861 (nonoverlapping_array_refs_p): Fix formating.
9862 (modref_may_conflict): New function.
9863 (ref_maybe_used_by_call_p_1): Use it.
9864 (call_may_clobber_ref_p_1): Use it.
9865 (call_may_clobber_ref_p): Update.
9866 (stmt_may_clobber_ref_p_1): Update.
9867 * tree-ssa-alias.h (call_may_clobber_ref_p_1): Update.
9868
9869 2020-09-19 Martin Sebor <msebor@redhat.com>
9870
9871 PR middle-end/82608
9872 PR middle-end/94195
9873 PR c/50584
9874 PR middle-end/84051
9875 * gimple-array-bounds.cc (get_base_decl): New function.
9876 (get_ref_size): New function.
9877 (trailing_array): New function.
9878 (array_bounds_checker::check_array_ref): Call them. Handle arrays
9879 declared in function parameters.
9880 (array_bounds_checker::check_mem_ref): Same. Handle references to
9881 dynamically allocated arrays.
9882
9883 2020-09-19 Martin Sebor <msebor@redhat.com>
9884
9885 PR c/50584
9886 * builtins.c (warn_for_access): Add argument. Distinguish between
9887 reads and writes.
9888 (check_access): Add argument. Distinguish between reads and writes.
9889 (gimple_call_alloc_size): Set range even on failure.
9890 (gimple_parm_array_size): New function.
9891 (compute_objsize): Call it.
9892 (check_memop_access): Pass check_access an additional argument.
9893 (expand_builtin_memchr, expand_builtin_strcat): Same.
9894 (expand_builtin_strcpy, expand_builtin_stpcpy_1): Same.
9895 (expand_builtin_stpncpy, check_strncat_sizes): Same.
9896 (expand_builtin_strncat, expand_builtin_strncpy): Same.
9897 (expand_builtin_memcmp): Same.
9898 * builtins.h (compute_objsize): Declare a new overload.
9899 (gimple_parm_array_size): Declare.
9900 (check_access): Add argument.
9901 * calls.c (append_attrname): Simplify.
9902 (maybe_warn_rdwr_sizes): Handle internal attribute access.
9903 * tree-ssa-uninit.c (maybe_warn_pass_by_reference): Avoid adding
9904 quotes.
9905
9906 2020-09-19 Martin Sebor <msebor@redhat.com>
9907
9908 * tree-ssa-uninit.c (maybe_warn_pass_by_reference): Handle attribute
9909 access internal representation of arrays.
9910
9911 2020-09-19 Martin Sebor <msebor@redhat.com>
9912
9913 PR c/50584
9914 * attribs.c (decl_attributes): Also pass decl along with type
9915 attributes to handlers.
9916 (init_attr_rdwr_indices): Change second argument to attribute chain.
9917 Handle internal attribute representation in addition to external.
9918 (get_parm_access): New function.
9919 (attr_access::to_internal_string): Define new member function.
9920 (attr_access::to_external_string): Define new member function.
9921 (attr_access::vla_bounds): Define new member function.
9922 * attribs.h (struct attr_access): Declare new members.
9923 (attr_access::from_mode_char): Define new member function.
9924 (get_parm_access): Declare new function.
9925 * calls.c (initialize_argument_information): Pass function type
9926 attributes to init_attr_rdwr_indices.
9927 * doc/invoke.texi (-Warray-parameter, -Wvla-parameter): Document.
9928 * tree-pretty-print.c (dump_generic_node): Correct handling of
9929 qualifiers.
9930 * tree-ssa-uninit.c (maybe_warn_pass_by_reference): Same.
9931 * tree.h (access_mode): Add new enumerator.
9932
9933 2020-09-19 Sandra Loosemore <sandra@codesourcery.com>
9934
9935 * doc/generic.texi (Basic Statements): Document SWITCH_EXPR here,
9936 not SWITCH_STMT.
9937 (Statements for C and C++): Rename node to reflect what
9938 the introduction already says about sharing between C and C++
9939 front ends. Copy-edit and correct documentation for structured
9940 loops and switch.
9941
9942 2020-09-19 liuhongt <hongtao.liu@intel.com>
9943
9944 PR target/96861
9945 * config/i386/x86-tune-costs.h (skylake_cost): increase rtx
9946 cost of sse_to_integer from 2 to 6.
9947
9948 2020-09-18 Sudi Das <sudi.das@arm.com>
9949 Omar Tahir <omar.tahir@arm.com>
9950
9951 * config/arm/thumb2.md (*thumb2_csneg): New.
9952 (*thumb2_negscc): Don't match if TARGET_COND_ARITH.
9953 * config/arm/arm.md (*if_neg_move): Don't match if TARGET_COND_ARITH.
9954
9955 2020-09-18 Sudi Das <sudi.das@arm.com>
9956 Omar Tahir <omar.tahir@arm.com>
9957
9958 * config/arm/thumb2.md (*thumb2_csinc): New.
9959 (*thumb2_cond_arith): Generate CINC where possible.
9960
9961 2020-09-18 Sudi Das <sudi.das@arm.com>
9962 Omar Tahir <omar.tahir@arm.com>
9963
9964 * config/arm/arm.h (TARGET_COND_ARITH): New macro.
9965 * config/arm/arm.c (arm_have_conditional_execution): Return false if
9966 TARGET_COND_ARITH before reload.
9967 * config/arm/predicates.md (arm_comparison_operation): Returns true if
9968 comparing CC_REGNUM with constant zero.
9969 * config/arm/thumb2.md (*thumb2_csinv): New.
9970 (*thumb2_movcond): Don't match if TARGET_COND_ARITH.
9971
9972 2020-09-18 Richard Sandiford <richard.sandiford@arm.com>
9973
9974 PR middle-end/91957
9975 * ira.c (ira_setup_eliminable_regset): Skip the special elimination
9976 handling of the hard frame pointer if the hard frame pointer is fixed.
9977
9978 2020-09-18 Richard Biener <rguenther@suse.de>
9979
9980 PR tree-optimization/97081
9981 * tree-vect-patterns.c (vect_recog_rotate_pattern): Use the
9982 precision of the shifted operand to determine the mask.
9983
9984 2020-09-18 Jozef Lawrynowicz <jozef.l@mittosystems.com>
9985
9986 * config/msp430/msp430.c (msp430_print_operand): Update comment.
9987 Cast to long when printing values formatted as long.
9988 Support 'd', 'e', 'f' and 'g' modifiers.
9989 Extract operand value with a single operation for all modifiers.
9990 * doc/extend.texi (msp430Operandmodifiers): New.
9991
9992 2020-09-18 Jozef Lawrynowicz <jozef.l@mittosystems.com>
9993
9994 * config/msp430/msp430.c (increment_stack): Mark insns which increment
9995 the stack as frame_related.
9996 (msp430_expand_prologue): Add comments.
9997 (msp430_expand_epilogue): Mark insns which decrement
9998 the stack as frame_related.
9999 Add reg_note to stack pop insns describing position of register
10000 variables on the stack.
10001
10002 2020-09-18 Andrew Stubbs <ams@codesourcery.com>
10003
10004 * config/gcn/gcn-tree.c (execute_omp_gcn): Delete.
10005 (make_pass_omp_gcn): Delete.
10006 * config/gcn/t-gcn-hsa (PASSES_EXTRA): Delete.
10007 * config/gcn/gcn-passes.def: Removed.
10008
10009 2020-09-18 Alex Coplan <alex.coplan@arm.com>
10010
10011 * cfgloop.h (nb_iter_bound): Reword comment describing is_exit.
10012
10013 2020-09-18 Richard Biener <rguenther@suse.de>
10014
10015 PR tree-optimization/97095
10016 * tree-vect-loop.c (vectorizable_live_operation): Get
10017 the SLP vector type from the correct object.
10018
10019 2020-09-18 Richard Biener <rguenther@suse.de>
10020
10021 PR tree-optimization/97089
10022 * tree-ssa-sccvn.c (visit_nary_op): Do not replace unsigned
10023 divisions.
10024
10025 2020-09-18 Richard Biener <rguenther@suse.de>
10026
10027 PR tree-optimization/97098
10028 * tree-vect-slp.c (vect_bb_slp_mark_live_stmts): Do not
10029 recurse to children when all stmts were already visited.
10030
10031 2020-09-17 Sergei Trofimovich <siarheit@google.com>
10032
10033 * profile.c (sort_hist_values): Clarify hist format:
10034 start with a value, not counter.
10035
10036 2020-09-17 Yeting Kuo <fakepaper56@gmail.com>
10037
10038 * config/riscv/riscv.h (CSW_MAX_OFFSET): Fix typo.
10039
10040 2020-09-17 Patrick Palka <ppalka@redhat.com>
10041
10042 PR c/80076
10043 * gensupport.c (alter_attrs_for_subst_insn) <case SET_ATTR>:
10044 Reduce indentation of misleadingly indented code fragment.
10045 * lra-constraints.c (multi_block_pseudo_p): Likewise.
10046 * sel-sched-ir.c (merge_fences): Likewise.
10047
10048 2020-09-17 Martin Sebor <msebor@redhat.com>
10049
10050 * doc/invoke.texi (-Wuninitialized): Document -Wuninitialized for
10051 allocated objects.
10052 (-Wmaybe-uninitialized): Same.
10053
10054 2020-09-17 Richard Biener <rguenther@suse.de>
10055
10056 * tree-ssa-sccvn.c (visit_nary_op): Value-number multiplications
10057 and divisions to negates of available negated forms.
10058
10059 2020-09-17 Eric Botcazou <ebotcazou@adacore.com>
10060
10061 PR middle-end/97078
10062 * function.c (use_register_for_decl): Test cfun->tail_call_marked
10063 for a parameter here instead of...
10064 (assign_parm_setup_reg): ...here.
10065
10066 2020-09-17 Aldy Hernandez <aldyh@redhat.com>
10067
10068 * range-op.cc (multi_precision_range_tests): Normalize symbolics when copying to a
10069 multi-range.
10070 * value-range.cc (irange::copy_legacy_range): Add test.
10071
10072 2020-09-17 Jan Hubicka <jh@suse.cz>
10073
10074 * cgraph.c (cgraph_node::get_availability): Fix availability of
10075 functions in other partitions
10076 * varpool.c (varpool_node::get_availability): Likewise.
10077
10078 2020-09-17 Jojo R <jiejie_rong@c-sky.com>
10079
10080 * config/csky/csky.opt (msim): New.
10081 * doc/invoke.texi (C-SKY Options): Document -msim.
10082 * config/csky/csky-elf.h (LIB_SPEC): Add simulator runtime.
10083
10084 2020-09-17 Sergei Trofimovich <siarheit@google.com>
10085
10086 * doc/cppenv.texi: Use @code{} instead of @samp{@command{}}
10087 around 'date %s'.
10088
10089 2020-09-17 liuhongt <hongtao.liu@intel.com>
10090
10091 * common/config/i386/i386-common.c
10092 (OPTION_MASK_ISA_AVX_UNSET): Remove OPTION_MASK_ISA_XSAVE_UNSET.
10093 (OPTION_MASK_ISA_XSAVE_UNSET): Add OPTION_MASK_ISA_AVX_UNSET.
10094
10095 2020-09-16 Alexandre Oliva <oliva@adacore.com>
10096
10097 * config/rs6000/rs6000.c (have_compare_and_set_mask): Use
10098 E_*mode in cases.
10099
10100 2020-09-16 Bill Schmidt <wschmidt@linux.ibm.com>
10101
10102 * config/rs6000/predicates.md (current_file_function_operand):
10103 Remove argument from rs6000_pcrel_p call.
10104 * config/rs6000/rs6000-logue.c (rs6000_decl_ok_for_sibcall):
10105 Likewise.
10106 (rs6000_global_entry_point_prologue_needed_p): Likewise.
10107 (rs6000_output_function_prologue): Likewise.
10108 * config/rs6000/rs6000-protos.h (rs6000_function_pcrel_p): New
10109 prototype.
10110 (rs6000_pcrel_p): Remove argument.
10111 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Remove
10112 argument from rs6000_pcrel_p call.
10113 (rs6000_call_template_1): Likewise.
10114 (rs6000_indirect_call_template_1): Likewise.
10115 (rs6000_longcall_ref): Likewise.
10116 (rs6000_call_aix): Likewise.
10117 (rs6000_sibcall_aix): Likewise.
10118 (rs6000_function_pcrel_p): Rename from rs6000_pcrel_p.
10119 (rs6000_pcrel_p): Rewrite.
10120 * config/rs6000/rs6000.md (*pltseq_plt_pcrel<mode>): Remove
10121 argument from rs6000_pcrel_p call.
10122 (*call_local<mode>): Likewise.
10123 (*call_value_local<mode>): Likewise.
10124 (*call_nonlocal_aix<mode>): Likewise.
10125 (*call_value_nonlocal_aix<mode>): Likewise.
10126 (*call_indirect_pcrel<mode>): Likewise.
10127 (*call_value_indirect_pcrel<mode>): Likewise.
10128
10129 2020-09-16 Marek Polacek <polacek@redhat.com>
10130
10131 PR preprocessor/96935
10132 * input.c (get_substring_ranges_for_loc): Return if start.column
10133 is less than 1.
10134
10135 2020-09-16 Martin Sebor <msebor@redhat.com>
10136
10137 PR middle-end/96295
10138 * tree-ssa-uninit.c (maybe_warn_operand): Work harder to avoid
10139 warning for objects of empty structs
10140
10141 2020-09-16 Eric Botcazou <ebotcazou@adacore.com>
10142
10143 * tree-eh.c (lower_try_finally_dup_block): Backward propagate slocs
10144 to stack restore builtin calls.
10145 (cleanup_all_empty_eh): Do again a post-order traversal of the EH
10146 region tree.
10147
10148 2020-09-16 Andrea Corallo <andrea.corallo@arm.com>
10149
10150 * tree-vect-loop.c (vect_need_peeling_or_partial_vectors_p): New
10151 function.
10152 (vect_analyze_loop_2): Make use of it not to select partial
10153 vectors if no peel is required.
10154 (determine_peel_for_niter): Move out some logic into
10155 'vect_need_peeling_or_partial_vectors_p'.
10156
10157 2020-09-16 H.J. Lu <hjl.tools@gmail.com>
10158
10159 PR target/97032
10160 * cfgexpand.c (asm_clobber_reg_kind): Set sp_is_clobbered_by_asm
10161 to true if the stack pointer is clobbered by asm statement.
10162 * emit-rtl.h (rtl_data): Add sp_is_clobbered_by_asm.
10163 * config/i386/i386.c (ix86_get_drap_rtx): Set need_drap to true
10164 if the stack pointer is clobbered by asm statement.
10165
10166 2020-09-16 Ilya Leoshkevich <iii@linux.ibm.com>
10167
10168 * config/s390/vector.md(*vec_tf_to_v1tf): Use "f" instead of "v"
10169 for the source operand.
10170
10171 2020-09-16 Jojo R <jiejie_rong@c-sky.com>
10172
10173 * config.gcc (C-SKY): Set use_gcc_stdint=wrap for elf target.
10174
10175 2020-09-16 Richard Biener <rguenther@suse.de>
10176
10177 * tree-vectorizer.h (_stmt_vec_info::num_slp_uses): Remove.
10178 (STMT_VINFO_NUM_SLP_USES): Likewise.
10179 (vect_free_slp_instance): Adjust.
10180 (vect_update_shared_vectype): Declare.
10181 * tree-vectorizer.c (vec_info::~vec_info): Adjust.
10182 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
10183 (vectorizable_live_operation): Use vector type from
10184 SLP_TREE_REPRESENTATIVE.
10185 (vect_transform_loop): Adjust.
10186 * tree-vect-data-refs.c (vect_slp_analyze_node_alignment):
10187 Set the shared vector type.
10188 * tree-vect-slp.c (vect_free_slp_tree): Remove final_p
10189 parameter, remove STMT_VINFO_NUM_SLP_USES updating.
10190 (vect_free_slp_instance): Adjust.
10191 (vect_create_new_slp_node): Remove STMT_VINFO_NUM_SLP_USES
10192 updating.
10193 (vect_update_shared_vectype): Always compare with the
10194 present vector type, update if NULL.
10195 (vect_build_slp_tree_1): Do not update the shared vector
10196 type here.
10197 (vect_build_slp_tree_2): Adjust.
10198 (slp_copy_subtree): Likewise.
10199 (vect_attempt_slp_rearrange_stmts): Likewise.
10200 (vect_analyze_slp_instance): Likewise.
10201 (vect_analyze_slp): Likewise.
10202 (vect_slp_analyze_node_operations_1): Update the shared
10203 vector type.
10204 (vect_slp_analyze_operations): Adjust.
10205 (vect_slp_analyze_bb_1): Likewise.
10206
10207 2020-09-16 Jojo R <jiejie_rong@c-sky.com>
10208
10209 * config/csky/t-csky-linux (CSKY_MULTILIB_OSDIRNAMES): Use mfloat-abi.
10210 (MULTILIB_OPTIONS): Likewise.
10211 * config/csky/t-csky-elf (MULTILIB_OPTIONS): Likewise.
10212 (MULTILIB_EXCEPTIONS): Likewise.
10213
10214 2020-09-16 Jakub Jelinek <jakub@redhat.com>
10215
10216 * config/arm/arm.c (arm_option_restore): Comment out opts argument
10217 name to avoid unused parameter warnings.
10218
10219 2020-09-16 Jakub Jelinek <jakub@redhat.com>
10220
10221 * optc-save-gen.awk: In cl_optimization_stream_out use
10222 bp_pack_var_len_{int,unsigned} instead of bp_pack_value. In
10223 cl_optimization_stream_in use bp_unpack_var_len_{int,unsigned}
10224 instead of bp_unpack_value. Formatting fix.
10225
10226 2020-09-16 Jakub Jelinek <jakub@redhat.com>
10227
10228 PR tree-optimization/97053
10229 * gimple-ssa-store-merging.c (check_no_overlap): Add FIRST_ORDER,
10230 START, FIRST_EARLIER and LAST_EARLIER arguments. Return false if
10231 any stores between FIRST_EARLIER inclusive and LAST_EARLIER exclusive
10232 has order in between FIRST_ORDER and LAST_ORDER and overlaps the to
10233 be merged store.
10234 (imm_store_chain_info::try_coalesce_bswap): Add FIRST_EARLIER argument.
10235 Adjust check_no_overlap caller.
10236 (imm_store_chain_info::coalesce_immediate_stores): Add first_earlier
10237 and last_earlier variables, adjust them during iterations. Adjust
10238 check_no_overlap callers, call check_no_overlap even when extending
10239 overlapping stores by extra INTEGER_CST stores.
10240
10241 2020-09-16 Jojo R <jiejie_rong@c-sky.com>
10242
10243 * config/csky/csky-linux-elf.h (GLIBC_DYNAMIC_LINKER): Use mfloat-abi.
10244
10245 2020-09-16 Kewen Lin <linkw@linux.ibm.com>
10246
10247 PR target/97019
10248 * config/rs6000/rs6000-p8swap.c (find_alignment_op): Adjust to
10249 support multiple defintions which are all AND operations with
10250 the mask -16B.
10251 (recombine_lvx_pattern): Adjust to handle multiple AND operations
10252 from find_alignment_op.
10253 (recombine_stvx_pattern): Likewise.
10254
10255 2020-09-16 Jojo R <jiejie_rong@c-sky.com>
10256
10257 * config/csky/csky.md (CSKY_NPARM_FREGS): New.
10258 (call_value_internal_vs/d): New.
10259 (untyped_call): New.
10260 * config/csky/csky.h (TARGET_SINGLE_FPU): New.
10261 (TARGET_DOUBLE_FPU): New.
10262 (FUNCTION_VARG_REGNO_P): New.
10263 (CSKY_VREG_MODE_P): New.
10264 (FUNCTION_VARG_MODE_P): New.
10265 (CUMULATIVE_ARGS): Add extra regs info.
10266 (INIT_CUMULATIVE_ARGS): Use csky_init_cumulative_args.
10267 (FUNCTION_ARG_REGNO_P): Use FUNCTION_VARG_REGNO_P.
10268 * config/csky/csky-protos.h (csky_init_cumulative_args): Extern.
10269 * config/csky/csky.c (csky_cpu_cpp_builtins): Support TARGET_HARD_FLOAT_ABI.
10270 (csky_function_arg): Likewise.
10271 (csky_num_arg_regs): Likewise.
10272 (csky_function_arg_advance): Likewise.
10273 (csky_function_value): Likewise.
10274 (csky_libcall_value): Likewise.
10275 (csky_function_value_regno_p): Likewise.
10276 (csky_arg_partial_bytes): Likewise.
10277 (csky_setup_incoming_varargs): Likewise.
10278 (csky_init_cumulative_args): New.
10279
10280 2020-09-16 Bill Schmidt <wschmidt@linux.ibm.com>
10281
10282 * config/rs6000/rs6000-call.c (altivec_init_builtins): Fix name
10283 of __builtin_altivec_xst_len_r.
10284
10285 2020-09-15 Ilya Leoshkevich <iii@linux.ibm.com>
10286
10287 * rtlanal.c (set_noop_p): Treat subregs of registers in
10288 different modes conservatively.
10289
10290 2020-09-15 Richard Biener <rguenther@suse.de>
10291
10292 * tree-vect-slp.c (vect_get_and_check_slp_defs): Make swap
10293 argument by-value and do not change it.
10294 (vect_build_slp_tree_2): Adjust, set swap to NULL after last
10295 use.
10296
10297 2020-09-15 Feng Xue <fxue@os.amperecomputing.com>
10298
10299 PR tree-optimization/94234
10300 * match.pd (T)(A) +- (T)(B) -> (T)(A +- B): New simplification.
10301
10302 2020-09-15 Segher Boessenkool <segher@kernel.crashing.org>
10303
10304 PR rtl-optimization/96475
10305 * bb-reorder.c (duplicate_computed_gotos): If we did anything, run
10306 cleanup_cfg.
10307
10308 2020-09-15 Richard Biener <rguenther@suse.de>
10309
10310 * tree-vect-slp.c (vect_build_slp_tree_2): Also consider
10311 building an operand from scalars when building it did not
10312 fail fatally but avoid messing with the upcall splitting
10313 of groups.
10314
10315 2020-09-15 Andre Vieira <andre.simoesdiasvieira@arm.com>
10316
10317 * config/arm/arm.c (arm_options_perform_arch_sanity_checks): Do not
10318 check +D32 for CMSE if -mfloat-abi=soft
10319
10320 2020-09-15 liuhongt <hongtao.liu@intel.com>
10321
10322 PR target/96744
10323 * config/i386/x86-tune-costs.h (struct processor_costs):
10324 Increase mask <-> integer cost for non AVX512 target to avoid
10325 spill gpr to mask. Also retune mask <-> integer and
10326 mask_load/store for skylake_cost.
10327
10328 2020-09-15 Jakub Jelinek <jakub@redhat.com>
10329
10330 PR target/97028
10331 * config/i386/sse.md (mul<mode>3<mask_name>_bcs,
10332 <avx512>_div<mode>3<mask_name>_bcst): Use <avx512bcst> instead of
10333 <<avx512bcst>>.
10334
10335 2020-09-15 Tobias Burnus <tobias@codesourcery.com>
10336
10337 PR fortran/96668
10338 * gimplify.c (gimplify_omp_for): Add 'bool openacc' argument;
10339 update omp_finish_clause calls.
10340 (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses,
10341 gimplify_expr, gimplify_omp_loop): Update omp_finish_clause
10342 and/or gimplify_for calls.
10343 * langhooks-def.h (lhd_omp_finish_clause): Add bool openacc arg.
10344 * langhooks.c (lhd_omp_finish_clause): Likewise.
10345 * langhooks.h (lhd_omp_finish_clause): Likewise.
10346 * omp-low.c (scan_sharing_clauses): Keep GOMP_MAP_TO_PSET cause for
10347 'declare target' vars.
10348
10349 2020-09-15 Feng Xue <fxue@os.amperecomputing.com>
10350
10351 PR tree-optimization/94234
10352 * genmatch.c (dt_simplify::gen_1): Emit check on final simplification
10353 result when "!" is specified on toplevel output expr.
10354 * match.pd ((A * C) +- (B * C) -> (A +- B) * C): Allow folding on expr
10355 with multi-use operands if final result is a simple gimple value.
10356
10357 2020-09-14 Sergei Trofimovich <siarheit@google.com>
10358
10359 * doc/invoke.texi: fix '-fprofile-reproducibility' option
10360 spelling in manual.
10361
10362 2020-09-14 Jose E. Marchesi <jose.marchesi@oracle.com>
10363
10364 * config/bpf/bpf.md ("nop"): Re-define as `ja 0'.
10365
10366 2020-09-14 Eric Botcazou <ebotcazou@adacore.com>
10367
10368 * cgraphunit.c (cgraph_node::expand_thunk): Make sure to set
10369 cfun->tail_call_marked when forcing a tail call.
10370 * function.c (assign_parm_setup_reg): Always use a register to
10371 load a parameter passed by reference if cfun->tail_call_marked.
10372
10373 2020-09-14 Pat Haugen <pthaugen@linux.ibm.com>
10374
10375 * config/rs6000/power10.md (power10-mffgpr, power10-mftgpr): Rename to
10376 power10-mtvsr/power10-mfvsr.
10377 * config/rs6000/power6.md (X2F_power6, power6-mftgpr, power6-mffgpr):
10378 Remove.
10379 * config/rs6000/power8.md (power8-mffgpr, power8-mftgpr): Rename to
10380 power8-mtvsr/power8-mfvsr.
10381 * config/rs6000/power9.md (power9-mffgpr, power9-mftgpr): Rename to
10382 power9-mtvsr/power9-mfvsr.
10383 * config/rs6000/rs6000.c (rs6000_adjust_cost): Remove Power6
10384 TYPE_MFFGPR cases.
10385 * config/rs6000/rs6000.md (mffgpr, mftgpr, zero_extendsi<mode>2,
10386 extendsi<mode>2, @signbit<mode>2_dm, lfiwax, lfiwzx, *movsi_internal1,
10387 movsi_from_sf, *movdi_from_sf_zero_ext, *mov<mode>_internal,
10388 movsd_hardfloat, movsf_from_si, *mov<mode>_hardfloat64, p8_mtvsrwz,
10389 p8_mtvsrd_df, p8_mtvsrd_sf, p8_mfvsrd_3_<mode>, *movdi_internal64,
10390 unpack<mode>_dm): Rename mffgpr/mftgpr to mtvsr/mfvsr.
10391 * config/rs6000/vsx.md (vsx_mov<mode>_64bit, vsx_extract_<mode>,
10392 vsx_extract_si, *vsx_extract_<mode>_p8): Likewise.
10393
10394 2020-09-14 Jakub Jelinek <jakub@redhat.com>
10395
10396 * config/arm/arm.opt (x_arm_arch_string, x_arm_cpu_string,
10397 x_arm_tune_string): Remove TargetSave entries.
10398 (march=, mcpu=, mtune=): Add Save keyword.
10399 * config/arm/arm.c (arm_option_save): Remove.
10400 (TARGET_OPTION_SAVE): Don't redefine.
10401 (arm_option_restore): Don't restore x_arm_*_string here.
10402
10403 2020-09-14 Jakub Jelinek <jakub@redhat.com>
10404
10405 * opt-read.awk: Also initialize extra_target_var_types array.
10406 * opth-gen.awk: Emit explicit_mask arrays to struct cl_optimization
10407 and cl_target_option. Adjust cl_optimization_save,
10408 cl_optimization_restore, cl_target_option_save and
10409 cl_target_option_restore declarations.
10410 * optc-save-gen.awk: Add opts_set argument to cl_optimization_save,
10411 cl_optimization_restore, cl_target_option_save and
10412 cl_target_option_restore functions and save or restore opts_set
10413 next to the opts values into or from explicit_mask arrays.
10414 In cl_target_option_eq and cl_optimization_option_eq compare
10415 explicit_mask arrays, in cl_target_option_hash and cl_optimization_hash
10416 hash them and in cl_target_option_stream_out,
10417 cl_target_option_stream_in, cl_optimization_stream_out and
10418 cl_optimization_stream_in stream them.
10419 * tree.h (build_optimization_node, build_target_option_node): Add
10420 opts_set argument.
10421 * tree.c (build_optimization_node): Add opts_set argument, pass it
10422 to cl_optimization_save.
10423 (build_target_option_node): Add opts_set argument, pass it to
10424 cl_target_option_save.
10425 * function.c (invoke_set_current_function_hook): Adjust
10426 cl_optimization_restore caller.
10427 * ipa-inline-transform.c (inline_call): Adjust cl_optimization_restore
10428 and build_optimization_node callers.
10429 * target.def (TARGET_OPTION_SAVE, TARGET_OPTION_RESTORE): Add opts_set
10430 argument.
10431 * target-globals.c (save_target_globals_default_opts): Adjust
10432 cl_optimization_restore callers.
10433 * toplev.c (process_options): Adjust build_optimization_node and
10434 cl_optimization_restore callers.
10435 (target_reinit): Adjust cl_optimization_restore caller.
10436 * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers):
10437 Adjust build_optimization_node and cl_optimization_restore callers.
10438 * doc/tm.texi: Updated.
10439 * config/aarch64/aarch64.c (aarch64_override_options): Adjust
10440 build_target_option_node caller.
10441 (aarch64_option_save, aarch64_option_restore): Add opts_set argument.
10442 (aarch64_set_current_function): Adjust cl_target_option_restore
10443 caller.
10444 (aarch64_option_valid_attribute_p): Adjust cl_target_option_save,
10445 cl_target_option_restore, cl_optimization_restore,
10446 build_optimization_node and build_target_option_node callers.
10447 * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse): Adjust
10448 cl_target_option_restore and build_target_option_node callers.
10449 * config/arm/arm.c (arm_option_save, arm_option_restore): Add
10450 opts_set argument.
10451 (arm_option_override): Adjust cl_target_option_save,
10452 build_optimization_node and build_target_option_node callers.
10453 (arm_set_current_function): Adjust cl_target_option_restore caller.
10454 (arm_valid_target_attribute_tree): Adjust build_target_option_node
10455 caller.
10456 (add_attribute): Formatting fix.
10457 (arm_valid_target_attribute_p): Adjust cl_optimization_restore,
10458 cl_target_option_restore, arm_valid_target_attribute_tree and
10459 build_optimization_node callers.
10460 * config/arm/arm-c.c (arm_pragma_target_parse): Adjust
10461 cl_target_option_restore callers.
10462 * config/csky/csky.c (csky_option_override): Adjust
10463 build_target_option_node and cl_target_option_save callers.
10464 * config/gcn/gcn.c (gcn_fixup_accel_lto_options): Adjust
10465 build_optimization_node and cl_optimization_restore callers.
10466 * config/i386/i386-builtins.c (get_builtin_code_for_version):
10467 Adjust cl_target_option_save and cl_target_option_restore
10468 callers.
10469 * config/i386/i386-c.c (ix86_pragma_target_parse): Adjust
10470 build_target_option_node and cl_target_option_restore callers.
10471 * config/i386/i386-options.c (ix86_function_specific_save,
10472 ix86_function_specific_restore): Add opts_set arguments.
10473 (ix86_valid_target_attribute_tree): Adjust build_target_option_node
10474 caller.
10475 (ix86_valid_target_attribute_p): Adjust build_optimization_node,
10476 cl_optimization_restore, cl_target_option_restore,
10477 ix86_valid_target_attribute_tree and build_optimization_node callers.
10478 (ix86_option_override_internal): Adjust build_target_option_node
10479 caller.
10480 (ix86_reset_previous_fndecl, ix86_set_current_function): Adjust
10481 cl_target_option_restore callers.
10482 * config/i386/i386-options.h (ix86_function_specific_save,
10483 ix86_function_specific_restore): Add opts_set argument.
10484 * config/nios2/nios2.c (nios2_option_override): Adjust
10485 build_target_option_node caller.
10486 (nios2_option_save, nios2_option_restore): Add opts_set argument.
10487 (nios2_valid_target_attribute_tree): Adjust build_target_option_node
10488 caller.
10489 (nios2_valid_target_attribute_p): Adjust build_optimization_node,
10490 cl_optimization_restore, cl_target_option_save and
10491 cl_target_option_restore callers.
10492 (nios2_set_current_function, nios2_pragma_target_parse): Adjust
10493 cl_target_option_restore callers.
10494 * config/pru/pru.c (pru_option_override): Adjust
10495 build_target_option_node caller.
10496 (pru_set_current_function): Adjust cl_target_option_restore
10497 callers.
10498 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust
10499 cl_target_option_save caller.
10500 (rs6000_option_override_internal): Adjust build_target_option_node
10501 caller.
10502 (rs6000_valid_attribute_p): Adjust build_optimization_node,
10503 cl_optimization_restore, cl_target_option_save,
10504 cl_target_option_restore and build_target_option_node callers.
10505 (rs6000_pragma_target_parse): Adjust cl_target_option_restore and
10506 build_target_option_node callers.
10507 (rs6000_activate_target_options): Adjust cl_target_option_restore
10508 callers.
10509 (rs6000_function_specific_save, rs6000_function_specific_restore):
10510 Add opts_set argument.
10511 * config/s390/s390.c (s390_function_specific_restore): Likewise.
10512 (s390_option_override_internal): Adjust s390_function_specific_restore
10513 caller.
10514 (s390_option_override, s390_valid_target_attribute_tree): Adjust
10515 build_target_option_node caller.
10516 (s390_valid_target_attribute_p): Adjust build_optimization_node,
10517 cl_optimization_restore and cl_target_option_restore callers.
10518 (s390_activate_target_options): Adjust cl_target_option_restore
10519 caller.
10520 * config/s390/s390-c.c (s390_cpu_cpp_builtins): Adjust
10521 cl_target_option_save caller.
10522 (s390_pragma_target_parse): Adjust build_target_option_node and
10523 cl_target_option_restore callers.
10524
10525 2020-09-13 Roger Sayle <roger@nextmovesoftware.com>
10526
10527 * config/pa/pa.c (hppa_rtx_costs) [ASHIFT, ASHIFTRT, LSHIFTRT]:
10528 Provide accurate costs for DImode shifts of integer constants.
10529
10530 2020-09-12 Roger Sayle <roger@nextmovesoftware.com>
10531 John David Anglin <danglin@gcc.gnu.org>
10532
10533 * config/pa/pa.md (shrpsi4_1, shrpsi4_2): New define_insns split
10534 out from previous shrpsi4 providing two commutitive variants using
10535 plus_xor_ior_operator as a predicate.
10536 (shrpdi4_1, shrpdi4_2, shrpdi_3, shrpdi_4): Likewise DImode versions
10537 where _1 and _2 take register shifts, and _3 and _4 for integers.
10538 (rotlsi3_internal): Name this anonymous instruction.
10539 (rotrdi3): New DImode insn copied from rotrsi3.
10540 (rotldi3): New DImode expander copied from rotlsi3.
10541 (rotldi4_internal): New DImode insn copied from rotsi3_internal.
10542
10543 2020-09-11 Michael Meissner <meissner@linux.ibm.com>
10544
10545 * config/rs6000/rs6000.c (rs6000_maybe_emit_maxc_minc): Rename
10546 from rs6000_emit_p9_fp_minmax. Change return type to bool. Add
10547 comments to document NaN/signed zero behavior.
10548 (rs6000_maybe_emit_fp_cmove): Rename from rs6000_emit_p9_fp_cmove.
10549 (have_compare_and_set_mask): New helper function.
10550 (rs6000_emit_cmove): Update calls to new names and the new helper
10551 function.
10552
10553 2020-09-11 Nathan Sidwell <nathan@acm.org>
10554
10555 * config/i386/sse.md (mov<mode>): Fix operand indices.
10556
10557 2020-09-11 Martin Sebor <msebor@redhat.com>
10558
10559 PR middle-end/96903
10560 * builtins.c (compute_objsize): Remove incorrect offset adjustment.
10561 (compute_objsize): Adjust offset range here instead.
10562
10563 2020-09-11 Richard Biener <rguenther@suse.de>
10564
10565 PR tree-optimization/97020
10566 * tree-vect-slp.c (vect_slp_analyze_operations): Apply
10567 SLP costs when doing loop vectorization.
10568
10569 2020-09-11 Tom de Vries <tdevries@suse.de>
10570
10571 PR target/96964
10572 * config/nvptx/nvptx.md (define_expand "atomic_test_and_set"): New
10573 expansion.
10574
10575 2020-09-11 Andrew Stubbs <ams@codesourcery.com>
10576
10577 * config/gcn/gcn.c (gcn_hard_regno_mode_ok): Align TImode registers.
10578 * config/gcn/gcn.md: Assert that TImode registers do not early clobber.
10579
10580 2020-09-11 Richard Biener <rguenther@suse.de>
10581
10582 * tree-vectorizer.h (_slp_instance::location): New method.
10583 (vect_schedule_slp): Adjust prototype.
10584 * tree-vectorizer.c (vec_info::remove_stmt): Adjust
10585 the BB region begin if we removed the stmt it points to.
10586 * tree-vect-loop.c (vect_transform_loop): Adjust.
10587 * tree-vect-slp.c (_slp_instance::location): Implement.
10588 (vect_analyze_slp_instance): For BB vectorization set
10589 vect_location to that of the instance.
10590 (vect_slp_analyze_operations): Likewise.
10591 (vect_bb_vectorization_profitable_p): Remove wrapper.
10592 (vect_slp_analyze_bb_1): Remove cost check here.
10593 (vect_slp_region): Cost check and code generate subgraphs separately,
10594 report optimized locations and missed optimizations due to
10595 profitability for each of them.
10596 (vect_schedule_slp): Get the vector of SLP graph entries to
10597 vectorize as argument.
10598
10599 2020-09-11 Richard Biener <rguenther@suse.de>
10600
10601 PR tree-optimization/97013
10602 * tree-vect-slp.c (vect_slp_analyze_bb_1): Remove duplicate dumping.
10603
10604 2020-09-11 Richard Biener <rguenther@suse.de>
10605
10606 * tree-vect-slp.c (vect_build_slp_tree_1): Check vector
10607 types for all lanes are compatible.
10608 (vect_analyze_slp_instance): Appropriately check for stores.
10609 (vect_schedule_slp): Likewise.
10610
10611 2020-09-11 Tom de Vries <tdevries@suse.de>
10612
10613 * config/nvptx/nvptx.c (nvptx_assemble_value): Fix undefined
10614 behaviour.
10615
10616 2020-09-11 Tom de Vries <tdevries@suse.de>
10617
10618 * config/nvptx/nvptx.c (nvptx_assemble_value): Handle negative
10619 __int128.
10620
10621 2020-09-11 Aaron Sawdey <acsawdey@linux.ibm.com>
10622
10623 * config/rs6000/rs6000.c (rs6000_option_override_internal):
10624 Change default.
10625
10626 2020-09-10 Michael Meissner <meissner@linux.ibm.com>
10627
10628 * config/rs6000/rs6000-protos.h (rs6000_emit_cmove): Change return
10629 type to bool.
10630 (rs6000_emit_int_cmove): Change return type to bool.
10631 * config/rs6000/rs6000.c (rs6000_emit_cmove): Change return type
10632 to bool.
10633 (rs6000_emit_int_cmove): Change return type to bool.
10634
10635 2020-09-10 Tom de Vries <tdevries@suse.de>
10636
10637 PR target/97004
10638 * config/nvptx/nvptx.c (nvptx_assemble_value): Handle shift by
10639 number of bits in shift operand.
10640
10641 2020-09-10 Jakub Jelinek <jakub@redhat.com>
10642
10643 * lto-streamer-out.c (collect_block_tree_leafs): Recurse on
10644 root rather than BLOCK_SUBBLOCKS (root).
10645
10646 2020-09-10 Alex Coplan <alex.coplan@arm.com>
10647
10648 * config/aarch64/aarch64-cores.def: Add Cortex-R82.
10649 * config/aarch64/aarch64-tune.md: Regenerate.
10650 * doc/invoke.texi: Add entry for Cortex-R82.
10651
10652 2020-09-10 Alex Coplan <alex.coplan@arm.com>
10653
10654 * common/config/aarch64/aarch64-common.c
10655 (aarch64_get_extension_string_for_isa_flags): Don't force +crc for
10656 Armv8-R.
10657 * config/aarch64/aarch64-arches.def: Add entry for Armv8-R.
10658 * config/aarch64/aarch64-c.c (aarch64_define_unconditional_macros): Set
10659 __ARM_ARCH_PROFILE correctly for Armv8-R.
10660 * config/aarch64/aarch64.h (AARCH64_FL_V8_R): New.
10661 (AARCH64_FL_FOR_ARCH8_R): New.
10662 (AARCH64_ISA_V8_R): New.
10663 * doc/invoke.texi: Add Armv8-R to architecture table.
10664
10665 2020-09-10 Jakub Jelinek <jakub@redhat.com>
10666
10667 * config/arm/arm.c (arm_override_options_after_change_1): Add opts_set
10668 argument, test opts_set->x_str_align_functions rather than
10669 opts->x_str_align_functions.
10670 (arm_override_options_after_change, arm_option_override_internal,
10671 arm_set_current_function): Adjust callers.
10672
10673 2020-09-10 Jakub Jelinek <jakub@redhat.com>
10674
10675 PR target/96939
10676 * config/arm/arm.c (arm_override_options_after_change): Don't call
10677 arm_configure_build_target here.
10678 (arm_set_current_function): Call arm_override_options_after_change_1
10679 at the end.
10680
10681 2020-09-10 Pat Haugen <pthaugen@linux.ibm.com>
10682
10683 * config/rs6000/rs6000.md
10684 (lfiwzx, floatunssi<mode>2_lfiwzx, p8_mtvsrwz, p8_mtvsrd_sf): Fix insn
10685 type.
10686 * config/rs6000/vsx.md
10687 (vsx_concat_<mode>, vsx_splat_<mode>_reg, vsx_splat_v4sf): Likewise.
10688
10689 2020-09-10 Jonathan Yong <10walls@gmail.com>
10690
10691 * config.host: Adjust plugin name for Windows.
10692
10693 2020-09-10 Tom de Vries <tdevries@suse.de>
10694
10695 PR tree-optimization/97000
10696 * tree-cfgcleanup.c (cleanup_call_ctrl_altering_flag): Don't clear
10697 flag for IFN_UNIQUE.
10698
10699 2020-09-10 Jakub Jelinek <jakub@redhat.com>
10700
10701 PR debug/93865
10702 * lto-streamer.h (struct output_block): Add emit_pwd member.
10703 * lto-streamer-out.c: Include toplev.h.
10704 (clear_line_info): Set emit_pwd.
10705 (lto_output_location_1): Encode the ob->current_file != xloc.file
10706 bit directly into the location number. If changing file, emit
10707 additionally a bit whether pwd is emitted and emit it before the
10708 first relative pathname since clear_line_info.
10709 (output_function, output_constructor): Don't call clear_line_info
10710 here.
10711 * lto-streamer-in.c (struct string_pair_map): New type.
10712 (struct string_pair_map_hasher): New type.
10713 (string_pair_map_hasher::hash): New method.
10714 (string_pair_map_hasher::equal): New method.
10715 (path_name_pair_hash_table, string_pair_map_allocator): New variables.
10716 (relative_path_prefix, canon_relative_path_prefix,
10717 canon_relative_file_name): New functions.
10718 (canon_file_name): Add relative_prefix argument, if non-NULL
10719 and string is a relative path, return canon_relative_file_name.
10720 (lto_location_cache::input_location_and_block): Decode file change
10721 bit from the location number. If changing file, unpack bit whether
10722 pwd is streamed and stream in pwd. Adjust canon_file_name caller.
10723 (lto_free_file_name_hash): Delete path_name_pair_hash_table
10724 and string_pair_map_allocator.
10725
10726 2020-09-10 Richard Biener <rguenther@suse.de>
10727
10728 PR tree-optimization/96043
10729 * tree-vectorizer.h (_slp_instance::cost_vec): New.
10730 (_slp_instance::subgraph_entries): Likewise.
10731 (BB_VINFO_TARGET_COST_DATA): Remove.
10732 * tree-vect-slp.c (vect_free_slp_instance): Free
10733 cost_vec and subgraph_entries.
10734 (vect_analyze_slp_instance): Initialize them.
10735 (vect_slp_analyze_operations): Defer passing costs to
10736 the target, instead record them in the SLP graph entry.
10737 (get_ultimate_leader): New helper for graph partitioning.
10738 (vect_bb_partition_graph_r): Likewise.
10739 (vect_bb_partition_graph): New function to partition the
10740 SLP graph into independently costable parts.
10741 (vect_bb_vectorization_profitable_p): Adjust to work on
10742 a subgraph.
10743 (vect_bb_vectorization_profitable_p): New wrapper,
10744 discarding non-profitable vectorization of subgraphs.
10745 (vect_slp_analyze_bb_1): Call vect_bb_partition_graph before
10746 costing.
10747
10748 2020-09-09 David Malcolm <dmalcolm@redhat.com>
10749
10750 PR analyzer/94355
10751 * doc/invoke.texi: Document -Wanalyzer-mismatching-deallocation.
10752
10753 2020-09-09 Segher Boessenkool <segher@kernel.crashing.org>
10754
10755 PR rtl-optimization/96475
10756 * bb-reorder.c (maybe_duplicate_computed_goto): Remove single_pred_p
10757 micro-optimization.
10758
10759 2020-09-09 Tom de Vries <tdevries@suse.de>
10760
10761 * config/nvptx/nvptx.c (nvptx_assemble_decl_begin): Fix Wformat
10762 warning.
10763
10764 2020-09-09 Richard Biener <rguenther@suse.de>
10765
10766 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Do
10767 nothing when the permutation doesn't permute.
10768
10769 2020-09-09 Tom de Vries <tdevries@suse.de>
10770
10771 PR target/96991
10772 * config/nvptx/nvptx.c (write_fn_proto): Fix boolean type check.
10773
10774 2020-09-09 Richard Biener <rguenther@suse.de>
10775
10776 * tree-vect-stmts.c (vectorizable_comparison): Allow
10777 STMT_VINFO_LIVE_P stmts.
10778
10779 2020-09-09 Richard Biener <rguenther@suse.de>
10780
10781 * tree-vect-stmts.c (vectorizable_condition): Allow
10782 STMT_VINFO_LIVE_P stmts.
10783
10784 2020-09-09 Richard Biener <rguenther@suse.de>
10785
10786 PR tree-optimization/96978
10787 * tree-vect-stmts.c (vectorizable_condition): Do not
10788 look at STMT_VINFO_LIVE_P for BB vectorization.
10789 (vectorizable_comparison): Likewise.
10790
10791 2020-09-09 liuhongt <hongtao.liu@intel.com>
10792
10793 PR target/96955
10794 * config/i386/i386.md (get_thread_pointer<mode>): New
10795 expander.
10796
10797 2020-09-08 Julian Brown <julian@codesourcery.com>
10798
10799 * config/gcn/gcn-valu.md (scatter<mode>_insn_1offset_ds<exec_scatter>):
10800 Add waitcnt.
10801 * config/gcn/gcn.md (*mov<mode>_insn, *movti_insn): Add waitcnt to
10802 ds_write alternatives.
10803
10804 2020-09-08 Julian Brown <julian@codesourcery.com>
10805
10806 * config/gcn/mkoffload.c (process_asm): Initialise regcount. Update
10807 scanning for SGPR/VGPR usage for HSACO v3.
10808
10809 2020-09-08 Aldy Hernandez <aldyh@redhat.com>
10810
10811 PR tree-optimization/96967
10812 * tree-vrp.c (find_case_label_range): Cast label range to
10813 type of switch operand.
10814
10815 2020-09-08 Jozef Lawrynowicz <jozef.l@mittosystems.com>
10816
10817 * config/msp430/msp430.c (msp430_file_end): Fix jumbled
10818 HAVE_AS_MSPABI_ATTRIBUTE and HAVE_AS_GNU_ATTRIBUTE checks.
10819 * configure: Regenerate.
10820 * configure.ac: Use ".mspabi_attribute 4,2" to check for assembler
10821 support for this object attribute directive.
10822
10823 2020-09-08 Jozef Lawrynowicz <jozef.l@mittosystems.com>
10824
10825 * common/config/msp430/msp430-common.c (msp430_handle_option): Remove
10826 OPT_mcpu_ handling.
10827 Set target_cpu value to new enum values when parsing certain -mmcu=
10828 values.
10829 * config/msp430/msp430-opts.h (enum msp430_cpu_types): New.
10830 * config/msp430/msp430.c (msp430_option_override): Handle new
10831 target_cpu enum values.
10832 Set target_cpu using extracted value for given MCU when -mcpu=
10833 option is not passed by the user.
10834 * config/msp430/msp430.opt: Handle -mcpu= values using enums.
10835
10836 2020-09-07 Richard Sandiford <richard.sandiford@arm.com>
10837
10838 PR rtl-optimization/96796
10839 * lra-constraints.c (in_class_p): Add a default-false
10840 allow_all_reload_class_changes_p parameter. Do not treat
10841 reload moves specially when the parameter is true.
10842 (get_reload_reg): Try to narrow the class of an existing OP_OUT
10843 reload if we're reloading a reload pseudo in a reload instruction.
10844
10845 2020-09-07 Andrea Corallo <andrea.corallo@arm.com>
10846
10847 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Revert
10848 dead-code removal introduced by 09fa6acd8d9 + add a comment to
10849 clarify.
10850
10851 2020-09-07 Jozef Lawrynowicz <jozef.l@mittosystems.com>
10852
10853 * doc/rtl.texi (subreg): Fix documentation to state there is a known
10854 number of undefined bits in regs and subregs of MODE_PARTIAL_INT modes.
10855
10856 2020-09-07 Jozef Lawrynowicz <jozef.l@mittosystems.com>
10857
10858 * config/msp430/msp430.c (msp430_option_override): Don't set the
10859 ISA to 430 when the MCU is unrecognized.
10860
10861 2020-09-07 Iain Sandoe <iain@sandoe.co.uk>
10862
10863 * config/darwin.c (darwin_libc_has_function): Report sincos
10864 available from 10.9.
10865
10866 2020-09-07 Alex Coplan <alex.coplan@arm.com>
10867
10868 * config/aarch64/aarch64.md (*adds_mul_imm_<mode>): Delete.
10869 (*subs_mul_imm_<mode>): Delete.
10870 (*adds_<optab><mode>_multp2): Delete.
10871 (*subs_<optab><mode>_multp2): Delete.
10872 (*add_mul_imm_<mode>): Delete.
10873 (*add_<optab><ALLX:mode>_mult_<GPI:mode>): Delete.
10874 (*add_<optab><SHORT:mode>_mult_si_uxtw): Delete.
10875 (*add_<optab><mode>_multp2): Delete.
10876 (*add_<optab>si_multp2_uxtw): Delete.
10877 (*add_uxt<mode>_multp2): Delete.
10878 (*add_uxtsi_multp2_uxtw): Delete.
10879 (*sub_mul_imm_<mode>): Delete.
10880 (*sub_mul_imm_si_uxtw): Delete.
10881 (*sub_<optab><mode>_multp2): Delete.
10882 (*sub_<optab>si_multp2_uxtw): Delete.
10883 (*sub_uxt<mode>_multp2): Delete.
10884 (*sub_uxtsi_multp2_uxtw): Delete.
10885 (*neg_mul_imm_<mode>2): Delete.
10886 (*neg_mul_imm_si2_uxtw): Delete.
10887 * config/aarch64/predicates.md (aarch64_pwr_imm3): Delete.
10888 (aarch64_pwr_2_si): Delete.
10889 (aarch64_pwr_2_di): Delete.
10890
10891 2020-09-07 Alex Coplan <alex.coplan@arm.com>
10892
10893 * config/aarch64/aarch64.md
10894 (*adds_<optab><ALLX:mode>_<GPI:mode>): Ensure extended operand
10895 agrees with width of extension specifier.
10896 (*subs_<optab><ALLX:mode>_<GPI:mode>): Likewise.
10897 (*adds_<optab><ALLX:mode>_shift_<GPI:mode>): Likewise.
10898 (*subs_<optab><ALLX:mode>_shift_<GPI:mode>): Likewise.
10899 (*add_<optab><ALLX:mode>_<GPI:mode>): Likewise.
10900 (*add_<optab><ALLX:mode>_shft_<GPI:mode>): Likewise.
10901 (*add_uxt<mode>_shift2): Likewise.
10902 (*sub_<optab><ALLX:mode>_<GPI:mode>): Likewise.
10903 (*sub_<optab><ALLX:mode>_shft_<GPI:mode>): Likewise.
10904 (*sub_uxt<mode>_shift2): Likewise.
10905 (*cmp_swp_<optab><ALLX:mode>_reg<GPI:mode>): Likewise.
10906 (*cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): Likewise.
10907
10908 2020-09-07 Richard Biener <rguenther@suse.de>
10909
10910 * tree-vect-slp.c (vect_analyze_slp_instance): Dump
10911 stmts we start SLP analysis from, failure and splitting.
10912 (vect_schedule_slp): Dump SLP graph entry and root stmt
10913 we are about to emit code for.
10914
10915 2020-09-07 Martin Storsjö <martin@martin.st>
10916
10917 * dwarf2out.c (file_name_acquire): Make a strchr return value
10918 pointer to const.
10919
10920 2020-09-07 Jakub Jelinek <jakub@redhat.com>
10921
10922 PR debug/94235
10923 * lto-streamer-out.c (output_cfg): Also stream goto_locus for edges.
10924 Use bp_pack_var_len_unsigned instead of streamer_write_uhwi to stream
10925 e->dest->index and e->flags.
10926 (output_function): Call output_cfg before output_ssa_name, rather than
10927 after streaming all bbs.
10928 * lto-streamer-in.c (input_cfg): Stream in goto_locus for edges.
10929 Use bp_unpack_var_len_unsigned instead of streamer_read_uhwi to stream
10930 in dest_index and edge_flags.
10931
10932 2020-09-07 Richard Biener <rguenther@suse.de>
10933
10934 * tree-vectorizer.h (vectorizable_live_operation): Adjust.
10935 * tree-vect-loop.c (vectorizable_live_operation): Vectorize
10936 live lanes out of basic-block vectorization nodes.
10937 * tree-vect-slp.c (vect_bb_slp_mark_live_stmts): New function.
10938 (vect_slp_analyze_operations): Analyze live lanes and their
10939 vectorization possibility after the whole SLP graph is final.
10940 (vect_bb_slp_scalar_cost): Adjust for vectorized live lanes.
10941 * tree-vect-stmts.c (can_vectorize_live_stmts): Adjust.
10942 (vect_transform_stmt): Call can_vectorize_live_stmts also for
10943 basic-block vectorization.
10944
10945 2020-09-04 Richard Biener <rguenther@suse.de>
10946
10947 PR tree-optimization/96698
10948 PR tree-optimization/96920
10949 * tree-vectorizer.h (loop_vec_info::reduc_latch_defs): Remove.
10950 (loop_vec_info::reduc_latch_slp_defs): Likewise.
10951 * tree-vect-stmts.c (vect_transform_stmt): Remove vectorized
10952 cycle PHI latch code.
10953 * tree-vect-loop.c (maybe_set_vectorized_backedge_value): New
10954 helper to set vectorized cycle PHI latch values.
10955 (vect_transform_loop): Walk over all PHIs again after
10956 vectorizing them, calling maybe_set_vectorized_backedge_value.
10957 Call maybe_set_vectorized_backedge_value for each vectorized
10958 stmt. Remove delayed update code.
10959 * tree-vect-slp.c (vect_analyze_slp_instance): Initialize
10960 SLP instance reduc_phis member.
10961 (vect_schedule_slp): Set vectorized cycle PHI latch values.
10962
10963 2020-09-04 Andrea Corallo <andrea.corallo@arm.com>
10964
10965 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Remove
10966 dead code as LOOP_VINFO_USING_PARTIAL_VECTORS_P (loop_vinfo) is
10967 always verified.
10968
10969 2020-09-04 Christophe Lyon <christophe.lyon@linaro.org>
10970
10971 PR target/96769
10972 * config/arm/thumb1.md: Move movsi splitter for
10973 arm_disable_literal_pool after the other movsi splitters.
10974
10975 2020-09-04 Aldy Hernandez <aldyh@redhat.com>
10976
10977 * range-op.cc (range_operator::fold_range): Rename widest_irange
10978 to int_range_max.
10979 (operator_div::wi_fold): Same.
10980 (operator_lshift::op1_range): Same.
10981 (operator_rshift::op1_range): Same.
10982 (operator_cast::fold_range): Same.
10983 (operator_cast::op1_range): Same.
10984 (operator_bitwise_and::remove_impossible_ranges): Same.
10985 (operator_bitwise_and::op1_range): Same.
10986 (operator_abs::op1_range): Same.
10987 (range_cast): Same.
10988 (widest_irange_tests): Same.
10989 (range3_tests): Rename irange3 to int_range3.
10990 (int_range_max_tests): Rename from widest_irange_tests.
10991 Rename widest_irange to int_range_max.
10992 (operator_tests): Rename widest_irange to int_range_max.
10993 (range_tests): Same.
10994 * tree-vrp.c (find_case_label_range): Same.
10995 * value-range.cc (irange::irange_intersect): Same.
10996 (irange::invert): Same.
10997 * value-range.h: Same.
10998
10999 2020-09-04 Richard Biener <rguenther@suse.de>
11000
11001 PR tree-optimization/96931
11002 * tree-cfgcleanup.c (cleanup_call_ctrl_altering_flag): If
11003 there's a fallthru edge and no abnormal edge the call is
11004 no longer control-altering.
11005 (cleanup_control_flow_bb): Pass down the BB to
11006 cleanup_call_ctrl_altering_flag.
11007
11008 2020-09-04 Jakub Jelinek <jakub@redhat.com>
11009
11010 * lto-streamer.h (stream_input_location_now): Remove declaration.
11011 * lto-streamer-in.c (stream_input_location_now): Remove.
11012 (input_eh_region, input_struct_function_base): Use
11013 stream_input_location instead of stream_input_location_now.
11014
11015 2020-09-04 Jakub Jelinek <jakub@redhat.com>
11016
11017 * lto-streamer.h (struct output_block): Add reset_locus member.
11018 * lto-streamer-out.c (clear_line_info): Set reset_locus to true.
11019 (lto_output_location_1): If reset_locus, clear it and ensure
11020 current_{file,line,col} is different from xloc members.
11021
11022 2020-09-04 David Faust <david.faust@oracle.com>
11023
11024 * config/bpf/bpf.h (ASM_SPEC): Pass -mxbpf to gas, if specified.
11025 * config/bpf/bpf.c (bpf_output_call): Support indirect calls in xBPF.
11026
11027 2020-09-03 Martin Jambor <mjambor@suse.cz>
11028
11029 PR tree-optimization/96820
11030 * tree-sra.c (create_access): Disqualify candidates with accesses
11031 beyond the end of the original aggregate.
11032 (maybe_add_sra_candidate): Check that candidate type size fits
11033 signed uhwi for the sake of consistency.
11034
11035 2020-09-03 Will Schmidt <will_schmidt@vnet.ibm.com>
11036
11037 * config/rs6000/rs6000-call.c (rs6000_init_builtin): Update V2DI_type_node
11038 and unsigned_V2DI_type_node definitions.
11039
11040 2020-09-03 Jakub Jelinek <jakub@redhat.com>
11041
11042 PR c++/96901
11043 * tree.h (struct decl_tree_traits): New type.
11044 (decl_tree_map): New typedef.
11045
11046 2020-09-03 Jakub Jelinek <jakub@redhat.com>
11047
11048 PR lto/94311
11049 * gimple.h (gimple_location_ptr, gimple_phi_arg_location_ptr): New
11050 functions.
11051 * streamer-hooks.h (struct streamer_hooks): Add
11052 output_location_and_block callback. Fix up formatting for
11053 output_location.
11054 (stream_output_location_and_block): Define.
11055 * lto-streamer.h (class lto_location_cache): Fix comment typo. Add
11056 current_block member.
11057 (lto_location_cache::input_location_and_block): New method.
11058 (lto_location_cache::lto_location_cache): Initialize current_block.
11059 (lto_location_cache::cached_location): Add block member.
11060 (struct output_block): Add current_block member.
11061 (lto_output_location): Formatting fix.
11062 (lto_output_location_and_block): Declare.
11063 * lto-streamer.c (lto_streamer_hooks_init): Initialize
11064 streamer_hooks.output_location_and_block.
11065 * lto-streamer-in.c (lto_location_cache::cmp_loc): Also compare
11066 block members.
11067 (lto_location_cache::apply_location_cache): Handle blocks.
11068 (lto_location_cache::accept_location_cache,
11069 lto_location_cache::revert_location_cache): Fix up function comments.
11070 (lto_location_cache::input_location_and_block): New method.
11071 (lto_location_cache::input_location): Implement using
11072 input_location_and_block.
11073 (input_function): Invoke apply_location_cache after streaming in all
11074 bbs.
11075 * lto-streamer-out.c (clear_line_info): Set current_block.
11076 (lto_output_location_1): New function, moved from lto_output_location,
11077 added block handling.
11078 (lto_output_location): Implement using lto_output_location_1.
11079 (lto_output_location_and_block): New function.
11080 * gimple-streamer-in.c (input_phi): Use input_location_and_block
11081 to input and cache both location and block.
11082 (input_gimple_stmt): Likewise.
11083 * gimple-streamer-out.c (output_phi): Use
11084 stream_output_location_and_block.
11085 (output_gimple_stmt): Likewise.
11086
11087 2020-09-03 Richard Biener <rguenther@suse.de>
11088
11089 * tree-vect-generic.c (tree_vec_extract): Remove odd
11090 special-casing of boolean vectors.
11091 * fold-const.c (fold_ternary_loc): Handle boolean vector
11092 type BIT_FIELD_REFs.
11093
11094 2020-09-03 Hongtao Liu <hongtao.liu@intel.com>
11095
11096 PR target/87767
11097 * config/i386/i386-features.c
11098 (replace_constant_pool_with_broadcast): New function.
11099 (constant_pool_broadcast): Ditto.
11100 (class pass_constant_pool_broadcast): New pass.
11101 (make_pass_constant_pool_broadcast): Ditto.
11102 (remove_partial_avx_dependency): Call
11103 replace_constant_pool_with_broadcast under TARGET_AVX512F, it
11104 would save compile time when both pass rpad and cpb are
11105 available.
11106 (remove_partial_avx_dependency_gate): New function.
11107 (class pass_remove_partial_avx_dependency::gate): Call
11108 remove_partial_avx_dependency_gate.
11109 * config/i386/i386-passes.def: Insert new pass after combine.
11110 * config/i386/i386-protos.h
11111 (make_pass_constant_pool_broadcast): Declare.
11112 * config/i386/sse.md (*avx512dq_mul<mode>3<mask_name>_bcst):
11113 New define_insn.
11114 (*avx512f_mul<mode>3<mask_name>_bcst): Ditto.
11115 * config/i386/avx512fintrin.h (_mm512_set1_ps,
11116 _mm512_set1_pd,_mm512_set1_epi32, _mm512_set1_epi64): Adjusted.
11117
11118 2020-09-02 Jonathan Wakely <jwakely@redhat.com>
11119
11120 PR c++/60304
11121 * ginclude/stdbool.h (bool, false, true): Never define for C++.
11122
11123 2020-09-02 Jozef Lawrynowicz <jozef.l@mittosystems.com>
11124
11125 * doc/invoke.texi (MSP430 options): Fix -mlarge description to
11126 indicate size_t is a 20-bit type.
11127
11128 2020-09-02 Roger Sayle <roger@nextmovesoftware.com>
11129
11130 * config/pa/pa.c (hppa_rtx_costs) [ASHIFT, ASHIFTRT, LSHIFTRT]:
11131 Provide accurate costs for shifts of integer constants.
11132
11133 2020-09-02 Jose E. Marchesi <jose.marchesi@oracle.com>
11134
11135 * config/bpf/bpf.c (bpf_asm_named_section): Delete.
11136 (TARGET_ASM_NAMED_SECTION): Likewise.
11137
11138 2020-09-02 Jose E. Marchesi <jemarch@gnu.org>
11139
11140 * config.gcc: Use elfos.h in bpf-*-* targets.
11141 * config/bpf/bpf.h (MAX_OFILE_ALIGNMENT): Remove definition.
11142 (COMMON_ASM_OP): Likewise.
11143 (INIT_SECTION_ASM_OP): Likewise.
11144 (FINI_SECTION_ASM_OP): Likewise.
11145 (ASM_OUTPUT_SKIP): Likewise.
11146 (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
11147 (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
11148
11149 2020-09-01 Martin Sebor <msebor@redhat.com>
11150
11151 * builtins.c (compute_objsize): Only replace the upper bound
11152 of a POINTER_PLUS offset when it's less than the lower bound.
11153
11154 2020-09-01 Peter Bergner <bergner@linux.ibm.com>
11155
11156 PR target/96808
11157 * config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Do not
11158 reuse accumulator memory reference for source and destination accesses.
11159
11160 2020-09-01 Martin Liska <mliska@suse.cz>
11161
11162 * cfgrtl.c (rtl_create_basic_block): Use default value for
11163 growth vector function.
11164 * gimple.c (gimple_set_bb): Likewise.
11165 * symbol-summary.h: Likewise.
11166 * tree-cfg.c (init_empty_tree_cfg_for_function): Likewise.
11167 (build_gimple_cfg): Likewise.
11168 (create_bb): Likewise.
11169 (move_block_to_fn): Likewise.
11170
11171 2020-09-01 Martin Liska <mliska@suse.cz>
11172
11173 * vec.h (vec_safe_grow): Change default of exact to false.
11174 (vec_safe_grow_cleared): Likewise.
11175
11176 2020-09-01 Roger Sayle <roger@nextmovesoftware.com>
11177
11178 PR middle-end/90597
11179 * targhooks.c (default_vector_alignment): Return at least the
11180 GET_MODE_ALIGNMENT for the type's mode.
11181
11182 2020-09-01 Richard Biener <rguenther@suse.de>
11183
11184 PR rtl-optimization/96812
11185 * tree-ssa-address.c (copy_ref_info): Also copy dependence info.
11186 * cfgrtl.h (duplicate_insn_chain): Adjust prototype.
11187 * cfgrtl.c (duplicate_insn_chain): Remap dependence info
11188 if requested.
11189 (cfg_layout_duplicate_bb): Make sure we remap dependence info.
11190 * modulo-sched.c (duplicate_insns_of_cycles): Remap dependence
11191 info.
11192 (generate_prolog_epilog): Adjust.
11193 * config/c6x/c6x.c (hwloop_optimize): Remap dependence info.
11194
11195 2020-09-01 Kewen Lin <linkw@gcc.gnu.org>
11196
11197 * doc/sourcebuild.texi (has_arch_pwr5, has_arch_pwr6, has_arch_pwr7,
11198 has_arch_pwr8, has_arch_pwr9): Document.
11199
11200 2020-08-31 Carl Love <cel@us.ibm.com>
11201
11202 PR target/85830
11203 * config/rs6000/altivec.h (vec_popcntb, vec_popcnth, vec_popcntw,
11204 vec_popcntd): Remove defines.
11205
11206 2020-08-31 Marek Polacek <polacek@redhat.com>
11207 Jason Merrill <jason@redhat.com>
11208
11209 PR c++/93529
11210 * tree.c (build_constructor_from_vec): New.
11211 * tree.h (build_constructor_from_vec): Declare.
11212
11213 2020-08-31 Aldy Hernandez <aldyh@redhat.com>
11214
11215 PR tree-optimization/96818
11216 * tree-vrp.c (find_case_label_range): Cast label range to
11217 type of switch operand.
11218
11219 2020-08-31 liuhongt <hongtao.liu@intel.com>
11220
11221 PR target/96551
11222 * config/i386/sse.md (vec_unpacku_float_hi_v16si): For vector
11223 compare to integer mask, don't use gen_rtx_LT, use
11224 ix86_expand_mask_vec_cmp instead.
11225 (vec_unpacku_float_hi_v16si): Ditto.
11226
11227 2020-08-31 Jakub Jelinek <jakub@redhat.com>
11228
11229 * tree-cfg.c (verify_gimple_switch): If the first non-default case
11230 label has CASE_HIGH, verify it has the same type as CASE_LOW.
11231
11232 2020-08-31 Feng Xue <fxue@os.amperecomputing.com>
11233
11234 PR ipa/96806
11235 * ipa-cp.c (decide_about_value): Use safe_add to avoid cost addition
11236 overflow.
11237
11238 2020-08-31 Jakub Jelinek <jakub@redhat.com>
11239
11240 PR middle-end/54201
11241 * varasm.c: Include alloc-pool.h.
11242 (output_constant_pool_contents): Emit desc->mark < 0 entries as
11243 aliases.
11244 (struct constant_descriptor_rtx_data): New type.
11245 (constant_descriptor_rtx_data_cmp): New function.
11246 (struct const_rtx_data_hasher): New type.
11247 (const_rtx_data_hasher::hash, const_rtx_data_hasher::equal): New
11248 methods.
11249 (optimize_constant_pool): New function.
11250 (output_shared_constant_pool): Call it if TARGET_SUPPORTS_ALIASES.
11251
11252 2020-08-31 Kewen Lin <linkw@gcc.gnu.org>
11253
11254 * doc/sourcebuild.texi (vect_len_load_store,
11255 vect_partial_vectors_usage_1, vect_partial_vectors_usage_2,
11256 vect_partial_vectors): Document.
11257
11258 2020-08-30 Martin Sebor <msebor@redhat.com>
11259
11260 * builtins.c (access_ref::access_ref): Call get_size_range instead
11261 of get_range.
11262
11263 2020-08-30 Jakub Jelinek <jakub@redhat.com>
11264
11265 * config/i386/sse.md (ssse3_pshufbv8qi): Use gen_int_mode instead of
11266 GEN_INT, and ix86_build_const_vector instead of gen_rtvec and
11267 gen_rtx_CONT_VECTOR.
11268
11269 2020-08-29 Bill Schmidt <wschmidt@linux.ibm.com>
11270
11271 * config/rs6000/rs6000-builtin.def (MASK_FOR_STORE): Remove.
11272 * config/rs6000/rs6000-call.c (rs6000_expand_builtin): Remove
11273 all logic for ALTIVEC_BUILTIN_MASK_FOR_STORE.
11274
11275 2020-08-28 Martin Sebor <msebor@redhat.com>
11276
11277 * attribs.c (init_attr_rdwr_indices): Use global access_mode.
11278 * attribs.h (struct attr_access): Same.
11279 * builtins.c (fold_builtin_strlen): Add argument.
11280 (compute_objsize): Declare.
11281 (get_range): Declare.
11282 (check_read_access): New function.
11283 (access_ref::access_ref): Define ctor.
11284 (warn_string_no_nul): Add arguments. Handle -Wstrintop-overread.
11285 (check_nul_terminated_array): Handle source strings of different
11286 ranges of sizes.
11287 (expand_builtin_strlen): Remove warning code, call check_read_access
11288 instead. Declare locals closer to their initialization.
11289 (expand_builtin_strnlen): Same.
11290 (maybe_warn_for_bound): New function.
11291 (warn_for_access): Remove argument. Handle -Wstrintop-overread.
11292 (inform_access): Change argument type.
11293 (get_size_range): New function.
11294 (check_access): Remove unused arguments. Add new arguments. Handle
11295 -Wstrintop-overread. Move warning code to helpers and call them.
11296 Call check_nul_terminated_array.
11297 (check_memop_access): Remove unnecessary and provide additional
11298 arguments in calls.
11299 (expand_builtin_memchr): Call check_read_access.
11300 (expand_builtin_strcat): Remove unnecessary and provide additional
11301 arguments in calls.
11302 (expand_builtin_strcpy): Same.
11303 (expand_builtin_strcpy_args): Same. Avoid testing no-warning bit.
11304 (expand_builtin_stpcpy_1): Remove unnecessary and provide additional
11305 arguments in calls.
11306 (expand_builtin_stpncpy): Same.
11307 (check_strncat_sizes): Same.
11308 (expand_builtin_strncat): Remove unnecessary and provide additional
11309 arguments in calls. Adjust comments.
11310 (expand_builtin_strncpy): Remove unnecessary and provide additional
11311 arguments in calls.
11312 (expand_builtin_memcmp): Remove warning code. Call check_access.
11313 (expand_builtin_strcmp): Call check_access instead of
11314 check_nul_terminated_array.
11315 (expand_builtin_strncmp): Handle -Wstrintop-overread.
11316 (expand_builtin_fork_or_exec): Call check_access instead of
11317 check_nul_terminated_array.
11318 (expand_builtin): Same.
11319 (fold_builtin_1): Pass additional argument.
11320 (fold_builtin_n): Same.
11321 (fold_builtin_strpbrk): Remove calls to check_nul_terminated_array.
11322 (expand_builtin_memory_chk): Add comments.
11323 (maybe_emit_chk_warning): Remove unnecessary and provide additional
11324 arguments in calls.
11325 (maybe_emit_sprintf_chk_warning): Same. Adjust comments.
11326 * builtins.h (warn_string_no_nul): Add arguments.
11327 (struct access_ref): Add member and ctor argument.
11328 (struct access_data): Add members and ctor.
11329 (check_access): Adjust signature.
11330 * calls.c (maybe_warn_nonstring_arg): Return an indication of
11331 whether a warning was issued. Issue -Wstrintop-overread instead
11332 of -Wstringop-overflow.
11333 (append_attrname): Adjust to naming changes.
11334 (maybe_warn_rdwr_sizes): Same. Remove unnecessary and provide
11335 additional arguments in calls.
11336 * calls.h (maybe_warn_nonstring_arg): Return bool.
11337 * doc/invoke.texi (-Wstringop-overread): Document new option.
11338 * gimple-fold.c (gimple_fold_builtin_strcpy): Provide an additional
11339 argument in call.
11340 (gimple_fold_builtin_stpcpy): Same.
11341 * tree-ssa-uninit.c (maybe_warn_pass_by_reference): Adjust to naming
11342 changes.
11343 * tree.h (enum access_mode): New type.
11344
11345 2020-08-28 Bill Schmidt <wschmidt@linux.ibm.com>
11346
11347 * config/rs6000/rs6000.c (rs6000_call_aix): Remove test for r12.
11348 (rs6000_sibcall_aix): Likewise.
11349
11350 2020-08-28 Andrew Stubbs <ams@codesourcery.com>
11351
11352 * config/gcn/gcn-tree.c (gcn_goacc_get_worker_red_decl): Add "true"
11353 parameter to vec_safe_grow_cleared.
11354
11355 2020-08-28 Martin Sebor <msebor@redhat.com>
11356
11357 * ggc-common.c (gt_pch_save): Add argument to a call.
11358
11359 2020-08-28 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
11360
11361 PR target/96357
11362 * config/aarch64/aarch64-sve.md
11363 (cond_sub<mode>_relaxed_const): Updated and renamed from
11364 cond_sub<mode>_any_const pattern.
11365 (cond_sub<mode>_strict_const): New pattern.
11366
11367 2020-08-28 Wei Wentao <weiwt.fnst@cn.fujitsu.com>
11368
11369 * doc/rtl.texi: Fix typo.
11370
11371 2020-08-28 Uros Bizjak <ubizjak@gmail.com>
11372
11373 PR target/96744
11374 * config/i386/i386-expand.c (split_double_mode): Also handle
11375 E_P2HImode and E_P2QImode.
11376 * config/i386/sse.md (MASK_DWI): New define_mode_iterator.
11377 (mov<mode>): New expander for P2HI,P2QI.
11378 (*mov<mode>_internal): New define_insn_and_split to split
11379 movement of P2QI/P2HI to 2 movqi/movhi patterns after reload.
11380
11381 2020-08-28 liuhongt <hongtao.liu@intel.com>
11382
11383 * common/config/i386/i386-common.c (ix86_handle_option): Set
11384 AVX512DQ when AVX512VP2INTERSECT exists.
11385
11386 2020-08-27 Jakub Jelinek <jakub@redhat.com>
11387
11388 PR target/65146
11389 * config/i386/i386.c (iamcu_alignment): Don't decrease alignment
11390 for TYPE_ATOMIC types.
11391 (ix86_local_alignment): Likewise.
11392 (ix86_minimum_alignment): Likewise.
11393 (x86_field_alignment): Likewise, and emit a -Wpsabi diagnostic
11394 for it.
11395
11396 2020-08-27 Bill Schmidt <wschmidt@linux.ibm.com>
11397
11398 PR target/96787
11399 * config/rs6000/rs6000.c (rs6000_sibcall_aix): Support
11400 indirect call for ELFv2.
11401
11402 2020-08-27 Richard Biener <rguenther@suse.de>
11403
11404 PR tree-optimization/96522
11405 * tree-ssa-address.c (copy_ref_info): Reset flow-sensitive
11406 info of the copied points-to. Transfer bigger alignment
11407 via the access type.
11408 * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt):
11409 Reset all flow-sensitive info.
11410
11411 2020-08-27 Martin Liska <mliska@suse.cz>
11412
11413 * alias.c (init_alias_analysis): Set exact argument of a vector
11414 growth function to true.
11415 * calls.c (internal_arg_pointer_based_exp_scan): Likewise.
11416 * cfgbuild.c (find_many_sub_basic_blocks): Likewise.
11417 * cfgexpand.c (expand_asm_stmt): Likewise.
11418 * cfgrtl.c (rtl_create_basic_block): Likewise.
11419 * combine.c (combine_split_insns): Likewise.
11420 (combine_instructions): Likewise.
11421 * config/aarch64/aarch64-sve-builtins.cc (function_expander::add_output_operand): Likewise.
11422 (function_expander::add_input_operand): Likewise.
11423 (function_expander::add_integer_operand): Likewise.
11424 (function_expander::add_address_operand): Likewise.
11425 (function_expander::add_fixed_operand): Likewise.
11426 * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
11427 * dwarf2cfi.c (update_row_reg_save): Likewise.
11428 * early-remat.c (early_remat::init_block_info): Likewise.
11429 (early_remat::finalize_candidate_indices): Likewise.
11430 * except.c (sjlj_build_landing_pads): Likewise.
11431 * final.c (compute_alignments): Likewise.
11432 (grow_label_align): Likewise.
11433 * function.c (temp_slots_at_level): Likewise.
11434 * fwprop.c (build_single_def_use_links): Likewise.
11435 (update_uses): Likewise.
11436 * gcc.c (insert_wrapper): Likewise.
11437 * genautomata.c (create_state_ainsn_table): Likewise.
11438 (add_vect): Likewise.
11439 (output_dead_lock_vect): Likewise.
11440 * genmatch.c (capture_info::capture_info): Likewise.
11441 (parser::finish_match_operand): Likewise.
11442 * genrecog.c (optimize_subroutine_group): Likewise.
11443 (merge_pattern_info::merge_pattern_info): Likewise.
11444 (merge_into_decision): Likewise.
11445 (print_subroutine_start): Likewise.
11446 (main): Likewise.
11447 * gimple-loop-versioning.cc (loop_versioning::loop_versioning): Likewise.
11448 * gimple.c (gimple_set_bb): Likewise.
11449 * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_user): Likewise.
11450 * haifa-sched.c (sched_extend_luids): Likewise.
11451 (extend_h_i_d): Likewise.
11452 * insn-addr.h (insn_addresses_new): Likewise.
11453 * ipa-cp.c (gather_context_independent_values): Likewise.
11454 (find_more_contexts_for_caller_subset): Likewise.
11455 * ipa-devirt.c (final_warning_record::grow_type_warnings): Likewise.
11456 (ipa_odr_read_section): Likewise.
11457 * ipa-fnsummary.c (evaluate_properties_for_edge): Likewise.
11458 (ipa_fn_summary_t::duplicate): Likewise.
11459 (analyze_function_body): Likewise.
11460 (ipa_merge_fn_summary_after_inlining): Likewise.
11461 (read_ipa_call_summary): Likewise.
11462 * ipa-icf.c (sem_function::bb_dict_test): Likewise.
11463 * ipa-prop.c (ipa_alloc_node_params): Likewise.
11464 (parm_bb_aa_status_for_bb): Likewise.
11465 (ipa_compute_jump_functions_for_edge): Likewise.
11466 (ipa_analyze_node): Likewise.
11467 (update_jump_functions_after_inlining): Likewise.
11468 (ipa_read_edge_info): Likewise.
11469 (read_ipcp_transformation_info): Likewise.
11470 (ipcp_transform_function): Likewise.
11471 * ipa-reference.c (ipa_reference_write_optimization_summary): Likewise.
11472 * ipa-split.c (execute_split_functions): Likewise.
11473 * ira.c (find_moveable_pseudos): Likewise.
11474 * lower-subreg.c (decompose_multiword_subregs): Likewise.
11475 * lto-streamer-in.c (input_eh_regions): Likewise.
11476 (input_cfg): Likewise.
11477 (input_struct_function_base): Likewise.
11478 (input_function): Likewise.
11479 * modulo-sched.c (set_node_sched_params): Likewise.
11480 (extend_node_sched_params): Likewise.
11481 (schedule_reg_moves): Likewise.
11482 * omp-general.c (omp_construct_simd_compare): Likewise.
11483 * passes.c (pass_manager::create_pass_tab): Likewise.
11484 (enable_disable_pass): Likewise.
11485 * predict.c (determine_unlikely_bbs): Likewise.
11486 * profile.c (compute_branch_probabilities): Likewise.
11487 * read-rtl-function.c (function_reader::parse_block): Likewise.
11488 * read-rtl.c (rtx_reader::read_rtx_code): Likewise.
11489 * reg-stack.c (stack_regs_mentioned): Likewise.
11490 * regrename.c (regrename_init): Likewise.
11491 * rtlanal.c (T>::add_single_to_queue): Likewise.
11492 * sched-deps.c (init_deps_data_vector): Likewise.
11493 * sel-sched-ir.c (sel_extend_global_bb_info): Likewise.
11494 (extend_region_bb_info): Likewise.
11495 (extend_insn_data): Likewise.
11496 * symtab.c (symtab_node::create_reference): Likewise.
11497 * tracer.c (tail_duplicate): Likewise.
11498 * trans-mem.c (tm_region_init): Likewise.
11499 (get_bb_regions_instrumented): Likewise.
11500 * tree-cfg.c (init_empty_tree_cfg_for_function): Likewise.
11501 (build_gimple_cfg): Likewise.
11502 (create_bb): Likewise.
11503 (move_block_to_fn): Likewise.
11504 * tree-complex.c (tree_lower_complex): Likewise.
11505 * tree-if-conv.c (predicate_rhs_code): Likewise.
11506 * tree-inline.c (copy_bb): Likewise.
11507 * tree-into-ssa.c (get_ssa_name_ann): Likewise.
11508 (mark_phi_for_rewrite): Likewise.
11509 * tree-object-size.c (compute_builtin_object_size): Likewise.
11510 (init_object_sizes): Likewise.
11511 * tree-predcom.c (initialize_root_vars_store_elim_1): Likewise.
11512 (initialize_root_vars_store_elim_2): Likewise.
11513 (prepare_initializers_chain_store_elim): Likewise.
11514 * tree-ssa-address.c (addr_for_mem_ref): Likewise.
11515 (multiplier_allowed_in_address_p): Likewise.
11516 * tree-ssa-coalesce.c (ssa_conflicts_new): Likewise.
11517 * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise.
11518 * tree-ssa-loop-ivopts.c (addr_offset_valid_p): Likewise.
11519 (get_address_cost_ainc): Likewise.
11520 * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk): Likewise.
11521 * tree-ssa-pre.c (add_to_value): Likewise.
11522 (phi_translate_1): Likewise.
11523 (do_pre_regular_insertion): Likewise.
11524 (do_pre_partial_partial_insertion): Likewise.
11525 (init_pre): Likewise.
11526 * tree-ssa-propagate.c (ssa_prop_init): Likewise.
11527 (update_call_from_tree): Likewise.
11528 * tree-ssa-reassoc.c (optimize_range_tests_cmp_bitwise): Likewise.
11529 * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
11530 (vn_reference_lookup_pieces): Likewise.
11531 (eliminate_dom_walker::eliminate_push_avail): Likewise.
11532 * tree-ssa-strlen.c (set_strinfo): Likewise.
11533 (get_stridx_plus_constant): Likewise.
11534 (zero_length_string): Likewise.
11535 (find_equal_ptrs): Likewise.
11536 (printf_strlen_execute): Likewise.
11537 * tree-ssa-threadedge.c (set_ssa_name_value): Likewise.
11538 * tree-ssanames.c (make_ssa_name_fn): Likewise.
11539 * tree-streamer-in.c (streamer_read_tree_bitfields): Likewise.
11540 * tree-vect-loop.c (vect_record_loop_mask): Likewise.
11541 (vect_get_loop_mask): Likewise.
11542 (vect_record_loop_len): Likewise.
11543 (vect_get_loop_len): Likewise.
11544 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Likewise.
11545 * tree-vect-slp.c (vect_slp_convert_to_external): Likewise.
11546 (vect_bb_slp_scalar_cost): Likewise.
11547 (vect_bb_vectorization_profitable_p): Likewise.
11548 (vectorizable_slp_permutation): Likewise.
11549 * tree-vect-stmts.c (vectorizable_call): Likewise.
11550 (vectorizable_simd_clone_call): Likewise.
11551 (scan_store_can_perm_p): Likewise.
11552 (vectorizable_store): Likewise.
11553 * expr.c: Likewise.
11554 * vec.c (test_safe_grow_cleared): Likewise.
11555 * vec.h (vec_safe_grow): Likewise.
11556 (vec_safe_grow_cleared): Likewise.
11557 (vl_ptr>::safe_grow): Likewise.
11558 (vl_ptr>::safe_grow_cleared): Likewise.
11559 * config/c6x/c6x.c (insn_set_clock): Likewise.
11560
11561 2020-08-27 Richard Biener <rguenther@suse.de>
11562
11563 * tree-pretty-print.c (dump_mem_ref): Handle TARGET_MEM_REFs.
11564 (dump_generic_node): Use dump_mem_ref also for TARGET_MEM_REF.
11565
11566 2020-08-27 Alex Coplan <alex.coplan@arm.com>
11567
11568 * lra-constraints.c (canonicalize_reload_addr): New.
11569 (curr_insn_transform): Use canonicalize_reload_addr to ensure we
11570 generate canonical RTL for an address reload.
11571
11572 2020-08-27 Zhiheng Xie <xiezhiheng@huawei.com>
11573
11574 * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG
11575 for rounding intrinsics.
11576
11577 2020-08-27 Zhiheng Xie <xiezhiheng@huawei.com>
11578
11579 * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG
11580 for min/max intrinsics.
11581
11582 2020-08-27 Richard Biener <rguenther@suse.de>
11583
11584 PR tree-optimization/96579
11585 * tree-ssa-reassoc.c (linearize_expr_tree): If we expand
11586 rhs via special ops make sure to swap operands.
11587
11588 2020-08-27 Richard Biener <rguenther@suse.de>
11589
11590 PR tree-optimization/96565
11591 * tree-ssa-dse.c (dse_classify_store): Remove defs with
11592 no uses from further processing.
11593
11594 2020-08-26 Göran Uddeborg <goeran@uddeborg.se>
11595
11596 PR gcov-profile/96285
11597 * common.opt, doc/invoke.texi: Clarify wording of
11598 -fprofile-exclude-files and adjust -fprofile-filter-files to
11599 match.
11600
11601 2020-08-26 H.J. Lu <hjl.tools@gmail.com>
11602
11603 PR target/96802
11604 * config/i386/i386-options.c (ix86_valid_target_attribute_inner_p):
11605 Reject target("no-general-regs-only").
11606
11607 2020-08-26 Jozef Lawrynowicz <jozef.l@mittosystems.com>
11608
11609 * config/msp430/constraints.md (K): Change unused constraint to
11610 constraint to a const_int between 1 and 19.
11611 (P): New constraint.
11612 * config/msp430/msp430-protos.h (msp430x_logical_shift_right): Remove.
11613 (msp430_expand_shift): New.
11614 (msp430_output_asm_shift_insns): New.
11615 * config/msp430/msp430.c (msp430_rtx_costs): Remove shift costs.
11616 (CSH): Remove.
11617 (msp430_expand_helper): Remove hard-coded generation of some inline
11618 shift insns.
11619 (use_helper_for_const_shift): New.
11620 (msp430_expand_shift): New.
11621 (msp430_output_asm_shift_insns): New.
11622 (msp430_print_operand): Add new 'W' operand selector.
11623 (msp430x_logical_shift_right): Remove.
11624 * config/msp430/msp430.md (HPSI): New define_mode_iterator.
11625 (HDI): Likewise.
11626 (any_shift): New define_code_iterator.
11627 (shift_insn): New define_code_attr.
11628 Adjust unnamed insn patterns searched for by combine.
11629 (ashlhi3): Remove.
11630 (slli_1): Remove.
11631 (430x_shift_left): Remove.
11632 (slll_1): Remove.
11633 (slll_2): Remove.
11634 (ashlsi3): Remove.
11635 (ashldi3): Remove.
11636 (ashrhi3): Remove.
11637 (srai_1): Remove.
11638 (430x_arithmetic_shift_right): Remove.
11639 (srap_1): Remove.
11640 (srap_2): Remove.
11641 (sral_1): Remove.
11642 (sral_2): Remove.
11643 (ashrsi3): Remove.
11644 (ashrdi3): Remove.
11645 (lshrhi3): Remove.
11646 (srli_1): Remove.
11647 (430x_logical_shift_right): Remove.
11648 (srlp_1): Remove.
11649 (srll_1): Remove.
11650 (srll_2x): Remove.
11651 (lshrsi3): Remove.
11652 (lshrdi3): Remove.
11653 (<shift_insn><mode>3): New define_expand.
11654 (<shift_insn>hi3_430): New define_insn.
11655 (<shift_insn>si3_const): Likewise.
11656 (ashl<mode>3_430x): Likewise.
11657 (ashr<mode>3_430x): Likewise.
11658 (lshr<mode>3_430x): Likewise.
11659 (*bitbranch<mode>4_z): Replace renamed predicate msp430_bitpos with
11660 const_0_to_15_operand.
11661 * config/msp430/msp430.opt: New option -mmax-inline-shift=.
11662 * config/msp430/predicates.md (const_1_to_8_operand): New predicate.
11663 (const_0_to_15_operand): Rename msp430_bitpos predicate.
11664 (const_1_to_19_operand): New predicate.
11665 * doc/invoke.texi: Document -mmax-inline-shift=.
11666
11667 2020-08-26 Aldy Hernandez <aldyh@redhat.com>
11668
11669 * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Abstract code out to...
11670 * tree-vrp.c (find_case_label_range): ...here. Rewrite for to use irange
11671 API.
11672 (simplify_stmt_for_jump_threading): Call find_case_label_range instead of
11673 duplicating the code in simplify_stmt_for_jump_threading.
11674 * tree-vrp.h (find_case_label_range): New prototype.
11675
11676 2020-08-26 Richard Biener <rguenther@suse.de>
11677
11678 PR tree-optimization/96698
11679 * tree-vectorizer.h (loop_vec_info::reduc_latch_defs): New.
11680 (loop_vec_info::reduc_latch_slp_defs): Likewise.
11681 * tree-vect-stmts.c (vect_transform_stmt): Only record
11682 stmts to update PHI latches from, perform the update ...
11683 * tree-vect-loop.c (vect_transform_loop): ... here after
11684 vectorizing those PHIs.
11685 (info_for_reduction): Properly handle non-reduction PHIs.
11686
11687 2020-08-26 Martin Liska <mliska@suse.cz>
11688
11689 * cgraphunit.c (process_symver_attribute): Match only symver
11690 TREE_PURPOSE.
11691
11692 2020-08-26 Richard Biener <rguenther@suse.de>
11693
11694 PR tree-optimization/96783
11695 * tree-vect-stmts.c (get_group_load_store_type): Use
11696 VMAT_ELEMENTWISE for negative strides when we cannot
11697 use VMAT_STRIDED_SLP.
11698
11699 2020-08-26 Martin Liska <mliska@suse.cz>
11700
11701 * doc/invoke.texi: Document how are pie and pic options merged.
11702
11703 2020-08-26 Zhiheng Xie <xiezhiheng@huawei.com>
11704
11705 * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG
11706 for add/sub arithmetic intrinsics.
11707
11708 2020-08-26 Jakub Jelinek <jakub@redhat.com>
11709
11710 PR debug/96729
11711 * dwarf2out.c (dwarf2out_next_real_insn): Adjust function comment.
11712 (dwarf2out_var_location): Look for next_note only if next_real is
11713 non-NULL, in that case look for the first non-deleted
11714 NOTE_INSN_VAR_LOCATION between loc_note and next_real, if any.
11715
11716 2020-08-26 Iain Buclaw <ibuclaw@gdcproject.org>
11717
11718 * config/tilepro/gen-mul-tables.cc (main): Define IN_TARGET_CODE to 1
11719 in the target file.
11720
11721 2020-08-26 Martin Liska <mliska@suse.cz>
11722
11723 * cgraphunit.c (process_symver_attribute): Allow multiple
11724 symver attributes for one symbol.
11725 * doc/extend.texi: Document the change.
11726
11727 2020-08-25 H.J. Lu <hjl.tools@gmail.com>
11728
11729 PR target/95863
11730 * config/i386/i386.h (CTZ_DEFINED_VALUE_AT_ZERO): Return 0/2.
11731 (CLZ_DEFINED_VALUE_AT_ZERO): Likewise.
11732
11733 2020-08-25 Roger Sayle <roger@nextmovesoftware.com>
11734
11735 PR middle-end/87256
11736 * config/pa/pa.c (hppa_rtx_costs_shadd_p): New helper function
11737 to check for coefficients supported by shNadd and shladd,l.
11738 (hppa_rtx_costs): Rewrite to avoid using estimates based upon
11739 FACTOR and enable recursing deeper into RTL expressions.
11740
11741 2020-08-25 Roger Sayle <roger@nextmovesoftware.com>
11742
11743 * config/pa/pa.md (ashldi3): Additionally, on !TARGET_64BIT
11744 generate a two instruction shd/zdep sequence when shifting
11745 registers by suitable constants.
11746 (shd_internal): New define_expand to provide gen_shd_internal.
11747
11748 2020-08-25 Richard Sandiford <richard.sandiford@arm.com>
11749
11750 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Rename
11751 __ARM_FEATURE_SVE_VECTOR_OPERATIONS to
11752 __ARM_FEATURE_SVE_VECTOR_OPERATORS.
11753
11754 2020-08-25 Richard Sandiford <richard.sandiford@arm.com>
11755
11756 * config/aarch64/aarch64-sve-builtins.cc (add_sve_type_attribute):
11757 Take the ACLE name of the type as a parameter and add it as fourth
11758 argument to the "SVE type" attribute.
11759 (register_builtin_types): Update call accordingly.
11760 (register_tuple_type): Likewise. Construct the name of the type
11761 earlier in order to do this.
11762 (get_arm_sve_vector_bits_attributes): New function.
11763 (handle_arm_sve_vector_bits_attribute): Report a more sensible
11764 error message if the attribute is applied to an SVE tuple type.
11765 Don't allow the attribute to be applied to an existing fixed-length
11766 SVE type. Mangle the new type as __SVE_VLS<type, vector-bits>.
11767 Add a dummy TYPE_DECL to the new type.
11768
11769 2020-08-25 Richard Sandiford <richard.sandiford@arm.com>
11770
11771 * config/aarch64/aarch64-sve-builtins.cc (DEF_SVE_TYPE): Add a
11772 leading "u" to each mangled name.
11773
11774 2020-08-25 Richard Biener <rguenther@suse.de>
11775
11776 PR tree-optimization/96548
11777 PR tree-optimization/96760
11778 * tree-ssa-loop-im.c (tree_ssa_lim): Recompute RPO after
11779 store-motion.
11780
11781 2020-08-25 Jakub Jelinek <jakub@redhat.com>
11782
11783 PR tree-optimization/96722
11784 * gimple.c (infer_nonnull_range): Formatting fix.
11785 (infer_nonnull_range_by_dereference): Return false for clobber stmts.
11786
11787 2020-08-25 Jakub Jelinek <jakub@redhat.com>
11788
11789 PR tree-optimization/96758
11790 * tree-ssa-strlen.c (handle_builtin_string_cmp): If both cstlen1
11791 and cstlen2 are set, set cmpsiz to their minimum, otherwise use the
11792 one that is set. If bound is used and smaller than cmpsiz, set cmpsiz
11793 to bound. If both cstlen1 and cstlen2 are set, perform the optimization.
11794
11795 2020-08-25 Martin Jambor <mjambor@suse.cz>
11796
11797 PR tree-optimization/96730
11798 * tree-sra.c (create_access): Disqualify any aggregate with negative
11799 offset access.
11800 (build_ref_for_model): Add assert that offset is non-negative.
11801
11802 2020-08-25 Wei Wentao <weiwt.fnst@cn.fujitsu.com>
11803
11804 * rtl.def: Fix typo in comment.
11805
11806 2020-08-25 Roger Sayle <roger@nextmovesoftware.com>
11807
11808 PR tree-optimization/21137
11809 * fold-const.c (fold_binary_loc) [NE_EXPR/EQ_EXPR]: Call
11810 STRIP_NOPS when checking whether to simplify ((x>>C1)&C2) != 0.
11811
11812 2020-08-25 Andrew Pinski <apinski@marvell.com>
11813
11814 PR middle-end/64242
11815 * config/mips/mips.md (builtin_longjmp): Restore the frame
11816 pointer and stack pointer and gp.
11817
11818 2020-08-25 Richard Biener <rguenther@suse.de>
11819
11820 PR debug/96690
11821 * dwarf2out.c (reference_to_unused): Make FUNCTION_DECL
11822 processing more consistent with respect to
11823 symtab->global_info_ready.
11824 (tree_add_const_value_attribute): Unconditionally call
11825 rtl_for_decl_init to do all mangling early but throw
11826 away the result if early_dwarf.
11827
11828 2020-08-25 Hongtao Liu <hongtao.liu@intel.com>
11829
11830 PR target/96755
11831 * config/i386/sse.md: Correct the mode of NOT operands to
11832 SImode.
11833
11834 2020-08-25 Jakub Jelinek <jakub@redhat.com>
11835
11836 PR tree-optimization/96715
11837 * match.pd (copysign(x,-x) -> -x): New simplification.
11838
11839 2020-08-25 Jakub Jelinek <jakub@redhat.com>
11840
11841 PR target/95450
11842 * fold-const.c (native_interpret_real): For MODE_COMPOSITE_P modes
11843 punt if the to be returned REAL_CST does not encode to the bitwise
11844 same representation.
11845
11846 2020-08-24 Gerald Pfeifer <gerald@pfeifer.com>
11847
11848 * doc/install.texi (Configuration): Switch valgrind.com to https.
11849
11850 2020-08-24 Christophe Lyon <christophe.lyon@linaro.org>
11851
11852 PR target/94538
11853 PR target/94538
11854 * config/arm/thumb1.md: Disable set-constant splitter when
11855 TARGET_HAVE_MOVT.
11856 (thumb1_movsi_insn): Fix -mpure-code
11857 alternative.
11858
11859 2020-08-24 Martin Liska <mliska@suse.cz>
11860
11861 * tree-vect-data-refs.c (dr_group_sort_cmp): Work on
11862 data_ref_pair.
11863 (vect_analyze_data_ref_accesses): Work on groups.
11864 (vect_find_stmt_data_reference): Add group_id argument and fill
11865 up dataref_groups vector.
11866 * tree-vect-loop.c (vect_get_datarefs_in_loop): Pass new
11867 arguments.
11868 (vect_analyze_loop_2): Likewise.
11869 * tree-vect-slp.c (vect_slp_analyze_bb_1): Pass argument.
11870 (vect_slp_bb_region): Likewise.
11871 (vect_slp_region): Likewise.
11872 (vect_slp_bb):Work on the entire BB.
11873 * tree-vectorizer.h (vect_analyze_data_ref_accesses): Add new
11874 argument.
11875 (vect_find_stmt_data_reference): Likewise.
11876
11877 2020-08-24 Martin Liska <mliska@suse.cz>
11878
11879 PR tree-optimization/96597
11880 * tree-ssa-sccvn.c (vn_reference_lookup_call): Add missing
11881 initialization of ::punned.
11882 (vn_reference_insert): Use consistently false instead of 0.
11883 (vn_reference_insert_pieces): Likewise.
11884
11885 2020-08-24 Hans-Peter Nilsson <hp@axis.com>
11886
11887 PR target/93372
11888 * reorg.c (fill_slots_from_thread): Allow trial insns that clobber
11889 TARGET_FLAGS_REGNUM as delay-slot fillers.
11890
11891 2020-08-23 H.J. Lu <hjl.tools@gmail.com>
11892
11893 PR target/96744
11894 * config/i386/i386-options.c (IX86_ATTR_IX86_YES): New.
11895 (IX86_ATTR_IX86_NO): Likewise.
11896 (ix86_opt_type): Add ix86_opt_ix86_yes and ix86_opt_ix86_no.
11897 (ix86_valid_target_attribute_inner_p): Handle general-regs-only,
11898 ix86_opt_ix86_yes and ix86_opt_ix86_no.
11899 (ix86_option_override_internal): Check opts->x_ix86_target_flags
11900 instead of opts->x_ix86_target_flags.
11901 * doc/extend.texi: Document target("general-regs-only") function
11902 attribute.
11903
11904 2020-08-21 Richard Sandiford <richard.sandiford@arm.com>
11905
11906 * doc/extend.texi: Update links to Arm docs.
11907 * doc/invoke.texi: Likewise.
11908
11909 2020-08-21 Hongtao Liu <hongtao.liu@intel.com>
11910
11911 PR target/96262
11912 * config/i386/i386-expand.c
11913 (ix86_expand_vec_shift_qihi_constant): Refine.
11914
11915 2020-08-21 Alex Coplan <alex.coplan@arm.com>
11916
11917 PR jit/63854
11918 * gcc.c (set_static_spec): New.
11919 (set_static_spec_owned): New.
11920 (set_static_spec_shared): New.
11921 (driver::maybe_putenv_COLLECT_LTO_WRAPPER): Use
11922 set_static_spec_owned() to take ownership of lto_wrapper_file
11923 such that it gets freed in driver::finalize.
11924 (driver::maybe_run_linker): Use set_static_spec_shared() to
11925 ensure that we don't try and free() the static string "ld",
11926 also ensuring that any previously-allocated string in
11927 linker_name_spec is freed. Likewise with argv0.
11928 (driver::finalize): Use set_static_spec_shared() when resetting
11929 specs that previously had allocated strings; remove if(0)
11930 around call to free().
11931
11932 2020-08-21 Senthil Kumar Selvaraj <saaadhu@gcc.gnu.org>
11933
11934 * emit-rtl.c (try_split): Call copy_frame_info_to_split_insn
11935 to split certain RTX_FRAME_RELATED_P insns.
11936 * recog.c (copy_frame_info_to_split_insn): New function.
11937 (peep2_attempt): Split copying of frame related info of
11938 RTX_FRAME_RELATED_P insns into above function and call it.
11939 * recog.h (copy_frame_info_to_split_insn): Declare it.
11940
11941 2020-08-21 liuhongt <hongtao.liu@intel.com>
11942
11943 PR target/88808
11944 * config/i386/i386.c (ix86_preferred_reload_class): Allow
11945 QImode data go into mask registers.
11946 * config/i386/i386.md: (*movhi_internal): Adjust constraints
11947 for mask registers.
11948 (*movqi_internal): Ditto.
11949 (*anddi_1): Support mask register operations
11950 (*and<mode>_1): Ditto.
11951 (*andqi_1): Ditto.
11952 (*andn<mode>_1): Ditto.
11953 (*<code><mode>_1): Ditto.
11954 (*<code>qi_1): Ditto.
11955 (*one_cmpl<mode>2_1): Ditto.
11956 (*one_cmplsi2_1_zext): Ditto.
11957 (*one_cmplqi2_1): Ditto.
11958 (define_peephole2): Move constant 0/-1 directly into mask
11959 registers.
11960 * config/i386/predicates.md (mask_reg_operand): New predicate.
11961 * config/i386/sse.md (define_split): Add post-reload splitters
11962 that would convert "generic" patterns to mask patterns.
11963 (*knotsi_1_zext): New define_insn.
11964
11965 2020-08-21 liuhongt <hongtao.liu@intel.com>
11966
11967 * config/i386/x86-tune-costs.h (skylake_cost): Adjust cost
11968 model.
11969
11970 2020-08-21 liuhongt <hongtao.liu@intel.com>
11971
11972 * config/i386/i386.c (inline_secondary_memory_needed):
11973 No memory is needed between mask regs and gpr.
11974 (ix86_hard_regno_mode_ok): Add condition TARGET_AVX512F for
11975 mask regno.
11976 * config/i386/i386.h (enum reg_class): Add INT_MASK_REGS.
11977 (REG_CLASS_NAMES): Ditto.
11978 (REG_CLASS_CONTENTS): Ditto.
11979 * config/i386/i386.md: Exclude mask register in
11980 define_peephole2 which is avaiable only for gpr.
11981
11982 2020-08-21 H.J. Lu <hjl.tools@gmail.com>
11983
11984 PR target/71453
11985 * config/i386/i386.h (struct processor_costs): Add member
11986 mask_to_integer, integer_to_mask, mask_load[3], mask_store[3],
11987 mask_move.
11988 * config/i386/x86-tune-costs.h (ix86_size_cost, i386_cost,
11989 i386_cost, pentium_cost, lakemont_cost, pentiumpro_cost,
11990 geode_cost, k6_cost, athlon_cost, k8_cost, amdfam10_cost,
11991 bdver_cost, znver1_cost, znver2_cost, skylake_cost,
11992 btver1_cost, btver2_cost, pentium4_cost, nocona_cost,
11993 atom_cost, slm_cost, intel_cost, generic_cost, core_cost):
11994 Initialize mask_load[3], mask_store[3], mask_move,
11995 integer_to_mask, mask_to_integer for all target costs.
11996 * config/i386/i386.c (ix86_register_move_cost): Using cost
11997 model of mask registers.
11998 (inline_memory_move_cost): Ditto.
11999 (ix86_register_move_cost): Ditto.
12000
12001 2020-08-20 Iain Buclaw <ibuclaw@gdcproject.org>
12002
12003 * config/vxworks.h (VXWORKS_ADDITIONAL_CPP_SPEC): Don't include
12004 VxWorks header files if -fself-test is used.
12005 (STARTFILE_PREFIX_SPEC): Avoid using VSB_DIR if -fself-test is used.
12006
12007 2020-08-20 Joe Ramsay <Joe.Ramsay@arm.com>
12008
12009 PR target/96683
12010 * config/arm/mve.md (mve_vst1q_f<mode>): Require MVE memory operand for
12011 destination.
12012 (mve_vst1q_<supf><mode>): Likewise.
12013
12014 2020-08-19 2020-08-19 Carl Love <cel@us.ibm.com>
12015
12016 * config/rs6000/rs6000-builtin.def (BU_P10V_0, BU_P10V_1,
12017 BU_P10V_2, BU_P10V_3): Rename BU_P10V_VSX_0, BU_P10V_VSX_1,
12018 BU_P10V_VSX_2, BU_P10V_VSX_3 respectively.
12019 (BU_P10V_4): Remove.
12020 (BU_P10V_AV_0, BU_P10V_AV_1, BU_P10V_AV_2, BU_P10V_AV_3, BU_P10V_AV_4):
12021 New definitions for Power 10 Altivec macros.
12022 (VSTRIBR, VSTRIHR, VSTRIBL, VSTRIHL, VSTRIBR_P, VSTRIHR_P,
12023 VSTRIBL_P, VSTRIHL_P, MTVSRBM, MTVSRHM, MTVSRWM, MTVSRDM, MTVSRQM,
12024 VEXPANDMB, VEXPANDMH, VEXPANDMW, VEXPANDMD, VEXPANDMQ, VEXTRACTMB,
12025 VEXTRACTMH, VEXTRACTMW, VEXTRACTMD, VEXTRACTMQ): Replace macro
12026 expansion BU_P10V_1 with BU_P10V_AV_1.
12027 (VCLRLB, VCLRRB, VCFUGED, VCLZDM, VCTZDM, VPDEPD, VPEXTD, VGNB,
12028 VCNTMBB, VCNTMBH, VCNTMBW, VCNTMBD): Replace macro expansion
12029 BU_P10V_2 with BU_P10V_AV_2.
12030 (VEXTRACTBL, VEXTRACTHL, VEXTRACTWL, VEXTRACTDL, VEXTRACTBR, VEXTRACTHR,
12031 VEXTRACTWR, VEXTRACTDR, VINSERTGPRBL, VINSERTGPRHL, VINSERTGPRWL,
12032 VINSERTGPRDL, VINSERTVPRBL, VINSERTVPRHL, VINSERTVPRWL, VINSERTGPRBR,
12033 VINSERTGPRHR, VINSERTGPRWR, VINSERTGPRDR, VINSERTVPRBR, VINSERTVPRHR,
12034 VINSERTVPRWR, VREPLACE_ELT_V4SI, VREPLACE_ELT_UV4SI, VREPLACE_ELT_V2DF,
12035 VREPLACE_ELT_V4SF, VREPLACE_ELT_V2DI, VREPLACE_ELT_UV2DI, VREPLACE_UN_V4SI,
12036 VREPLACE_UN_UV4SI, VREPLACE_UN_V4SF, VREPLACE_UN_V2DI, VREPLACE_UN_UV2DI,
12037 VREPLACE_UN_V2DF, VSLDB_V16QI, VSLDB_V8HI, VSLDB_V4SI, VSLDB_V2DI,
12038 VSRDB_V16QI, VSRDB_V8HI, VSRDB_V4SI, VSRDB_V2DI): Replace macro expansion
12039 BU_P10V_3 with BU_P10V_AV_3.
12040 (VXXSPLTIW_V4SI, VXXSPLTIW_V4SF, VXXSPLTID): Replace macro expansion
12041 BU_P10V_1 with BU_P10V_AV_1.
12042 (XXGENPCVM_V16QI, XXGENPCVM_V8HI, XXGENPCVM_V4SI, XXGENPCVM_V2DI):
12043 Replace macro expansion BU_P10V_2 with BU_P10V_VSX_2.
12044 (VXXSPLTI32DX_V4SI, VXXSPLTI32DX_V4SF, VXXBLEND_V16QI, VXXBLEND_V8HI,
12045 VXXBLEND_V4SI, VXXBLEND_V2DI, VXXBLEND_V4SF, VXXBLEND_V2DF): Replace macor
12046 expansion BU_P10V_3 with BU_P10V_VSX_3.
12047 (XXEVAL, VXXPERMX): Replace macro expansion BU_P10V_4 with BU_P10V_VSX_4.
12048 (XVCVBF16SP, XVCVSPBF16): Replace macro expansion BU_VSX_1 with
12049 BU_P10V_VSX_1. Also change MISC to CONST.
12050 * config/rs6000/rs6000-c.c: (P10_BUILTIN_VXXPERMX): Replace with
12051 P10V_BUILTIN_VXXPERMX.
12052 (P10_BUILTIN_VCLRLB, P10_BUILTIN_VCLRLB, P10_BUILTIN_VCLRRB,
12053 P10_BUILTIN_VGNB, P10_BUILTIN_XXEVAL, P10_BUILTIN_VXXPERMX,
12054 P10_BUILTIN_VEXTRACTBL, P10_BUILTIN_VEXTRACTHL, P10_BUILTIN_VEXTRACTWL,
12055 P10_BUILTIN_VEXTRACTDL, P10_BUILTIN_VINSERTGPRHL,
12056 P10_BUILTIN_VINSERTGPRWL, P10_BUILTIN_VINSERTGPRDL,
12057 P10_BUILTIN_VINSERTVPRBL, P10_BUILTIN_VINSERTVPRHL,
12058 P10_BUILTIN_VEXTRACTBR, P10_BUILTIN_VEXTRACTHR,
12059 P10_BUILTIN_VEXTRACTWR, P10_BUILTIN_VEXTRACTDR,
12060 P10_BUILTIN_VINSERTGPRBR, P10_BUILTIN_VINSERTGPRHR,
12061 P10_BUILTIN_VINSERTGPRWR, P10_BUILTIN_VINSERTGPRDR,
12062 P10_BUILTIN_VINSERTVPRBR, P10_BUILTIN_VINSERTVPRHR,
12063 P10_BUILTIN_VINSERTVPRWR, P10_BUILTIN_VREPLACE_ELT_UV4SI,
12064 P10_BUILTIN_VREPLACE_ELT_V4SI, P10_BUILTIN_VREPLACE_ELT_UV2DI,
12065 P10_BUILTIN_VREPLACE_ELT_V2DI, P10_BUILTIN_VREPLACE_ELT_V2DF,
12066 P10_BUILTIN_VREPLACE_UN_UV4SI, P10_BUILTIN_VREPLACE_UN_V4SI,
12067 P10_BUILTIN_VREPLACE_UN_V4SF, P10_BUILTIN_VREPLACE_UN_UV2DI,
12068 P10_BUILTIN_VREPLACE_UN_V2DI, P10_BUILTIN_VREPLACE_UN_V2DF,
12069 P10_BUILTIN_VSLDB_V16QI, P10_BUILTIN_VSLDB_V16QI,
12070 P10_BUILTIN_VSLDB_V8HI, P10_BUILTIN_VSLDB_V4SI,
12071 P10_BUILTIN_VSLDB_V2DI, P10_BUILTIN_VXXSPLTIW_V4SI,
12072 P10_BUILTIN_VXXSPLTIW_V4SF, P10_BUILTIN_VXXSPLTID,
12073 P10_BUILTIN_VXXSPLTI32DX_V4SI, P10_BUILTIN_VXXSPLTI32DX_V4SF,
12074 P10_BUILTIN_VXXBLEND_V16QI, P10_BUILTIN_VXXBLEND_V8HI,
12075 P10_BUILTIN_VXXBLEND_V4SI, P10_BUILTIN_VXXBLEND_V2DI,
12076 P10_BUILTIN_VXXBLEND_V4SF, P10_BUILTIN_VXXBLEND_V2DF,
12077 P10_BUILTIN_VSRDB_V16QI, P10_BUILTIN_VSRDB_V8HI,
12078 P10_BUILTIN_VSRDB_V4SI, P10_BUILTIN_VSRDB_V2DI,
12079 P10_BUILTIN_VSTRIBL, P10_BUILTIN_VSTRIHL,
12080 P10_BUILTIN_VSTRIBL_P, P10_BUILTIN_VSTRIHL_P,
12081 P10_BUILTIN_VSTRIBR, P10_BUILTIN_VSTRIHR,
12082 P10_BUILTIN_VSTRIBR_P, P10_BUILTIN_VSTRIHR_P,
12083 P10_BUILTIN_MTVSRBM, P10_BUILTIN_MTVSRHM,
12084 P10_BUILTIN_MTVSRWM, P10_BUILTIN_MTVSRDM,
12085 P10_BUILTIN_MTVSRQM, P10_BUILTIN_VCNTMBB,
12086 P10_BUILTIN_VCNTMBH, P10_BUILTIN_VCNTMBW,
12087 P10_BUILTIN_VCNTMBD, P10_BUILTIN_VEXPANDMB,
12088 P10_BUILTIN_VEXPANDMH, P10_BUILTIN_VEXPANDMW,
12089 P10_BUILTIN_VEXPANDMD, P10_BUILTIN_VEXPANDMQ,
12090 P10_BUILTIN_VEXTRACTMB, P10_BUILTIN_VEXTRACTMH,
12091 P10_BUILTIN_VEXTRACTMW, P10_BUILTIN_VEXTRACTMD,
12092 P10_BUILTIN_VEXTRACTMQ, P10_BUILTIN_XVTLSBB_ZEROS,
12093 P10_BUILTIN_XVTLSBB_ONES): Replace with
12094 P10V_BUILTIN_VCLRLB, P10V_BUILTIN_VCLRLB, P10V_BUILTIN_VCLRRB,
12095 P10V_BUILTIN_VGNB, P10V_BUILTIN_XXEVAL, P10V_BUILTIN_VXXPERMX,
12096 P10V_BUILTIN_VEXTRACTBL, P10V_BUILTIN_VEXTRACTHL, P10V_BUILTIN_VEXTRACTWL,
12097 P10V_BUILTIN_VEXTRACTDL, P10V_BUILTIN_VINSERTGPRHL,
12098 P10V_BUILTIN_VINSERTGPRWL, P10V_BUILTIN_VINSERTGPRDL,
12099 P10V_BUILTIN_VINSERTVPRBL,P10V_BUILTIN_VINSERTVPRHL,
12100 P10V_BUILTIN_VEXTRACTBR, P10V_BUILTIN_VEXTRACTHR
12101 P10V_BUILTIN_VEXTRACTWR, P10V_BUILTIN_VEXTRACTDR,
12102 P10V_BUILTIN_VINSERTGPRBR, P10V_BUILTIN_VINSERTGPRHR,
12103 P10V_BUILTIN_VINSERTGPRWR, P10V_BUILTIN_VINSERTGPRDR,
12104 P10V_BUILTIN_VINSERTVPRBR, P10V_BUILTIN_VINSERTVPRHR,
12105 P10V_BUILTIN_VINSERTVPRWR, P10V_BUILTIN_VREPLACE_ELT_UV4SI,
12106 P10V_BUILTIN_VREPLACE_ELT_V4SI, P10V_BUILTIN_VREPLACE_ELT_UV2DI,
12107 P10V_BUILTIN_VREPLACE_ELT_V2DI, P10V_BUILTIN_VREPLACE_ELT_V2DF,
12108 P10V_BUILTIN_VREPLACE_UN_UV4SI, P10V_BUILTIN_VREPLACE_UN_V4SI,
12109 P10V_BUILTIN_VREPLACE_UN_V4SF, P10V_BUILTIN_VREPLACE_UN_UV2DI,
12110 P10V_BUILTIN_VREPLACE_UN_V2DI, P10V_BUILTIN_VREPLACE_UN_V2DF,
12111 P10V_BUILTIN_VSLDB_V16QI, P10V_BUILTIN_VSLDB_V16QI,
12112 P10V_BUILTIN_VSLDB_V8HI, P10V_BUILTIN_VSLDB_V4SI,
12113 P10V_BUILTIN_VSLDB_V2DI, P10V_BUILTIN_VXXSPLTIW_V4SI,
12114 P10V_BUILTIN_VXXSPLTIW_V4SF, P10V_BUILTIN_VXXSPLTID,
12115 P10V_BUILTIN_VXXSPLTI32DX_V4SI, P10V_BUILTIN_VXXSPLTI32DX_V4SF,
12116 P10V_BUILTIN_VXXBLEND_V16QI, P10V_BUILTIN_VXXBLEND_V8HI,
12117 P10V_BUILTIN_VXXBLEND_V4SI, P10V_BUILTIN_VXXBLEND_V2DI,
12118 P10V_BUILTIN_VXXBLEND_V4SF, P10V_BUILTIN_VXXBLEND_V2DF,
12119 P10V_BUILTIN_VSRDB_V16QI, P10V_BUILTIN_VSRDB_V8HI,
12120 P10V_BUILTIN_VSRDB_V4SI, P10V_BUILTIN_VSRDB_V2DI,
12121 P10V_BUILTIN_VSTRIBL, P10V_BUILTIN_VSTRIHL,
12122 P10V_BUILTIN_VSTRIBL_P, P10V_BUILTIN_VSTRIHL_P,
12123 P10V_BUILTIN_VSTRIBR, P10V_BUILTIN_VSTRIHR,
12124 P10V_BUILTIN_VSTRIBR_P, P10V_BUILTIN_VSTRIHR_P,
12125 P10V_BUILTIN_MTVSRBM, P10V_BUILTIN_MTVSRHM,
12126 P10V_BUILTIN_MTVSRWM, P10V_BUILTIN_MTVSRDM,
12127 P10V_BUILTIN_MTVSRQM, P10V_BUILTIN_VCNTMBB,
12128 P10V_BUILTIN_VCNTMBH, P10V_BUILTIN_VCNTMBW,
12129 P10V_BUILTIN_VCNTMBD, P10V_BUILTIN_VEXPANDMB,
12130 P10V_BUILTIN_VEXPANDMH, P10V_BUILTIN_VEXPANDMW,
12131 P10V_BUILTIN_VEXPANDMD, P10V_BUILTIN_VEXPANDMQ,
12132 P10V_BUILTIN_VEXTRACTMB, P10V_BUILTIN_VEXTRACTMH,
12133 P10V_BUILTIN_VEXTRACTMW, P10V_BUILTIN_VEXTRACTMD,
12134 P10V_BUILTIN_VEXTRACTMQ, P10V_BUILTIN_XVTLSBB_ZEROS,
12135 P10V_BUILTIN_XVTLSBB_ONES respectively.
12136 * config/rs6000/rs6000-call.c: Ditto above, change P10_BUILTIN_name to
12137 P10V_BUILTIN_name.
12138 (P10_BUILTIN_XVCVSPBF16, P10_BUILTIN_XVCVBF16SP): Change to
12139 P10V_BUILTIN_XVCVSPBF16, P10V_BUILTIN_XVCVBF16SP respectively.
12140
12141 2020-08-19 Bill Schmidt <wschmidt@linux.ibm.com>
12142
12143 * config/rs6000/rs6000-logue.c (rs6000_decl_ok_for_sibcall):
12144 Sibcalls are always legal when the caller doesn't preserve r2.
12145
12146 2020-08-19 Uroš Bizjak <ubizjak@gmail.com>
12147
12148 * config/i386/i386-expand.c (ix86_expand_builtin)
12149 [case IX86_BUILTIN_ENQCMD, case IX86_BUILTIN_ENQCMDS]:
12150 Rewrite expansion to use code_for_enqcmd.
12151 [case IX86_BUILTIN_WRSSD, case IX86_BUILTIN_WRSSQ]:
12152 Rewrite expansion to use code_for_wrss.
12153 [case IX86_BUILTIN_WRUSSD, case IX86_BUILTIN_WRUSSD]:
12154 Rewrite expansion to use code_for_wrss.
12155
12156 2020-08-19 Feng Xue <fxue@os.amperecomputing.com>
12157
12158 PR tree-optimization/94234
12159 * match.pd ((PTR_A + OFF) - (PTR_B + OFF)) -> (PTR_A - PTR_B): New
12160 simplification.
12161
12162 2020-08-19 H.J. Lu <hjl.tools@gmail.com>
12163
12164 * common/config/i386/cpuinfo.h (get_intel_cpu): Detect Rocket
12165 Lake and Alder Lake.
12166
12167 2020-08-19 Peixin Qiao <qiaopeixin@huawei.com>
12168
12169 * config/aarch64/aarch64.c (aarch64_init_cumulative_args): Remove
12170 "fndecl && TREE_PUBLIC (fndecl)" check since it prevents the funtion
12171 type check when calling via a function pointer or when calling a static
12172 function.
12173
12174 2020-08-19 Kewen Lin <linkw@linux.ibm.com>
12175
12176 * opts-global.c (decode_options): Call target_option_override_hook
12177 before it prints for --help=*.
12178
12179 2020-08-18 Peter Bergner <bergner@linux.ibm.com>
12180
12181 * config/rs6000/rs6000-builtin.def (BU_VSX_1): Rename xvcvbf16sp to
12182 xvcvbf16spn.
12183 * config/rs6000/rs6000-call.c (builtin_function_type): Likewise.
12184 * config/rs6000/vsx.md: Likewise.
12185 * doc/extend.texi: Likewise.
12186
12187 2020-08-18 Aaron Sawdey <acsawdey@linux.ibm.com>
12188
12189 * config/rs6000/rs6000-string.c (gen_lxvl_stxvl_move):
12190 Helper function.
12191 (expand_block_move): Add lxvl/stxvl, vector pair, and
12192 unaligned VSX.
12193 * config/rs6000/rs6000.c (rs6000_option_override_internal):
12194 Default value for -mblock-ops-vector-pair.
12195 * config/rs6000/rs6000.opt: Add -mblock-ops-vector-pair.
12196
12197 2020-08-18 Aldy Hernandez <aldyh@redhat.com>
12198
12199 * vr-values.c (check_for_binary_op_overflow): Change type of store
12200 to range_query.
12201 (vr_values::adjust_range_with_scev): Abstract most of the code...
12202 (range_of_var_in_loop): ...here. Remove value_range_equiv uses.
12203 (simplify_using_ranges::simplify_using_ranges): Change type of store
12204 to range_query.
12205 * vr-values.h (class range_query): New.
12206 (class simplify_using_ranges): Use range_query.
12207 (class vr_values): Add OVERRIDE to get_value_range.
12208 (range_of_var_in_loop): New.
12209
12210 2020-08-18 Martin Sebor <msebor@redhat.com>
12211
12212 PR middle-end/96665
12213 PR middle-end/78257
12214 * expr.c (convert_to_bytes): Replace statically allocated buffer with
12215 a dynamically allocated one of sufficient size.
12216
12217 2020-08-18 Martin Sebor <msebor@redhat.com>
12218
12219 PR tree-optimization/96670
12220 PR middle-end/78257
12221 * gimple-fold.c (gimple_fold_builtin_memchr): Call byte_representation
12222 to get it, not string_constant.
12223
12224 2020-08-18 Hu Jiangping <hujiangping@cn.fujitsu.com>
12225
12226 * doc/gimple.texi (gimple_debug_begin_stmt_p): Add return type.
12227 (gimple_debug_inline_entry_p, gimple_debug_nonbind_marker_p): Likewise.
12228
12229 2020-08-18 Martin Sebor <msebor@redhat.com>
12230
12231 * fold-const.c (native_encode_expr): Update comment.
12232
12233 2020-08-18 Uroš Bizjak <ubizjak@gmail.com>
12234
12235 PR target/96536
12236 * config/i386/i386.md (restore_stack_nonlocal): Add missing compare
12237 RTX. Rewrite expander to use high-level functions in RTL construction.
12238
12239 2020-08-18 liuhongt <hongtao.liu@intel.com>
12240
12241 PR target/96562
12242 PR target/93897
12243 * config/i386/i386-expand.c (ix86_expand_pinsr): Don't use
12244 pinsr for TImode.
12245 (ix86_expand_pextr): Don't use pextr for TImode.
12246
12247 2020-08-17 Uroš Bizjak <ubizjak@gmail.com>
12248
12249 * config/i386/i386-builtin.def (__builtin_ia32_bextri_u32)
12250 (__builtin_ia32_bextri_u64): Use CODE_FOR_nothing.
12251 * config/i386/i386.md (@tbm_bextri_<mode>):
12252 Implement as parametrized name pattern.
12253 (@rdrand<mode>): Ditto.
12254 (@rdseed<mode>): Ditto.
12255 * config/i386/i386-expand.c (ix86_expand_builtin)
12256 [case IX86_BUILTIN_BEXTRI32, case IX86_BUILTIN_BEXTRI64]:
12257 Update for parameterized name patterns.
12258 [case IX86_BUILTIN_RDRAND16_STEP, case IX86_BUILTIN_RDRAND32_STEP]
12259 [case IX86_BUILTIN_RDRAND64_STEP]: Ditto.
12260 [case IX86_BUILTIN_RDSEED16_STEP, case IX86_BUILTIN_RDSEED32_STEP]
12261 [case IX86_BUILTIN_RDSEED64_STEP]: Ditto.
12262
12263 2020-08-17 Aldy Hernandez <aldyh@redhat.com>
12264
12265 * vr-values.c (vr_values::get_value_range): Add stmt param.
12266 (vr_values::extract_range_from_comparison): Same.
12267 (vr_values::extract_range_from_assignment): Pass stmt to
12268 extract_range_from_comparison.
12269 (vr_values::adjust_range_with_scev): Pass stmt to get_value_range.
12270 (simplify_using_ranges::vrp_evaluate_conditional): Add stmt param.
12271 Pass stmt to get_value_range.
12272 (simplify_using_ranges::vrp_visit_cond_stmt): Pass stmt to
12273 get_value_range.
12274 (simplify_using_ranges::simplify_abs_using_ranges): Same.
12275 (simplify_using_ranges::simplify_div_or_mod_using_ranges): Same.
12276 (simplify_using_ranges::simplify_bit_ops_using_ranges): Same.
12277 (simplify_using_ranges::simplify_cond_using_ranges_1): Same.
12278 (simplify_using_ranges::simplify_switch_using_ranges): Same.
12279 (simplify_using_ranges::simplify_float_conversion_using_ranges): Same.
12280 * vr-values.h (class vr_values): Add stmt arg to
12281 vrp_evaluate_conditional_warnv_with_ops.
12282 Add stmt arg to extract_range_from_comparison and get_value_range.
12283 (simplify_using_ranges::get_value_range): Add stmt arg.
12284
12285 2020-08-17 liuhongt <hongtao.liu@intel.com>
12286
12287 PR target/96350
12288 * config/i386/i386.c (ix86_legitimate_constant_p): Return
12289 false for ENDBR immediate.
12290 (ix86_legitimate_address_p): Ditto.
12291 * config/i386/predicates.md
12292 (x86_64_immediate_operand): Exclude ENDBR immediate.
12293 (x86_64_zext_immediate_operand): Ditto.
12294 (x86_64_dwzext_immediate_operand): Ditto.
12295 (ix86_endbr_immediate_operand): New predicate.
12296
12297 2020-08-16 Roger Sayle <roger@nextmovesoftware.com>
12298
12299 * simplify-rtx.c (simplify_unary_operation_1) [SIGN_EXTEND]:
12300 Simplify (sign_extend:M (truncate:N (lshiftrt:M x C))) to
12301 (ashiftrt:M x C) when the shift sets the high bits appropriately.
12302
12303 2020-08-14 Martin Sebor <msebor@redhat.com>
12304
12305 PR middle-end/78257
12306 * builtins.c (expand_builtin_memory_copy_args): Rename called function.
12307 (expand_builtin_stpcpy_1): Remove argument from call.
12308 (expand_builtin_memcmp): Rename called function.
12309 (inline_expand_builtin_bytecmp): Same.
12310 * expr.c (convert_to_bytes): New function.
12311 (constant_byte_string): New function (formerly string_constant).
12312 (string_constant): Call constant_byte_string.
12313 (byte_representation): New function.
12314 * expr.h (byte_representation): Declare.
12315 * fold-const-call.c (fold_const_call): Rename called function.
12316 * fold-const.c (c_getstr): Remove an argument.
12317 (getbyterep): Define a new function.
12318 * fold-const.h (c_getstr): Remove an argument.
12319 (getbyterep): Declare a new function.
12320 * gimple-fold.c (gimple_fold_builtin_memory_op): Rename callee.
12321 (gimple_fold_builtin_string_compare): Same.
12322 (gimple_fold_builtin_memchr): Same.
12323
12324 2020-08-14 David Malcolm <dmalcolm@redhat.com>
12325
12326 * doc/analyzer.texi (Overview): Add tip about how to get a
12327 gimple dump if the analyzer ICEs.
12328
12329 2020-08-14 Uroš Bizjak <ubizjak@gmail.com>
12330
12331 * config/i386/i386-builtin.def (__builtin_ia32_llwpcb)
12332 (__builtin_ia32_slwpcb, __builtin_ia32_lwpval32)
12333 (__builtin_ia32_lwpval64, __builtin_ia32_lwpins32)
12334 (__builtin_ia32_lwpins64): Use CODE_FOR_nothing.
12335 * config/i386/i386.md (@lwp_llwpcb<mode>):
12336 Implement as parametrized name pattern.
12337 (@lwp_slwpcb<mode>): Ditto.
12338 (@lwp_lwpval<mode>): Ditto.
12339 (@lwp_lwpins<mode>): Ditto.
12340 * config/i386/i386-expand.c (ix86_expand_special_args_builtin)
12341 [case VOID_FTYPE_UINT_UINT_UINT, case VOID_FTYPE_UINT64_UINT_UINT]
12342 [case UCHAR_FTYPE_UINT_UINT_UINT, case UCHAR_FTYPE_UINT64_UINT_UINT]:
12343 Remove.
12344 (ix86_expand_builtin)
12345 [ case IX86_BUILTIN_LLWPCB, case IX86_BUILTIN_LLWPCB]:
12346 Update for parameterized name patterns.
12347 [case IX86_BUILTIN_LWPVAL32, case IX86_BUILTIN_LWPVAL64]
12348 [case IX86_BUILTIN_LWPINS32, case IX86_BUILTIN_LWPINS64]: Expand here.
12349
12350 2020-08-14 Lewis Hyatt <lhyatt@gmail.com>
12351
12352 * common.opt: Add new option -fdiagnostics-plain-output.
12353 * doc/invoke.texi: Document it.
12354 * opts-common.c (decode_cmdline_options_to_array): Implement it.
12355 (decode_cmdline_option): Add missing const qualifier to argv.
12356
12357 2020-08-14 Jakub Jelinek <jakub@redhat.com>
12358 Jonathan Wakely <jwakely@redhat.com>
12359 Jonathan Wakely <jwakely@redhat.com>
12360
12361 * system.h: Include type_traits.
12362 * vec.h (vec<T, A, vl_embed>::embedded_size): Use offsetof and asserts
12363 on vec_stdlayout, which is conditionally a vec (for standard layout T)
12364 and otherwise vec_embedded.
12365
12366 2020-08-14 Jojo R <jiejie_rong@c-sky.com>
12367
12368 * config/csky/csky-elf.h (ASM_SPEC): Use mfloat-abi.
12369 * config/csky/csky-linux-elf.h (ASM_SPEC): mfloat-abi.
12370
12371 2020-08-13 David Malcolm <dmalcolm@redhat.com>
12372
12373 PR analyzer/93032
12374 PR analyzer/93938
12375 PR analyzer/94011
12376 PR analyzer/94099
12377 PR analyzer/94399
12378 PR analyzer/94458
12379 PR analyzer/94503
12380 PR analyzer/94640
12381 PR analyzer/94688
12382 PR analyzer/94689
12383 PR analyzer/94839
12384 PR analyzer/95026
12385 PR analyzer/95042
12386 PR analyzer/95240
12387 * Makefile.in (ANALYZER_OBJS): Add analyzer/region.o,
12388 analyzer/region-model-impl-calls.o,
12389 analyzer/region-model-manager.o,
12390 analyzer/region-model-reachability.o, analyzer/store.o, and
12391 analyzer/svalue.o.
12392 * doc/analyzer.texi: Update for changes to analyzer
12393 implementation.
12394 * tristate.h (tristate::get_value): New accessor.
12395
12396 2020-08-13 Uroš Bizjak <ubizjak@gmail.com>
12397
12398 * config/i386/i386-builtin.def (CET_NORMAL): Merge to CET BDESC array.
12399 (__builtin_ia32_rddspd, __builtin_ia32_rddspq, __builtin_ia32_incsspd)
12400 (__builtin_ia32_incsspq, __builtin_ia32_wrssd, __builtin_ia32_wrssq)
12401 (__builtin_ia32_wrussd, __builtin_ia32_wrussq): Use CODE_FOR_nothing.
12402 * config/i386/i386-builtins.c: Remove handling of CET_NORMAL builtins.
12403 * config/i386/i386.md (@rdssp<mode>): Implement as parametrized
12404 name pattern. Use SWI48 mode iterator. Introduce input operand
12405 and remove explicit XOR zeroing from insn template.
12406 (@incssp<mode>): Implement as parametrized name pattern.
12407 Use SWI48 mode iterator.
12408 (@wrss<mode>): Ditto.
12409 (@wruss<mode>): Ditto.
12410 (rstorssp): Remove expander. Rename insn pattern from *rstorssp<mode>.
12411 Use DImode memory operand.
12412 (clrssbsy): Remove expander. Rename insn pattern from *clrssbsy<mode>.
12413 Use DImode memory operand.
12414 (save_stack_nonlocal): Update for parametrized name patterns.
12415 Use cleared register as an argument to gen_rddsp.
12416 (restore_stack_nonlocal): Update for parametrized name patterns.
12417 * config/i386/i386-expand.c (ix86_expand_builtin):
12418 [case IX86_BUILTIN_RDSSPD, case IX86_BUILTIN_RDSSPQ]: Expand here.
12419 [case IX86_BUILTIN_INCSSPD, case IX86_BUILTIN_INCSSPQ]: Ditto.
12420 [case IX86_BUILTIN_RSTORSSP, case IX86_BUILTIN_CLRSSBSY]:
12421 Generate DImode memory operand.
12422 [case IX86_BUILTIN_WRSSD, case IX86_BUILTIN_WRSSQ]
12423 [case IX86_BUILTIN_WRUSSD, case IX86_BUILTIN_WRUSSD]:
12424 Update for parameterized name patterns.
12425
12426 2020-08-13 Peter Bergner <bergner@linux.ibm.com>
12427
12428 PR target/96506
12429 * config/rs6000/rs6000-call.c (rs6000_promote_function_mode): Disallow
12430 MMA types as return values.
12431 (rs6000_function_arg): Disallow MMA types as function arguments.
12432
12433 2020-08-13 Richard Sandiford <richard.sandiford@arm.com>
12434
12435 Revert:
12436 2020-08-12 Peixin Qiao <qiaopeixin@huawei.com>
12437
12438 * config/aarch64/aarch64.c (aarch64_function_value): Add if
12439 condition to check ag_mode after entering if condition of
12440 aarch64_vfp_is_call_or_return_candidate. If TARGET_FLOAT is
12441 set as false by -mgeneral-regs-only, report the diagnostic
12442 information of -mgeneral-regs-only imcompatible with the use
12443 of fp/simd register(s).
12444
12445 2020-08-13 Martin Liska <mliska@suse.cz>
12446
12447 PR ipa/96482
12448 * ipa-cp.c (ipcp_bits_lattice::meet_with_1): Mask m_value
12449 with m_mask.
12450
12451 2020-08-13 Jakub Jelinek <jakub@redhat.com>
12452
12453 * gimplify.c (gimplify_omp_taskloop_expr): New function.
12454 (gimplify_omp_for): Use it. For OMP_FOR_NON_RECTANGULAR
12455 loops adjust in outer taskloop the var-outer decls.
12456 * omp-expand.c (expand_omp_taskloop_for_inner): Handle non-rectangular
12457 loops.
12458 (expand_omp_for): Don't reject non-rectangular taskloop.
12459 * omp-general.c (omp_extract_for_data): Don't assert that
12460 non-rectangular loops have static schedule, instead treat loop->m1
12461 or loop->m2 as if loop->n1 or loop->n2 is non-constant.
12462
12463 2020-08-13 Hongtao Liu <hongtao.liu@intel.com>
12464
12465 PR target/96246
12466 * config/i386/sse.md (<avx512>_load<mode>_mask,
12467 <avx512>_load<mode>_mask): Extend to generate blendm
12468 instructions.
12469 (<avx512>_blendm<mode>, <avx512>_blendm<mode>): Change
12470 define_insn to define_expand.
12471
12472 2020-08-12 Roger Sayle <roger@nextmovesoftware.com>
12473 Uroš Bizjak <ubizjak@gmail.com>
12474
12475 PR target/96558
12476 * config/i386/i386.md (peephole2): Only reorder register clearing
12477 instructions to allow use of xor for general registers.
12478
12479 2020-08-12 Martin Liska <mliska@suse.cz>
12480
12481 PR ipa/96482
12482 * ipa-cp.c (ipcp_bits_lattice::meet_with_1): Drop value bits
12483 for bits that are unknown.
12484 (ipcp_bits_lattice::set_to_constant): Likewise.
12485 * tree-ssa-ccp.c (get_default_value): Add sanity check that
12486 IPA CP bit info has all bits set to zero in bits that
12487 are unknown.
12488
12489 2020-08-12 Peixin Qiao <qiaopeixin@huawei.com>
12490
12491 * config/aarch64/aarch64.c (aarch64_function_value): Add if
12492 condition to check ag_mode after entering if condition of
12493 aarch64_vfp_is_call_or_return_candidate. If TARGET_FLOAT is
12494 set as false by -mgeneral-regs-only, report the diagnostic
12495 information of -mgeneral-regs-only imcompatible with the use
12496 of fp/simd register(s).
12497
12498 2020-08-12 Jakub Jelinek <jakub@redhat.com>
12499
12500 PR tree-optimization/96535
12501 * toplev.c (process_options): Move flag_unroll_loops and
12502 flag_cunroll_grow_size handling from here to ...
12503 * opts.c (finish_options): ... here. For flag_cunroll_grow_size,
12504 don't check for AUTODETECT_VALUE, but instead check
12505 opts_set->x_flag_cunroll_grow_size.
12506 * common.opt (funroll-completely-grow-size): Default to 0.
12507 * config/rs6000/rs6000.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
12508 Redefine.
12509 (rs6000_override_options_after_change): New function.
12510 (rs6000_option_override_internal): Call it. Move there the
12511 flag_cunroll_grow_size, unroll_only_small_loops and
12512 flag_rename_registers handling.
12513
12514 2020-08-12 Tom de Vries <tdevries@suse.de>
12515
12516 * config/nvptx/nvptx.c (nvptx_assemble_decl_begin): Make elt_size an
12517 unsigned HOST_WIDE_INT. Print init_frag.remaining using
12518 HOST_WIDE_INT_PRINT_UNSIGNED.
12519
12520 2020-08-12 Roger Sayle <roger@nextmovesoftware.com>
12521 Uroš Bizjak <ubizjak@gmail.com>
12522
12523 * config/i386/i386.md (peephole2): Reduce unnecessary
12524 register shuffling produced by register allocation.
12525
12526 2020-08-12 Aldy Hernandez <aldyh@redhat.com>
12527
12528 * ipa-fnsummary.c (evaluate_conditions_for_known_args): Use vec<>
12529 instead of std::vector<>.
12530 (evaluate_properties_for_edge): Same.
12531 (ipa_fn_summary_t::duplicate): Same.
12532 (estimate_ipcp_clone_size_and_time): Same.
12533 * vec.h (<T, A, vl_embed>::embedded_size): Change vec_embedded
12534 type to contain a char[].
12535
12536 2020-08-12 Andreas Krebbel <krebbel@linux.ibm.com>
12537
12538 PR target/96308
12539 * config/s390/s390.c (s390_cannot_force_const_mem): Reject an
12540 unary minus for everything not being a numeric constant.
12541 (legitimize_tls_address): Move a NEG out of the CONST rtx.
12542
12543 2020-08-12 Andreas Krebbel <krebbel@linux.ibm.com>
12544
12545 PR target/96456
12546 * config/s390/s390.h (TARGET_NONSIGNALING_VECTOR_COMPARE_OK): New
12547 macro.
12548 * config/s390/vector.md (vcond_comparison_operator): Use new macro
12549 for the check.
12550
12551 2020-08-11 Jakub Jelinek <jakub@redhat.com>
12552
12553 PR rtl-optimization/96539
12554 * expr.c (emit_block_move_hints): Don't copy anything if x and y
12555 are the same and neither is MEM_VOLATILE_P.
12556
12557 2020-08-11 Jakub Jelinek <jakub@redhat.com>
12558
12559 PR c/96549
12560 * tree.c (get_narrower): Use TREE_TYPE (ret) instead of
12561 TREE_TYPE (win) for COMPOUND_EXPRs.
12562
12563 2020-08-11 Jan Hubicka <hubicka@ucw.cz>
12564
12565 * predict.c (not_loop_guard_equal_edge_p): New function.
12566 (maybe_predict_edge): New function.
12567 (predict_paths_for_bb): Use it.
12568 (predict_paths_leading_to_edge): Use it.
12569
12570 2020-08-11 Martin Liska <mliska@suse.cz>
12571
12572 * dbgcnt.def (DEBUG_COUNTER): Add ipa_cp_bits.
12573 * ipa-cp.c (ipcp_store_bits_results): Use it when we store known
12574 bits for parameters.
12575
12576 2020-08-10 Marek Polacek <polacek@redhat.com>
12577
12578 * doc/sourcebuild.texi: Document dg-ice.
12579
12580 2020-08-10 Roger Sayle <roger@nextmovesoftware.com>
12581
12582 * config/i386/i386-expand.c (ix86_expand_int_movcc): Expand
12583 signed MIN_EXPR against zero as "x < 0 ? x : 0" instead of
12584 "x <= 0 ? x : 0" to enable sign_bit_compare_p optimizations.
12585
12586 2020-08-10 Aldy Hernandez <aldyh@redhat.com>
12587
12588 * value-range.h (gt_ggc_mx): Declare inline.
12589 (gt_pch_nx): Same.
12590
12591 2020-08-10 Marc Glisse <marc.glisse@inria.fr>
12592
12593 PR tree-optimization/95433
12594 * match.pd (X * C1 == C2): Handle wrapping overflow.
12595 * expr.c (maybe_optimize_mod_cmp): Qualify call to mod_inv.
12596 (mod_inv): Move...
12597 * wide-int.cc (mod_inv): ... here.
12598 * wide-int.h (mod_inv): Declare it.
12599
12600 2020-08-10 Jan Hubicka <hubicka@ucw.cz>
12601
12602 * predict.c (filter_predictions): Document semantics of filter.
12603 (equal_edge_p): Rename to ...
12604 (not_equal_edge_p): ... this; reverse semantics.
12605 (remove_predictions_associated_with_edge): Fix.
12606
12607 2020-08-10 Hongtao Liu <hongtao.liu@intel.com>
12608
12609 PR target/96243
12610 * config/i386/i386-expand.c (ix86_expand_sse_cmp): Refine for
12611 maskcmp.
12612 (ix86_expand_mask_vec_cmp): Change prototype.
12613 * config/i386/i386-protos.h (ix86_expand_mask_vec_cmp): Change prototype.
12614 * config/i386/i386.c (ix86_print_operand): Remove operand
12615 modifier 'I'.
12616 * config/i386/sse.md
12617 (*<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>): Deleted.
12618 (*<avx512>_cmp<mode>3<mask_scalar_merge_name>): Ditto.
12619 (*<avx512>_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
12620 (*<avx512>_ucmp<mode>3<mask_scalar_merge_name>,
12621 avx512f_maskcmp<mode>3): Ditto.
12622
12623 2020-08-09 Roger Sayle <roger@nextmovesoftware.com>
12624
12625 * expmed.c (init_expmed_one_conv): Restore all->reg's mode.
12626 (init_expmed_one_mode): Set all->reg to desired mode.
12627
12628 2020-08-08 Peter Bergner <bergner@linux.ibm.com>
12629
12630 PR target/96530
12631 * config/rs6000/rs6000.c (rs6000_invalid_conversion): Use canonical
12632 types for type comparisons. Refactor code to simplify it.
12633
12634 2020-08-08 Jakub Jelinek <jakub@redhat.com>
12635
12636 PR fortran/93553
12637 * tree-nested.c (convert_nonlocal_omp_clauses): For
12638 OMP_CLAUSE_REDUCTION, OMP_CLAUSE_LASTPRIVATE and OMP_CLAUSE_LINEAR
12639 save info->new_local_var_chain around walks of the clause gimple
12640 sequences and declare_vars if needed into the sequence.
12641
12642 2020-08-08 Jakub Jelinek <jakub@redhat.com>
12643
12644 PR tree-optimization/96424
12645 * omp-expand.c: Include tree-eh.h.
12646 (expand_omp_for_init_vars): Handle -fexceptions -fnon-call-exceptions
12647 by forcing floating point comparison into a bool temporary.
12648
12649 2020-08-07 Marc Glisse <marc.glisse@inria.fr>
12650
12651 * generic-match-head.c (optimize_vectors_before_lowering_p): New
12652 function.
12653 * gimple-match-head.c (optimize_vectors_before_lowering_p):
12654 Likewise.
12655 * match.pd ((v ? w : 0) ? a : b, c1 ? c2 ? a : b : b): Use it.
12656
12657 2020-08-07 Richard Biener <rguenther@suse.de>
12658
12659 PR tree-optimization/96514
12660 * tree-if-conv.c (if_convertible_bb_p): If the last stmt
12661 is a call that is control-altering, fail.
12662
12663 2020-08-07 Jose E. Marchesi <jose.marchesi@oracle.com>
12664
12665 * config/bpf/bpf.md: Remove trailing whitespaces.
12666 * config/bpf/constraints.md: Likewise.
12667 * config/bpf/predicates.md: Likewise.
12668
12669 2020-08-07 Michael Meissner <meissner@linux.ibm.com>
12670
12671 * config/rs6000/rs6000.md (bswaphi2_reg): Add ISA 3.1 support.
12672 (bswapsi2_reg): Add ISA 3.1 support.
12673 (bswapdi2): Rename bswapdi2_xxbrd to bswapdi2_brd.
12674 (bswapdi2_brd,bswapdi2_xxbrd): Rename. Add ISA 3.1 support.
12675
12676 2020-08-07 Alan Modra <amodra@gmail.com>
12677
12678 PR target/96493
12679 * config/rs6000/predicates.md (current_file_function_operand): Don't
12680 accept functions that differ in r2 usage.
12681
12682 2020-08-06 Hans-Peter Nilsson <hp@bitrange.com>
12683
12684 * config/mmix/mmix.md (MM): New mode_iterator.
12685 ("mov<mode>"): New expander to expand for all MM-modes.
12686 ("*movqi_expanded", "*movhi_expanded", "*movsi_expanded")
12687 ("*movsf_expanded", "*movdf_expanded"): Rename from the
12688 corresponding mov<M> named pattern. Add to the condition that
12689 either operand must be a register_operand.
12690 ("*movdi_expanded"): Similar, but also allow STCO in the condition.
12691
12692 2020-08-06 Richard Sandiford <richard.sandiford@arm.com>
12693
12694 PR target/96191
12695 * config/arm/arm.md (arm_stack_protect_test_insn): Zero out
12696 operand 2 after use.
12697 * config/arm/thumb1.md (thumb1_stack_protect_test_insn): Likewise.
12698
12699 2020-08-06 Peter Bergner <bergner@linux.ibm.com>
12700
12701 PR target/96446
12702 * config/rs6000/mma.md (*movpxi): Add xxsetaccz generation.
12703 Disable split for zero constant source operand.
12704 (mma_xxsetaccz): Change to define_expand. Call gen_movpxi.
12705
12706 2020-08-06 Jakub Jelinek <jakub@redhat.com>
12707
12708 PR tree-optimization/96480
12709 * tree-ssa-reassoc.c (suitable_cond_bb): Add TEST_SWAPPED_P argument.
12710 If TEST_BB ends in cond and has one edge to *OTHER_BB and another
12711 through an empty bb to that block too, if PHI args don't match, retry
12712 them through the other path from TEST_BB.
12713 (maybe_optimize_range_tests): Adjust callers. Handle such LAST_BB
12714 through inversion of the condition.
12715
12716 2020-08-06 Jose E. Marchesi <jose.marchesi@oracle.com>
12717
12718 * config/bpf/bpf-helpers.h (KERNEL_HELPER): Define.
12719 (KERNEL_VERSION): Remove.
12720 * config/bpf/bpf-helpers.def: Delete.
12721 * config/bpf/bpf.c (bpf_handle_fndecl_attribute): New function.
12722 (bpf_attribute_table): Define.
12723 (bpf_helper_names): Delete.
12724 (bpf_helper_code): Likewise.
12725 (enum bpf_builtins): Adjust to new helpers mechanism.
12726 (bpf_output_call): Likewise.
12727 (bpf_init_builtins): Likewise.
12728 (bpf_init_builtins): Likewise.
12729 * doc/extend.texi (BPF Function Attributes): New section.
12730 (BPF Kernel Helpers): Delete section.
12731
12732 2020-08-06 Richard Biener <rguenther@suse.de>
12733
12734 PR tree-optimization/96491
12735 * tree-ssa-sink.c (sink_common_stores_to_bb): Avoid
12736 sinking across abnormal edges.
12737
12738 2020-08-06 Richard Biener <rguenther@suse.de>
12739
12740 PR tree-optimization/96483
12741 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
12742 POLY_INT_CST.
12743
12744 2020-08-06 Richard Biener <rguenther@suse.de>
12745
12746 * graphite-isl-ast-to-gimple.c (ivs_params): Use hash_map instead
12747 of std::map.
12748 (ivs_params_clear): Adjust.
12749 (gcc_expression_from_isl_ast_expr_id): Likewise.
12750 (graphite_create_new_loop): Likewise.
12751 (add_parameters_to_ivs_params): Likewise.
12752
12753 2020-08-06 Roger Sayle <roger@nextmovesoftware.com>
12754 Uroš Bizjak <ubizjak@gmail.com>
12755
12756 * config/i386/i386.md (MAXMIN_IMODE): No longer needed.
12757 (<maxmin><mode>3): Support SWI248 and general_operand for
12758 second operand, when TARGET_CMOVE.
12759 (<maxmin><mode>3_1 splitter): Optimize comparisons against
12760 0, 1 and -1 to use "test" instead of "cmp".
12761 (*<maxmin>di3_doubleword): Likewise, allow general_operand
12762 and enable on TARGET_CMOVE.
12763 (peephole2): Convert clearing a register after a flag setting
12764 instruction into an xor followed by the original flag setter.
12765
12766 2020-08-06 Gerald Pfeifer <gerald@pfeifer.com>
12767
12768 * ipa-fnsummary.c (INCLUDE_VECTOR): Define.
12769 Remove direct inclusion of <vector>.
12770
12771 2020-08-06 Kewen Lin <linkw@gcc.gnu.org>
12772
12773 * config/rs6000/rs6000.c (rs6000_adjust_vect_cost_per_loop): New
12774 function.
12775 (rs6000_finish_cost): Call rs6000_adjust_vect_cost_per_loop.
12776 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Add cost
12777 modeling for vector with length.
12778 (vect_rgroup_iv_might_wrap_p): New function, factored out from...
12779 * tree-vect-loop-manip.c (vect_set_loop_controls_directly): ...this.
12780 Update function comment.
12781 * tree-vect-stmts.c (vect_gen_len): Update function comment.
12782 * tree-vectorizer.h (vect_rgroup_iv_might_wrap_p): New declare.
12783
12784 2020-08-06 Kewen Lin <linkw@linux.ibm.com>
12785
12786 * tree-vectorizer.c (try_vectorize_loop_1): Skip the epilogue loops
12787 for dbgcnt check.
12788
12789 2020-08-05 Marc Glisse <marc.glisse@inria.fr>
12790
12791 PR tree-optimization/95906
12792 PR target/70314
12793 * match.pd ((c ? a : b) op d, (c ? a : b) op (c ? d : e),
12794 (v ? w : 0) ? a : b, c1 ? c2 ? a : b : b): New transformations.
12795 (op (c ? a : b)): Update to match the new transformations.
12796
12797 2020-08-05 Richard Sandiford <richard.sandiford@arm.com>
12798
12799 PR target/96191
12800 * config/aarch64/aarch64.md (stack_protect_test_<mode>): Set the
12801 CC register directly, instead of a GPR. Replace the original GPR
12802 destination with an extra scratch register. Zero out operand 3
12803 after use.
12804 (stack_protect_test): Update accordingly.
12805
12806 2020-08-05 Richard Sandiford <richard.sandiford@arm.com>
12807
12808 * config/aarch64/aarch64.md (load_pair_sw_<SX:mode><SX2:mode>)
12809 (load_pair_dw_<DX:mode><DX2:mode>, load_pair_dw_tftf)
12810 (store_pair_sw_<SX:mode><SX2:mode>)
12811 (store_pair_dw_<DX:mode><DX2:mode>, store_pair_dw_tftf)
12812 (*load_pair_extendsidi2_aarch64)
12813 (*load_pair_zero_extendsidi2_aarch64): Use %z for the memory operand.
12814 * config/aarch64/aarch64-simd.md (load_pair<DREG:mode><DREG2:mode>)
12815 (vec_store_pair<DREG:mode><DREG2:mode>, load_pair<VQ:mode><VQ2:mode>)
12816 (vec_store_pair<VQ:mode><VQ2:mode>): Likewise.
12817
12818 2020-08-05 Richard Biener <rguenther@suse.de>
12819
12820 * tree-ssa-loop-im.c (invariantness_dom_walker): Remove.
12821 (invariantness_dom_walker::before_dom_children): Move to ...
12822 (compute_invariantness): ... this function.
12823 (move_computations): Inline ...
12824 (tree_ssa_lim): ... here, share RPO order and avoid some
12825 cfun references.
12826 (analyze_memory_references): Remove sorting of location
12827 lists, instead assert they are sorted already when checking.
12828 (prev_flag_edges): Remove.
12829 (execute_sm_if_changed): Pass down and adjust prev edge state.
12830 (execute_sm_exit): Likewise.
12831 (hoist_memory_references): Likewise. Commit edge insertions
12832 of each processed exit.
12833 (store_motion_loop): Do not commit edge insertions on all
12834 edges in the function.
12835 (tree_ssa_lim_initialize): Do not call alloc_aux_for_edges.
12836 (tree_ssa_lim_finalize): Do not call free_aux_for_edges.
12837
12838 2020-08-05 Richard Biener <rguenther@suse.de>
12839
12840 * genmatch.c (fail_label): New global.
12841 (expr::gen_transform): Branch to fail_label instead of
12842 returning. Fix indent of call argument checking.
12843 (dt_simplify::gen_1): Compute and emit fail_label, branch
12844 to it instead of returning early.
12845
12846 2020-08-05 Jakub Jelinek <jakub@redhat.com>
12847
12848 * omp-expand.c (expand_omp_for): Don't disallow combined non-rectangular
12849 loops.
12850
12851 2020-08-05 Jakub Jelinek <jakub@redhat.com>
12852
12853 PR middle-end/96459
12854 * omp-low.c (lower_omp_taskreg): Call lower_reduction_clauses even in
12855 for host teams.
12856
12857 2020-08-05 Jakub Jelinek <jakub@redhat.com>
12858
12859 * omp-expand.c (expand_omp_for_init_counts): Remember
12860 first_inner_iterations, factor and n1o from the number of iterations
12861 computation in *fd.
12862 (expand_omp_for_init_vars): Use more efficient logical iteration number
12863 to actual iterator values computation even for non-rectangular loops
12864 where number of loop iterations could not be computed at compile time.
12865
12866 2020-08-05 2020-08-04 Carl Love <cel@us.ibm.com>
12867
12868 * config/rs6000/altivec.h (vec_blendv, vec_permx): Add define.
12869 * config/rs6000/altivec.md (UNSPEC_XXBLEND, UNSPEC_XXPERMX.): New
12870 unspecs.
12871 (VM3): New define_mode.
12872 (VM3_char): New define_attr.
12873 (xxblend_<mode> mode VM3): New define_insn.
12874 (xxpermx): New define_expand.
12875 (xxpermx_inst): New define_insn.
12876 * config/rs6000/rs6000-builtin.def (VXXBLEND_V16QI, VXXBLEND_V8HI,
12877 VXXBLEND_V4SI, VXXBLEND_V2DI, VXXBLEND_V4SF, VXXBLEND_V2DF): New
12878 BU_P10V_3 definitions.
12879 (XXBLEND): New BU_P10_OVERLOAD_3 definition.
12880 (XXPERMX): New BU_P10_OVERLOAD_4 definition.
12881 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
12882 (P10_BUILTIN_VXXPERMX): Add if statement.
12883 * config/rs6000/rs6000-call.c (P10_BUILTIN_VXXBLEND_V16QI,
12884 P10_BUILTIN_VXXBLEND_V8HI, P10_BUILTIN_VXXBLEND_V4SI,
12885 P10_BUILTIN_VXXBLEND_V2DI, P10_BUILTIN_VXXBLEND_V4SF,
12886 P10_BUILTIN_VXXBLEND_V2DF, P10_BUILTIN_VXXPERMX): Define
12887 overloaded arguments.
12888 (rs6000_expand_quaternop_builtin): Add if case for CODE_FOR_xxpermx.
12889 (builtin_quaternary_function_type): Add v16uqi_type and xxpermx_type
12890 variables, add case statement for P10_BUILTIN_VXXPERMX.
12891 (builtin_function_type): Add case statements for
12892 P10_BUILTIN_VXXBLEND_V16QI, P10_BUILTIN_VXXBLEND_V8HI,
12893 P10_BUILTIN_VXXBLEND_V4SI, P10_BUILTIN_VXXBLEND_V2DI.
12894 * doc/extend.texi: Add documentation for vec_blendv and vec_permx.
12895
12896 2020-08-05 2020-08-04 Carl Love <cel@us.ibm.com>
12897
12898 * config/rs6000/altivec.h (vec_splati, vec_splatid, vec_splati_ins):
12899 Add defines.
12900 * config/rs6000/altivec.md (UNSPEC_XXSPLTIW, UNSPEC_XXSPLTID,
12901 UNSPEC_XXSPLTI32DX): New.
12902 (vxxspltiw_v4si, vxxspltiw_v4sf_inst, vxxspltidp_v2df_inst,
12903 vxxsplti32dx_v4si_inst, vxxsplti32dx_v4sf_inst): New define_insn.
12904 (vxxspltiw_v4sf, vxxspltidp_v2df, vxxsplti32dx_v4si,
12905 vxxsplti32dx_v4sf.): New define_expands.
12906 * config/rs6000/predicates.md (u1bit_cint_operand,
12907 s32bit_cint_operand, c32bit_cint_operand): New predicates.
12908 * config/rs6000/rs6000-builtin.def (VXXSPLTIW_V4SI, VXXSPLTIW_V4SF,
12909 VXXSPLTID): New definitions.
12910 (VXXSPLTI32DX_V4SI, VXXSPLTI32DX_V4SF): New BU_P10V_3
12911 definitions.
12912 (XXSPLTIW, XXSPLTID): New definitions.
12913 (XXSPLTI32DX): Add definitions.
12914 * config/rs6000/rs6000-call.c (P10_BUILTIN_VEC_XXSPLTIW,
12915 P10_BUILTIN_VEC_XXSPLTID, P10_BUILTIN_VEC_XXSPLTI32DX):
12916 New definitions.
12917 * config/rs6000/rs6000-protos.h (rs6000_constF32toI32): New extern
12918 declaration.
12919 * config/rs6000/rs6000.c (rs6000_constF32toI32): New function.
12920 * doc/extend.texi: Add documentation for vec_splati,
12921 vec_splatid, and vec_splati_ins.
12922
12923 2020-08-05 2020-08-04 Carl Love <cel@us.ibm.com>
12924
12925 * config/rs6000/altivec.h (vec_sldb, vec_srdb): New defines.
12926 * config/rs6000/altivec.md (UNSPEC_SLDB, UNSPEC_SRDB): New.
12927 (SLDB_lr): New attribute.
12928 (VSHIFT_DBL_LR): New iterator.
12929 (vs<SLDB_lr>db_<mode>): New define_insn.
12930 * config/rs6000/rs6000-builtin.def (VSLDB_V16QI, VSLDB_V8HI,
12931 VSLDB_V4SI, VSLDB_V2DI, VSRDB_V16QI, VSRDB_V8HI, VSRDB_V4SI,
12932 VSRDB_V2DI): New BU_P10V_3 definitions.
12933 (SLDB, SRDB): New BU_P10_OVERLOAD_3 definitions.
12934 * config/rs6000/rs6000-call.c (P10_BUILTIN_VEC_SLDB,
12935 P10_BUILTIN_VEC_SRDB): New definitions.
12936 (rs6000_expand_ternop_builtin) [CODE_FOR_vsldb_v16qi,
12937 CODE_FOR_vsldb_v8hi, CODE_FOR_vsldb_v4si, CODE_FOR_vsldb_v2di,
12938 CODE_FOR_vsrdb_v16qi, CODE_FOR_vsrdb_v8hi, CODE_FOR_vsrdb_v4si,
12939 CODE_FOR_vsrdb_v2di]: Add clauses.
12940 * doc/extend.texi: Add description for vec_sldb and vec_srdb.
12941
12942 2020-08-05 2020-08-04 Carl Love <cel@us.ibm.com>
12943
12944 * config/rs6000/altivec.h: Add define for vec_replace_elt and
12945 vec_replace_unaligned.
12946 * config/rs6000/vsx.md (UNSPEC_REPLACE_ELT, UNSPEC_REPLACE_UN): New
12947 unspecs.
12948 (REPLACE_ELT): New mode iterator.
12949 (REPLACE_ELT_char, REPLACE_ELT_sh, REPLACE_ELT_max): New mode attributes.
12950 (vreplace_un_<mode>, vreplace_elt_<mode>_inst): New.
12951 * config/rs6000/rs6000-builtin.def (VREPLACE_ELT_V4SI,
12952 VREPLACE_ELT_UV4SI, VREPLACE_ELT_V4SF, VREPLACE_ELT_UV2DI,
12953 VREPLACE_ELT_V2DF, VREPLACE_UN_V4SI, VREPLACE_UN_UV4SI,
12954 VREPLACE_UN_V4SF, VREPLACE_UN_V2DI, VREPLACE_UN_UV2DI,
12955 VREPLACE_UN_V2DF, (REPLACE_ELT, REPLACE_UN, VREPLACE_ELT_V2DI): New builtin
12956 entries.
12957 * config/rs6000/rs6000-call.c (P10_BUILTIN_VEC_REPLACE_ELT,
12958 P10_BUILTIN_VEC_REPLACE_UN): New builtin argument definitions.
12959 (rs6000_expand_quaternop_builtin): Add 3rd argument checks for
12960 CODE_FOR_vreplace_elt_v4si, CODE_FOR_vreplace_elt_v4sf,
12961 CODE_FOR_vreplace_un_v4si, CODE_FOR_vreplace_un_v4sf.
12962 (builtin_function_type) [P10_BUILTIN_VREPLACE_ELT_UV4SI,
12963 P10_BUILTIN_VREPLACE_ELT_UV2DI, P10_BUILTIN_VREPLACE_UN_UV4SI,
12964 P10_BUILTIN_VREPLACE_UN_UV2DI]: New cases.
12965 * doc/extend.texi: Add description for vec_replace_elt and
12966 vec_replace_unaligned builtins.
12967
12968 2020-08-05 2020-08-04 Carl Love <cel@us.ibm.com>
12969
12970 * config/rs6000/altivec.h (vec_insertl, vec_inserth): New defines.
12971 * config/rs6000/rs6000-builtin.def (VINSERTGPRBL, VINSERTGPRHL,
12972 VINSERTGPRWL, VINSERTGPRDL, VINSERTVPRBL, VINSERTVPRHL, VINSERTVPRWL,
12973 VINSERTGPRBR, VINSERTGPRHR, VINSERTGPRWR, VINSERTGPRDR, VINSERTVPRBR,
12974 VINSERTVPRHR, VINSERTVPRWR): New builtins.
12975 (INSERTL, INSERTH): New builtins.
12976 * config/rs6000/rs6000-call.c (P10_BUILTIN_VEC_INSERTL,
12977 P10_BUILTIN_VEC_INSERTH): New overloaded definitions.
12978 (P10_BUILTIN_VINSERTGPRBL, P10_BUILTIN_VINSERTGPRHL,
12979 P10_BUILTIN_VINSERTGPRWL, P10_BUILTIN_VINSERTGPRDL,
12980 P10_BUILTIN_VINSERTVPRBL, P10_BUILTIN_VINSERTVPRHL,
12981 P10_BUILTIN_VINSERTVPRWL): Add case entries.
12982 * config/rs6000/vsx.md (define_c_enum): Add UNSPEC_INSERTL,
12983 UNSPEC_INSERTR.
12984 (define_expand): Add vinsertvl_<mode>, vinsertvr_<mode>,
12985 vinsertgl_<mode>, vinsertgr_<mode>, mode is VI2.
12986 (define_ins): vinsertvl_internal_<mode>, vinsertvr_internal_<mode>,
12987 vinsertgl_internal_<mode>, vinsertgr_internal_<mode>, mode VEC_I.
12988 * doc/extend.texi: Add documentation for vec_insertl, vec_inserth.
12989
12990 2020-08-05 2020-08-04 Carl Love <cel@us.ibm.com>
12991
12992 * config/rs6000/altivec.md: (UNSPEC_EXTRACTL, UNSPEC_EXTRACTR)
12993 (vextractl<mode>, vextractr<mode>)
12994 (vextractl<mode>_internal, vextractr<mode>_internal for mode VI2)
12995 (VI2): Move to ...
12996 * config/rs6000/vsx.md: (UNSPEC_EXTRACTL, UNSPEC_EXTRACTR)
12997 (vextractl<mode>, vextractr<mode>)
12998 (vextractl<mode>_internal, vextractr<mode>_internal for mode VI2)
12999 (VI2): ..here.
13000 * doc/extend.texi: Update documentation for vec_extractl.
13001 Replace builtin name vec_extractr with vec_extracth. Update
13002 description of vec_extracth.
13003
13004 2020-08-04 Jim Wilson <jimw@sifive.com>
13005
13006 * doc/invoke.texi (AArch64 Options): Delete duplicate
13007 -mstack-protector-guard docs.
13008
13009 2020-08-04 Roger Sayle <roger@nextmovesoftware.com>
13010
13011 * config/nvptx/nvptx.md (smulhi3_highpart, smulsi3_highpart)
13012 (umulhi3_highpart, umulsi3_highpart): New instructions.
13013
13014 2020-08-04 Andrew Stubbs <ams@codesourcery.com>
13015
13016 * config/gcn/gcn-run.c (R_AMDGPU_NONE): Delete.
13017 (R_AMDGPU_ABS32_LO): Delete.
13018 (R_AMDGPU_ABS32_HI): Delete.
13019 (R_AMDGPU_ABS64): Delete.
13020 (R_AMDGPU_REL32): Delete.
13021 (R_AMDGPU_REL64): Delete.
13022 (R_AMDGPU_ABS32): Delete.
13023 (R_AMDGPU_GOTPCREL): Delete.
13024 (R_AMDGPU_GOTPCREL32_LO): Delete.
13025 (R_AMDGPU_GOTPCREL32_HI): Delete.
13026 (R_AMDGPU_REL32_LO): Delete.
13027 (R_AMDGPU_REL32_HI): Delete.
13028 (reserved): Delete.
13029 (R_AMDGPU_RELATIVE64): Delete.
13030
13031 2020-08-04 Omar Tahir <omar.tahir@arm.com>
13032
13033 * config/arm/arm-cpus.in (armv8.1-m.main): Tune for Cortex-M55.
13034
13035 2020-08-04 Hu Jiangping <hujiangping@cn.fujitsu.com>
13036
13037 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Delete
13038 redundant extra_cost variable.
13039
13040 2020-08-04 Zhiheng Xie <xiezhiheng@huawei.com>
13041
13042 * config/aarch64/aarch64-builtins.c (aarch64_call_properties):
13043 Use FLOAT_MODE_P macro instead of enumerating all floating-point
13044 modes and add global flag FLAG_AUTO_FP.
13045
13046 2020-08-04 Jakub Jelinek <jakub@redhat.com>
13047
13048 * doc/extend.texi (symver): Add @cindex for symver function attribute.
13049
13050 2020-08-04 Marc Glisse <marc.glisse@inria.fr>
13051
13052 PR tree-optimization/95433
13053 * match.pd (X * C1 == C2): New transformation.
13054
13055 2020-08-04 Aldy Hernandez <aldyh@redhat.com>
13056
13057 * gimple-ssa-sprintf.c (get_int_range): Adjust for irange API.
13058 (format_integer): Same.
13059 (handle_printf_call): Same.
13060
13061 2020-08-04 Andrew Stubbs <ams@codesourcery.com>
13062
13063 * config/gcn/gcn.md ("<expander>ti3"): New.
13064
13065 2020-08-04 Richard Biener <rguenther@suse.de>
13066
13067 PR tree-optimization/88240
13068 * tree-ssa-sccvn.h (vn_reference_s::punned): New flag.
13069 * tree-ssa-sccvn.c (vn_reference_insert): Initialize punned.
13070 (vn_reference_insert_pieces): Likewise.
13071 (visit_reference_op_call): Likewise.
13072 (visit_reference_op_load): Track whether a ref was punned.
13073 * tree-ssa-pre.c (do_hoist_insertion): Refuse to perform hoist
13074 insertion on punned floating point loads.
13075
13076 2020-08-04 Sudakshina Das <sudi.das@arm.com>
13077
13078 * config/aarch64/aarch64.c (aarch64_gen_store_pair): Add case
13079 for E_V4SImode.
13080 (aarch64_gen_load_pair): Likewise.
13081 (aarch64_copy_one_block_and_progress_pointers): Handle 256 bit copy.
13082 (aarch64_expand_cpymem): Expand copy_limit to 256bits where
13083 appropriate.
13084
13085 2020-08-04 Andrea Corallo <andrea.corallo@arm.com>
13086
13087 * config/aarch64/aarch64.md (aarch64_fjcvtzs): Add missing
13088 clobber.
13089 * doc/sourcebuild.texi (aarch64_fjcvtzs_hw) Document new
13090 target supports option.
13091
13092 2020-08-04 Tom de Vries <tdevries@suse.de>
13093
13094 PR target/96428
13095 * config/nvptx/nvptx.c (nvptx_gen_shuffle): Handle V2SI/V2DI.
13096
13097 2020-08-04 Jakub Jelinek <jakub@redhat.com>
13098
13099 PR middle-end/96426
13100 * tree-vect-generic.c (expand_vector_conversion): Replace .VEC_CONVERT
13101 call with GIMPLE_NOP if there is no lhs.
13102
13103 2020-08-04 Jakub Jelinek <jakub@redhat.com>
13104
13105 PR debug/96354
13106 * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Add IS_DEBUG
13107 argument. Return false instead of gcc_unreachable if it is true and
13108 get_addr_base_and_unit_offset returns NULL.
13109 (fold_stmt_1) <case GIMPLE_DEBUG>: Adjust caller.
13110
13111 2020-08-04 Aldy Hernandez <aldyh@redhat.com>
13112
13113 * vr-values.c (simplify_using_ranges::vrp_evaluate_conditional):
13114 Call is_gimple_min_invariant dropped from previous patch.
13115
13116 2020-08-04 Jakub Jelinek <jakub@redhat.com>
13117
13118 * omp-expand.c (expand_omp_for_init_counts): For triangular loops
13119 compute number of iterations at runtime more efficiently.
13120 (expand_omp_for_init_vars): Adjust immediate dominators.
13121 (extract_omp_for_update_vars): Likewise.
13122
13123 2020-08-04 Aldy Hernandez <aldyh@redhat.com>
13124
13125 * vr-values.c (simplify_using_ranges::two_valued_val_range_p):
13126 Use irange API.
13127
13128 2020-08-04 Aldy Hernandez <aldyh@redhat.com>
13129
13130 * vr-values.c (simplify_conversion_using_ranges): Convert to irange API.
13131
13132 2020-08-04 Aldy Hernandez <aldyh@redhat.com>
13133
13134 * vr-values.c (test_for_singularity): Use irange API.
13135 (simplify_using_ranges::simplify_cond_using_ranges_1): Do not
13136 special case VR_RANGE.
13137
13138 2020-08-04 Aldy Hernandez <aldyh@redhat.com>
13139
13140 * vr-values.c (simplify_using_ranges::vrp_evaluate_conditional): Adjust
13141 for irange API.
13142
13143 2020-08-04 Aldy Hernandez <aldyh@redhat.com>
13144
13145 * vr-values.c (simplify_using_ranges::op_with_boolean_value_range_p): Adjust
13146 for irange API.
13147
13148 2020-08-04 Aldy Hernandez <aldyh@redhat.com>
13149
13150 * tree-ssanames.c (get_range_info): Use irange instead of value_range.
13151 * tree-ssanames.h (get_range_info): Same.
13152
13153 2020-08-04 Aldy Hernandez <aldyh@redhat.com>
13154
13155 * fold-const.c (expr_not_equal_to): Adjust for irange API.
13156
13157 2020-08-04 Aldy Hernandez <aldyh@redhat.com>
13158
13159 * builtins.c (determine_block_size): Remove ad-hoc range canonicalization.
13160
13161 2020-08-04 Xionghu Luo <luoxhu@linux.ibm.com>
13162
13163 PR rtl-optimization/71309
13164 * dse.c (find_shift_sequence): Use subreg of shifted from high part
13165 register to avoid loading from address.
13166
13167 2020-08-03 Jonathan Wakely <jwakely@redhat.com>
13168
13169 * doc/cpp.texi (Variadic Macros): Use the exact ... token in
13170 code examples.
13171
13172 2020-08-03 Nathan Sidwell <nathan@acm.org>
13173
13174 * doc/invoke.texi: Refer to c++20
13175
13176 2020-08-03 Julian Brown <julian@codesourcery.com>
13177 Thomas Schwinge <thomas@codesourcery.com>
13178
13179 * gimplify.c (gimplify_omp_target_update): Allow GOMP_MAP_TO_PSET
13180 without a preceding data-movement mapping.
13181
13182 2020-08-03 Iain Sandoe <iain@sandoe.co.uk>
13183
13184 * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): UNDEF before
13185 use.
13186 (DEF_MIN_OSX_VERSION): Only define if there's no existing
13187 def.
13188
13189 2020-08-03 Iain Sandoe <iain@sandoe.co.uk>
13190
13191 * config/darwin.c (IN_TARGET_CODE): Remove.
13192 (darwin_mergeable_constant_section): Handle poly-int machine modes.
13193 (machopic_select_rtx_section): Likewise.
13194
13195 2020-08-03 Aldy Hernandez <aldyh@redhat.com>
13196
13197 PR tree-optimization/96430
13198 * range-op.cc (operator_tests): Do not shift by 31 on targets with
13199 integer's smaller than 32 bits.
13200
13201 2020-08-03 Martin Jambor <mjambor@suse.cz>
13202
13203 * hsa-brig-format.h: Moved to brig/brigfrontend.
13204 * hsa-brig.c: Removed.
13205 * hsa-builtins.def: Likewise.
13206 * hsa-common.c: Likewise.
13207 * hsa-common.h: Likewise.
13208 * hsa-dump.c: Likewise.
13209 * hsa-gen.c: Likewise.
13210 * hsa-regalloc.c: Likewise.
13211 * ipa-hsa.c: Likewise.
13212 * omp-grid.c: Likewise.
13213 * omp-grid.h: Likewise.
13214 * Makefile.in (BUILTINS_DEF): Remove hsa-builtins.def.
13215 (OBJS): Remove hsa-common.o, hsa-gen.o, hsa-regalloc.o, hsa-brig.o,
13216 hsa-dump.o, ipa-hsa.c and omp-grid.o.
13217 (GTFILES): Removed hsa-common.c and omp-expand.c.
13218 * builtins.def: Remove processing of hsa-builtins.def.
13219 (DEF_HSA_BUILTIN): Remove.
13220 * common.opt (flag_disable_hsa): Remove.
13221 (-Whsa): Ignore.
13222 * config.in (ENABLE_HSA): Removed.
13223 * configure.ac: Removed handling configuration for hsa offloading.
13224 (ENABLE_HSA): Removed.
13225 * configure: Regenerated.
13226 * doc/install.texi (--enable-offload-targets): Remove hsa from the
13227 example.
13228 (--with-hsa-runtime): Reword to reference any HSA run-time, not
13229 specifically HSA offloading.
13230 * doc/invoke.texi (Option Summary): Remove -Whsa.
13231 (Warning Options): Likewise.
13232 (Optimize Options): Remove hsa-gen-debug-stores.
13233 * doc/passes.texi (Regular IPA passes): Remove section on IPA HSA
13234 pass.
13235 * gimple-low.c (lower_stmt): Remove GIMPLE_OMP_GRID_BODY case.
13236 * gimple-pretty-print.c (dump_gimple_omp_for): Likewise.
13237 (dump_gimple_omp_block): Likewise.
13238 (pp_gimple_stmt_1): Likewise.
13239 * gimple-walk.c (walk_gimple_stmt): Likewise.
13240 * gimple.c (gimple_build_omp_grid_body): Removed function.
13241 (gimple_copy): Remove GIMPLE_OMP_GRID_BODY case.
13242 * gimple.def (GIMPLE_OMP_GRID_BODY): Removed.
13243 * gimple.h (gf_mask): Removed GF_OMP_PARALLEL_GRID_PHONY,
13244 OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY,
13245 GF_OMP_FOR_GRID_INTRA_GROUP, GF_OMP_FOR_GRID_GROUP_ITER and
13246 GF_OMP_TEAMS_GRID_PHONY. Renumbered GF_OMP_FOR_KIND_SIMD and
13247 GF_OMP_TEAMS_HOST.
13248 (gimple_build_omp_grid_body): Removed declaration.
13249 (gimple_has_substatements): Remove GIMPLE_OMP_GRID_BODY case.
13250 (gimple_omp_for_grid_phony): Removed.
13251 (gimple_omp_for_set_grid_phony): Likewise.
13252 (gimple_omp_for_grid_intra_group): Likewise.
13253 (gimple_omp_for_grid_intra_group): Likewise.
13254 (gimple_omp_for_grid_group_iter): Likewise.
13255 (gimple_omp_for_set_grid_group_iter): Likewise.
13256 (gimple_omp_parallel_grid_phony): Likewise.
13257 (gimple_omp_parallel_set_grid_phony): Likewise.
13258 (gimple_omp_teams_grid_phony): Likewise.
13259 (gimple_omp_teams_set_grid_phony): Likewise.
13260 (CASE_GIMPLE_OMP): Remove GIMPLE_OMP_GRID_BODY case.
13261 * lto-section-in.c (lto_section_name): Removed hsa.
13262 * lto-streamer.h (lto_section_type): Removed LTO_section_ipa_hsa.
13263 * lto-wrapper.c (compile_images_for_offload_targets): Remove special
13264 handling of hsa.
13265 * omp-expand.c: Do not include hsa-common.h and gt-omp-expand.h.
13266 (parallel_needs_hsa_kernel_p): Removed.
13267 (grid_launch_attributes_trees): Likewise.
13268 (grid_launch_attributes_trees): Likewise.
13269 (grid_create_kernel_launch_attr_types): Likewise.
13270 (grid_insert_store_range_dim): Likewise.
13271 (grid_get_kernel_launch_attributes): Likewise.
13272 (get_target_arguments): Remove code passing HSA grid sizes.
13273 (grid_expand_omp_for_loop): Remove.
13274 (grid_arg_decl_map): Likewise.
13275 (grid_remap_kernel_arg_accesses): Likewise.
13276 (grid_expand_target_grid_body): Likewise.
13277 (expand_omp): Remove call to grid_expand_target_grid_body.
13278 (omp_make_gimple_edges): Remove GIMPLE_OMP_GRID_BODY case.
13279 * omp-general.c: Do not include hsa-common.h.
13280 (omp_maybe_offloaded): Do not check for HSA offloading.
13281 (omp_context_selector_matches): Likewise.
13282 * omp-low.c: Do not include hsa-common.h and omp-grid.h.
13283 (build_outer_var_ref): Remove handling of GIMPLE_OMP_GRID_BODY.
13284 (scan_sharing_clauses): Remove handling of OMP_CLAUSE__GRIDDIM_.
13285 (scan_omp_parallel): Remove handling of the phoney variant.
13286 (check_omp_nesting_restrictions): Remove handling of
13287 GIMPLE_OMP_GRID_BODY and GF_OMP_FOR_KIND_GRID_LOOP.
13288 (scan_omp_1_stmt): Remove handling of GIMPLE_OMP_GRID_BODY.
13289 (lower_omp_for_lastprivate): Remove handling of gridified loops.
13290 (lower_omp_for): Remove phony loop handling.
13291 (lower_omp_taskreg): Remove phony construct handling.
13292 (lower_omp_teams): Likewise.
13293 (lower_omp_grid_body): Removed.
13294 (lower_omp_1): Remove GIMPLE_OMP_GRID_BODY case.
13295 (execute_lower_omp): Do not call omp_grid_gridify_all_targets.
13296 * opts.c (common_handle_option): Do not handle hsa when processing
13297 OPT_foffload_.
13298 * params.opt (hsa-gen-debug-stores): Remove.
13299 * passes.def: Remove pass_ipa_hsa and pass_gen_hsail.
13300 * timevar.def: Remove TV_IPA_HSA.
13301 * toplev.c: Do not include hsa-common.h.
13302 (compile_file): Do not call hsa_output_brig.
13303 * tree-core.h (enum omp_clause_code): Remove OMP_CLAUSE__GRIDDIM_.
13304 (tree_omp_clause): Remove union field dimension.
13305 * tree-nested.c (convert_nonlocal_omp_clauses): Remove the
13306 OMP_CLAUSE__GRIDDIM_ case.
13307 (convert_local_omp_clauses): Likewise.
13308 * tree-pass.h (make_pass_gen_hsail): Remove declaration.
13309 (make_pass_ipa_hsa): Likewise.
13310 * tree-pretty-print.c (dump_omp_clause): Remove GIMPLE_OMP_GRID_BODY
13311 case.
13312 * tree.c (omp_clause_num_ops): Remove the element corresponding to
13313 OMP_CLAUSE__GRIDDIM_.
13314 (omp_clause_code_name): Likewise.
13315 (walk_tree_1): Remove GIMPLE_OMP_GRID_BODY case.
13316 * tree.h (OMP_CLAUSE__GRIDDIM__DIMENSION): Remove.
13317 (OMP_CLAUSE__GRIDDIM__SIZE): Likewise.
13318 (OMP_CLAUSE__GRIDDIM__GROUP): Likewise.
13319
13320 2020-08-03 Bu Le <bule1@huawei.com>
13321
13322 * config/aarch64/aarch64-sve.md (sub<mode>3): Add support for
13323 unpacked vectors.
13324
13325 2020-08-03 Jozef Lawrynowicz <jozef.l@mittosystems.com>
13326
13327 * config/msp430/msp430.h (ASM_SPEC): Don't pass on "-md" option.
13328
13329 2020-08-03 Yunde Zhong <zhongyunde@huawei.com>
13330
13331 PR rtl-optimization/95696
13332 * regrename.c (regrename_analyze): New param include_all_block_p
13333 with default value TRUE. If set to false, avoid disrupting SMS
13334 schedule.
13335 * regrename.h (regrename_analyze): Adjust prototype.
13336
13337 2020-08-03 Wei Wentao <weiwt.fnst@cn.fujitsu.com>
13338
13339 * doc/tm.texi.in (VECTOR_STORE_FLAG_VALUE): Fix a typo.
13340 * doc/tm.texi: Regenerate.
13341
13342 2020-08-03 Richard Sandiford <richard.sandiford@arm.com>
13343
13344 * doc/invoke.texi: Add missing comma after octeontx2f95mm entry.
13345
13346 2020-08-03 Qian jianhua <qianjh@cn.fujitsu.com>
13347
13348 * config/aarch64/aarch64-cores.def (a64fx): New core.
13349 * config/aarch64/aarch64-tune.md: Regenerated.
13350 * config/aarch64/aarch64.c (a64fx_prefetch_tune, a64fx_tunings): New.
13351 * doc/invoke.texi: Add a64fx to the list.
13352
13353 2020-08-03 Roger Sayle <roger@nextmovesoftware.com>
13354
13355 PR rtl-optimization/61494
13356 * simplify-rtx.c (simplify_binary_operation_1) [MINUS]: Don't
13357 simplify x - 0.0 with -fsignaling-nans.
13358
13359 2020-08-03 Roger Sayle <roger@nextmovesoftware.com>
13360
13361 * genmatch.c (decision_tree::gen): Emit stub functions for
13362 tree code operand counts that have no simplifications.
13363 (main): Correct comment typo.
13364
13365 2020-08-03 Jonathan Wakely <jwakely@redhat.com>
13366
13367 * gimple-ssa-sprintf.c: Fix typos in comments.
13368
13369 2020-08-03 Tamar Christina <tamar.christina@arm.com>
13370
13371 * config/aarch64/driver-aarch64.c (readline): Check return value fgets.
13372
13373 2020-08-03 Richard Biener <rguenther@suse.de>
13374
13375 * doc/match-and-simplify.texi: Amend accordingly.
13376
13377 2020-08-03 Richard Biener <rguenther@suse.de>
13378
13379 * genmatch.c (parser::gimple): New.
13380 (parser::parser): Initialize gimple flag member.
13381 (parser::parse_expr): Error on ! operator modifier when
13382 not targeting GIMPLE.
13383 (main): Pass down gimple flag to parser ctor.
13384
13385 2020-08-03 Aldy Hernandez <aldyh@redhat.com>
13386
13387 * Makefile.in (GTFILES): Move value-range.h up.
13388 * gengtype-lex.l: Set yylval to handle GTY markers on templates.
13389 * ipa-cp.c (initialize_node_lattices): Call value_range
13390 constructor.
13391 (ipcp_propagate_stage): Use in-place new so value_range construct
13392 is called.
13393 * ipa-fnsummary.c (evaluate_conditions_for_known_args): Use std
13394 vec instead of GCC's vec<>.
13395 (evaluate_properties_for_edge): Adjust for std vec.
13396 (ipa_fn_summary_t::duplicate): Same.
13397 (estimate_ipcp_clone_size_and_time): Same.
13398 * ipa-prop.c (ipa_get_value_range): Use in-place new for
13399 value_range.
13400 * ipa-prop.h (struct GTY): Remove class keyword for m_vr.
13401 * range-op.cc (empty_range_check): Rename to...
13402 (empty_range_varying): ...this and adjust for varying.
13403 (undefined_shift_range_check): Adjust for irange.
13404 (range_operator::wi_fold): Same.
13405 (range_operator::fold_range): Adjust for irange. Special case
13406 single pairs for performance.
13407 (range_operator::op1_range): Adjust for irange.
13408 (range_operator::op2_range): Same.
13409 (value_range_from_overflowed_bounds): Same.
13410 (value_range_with_overflow): Same.
13411 (create_possibly_reversed_range): Same.
13412 (range_true): Same.
13413 (range_false): Same.
13414 (range_true_and_false): Same.
13415 (get_bool_state): Adjust for irange and tweak for performance.
13416 (operator_equal::fold_range): Adjust for irange.
13417 (operator_equal::op1_range): Same.
13418 (operator_equal::op2_range): Same.
13419 (operator_not_equal::fold_range): Same.
13420 (operator_not_equal::op1_range): Same.
13421 (operator_not_equal::op2_range): Same.
13422 (build_lt): Same.
13423 (build_le): Same.
13424 (build_gt): Same.
13425 (build_ge): Same.
13426 (operator_lt::fold_range): Same.
13427 (operator_lt::op1_range): Same.
13428 (operator_lt::op2_range): Same.
13429 (operator_le::fold_range): Same.
13430 (operator_le::op1_range): Same.
13431 (operator_le::op2_range): Same.
13432 (operator_gt::fold_range): Same.
13433 (operator_gt::op1_range): Same.
13434 (operator_gt::op2_range): Same.
13435 (operator_ge::fold_range): Same.
13436 (operator_ge::op1_range): Same.
13437 (operator_ge::op2_range): Same.
13438 (operator_plus::wi_fold): Same.
13439 (operator_plus::op1_range): Same.
13440 (operator_plus::op2_range): Same.
13441 (operator_minus::wi_fold): Same.
13442 (operator_minus::op1_range): Same.
13443 (operator_minus::op2_range): Same.
13444 (operator_min::wi_fold): Same.
13445 (operator_max::wi_fold): Same.
13446 (cross_product_operator::wi_cross_product): Same.
13447 (operator_mult::op1_range): New.
13448 (operator_mult::op2_range): New.
13449 (operator_mult::wi_fold): Adjust for irange.
13450 (operator_div::wi_fold): Same.
13451 (operator_exact_divide::op1_range): Same.
13452 (operator_lshift::fold_range): Same.
13453 (operator_lshift::wi_fold): Same.
13454 (operator_lshift::op1_range): New.
13455 (operator_rshift::op1_range): New.
13456 (operator_rshift::fold_range): Adjust for irange.
13457 (operator_rshift::wi_fold): Same.
13458 (operator_cast::truncating_cast_p): Abstract out from
13459 operator_cast::fold_range.
13460 (operator_cast::fold_range): Adjust for irange and tweak for
13461 performance.
13462 (operator_cast::inside_domain_p): Abstract out from fold_range.
13463 (operator_cast::fold_pair): Same.
13464 (operator_cast::op1_range): Use abstracted methods above. Adjust
13465 for irange and tweak for performance.
13466 (operator_logical_and::fold_range): Adjust for irange.
13467 (operator_logical_and::op1_range): Same.
13468 (operator_logical_and::op2_range): Same.
13469 (unsigned_singleton_p): New.
13470 (operator_bitwise_and::remove_impossible_ranges): New.
13471 (operator_bitwise_and::fold_range): New.
13472 (wi_optimize_and_or): Adjust for irange.
13473 (operator_bitwise_and::wi_fold): Same.
13474 (set_nonzero_range_from_mask): New.
13475 (operator_bitwise_and::simple_op1_range_solver): New.
13476 (operator_bitwise_and::op1_range): Adjust for irange.
13477 (operator_bitwise_and::op2_range): Same.
13478 (operator_logical_or::fold_range): Same.
13479 (operator_logical_or::op1_range): Same.
13480 (operator_logical_or::op2_range): Same.
13481 (operator_bitwise_or::wi_fold): Same.
13482 (operator_bitwise_or::op1_range): Same.
13483 (operator_bitwise_or::op2_range): Same.
13484 (operator_bitwise_xor::wi_fold): Same.
13485 (operator_bitwise_xor::op1_range): New.
13486 (operator_bitwise_xor::op2_range): New.
13487 (operator_trunc_mod::wi_fold): Adjust for irange.
13488 (operator_logical_not::fold_range): Same.
13489 (operator_logical_not::op1_range): Same.
13490 (operator_bitwise_not::fold_range): Same.
13491 (operator_bitwise_not::op1_range): Same.
13492 (operator_cst::fold_range): Same.
13493 (operator_identity::fold_range): Same.
13494 (operator_identity::op1_range): Same.
13495 (class operator_unknown): New.
13496 (operator_unknown::fold_range): New.
13497 (class operator_abs): Adjust for irange.
13498 (operator_abs::wi_fold): Same.
13499 (operator_abs::op1_range): Same.
13500 (operator_absu::wi_fold): Same.
13501 (class operator_negate): Same.
13502 (operator_negate::fold_range): Same.
13503 (operator_negate::op1_range): Same.
13504 (operator_addr_expr::fold_range): Same.
13505 (operator_addr_expr::op1_range): Same.
13506 (pointer_plus_operator::wi_fold): Same.
13507 (pointer_min_max_operator::wi_fold): Same.
13508 (pointer_and_operator::wi_fold): Same.
13509 (pointer_or_operator::op1_range): New.
13510 (pointer_or_operator::op2_range): New.
13511 (pointer_or_operator::wi_fold): Adjust for irange.
13512 (integral_table::integral_table): Add entries for IMAGPART_EXPR
13513 and POINTER_DIFF_EXPR.
13514 (range_cast): Adjust for irange.
13515 (build_range3): New.
13516 (range3_tests): New.
13517 (widest_irange_tests): New.
13518 (multi_precision_range_tests): New.
13519 (operator_tests): New.
13520 (range_tests): New.
13521 * range-op.h (class range_operator): Adjust for irange.
13522 (range_cast): Same.
13523 * tree-vrp.c (range_fold_binary_symbolics_p): Adjust for irange and
13524 tweak for performance.
13525 (range_fold_binary_expr): Same.
13526 (masked_increment): Change to extern.
13527 * tree-vrp.h (masked_increment): New.
13528 * tree.c (cache_wide_int_in_type_cache): New function abstracted
13529 out from wide_int_to_tree_1.
13530 (wide_int_to_tree_1): Cache 0, 1, and MAX for pointers.
13531 * value-range-equiv.cc (value_range_equiv::deep_copy): Use kind
13532 method.
13533 (value_range_equiv::move): Same.
13534 (value_range_equiv::check): Adjust for irange.
13535 (value_range_equiv::intersect): Same.
13536 (value_range_equiv::union_): Same.
13537 (value_range_equiv::dump): Same.
13538 * value-range.cc (irange::operator=): Same.
13539 (irange::maybe_anti_range): New.
13540 (irange::copy_legacy_range): New.
13541 (irange::set_undefined): Adjust for irange.
13542 (irange::swap_out_of_order_endpoints): Abstract out from set().
13543 (irange::set_varying): Adjust for irange.
13544 (irange::irange_set): New.
13545 (irange::irange_set_anti_range): New.
13546 (irange::set): Adjust for irange.
13547 (value_range::set_nonzero): Move to header file.
13548 (value_range::set_zero): Move to header file.
13549 (value_range::check): Rename to...
13550 (irange::verify_range): ...this.
13551 (value_range::num_pairs): Rename to...
13552 (irange::legacy_num_pairs): ...this, and adjust for irange.
13553 (value_range::lower_bound): Rename to...
13554 (irange::legacy_lower_bound): ...this, and adjust for irange.
13555 (value_range::upper_bound): Rename to...
13556 (irange::legacy_upper_bound): ...this, and adjust for irange.
13557 (value_range::equal_p): Rename to...
13558 (irange::legacy_equal_p): ...this.
13559 (value_range::operator==): Move to header file.
13560 (irange::equal_p): New.
13561 (irange::symbolic_p): Adjust for irange.
13562 (irange::constant_p): Same.
13563 (irange::singleton_p): Same.
13564 (irange::value_inside_range): Same.
13565 (irange::may_contain_p): Same.
13566 (irange::contains_p): Same.
13567 (irange::normalize_addresses): Same.
13568 (irange::normalize_symbolics): Same.
13569 (irange::legacy_intersect): Same.
13570 (irange::legacy_union): Same.
13571 (irange::union_): Same.
13572 (irange::intersect): Same.
13573 (irange::irange_union): New.
13574 (irange::irange_intersect): New.
13575 (subtract_one): New.
13576 (irange::invert): Adjust for irange.
13577 (dump_bound_with_infinite_markers): New.
13578 (irange::dump): Adjust for irange.
13579 (debug): Add irange versions.
13580 (range_has_numeric_bounds_p): Adjust for irange.
13581 (vrp_val_max): Move to header file.
13582 (vrp_val_min): Move to header file.
13583 (DEFINE_INT_RANGE_GC_STUBS): New.
13584 (DEFINE_INT_RANGE_INSTANCE): New.
13585 * value-range.h (class irange): New.
13586 (class int_range): New.
13587 (class value_range): Rename to a instantiation of int_range.
13588 (irange::legacy_mode_p): New.
13589 (value_range::value_range): Remove.
13590 (irange::kind): New.
13591 (irange::num_pairs): Adjust for irange.
13592 (irange::type): Adjust for irange.
13593 (irange::tree_lower_bound): New.
13594 (irange::tree_upper_bound): New.
13595 (irange::type): Adjust for irange.
13596 (irange::min): Same.
13597 (irange::max): Same.
13598 (irange::varying_p): Same.
13599 (irange::undefined_p): Same.
13600 (irange::zero_p): Same.
13601 (irange::nonzero_p): Same.
13602 (irange::supports_type_p): Same.
13603 (range_includes_zero_p): Same.
13604 (gt_ggc_mx): New.
13605 (gt_pch_nx): New.
13606 (irange::irange): New.
13607 (int_range::int_range): New.
13608 (int_range::operator=): New.
13609 (irange::set): Moved from value-range.cc and adjusted for irange.
13610 (irange::set_undefined): Same.
13611 (irange::set_varying): Same.
13612 (irange::operator==): Same.
13613 (irange::lower_bound): Same.
13614 (irange::upper_bound): Same.
13615 (irange::union_): Same.
13616 (irange::intersect): Same.
13617 (irange::set_nonzero): Same.
13618 (irange::set_zero): Same.
13619 (irange::normalize_min_max): New.
13620 (vrp_val_max): Move from value-range.cc.
13621 (vrp_val_min): Same.
13622 * vr-values.c (vr_values::get_lattice_entry): Call value_range
13623 constructor.
13624
13625 2020-08-02 Sergei Trofimovich <siarheit@google.com>
13626
13627 PR bootstrap/96404
13628 * var-tracking.c (vt_find_locations): Fully initialize
13629 all 'in_pending' bits.
13630
13631 2020-08-01 Jan Hubicka <jh@suse.cz>
13632
13633 * symtab.c (symtab_node::verify_base): Verify order.
13634 (symtab_node::verify_symtab_nodes): Verify order.
13635
13636 2020-08-01 Jan Hubicka <jh@suse.cz>
13637
13638 * predict.c (estimate_bb_frequencies): Cap recursive calls by 90%.
13639
13640 2020-08-01 Jojo R <jiejie_rong@c-sky.com>
13641
13642 * config/csky/csky_opts.h (float_abi_type): New.
13643 * config/csky/csky.h (TARGET_SOFT_FLOAT): New.
13644 (TARGET_HARD_FLOAT): New.
13645 (TARGET_HARD_FLOAT_ABI): New.
13646 (OPTION_DEFAULT_SPECS): Use mfloat-abi.
13647 * config/csky/csky.opt (mfloat-abi): New.
13648 * doc/invoke.texi (C-SKY Options): Document -mfloat-abi=.
13649
13650 2020-08-01 Cooper Qu <cooper.qu@linux.alibaba.com>
13651
13652 * config/csky/t-csky-linux: Delete big endian CPUs' multilib.
13653
13654 2020-07-31 Roger Sayle <roger@nextmovesoftware.com>
13655 Tom de Vries <tdevries@suse.de>
13656
13657 PR target/90928
13658 * config/nvptx/nvptx.c (nvptx_truly_noop_truncation): Implement.
13659 (TARGET_TRULY_NOOP_TRUNCATION): Define.
13660
13661 2020-07-31 Richard Biener <rguenther@suse.de>
13662
13663 PR debug/96383
13664 * langhooks-def.h (lhd_finalize_early_debug): Declare.
13665 (LANG_HOOKS_FINALIZE_EARLY_DEBUG): Define.
13666 (LANG_HOOKS_INITIALIZER): Amend.
13667 * langhooks.c: Include cgraph.h and debug.h.
13668 (lhd_finalize_early_debug): Default implementation from
13669 former code in finalize_compilation_unit.
13670 * langhooks.h (lang_hooks::finalize_early_debug): Add.
13671 * cgraphunit.c (symbol_table::finalize_compilation_unit):
13672 Call the finalize_early_debug langhook.
13673
13674 2020-07-31 Richard Biener <rguenther@suse.de>
13675
13676 * genmatch.c (expr::force_leaf): Add and initialize.
13677 (expr::gen_transform): Honor force_leaf by passing
13678 NULL as sequence argument to maybe_push_res_to_seq.
13679 (parser::parse_expr): Allow ! marker on result expression
13680 operations.
13681 * doc/match-and-simplify.texi: Amend.
13682
13683 2020-07-31 Kewen Lin <linkw@linux.ibm.com>
13684
13685 * tree-vect-loop.c (vect_get_known_peeling_cost): Don't consider branch
13686 taken costs for prologue and epilogue if they don't exist.
13687 (vect_estimate_min_profitable_iters): Likewise.
13688
13689 2020-07-31 Martin Liska <mliska@suse.cz>
13690
13691 * cgraph.h: Remove leading empty lines.
13692 * cgraphunit.c (enum cgraph_order_sort_kind): Remove
13693 ORDER_UNDEFINED.
13694 (struct cgraph_order_sort): Add constructors.
13695 (cgraph_order_sort::process): New.
13696 (cgraph_order_cmp): New.
13697 (output_in_order): Simplify and push nodes to vector.
13698
13699 2020-07-31 Richard Biener <rguenther@suse.de>
13700
13701 PR middle-end/96369
13702 * fold-const.c (fold_range_test): Special-case constant
13703 LHS for short-circuiting operations.
13704
13705 2020-07-31 Martin Liska <mliska@suse.cz>
13706
13707 * gcov-io.h (GCOV_PREALLOCATED_KVP): New.
13708
13709 2020-07-31 Zhiheng Xie <xiezhiheng@huawei.com>
13710
13711 * config/aarch64/aarch64-builtins.c (aarch64_general_add_builtin):
13712 Add new argument ATTRS.
13713 (aarch64_call_properties): New function.
13714 (aarch64_modifies_global_state_p): Likewise.
13715 (aarch64_reads_global_state_p): Likewise.
13716 (aarch64_could_trap_p): Likewise.
13717 (aarch64_add_attribute): Likewise.
13718 (aarch64_get_attributes): Likewise.
13719 (aarch64_init_simd_builtins): Add attributes for each built-in function.
13720
13721 2020-07-31 Richard Biener <rguenther@suse.de>
13722
13723 PR debug/78288
13724 * var-tracking.c (vt_find_locations): Use
13725 rev_post_order_and_mark_dfs_back_seme and separately iterate
13726 over toplevel SCCs.
13727
13728 2020-07-31 Richard Biener <rguenther@suse.de>
13729
13730 * cfganal.h (rev_post_order_and_mark_dfs_back_seme): Adjust
13731 prototype.
13732 * cfganal.c (rpoamdbs_bb_data): New struct with pre BB data.
13733 (tag_header): New helper.
13734 (cmp_edge_dest_pre): Likewise.
13735 (rev_post_order_and_mark_dfs_back_seme): Compute SCCs,
13736 find SCC exits and perform a DFS walk with extra edges to
13737 compute a RPO with adjacent SCC members when requesting an
13738 iteration optimized order and populate the toplevel SCC array.
13739 * tree-ssa-sccvn.c (do_rpo_vn): Remove ad-hoc computation
13740 of max_rpo and fill it in from SCC extent info instead.
13741
13742 2020-07-30 Will Schmidt <will_schmidt@vnet.ibm.com>
13743
13744 * config/rs6000/altivec.h (vec_test_lsbb_all_ones): New define.
13745 (vec_test_lsbb_all_zeros): New define.
13746 * config/rs6000/rs6000-builtin.def (BU_P10_VSX_1): New built-in
13747 handling macro.
13748 (XVTLSBB_ZEROS, XVTLSBB_ONES): New builtin defines.
13749 (xvtlsbb_all_zeros, xvtlsbb_all_ones): New builtin overloads.
13750 * config/rs6000/rs6000-call.c (P10_BUILTIN_VEC_XVTLSBB_ZEROS,
13751 P10_BUILTIN_VEC_XVTLSBB_ONES): New altivec_builtin_types entries.
13752 * config/rs6000/rs6000.md (UNSPEC_XVTLSBB): New unspec.
13753 * config/rs6000/vsx.md (*xvtlsbb_internal): New instruction define.
13754 (xvtlsbbo, xvtlsbbz): New instruction expands.
13755
13756 2020-07-30 Cooper Qu <cooper.qu@linux.alibaba.com>
13757
13758 * config/riscv/riscv-opts.h (stack_protector_guard): New enum.
13759 * config/riscv/riscv.c (riscv_option_override): Handle
13760 the new options.
13761 * config/riscv/riscv.md (stack_protect_set): New pattern to handle
13762 flexible stack protector guard settings.
13763 (stack_protect_set_<mode>): Ditto.
13764 (stack_protect_test): Ditto.
13765 (stack_protect_test_<mode>): Ditto.
13766 * config/riscv/riscv.opt (mstack-protector-guard=,
13767 mstack-protector-guard-reg=, mstack-protector-guard-offset=): New
13768 options.
13769 * doc/invoke.texi (Option Summary) [RISC-V Options]:
13770 Add -mstack-protector-guard=, -mstack-protector-guard-reg=, and
13771 -mstack-protector-guard-offset=.
13772 (RISC-V Options): Ditto.
13773
13774 2020-07-30 H.J. Lu <hjl.tools@gmail.com>
13775
13776 PR bootstrap/96202
13777 * configure: Regenerated.
13778
13779 2020-07-30 Richard Biener <rguenther@suse.de>
13780
13781 PR tree-optimization/96370
13782 * tree-ssa-reassoc.c (rewrite_expr_tree): Add operation
13783 code parameter and use it instead of picking it up from
13784 the stmt that is being rewritten.
13785 (reassociate_bb): Pass down the operation code.
13786
13787 2020-07-30 Roger Sayle <roger@nextmovesoftware.com>
13788 Tom de Vries <tdevries@suse.de>
13789
13790 * config/nvptx/nvptx.md (nvptx_vector_index_operand): New predicate.
13791 (VECELEM): New mode attribute for a vector's uppercase element mode.
13792 (Vecelem): New mode attribute for a vector's lowercase element mode.
13793 (*vec_set<mode>_0, *vec_set<mode>_1, *vec_set<mode>_2)
13794 (*vec_set<mode>_3): New instructions.
13795 (vec_set<mode>): New expander to generate one of the above insns.
13796 (vec_extract<mode><Vecelem>): New instruction.
13797
13798 2020-07-30 Martin Liska <mliska@suse.cz>
13799
13800 PR target/95435
13801 * config/i386/x86-tune-costs.h: Use libcall for large sizes for
13802 -m32. Start using libcall from 128+ bytes.
13803
13804 2020-07-30 Martin Liska <mliska@suse.cz>
13805
13806 * config/i386/x86-tune-costs.h: Change code formatting.
13807
13808 2020-07-29 Roger Sayle <roger@nextmovesoftware.com>
13809
13810 * config/nvptx/nvptx.md (recip<mode>2): New instruction.
13811
13812 2020-07-29 Fangrui Song <maskray@google.com>
13813
13814 PR debug/95096
13815 * opts.c (common_handle_option): Don't make -gsplit-dwarf imply -g.
13816 * doc/invoke.texi (-gsplit-dwarf): Update documentation.
13817
13818 2020-07-29 Joe Ramsay <joe.ramsay@arm.com>
13819
13820 * config/arm/arm-protos.h (arm_coproc_mem_operand_no_writeback):
13821 Declare prototype.
13822 (arm_mve_mode_and_operands_type_check): Declare prototype.
13823 * config/arm/arm.c (arm_coproc_mem_operand): Refactor to use
13824 _arm_coproc_mem_operand.
13825 (arm_coproc_mem_operand_wb): New function to cover full, limited
13826 and no writeback.
13827 (arm_coproc_mem_operand_no_writeback): New constraint for memory
13828 operand with no writeback.
13829 (arm_print_operand): Extend 'E' specifier for memory operand
13830 that does not support writeback.
13831 (arm_mve_mode_and_operands_type_check): New constraint check for
13832 MVE memory operands.
13833 * config/arm/constraints.md: Add Uj constraint for VFP vldr.16
13834 and vstr.16.
13835 * config/arm/vfp.md (*mov_load_vfp_hf16): New pattern for
13836 vldr.16.
13837 (*mov_store_vfp_hf16): New pattern for vstr.16.
13838 (*mov<mode>_vfp_<mode>16): Remove MVE moves.
13839
13840 2020-07-29 Richard Biener <rguenther@suse.de>
13841
13842 PR tree-optimization/96349
13843 * tree-ssa-loop-split.c (stmt_semi_invariant_p_1): When the
13844 condition runs into a loop PHI with an abnormal entry value give up.
13845
13846 2020-07-29 Richard Biener <rguenther@suse.de>
13847
13848 * tree-vectorizer.c (vectorize_loops): Reset the SCEV
13849 cache if we removed any SIMD UID SSA defs.
13850 * gimple-loop-interchange.cc (pass_linterchange::execute):
13851 Reset the scev cache if we interchanged a loop.
13852
13853 2020-07-29 Richard Biener <rguenther@suse.de>
13854
13855 PR tree-optimization/95679
13856 * tree-ssa-propagate.h
13857 (substitute_and_fold_engine::propagate_into_phi_args): Return
13858 whether anything changed.
13859 * tree-ssa-propagate.c
13860 (substitute_and_fold_engine::propagate_into_phi_args): Likewise.
13861 (substitute_and_fold_dom_walker::before_dom_children): Update
13862 something_changed.
13863
13864 2020-07-29 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
13865
13866 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
13867 Ensure that loop variable npeel_tmp advances in each iteration.
13868
13869 2020-07-29 Hans-Peter Nilsson <hp@bitrange.com>
13870
13871 * config/mmix/mmix.h (NO_FUNCTION_CSE): Define to 1.
13872
13873 2020-07-29 Hans-Peter Nilsson <hp@bitrange.com>
13874
13875 * config/mmix/mmix.h (ASM_OUTPUT_EXTERNAL): Define to
13876 default_elf_asm_output_external.
13877
13878 2020-07-28 Sergei Trofimovich <siarheit@google.com>
13879
13880 PR ipa/96291
13881 * ipa-cp.c (has_undead_caller_from_outside_scc_p): Consider
13882 unoptimized callers as undead.
13883
13884 2020-07-28 Roger Sayle <roger@nextmovesoftware.com>
13885 Richard Biener <rguenther@suse.de>
13886
13887 * match.pd (popcount(x)&1 -> parity(x)): New simplification.
13888 (parity(~x) -> parity(x)): New simplification.
13889 (parity(x)^parity(y) -> parity(x^y)): New simplification.
13890 (parity(x&1) -> x&1): New simplification.
13891 (popcount(x) -> x>>C): New simplification.
13892
13893 2020-07-28 Roger Sayle <roger@nextmovesoftware.com>
13894 Tom de Vries <tdevries@suse.de>
13895
13896 * config/nvptx/nvptx.md (extendqihi2): New instruction.
13897 (ashl<mode>3, ashr<mode>3, lshr<mode>3): Support HImode.
13898
13899 2020-07-28 Jakub Jelinek <jakub@redhat.com>
13900
13901 PR middle-end/96335
13902 * calls.c (maybe_warn_rdwr_sizes): Add FNDECL and FNTYPE arguments,
13903 instead of trying to rediscover them in the body.
13904 (initialize_argument_information): Adjust caller.
13905
13906 2020-07-28 Kewen Lin <linkw@linux.ibm.com>
13907
13908 * tree-vect-loop.c (vect_get_known_peeling_cost): Factor out some code
13909 to determine peel_iters_epilogue to...
13910 (vect_get_peel_iters_epilogue): ...this new function.
13911 (vect_estimate_min_profitable_iters): Refactor cost calculation on
13912 peel_iters_prologue and peel_iters_epilogue.
13913
13914 2020-07-27 Martin Sebor <msebor@redhat.com>
13915
13916 PR tree-optimization/84079
13917 * gimple-array-bounds.cc (array_bounds_checker::check_addr_expr):
13918 Only allow just-past-the-end references for the most significant
13919 array bound.
13920
13921 2020-07-27 Hu Jiangping <hujiangping@cn.fujitsu.com>
13922
13923 PR driver/96247
13924 * opts.c (check_alignment_argument): Set the -falign-Name
13925 on/off flag on and set the -falign-Name string value null,
13926 when the command-line specified argument is zero.
13927
13928 2020-07-27 Martin Liska <mliska@suse.cz>
13929
13930 PR tree-optimization/96058
13931 * expr.c (string_constant): Build string_constant only
13932 for a type that has same precision as char_type_node
13933 and is an integral type.
13934
13935 2020-07-27 Richard Biener <rguenther@suse.de>
13936
13937 * var-tracking.c (variable_tracking_main_1): Remove call
13938 to mark_dfs_back_edges.
13939
13940 2020-07-27 Martin Liska <mliska@suse.cz>
13941
13942 PR tree-optimization/96128
13943 * tree-vect-generic.c (expand_vector_comparison): Do not expand
13944 vector comparison with VEC_COND_EXPR.
13945
13946 2020-07-27 H.J. Lu <hjl.tools@gmail.com>
13947
13948 PR bootstrap/96203
13949 * common.opt: Add -fcf-protection=check.
13950 * flag-types.h (cf_protection_level): Add CF_CHECK.
13951 * lto-wrapper.c (merge_and_complain): Issue an error for
13952 mismatching -fcf-protection values with -fcf-protection=check.
13953 Otherwise, merge -fcf-protection values.
13954 * doc/invoke.texi: Document -fcf-protection=check.
13955
13956 2020-07-27 Martin Liska <mliska@suse.cz>
13957
13958 PR lto/45375
13959 * symbol-summary.h: Call vec_safe_reserve before grow is called
13960 in order to grow to a reasonable size.
13961 * vec.h (vec_safe_reserve): Add missing function for vl_ptr
13962 type.
13963
13964 2020-07-26 Hans-Peter Nilsson <hp@bitrange.com>
13965
13966 * configure.ac (out-of-tree linker .hidden support): Don't turn off
13967 for mmix-knuth-mmixware.
13968 * configure: Regenerate.
13969
13970 2020-07-26 Aaron Sawdey <acsawdey@linux.ibm.com>
13971
13972 * config/rs6000/rs6000.c (rs6000_option_override_internal):
13973 Set the default value for -mblock-ops-unaligned-vsx.
13974 * config/rs6000/rs6000.opt: Add -mblock-ops-unaligned-vsx.
13975 * doc/invoke.texi: Document -mblock-ops-unaligned-vsx.
13976
13977 2020-07-25 Hans-Peter Nilsson <hp@bitrange.com>
13978
13979 * config/mmix/mmix.c (TARGET_ASM_OUTPUT_IDENT): Override the default
13980 with default_asm_output_ident_directive.
13981
13982 2020-07-25 Andrew Stubbs <ams@codesourcery.com>
13983
13984 * config/gcn/gcn.c (gcn_scalar_mode_supported_p): New function.
13985 (TARGET_SCALAR_MODE_SUPPORTED_P): New define.
13986
13987 2020-07-24 David Edelsohn <dje.gcc@gmail.com>
13988 Clement Chigot <clement.chigot@atos.net>
13989
13990 * config.gcc (powerpc-ibm-aix7.1): Use t-aix64 and biarch64 for
13991 cpu_is_64bit.
13992 * config/rs6000/aix71.h (ASM_SPEC): Remove aix64 option.
13993 (ASM_SPEC32): New.
13994 (ASM_SPEC64): New.
13995 (ASM_CPU_SPEC): Remove vsx and altivec options.
13996 (CPP_SPEC_COMMON): Rename from CPP_SPEC.
13997 (CPP_SPEC32): New.
13998 (CPP_SPEC64): New.
13999 (CPLUSPLUS_CPP_SPEC): Rename to CPLUSPLUS_CPP_SPEC_COMMON..
14000 (TARGET_DEFAULT): Use 64 bit mask if BIARCH.
14001 (LIB_SPEC_COMMON): Rename from LIB_SPEC.
14002 (LIB_SPEC32): New.
14003 (LIB_SPEC64): New.
14004 (LINK_SPEC_COMMON): Rename from LINK_SPEC.
14005 (LINK_SPEC32): New.
14006 (LINK_SPEC64): New.
14007 (STARTFILE_SPEC): Add 64 bit version of crtcxa and crtdbase.
14008 (ASM_SPEC): Define 32 and 64 bit alternatives using DEFAULT_ARCH64_P.
14009 (CPP_SPEC): Same.
14010 (CPLUSPLUS_CPP_SPEC): Same.
14011 (LIB_SPEC): Same.
14012 (LINK_SPEC): Same.
14013 (SUBTARGET_EXTRA_SPECS): Add new 32/64 specs.
14014 * config/rs6000/aix72.h (TARGET_DEFAULT): Use 64 bit mask if BIARCH.
14015 * config/rs6000/defaultaix64.h: Delete.
14016
14017 2020-07-24 Segher Boessenkool <segher@kernel.crashing.org>
14018
14019 * config/rs6000/rs6000.opt: Delete -mpower10.
14020
14021 2020-07-24 Alexandre Oliva <oliva@adacore.com>
14022
14023 * config/i386/intelmic-mkoffload.c
14024 (generate_target_descr_file): Use dumppfx for save_temps
14025 files. Pass -dumpbase et al down to the compiler.
14026 (generate_target_offloadend_file): Likewise.
14027 (generate_host_descr_file): Likewise.
14028 (prepare_target_image): Likewise. Move out_obj_filename
14029 setting...
14030 (main): ... here. Detect -dumpbase, set dumppfx too.
14031
14032 2020-07-24 Alexandre Oliva <oliva@adacore.com>
14033
14034 PR driver/96230
14035 * gcc.c (process_command): Adjust and document conditions to
14036 reset dumpbase_ext.
14037
14038 2020-07-24 Matthias Klose <doko@ubuntu.com>
14039
14040 * config/aarch64/aarch64.c (+aarch64_offload_options,
14041 TARGET_OFFLOAD_OPTIONS): New.
14042
14043 2020-07-24 Uroš Bizjak <ubizjak@gmail.com>
14044
14045 PR target/95750
14046 * config/i386/sync.md (mmem_thread_fence): Emit mfence_sse2 for -Os.
14047
14048 2020-07-23 Roger Sayle <roger@nextmovesoftware.com>
14049
14050 PR rtl-optimization/96298
14051 * simplify-rtx.c (simplify_binary_operation_1) [XOR]: Xor doesn't
14052 distribute over xor, so (a^b)^(c^b) is not the same as (a^c)^b.
14053
14054 2020-07-23 Dong JianQiang <dongjianqiang2@huawei.com>
14055
14056 PR gcov-profile/96267
14057 * gcov-io.c (gcov_open): enable if IN_GCOV_TOOL.
14058
14059 2020-07-23 Kewen Lin <linkw@linux.ibm.com>
14060
14061 * config/rs6000/rs6000.c (adjust_vectorization_cost): Renamed to ...
14062 (rs6000_adjust_vect_cost_per_stmt): ... here.
14063 (rs6000_add_stmt_cost): Rename adjust_vectorization_cost to
14064 rs6000_adjust_vect_cost_per_stmt.
14065
14066 2020-07-23 Kewen Lin <linkw@linux.ibm.com>
14067
14068 * tree-ssa-loop-ivopts.c (get_mem_type_for_internal_fn): Handle
14069 IFN_LEN_LOAD and IFN_LEN_STORE.
14070 (get_alias_ptr_type_for_ptr_address): Likewise.
14071
14072 2020-07-23 Kito Cheng <kito.cheng@sifive.com>
14073
14074 PR target/96260
14075 * asan.c (asan_shadow_offset_set_p): New.
14076 * asan.h (asan_shadow_offset_set_p): Ditto.
14077 * toplev.c (process_options): Allow -fsanitize=kernel-address
14078 even TARGET_ASAN_SHADOW_OFFSET not implemented, only check when
14079 asan stack protection is enabled.
14080
14081 2020-07-22 Peter Bergner <bergner@linux.ibm.com>
14082
14083 PR target/96236
14084 * config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Handle
14085 little-endian memory ordering.
14086
14087 2020-07-22 Nathan Sidwell <nathan@acm.org>
14088
14089 * dumpfile.c (parse_dump_option): Deal with filenames
14090 containing '-'
14091
14092 2020-07-22 Nathan Sidwell <nathan@acm.org>
14093
14094 * incpath.c (add_path): Avoid multiple strlen calls.
14095
14096 2020-07-22 Jozef Lawrynowicz <jozef.l@mittosystems.com>
14097
14098 * expmed.c (expand_sdiv_pow2): Check return value from emit_store_flag
14099 is not NULL_RTX before use.
14100
14101 2020-07-22 Jozef Lawrynowicz <jozef.l@mittosystems.com>
14102
14103 * expr.c (convert_modes): Allow a constant integer to be converted to
14104 any scalar int mode.
14105
14106 2020-07-22 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
14107
14108 * config/aarch64/aarch64-ldpstp.md: Add two peepholes for adjusted vector
14109 V2SI, V2SF, V2DI, V2DF load pair and store pair modes.
14110 * config/aarch64/aarch64-protos.h (aarch64_gen_adjusted_ldpstp):
14111 Change mode parameter to machine_mode.
14112 (aarch64_operands_adjust_ok_for_ldpstp): Change mode parameter to
14113 machine_mode.
14114 * config/aarch64/aarch64.c (aarch64_operands_adjust_ok_for_ldpstp):
14115 Change mode parameter to machine_mode.
14116 (aarch64_gen_adjusted_ldpstp): Change mode parameter to machine_mode.
14117 * config/aarch64/iterators.md (VP_2E): New iterator for 2 element vectors.
14118
14119 2020-07-22 Wei Wentao <weiwt.fnst@cn.fujitsu.com>
14120
14121 * doc/languages.texi: Fix “then”/“than” typo.
14122
14123 2020-07-21 Sunil K Pandey <skpgkp2@gmail.com>
14124
14125 PR target/95237
14126 * config/i386/i386-protos.h (ix86_local_alignment): Add
14127 another function parameter may_lower alignment. Default is
14128 false.
14129 * config/i386/i386.c (ix86_lower_local_decl_alignment): New
14130 function.
14131 (ix86_local_alignment): Amend ix86_local_alignment to accept
14132 another parameter may_lower. If may_lower is true, new align
14133 may be lower than incoming alignment. If may_lower is false,
14134 new align will be greater or equal to incoming alignment.
14135 (TARGET_LOWER_LOCAL_DECL_ALIGNMENT): Define.
14136 * doc/tm.texi: Regenerate.
14137 * doc/tm.texi.in (TARGET_LOWER_LOCAL_DECL_ALIGNMENT): New
14138 hook.
14139 * target.def (lower_local_decl_alignment): New hook.
14140
14141 2020-07-21 Uroš Bizjak <ubizjak@gmail.com>
14142
14143 PR target/95750
14144 * config/i386/sync.md (mfence_sse2): Enable for
14145 TARGET_64BIT and TARGET_SSE2.
14146 (mfence_nosse): Always enable.
14147
14148 2020-07-21 Jozef Lawrynowicz <jozef.l@mittosystems.com>
14149
14150 * config/msp430/msp430-protos.h (msp430_do_not_relax_short_jumps):
14151 Remove.
14152 * config/msp430/msp430.c (msp430_do_not_relax_short_jumps): Likewise.
14153 * config/msp430/msp430.md (cbranchhi4_real): Remove special case for
14154 msp430_do_not_relax_short_jumps.
14155
14156 2020-07-21 Jozef Lawrynowicz <jozef.l@mittosystems.com>
14157
14158 * config/msp430/msp430.md: New "extendqipsi2" define_insn.
14159
14160 2020-07-21 Jozef Lawrynowicz <jozef.l@mittosystems.com>
14161
14162 * config/msp430/msp430.h (NO_FUNCTION_CSE): Set to true at -O2 and
14163 above.
14164
14165 2020-07-21 Xionghu Luo <luoxhu@linux.ibm.com>
14166
14167 PR rtl-optimization/89310
14168 * config/rs6000/rs6000.md (movsf_from_si2): New define_insn_and_split.
14169
14170 2020-07-20 Hans-Peter Nilsson <hp@bitrange.com>
14171
14172 * config/mmix/mmix.c (mmix_expand_prologue): Calculate the total
14173 allocated size and set current_function_static_stack_size, if
14174 flag_stack_usage_info.
14175
14176 2020-07-20 Sergei Trofimovich <siarheit@google.com>
14177
14178 PR target/96190
14179 * config/sparc/linux.h (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
14180 to get crtendS.o for !no-pie mode.
14181 * config/sparc/linux64.h (ENDFILE_SPEC): Ditto.
14182
14183 2020-07-20 Yang Yang <yangyang305@huawei.com>
14184
14185 * tree-vect-stmts.c (vectorizable_simd_clone_call): Add
14186 VIEW_CONVERT_EXPRs if the arguments types and return type
14187 of simd clone function are distinct with the vectype of stmt.
14188
14189 2020-07-20 Uroš Bizjak <ubizjak@gmail.com>
14190
14191 PR target/95750
14192 * config/i386/i386.h (TARGET_AVOID_MFENCE):
14193 Rename from TARGET_USE_XCHG_FOR_ATOMIC_STORE.
14194 * config/i386/sync.md (mfence_sse2): Disable for TARGET_AVOID_MFENCE.
14195 (mfence_nosse): Enable also for TARGET_AVOID_MFENCE. Emit stack
14196 referred memory in word_mode.
14197 (mem_thread_fence): Do not generate mfence_sse2 pattern when
14198 TARGET_AVOID_MFENCE is true.
14199 (atomic_store<mode>): Update for rename.
14200 * config/i386/x86-tune.def (X86_TUNE_AVOID_MFENCE):
14201 Rename from X86_TUNE_USE_XCHG_FOR_ATOMIC_STORE.
14202
14203 2020-07-20 Martin Sebor <msebor@redhat.com>
14204
14205 PR middle-end/95189
14206 PR middle-end/95886
14207 * builtins.c (inline_expand_builtin_string_cmp): Rename...
14208 (inline_expand_builtin_bytecmp): ...to this.
14209 (builtin_memcpy_read_str): Don't expect data to be nul-terminated.
14210 (expand_builtin_memory_copy_args): Handle object representations
14211 with embedded nul bytes.
14212 (expand_builtin_memcmp): Same.
14213 (expand_builtin_strcmp): Adjust call to naming change.
14214 (expand_builtin_strncmp): Same.
14215 * expr.c (string_constant): Create empty strings with nonzero size.
14216 * fold-const.c (c_getstr): Rename locals and update comments.
14217 * tree.c (build_string): Accept null pointer argument.
14218 (build_string_literal): Same.
14219 * tree.h (build_string): Provide a default.
14220 (build_string_literal): Same.
14221
14222 2020-07-20 Richard Biener <rguenther@suse.de>
14223
14224 * cfganal.c (rev_post_order_and_mark_dfs_back_seme): Remove
14225 write-only post array.
14226
14227 2020-07-20 Jakub Jelinek <jakub@redhat.com>
14228
14229 PR libstdc++/93121
14230 * gimple-fold.c (fold_const_aggregate_ref_1): For COMPONENT_REF
14231 of a bitfield not aligned on byte boundaries try to
14232 fold_ctor_reference DECL_BIT_FIELD_REPRESENTATIVE if any and
14233 adjust it depending on endianity.
14234
14235 2020-07-20 Jakub Jelinek <jakub@redhat.com>
14236
14237 PR libstdc++/93121
14238 * fold-const.c (native_encode_initializer): Handle bit-fields.
14239
14240 2020-07-20 Kewen Lin <linkw@linux.ibm.com>
14241
14242 * config/rs6000/rs6000.c (rs6000_option_override_internal):
14243 Set param_vect_partial_vector_usage to 0 explicitly.
14244 * doc/invoke.texi (vect-partial-vector-usage): Document new option.
14245 * optabs-query.c (get_len_load_store_mode): New function.
14246 * optabs-query.h (get_len_load_store_mode): New declare.
14247 * params.opt (vect-partial-vector-usage): New.
14248 * tree-vect-loop-manip.c (vect_set_loop_controls_directly): Add the
14249 handlings for vectorization using length-based partial vectors, call
14250 vect_gen_len for length generation, and rename some variables with
14251 items instead of scalars.
14252 (vect_set_loop_condition_partial_vectors): Add the handlings for
14253 vectorization using length-based partial vectors.
14254 (vect_do_peeling): Allow remaining eiters less than epilogue vf for
14255 LOOP_VINFO_USING_PARTIAL_VECTORS_P.
14256 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Init
14257 epil_using_partial_vectors_p.
14258 (_loop_vec_info::~_loop_vec_info): Call release_vec_loop_controls
14259 for lengths destruction.
14260 (vect_verify_loop_lens): New function.
14261 (vect_analyze_loop): Add handlings for epilogue of loop when it's
14262 marked to use vectorization using partial vectors.
14263 (vect_analyze_loop_2): Add the check to allow only one vectorization
14264 approach using partial vectorization at the same time. Check param
14265 vect-partial-vector-usage for partial vectors decision. Mark
14266 LOOP_VINFO_EPIL_USING_PARTIAL_VECTORS_P if the epilogue is
14267 considerable to use partial vectors. Call release_vec_loop_controls
14268 for lengths destruction.
14269 (vect_estimate_min_profitable_iters): Adjust for loop vectorization
14270 using length-based partial vectors.
14271 (vect_record_loop_mask): Init factor to 1 for vectorization using
14272 mask-based partial vectors.
14273 (vect_record_loop_len): New function.
14274 (vect_get_loop_len): Likewise.
14275 * tree-vect-stmts.c (check_load_store_for_partial_vectors): Add
14276 checks for vectorization using length-based partial vectors. Factor
14277 some code to lambda function get_valid_nvectors.
14278 (vectorizable_store): Add handlings when using length-based partial
14279 vectors.
14280 (vectorizable_load): Likewise.
14281 (vect_gen_len): New function.
14282 * tree-vectorizer.h (struct rgroup_controls): Add field factor
14283 mainly for length-based partial vectors.
14284 (vec_loop_lens): New typedef.
14285 (_loop_vec_info): Add lens and epil_using_partial_vectors_p.
14286 (LOOP_VINFO_EPIL_USING_PARTIAL_VECTORS_P): New macro.
14287 (LOOP_VINFO_LENS): Likewise.
14288 (LOOP_VINFO_FULLY_WITH_LENGTH_P): Likewise.
14289 (vect_record_loop_len): New declare.
14290 (vect_get_loop_len): Likewise.
14291 (vect_gen_len): Likewise.
14292
14293 2020-07-20 Hans-Peter Nilsson <hp@bitrange.com>
14294
14295 * config/mmix/mmix.c (mmix_option_override): Reinstate default
14296 integer-emitting targetm.asm_out pseudos when dumping detailed
14297 assembly-code.
14298 (mmix_assemble_integer): Update comment.
14299
14300 2020-07-19 H.J. Lu <hjl.tools@gmail.com>
14301
14302 PR target/95973
14303 PR target/96238
14304 * config/i386/cpuid.h: Add include guard.
14305 (__cpuidex): New.
14306
14307 2020-07-18 H.J. Lu <hjl.tools@gmail.com>
14308
14309 PR target/95620
14310 * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
14311
14312 2020-07-18 Peter Bergner <bergner@linux.ibm.com>
14313
14314 PR target/92488
14315 * config/rs6000/dfp.md (trunctdsd2): New define_insn.
14316 * config/rs6000/rs6000.md (define_attr "isa"): Add p9.
14317 (define_attr "enabled"): Handle p9.
14318
14319 2020-07-17 Roger Sayle <roger@nextmovesoftware.com>
14320
14321 * function.c (assign_parm_setup_block): Use the macro
14322 TRULY_NOOP_TRUNCATION_MODES_P instead of calling
14323 targetm.truly_noop_truncation directly.
14324
14325 2020-07-17 H.J. Lu <hjl.tools@gmail.com>
14326
14327 PR target/96186
14328 PR target/88713
14329 * config/i386/sse.md (VF_AVX512VL_VF1_128_256): Renamed to ...
14330 (VF1_AVX512ER_128_256): This. Drop DF vector modes.
14331 (rsqrt<mode>2): Replace VF_AVX512VL_VF1_128_256 with
14332 VF1_AVX512ER_128_256.
14333
14334 2020-07-17 Tamar Christina <tamar.christina@arm.com>
14335
14336 * doc/sourcebuild.texi (dg-set-compiler-env-var,
14337 dg-set-target-env-var): Document.
14338
14339 2020-07-17 Tamar Christina <tamar.christina@arm.com>
14340
14341 * config/arm/driver-arm.c (host_detect_local_cpu): Add GCC_CPUINFO.
14342
14343 2020-07-17 Tamar Christina <tamar.christina@arm.com>
14344
14345 * config/aarch64/driver-aarch64.c (host_detect_local_cpu):
14346 Add GCC_CPUINFO.
14347
14348 2020-07-17 Tamar Christina <tamar.christina@arm.com>
14349
14350 * config/aarch64/driver-aarch64.c (INCLUDE_SET): New.
14351 (parse_field): Use std::string.
14352 (split_words, readline, find_field): New.
14353 (host_detect_local_cpu): Fix truncation issues.
14354
14355 2020-07-17 Andrew Stubbs <ams@codesourcery.com>
14356
14357 * config/gcn/mkoffload.c (EM_AMDGPU): Undefine before defining.
14358 (ELFOSABI_AMDGPU_HSA): Likewise.
14359 (ELFABIVERSION_AMDGPU_HSA): Likewise.
14360 (EF_AMDGPU_MACH_AMDGCN_GFX803): Likewise.
14361 (EF_AMDGPU_MACH_AMDGCN_GFX900): Likewise.
14362 (EF_AMDGPU_MACH_AMDGCN_GFX906): Likewise.
14363 (reserved): Delete.
14364
14365 2020-07-17 Andrew Pinski <apinksi@marvell.com>
14366 Dmitrij Pochepko <dmitrij.pochepko@bell-sw.com>
14367
14368 PR target/93720
14369 * config/aarch64/aarch64.c (aarch64_evpc_ins): New function.
14370 (aarch64_expand_vec_perm_const_1): Call it.
14371 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_copy_lane): Make
14372 public, and add a "@" prefix.
14373
14374 2020-07-17 Andrew Pinski <apinksi@marvell.com>
14375 Dmitrij Pochepko <dmitrij.pochepko@bell-sw.com>
14376
14377 PR target/82199
14378 * config/aarch64/aarch64.c (aarch64_evpc_reencode): New function.
14379 (aarch64_expand_vec_perm_const_1): Call it.
14380
14381 2020-07-17 Zhiheng Xie <xiezhiheng@huawei.com>
14382
14383 * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
14384 Add new field flags.
14385 (VAR1): Add new field FLAG in macro.
14386 (VAR2): Likewise.
14387 (VAR3): Likewise.
14388 (VAR4): Likewise.
14389 (VAR5): Likewise.
14390 (VAR6): Likewise.
14391 (VAR7): Likewise.
14392 (VAR8): Likewise.
14393 (VAR9): Likewise.
14394 (VAR10): Likewise.
14395 (VAR11): Likewise.
14396 (VAR12): Likewise.
14397 (VAR13): Likewise.
14398 (VAR14): Likewise.
14399 (VAR15): Likewise.
14400 (VAR16): Likewise.
14401 (aarch64_general_fold_builtin): Likewise.
14402 (aarch64_general_gimple_fold_builtin): Likewise.
14403 * config/aarch64/aarch64-simd-builtins.def: Add default flag for
14404 each built-in function.
14405 * config/aarch64/geniterators.sh: Add new field in BUILTIN macro.
14406
14407 2020-07-17 Andreas Krebbel <krebbel@linux.ibm.com>
14408
14409 PR target/96127
14410 * config/s390/s390.c (s390_expand_insv): Invoke the movstrict
14411 expanders to generate the pattern.
14412 * config/s390/s390.md ("*movstricthi", "*movstrictqi"): Remove the
14413 '*' to have callable expanders.
14414
14415 2020-07-16 Hans-Peter Nilsson <hp@axis.com>
14416 Segher Boessenkool <segher@kernel.crashing.org>
14417
14418 PR target/93372
14419 * combine.c (is_just_move): Take an rtx_insn* as argument. Use
14420 single_set on it.
14421
14422 2020-07-16 Uroš Bizjak <ubizjak@gmail.com>
14423
14424 PR target/96189
14425 * config/i386/sync.md
14426 (peephole2 to remove unneded compare after CMPXCHG):
14427 New pattern, also handle XOR zeroing and load of -1 by OR.
14428
14429 2020-07-16 Eric Botcazou <ebotcazou@adacore.com>
14430
14431 * config/i386/i386.c (ix86_compute_frame_layout): Minor tweak.
14432 (ix86_adjust_stack_and_probe): Delete.
14433 (ix86_adjust_stack_and_probe_stack_clash): Rename to above and add
14434 PROTECTION_AREA parameter. If it is true, probe PROBE_INTERVAL plus
14435 a small dope beyond SIZE bytes.
14436 (ix86_emit_probe_stack_range): Use local variable.
14437 (ix86_expand_prologue): Adjust calls to ix86_adjust_stack_and_probe
14438 and tidy up the stack checking code.
14439 * explow.c (get_stack_check_protect): Fix head comment.
14440 (anti_adjust_stack_and_probe_stack_clash): Likewise.
14441 (allocate_dynamic_stack_space): Add comment.
14442 * tree-nested.c (lookup_field_for_decl): Set the DECL_IGNORED_P and
14443 TREE_NO_WARNING but not TREE_ADDRESSABLE flags on the field.
14444
14445 2020-07-16 Andrew Stubbs <ams@codesourcery.com>
14446
14447 * config/gcn/mkoffload.c: Include simple-object.h and elf.h.
14448 (EM_AMDGPU): New macro.
14449 (ELFOSABI_AMDGPU_HSA): New macro.
14450 (ELFABIVERSION_AMDGPU_HSA): New macro.
14451 (EF_AMDGPU_MACH_AMDGCN_GFX803): New macro.
14452 (EF_AMDGPU_MACH_AMDGCN_GFX900): New macro.
14453 (EF_AMDGPU_MACH_AMDGCN_GFX906): New macro.
14454 (R_AMDGPU_NONE): New macro.
14455 (R_AMDGPU_ABS32_LO): New macro.
14456 (R_AMDGPU_ABS32_HI): New macro.
14457 (R_AMDGPU_ABS64): New macro.
14458 (R_AMDGPU_REL32): New macro.
14459 (R_AMDGPU_REL64): New macro.
14460 (R_AMDGPU_ABS32): New macro.
14461 (R_AMDGPU_GOTPCREL): New macro.
14462 (R_AMDGPU_GOTPCREL32_LO): New macro.
14463 (R_AMDGPU_GOTPCREL32_HI): New macro.
14464 (R_AMDGPU_REL32_LO): New macro.
14465 (R_AMDGPU_REL32_HI): New macro.
14466 (reserved): New macro.
14467 (R_AMDGPU_RELATIVE64): New macro.
14468 (gcn_s1_name): Delete global variable.
14469 (gcn_s2_name): Delete global variable.
14470 (gcn_o_name): Delete global variable.
14471 (gcn_cfile_name): Delete global variable.
14472 (files_to_cleanup): New global variable.
14473 (offload_abi): New global variable.
14474 (tool_cleanup): Use files_to_cleanup, not explicit list.
14475 (copy_early_debug_info): New function.
14476 (main): New local variables gcn_s1_name, gcn_s2_name, gcn_o_name,
14477 gcn_cfile_name.
14478 Create files_to_cleanup obstack.
14479 Recognize -march options.
14480 Copy early debug info from input .o files.
14481
14482 2020-07-16 Andrea Corallo <andrea.corallo@arm.com>
14483
14484 * Makefile.in (TAGS): Remove 'params.def'.
14485
14486 2020-07-16 Roger Sayle <roger@nextmovesoftware.com>
14487
14488 * target.def (TARGET_TRULY_NOOP_TRUNCATION): Clarify that
14489 targets that return false, indicating SUBREGs shouldn't be
14490 used, also need to provide a trunc?i?i2 optab that performs this
14491 truncation.
14492 * doc/tm.texi: Regenerate.
14493
14494 2020-07-15 Uroš Bizjak <ubizjak@gmail.com>
14495
14496 PR target/96189
14497 * config/i386/sync.md
14498 (peephole2 to remove unneded compare after CMPXCHG): New pattern.
14499
14500 2020-07-15 Jakub Jelinek <jakub@redhat.com>
14501
14502 PR libgomp/96198
14503 * omp-general.h (struct omp_for_data): Rename min_inner_iterations
14504 member to first_inner_iterations, adjust comment.
14505 * omp-general.c (omp_extract_for_data): Adjust for the above change.
14506 Always use n1first and n2first to compute it, rather than depending
14507 on single_nonrect_cond_code. Similarly, always compute factor
14508 as (m2 - m1) * outer_step / inner_step rather than sometimes m1 - m2
14509 depending on single_nonrect_cond_code.
14510 * omp-expand.c (expand_omp_for_init_vars): Rename min_inner_iterations
14511 to first_inner_iterations and min_inner_iterationsd to
14512 first_inner_iterationsd.
14513
14514 2020-07-15 Jakub Jelinek <jakub@redhat.com>
14515
14516 PR target/96174
14517 * config/i386/avx512fintrin.h (_mm512_cmpeq_pd_mask,
14518 _mm512_mask_cmpeq_pd_mask, _mm512_cmplt_pd_mask,
14519 _mm512_mask_cmplt_pd_mask, _mm512_cmple_pd_mask,
14520 _mm512_mask_cmple_pd_mask, _mm512_cmpunord_pd_mask,
14521 _mm512_mask_cmpunord_pd_mask, _mm512_cmpneq_pd_mask,
14522 _mm512_mask_cmpneq_pd_mask, _mm512_cmpnlt_pd_mask,
14523 _mm512_mask_cmpnlt_pd_mask, _mm512_cmpnle_pd_mask,
14524 _mm512_mask_cmpnle_pd_mask, _mm512_cmpord_pd_mask,
14525 _mm512_mask_cmpord_pd_mask, _mm512_cmpeq_ps_mask,
14526 _mm512_mask_cmpeq_ps_mask, _mm512_cmplt_ps_mask,
14527 _mm512_mask_cmplt_ps_mask, _mm512_cmple_ps_mask,
14528 _mm512_mask_cmple_ps_mask, _mm512_cmpunord_ps_mask,
14529 _mm512_mask_cmpunord_ps_mask, _mm512_cmpneq_ps_mask,
14530 _mm512_mask_cmpneq_ps_mask, _mm512_cmpnlt_ps_mask,
14531 _mm512_mask_cmpnlt_ps_mask, _mm512_cmpnle_ps_mask,
14532 _mm512_mask_cmpnle_ps_mask, _mm512_cmpord_ps_mask,
14533 _mm512_mask_cmpord_ps_mask): Move outside of __OPTIMIZE__ guarded
14534 section.
14535
14536 2020-07-15 Jakub Jelinek <jakub@redhat.com>
14537
14538 PR target/96176
14539 * builtins.c: Include gimple-ssa.h, tree-ssa-live.h and
14540 tree-outof-ssa.h.
14541 (expand_expr_force_mode): If exp is a SSA_NAME with different mode
14542 from MODE and get_gimple_for_ssa_name is a cast from MODE, use the
14543 cast's rhs.
14544
14545 2020-07-15 Jiufu Guo <guojiufu@cn.ibm.com>
14546
14547 * config/rs6000/rs6000.c (rs6000_loop_unroll_adjust): Refine hook.
14548
14549 2020-07-14 David Edelsohn <dje.gcc@gmail.com>
14550
14551 * config/rs6000/rs6000.md (rotldi3_insert_sf): Add TARGET_POWERPC64
14552 condition.
14553 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Add
14554 TARGET_POWERPC64 requirement to TARGET_P8_VECTOR case.
14555
14556 2020-07-14 Lewis Hyatt <lhyatt@gmail.com>
14557
14558 PR preprocessor/49973
14559 PR other/86904
14560 * common.opt: Handle -ftabstop here instead of in c-family
14561 options. Add -fdiagnostics-column-unit= and
14562 -fdiagnostics-column-origin= options.
14563 * opts.c (common_handle_option): Handle the new options.
14564 * diagnostic-format-json.cc (json_from_expanded_location): Add
14565 diagnostic_context argument. Use it to convert column numbers as per
14566 the new options.
14567 (json_from_location_range): Likewise.
14568 (json_from_fixit_hint): Likewise.
14569 (json_end_diagnostic): Pass the new context argument to helper
14570 functions above. Add "column-origin" field to the output.
14571 (test_unknown_location): Add the new context argument to calls to
14572 helper functions.
14573 (test_bad_endpoints): Likewise.
14574 * diagnostic-show-locus.c
14575 (exploc_with_display_col::exploc_with_display_col): Support
14576 tabstop parameter.
14577 (layout_point::layout_point): Make use of class
14578 exploc_with_display_col.
14579 (layout_range::layout_range): Likewise.
14580 (struct line_bounds): Clarify that the units are now always
14581 display columns. Rename members accordingly. Add constructor.
14582 (layout::print_source_line): Add support for tab expansion.
14583 (make_range): Adapt to class layout_range changes.
14584 (layout::maybe_add_location_range): Likewise.
14585 (layout::layout): Adapt to class exploc_with_display_col changes.
14586 (layout::calculate_x_offset_display): Support tabstop parameter.
14587 (layout::print_annotation_line): Adapt to struct line_bounds changes.
14588 (layout::print_line): Likewise.
14589 (line_label::line_label): Add diagnostic_context argument.
14590 (get_affected_range): Likewise.
14591 (get_printed_columns): Likewise.
14592 (layout::print_any_labels): Adapt to struct line_label changes.
14593 (class correction): Add m_tabstop member.
14594 (correction::correction): Add tabstop argument.
14595 (correction::compute_display_cols): Use m_tabstop.
14596 (class line_corrections): Add m_context member.
14597 (line_corrections::line_corrections): Add diagnostic_context argument.
14598 (line_corrections::add_hint): Use m_context to handle tabstops.
14599 (layout::print_trailing_fixits): Adapt to class line_corrections
14600 changes.
14601 (test_layout_x_offset_display_utf8): Support tabstop parameter.
14602 (test_layout_x_offset_display_tab): New selftest.
14603 (test_one_liner_colorized_utf8): Likewise.
14604 (test_tab_expansion): Likewise.
14605 (test_diagnostic_show_locus_one_liner_utf8): Call the new tests.
14606 (diagnostic_show_locus_c_tests): Likewise.
14607 (test_overlapped_fixit_printing): Adapt to helper class and
14608 function changes.
14609 (test_overlapped_fixit_printing_utf8): Likewise.
14610 (test_overlapped_fixit_printing_2): Likewise.
14611 * diagnostic.h (enum diagnostics_column_unit): New enum.
14612 (struct diagnostic_context): Add members for the new options.
14613 (diagnostic_converted_column): Declare.
14614 (json_from_expanded_location): Add new context argument.
14615 * diagnostic.c (diagnostic_initialize): Initialize new members.
14616 (diagnostic_converted_column): New function.
14617 (maybe_line_and_column): Be willing to output a column of 0.
14618 (diagnostic_get_location_text): Convert column number as per the new
14619 options.
14620 (diagnostic_report_current_module): Likewise.
14621 (assert_location_text): Add origin and column_unit arguments for
14622 testing the new functionality.
14623 (test_diagnostic_get_location_text): Test the new functionality.
14624 * doc/invoke.texi: Document the new options and behavior.
14625 * input.h (location_compute_display_column): Add tabstop argument.
14626 * input.c (location_compute_display_column): Likewise.
14627 (test_cpp_utf8): Add selftests for tab expansion.
14628 * tree-diagnostic-path.cc (default_tree_make_json_for_path): Pass the
14629 new context argument to json_from_expanded_location().
14630
14631 2020-07-14 Jakub Jelinek <jakub@redhat.com>
14632
14633 PR middle-end/96194
14634 * expr.c (expand_constructor): Don't create temporary for store to
14635 volatile MEM if exp has an addressable type.
14636
14637 2020-07-14 Nathan Sidwell <nathan@acm.org>
14638
14639 * hash-map.h (hash_map::get): Note it is a pointer to value.
14640 * incpath.h (incpath_kind): Align comments.
14641
14642 2020-07-14 Nathan Sidwell <nathan@acm.org>
14643
14644 * tree-core.h (tree_decl_with_vis, tree_function_decl):
14645 Note additional padding on 64-bits
14646 * tree.c (cache_integer_cst): Note why no caching of enum literals.
14647 (get_tree_code_name): Robustify error case.
14648
14649 2020-07-14 Nathan Sidwell <nathan@acm.org>
14650
14651 * doc/gty.texi: Fic gt_cleare_cache name.
14652 * doc/invoke.texi: Remove duplicate opindex Wabi-tag.
14653
14654 2020-07-14 Jakub Jelinek <jakub@redhat.com>
14655
14656 * omp-general.h (struct omp_for_data): Add adjn1 member.
14657 * omp-general.c (omp_extract_for_data): For non-rect loop, punt on
14658 count computing if n1, n2 or step are not INTEGER_CST earlier.
14659 Narrow the outer iterator range if needed so that non-rect loop
14660 has at least one iteration for each outer range iteration. Compute
14661 adjn1.
14662 * omp-expand.c (expand_omp_for_init_vars): Use adjn1 if non-NULL
14663 instead of the outer loop's n1.
14664
14665 2020-07-14 Matthias Klose <doko@ubuntu.com>
14666
14667 PR lto/95604
14668 * lto-wrapper.c (merge_and_complain): Add decoded options as parameter,
14669 error on different values for -fcf-protection.
14670 (append_compiler_options): Pass -fcf-protection option.
14671 (find_and_merge_options): Add decoded options as parameter,
14672 pass decoded_options to merge_and_complain.
14673 (run_gcc): Pass decoded options to find_and_merge_options.
14674 * lto-opts.c (lto_write_options): Pass -fcf-protection option.
14675
14676 2020-07-13 Alan Modra <amodra@gmail.com>
14677
14678 * config/rs6000/rs6000.md (sibcall_local): Merge sibcall_local32
14679 and sibcall_local64.
14680 (sibcall_value_local): Similarly.
14681
14682 2020-07-13 Nathan Sidwell <nathan@acm.org>
14683
14684 * Makefile.in (distclean): Remove long gone cxxmain.c
14685
14686 2020-07-13 H.J. Lu <hjl.tools@gmail.com>
14687
14688 PR target/95443
14689 * config/i386/i386.md (cmpstrnsi): Pass a copy of the string
14690 length to cmpstrnqi patterns.
14691
14692 2020-07-13 Jakub Jelinek <jakub@redhat.com>
14693
14694 PR ipa/96130
14695 * ipa-fnsummary.c (analyze_function_body): Treat NULL bb->aux
14696 as false predicate.
14697
14698 2020-07-13 Richard Biener <rguenther@suse.de>
14699
14700 PR tree-optimization/96163
14701 * tree-vect-slp.c (vect_schedule_slp_instance): Put new stmts
14702 at least after region begin.
14703
14704 2020-07-13 Szabolcs Nagy <szabolcs.nagy@arm.com>
14705
14706 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add
14707 __ARM_FEATURE_PAC_DEFAULT support.
14708
14709 2020-07-13 Szabolcs Nagy <szabolcs.nagy@arm.com>
14710
14711 PR target/94891
14712 * doc/extend.texi: Update the text for __builtin_return_address.
14713
14714 2020-07-13 Szabolcs Nagy <szabolcs.nagy@arm.com>
14715
14716 PR target/94891
14717 * config/aarch64/aarch64.c (aarch64_return_address_signing_enabled):
14718 Disable return address signing if __builtin_eh_return is used.
14719
14720 2020-07-13 Szabolcs Nagy <szabolcs.nagy@arm.com>
14721
14722 PR target/94891
14723 PR target/94791
14724 * config/aarch64/aarch64-protos.h (aarch64_return_addr_rtx): Declare.
14725 * config/aarch64/aarch64.c (aarch64_return_addr_rtx): New.
14726 (aarch64_return_addr): Use aarch64_return_addr_rtx.
14727 * config/aarch64/aarch64.h (PROFILE_HOOK): Likewise.
14728
14729 2020-07-13 Richard Sandiford <richard.sandiford@arm.com>
14730
14731 PR middle-end/95114
14732 * tree.h (virtual_method_call_p): Add a default-false parameter
14733 that indicates whether the function is being called from dump
14734 routines.
14735 (obj_type_ref_class): Likewise.
14736 * tree.c (virtual_method_call_p): Likewise.
14737 * ipa-devirt.c (obj_type_ref_class): Likewise. Lazily add ODR
14738 type information for the type when the parameter is false.
14739 * tree-pretty-print.c (dump_generic_node): Update calls to
14740 virtual_method_call_p and obj_type_ref_class accordingly.
14741
14742 2020-07-13 Julian Brown <julian@codesourcery.com>
14743 Thomas Schwinge <thomas@codesourcery.com>
14744
14745 * gimplify.c (gimplify_scan_omp_clauses): Do not strip
14746 GOMP_MAP_TO_PSET/GOMP_MAP_POINTER for OpenACC enter/exit data
14747 directives (see also PR92929).
14748
14749 2020-07-13 Roger Sayle <roger@nextmovesoftware.com>
14750
14751 * convert.c (convert_to_integer_1): Narrow integer operations
14752 even on targets that require explicit truncation instructions.
14753
14754 2020-07-13 Hans-Peter Nilsson <hp@axis.com>
14755
14756 PR target/93372
14757 * config/cris/cris-passes.def: New file.
14758 * config/cris/t-cris (PASSES_EXTRA): Add cris-passes.def.
14759 * config/cris/cris.c: Add infrastructure bits and pass execute
14760 function cris_postdbr_cmpelim.
14761 * config/cris/cris-protos.h (make_pass_cris_postdbr_cmpelim): Declare.
14762
14763 2020-07-13 Hans-Peter Nilsson <hp@axis.com>
14764
14765 * config/cris/t-cris: Remove gt-cris.h-related excessive cargo.
14766
14767 2020-07-13 Hans-Peter Nilsson <hp@axis.com>
14768
14769 PR target/93372
14770 * config/cris/cris.md ("*add<mode>3_addi"): New splitter.
14771 ("*addi_b_<mode>"): New pattern.
14772 ("*addsi3<setnz>"): Remove stale %-related comment.
14773
14774 2020-07-13 Hans-Peter Nilsson <hp@axis.com>
14775
14776 * config/cris/cris.md ("setnz_subst", "setnz_subst", "setcc_subst"):
14777 Use match_dup in output template, not match_operand.
14778
14779 2020-07-13 Richard Biener <rguenther@suse.de>
14780
14781 * var-tracking.c (bb_heap_node_t): Remove unused typedef.
14782 (vt_find_locations): Eliminate visited bitmap in favor of
14783 RPO order check. Dump statistics about the number of
14784 local BB dataflow computes.
14785
14786 2020-07-13 Richard Biener <rguenther@suse.de>
14787
14788 PR middle-end/94600
14789 * expr.c (expand_constructor): Make a temporary also if we're
14790 storing to volatile memory.
14791
14792 2020-07-13 Xionghu Luo <luoxhu@linux.ibm.com>
14793
14794 * config/rs6000/rs6000.md (rotl_unspec): New
14795 define_insn_and_split.
14796
14797 2020-07-13 Xionghu Luo <luoxhu@linux.ibm.com>
14798
14799 * config/rs6000/rs6000.c (rs6000_expand_vector_init):
14800 Move V4SF to V4SI, init vector like V4SI and move to V4SF back.
14801
14802 2020-07-11 Roger Sayle <roger@nextmovesoftware.com>
14803
14804 * internal-fn.c (expand_mul_overflow): When checking for signed
14805 overflow from a widening multiplication, we access the truncated
14806 lowpart RES twice, so keep this value in a pseudo register.
14807
14808 2020-07-11 Richard Sandiford <richard.sandiford@arm.com>
14809
14810 PR tree-optimization/96146
14811 * value-range.cc (value_range::set): Only decompose POLY_INT_CST
14812 bounds to integers for VR_RANGE. Decay to VR_VARYING for anti-ranges
14813 involving POLY_INT_CSTs.
14814
14815 2020-07-10 David Edelsohn <dje.gcc@gmail.com>
14816
14817 PR target/77373
14818 * config/rs6000/rs6000.c (rs6000_xcoff_select_section): Only
14819 create named section for VAR_DECL or FUNCTION_DECL.
14820
14821 2020-07-10 Joseph Myers <joseph@codesourcery.com>
14822
14823 * glimits.h [__STDC_VERSION__ > 201710L] (BOOL_MAX, BOOL_WIDTH):
14824 New macros.
14825
14826 2020-07-10 Alexander Popov <alex.popov@linux.com>
14827
14828 * shrink-wrap.c (try_shrink_wrapping): Improve debug output.
14829
14830 2020-07-10 Richard Sandiford <richard.sandiford@arm.com>
14831
14832 PR middle-end/96151
14833 * expr.c (expand_expr_real_2): When reducing bit fields,
14834 clear the target if it has a different mode from the expression.
14835 (reduce_to_bit_field_precision): Don't do that here. Instead
14836 assert that the target already has the correct mode.
14837
14838 2020-07-10 Richard Sandiford <richard.sandiford@arm.com>
14839
14840 PR target/92789
14841 PR target/95726
14842 * config/arm/arm.c (arm_attribute_table): Add
14843 "Advanced SIMD type".
14844 (arm_comp_type_attributes): Check that the "Advanced SIMD type"
14845 attributes are equal.
14846 * config/arm/arm-builtins.c: Include stringpool.h and
14847 attribs.h.
14848 (arm_mangle_builtin_vector_type): Use the mangling recorded
14849 in the "Advanced SIMD type" attribute.
14850 (arm_init_simd_builtin_types): Add an "Advanced SIMD type"
14851 attribute to each Advanced SIMD type, using the mangled type
14852 as the attribute's single argument.
14853
14854 2020-07-10 Carl Love <cel@us.ibm.com>
14855
14856 * config/rs6000/vsx.md (VSX_MM): New define_mode_iterator.
14857 (VSX_MM4): New define_mode_iterator.
14858 (vec_mtvsrbmi): New define_insn.
14859 (vec_mtvsr_<mode>): New define_insn.
14860 (vec_cntmb_<mode>): New define_insn.
14861 (vec_extract_<mode>): New define_insn.
14862 (vec_expand_<mode>): New define_insn.
14863 (define_c_enum unspec): Add entries UNSPEC_MTVSBM, UNSPEC_VCNTMB,
14864 UNSPEC_VEXTRACT, UNSPEC_VEXPAND.
14865 * config/rs6000/altivec.h ( vec_genbm, vec_genhm, vec_genwm,
14866 vec_gendm, vec_genqm, vec_cntm, vec_expandm, vec_extractm): Add
14867 defines.
14868 * config/rs6000/rs6000-builtin.def: Add defines BU_P10_2, BU_P10_1.
14869 (BU_P10_1): Add definitions for mtvsrbm, mtvsrhm, mtvsrwm,
14870 mtvsrdm, mtvsrqm, vexpandmb, vexpandmh, vexpandmw, vexpandmd,
14871 vexpandmq, vextractmb, vextractmh, vextractmw, vextractmd, vextractmq.
14872 (BU_P10_2): Add definitions for cntmbb, cntmbh, cntmbw, cntmbd.
14873 (BU_P10_OVERLOAD_1): Add definitions for mtvsrbm, mtvsrhm,
14874 mtvsrwm, mtvsrdm, mtvsrqm, vexpandm, vextractm.
14875 (BU_P10_OVERLOAD_2): Add defition for cntm.
14876 * config/rs6000/rs6000-call.c (rs6000_expand_binop_builtin): Add
14877 checks for CODE_FOR_vec_cntmbb_v16qi, CODE_FOR_vec_cntmb_v8hi,
14878 CODE_FOR_vec_cntmb_v4si, CODE_FOR_vec_cntmb_v2di.
14879 (altivec_overloaded_builtins): Add overloaded argument entries for
14880 P10_BUILTIN_VEC_MTVSRBM, P10_BUILTIN_VEC_MTVSRHM,
14881 P10_BUILTIN_VEC_MTVSRWM, P10_BUILTIN_VEC_MTVSRDM,
14882 P10_BUILTIN_VEC_MTVSRQM, P10_BUILTIN_VEC_VCNTMBB,
14883 P10_BUILTIN_VCNTMBB, P10_BUILTIN_VCNTMBH,
14884 P10_BUILTIN_VCNTMBW, P10_BUILTIN_VCNTMBD,
14885 P10_BUILTIN_VEXPANDMB, P10_BUILTIN_VEXPANDMH,
14886 P10_BUILTIN_VEXPANDMW, P10_BUILTIN_VEXPANDMD,
14887 P10_BUILTIN_VEXPANDMQ, P10_BUILTIN_VEXTRACTMB,
14888 P10_BUILTIN_VEXTRACTMH, P10_BUILTIN_VEXTRACTMW,
14889 P10_BUILTIN_VEXTRACTMD, P10_BUILTIN_VEXTRACTMQ.
14890 (builtin_function_type): Add case entries for P10_BUILTIN_MTVSRBM,
14891 P10_BUILTIN_MTVSRHM, P10_BUILTIN_MTVSRWM, P10_BUILTIN_MTVSRDM,
14892 P10_BUILTIN_MTVSRQM, P10_BUILTIN_VCNTMBB, P10_BUILTIN_VCNTMBH,
14893 P10_BUILTIN_VCNTMBW, P10_BUILTIN_VCNTMBD,
14894 P10_BUILTIN_VEXPANDMB, P10_BUILTIN_VEXPANDMH,
14895 P10_BUILTIN_VEXPANDMW, P10_BUILTIN_VEXPANDMD,
14896 P10_BUILTIN_VEXPANDMQ.
14897 * config/rs6000/rs6000-builtin.def (altivec_overloaded_builtins): Add
14898 entries for MTVSRBM, MTVSRHM, MTVSRWM, MTVSRDM, MTVSRQM, VCNTM,
14899 VEXPANDM, VEXTRACTM.
14900
14901 2020-07-10 Bill Seurer, 507-253-3502, seurer@us.ibm.com <(no_default)>
14902
14903 PR target/95581
14904 * config/rs6000/rs6000-call.c: Add new type v16qi_ftype_pcvoid.
14905 (altivec_init_builtins) Change __builtin_altivec_mask_for_load to use
14906 v16qi_ftype_pcvoid with correct number of parameters.
14907
14908 2020-07-10 H.J. Lu <hjl.tools@gmail.com>
14909
14910 PR target/96144
14911 * config/i386/i386-expand.c (ix86_emit_swsqrtsf): Check
14912 TARGET_AVX512VL when enabling FMA.
14913
14914 2020-07-10 Andrea Corallo <andrea.corallo@arm.com>
14915 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
14916 Iain Apreotesei <iain.apreotesei@arm.com>
14917
14918 * config/arm/arm-protos.h (arm_target_insn_ok_for_lob): New
14919 prototype.
14920 * config/arm/arm.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
14921 (arm_invalid_within_doloop): Implement invalid_within_doloop hook.
14922 (arm_target_insn_ok_for_lob): New function.
14923 * config/arm/arm.h (TARGET_HAVE_LOB): Define macro.
14924 * config/arm/thumb2.md (*doloop_end_internal, doloop_begin)
14925 (dls_insn): Add new patterns.
14926 (doloop_end): Modify to select LR when LOB is available.
14927 * config/arm/unspecs.md: Add new unspec.
14928 * doc/sourcebuild.texi (arm_v8_1_lob_ok)
14929 (arm_thumb2_ok_no_arm_v8_1_lob): Document new target supports
14930 options.
14931
14932 2020-07-10 Richard Biener <rguenther@suse.de>
14933
14934 PR tree-optimization/96133
14935 * gimple-fold.c (fold_array_ctor_reference): Do not
14936 recurse to folding a CTOR that does not fully cover the
14937 asked for object.
14938
14939 2020-07-10 Cui,Lili <lili.cui@intel.com>
14940
14941 * common/config/i386/cpuinfo.h
14942 (get_intel_cpu): Handle sapphirerapids.
14943 * common/config/i386/i386-common.c
14944 (processor_names): Add sapphirerapids and alderlake.
14945 (processor_alias_table): Add sapphirerapids and alderlake.
14946 * common/config/i386/i386-cpuinfo.h
14947 (processor_subtypes): Add INTEL_COREI7_ALDERLAKE and
14948 INTEL_COREI7_ALDERLAKE.
14949 * config.gcc: Add -march=sapphirerapids and alderlake.
14950 * config/i386/driver-i386.c
14951 (host_detect_local_cpu) Handle sapphirerapids and alderlake.
14952 * config/i386/i386-c.c
14953 (ix86_target_macros_internal): Handle sapphirerapids and alderlake.
14954 * config/i386/i386-options.c
14955 (m_SAPPHIRERAPIDS) : Define.
14956 (m_ALDERLAKE): Ditto.
14957 (m_CORE_AVX512) : Add m_SAPPHIRERAPIDS.
14958 (processor_cost_table): Add sapphirerapids and alderlake.
14959 (ix86_option_override_internal) Handle PTA_WAITPKG, PTA_ENQCMD,
14960 PTA_CLDEMOTE, PTA_SERIALIZE, PTA_TSXLDTRK.
14961 * config/i386/i386.h
14962 (ix86_size_cost) : Define SAPPHIRERAPIDS and ALDERLAKE.
14963 (processor_type) : Add PROCESSOR_SAPPHIRERAPIDS and
14964 PROCESSOR_ALDERLAKE.
14965 (PTA_ENQCMD): New.
14966 (PTA_CLDEMOTE): Ditto.
14967 (PTA_SERIALIZE): Ditto.
14968 (PTA_TSXLDTRK): New.
14969 (PTA_SAPPHIRERAPIDS): Ditto.
14970 (PTA_ALDERLAKE): Ditto.
14971 (processor_type) : Add PROCESSOR_SAPPHIRERAPIDS and
14972 PROCESSOR_ALDERLAKE.
14973 * doc/extend.texi: Add sapphirerapids and alderlake.
14974 * doc/invoke.texi: Add sapphirerapids and alderlake.
14975
14976 2020-07-10 Martin Liska <mliska@suse.cz>
14977
14978 * dumpfile.c [profile-report]: Add new profile dump.
14979 * dumpfile.h (enum tree_dump_index): Ad TDI_profile_report.
14980 * passes.c (pass_manager::dump_profile_report): Change stderr
14981 to dump_file.
14982
14983 2020-07-10 Kewen Lin <linkw@linux.ibm.com>
14984
14985 * tree-vect-loop.c (vect_transform_loop): Use LOOP_VINFO_NITERS which
14986 is adjusted by considering peeled prologue for non
14987 vect_use_loop_mask_for_alignment_p cases.
14988
14989 2020-07-09 Peter Bergner <bergner@linux.ibm.com>
14990
14991 PR target/96125
14992 * config/rs6000/rs6000-call.c (rs6000_init_builtins): Define the MMA
14993 specific types __vector_quad and __vector_pair, and initialize the
14994 MMA built-ins if TARGET_EXTRA_BUILTINS is set.
14995 (mma_init_builtins): Don't test for mask set in rs6000_builtin_mask.
14996 Remove now unneeded mask variable.
14997 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add the
14998 OPTION_MASK_MMA flag for power10 if not already set.
14999
15000 2020-07-09 Richard Biener <rguenther@suse.de>
15001
15002 PR tree-optimization/96133
15003 * tree-vect-slp.c (vect_build_slp_tree_1): Compare load_p
15004 status between stmts.
15005
15006 2020-07-09 H.J. Lu <hjl.tools@gmail.com>
15007
15008 PR target/88713
15009 * config/i386/i386-expand.c (ix86_emit_swsqrtsf): Enable FMA.
15010 * config/i386/sse.md (VF_AVX512VL_VF1_128_256): New.
15011 (rsqrt<mode>2): Replace VF1_128_256 with VF_AVX512VL_VF1_128_256.
15012 (rsqrtv16sf2): Removed.
15013
15014 2020-07-09 Richard Biener <rguenther@suse.de>
15015
15016 * tree-vectorizer.h (vect_verify_datarefs_alignment): Remove.
15017 (vect_slp_analyze_and_verify_instance_alignment): Rename to ...
15018 (vect_slp_analyze_instance_alignment): ... this.
15019 * tree-vect-data-refs.c (verify_data_ref_alignment): Remove.
15020 (vect_verify_datarefs_alignment): Likewise.
15021 (vect_enhance_data_refs_alignment): Do not call
15022 vect_verify_datarefs_alignment.
15023 (vect_slp_analyze_node_alignment): Rename from
15024 vect_slp_analyze_and_verify_node_alignment and do not
15025 call verify_data_ref_alignment.
15026 (vect_slp_analyze_instance_alignment): Rename from
15027 vect_slp_analyze_and_verify_instance_alignment.
15028 * tree-vect-stmts.c (vectorizable_store): Dump when
15029 we vectorize an unaligned access.
15030 (vectorizable_load): Likewise.
15031 * tree-vect-loop.c (vect_analyze_loop_2): Do not call
15032 vect_verify_datarefs_alignment.
15033 * tree-vect-slp.c (vect_slp_analyze_bb_1): Adjust.
15034
15035 2020-07-09 Bin Cheng <bin.cheng@linux.alibaba.com>
15036
15037 PR tree-optimization/95804
15038 * tree-loop-distribution.c (break_alias_scc_partitions): Force
15039 negative post order to reduction partition.
15040
15041 2020-07-09 Jakub Jelinek <jakub@redhat.com>
15042
15043 * omp-general.h (struct omp_for_data): Add min_inner_iterations
15044 and factor members.
15045 * omp-general.c (omp_extract_for_data): Initialize them and remember
15046 them in OMP_CLAUSE_COLLAPSE_COUNT if needed and restore from there.
15047 * omp-expand.c (expand_omp_for_init_counts): Fix up computation of
15048 counts[fd->last_nonrect] if fd->loop.n2 is INTEGER_CST.
15049 (expand_omp_for_init_vars): For
15050 fd->first_nonrect + 1 == fd->last_nonrect loops with for now
15051 INTEGER_CST fd->loop.n2 find quadratic equation roots instead of
15052 using fallback method when possible.
15053
15054 2020-07-09 Omar Tahir <omar.tahir@arm.com>
15055
15056 * ira.c (move_unallocated_pseudos): Zero first_moveable_pseudo and
15057 last_moveable_pseudo before returning.
15058
15059 2020-07-09 Szabolcs Nagy <szabolcs.nagy@arm.com>
15060
15061 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add
15062 __ARM_FEATURE_BTI_DEFAULT support.
15063
15064 2020-07-09 Matthew Malcomson <matthew.malcomson@arm.com>
15065
15066 * config/aarch64/aarch64-protos.h (aarch64_indirect_call_asm):
15067 New declaration.
15068 * config/aarch64/aarch64.c (aarch64_regno_regclass): Handle new
15069 stub registers class.
15070 (aarch64_class_max_nregs): Likewise.
15071 (aarch64_register_move_cost): Likewise.
15072 (aarch64_sls_shared_thunks): Global array to store stub labels.
15073 (aarch64_sls_emit_function_stub): New.
15074 (aarch64_create_blr_label): New.
15075 (aarch64_sls_emit_blr_function_thunks): New.
15076 (aarch64_sls_emit_shared_blr_thunks): New.
15077 (aarch64_asm_file_end): New.
15078 (aarch64_indirect_call_asm): New.
15079 (TARGET_ASM_FILE_END): Use aarch64_asm_file_end.
15080 (TARGET_ASM_FUNCTION_EPILOGUE): Use
15081 aarch64_sls_emit_blr_function_thunks.
15082 * config/aarch64/aarch64.h (STB_REGNUM_P): New.
15083 (enum reg_class): Add STUB_REGS class.
15084 (machine_function): Introduce `call_via` array for
15085 function-local stub labels.
15086 * config/aarch64/aarch64.md (*call_insn, *call_value_insn): Use
15087 aarch64_indirect_call_asm to emit code when hardening BLR
15088 instructions.
15089 * config/aarch64/constraints.md (Ucr): New constraint
15090 representing registers for indirect calls. Is GENERAL_REGS
15091 usually, and STUB_REGS when hardening BLR instruction against
15092 SLS.
15093 * config/aarch64/predicates.md (aarch64_general_reg): STUB_REGS class
15094 is also a general register.
15095
15096 2020-07-09 Matthew Malcomson <matthew.malcomson@arm.com>
15097
15098 * config/aarch64/aarch64-protos.h (aarch64_sls_barrier): New.
15099 * config/aarch64/aarch64.c (aarch64_output_casesi): Emit
15100 speculation barrier after BR instruction if needs be.
15101 (aarch64_trampoline_init): Handle ptr_mode value & adjust size
15102 of code copied.
15103 (aarch64_sls_barrier): New.
15104 (aarch64_asm_trampoline_template): Add needed barriers.
15105 * config/aarch64/aarch64.h (AARCH64_ISA_SB): New.
15106 (TARGET_SB): New.
15107 (TRAMPOLINE_SIZE): Account for barrier.
15108 * config/aarch64/aarch64.md (indirect_jump, *casesi_dispatch,
15109 simple_return, *do_return, *sibcall_insn, *sibcall_value_insn):
15110 Emit barrier if needs be, also account for possible barrier using
15111 "sls_length" attribute.
15112 (sls_length): New attribute.
15113 (length): Determine default using any non-default sls_length
15114 value.
15115
15116 2020-07-09 Matthew Malcomson <matthew.malcomson@arm.com>
15117
15118 * config/aarch64/aarch64-protos.h (aarch64_harden_sls_retbr_p):
15119 New.
15120 (aarch64_harden_sls_blr_p): New.
15121 * config/aarch64/aarch64.c (enum aarch64_sls_hardening_type):
15122 New.
15123 (aarch64_harden_sls_retbr_p): New.
15124 (aarch64_harden_sls_blr_p): New.
15125 (aarch64_validate_sls_mitigation): New.
15126 (aarch64_override_options): Parse options for SLS mitigation.
15127 * config/aarch64/aarch64.opt (-mharden-sls): New option.
15128 * doc/invoke.texi: Document new option.
15129
15130 2020-07-09 Kewen Lin <linkw@linux.ibm.com>
15131
15132 * tree-vect-stmts.c (vectorizable_condition): Prohibit vectorization
15133 with partial vectors explicitly excepting for EXTRACT_LAST_REDUCTION
15134 or nested-cycle reduction.
15135
15136 2020-07-09 Kewen Lin <linkw@linux.ibm.com>
15137
15138 * tree-vect-loop.c (vect_analyze_loop_2): Update dumping string
15139 for fully masking to be more common.
15140
15141 2020-07-09 Kito Cheng <kito.cheng@sifive.com>
15142
15143 * config/riscv/riscv.md (get_thread_pointer<mode>): New.
15144 (TP_REGNUM): Ditto.
15145 * doc/extend.texi (Target Builtins): Add RISC-V built-in section.
15146 Document __builtin_thread_pointer.
15147
15148 2020-07-09 Kito Cheng <kito.cheng@sifive.com>
15149
15150 * config/riscv/riscv-sr.c (riscv_remove_unneeded_save_restore_calls):
15151 Abort if any arguments on stack.
15152
15153 2020-07-08 Eric Botcazou <ebotcazou@adacore.com>
15154
15155 * gimple-fold.c (gimple_fold_builtin_memory_op): Do not fold if
15156 either type has reverse scalar storage order.
15157 * tree-ssa-sccvn.c (vn_reference_lookup_3): Do not propagate through
15158 a memory copy if either type has reverse scalar storage order.
15159
15160 2020-07-08 Tobias Burnus <tobias@codesourcery.com>
15161
15162 * config/gcn/mkoffload.c (compile_native, main): Pass -fPIC/-fpic
15163 on to the native compiler, if used.
15164 * config/nvptx/mkoffload.c (compile_native, main): Likewise.
15165
15166 2020-07-08 Will Schmidt <will_schmidt@vnet.ibm.com>
15167
15168 * config/rs6000/altivec.h (vec_vmsumudm): New define.
15169 * config/rs6000/altivec.md (UNSPEC_VMSUMUDM): New unspec.
15170 (altivec_vmsumudm): New define_insn.
15171 * config/rs6000/rs6000-builtin.def (altivec_vmsumudm): New BU_ALTIVEC_3
15172 entry. (vmsumudm): New BU_ALTIVEC_OVERLOAD_3 entry.
15173 * config/rs6000/rs6000-call.c (altivec_overloaded_builtins): Add entries for
15174 ALTIVEC_BUILTIN_VMSUMUDM variants of vec_msum.
15175 * doc/extend.texi: Add document for vmsumudm behind vmsum.
15176
15177 2020-07-08 Richard Biener <rguenther@suse.de>
15178
15179 * tree-vect-stmts.c (get_group_load_store_type): Pass
15180 in the SLP node and the alignment support scheme output.
15181 Set that.
15182 (get_load_store_type): Likewise.
15183 (vectorizable_store): Adjust.
15184 (vectorizable_load): Likewise.
15185
15186 2020-07-08 Richard Sandiford <richard.sandiford@arm.com>
15187
15188 PR middle-end/95694
15189 * expr.c (expand_expr_real_2): Get the mode from the type rather
15190 than the rtx, and assert that it is consistent with the mode of
15191 the rtx (where known). Optimize all constant integers, not just
15192 those that can be represented in poly_int64.
15193
15194 2020-07-08 Kewen Lin <linkw@linux.ibm.com>
15195
15196 * config/rs6000/vsx.md (len_load_v16qi): New define_expand.
15197 (len_store_v16qi): Likewise.
15198
15199 2020-07-08 Kewen Lin <linkw@linux.ibm.com>
15200
15201 * doc/md.texi (len_load_@var{m}): Document.
15202 (len_store_@var{m}): Likewise.
15203 * internal-fn.c (len_load_direct): New macro.
15204 (len_store_direct): Likewise.
15205 (expand_len_load_optab_fn): Likewise.
15206 (expand_len_store_optab_fn): Likewise.
15207 (direct_len_load_optab_supported_p): Likewise.
15208 (direct_len_store_optab_supported_p): Likewise.
15209 (expand_mask_load_optab_fn): New macro. Original renamed to ...
15210 (expand_partial_load_optab_fn): ... here. Add handlings for
15211 len_load_optab.
15212 (expand_mask_store_optab_fn): New macro. Original renamed to ...
15213 (expand_partial_store_optab_fn): ... here. Add handlings for
15214 len_store_optab.
15215 (internal_load_fn_p): Handle IFN_LEN_LOAD.
15216 (internal_store_fn_p): Handle IFN_LEN_STORE.
15217 (internal_fn_stored_value_index): Handle IFN_LEN_STORE.
15218 * internal-fn.def (LEN_LOAD): New internal function.
15219 (LEN_STORE): Likewise.
15220 * optabs.def (len_load_optab, len_store_optab): New optab.
15221
15222 2020-07-07 Anton Youdkevitch <anton.youdkevitch@bell-sw.com>
15223
15224 * config/aarch64/aarch64.c (thunderx2t99_regmove_cost,
15225 thunderx2t99_vector_cost): Likewise.
15226
15227 2020-07-07 Richard Biener <rguenther@suse.de>
15228
15229 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Fix
15230 group overlap condition to allow negative step DR groups.
15231 * tree-vect-stmts.c (get_group_load_store_type): For
15232 multi element SLP groups force VMAT_STRIDED_SLP when the step
15233 is negative.
15234
15235 2020-07-07 Qian Jianhua <qianjh@cn.fujitsu.com>
15236
15237 * doc/generic.texi: Fix typo.
15238
15239 2020-07-07 Richard Biener <rguenther@suse.de>
15240
15241 * lto-streamer-out.c (cmp_symbol_files): Use the computed
15242 order map to sort symbols from the same sub-file together.
15243 (lto_output): Compute a map of sub-file to an order number
15244 it appears in the symbol output array.
15245
15246 2020-07-06 Richard Biener <rguenther@suse.de>
15247
15248 PR tree-optimization/96075
15249 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
15250 TYPE_SIZE_UNIT of the vector component type instead of DR_STEP
15251 for the misalignment calculation for negative step.
15252
15253 2020-07-06 Roger Sayle <roger@nextmovesoftware.com>
15254
15255 * config/nvptx/nvptx.md (*vadd_addsi4): New instruction.
15256 (*vsub_addsi4): New instruction.
15257
15258 2020-07-06 Hans-Peter Nilsson <hp@axis.com>
15259
15260 * config/cris/cris.md (movulsr): New peephole2.
15261
15262 2020-07-06 Hans-Peter Nilsson <hp@axis.com>
15263
15264 * config/cris/sync.md ("cris_atomic_fetch_<atomic_op_name><mode>_1"):
15265 Correct gcc_assert of overlapping operands.
15266
15267 2020-07-05 Hans-Peter Nilsson <hp@axis.com>
15268
15269 * config/cris/cris.c (cris_select_cc_mode): Always return
15270 CC_NZmode for matching comparisons. Clarify comments.
15271 * config/cris/cris-modes.def: Clarify mode comment.
15272 * config/cris/cris.md (plusminus, plusminusumin, plusumin): New
15273 code iterators.
15274 (addsub, addsubbo, nd): New code iterator attributes.
15275 ("*<addsub><su>qihi"): Rename from "*extopqihi". Use code
15276 iterator constructs instead of match_operator constructs.
15277 ("*<addsubbo><su><nd><mode>si<setnz>"): Similar from
15278 "*extop<mode>si<setnz>".
15279 ("*add<su>qihi_swap"): Similar from "*addxqihi_swap".
15280 ("*<addsubbo><su><nd><mode>si<setnz>_swap"): Similar from
15281 "*extop<mode>si<setnz>_swap".
15282
15283 2020-07-05 Hans-Peter Nilsson <hp@axis.com>
15284
15285 * config/cris/cris.md ("*extopqihi", "*extop<mode>si<setnz>_swap")
15286 ("*extop<mode>si<setnz>", "*addxqihi_swap"): Reinstate.
15287
15288 2020-07-03 Eric Botcazou <ebotcazou@adacore.com>
15289
15290 * gimple-fold.c (gimple_fold_builtin_memory_op): Fold calls that
15291 were initially created for the assignment of a variable-sized
15292 object and whose source is now a string constant.
15293 * gimple-ssa-store-merging.c (struct merged_store_group): Document
15294 STRING_CST for rhs_code field.
15295 Add string_concatenation boolean field.
15296 (merged_store_group::merged_store_group): Initialize it as well as
15297 bit_insertion here.
15298 (merged_store_group::do_merge): Set it upon seeing a STRING_CST.
15299 Also set bit_insertion here upon seeing a BIT_INSERT_EXPR.
15300 (merged_store_group::apply_stores): Clear it for small regions.
15301 Do not create a power-of-2-sized buffer if it is still true.
15302 And do not set bit_insertion here again.
15303 (encode_tree_to_bitpos): Deal with BLKmode for the expression.
15304 (merged_store_group::can_be_merged_into): Deal with STRING_CST.
15305 (imm_store_chain_info::coalesce_immediate_stores): Set bit_insertion
15306 to true after changing MEM_REF stores into BIT_INSERT_EXPR stores.
15307 (count_multiple_uses): Return 0 for STRING_CST.
15308 (split_group): Do not split the group for a string concatenation.
15309 (imm_store_chain_info::output_merged_store): Constify and rename
15310 some local variables. Build an array type as destination type
15311 for a string concatenation, as well as a zero mask, and call
15312 build_string to build the source.
15313 (lhs_valid_for_store_merging_p): Return true for VIEW_CONVERT_EXPR.
15314 (pass_store_merging::process_store): Accept STRING_CST on the RHS.
15315 * gimple.h (gimple_call_alloca_for_var_p): New accessor function.
15316 * gimplify.c (gimplify_modify_expr_to_memcpy): Set alloca_for_var.
15317 * tree.h (CALL_ALLOCA_FOR_VAR_P): Document it for BUILT_IN_MEMCPY.
15318
15319 2020-07-03 Martin Jambor <mjambor@suse.cz>
15320
15321 PR ipa/96040
15322 * ipa-sra.c (all_callee_accesses_present_p): Do not accept type
15323 mismatched accesses.
15324
15325 2020-07-03 Roger Sayle <roger@nextmovesoftware.com>
15326
15327 * config/nvptx/nvptx.md (popcount<mode>2): New instructions.
15328 (mulhishi3, mulsidi3, umulhisi3, umulsidi3): New instructions.
15329
15330 2020-07-03 Martin Liska <mliska@suse.cz>
15331 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15332
15333 PR bootstrap/96046
15334 * gcov-dump.c (tag_function): Use gcov_position_t
15335 type.
15336
15337 2020-07-03 Richard Biener <rguenther@suse.de>
15338
15339 PR tree-optimization/96037
15340 * tree-vect-stmts.c (vect_is_simple_use): Initialize *slp_def.
15341
15342 2020-07-03 Richard Biener <rguenther@suse.de>
15343
15344 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Cost the
15345 original non-pattern stmts, look at the pattern stmt
15346 vectorization status.
15347
15348 2020-07-03 Andrew Stubbs <ams@codesourcery.com>
15349
15350 * config/gcn/gcn-valu.md (fold_left_plus_<mode>): New.
15351
15352 2020-07-03 Richard Biener <rguenther@suse.de>
15353
15354 * tree-vectorizer.h (vec_info::insert_on_entry): New.
15355 (vec_info::insert_seq_on_entry): Likewise.
15356 * tree-vectorizer.c (vec_info::insert_on_entry): Implement.
15357 (vec_info::insert_seq_on_entry): Likewise.
15358 * tree-vect-stmts.c (vect_init_vector_1): Use
15359 vec_info::insert_on_entry.
15360 (vect_finish_stmt_generation): Set modified bit after
15361 adjusting VUSE.
15362 * tree-vect-slp.c (vect_create_constant_vectors): Simplify
15363 by using vec_info::insert_seq_on_entry and bypassing
15364 vec_init_vector.
15365 (vect_schedule_slp_instance): Deal with all-constant
15366 children later.
15367
15368 2020-07-03 Roger Sayle <roger@nextmovesoftware.com>
15369 Tom de Vries <tdevries@suse.de>
15370
15371 PR target/90932
15372 * config/nvptx/nvptx.c (nvptx_vector_alignment): Use tree_to_uhwi
15373 to access TYPE_SIZE (type). Return at least the mode's alignment.
15374
15375 2020-07-02 Richard Biener <rguenther@suse.de>
15376
15377 PR tree-optimization/96028
15378 * tree-vect-slp.c (vect_slp_convert_to_external): Make sure
15379 we have scalar stmts to use.
15380 (vect_slp_analyze_node_operations): When analyzing a child
15381 failed try externalizing the parent node.
15382
15383 2020-07-02 Martin Jambor <mjambor@suse.cz>
15384
15385 PR debug/95343
15386 * ipa-param-manipulation.c (ipa_param_adjustments::modify_call): Adjust
15387 argument index if necessary.
15388
15389 2020-07-02 Martin Liska <mliska@suse.cz>
15390
15391 PR middle-end/95830
15392 * tree-vect-generic.c (expand_vector_condition): Forward declaration.
15393 (expand_vector_comparison): Do not expand a comparison if all
15394 uses are consumed by a VEC_COND_EXPR.
15395 (expand_vector_operation): Change void return type to bool.
15396 (expand_vector_operations_1): Pass dce_ssa_names.
15397
15398 2020-07-02 Ilya Leoshkevich <iii@linux.ibm.com>
15399
15400 PR bootstrap/95700
15401 * system.h (NULL): Redefine to nullptr.
15402
15403 2020-07-02 Jakub Jelinek <jakub@redhat.com>
15404
15405 PR tree-optimization/95857
15406 * tree-cfg.c (group_case_labels_stmt): When removing an unreachable
15407 base_bb, remember all forced and non-local labels on it and later
15408 treat those as if they have NULL label_to_block. Formatting fix.
15409 Fix a comment typo.
15410
15411 2020-07-02 Richard Biener <rguenther@suse.de>
15412
15413 PR tree-optimization/96022
15414 * tree-vect-stmts.c (vectorizable_shift): Only use the
15415 first vector stmt when extracting the scalar shift amount.
15416 * tree-vect-slp.c (vect_build_slp_tree_2): Also build unary
15417 nodes with all-scalar children from scalars but not stores.
15418 (vect_analyze_slp_instance): Mark the node not failed.
15419
15420 2020-07-02 Felix Yang <felix.yang@huawei.com>
15421
15422 PR tree-optimization/95961
15423 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Use the
15424 number of scalars instead of the number of vectors as an upper bound
15425 for the loop saving info about DR in the hash table. Remove unused
15426 local variables.
15427
15428 2020-07-02 Jakub Jelinek <jakub@redhat.com>
15429
15430 * omp-expand.c (expand_omp_for): Diagnose non-rectangular loops with
15431 invalid steps - ((m2 - m1) * incr_outer) % incr must be 0 in valid
15432 OpenMP non-rectangular loops. Use XALLOCAVEC.
15433
15434 2020-07-02 Martin Liska <mliska@suse.cz>
15435
15436 PR gcov-profile/95348
15437 * coverage.c (read_counts_file): Read only COUNTERS that are
15438 not all-zero.
15439 * gcov-dump.c (tag_function): Change signature from unsigned to
15440 signed integer.
15441 (tag_blocks): Likewise.
15442 (tag_arcs): Likewise.
15443 (tag_lines): Likewise.
15444 (tag_counters): Likewise.
15445 (tag_summary): Likewise.
15446 * gcov.c (read_count_file): Read all non-zero counters
15447 sensitively.
15448
15449 2020-07-02 Kito Cheng <kito.cheng@sifive.com>
15450
15451 * config/riscv/multilib-generator (arch_canonicalize): Handle
15452 multi-letter extension.
15453 Using underline as separator between different extensions.
15454
15455 2020-07-01 Pip Cet <pipcet@gmail.com>
15456
15457 * spellcheck.c (test_data): Add problematic strings.
15458 (test_metric_conditions): Don't test the triangle inequality
15459 condition, which our distance function does not satisfy.
15460
15461 2020-07-01 Omar Tahir <omar.tahir@arm.com>
15462
15463 * config/aarch64/aarch64.c (aarch64_asm_trampoline_template): Always
15464 generate a BTI instruction.
15465
15466 2020-07-01 Jeff Law <law@redhat.com>
15467
15468 PR tree-optimization/94882
15469 * match.pd (x & y) - (x | y) - 1 -> ~(x ^ y): New simplification.
15470
15471 2020-07-01 Jeff Law <law@redhat.com>
15472
15473 * config/m68k/m68k.c (m68k_output_btst): Drop "register" keyword.
15474 (emit_move_sequence, output_iorsi3, output_xorsi3): Likewise.
15475
15476 2020-07-01 Andrea Corallo <andrea.corallo@arm.com>
15477
15478 * config/aarch64/aarch64-builtins.c (aarch64_builtins): Add enums
15479 for 64bits fpsr/fpcr getter setters builtin variants.
15480 (aarch64_init_fpsr_fpcr_builtins): New function.
15481 (aarch64_general_init_builtins): Modify to make use of the later.
15482 (aarch64_expand_fpsr_fpcr_setter): New function.
15483 (aarch64_general_expand_builtin): Modify to make use of the later.
15484 * config/aarch64/aarch64.md (@aarch64_set_<fpscr_name><GPI:mode>)
15485 (@aarch64_get_<fpscr_name><GPI:mode>): New patterns replacing and
15486 generalizing 'get_fpcr', 'set_fpsr'.
15487 * config/aarch64/iterators.md (GET_FPSCR, SET_FPSCR): New int
15488 iterators.
15489 (fpscr_name): New int attribute.
15490 * doc/extend.texi (__builtin_aarch64_get_fpcr64)
15491 (__builtin_aarch64_set_fpcr64, __builtin_aarch64_get_fpsr64)
15492 (__builtin_aarch64_set_fpsr64): Add into AArch64 Built-in
15493 Functions.
15494
15495 2020-07-01 Martin Liska <mliska@suse.cz>
15496
15497 * gcov.c (print_usage): Avoid trailing space for -j option.
15498
15499 2020-07-01 Richard Biener <rguenther@suse.de>
15500
15501 PR tree-optimization/95839
15502 * tree-vect-slp.c (vect_slp_tree_uniform_p): Pre-existing
15503 vectors are not uniform.
15504 (vect_build_slp_tree_1): Handle BIT_FIELD_REFs of
15505 vector registers.
15506 (vect_build_slp_tree_2): For groups of lane extracts
15507 from a vector register generate a permute node
15508 with a special child representing the pre-existing vector.
15509 (vect_prologue_cost_for_slp): Pre-existing vectors cost nothing.
15510 (vect_slp_analyze_node_operations): Use SLP_TREE_LANES.
15511 (vectorizable_slp_permutation): Do not generate or cost identity
15512 permutes.
15513 (vect_schedule_slp_instance): Handle pre-existing vector
15514 that are function arguments.
15515
15516 2020-07-01 Richard Biener <rguenther@suse.de>
15517
15518 * system.h (INCLUDE_ISL): New guarded include.
15519 * graphite-dependences.c: Use it.
15520 * graphite-isl-ast-to-gimple.c: Likewise.
15521 * graphite-optimize-isl.c: Likewise.
15522 * graphite-poly.c: Likewise.
15523 * graphite-scop-detection.c: Likewise.
15524 * graphite-sese-to-poly.c: Likewise.
15525 * graphite.c: Likewise.
15526 * graphite.h: Drop the includes here.
15527
15528 2020-07-01 Martin Liska <mliska@suse.cz>
15529
15530 * gcov.c (print_usage): Shorted option description for -j
15531 option.
15532
15533 2020-07-01 Martin Liska <mliska@suse.cz>
15534
15535 * doc/gcov.texi: Rename 2 options.
15536 * gcov.c (print_usage): Rename -i,--json-format to
15537 -j,--json-format and -j,--human-readable to -H,--human-readable.
15538 (process_args): Fix up parsing. Document obsolete options and
15539 how are they changed.
15540
15541 2020-07-01 Jeff Law <law@redhat.com>
15542
15543 * config/pa/pa.c (pa_emit_move_sequence): Drop register keyword.
15544 (pa_output_ascii): Likewise.
15545
15546 2020-07-01 Kito Cheng <kito.cheng@sifive.com>
15547
15548 * common/config/riscv/riscv-common.c (riscv_subset_t): New field
15549 added.
15550 (riscv_subset_list::parsing_subset_version): Add parameter for
15551 indicate explicitly version, and handle explicitly version.
15552 (riscv_subset_list::handle_implied_ext): Ditto.
15553 (riscv_subset_list::add): Ditto.
15554 (riscv_subset_t::riscv_subset_t): Init new field.
15555 (riscv_subset_list::to_string): Always output version info if version
15556 explicitly specified.
15557 (riscv_subset_list::parsing_subset_version): Handle explicitly
15558 arch version.
15559 (riscv_subset_list::parse_std_ext): Ditto.
15560 (riscv_subset_list::parse_multiletter_ext): Ditto.
15561
15562 2020-06-30 Richard Sandiford <richard.sandiford@arm.com>
15563
15564 PR target/92789
15565 PR target/95726
15566 * config/aarch64/aarch64.c (aarch64_attribute_table): Add
15567 "Advanced SIMD type".
15568 (aarch64_comp_type_attributes): Check that the "Advanced SIMD type"
15569 attributes are equal.
15570 * config/aarch64/aarch64-builtins.c: Include stringpool.h and
15571 attribs.h.
15572 (aarch64_mangle_builtin_vector_type): Use the mangling recorded
15573 in the "Advanced SIMD type" attribute.
15574 (aarch64_init_simd_builtin_types): Add an "Advanced SIMD type"
15575 attribute to each Advanced SIMD type, using the mangled type
15576 as the attribute's single argument.
15577
15578 2020-06-30 Christophe Lyon <christophe.lyon@linaro.org>
15579
15580 PR target/94743
15581 * config/arm/arm.c (arm_handle_isr_attribute): Warn if
15582 -mgeneral-regs-only is not used.
15583
15584 2020-06-30 Yang Yang <yangyang305@huawei.com>
15585
15586 PR tree-optimization/95855
15587 * gimple-ssa-split-paths.c (is_feasible_trace): Add extra
15588 checks to recognize a missed if-conversion opportunity when
15589 judging whether to duplicate a block.
15590
15591 2020-06-29 Segher Boessenkool <segher@kernel.crashing.org>
15592
15593 * doc/extend.texi: Change references to "future architecture" to
15594 "ISA 3.1", "-mcpu=future" to "-mcpu=power10", and remove vaguer
15595 references to "future" (because the future is now).
15596
15597 2020-06-29 Segher Boessenkool <segher@kernel.crashing.org>
15598
15599 * config/rs6000/rs6000.md (isa): Rename "fut" to "p10".
15600
15601 2020-06-29 Roger Sayle <roger@nextmovesoftware.com>
15602
15603 * simplify-rtx.c (simplify_distributive_operation): New function
15604 to un-distribute a binary operation of two binary operations.
15605 (X & C) ^ (Y & C) to (X ^ Y) & C, when C is simple (i.e. a constant).
15606 (simplify_binary_operation_1) <IOR, XOR, AND>: Call it from here
15607 when appropriate.
15608 (test_scalar_int_ops): New function for unit self-testing
15609 scalar integer transformations in simplify-rtx.c.
15610 (test_scalar_ops): Call test_scalar_int_ops for each integer mode.
15611 (simplify_rtx_c_tests): Call test_scalar_ops.
15612
15613 2020-06-29 Richard Biener <rguenther@suse.de>
15614
15615 PR tree-optimization/95916
15616 * tree-vect-slp.c (vect_schedule_slp_instance): Explicitely handle
15617 the case of not vectorized externals.
15618
15619 2020-06-29 Richard Biener <rguenther@suse.de>
15620
15621 * tree-vectorizer.h: Do not include <utility>.
15622
15623 2020-06-29 Martin Liska <mliska@suse.cz>
15624
15625 * tree-ssa-ccp.c (gsi_prev_dom_bb_nondebug): Use gsi_bb
15626 instead of gimple_stmt_iterator::bb.
15627 * tree-ssa-math-opts.c (insert_reciprocals): Likewise.
15628 * tree-vectorizer.h: Likewise.
15629
15630 2020-06-29 Andrew Stubbs <ams@codesourcery.com>
15631
15632 * config/gcn/gcn-hsa.h (DBX_REGISTER_NUMBER): New macro.
15633 * config/gcn/gcn-protos.h (gcn_dwarf_register_number): New prototype.
15634 * config/gcn/gcn.c (gcn_expand_prologue): Add RTX_FRAME_RELATED_P
15635 and REG_FRAME_RELATED_EXPR to stack and frame pointer adjustments.
15636 (gcn_dwarf_register_number): New function.
15637 (gcn_dwarf_register_span): New function.
15638 (TARGET_DWARF_REGISTER_SPAN): New hook macro.
15639
15640 2020-06-29 Kaipeng Zhou <zhoukaipeng3@huawei.com>
15641
15642 PR tree-optimization/95854
15643 * gimple-ssa-store-merging.c (find_bswap_or_nop_1): Return NULL
15644 if operand 1 or 2 of a BIT_FIELD_REF cannot be converted to
15645 unsigned HOST_WIDE_INT.
15646
15647 2020-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15648
15649 * config/sparc/sparc.c (epilogue_renumber): Remove register.
15650 (sparc_print_operand_address): Likewise.
15651 (sparc_type_code): Likewise.
15652 (set_extends): Likewise.
15653
15654 2020-06-29 Martin Liska <mliska@suse.cz>
15655
15656 PR tree-optimization/92860
15657 * optc-save-gen.awk: Add exceptions for arc target.
15658
15659 2020-06-29 Frederik Harwath <frederik@codesourcery.com>
15660
15661 * doc/sourcebuild.texi: Describe globbing of the
15662 dump file scanning commands "suffix" argument.
15663
15664 2020-06-28 Martin Sebor <msebor@redhat.com>
15665
15666 PR c++/86568
15667 * calls.c (maybe_warn_rdwr_sizes): Use location of argument if
15668 available.
15669 * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Same. Adjust
15670 indentation.
15671 * tree.c (get_nonnull_args): Consider the this pointer implicitly
15672 nonnull.
15673 * var-tracking.c (deps_vec): New type.
15674 (var_loc_dep_vec): New function.
15675 (VAR_LOC_DEP_VEC): Use it.
15676
15677 2020-06-28 Kewen Lin <linkw@linux.ibm.com>
15678
15679 * internal-fn.c (direct_mask_load_optab_supported_p): Use
15680 convert_optab_supported_p instead of direct_optab_supported_p.
15681 (direct_mask_store_optab_supported_p): Likewise.
15682
15683 2020-06-27 Aldy Hernandez <aldyh@redhat.com>
15684
15685 * gimple-ssa-evrp-analyze.h (vrp_visit_cond_stmt): Use
15686 simplify_using_ranges class.
15687 * gimple-ssa-evrp.c (class evrp_folder): New simplify_using_ranges
15688 field. Adjust all methods to use new field.
15689 * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Use
15690 simplify_using_ranges class.
15691 * tree-vrp.c (class vrp_folder): New simplify_using_ranges
15692 field. Adjust all methods to use new field.
15693 (simplify_stmt_for_jump_threading): Use simplify_using_ranges class.
15694 (vrp_prop::vrp_finalize): New vrp_folder argument.
15695 (execute_vrp): Pass folder to vrp_finalize. Use
15696 simplify_using_ranges class.
15697 Remove cleanup_edges_and_switches call.
15698 * vr-values.c (vr_values::op_with_boolean_value_range_p): Change
15699 value_range_equiv uses to value_range.
15700 (simplify_using_ranges::op_with_boolean_value_range_p): Use
15701 simplify_using_ranges class.
15702 (check_for_binary_op_overflow): Make static.
15703 (vr_values::extract_range_basic): Pass this to
15704 check_for_binary_op_overflow.
15705 (compare_range_with_value): Change value_range_equiv uses to
15706 value_range.
15707 (vr_values::vr_values): Initialize simplifier field.
15708 Remove uses of to_remove_edges and to_update_switch_stmts.
15709 (vr_values::~vr_values): Remove uses of to_remove_edges and
15710 to_update_switch_stmts.
15711 (vr_values::get_vr_for_comparison): Move to simplify_using_ranges
15712 class.
15713 (vr_values::compare_name_with_value): Same.
15714 (vr_values::compare_names): Same.
15715 (vr_values::vrp_evaluate_conditional_warnv_with_ops): Same.
15716 (vr_values::vrp_evaluate_conditional): Same.
15717 (vr_values::vrp_visit_cond_stmt): Same.
15718 (find_case_label_ranges): Change value_range_equiv uses to
15719 value_range.
15720 (vr_values::extract_range_from_stmt): Use simplify_using_ranges class.
15721 (vr_values::simplify_truth_ops_using_ranges): Move to
15722 simplify_using_ranges class.
15723 (vr_values::simplify_div_or_mod_using_ranges): Same.
15724 (vr_values::simplify_min_or_max_using_ranges): Same.
15725 (vr_values::simplify_abs_using_ranges): Same.
15726 (vr_values::simplify_bit_ops_using_ranges): Same.
15727 (test_for_singularity): Change value_range_equiv uses to
15728 value_range.
15729 (range_fits_type_p): Same.
15730 (vr_values::simplify_cond_using_ranges_1): Same.
15731 (vr_values::simplify_cond_using_ranges_2): Make extern.
15732 (vr_values::fold_cond): Move to simplify_using_ranges class.
15733 (vr_values::simplify_switch_using_ranges): Same.
15734 (vr_values::cleanup_edges_and_switches): Same.
15735 (vr_values::simplify_float_conversion_using_ranges): Same.
15736 (vr_values::simplify_internal_call_using_ranges): Same.
15737 (vr_values::two_valued_val_range_p): Same.
15738 (vr_values::simplify_stmt_using_ranges): Move to...
15739 (simplify_using_ranges::simplify): ...here.
15740 * vr-values.h (class vr_values): Move all the simplification of
15741 statements using ranges methods and code from here...
15742 (class simplify_using_ranges): ...to here.
15743 (simplify_cond_using_ranges_2): New extern prototype.
15744
15745 2020-06-27 Jakub Jelinek <jakub@redhat.com>
15746
15747 * omp-general.h (struct omp_for_data_loop): Add non_rect_referenced
15748 member, move outer member.
15749 (struct omp_for_data): Add first_nonrect and last_nonrect members.
15750 * omp-general.c (omp_extract_for_data): Initialize first_nonrect,
15751 last_nonrect and non_rect_referenced members.
15752 * omp-expand.c (expand_omp_for_init_counts): Handle non-rectangular
15753 loops.
15754 (expand_omp_for_init_vars): Add nonrect_bounds parameter. Handle
15755 non-rectangular loops.
15756 (extract_omp_for_update_vars): Likewise.
15757 (expand_omp_for_generic, expand_omp_for_static_nochunk,
15758 expand_omp_for_static_chunk, expand_omp_simd,
15759 expand_omp_taskloop_for_outer, expand_omp_taskloop_for_inner): Adjust
15760 expand_omp_for_init_vars and extract_omp_for_update_vars callers.
15761 (expand_omp_for): Don't sorry on non-composite worksharing-loop or
15762 distribute.
15763
15764 2020-06-26 H.J. Lu <hjl.tools@gmail.com>
15765
15766 PR target/95655
15767 * config/i386/gnu-user.h (SUBTARGET_FRAME_POINTER_REQUIRED):
15768 Removed.
15769 * config/i386/i386.c (ix86_frame_pointer_required): Update
15770 comments.
15771
15772 2020-06-26 Yichao Yu <yyc1992@gmail.com>
15773
15774 * multiple_target.c (redirect_to_specific_clone): Fix tests
15775 to check individual attribute rather than an attribute list.
15776
15777 2020-06-26 Peter Bergner <bergner@linux.ibm.com>
15778
15779 * config/rs6000/rs6000-call.c (cpu_is_info) <power10>: New.
15780 * doc/extend.texi (PowerPC Built-in Functions): Document power10,
15781 arch_3_1 and mma.
15782
15783 2020-06-26 Marek Polacek <polacek@redhat.com>
15784
15785 * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
15786 * doc/standards.texi (C Language): Correct the default dialect.
15787 (C++ Language): Update the default for C++ to gnu++17.
15788
15789 2020-06-26 Eric Botcazou <ebotcazou@adacore.com>
15790
15791 * tree-ssa-reassoc.c (dump_range_entry): New function.
15792 (debug_range_entry): New debug function.
15793 (update_range_test): Invoke dump_range_entry for dumping.
15794 (optimize_range_tests_to_bit_test): Merge the entry test in the
15795 bit test when possible and lower the profitability threshold.
15796
15797 2020-06-26 Richard Biener <rguenther@suse.de>
15798
15799 PR tree-optimization/95897
15800 * tree-vectorizer.h (vectorizable_induction): Remove
15801 unused gimple_stmt_iterator * parameter.
15802 * tree-vect-loop.c (vectorizable_induction): Likewise.
15803 (vect_analyze_loop_operations): Adjust.
15804 * tree-vect-stmts.c (vect_analyze_stmt): Likewise.
15805 (vect_transform_stmt): Likewise.
15806 * tree-vect-slp.c (vect_schedule_slp_instance): Adjust
15807 for fold-left reductions, clarify existing reduction case.
15808
15809 2020-06-25 Nick Clifton <nickc@redhat.com>
15810
15811 * config/m32r/m32r.md (movsicc): Disable pattern.
15812
15813 2020-06-25 Richard Biener <rguenther@suse.de>
15814
15815 PR tree-optimization/95839
15816 * tree-vect-slp.c (vect_slp_analyze_bb_1): Remove premature
15817 check on the number of datarefs.
15818
15819 2020-06-25 Iain Sandoe <iain@sandoe.co.uk>
15820
15821 * config/rs6000/rs6000-call.c (mma_init_builtins): Cast
15822 the insn_data n_operands value to unsigned.
15823
15824 2020-06-25 Richard Biener <rguenther@suse.de>
15825
15826 * tree-vect-slp.c (vect_schedule_slp_instance): Always use
15827 vector defs to determine insertion place.
15828
15829 2020-06-25 H.J. Lu <hjl.tools@gmail.com>
15830
15831 PR target/95874
15832 * config/i386/i386.h (PTA_ICELAKE_CLIENT): Remove PTA_CLWB.
15833 (PTA_ICELAKE_SERVER): Add PTA_CLWB.
15834 (PTA_TIGERLAKE): Add PTA_CLWB.
15835
15836 2020-06-25 Richard Biener <rguenther@suse.de>
15837
15838 PR tree-optimization/95866
15839 * tree-vect-stmts.c (vectorizable_shift): Reject incompatible
15840 vectorized shift operands. For scalar shifts use lane zero
15841 of a vectorized shift operand.
15842
15843 2020-06-25 Martin Liska <mliska@suse.cz>
15844
15845 PR tree-optimization/95745
15846 PR middle-end/95830
15847 * gimple-isel.cc (gimple_expand_vec_cond_exprs): Delete dead
15848 SSA_NAMEs used as the first argument of a VEC_COND_EXPR. Always
15849 return 0.
15850 * tree-vect-generic.c (expand_vector_condition): Remove dead
15851 SSA_NAMEs used as the first argument of a VEC_COND_EXPR.
15852
15853 2020-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
15854
15855 PR target/94954
15856 * config/rs6000/altivec.h (vec_pack_to_short_fp32): Update.
15857 * config/rs6000/altivec.md (UNSPEC_CONVERT_4F32_8F16): New unspec.
15858 (convert_4f32_8f16): New define_expand
15859 * config/rs6000/rs6000-builtin.def (convert_4f32_8f16): New builtin define
15860 and overload.
15861 * config/rs6000/rs6000-call.c (P9V_BUILTIN_VEC_CONVERT_4F32_8F16): New
15862 overloaded builtin entry.
15863 * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSPHP): New unspec.
15864 (vsx_xvcvsphp): New define_insn.
15865
15866 2020-06-24 Roger Sayle <roger@nextmovesoftware.com>
15867 Segher Boessenkool <segher@kernel.crashing.org>
15868
15869 * simplify-rtx.c (simplify_unary_operation_1): Simplify rotates by 0.
15870
15871 2020-06-24 Roger Sayle <roger@nextmovesoftware.com>
15872
15873 * simplify-rtx.c (simplify_unary_operation_1): Simplify
15874 (parity (parity x)) as (parity x), i.e. PARITY is idempotent.
15875
15876 2020-06-24 Richard Biener <rguenther@suse.de>
15877
15878 PR tree-optimization/95866
15879 * tree-vect-slp.c (vect_slp_tree_uniform_p): New.
15880 (vect_build_slp_tree_2): Properly reset matches[0],
15881 ignore uniform constants.
15882
15883 2020-06-24 H.J. Lu <hjl.tools@gmail.com>
15884
15885 PR target/95660
15886 * common/config/i386/cpuinfo.h (get_intel_cpu): Remove brand_id.
15887 (cpu_indicator_init): Likewise.
15888 * config/i386/driver-i386.c (host_detect_local_cpu): Updated.
15889
15890 2020-06-24 H.J. Lu <hjl.tools@gmail.com>
15891
15892 PR target/95774
15893 * common/config/i386/cpuinfo.h (get_intel_cpu): Add Cooper Lake
15894 detection with AVX512BF16.
15895
15896 2020-06-24 H.J. Lu <hjl.tools@gmail.com>
15897
15898 PR target/95843
15899 * common/config/i386/i386-isas.h: New file. Extracted from
15900 gcc/config/i386/i386-builtins.c.
15901 (_isa_names_table): Add option.
15902 (ISA_NAMES_TABLE_START): New.
15903 (ISA_NAMES_TABLE_END): Likewise.
15904 (ISA_NAMES_TABLE_ENTRY): Likewise.
15905 (isa_names_table): Defined with ISA_NAMES_TABLE_START,
15906 ISA_NAMES_TABLE_END and ISA_NAMES_TABLE_ENTRY. Add more ISAs
15907 from enum processor_features.
15908 * config/i386/driver-i386.c: Include
15909 "common/config/i386/cpuinfo.h" and
15910 "common/config/i386/i386-isas.h".
15911 (has_feature): New macro.
15912 (host_detect_local_cpu): Call cpu_indicator_init to get CPU
15913 features. Use has_feature to detect processor features. Call
15914 Call get_intel_cpu to get the newer Intel CPU name. Use
15915 isa_names_table to generate command-line options.
15916 * config/i386/i386-builtins.c: Include
15917 "common/config/i386/i386-isas.h".
15918 (_arch_names_table): Removed.
15919 (isa_names_table): Likewise.
15920
15921 2020-06-24 H.J. Lu <hjl.tools@gmail.com>
15922
15923 PR target/95259
15924 * common/config/i386/cpuinfo.h: New file.
15925 (__processor_model): Moved from libgcc/config/i386/cpuinfo.h.
15926 (__processor_model2): New.
15927 (CHECK___builtin_cpu_is): New. Defined as empty if not defined.
15928 (has_cpu_feature): New function.
15929 (set_cpu_feature): Likewise.
15930 (get_amd_cpu): Moved from libgcc/config/i386/cpuinfo.c. Use
15931 CHECK___builtin_cpu_is. Return AMD CPU name.
15932 (get_intel_cpu): Moved from libgcc/config/i386/cpuinfo.c. Use
15933 Use CHECK___builtin_cpu_is. Return Intel CPU name.
15934 (get_available_features): Moved from libgcc/config/i386/cpuinfo.c.
15935 Also check FEATURE_3DNOW, FEATURE_3DNOWP, FEATURE_ADX,
15936 FEATURE_ABM, FEATURE_CLDEMOTE, FEATURE_CLFLUSHOPT, FEATURE_CLWB,
15937 FEATURE_CLZERO, FEATURE_CMPXCHG16B, FEATURE_CMPXCHG8B,
15938 FEATURE_ENQCMD, FEATURE_F16C, FEATURE_FSGSBASE, FEATURE_FXSAVE,
15939 FEATURE_HLE, FEATURE_IBT, FEATURE_LAHF_LM, FEATURE_LM,
15940 FEATURE_LWP, FEATURE_LZCNT, FEATURE_MOVBE, FEATURE_MOVDIR64B,
15941 FEATURE_MOVDIRI, FEATURE_MWAITX, FEATURE_OSXSAVE,
15942 FEATURE_PCONFIG, FEATURE_PKU, FEATURE_PREFETCHWT1, FEATURE_PRFCHW,
15943 FEATURE_PTWRITE, FEATURE_RDPID, FEATURE_RDRND, FEATURE_RDSEED,
15944 FEATURE_RTM, FEATURE_SERIALIZE, FEATURE_SGX, FEATURE_SHA,
15945 FEATURE_SHSTK, FEATURE_TBM, FEATURE_TSXLDTRK, FEATURE_VAES,
15946 FEATURE_WAITPKG, FEATURE_WBNOINVD, FEATURE_XSAVE, FEATURE_XSAVEC,
15947 FEATURE_XSAVEOPT and FEATURE_XSAVES
15948 (cpu_indicator_init): Moved from libgcc/config/i386/cpuinfo.c.
15949 Also update cpu_model2.
15950 * common/config/i386/i386-cpuinfo.h (processor_vendor): Add
15951 Add VENDOR_CENTAUR, VENDOR_CYRIX and VENDOR_NSC.
15952 (processor_features): Moved from gcc/config/i386/i386-builtins.c.
15953 Renamed F_XXX to FEATURE_XXX. Add FEATURE_3DNOW, FEATURE_3DNOWP,
15954 FEATURE_ADX, FEATURE_ABM, FEATURE_CLDEMOTE, FEATURE_CLFLUSHOPT,
15955 FEATURE_CLWB, FEATURE_CLZERO, FEATURE_CMPXCHG16B,
15956 FEATURE_CMPXCHG8B, FEATURE_ENQCMD, FEATURE_F16C,
15957 FEATURE_FSGSBASE, FEATURE_FXSAVE, FEATURE_HLE, FEATURE_IBT,
15958 FEATURE_LAHF_LM, FEATURE_LM, FEATURE_LWP, FEATURE_LZCNT,
15959 FEATURE_MOVBE, FEATURE_MOVDIR64B, FEATURE_MOVDIRI,
15960 FEATURE_MWAITX, FEATURE_OSXSAVE, FEATURE_PCONFIG,
15961 FEATURE_PKU, FEATURE_PREFETCHWT1, FEATURE_PRFCHW,
15962 FEATURE_PTWRITE, FEATURE_RDPID, FEATURE_RDRND, FEATURE_RDSEED,
15963 FEATURE_RTM, FEATURE_SERIALIZE, FEATURE_SGX, FEATURE_SHA,
15964 FEATURE_SHSTK, FEATURE_TBM, FEATURE_TSXLDTRK, FEATURE_VAES,
15965 FEATURE_WAITPKG, FEATURE_WBNOINVD, FEATURE_XSAVE, FEATURE_XSAVEC,
15966 FEATURE_XSAVEOPT, FEATURE_XSAVES and CPU_FEATURE_MAX.
15967 (SIZE_OF_CPU_FEATURES): New.
15968 * config/i386/i386-builtins.c (processor_features): Removed.
15969 (isa_names_table): Replace F_XXX with FEATURE_XXX.
15970 (fold_builtin_cpu): Change __cpu_features2 to an array.
15971
15972 2020-06-24 H.J. Lu <hjl.tools@gmail.com>
15973
15974 PR target/95842
15975 * common/config/i386/i386-common.c (processor_alias_table): Add
15976 processor model and priority to each entry.
15977 (pta_size): Updated with -6.
15978 (num_arch_names): New.
15979 * common/config/i386/i386-cpuinfo.h: New file.
15980 * config/i386/i386-builtins.c (feature_priority): Removed.
15981 (processor_model): Likewise.
15982 (_arch_names_table): Likewise.
15983 (arch_names_table): Likewise.
15984 (_isa_names_table): Replace P_ZERO with P_NONE.
15985 (get_builtin_code_for_version): Replace P_ZERO with P_NONE. Use
15986 processor_alias_table.
15987 (fold_builtin_cpu): Replace arch_names_table with
15988 processor_alias_table.
15989 * config/i386/i386.h: Include "common/config/i386/i386-cpuinfo.h".
15990 (pta): Add model and priority.
15991 (num_arch_names): New.
15992
15993 2020-06-24 Richard Biener <rguenther@suse.de>
15994
15995 * tree-vectorizer.h (vect_find_first_scalar_stmt_in_slp):
15996 Declare.
15997 * tree-vect-data-refs.c (vect_preserves_scalar_order_p):
15998 Simplify for new position of vectorized SLP loads.
15999 (vect_slp_analyze_node_dependences): Adjust for it.
16000 (vect_slp_analyze_and_verify_node_alignment): Compute alignment
16001 for the first stmts dataref.
16002 * tree-vect-slp.c (vect_find_first_scalar_stmt_in_slp): New.
16003 (vect_schedule_slp_instance): Emit loads before the
16004 first scalar stmt.
16005 * tree-vect-stmts.c (vectorizable_load): Do what the comment
16006 says and use vect_find_first_scalar_stmt_in_slp.
16007
16008 2020-06-24 Richard Biener <rguenther@suse.de>
16009
16010 PR tree-optimization/95856
16011 * tree-vectorizer.c (vect_stmt_dominates_stmt_p): Honor
16012 region marker -1u.
16013
16014 2020-06-24 Jakub Jelinek <jakub@redhat.com>
16015
16016 PR middle-end/95810
16017 * fold-const.c (fold_cond_expr_with_comparison): Optimize
16018 A <= 0 ? A : -A into (type)-absu(A) rather than -abs(A).
16019
16020 2020-06-24 Jakub Jelinek <jakub@redhat.com>
16021
16022 * omp-low.c (lower_omp_for): Fix two pastos.
16023
16024 2020-06-24 Martin Liska <mliska@suse.cz>
16025
16026 * optc-save-gen.awk: Compare string options in cl_optimization_compare
16027 by strcmp.
16028
16029 2020-06-23 Aaron Sawdey <acsawdey@linux.ibm.com>
16030
16031 * config.gcc: Identify power10 as a 64-bit processor and as valid
16032 for --with-cpu and --with-tune.
16033
16034 2020-06-23 David Edelsohn <dje.gcc@gmail.com>
16035
16036 * Makefile.in (LANG_MAKEFRAGS): Same.
16037 (tmake_file): Use -include.
16038 (xmake_file): Same.
16039
16040 2020-06-23 Michael Meissner <meissner@linux.ibm.com>
16041
16042 * REVISION: Delete file meant for a private branch.
16043
16044 2020-06-23 Andre Vieira <andre.simoesdiasvieira@arm.com>
16045
16046 PR target/95646
16047 * config/arm/arm.c: (cmse_nonsecure_entry_clear_before_return): Use
16048 'callee_saved_reg_p' instead of 'calL_used_or_fixed_reg_p'.
16049
16050 2020-06-23 Alexandre Oliva <oliva@adacore.com>
16051
16052 * collect-utils.h (dumppfx): New.
16053 * collect-utils.c (dumppfx): Likewise.
16054 * lto-wrapper.c (run_gcc): Set global dumppfx.
16055 (compile_offload_image): Pass a -dumpbase on to mkoffload.
16056 * config/nvptx/mkoffload.c (ptx_dumpbase): New.
16057 (main): Handle incoming -dumpbase. Set ptx_dumpbase. Obey
16058 save_temps.
16059 (compile_native): Pass -dumpbase et al to compiler.
16060 * config/gcn/mkoffload.c (gcn_dumpbase): New.
16061 (main): Handle incoming -dumpbase. Set gcn_dumpbase. Obey
16062 save_temps. Pass -dumpbase et al to offload target compiler.
16063 (compile_native): Pass -dumpbase et al to compiler.
16064
16065 2020-06-23 Michael Meissner <meissner@linux.ibm.com>
16066
16067 * REVISION: New file.
16068
16069 2020-06-22 Segher Boessenkool <segher@kernel.crashing.org>
16070
16071 * config/rs6000/altivec.h: Use _ARCH_PWR10, not _ARCH_PWR_FUTURE.
16072 Update comment for ISA 3.1.
16073 * config/rs6000/altivec.md: Use TARGET_POWER10, not TARGET_FUTURE.
16074 * config/rs6000/driver-rs6000.c (asm_names): Use -mpwr10 for power10
16075 on AIX, and -mpower10 elsewhere.
16076 * config/rs6000/future.md: Delete.
16077 * config/rs6000/linux64.h: Update comments. Use TARGET_POWER10, not
16078 TARGET_FUTURE.
16079 * config/rs6000/power10.md: New file.
16080 * config/rs6000/ppc-auxv.h: Use PPC_PLATFORM_POWER10, not
16081 PPC_PLATFORM_FUTURE.
16082 * config/rs6000/rs6000-builtin.def: Update comments. Use BU_P10V_*
16083 names instead of BU_FUTURE_V_* names. Use RS6000_BTM_P10 instead of
16084 RS6000_BTM_FUTURE. Use P10_BUILTIN_* instead of FUTURE_BUILTIN_*.
16085 Use BU_P10_* instead of BU_FUTURE_*.
16086 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
16087 _ARCH_PWR10 instead of _ARCH_PWR_FUTURE.
16088 (altivec_resolve_overloaded_builtin): Use P10_BUILTIN_VEC_XXEVAL, not
16089 FUTURE_BUILTIN_VEC_XXEVAL.
16090 * config/rs6000/rs6000-call.c: Use P10_BUILTIN_*, not FUTURE_BUILTIN_*.
16091 Update compiler messages.
16092 * config/rs6000/rs6000-cpus.def: Update comments. Use ISA_3_1_*, not
16093 ISA_FUTURE_*. Use OPTION_MASK_POWER10, not OPTION_MASK_FUTURE.
16094 * config/rs6000/rs6000-opts.h: Use PROCESSOR_POWER10, not
16095 PROCESSOR_FUTURE.
16096 * config/rs6000/rs6000-string.c: Ditto.
16097 * config/rs6000/rs6000-tables.opt (rs6000_cpu_opt_value): Use "power10"
16098 instead of "future", reorder it to right after "power9".
16099 * config/rs6000/rs6000.c: Update comments. Use OPTION_MASK_POWER10,
16100 not OPTION_MASK_FUTURE. Use TARGET_POWER10, not TARGET_FUTURE. Use
16101 RS6000_BTM_P10, not RS6000_BTM_FUTURE. Update compiler messages.
16102 Use PROCESSOR_POWER10, not PROCESSOR_FUTURE. Use ISA_3_1_MASKS_SERVER,
16103 not ISA_FUTURE_MASKS_SERVER.
16104 (rs6000_opt_masks): Use "power10" instead of "future".
16105 (rs6000_builtin_mask_names): Ditto.
16106 (rs6000_disable_incompatible_switches): Ditto.
16107 * config/rs6000/rs6000.h: Use -mpower10, not -mfuture. Use
16108 -mcpu=power10, not -mcpu=future. Use MASK_POWER10, not MASK_FUTURE.
16109 Use OPTION_MASK_POWER10, not OPTION_MASK_FUTURE. Use RS6000_BTM_P10,
16110 not RS6000_BTM_FUTURE.
16111 * config/rs6000/rs6000.md: Use "power10", not "future". Use
16112 TARGET_POWER10, not TARGET_FUTURE. Include "power10.md", not
16113 "future.md".
16114 * config/rs6000/rs6000.opt (mfuture): Delete.
16115 (mpower10): New.
16116 * config/rs6000/t-rs6000: Use "power10.md", not "future.md".
16117 * config/rs6000/vsx.md: Use TARGET_POWER10, not TARGET_FUTURE.
16118
16119 2020-06-22 Richard Sandiford <richard.sandiford@arm.com>
16120
16121 * coretypes.h (first_type): Delete.
16122 * recog.h (insn_gen_fn::operator()): Go back to using a decltype.
16123
16124 2020-06-22 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
16125
16126 * doc/sourcebuild.texi (arm_v8_1m_mve_fp_ok): Add item.
16127 (arm_mve_hw): Likewise.
16128
16129 2020-06-22 H.J. Lu <hjl.tools@gmail.com>
16130
16131 PR target/95791
16132 * config/i386/i386.c (ix86_dirflag_mode_needed): Skip
16133 EXT_REX_SSE_REG_P.
16134
16135 2020-06-22 Richard Biener <rguenther@suse.de>
16136
16137 PR tree-optimization/95770
16138 * tree-vect-slp.c (vect_schedule_slp_instance): Also consider
16139 external defs.
16140
16141 2020-06-22 Andrew Stubbs <ams@codesourcery.com>
16142
16143 * config/gcn/gcn.c (gcn_function_arg): Disallow vector arguments.
16144 (gcn_return_in_memory): Return vectors in memory.
16145
16146 2020-06-22 Jakub Jelinek <jakub@redhat.com>
16147
16148 * omp-general.c (omp_extract_for_data): For triangular loops with
16149 all loop invariant expressions constant where the innermost loop is
16150 executed at least once compute number of iterations at compile time.
16151
16152 2020-06-22 Kito Cheng <kito.cheng@sifive.com>
16153
16154 * config/riscv/riscv.h (ASM_SPEC): Remove riscv_expand_arch call.
16155 (DRIVER_SELF_SPECS): New.
16156
16157 2020-06-22 Kito Cheng <kito.cheng@sifive.com>
16158
16159 * config/riscv/riscv-builtins.c (RISCV_FTYPE_NAME0): New.
16160 (RISCV_FTYPE_ATYPES0): New.
16161 (riscv_builtins): Using RISCV_USI_FTYPE for frflags.
16162 * config/riscv/riscv-ftypes.def: Remove VOID argument.
16163
16164 2020-06-21 David Edelsohn <dje.gcc@gmail.com>
16165
16166 * config.gcc: Use t-aix64, biarch64 and default64 for cpu_is_64bit.
16167 * config/rs6000/aix72.h (ASM_SPEC): Remove aix64 option.
16168 (ASM_SPEC32): New.
16169 (ASM_SPEC64): New.
16170 (ASM_CPU_SPEC): Remove vsx and altivec options.
16171 (CPP_SPEC_COMMON): Rename from CPP_SPEC.
16172 (CPP_SPEC32): New.
16173 (CPP_SPEC64): New.
16174 (CPLUSPLUS_CPP_SPEC): Rename to CPLUSPLUS_CPP_SPEC_COMMON..
16175 (TARGET_DEFAULT): Only define if not BIARCH.
16176 (LIB_SPEC_COMMON): Rename from LIB_SPEC.
16177 (LIB_SPEC32): New.
16178 (LIB_SPEC64): New.
16179 (LINK_SPEC_COMMON): Rename from LINK_SPEC.
16180 (LINK_SPEC32): New.
16181 (LINK_SPEC64): New.
16182 (STARTFILE_SPEC): Add 64 bit version of crtcxa and crtdbase.
16183 (ASM_SPEC): Define 32 and 64 bit alternatives using DEFAULT_ARCH64_P.
16184 (CPP_SPEC): Same.
16185 (CPLUSPLUS_CPP_SPEC): Same.
16186 (LIB_SPEC): Same.
16187 (LINK_SPEC): Same.
16188 (SUBTARGET_EXTRA_SPECS): Add new 32/64 specs.
16189 * config/rs6000/defaultaix64.h: New file.
16190 * config/rs6000/t-aix64: New file.
16191
16192 2020-06-21 Peter Bergner <bergner@linux.ibm.com>
16193
16194 * config/rs6000/predicates.md (mma_assemble_input_operand): New.
16195 * config/rs6000/rs6000-builtin.def (BU_MMA_1, BU_MMA_V2, BU_MMA_3,
16196 BU_MMA_5, BU_MMA_6, BU_VSX_1): Add support macros for defining MMA
16197 built-in functions.
16198 (ASSEMBLE_ACC, ASSEMBLE_PAIR, DISASSEMBLE_ACC, DISASSEMBLE_PAIR,
16199 PMXVBF16GER2, PMXVBF16GER2NN, PMXVBF16GER2NP, PMXVBF16GER2PN,
16200 PMXVBF16GER2PP, PMXVF16GER2, PMXVF16GER2NN, PMXVF16GER2NP,
16201 PMXVF16GER2PN, PMXVF16GER2PP, PMXVF32GER, PMXVF32GERNN,
16202 PMXVF32GERNP, PMXVF32GERPN, PMXVF32GERPP, PMXVF64GER, PMXVF64GERNN,
16203 PMXVF64GERNP, PMXVF64GERPN, PMXVF64GERPP, PMXVI16GER2, PMXVI16GER2PP,
16204 PMXVI16GER2S, PMXVI16GER2SPP, PMXVI4GER8, PMXVI4GER8PP, PMXVI8GER4,
16205 PMXVI8GER4PP, PMXVI8GER4SPP, XVBF16GER2, XVBF16GER2NN, XVBF16GER2NP,
16206 XVBF16GER2PN, XVBF16GER2PP, XVCVBF16SP, XVCVSPBF16, XVF16GER2,
16207 XVF16GER2NN, XVF16GER2NP, XVF16GER2PN, XVF16GER2PP, XVF32GER,
16208 XVF32GERNN, XVF32GERNP, XVF32GERPN, XVF32GERPP, XVF64GER, XVF64GERNN,
16209 XVF64GERNP, XVF64GERPN, XVF64GERPP, XVI16GER2, XVI16GER2PP, XVI16GER2S,
16210 XVI16GER2SPP, XVI4GER8, XVI4GER8PP, XVI8GER4, XVI8GER4PP, XVI8GER4SPP,
16211 XXMFACC, XXMTACC, XXSETACCZ): Add MMA built-ins.
16212 * config/rs6000/rs6000.c (rs6000_emit_move): Use CONST_INT_P.
16213 Allow zero constants.
16214 (print_operand) <case 'A'>: New output modifier.
16215 (rs6000_split_multireg_move): Add support for inserting accumulator
16216 priming and depriming instructions. Add support for splitting an
16217 assemble accumulator pattern.
16218 * config/rs6000/rs6000-call.c (mma_init_builtins, mma_expand_builtin,
16219 rs6000_gimple_fold_mma_builtin): New functions.
16220 (RS6000_BUILTIN_M): New macro.
16221 (def_builtin): Handle RS6000_BTC_QUAD and RS6000_BTC_PAIR attributes.
16222 (bdesc_mma): Add new MMA built-in support.
16223 (htm_expand_builtin): Use RS6000_BTC_OPND_MASK.
16224 (rs6000_invalid_builtin): Add handling of RS6000_BTM_FUTURE and
16225 RS6000_BTM_MMA.
16226 (rs6000_builtin_valid_without_lhs): Handle RS6000_BTC_VOID attribute.
16227 (rs6000_gimple_fold_builtin): Call rs6000_builtin_is_supported_p
16228 and rs6000_gimple_fold_mma_builtin.
16229 (rs6000_expand_builtin): Call mma_expand_builtin.
16230 Use RS6000_BTC_OPND_MASK.
16231 (rs6000_init_builtins): Adjust comment. Call mma_init_builtins.
16232 (htm_init_builtins): Use RS6000_BTC_OPND_MASK.
16233 (builtin_function_type): Handle VSX_BUILTIN_XVCVSPBF16 and
16234 VSX_BUILTIN_XVCVBF16SP.
16235 * config/rs6000/rs6000.h (RS6000_BTC_QUINARY, RS6000_BTC_SENARY,
16236 RS6000_BTC_OPND_MASK, RS6000_BTC_QUAD, RS6000_BTC_PAIR,
16237 RS6000_BTC_QUADPAIR, RS6000_BTC_GIMPLE): New defines.
16238 (RS6000_BTC_PREDICATE, RS6000_BTC_ABS, RS6000_BTC_DST,
16239 RS6000_BTC_TYPE_MASK, RS6000_BTC_ATTR_MASK): Adjust values.
16240 * config/rs6000/mma.md (MAX_MMA_OPERANDS): New define_constant.
16241 (UNSPEC_MMA_ASSEMBLE_ACC, UNSPEC_MMA_PMXVBF16GER2,
16242 UNSPEC_MMA_PMXVBF16GER2NN, UNSPEC_MMA_PMXVBF16GER2NP,
16243 UNSPEC_MMA_PMXVBF16GER2PN, UNSPEC_MMA_PMXVBF16GER2PP,
16244 UNSPEC_MMA_PMXVF16GER2, UNSPEC_MMA_PMXVF16GER2NN,
16245 UNSPEC_MMA_PMXVF16GER2NP, UNSPEC_MMA_PMXVF16GER2PN,
16246 UNSPEC_MMA_PMXVF16GER2PP, UNSPEC_MMA_PMXVF32GER,
16247 UNSPEC_MMA_PMXVF32GERNN, UNSPEC_MMA_PMXVF32GERNP,
16248 UNSPEC_MMA_PMXVF32GERPN, UNSPEC_MMA_PMXVF32GERPP,
16249 UNSPEC_MMA_PMXVF64GER, UNSPEC_MMA_PMXVF64GERNN,
16250 UNSPEC_MMA_PMXVF64GERNP, UNSPEC_MMA_PMXVF64GERPN,
16251 UNSPEC_MMA_PMXVF64GERPP, UNSPEC_MMA_PMXVI16GER2,
16252 UNSPEC_MMA_PMXVI16GER2PP, UNSPEC_MMA_PMXVI16GER2S,
16253 UNSPEC_MMA_PMXVI16GER2SPP, UNSPEC_MMA_PMXVI4GER8,
16254 UNSPEC_MMA_PMXVI4GER8PP, UNSPEC_MMA_PMXVI8GER4,
16255 UNSPEC_MMA_PMXVI8GER4PP, UNSPEC_MMA_PMXVI8GER4SPP,
16256 UNSPEC_MMA_XVBF16GER2, UNSPEC_MMA_XVBF16GER2NN,
16257 UNSPEC_MMA_XVBF16GER2NP, UNSPEC_MMA_XVBF16GER2PN,
16258 UNSPEC_MMA_XVBF16GER2PP, UNSPEC_MMA_XVF16GER2, UNSPEC_MMA_XVF16GER2NN,
16259 UNSPEC_MMA_XVF16GER2NP, UNSPEC_MMA_XVF16GER2PN, UNSPEC_MMA_XVF16GER2PP,
16260 UNSPEC_MMA_XVF32GER, UNSPEC_MMA_XVF32GERNN, UNSPEC_MMA_XVF32GERNP,
16261 UNSPEC_MMA_XVF32GERPN, UNSPEC_MMA_XVF32GERPP, UNSPEC_MMA_XVF64GER,
16262 UNSPEC_MMA_XVF64GERNN, UNSPEC_MMA_XVF64GERNP, UNSPEC_MMA_XVF64GERPN,
16263 UNSPEC_MMA_XVF64GERPP, UNSPEC_MMA_XVI16GER2, UNSPEC_MMA_XVI16GER2PP,
16264 UNSPEC_MMA_XVI16GER2S, UNSPEC_MMA_XVI16GER2SPP, UNSPEC_MMA_XVI4GER8,
16265 UNSPEC_MMA_XVI4GER8PP, UNSPEC_MMA_XVI8GER4, UNSPEC_MMA_XVI8GER4PP,
16266 UNSPEC_MMA_XVI8GER4SPP, UNSPEC_MMA_XXMFACC, UNSPEC_MMA_XXMTACC): New.
16267 (MMA_ACC, MMA_VV, MMA_AVV, MMA_PV, MMA_APV, MMA_VVI4I4I8,
16268 MMA_AVVI4I4I8, MMA_VVI4I4I2, MMA_AVVI4I4I2, MMA_VVI4I4,
16269 MMA_AVVI4I4, MMA_PVI4I2, MMA_APVI4I2, MMA_VVI4I4I4,
16270 MMA_AVVI4I4I4): New define_int_iterator.
16271 (acc, vv, avv, pv, apv, vvi4i4i8, avvi4i4i8, vvi4i4i2,
16272 avvi4i4i2, vvi4i4, avvi4i4, pvi4i2, apvi4i2, vvi4i4i4,
16273 avvi4i4i4): New define_int_attr.
16274 (*movpxi): Add zero constant alternative.
16275 (mma_assemble_pair, mma_assemble_acc): New define_expand.
16276 (*mma_assemble_acc): New define_insn_and_split.
16277 (mma_<acc>, mma_xxsetaccz, mma_<vv>, mma_<avv>, mma_<pv>, mma_<apv>,
16278 mma_<vvi4i4i8>, mma_<avvi4i4i8>, mma_<vvi4i4i2>, mma_<avvi4i4i2>,
16279 mma_<vvi4i4>, mma_<avvi4i4>, mma_<pvi4i2>, mma_<apvi4i2>,
16280 mma_<vvi4i4i4>, mma_<avvi4i4i4>): New define_insn.
16281 * config/rs6000/rs6000.md (define_attr "type"): New type mma.
16282 * config/rs6000/vsx.md (UNSPEC_VSX_XVCVBF16SP): New.
16283 (UNSPEC_VSX_XVCVSPBF16): Likewise.
16284 (XVCVBF16): New define_int_iterator.
16285 (xvcvbf16): New define_int_attr.
16286 (vsx_<xvcvbf16>): New define_insn.
16287 * doc/extend.texi: Document the mma built-ins.
16288
16289 2020-06-21 Peter Bergner <bergner@linux.ibm.com>
16290 Michael Meissner <meissner@linux.ibm.com>
16291
16292 * config/rs6000/mma.md: New file.
16293 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
16294 __MMA__ for mma.
16295 * config/rs6000/rs6000-call.c (rs6000_init_builtins): Add support
16296 for __vector_pair and __vector_quad types.
16297 * config/rs6000/rs6000-cpus.def (OTHER_FUTURE_MASKS): Add
16298 OPTION_MASK_MMA.
16299 (POWERPC_MASKS): Likewise.
16300 * config/rs6000/rs6000-modes.def (OI, XI): New integer modes.
16301 (POI, PXI): New partial integer modes.
16302 * config/rs6000/rs6000.c (TARGET_INVALID_CONVERSION): Define.
16303 (rs6000_hard_regno_nregs_internal): Use VECTOR_ALIGNMENT_P.
16304 (rs6000_hard_regno_mode_ok_uncached): Likewise.
16305 Add support for POImode being allowed in VSX registers and PXImode
16306 being allowed in FP registers.
16307 (rs6000_modes_tieable_p): Adjust comment.
16308 Add support for POImode and PXImode.
16309 (rs6000_debug_reg_global) <print_tieable_modes>: Add OImode, POImode
16310 XImode, PXImode, V2SImode, V2SFmode and CCFPmode..
16311 (rs6000_setup_reg_addr_masks): Use VECTOR_ALIGNMENT_P.
16312 Set up appropriate addr_masks for vector pair and vector quad addresses.
16313 (rs6000_init_hard_regno_mode_ok): Add support for vector pair and
16314 vector quad registers. Setup reload handlers for POImode and PXImode.
16315 (rs6000_builtin_mask_calculate): Add support for RS6000_BTM_MMA.
16316 (rs6000_option_override_internal): Error if -mmma is specified
16317 without -mcpu=future.
16318 (rs6000_slow_unaligned_access): Use VECTOR_ALIGNMENT_P.
16319 (quad_address_p): Change size test to less than 16 bytes.
16320 (reg_offset_addressing_ok_p): Add support for ISA 3.1 vector pair
16321 and vector quad instructions.
16322 (avoiding_indexed_address_p): Likewise.
16323 (rs6000_emit_move): Disallow POImode and PXImode moves involving
16324 constants.
16325 (rs6000_preferred_reload_class): Prefer VSX registers for POImode
16326 and FP registers for PXImode.
16327 (rs6000_split_multireg_move): Support splitting POImode and PXImode
16328 move instructions.
16329 (rs6000_mangle_type): Adjust comment. Add support for mangling
16330 __vector_pair and __vector_quad types.
16331 (rs6000_opt_masks): Add entry for mma.
16332 (rs6000_builtin_mask_names): Add RS6000_BTM_MMA and RS6000_BTM_FUTURE.
16333 (rs6000_function_value): Use VECTOR_ALIGNMENT_P.
16334 (address_to_insn_form): Likewise.
16335 (reg_to_non_prefixed): Likewise.
16336 (rs6000_invalid_conversion): New function.
16337 * config/rs6000/rs6000.h (MASK_MMA): Define.
16338 (BIGGEST_ALIGNMENT): Set to 512 if MMA support is enabled.
16339 (VECTOR_ALIGNMENT_P): New helper macro.
16340 (ALTIVEC_VECTOR_MODE): Use VECTOR_ALIGNMENT_P.
16341 (RS6000_BTM_MMA): Define.
16342 (RS6000_BTM_COMMON): Add RS6000_BTM_MMA and RS6000_BTM_FUTURE.
16343 (rs6000_builtin_type_index): Add RS6000_BTI_vector_pair and
16344 RS6000_BTI_vector_quad.
16345 (vector_pair_type_node): New.
16346 (vector_quad_type_node): New.
16347 * config/rs6000/rs6000.md: Include mma.md.
16348 (define_mode_iterator RELOAD): Add POI and PXI.
16349 * config/rs6000/t-rs6000 (MD_INCLUDES): Add mma.md.
16350 * config/rs6000/rs6000.opt (-mmma): New.
16351 * doc/invoke.texi: Document -mmma.
16352
16353 2020-06-20 Bin Cheng <bin.cheng@linux.alibaba.com>
16354
16355 PR tree-optimization/95638
16356 * tree-loop-distribution.c (pg_edge_callback_data): New field.
16357 (loop_distribution::break_alias_scc_partitions): Record and restore
16358 postorder information. Fix memory leak.
16359
16360 2020-06-19 Tobias Burnus <tobias@codesourcery.com>
16361
16362 * config/gcn/gcn.c (gcn_related_vector_mode): Add ARG_UNUSED.
16363 (output_file_start): Use const 'char *'.
16364
16365 2020-06-19 Przemyslaw Wirkus <Przemyslaw.Wirkus@arm.com>
16366
16367 PR tree-optimization/94880
16368 * match.pd (A | B) - B -> (A & ~B): New simplification.
16369
16370 2020-06-19 Richard Biener <rguenther@suse.de>
16371
16372 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Adjust
16373 for lane permutations.
16374
16375 2020-06-19 Richard Biener <rguenther@suse.de>
16376
16377 PR tree-optimization/95761
16378 * tree-vect-slp.c (vect_schedule_slp_instance): Walk all
16379 vectorized stmts for finding the last one.
16380
16381 2020-06-18 Felix Yang <felix.yang@huawei.com>
16382
16383 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Call
16384 vect_relevant_for_alignment_p to filter out data references in
16385 the loop whose alignment is irrelevant when trying loop peeling
16386 to force alignment.
16387
16388 2020-06-18 Uroš Bizjak <ubizjak@gmail.com>
16389
16390 * config/i386/i386.md (*cmpqi_ext<mode>_1): Use SWI248 mode
16391 iterator instead of SImode for ZERO_EXTRACT RTX. Use SWI248
16392 mode iterator for the first operand of ZERO_EXTRACT RTX.
16393 Change ext_register_operand predicate to register_operand.
16394 Rename from *cmpqi_ext_1.
16395 (*cmpqi_ext<mode>_2): Ditto. Rename from *cmpqi_ext_2.
16396 (*cmpqi_ext<mode>_3): Ditto. Rename from *cmpqi_ext_3.
16397 (*cmpqi_ext<mode>_4): Ditto. Rename from *cmpqi_ext_4.
16398 (cmpi_ext_3): Use HImode instead of SImode for ZERO_EXTRACT RTX.
16399 (*extv<mode>): Use SWI24 mode iterator for the first operand
16400 of ZERO_EXTRACT RTX. Change ext_register_operand predicate
16401 to register_operand.
16402 (*extzv<mode>): Use SWI248 mode iterator for the first operand
16403 of ZERO_EXTRACT RTX. Change ext_register_operand predicate
16404 to register_operand.
16405 (*extzvqi): Use SWI248 mode iterator instead of SImode for
16406 ZERO_EXTRACT RTX. Use SWI248 mode iterator for the first operand
16407 of ZERO_EXTRACT RTX. Change ext_register_operand predicate to
16408 register_operand.
16409 (*extzvqi_mem_rex64 and corresponding peephole2): Use SWI248 mode
16410 iterator instead of SImode for ZERO_EXTRACT RTX. Use SWI248
16411 mode iterator for the first operand of ZERO_EXTRACT RTX.
16412 Change ext_register_operand predicate to register_operand.
16413 (@insv<mode>_1): Use SWI248 mode iterator for the first operand
16414 of ZERO_EXTRACT RTX. Change ext_register_operand predicate to
16415 register_operand.
16416 (*insvqi_1): Use SWI248 mode iterator instead of SImode
16417 for ZERO_EXTRACT RTX. Use SWI248 mode iterator for the
16418 first operand of ZERO_EXTRACT RTX. Change ext_register_operand
16419 predicate to register_operand.
16420 (*insvqi_2): Ditto.
16421 (*insvqi_3): Ditto.
16422 (*insvqi_1_mem_rex64 and corresponding peephole2): Use SWI248 mode
16423 iterator instead of SImode for ZERO_EXTRACT RTX. Use SWI248
16424 mode iterator for the first operand of ZERO_EXTRACT RTX.
16425 Change ext_register_operand predicate to register_operand.
16426 (addqi_ext_1): New expander.
16427 (*addqi_ext<mode>_1): Use SWI248 mode iterator instead of SImode
16428 for ZERO_EXTRACT RTX. Use SWI248 mode iterator for the first
16429 operand of ZERO_EXTRACT RTX. Change ext_register_operand predicate
16430 to register_operand. Rename from *addqi_ext_1.
16431 (*addqi_ext<mode>_2): Ditto. Rename from *addqi_ext_2.
16432 (divmodqi4): Use HImode instead of SImode for ZERO_EXTRACT RTX.
16433 (udivmodqi4): Ditto.
16434 (testqi_ext_1): Use HImode instead of SImode for ZERO_EXTRACT RTX.
16435 (*testqi_ext<mode>_1): Use SWI248 mode iterator instead of SImode
16436 for ZERO_EXTRACT RTX. Use SWI248 mode iterator for the first
16437 operand of ZERO_EXTRACT RTX. Change ext_register_operand predicate
16438 to register_operand. Rename from *testqi_ext_1.
16439 (*testqi_ext<mode>_2): Ditto. Rename from *testqi_ext_2.
16440 (andqi_ext_1): New expander.
16441 (*andqi_ext<mode>_1): Use SWI248 mode iterator instead of SImode
16442 for ZERO_EXTRACT RTX. Use SWI248 mode iterator for the first
16443 operand of ZERO_EXTRACT RTX. Change ext_register_operand predicate
16444 to register_operand. Rename from andqi_ext_1.
16445 (*andqi_ext<mode>_1_cc): Ditto. Rename from *andqi_ext_1_cc.
16446 (*andqi_ext<mode>_2): Ditto. Rename from *andqi_ext_2.
16447 (*<code>qi_ext<mode>_1): Ditto. Rename from *<code>qi_ext_1.
16448 (*<code>qi_ext<mode>_2): Ditto. Rename from *<code>qi_ext_2.
16449 (xorqi_ext_1_cc): Use HImode instead of SImode for ZERO_EXTRACT RTX.
16450 (*xorqi_ext<mode>_1_cc): Use SWI248 mode iterator instead of SImode
16451 for ZERO_EXTRACT RTX. Use SWI248 mode iterator for the first
16452 operand of ZERO_EXTRACT RTX. Change ext_register_operand predicate
16453 to register_operand. Rename from *xorqi_ext_1_cc.
16454 * config/i386/i386-expand.c (ix86_split_idivmod): Emit ZERO_EXTRACT
16455 in mode, matching its first operand.
16456 (promote_duplicated_reg): Update for renamed insv<mode>_1.
16457 * config/i386/predicates.md (ext_register_operand): Remove predicate.
16458
16459 2020-06-18 Martin Sebor <msebor@redhat.com>
16460
16461 PR middle-end/95667
16462 PR middle-end/92814
16463 * builtins.c (compute_objsize): Remove call to
16464 compute_builtin_object_size and instead compute conservative sizes
16465 directly here.
16466
16467 2020-06-18 Martin Liska <mliska@suse.cz>
16468
16469 * coretypes.h (struct iterator_range): New type.
16470 * tree-vect-patterns.c (vect_determine_precisions): Use
16471 range-based iterator.
16472 (vect_pattern_recog): Likewise.
16473 * tree-vect-slp.c (_bb_vec_info): Likewise.
16474 (_bb_vec_info::~_bb_vec_info): Likewise.
16475 (vect_slp_check_for_constructors): Likewise.
16476 * tree-vectorizer.h:Add new iterators
16477 and functions that use it.
16478
16479 2020-06-18 Martin Liska <mliska@suse.cz>
16480
16481 * config/rs6000/rs6000-call.c (fold_build_vec_cmp):
16482 Since 502d63b6d6141597bb18fd23c87736a1b384cf8f, first argument
16483 of a VEC_COND_EXPR cannot be tcc_comparison and so that
16484 a SSA_NAME needs to be created before we use it for the first
16485 argument of the VEC_COND_EXPR.
16486 (fold_compare_helper): Pass gsi to fold_build_vec_cmp.
16487
16488 2020-06-18 Richard Biener <rguenther@suse.de>
16489
16490 PR middle-end/95739
16491 * internal-fn.c (expand_vect_cond_optab_fn): Move the result
16492 to the target if necessary.
16493 (expand_vect_cond_mask_optab_fn): Likewise.
16494
16495 2020-06-18 Martin Liska <mliska@suse.cz>
16496
16497 * tree-ssa-reassoc.c (ovce_extract_ops): Replace *vcond with
16498 vcond as we check for NULL pointer.
16499
16500 2020-06-18 Tobias Burnus <tobias@codesourcery.com>
16501
16502 * gimple-pretty-print.c (dump_binary_rhs): Use braces to
16503 silence empty-body warning with gcc_fallthrough.
16504
16505 2020-06-18 Jakub Jelinek <jakub@redhat.com>
16506
16507 PR tree-optimization/95699
16508 * tree-ssa-phiopt.c (minmax_replacement): Treat (signed int)x < 0
16509 as x > INT_MAX and (signed int)x >= 0 as x <= INT_MAX. Move variable
16510 declarations to the statements that set them where possible.
16511
16512 2020-06-18 Jakub Jelinek <jakub@redhat.com>
16513
16514 PR target/95713
16515 * tree-ssa-forwprop.c (simplify_vector_constructor): Don't allow
16516 scalar mode halfvectype other than vector boolean for
16517 VEC_PACK_TRUNC_EXPR.
16518
16519 2020-06-18 Richard Biener <rguenther@suse.de>
16520
16521 * varasm.c (assemble_variable): Make sure to not
16522 defer output when outputting addressed constants.
16523 (output_constant_def_contents): Likewise.
16524 (add_constant_to_table): Take and pass on whether to
16525 defer output.
16526 (output_addressed_constants): Likewise.
16527 (output_constant_def): Pass on whether to defer output
16528 to add_constant_to_table.
16529 (tree_output_constant_def): Defer output of constants.
16530
16531 2020-06-18 Richard Biener <rguenther@suse.de>
16532
16533 * tree-vectorizer.h (_slp_tree::two_operators): Remove.
16534 (_slp_tree::lane_permutation): New member.
16535 (_slp_tree::code): Likewise.
16536 (SLP_TREE_TWO_OPERATORS): Remove.
16537 (SLP_TREE_LANE_PERMUTATION): New.
16538 (SLP_TREE_CODE): Likewise.
16539 (vect_stmt_dominates_stmt_p): Declare.
16540 * tree-vectorizer.c (vect_stmt_dominates_stmt_p): New function.
16541 * tree-vect-stmts.c (vect_model_simple_cost): Remove
16542 SLP_TREE_TWO_OPERATORS handling.
16543 * tree-vect-slp.c (_slp_tree::_slp_tree): Amend.
16544 (_slp_tree::~_slp_tree): Likewise.
16545 (vect_two_operations_perm_ok_p): Remove.
16546 (vect_build_slp_tree_1): Remove verification of two-operator
16547 permutation here.
16548 (vect_build_slp_tree_2): When we have two different operators
16549 build two computation SLP nodes and a blend.
16550 (vect_print_slp_tree): Print the lane permutation if it exists.
16551 (slp_copy_subtree): Copy it.
16552 (vect_slp_rearrange_stmts): Re-arrange it.
16553 (vect_slp_analyze_node_operations_1): Handle SLP_TREE_CODE
16554 VEC_PERM_EXPR explicitely.
16555 (vect_schedule_slp_instance): Likewise. Remove old
16556 SLP_TREE_TWO_OPERATORS code.
16557 (vectorizable_slp_permutation): New function.
16558
16559 2020-06-18 Martin Liska <mliska@suse.cz>
16560
16561 * tree-vect-generic.c (expand_vector_condition): Check
16562 for gassign before inspecting RHS.
16563
16564 2020-06-17 Thomas Schwinge <thomas@codesourcery.com>
16565
16566 * gimplify.c (omp_notice_threadprivate_variable)
16567 (omp_default_clause, omp_notice_variable): 'inform' after 'error'
16568 diagnostic. Adjust all users.
16569
16570 2020-06-17 Thomas Schwinge <thomas@codesourcery.com>
16571
16572 * hsa-gen.c (gen_hsa_insns_for_call): Move 'function_decl ==
16573 NULL_TREE' check earlier.
16574
16575 2020-06-17 Forrest Timour <forrest.timour@gmail.com>
16576
16577 * doc/extend.texi (attribute access): Fix a typo.
16578
16579 2020-06-17 Bin Cheng <bin.cheng@linux.alibaba.com>
16580 Kaipeng Zhou <zhoukaipeng3@huawei.com>
16581
16582 PR tree-optimization/95199
16583 * tree-vect-stmts.c: Eliminate common stmts for bump and offset in
16584 strided load/store operations and remove redundant code.
16585
16586 2020-06-17 Richard Sandiford <richard.sandiford@arm.com>
16587
16588 * coretypes.h (first_type): New alias template.
16589 * recog.h (insn_gen_fn::operator()): Use it instead of a decltype.
16590 Remove spurious “...” and split the function type out into a typedef.
16591
16592 2020-06-17 Andreas Krebbel <krebbel@linux.ibm.com>
16593
16594 * config/s390/s390.c (s390_fix_long_loop_prediction): Exit early
16595 for PARALLELs.
16596
16597 2020-06-17 Richard Biener <rguenther@suse.de>
16598
16599 * tree-vect-slp.c (vect_build_slp_tree_1): Set the passed
16600 in *vectype parameter.
16601 (vect_build_slp_tree_2): Set SLP_TREE_VECTYPE from what
16602 vect_build_slp_tree_1 computed.
16603 (vect_analyze_slp_instance): Set SLP_TREE_VECTYPE.
16604 (vect_slp_analyze_node_operations_1): Use the SLP node vector type.
16605 (vect_schedule_slp_instance): Likewise.
16606 * tree-vect-stmts.c (vect_is_simple_use): Take the vector type
16607 from SLP_TREE_VECTYPE.
16608
16609 2020-06-17 Richard Biener <rguenther@suse.de>
16610
16611 PR tree-optimization/95717
16612 * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg):
16613 Move BB SSA updating before exit/latch PHI current def copying.
16614
16615 2020-06-17 Martin Liska <mliska@suse.cz>
16616
16617 * Makefile.in: Add new file.
16618 * expr.c (expand_expr_real_2): Add gcc_unreachable as we should
16619 not meet this condition.
16620 (do_store_flag): Likewise.
16621 * gimplify.c (gimplify_expr): Gimplify first argument of
16622 VEC_COND_EXPR to be a SSA name.
16623 * internal-fn.c (vec_cond_mask_direct): New.
16624 (vec_cond_direct): Likewise.
16625 (vec_condu_direct): Likewise.
16626 (vec_condeq_direct): Likewise.
16627 (expand_vect_cond_optab_fn): New.
16628 (expand_vec_cond_optab_fn): Likewise.
16629 (expand_vec_condu_optab_fn): Likewise.
16630 (expand_vec_condeq_optab_fn): Likewise.
16631 (expand_vect_cond_mask_optab_fn): Likewise.
16632 (expand_vec_cond_mask_optab_fn): Likewise.
16633 (direct_vec_cond_mask_optab_supported_p): Likewise.
16634 (direct_vec_cond_optab_supported_p): Likewise.
16635 (direct_vec_condu_optab_supported_p): Likewise.
16636 (direct_vec_condeq_optab_supported_p): Likewise.
16637 * internal-fn.def (VCOND): New OPTAB.
16638 (VCONDU): Likewise.
16639 (VCONDEQ): Likewise.
16640 (VCOND_MASK): Likewise.
16641 * optabs.c (get_rtx_code): Make it global.
16642 (expand_vec_cond_mask_expr): Removed.
16643 (expand_vec_cond_expr): Removed.
16644 * optabs.h (expand_vec_cond_expr): Likewise.
16645 (vector_compare_rtx): Make it global.
16646 * passes.def: Add new pass_gimple_isel pass.
16647 * tree-cfg.c (verify_gimple_assign_ternary): Add check
16648 for VEC_COND_EXPR about first argument.
16649 * tree-pass.h (make_pass_gimple_isel): New.
16650 * tree-ssa-forwprop.c (pass_forwprop::execute): Prevent
16651 propagation of the first argument of a VEC_COND_EXPR.
16652 * tree-ssa-reassoc.c (ovce_extract_ops): Support SSA_NAME as
16653 first argument of a VEC_COND_EXPR.
16654 (optimize_vec_cond_expr): Likewise.
16655 * tree-vect-generic.c (expand_vector_divmod): Make SSA_NAME
16656 for a first argument of created VEC_COND_EXPR.
16657 (expand_vector_condition): Fix coding style.
16658 * tree-vect-stmts.c (vectorizable_condition): Gimplify
16659 first argument.
16660 * gimple-isel.cc: New file.
16661
16662 2020-06-17 Andrew Stubbs <ams@codesourcery.com>
16663
16664 * config/gcn/gcn-hsa.h (TEXT_SECTION_ASM_OP): Use ".text".
16665 (BSS_SECTION_ASM_OP): Use ".bss".
16666 (ASM_SPEC): Remove "-mattr=-code-object-v3".
16667 (LINK_SPEC): Add "--export-dynamic".
16668 * config/gcn/gcn-opts.h (processor_type): Replace PROCESSOR_VEGA with
16669 PROCESSOR_VEGA10 and PROCESSOR_VEGA20.
16670 * config/gcn/gcn-run.c (HSA_RUNTIME_LIB): Use ".so.1" variant.
16671 (load_image): Remove obsolete relocation handling.
16672 Add ".kd" suffix to the symbol names.
16673 * config/gcn/gcn.c (MAX_NORMAL_SGPR_COUNT): Set to 62.
16674 (gcn_option_override): Update gcn_isa test.
16675 (gcn_kernel_arg_types): Update all the assembler directives.
16676 Remove the obsolete options.
16677 (gcn_conditional_register_usage): Update MAX_NORMAL_SGPR_COUNT usage.
16678 (gcn_omp_device_kind_arch_isa): Handle PROCESSOR_VEGA10 and
16679 PROCESSOR_VEGA20.
16680 (output_file_start): Rework assembler file header.
16681 (gcn_hsa_declare_function_name): Rework kernel metadata.
16682 * config/gcn/gcn.h (GCN_KERNEL_ARG_TYPES): Set to 16.
16683 * config/gcn/gcn.opt (PROCESSOR_VEGA): Remove enum.
16684 (PROCESSOR_VEGA10): New enum value.
16685 (PROCESSOR_VEGA20): New enum value.
16686
16687 2020-06-17 Martin Liska <mliska@suse.cz>
16688
16689 * gcov-dump.c (print_version): Collapse lisence header to 2 lines
16690 in --version.
16691 * gcov-tool.c (print_version): Likewise.
16692 * gcov.c (print_version): Likewise.
16693
16694 2020-06-17 liuhongt <hongtao.liu@intel.com>
16695
16696 PR target/95524
16697 * config/i386/i386-expand.c
16698 (ix86_expand_vec_shift_qihi_constant): New function.
16699 * config/i386/i386-protos.h
16700 (ix86_expand_vec_shift_qihi_constant): Declare.
16701 * config/i386/sse.md (<shift_insn><mode>3): Optimize shift
16702 V*QImode by constant.
16703
16704 2020-06-16 Aldy Hernandez <aldyh@redhat.com>
16705
16706 PR tree-optimization/95649
16707 * tree-ssa-propagate.c (propagate_into_phi_args): Do not propagate unless
16708 value is a constant.
16709
16710 2020-06-16 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
16711
16712 * config.in: Regenerate.
16713 * config/s390/s390.c (print_operand): Emit vector alignment hints
16714 for target z13, if AS accepts them. For other targets the logic
16715 stays the same.
16716 * config/s390/s390.h (TARGET_VECTOR_LOADSTORE_ALIGNMENT_HINTS): Define
16717 macro.
16718 * configure: Regenerate.
16719 * configure.ac: Check HAVE_AS_VECTOR_LOADSTORE_ALIGNMENT_HINTS_ON_Z13.
16720
16721 2020-06-16 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
16722
16723 * config/arm/arm_mve.h (__arm_vaddq_m_n_s8): Correct the intrinsic
16724 arguments.
16725 (__arm_vaddq_m_n_s32): Likewise.
16726 (__arm_vaddq_m_n_s16): Likewise.
16727 (__arm_vaddq_m_n_u8): Likewise.
16728 (__arm_vaddq_m_n_u32): Likewise.
16729 (__arm_vaddq_m_n_u16): Likewise.
16730 (__arm_vaddq_m): Modify polymorphic variant.
16731
16732 2020-06-16 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
16733
16734 * config/arm/mve.md (mve_uqrshll_sat<supf>_di): Correct the predicate
16735 and constraint of all the operands.
16736 (mve_sqrshrl_sat<supf>_di): Likewise.
16737 (mve_uqrshl_si): Likewise.
16738 (mve_sqrshr_si): Likewise.
16739 (mve_uqshll_di): Likewise.
16740 (mve_urshrl_di): Likewise.
16741 (mve_uqshl_si): Likewise.
16742 (mve_urshr_si): Likewise.
16743 (mve_sqshl_si): Likewise.
16744 (mve_srshr_si): Likewise.
16745 (mve_srshrl_di): Likewise.
16746 (mve_sqshll_di): Likewise.
16747 * config/arm/predicates.md (arm_low_register_operand): Define.
16748
16749 2020-06-16 Jakub Jelinek <jakub@redhat.com>
16750
16751 * tree.h (OMP_FOR_NON_RECTANGULAR): Define.
16752 * gimplify.c (gimplify_omp_for): Diagnose schedule, ordered
16753 or dist_schedule clause on non-rectangular loops. Handle
16754 gimplification of non-rectangular lb/b expressions. When changing
16755 iteration variable, adjust also non-rectangular lb/b expressions
16756 referencing that.
16757 * omp-general.h (struct omp_for_data_loop): Add m1, m2 and outer
16758 members.
16759 (struct omp_for_data): Add non_rect member.
16760 * omp-general.c (omp_extract_for_data): Handle non-rectangular
16761 loops. Fill in non_rect, m1, m2 and outer.
16762 * omp-low.c (lower_omp_for): Handle non-rectangular lb/b expressions.
16763 * omp-expand.c (expand_omp_for): Emit sorry_at for unsupported
16764 non-rectangular loop cases and assert for cases that can't be
16765 non-rectangular.
16766 * tree-pretty-print.c (dump_mem_ref): Formatting fix.
16767 (dump_omp_loop_non_rect_expr): New function.
16768 (dump_generic_node): Handle non-rectangular OpenMP loops.
16769 * tree-pretty-print.h (dump_omp_loop_non_rect_expr): Declare.
16770 * gimple-pretty-print.c (dump_gimple_omp_for): Handle non-rectangular
16771 OpenMP loops.
16772
16773 2020-06-16 Richard Biener <rguenther@suse.de>
16774
16775 PR middle-end/95690
16776 * varasm.c (build_constant_desc): Remove set_mem_attributes call.
16777
16778 2020-06-16 Kito Cheng <kito.cheng@sifive.com>
16779
16780 PR target/95683
16781 * config/riscv/riscv.c (riscv_gpr_save_operation_p): Remove
16782 assertion and turn it into a early exit check.
16783
16784 2020-06-15 Eric Botcazou <ebotcazou@adacore.com>
16785
16786 * gimplify.c (gimplify_init_constructor) <AGGREGATE_TYPE>: Declare
16787 new ENSURE_SINGLE_ACCESS constant and move variables down. If it is
16788 true and all elements are zero, then always clear. Return GS_ERROR
16789 if a temporary would be created for it and NOTIFY_TEMP_CREATION set.
16790 (gimplify_modify_expr_rhs) <VAR_DECL>: If the target is volatile but
16791 the type is aggregate non-addressable, ask gimplify_init_constructor
16792 whether it can generate a single access to the target.
16793
16794 2020-06-15 Eric Botcazou <ebotcazou@adacore.com>
16795
16796 * tree-sra.c (propagate_subaccesses_from_rhs): When a non-scalar
16797 access on the LHS is replaced with a scalar access, propagate the
16798 TYPE_REVERSE_STORAGE_ORDER flag of the type of the original access.
16799
16800 2020-06-15 Max Filippov <jcmvbkbc@gmail.com>
16801
16802 * config/xtensa/xtensa.c (TARGET_HAVE_TLS): Remove
16803 TARGET_THREADPTR reference.
16804 (xtensa_tls_symbol_p, xtensa_tls_referenced_p): Use
16805 targetm.have_tls instead of TARGET_HAVE_TLS.
16806 (xtensa_option_override): Set targetm.have_tls to false in
16807 configurations without THREADPTR.
16808
16809 2020-06-15 Max Filippov <jcmvbkbc@gmail.com>
16810
16811 * config/xtensa/elf.h (ASM_SPEC, LINK_SPEC): Pass ABI switch to
16812 assembler/linker.
16813 * config/xtensa/linux.h (ASM_SPEC, LINK_SPEC): Ditto.
16814 * config/xtensa/uclinux.h (ASM_SPEC, LINK_SPEC): Ditto.
16815 * config/xtensa/xtensa.c (xtensa_option_override): Initialize
16816 xtensa_windowed_abi if needed.
16817 * config/xtensa/xtensa.h (TARGET_WINDOWED_ABI_DEFAULT): New
16818 macro.
16819 (TARGET_WINDOWED_ABI): Redefine to xtensa_windowed_abi.
16820 * config/xtensa/xtensa.opt (xtensa_windowed_abi): New target
16821 option variable.
16822 (mabi=call0, mabi=windowed): New options.
16823 * doc/invoke.texi: Document new -mabi= Xtensa-specific options.
16824
16825 2020-06-15 Max Filippov <jcmvbkbc@gmail.com>
16826
16827 * config/xtensa/xtensa.c (xtensa_can_eliminate): New function.
16828 (TARGET_CAN_ELIMINATE): New macro.
16829 * config/xtensa/xtensa.h
16830 (XTENSA_WINDOWED_HARD_FRAME_POINTER_REGNUM)
16831 (XTENSA_CALL0_HARD_FRAME_POINTER_REGNUM): New macros.
16832 (HARD_FRAME_POINTER_REGNUM): Define using
16833 XTENSA_*_HARD_FRAME_POINTER_REGNUM.
16834 (ELIMINABLE_REGS): Replace lines with HARD_FRAME_POINTER_REGNUM
16835 by lines with XTENSA_WINDOWED_HARD_FRAME_POINTER_REGNUM and
16836 XTENSA_CALL0_HARD_FRAME_POINTER_REGNUM.
16837
16838 2020-06-15 Felix Yang <felix.yang@huawei.com>
16839
16840 * tree-vect-data-refs.c (vect_verify_datarefs_alignment): Rename
16841 parameter to loop_vinfo and update uses. Use LOOP_VINFO_DATAREFS
16842 when possible.
16843 (vect_analyze_data_refs_alignment): Likewise, and use LOOP_VINFO_DDRS
16844 when possible.
16845 * tree-vect-loop.c (vect_dissolve_slp_only_groups): Use
16846 LOOP_VINFO_DATAREFS when possible.
16847 (update_epilogue_loop_vinfo): Likewise.
16848
16849 2020-06-15 Kito Cheng <kito.cheng@sifive.com>
16850
16851 * config/riscv/riscv.c (riscv_gen_gpr_save_insn): Change type to
16852 unsigned for i.
16853 (riscv_gpr_save_operation_p): Change type to unsigned for i and
16854 len.
16855
16856 2020-06-15 Hongtao Liu <hongtao.liu@intel.com>
16857
16858 PR target/95488
16859 * config/i386/i386-expand.c (ix86_expand_vecmul_qihi): New
16860 function.
16861 * config/i386/i386-protos.h (ix86_expand_vecmul_qihi): Declare.
16862 * config/i386/sse.md (mul<mode>3): Drop mask_name since
16863 there's no real simd int8 multiplication instruction with
16864 mask. Also optimize it under TARGET_AVX512BW.
16865 (mulv8qi3): New expander.
16866
16867 2020-06-12 Marco Elver <elver@google.com>
16868
16869 * gimplify.c (gimplify_function_tree): Optimize and do not emit
16870 IFN_TSAN_FUNC_EXIT in a finally block if we do not need it.
16871 * params.opt: Add --param=tsan-instrument-func-entry-exit=.
16872 * tsan.c (instrument_memory_accesses): Make
16873 fentry_exit_instrument bool depend on new param.
16874
16875 2020-06-12 Felix Yang <felix.yang@huawei.com>
16876
16877 PR tree-optimization/95570
16878 * tree-vect-data-refs.c (vect_relevant_for_alignment_p): New function.
16879 (vect_verify_datarefs_alignment): Call it to filter out data references
16880 in the loop whose alignment is irrelevant.
16881 (vect_get_peeling_costs_all_drs): Likewise.
16882 (vect_peeling_supportable): Likewise.
16883 (vect_enhance_data_refs_alignment): Likewise.
16884
16885 2020-06-12 Richard Biener <rguenther@suse.de>
16886
16887 PR tree-optimization/95633
16888 * tree-vect-stmts.c (vectorizable_condition): Properly
16889 guard the vec_else_clause access with EXTRACT_LAST_REDUCTION.
16890
16891 2020-06-12 Martin Liška <mliska@suse.cz>
16892
16893 * cgraphunit.c (process_symver_attribute): Wrap weakref keyword.
16894 * dbgcnt.c (dbg_cnt_set_limit_by_index): Do not print extra new
16895 line.
16896 * lto-wrapper.c (merge_and_complain): Wrap option names.
16897
16898 2020-06-12 Kewen Lin <linkw@gcc.gnu.org>
16899
16900 * tree-vect-loop-manip.c (vect_set_loop_controls_directly): Rename
16901 LOOP_VINFO_MASK_COMPARE_TYPE to LOOP_VINFO_RGROUP_COMPARE_TYPE. Rename
16902 LOOP_VINFO_MASK_IV_TYPE to LOOP_VINFO_RGROUP_IV_TYPE.
16903 (vect_set_loop_condition_masked): Renamed to ...
16904 (vect_set_loop_condition_partial_vectors): ... this. Rename
16905 LOOP_VINFO_MASK_COMPARE_TYPE to LOOP_VINFO_RGROUP_COMPARE_TYPE. Rename
16906 vect_iv_limit_for_full_masking to vect_iv_limit_for_partial_vectors.
16907 (vect_set_loop_condition_unmasked): Renamed to ...
16908 (vect_set_loop_condition_normal): ... this.
16909 (vect_set_loop_condition): Rename vect_set_loop_condition_unmasked to
16910 vect_set_loop_condition_normal. Rename vect_set_loop_condition_masked
16911 to vect_set_loop_condition_partial_vectors.
16912 (vect_prepare_for_masked_peels): Rename LOOP_VINFO_MASK_COMPARE_TYPE
16913 to LOOP_VINFO_RGROUP_COMPARE_TYPE.
16914 * tree-vect-loop.c (vect_known_niters_smaller_than_vf): New, factored
16915 out from ...
16916 (vect_analyze_loop_costing): ... this.
16917 (_loop_vec_info::_loop_vec_info): Rename mask_compare_type to
16918 compare_type.
16919 (vect_min_prec_for_max_niters): New, factored out from ...
16920 (vect_verify_full_masking): ... this. Rename
16921 vect_iv_limit_for_full_masking to vect_iv_limit_for_partial_vectors.
16922 Rename LOOP_VINFO_MASK_COMPARE_TYPE to LOOP_VINFO_RGROUP_COMPARE_TYPE.
16923 Rename LOOP_VINFO_MASK_IV_TYPE to LOOP_VINFO_RGROUP_IV_TYPE.
16924 (vectorizable_reduction): Update some dumpings with partial
16925 vectors instead of fully-masked.
16926 (vectorizable_live_operation): Likewise.
16927 (vect_iv_limit_for_full_masking): Renamed to ...
16928 (vect_iv_limit_for_partial_vectors): ... this.
16929 * tree-vect-stmts.c (check_load_store_masking): Renamed to ...
16930 (check_load_store_for_partial_vectors): ... this. Update some
16931 dumpings with partial vectors instead of fully-masked.
16932 (vectorizable_store): Rename check_load_store_masking to
16933 check_load_store_for_partial_vectors.
16934 (vectorizable_load): Likewise.
16935 * tree-vectorizer.h (LOOP_VINFO_MASK_COMPARE_TYPE): Renamed to ...
16936 (LOOP_VINFO_RGROUP_COMPARE_TYPE): ... this.
16937 (LOOP_VINFO_MASK_IV_TYPE): Renamed to ...
16938 (LOOP_VINFO_RGROUP_IV_TYPE): ... this.
16939 (vect_iv_limit_for_full_masking): Renamed to ...
16940 (vect_iv_limit_for_partial_vectors): this.
16941 (_loop_vec_info): Rename mask_compare_type to rgroup_compare_type.
16942 Rename iv_type to rgroup_iv_type.
16943
16944 2020-06-12 Richard Sandiford <richard.sandiford@arm.com>
16945
16946 * recog.h (insn_gen_fn::f0, insn_gen_fn::f1, insn_gen_fn::f2)
16947 (insn_gen_fn::f3, insn_gen_fn::f4, insn_gen_fn::f5, insn_gen_fn::f6)
16948 (insn_gen_fn::f7, insn_gen_fn::f8, insn_gen_fn::f9, insn_gen_fn::f10)
16949 (insn_gen_fn::f11, insn_gen_fn::f12, insn_gen_fn::f13)
16950 (insn_gen_fn::f14, insn_gen_fn::f15, insn_gen_fn::f16): Delete.
16951 (insn_gen_fn::operator()): Replace overloaded definitions with
16952 a parameter-pack version.
16953
16954 2020-06-12 H.J. Lu <hjl.tools@gmail.com>
16955
16956 PR target/93492
16957 * config/i386/i386-features.c (rest_of_insert_endbranch):
16958 Renamed to ...
16959 (rest_of_insert_endbr_and_patchable_area): Change return type
16960 to void. Add need_endbr and patchable_area_size arguments.
16961 Don't call timevar_push nor timevar_pop. Replace
16962 endbr_queued_at_entrance with insn_queued_at_entrance. Insert
16963 UNSPECV_PATCHABLE_AREA for patchable area.
16964 (pass_data_insert_endbranch): Renamed to ...
16965 (pass_data_insert_endbr_and_patchable_area): This. Change
16966 pass name to endbr_and_patchable_area.
16967 (pass_insert_endbranch): Renamed to ...
16968 (pass_insert_endbr_and_patchable_area): This. Add need_endbr
16969 and patchable_area_size;.
16970 (pass_insert_endbr_and_patchable_area::gate): Set and check
16971 need_endbr and patchable_area_size.
16972 (pass_insert_endbr_and_patchable_area::execute): Call
16973 timevar_push and timevar_pop. Pass need_endbr and
16974 patchable_area_size to rest_of_insert_endbr_and_patchable_area.
16975 (make_pass_insert_endbranch): Renamed to ...
16976 (make_pass_insert_endbr_and_patchable_area): This.
16977 * config/i386/i386-passes.def: Replace pass_insert_endbranch
16978 with pass_insert_endbr_and_patchable_area.
16979 * config/i386/i386-protos.h (ix86_output_patchable_area): New.
16980 (make_pass_insert_endbranch): Renamed to ...
16981 (make_pass_insert_endbr_and_patchable_area): This.
16982 * config/i386/i386.c (ix86_asm_output_function_label): Set
16983 function_label_emitted to true.
16984 (ix86_print_patchable_function_entry): New function.
16985 (ix86_output_patchable_area): Likewise.
16986 (x86_function_profiler): Replace endbr_queued_at_entrance with
16987 insn_queued_at_entrance. Generate ENDBR only for TYPE_ENDBR.
16988 Call ix86_output_patchable_area to generate patchable area if
16989 needed.
16990 (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY): New.
16991 * config/i386/i386.h (queued_insn_type): New.
16992 (machine_function): Add function_label_emitted. Replace
16993 endbr_queued_at_entrance with insn_queued_at_entrance.
16994 * config/i386/i386.md (UNSPECV_PATCHABLE_AREA): New.
16995 (patchable_area): New.
16996
16997 2020-06-11 Martin Liska <mliska@suse.cz>
16998
16999 * config/rs6000/rs6000.c (rs6000_density_test): Fix GNU coding
17000 style.
17001
17002 2020-06-11 Martin Liska <mliska@suse.cz>
17003
17004 PR target/95627
17005 * config/rs6000/rs6000.c (rs6000_density_test): Skip debug
17006 statements.
17007
17008 2020-06-11 Martin Liska <mliska@suse.cz>
17009 Jakub Jelinek <jakub@redhat.com>
17010
17011 PR sanitizer/95634
17012 * asan.c (asan_emit_stack_protection): Fix emission for ilp32
17013 by using Pmode instead of ptr_mode.
17014
17015 2020-06-11 Kewen Lin <linkw@gcc.gnu.org>
17016
17017 * tree-vect-loop-manip.c (vect_set_loop_mask): Renamed to ...
17018 (vect_set_loop_control): ... this.
17019 (vect_maybe_permute_loop_masks): Rename rgroup_masks related things.
17020 (vect_set_loop_masks_directly): Renamed to ...
17021 (vect_set_loop_controls_directly): ... this. Also rename some
17022 variables with ctrl instead of mask. Rename vect_set_loop_mask to
17023 vect_set_loop_control.
17024 (vect_set_loop_condition_masked): Rename rgroup_masks related things.
17025 Also rename some variables with ctrl instead of mask.
17026 * tree-vect-loop.c (release_vec_loop_masks): Renamed to ...
17027 (release_vec_loop_controls): ... this. Rename rgroup_masks related
17028 things.
17029 (_loop_vec_info::~_loop_vec_info): Rename release_vec_loop_masks to
17030 release_vec_loop_controls.
17031 (can_produce_all_loop_masks_p): Rename rgroup_masks related things.
17032 (vect_get_max_nscalars_per_iter): Likewise.
17033 (vect_estimate_min_profitable_iters): Likewise.
17034 (vect_record_loop_mask): Likewise.
17035 (vect_get_loop_mask): Likewise.
17036 * tree-vectorizer.h (struct rgroup_masks): Renamed to ...
17037 (struct rgroup_controls): ... this. Also rename mask_type
17038 to type and rename masks to controls.
17039
17040 2020-06-11 Kewen Lin <linkw@gcc.gnu.org>
17041
17042 * tree-vect-loop-manip.c (vect_set_loop_condition): Rename
17043 LOOP_VINFO_FULLY_MASKED_P to LOOP_VINFO_USING_PARTIAL_VECTORS_P.
17044 (vect_gen_vector_loop_niters): Likewise.
17045 (vect_do_peeling): Likewise.
17046 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Rename
17047 fully_masked_p to using_partial_vectors_p.
17048 (vect_analyze_loop_costing): Rename LOOP_VINFO_FULLY_MASKED_P to
17049 LOOP_VINFO_USING_PARTIAL_VECTORS_P.
17050 (determine_peel_for_niter): Likewise.
17051 (vect_estimate_min_profitable_iters): Likewise.
17052 (vect_transform_loop): Likewise.
17053 * tree-vectorizer.h (LOOP_VINFO_FULLY_MASKED_P): Updated.
17054 (LOOP_VINFO_USING_PARTIAL_VECTORS_P): New macro.
17055
17056 2020-06-11 Kewen Lin <linkw@gcc.gnu.org>
17057
17058 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Rename
17059 can_fully_mask_p to can_use_partial_vectors_p.
17060 (vect_analyze_loop_2): Rename LOOP_VINFO_CAN_FULLY_MASK_P to
17061 LOOP_VINFO_CAN_USE_PARTIAL_VECTORS_P. Rename saved_can_fully_mask_p
17062 to saved_can_use_partial_vectors_p.
17063 (vectorizable_reduction): Rename LOOP_VINFO_CAN_FULLY_MASK_P to
17064 LOOP_VINFO_CAN_USE_PARTIAL_VECTORS_P.
17065 (vectorizable_live_operation): Likewise.
17066 * tree-vect-stmts.c (permute_vec_elements): Likewise.
17067 (check_load_store_masking): Likewise.
17068 (vectorizable_operation): Likewise.
17069 (vectorizable_store): Likewise.
17070 (vectorizable_load): Likewise.
17071 (vectorizable_condition): Likewise.
17072 * tree-vectorizer.h (LOOP_VINFO_CAN_FULLY_MASK_P): Renamed to ...
17073 (LOOP_VINFO_CAN_USE_PARTIAL_VECTORS_P): ... this.
17074 (_loop_vec_info): Rename can_fully_mask_p to can_use_partial_vectors_p.
17075
17076 2020-06-11 Martin Liska <mliska@suse.cz>
17077
17078 * optc-save-gen.awk: Quote error string.
17079
17080 2020-06-11 Alexandre Oliva <oliva@adacore.com>
17081
17082 * print-rtl.c (print_mem_expr): Enable TDF_SLIM in dump_flags.
17083
17084 2020-06-11 Kito Cheng <kito.cheng@sifive.com>
17085
17086 * config/riscv/riscv-protos.h (riscv_output_gpr_save): Remove.
17087 * config/riscv/riscv-sr.c (riscv_sr_match_prologue): Update
17088 value.
17089 * config/riscv/riscv.c (riscv_output_gpr_save): Remove.
17090 * config/riscv/riscv.md (gpr_save): Update output asm pattern.
17091
17092 2020-06-11 Kito Cheng <kito.cheng@sifive.com>
17093
17094 * config/riscv/predicates.md (gpr_save_operation): New.
17095 * config/riscv/riscv-protos.h (riscv_gen_gpr_save_insn): New.
17096 (riscv_gpr_save_operation_p): Ditto.
17097 * config/riscv/riscv-sr.c (riscv_remove_unneeded_save_restore_calls):
17098 Ignore USEs for gpr_save patter.
17099 * config/riscv/riscv.c (gpr_save_reg_order): New.
17100 (riscv_expand_prologue): Use riscv_gen_gpr_save_insn to gen gpr_save.
17101 (riscv_gen_gpr_save_insn): New.
17102 (riscv_gpr_save_operation_p): Ditto.
17103 * config/riscv/riscv.md (S3_REGNUM): New.
17104 (S4_REGNUM): Ditto.
17105 (S5_REGNUM): Ditto.
17106 (S6_REGNUM): Ditto.
17107 (S7_REGNUM): Ditto.
17108 (S8_REGNUM): Ditto.
17109 (S9_REGNUM): Ditto.
17110 (S10_REGNUM): Ditto.
17111 (S11_REGNUM): Ditto.
17112 (gpr_save): Model USEs correctly.
17113
17114 2020-06-10 Martin Sebor <msebor@redhat.com>
17115
17116 PR middle-end/95353
17117 PR middle-end/92939
17118 * builtins.c (inform_access): New function.
17119 (check_access): Call it. Add argument.
17120 (addr_decl_size): Remove.
17121 (get_range): New function.
17122 (compute_objsize): New overload. Only use compute_builtin_object_size
17123 with raw memory function.
17124 (check_memop_access): Pass new argument to compute_objsize and
17125 check_access.
17126 (expand_builtin_memchr, expand_builtin_strcat): Same.
17127 (expand_builtin_strcpy, expand_builtin_stpcpy_1): Same.
17128 (expand_builtin_stpncpy, check_strncat_sizes): Same.
17129 (expand_builtin_strncat, expand_builtin_strncpy): Same.
17130 (expand_builtin_memcmp): Same.
17131 * builtins.h (check_nul_terminated_array): Declare extern.
17132 (check_access): Add argument.
17133 (struct access_ref, struct access_data): New structs.
17134 * gimple-ssa-warn-restrict.c (clamp_offset): New helper.
17135 (builtin_access::overlap): Call it.
17136 * tree-object-size.c (decl_init_size): Declare extern.
17137 (addr_object_size): Correct offset computation.
17138 * tree-object-size.h (decl_init_size): Declare.
17139 * tree-ssa-strlen.c (handle_integral_assign): Remove a call
17140 to maybe_warn_overflow when assigning to an SSA_NAME.
17141
17142 2020-06-10 Richard Biener <rguenther@suse.de>
17143
17144 * tree-vect-loop.c (vect_determine_vectorization_factor):
17145 Skip debug stmts.
17146 (_loop_vec_info::_loop_vec_info): Likewise.
17147 (vect_update_vf_for_slp): Likewise.
17148 (vect_analyze_loop_operations): Likewise.
17149 (update_epilogue_loop_vinfo): Likewise.
17150 * tree-vect-patterns.c (vect_determine_precisions): Likewise.
17151 (vect_pattern_recog): Likewise.
17152 * tree-vect-slp.c (vect_detect_hybrid_slp): Likewise.
17153 (_bb_vec_info::_bb_vec_info): Likewise.
17154 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized):
17155 Likewise.
17156
17157 2020-06-10 Richard Biener <rguenther@suse.de>
17158
17159 PR tree-optimization/95576
17160 * tree-vect-slp.c (vect_slp_bb): Skip leading debug stmts.
17161
17162 2020-06-10 Haijian Zhang <z.zhanghaijian@huawei.com>
17163
17164 PR target/95523
17165 * config/aarch64/aarch64-sve-builtins.h
17166 (sve_switcher::m_old_maximum_field_alignment): New member.
17167 * config/aarch64/aarch64-sve-builtins.cc
17168 (sve_switcher::sve_switcher): Save maximum_field_alignment in
17169 m_old_maximum_field_alignment and clear maximum_field_alignment.
17170 (sve_switcher::~sve_switcher): Restore maximum_field_alignment.
17171
17172 2020-06-10 Richard Biener <rguenther@suse.de>
17173
17174 * tree-vectorizer.h (_slp_tree::vec_stmts): Make it a vector
17175 of gimple * stmts.
17176 (_stmt_vec_info::vec_stmts): Likewise.
17177 (vec_info::stmt_vec_info_ro): New flag.
17178 (vect_finish_replace_stmt): Adjust declaration.
17179 (vect_finish_stmt_generation): Likewise.
17180 (vectorizable_induction): Likewise.
17181 (vect_transform_reduction): Likewise.
17182 (vectorizable_lc_phi): Likewise.
17183 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Do not
17184 allocate stmt infos for increments.
17185 (vect_record_grouped_load_vectors): Adjust.
17186 * tree-vect-loop.c (vect_create_epilog_for_reduction): Likewise.
17187 (vectorize_fold_left_reduction): Likewise.
17188 (vect_transform_reduction): Likewise.
17189 (vect_transform_cycle_phi): Likewise.
17190 (vectorizable_lc_phi): Likewise.
17191 (vectorizable_induction): Likewise.
17192 (vectorizable_live_operation): Likewise.
17193 (vect_transform_loop): Likewise.
17194 * tree-vect-patterns.c (vect_pattern_recog): Set stmt_vec_info_ro.
17195 * tree-vect-slp.c (vect_get_slp_vect_def): Adjust.
17196 (vect_get_slp_defs): Likewise.
17197 (vect_transform_slp_perm_load): Likewise.
17198 (vect_schedule_slp_instance): Likewise.
17199 (vectorize_slp_instance_root_stmt): Likewise.
17200 * tree-vect-stmts.c (vect_get_vec_defs_for_operand): Likewise.
17201 (vect_finish_stmt_generation_1): Do not allocate a stmt info.
17202 (vect_finish_replace_stmt): Do not return anything.
17203 (vect_finish_stmt_generation): Likewise.
17204 (vect_build_gather_load_calls): Adjust.
17205 (vectorizable_bswap): Likewise.
17206 (vectorizable_call): Likewise.
17207 (vectorizable_simd_clone_call): Likewise.
17208 (vect_create_vectorized_demotion_stmts): Likewise.
17209 (vectorizable_conversion): Likewise.
17210 (vectorizable_assignment): Likewise.
17211 (vectorizable_shift): Likewise.
17212 (vectorizable_operation): Likewise.
17213 (vectorizable_scan_store): Likewise.
17214 (vectorizable_store): Likewise.
17215 (vectorizable_load): Likewise.
17216 (vectorizable_condition): Likewise.
17217 (vectorizable_comparison): Likewise.
17218 (vect_transform_stmt): Likewise.
17219 * tree-vectorizer.c (vec_info::vec_info): Initialize
17220 stmt_vec_info_ro.
17221 (vec_info::replace_stmt): Copy over stmt UID rather than
17222 unsetting/setting a stmt info allocating a new UID.
17223 (vec_info::set_vinfo_for_stmt): Assert !stmt_vec_info_ro.
17224
17225 2020-06-10 Aldy Hernandez <aldyh@redhat.com>
17226
17227 * gimple-loop-versioning.cc (loop_versioning::name_prop::get_value):
17228 Add stmt parameter.
17229 * gimple-ssa-evrp.c (class evrp_folder): New.
17230 (class evrp_dom_walker): Remove.
17231 (execute_early_vrp): Use evrp_folder instead of evrp_dom_walker.
17232 * tree-ssa-ccp.c (ccp_folder::get_value): Add stmt parameter.
17233 * tree-ssa-copy.c (copy_folder::get_value): Same.
17234 * tree-ssa-propagate.c (substitute_and_fold_engine::replace_uses_in):
17235 Pass stmt to get_value.
17236 (substitute_and_fold_engine::replace_phi_args_in): Same.
17237 (substitute_and_fold_dom_walker::after_dom_children): Call
17238 post_fold_bb.
17239 (substitute_and_fold_dom_walker::foreach_new_stmt_in_bb): New.
17240 (substitute_and_fold_dom_walker::propagate_into_phi_args): New.
17241 (substitute_and_fold_dom_walker::before_dom_children): Adjust to
17242 call virtual functions for folding, pre_folding, and post folding.
17243 Call get_value with PHI. Tweak dump.
17244 * tree-ssa-propagate.h (class substitute_and_fold_engine):
17245 New argument to get_value.
17246 New virtual function pre_fold_bb.
17247 New virtual function post_fold_bb.
17248 New virtual function pre_fold_stmt.
17249 New virtual function post_new_stmt.
17250 New function propagate_into_phi_args.
17251 * tree-vrp.c (vrp_folder::get_value): Add stmt argument.
17252 * vr-values.c (vr_values::extract_range_from_stmt): Adjust dump
17253 output.
17254 (vr_values::fold_cond): New.
17255 (vr_values::simplify_cond_using_ranges_1): Call fold_cond.
17256 * vr-values.h (class vr_values): Add
17257 simplify_cond_using_ranges_when_edge_is_known.
17258
17259 2020-06-10 Martin Liska <mliska@suse.cz>
17260
17261 PR sanitizer/94910
17262 * asan.c (asan_emit_stack_protection): Emit
17263 also **SavedFlagPtr(FakeStack, class_id) = 0 in order to release
17264 a stack frame.
17265
17266 2020-06-10 Tamar Christina <tamar.christina@arm.com>
17267
17268 * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Adjust costs for mul.
17269
17270 2020-06-10 Richard Biener <rguenther@suse.de>
17271
17272 * tree-vect-data-refs.c (vect_vfa_access_size): Adjust.
17273 (vect_record_grouped_load_vectors): Likewise.
17274 * tree-vect-loop.c (vect_create_epilog_for_reduction): Likewise.
17275 (vectorize_fold_left_reduction): Likewise.
17276 (vect_transform_reduction): Likewise.
17277 (vect_transform_cycle_phi): Likewise.
17278 (vectorizable_lc_phi): Likewise.
17279 (vectorizable_induction): Likewise.
17280 (vectorizable_live_operation): Likewise.
17281 (vect_transform_loop): Likewise.
17282 * tree-vect-slp.c (vect_get_slp_defs): New function, split out
17283 from overload.
17284 * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): Remove.
17285 (vect_get_vec_def_for_operand): Likewise.
17286 (vect_get_vec_def_for_stmt_copy): Likewise.
17287 (vect_get_vec_defs_for_stmt_copy): Likewise.
17288 (vect_get_vec_defs_for_operand): New function.
17289 (vect_get_vec_defs): Likewise.
17290 (vect_build_gather_load_calls): Adjust.
17291 (vect_get_gather_scatter_ops): Likewise.
17292 (vectorizable_bswap): Likewise.
17293 (vectorizable_call): Likewise.
17294 (vectorizable_simd_clone_call): Likewise.
17295 (vect_get_loop_based_defs): Remove.
17296 (vect_create_vectorized_demotion_stmts): Adjust.
17297 (vectorizable_conversion): Likewise.
17298 (vectorizable_assignment): Likewise.
17299 (vectorizable_shift): Likewise.
17300 (vectorizable_operation): Likewise.
17301 (vectorizable_scan_store): Likewise.
17302 (vectorizable_store): Likewise.
17303 (vectorizable_load): Likewise.
17304 (vectorizable_condition): Likewise.
17305 (vectorizable_comparison): Likewise.
17306 (vect_transform_stmt): Adjust and remove no longer applicable
17307 sanity checks.
17308 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize
17309 STMT_VINFO_VEC_STMTS.
17310 (vec_info::free_stmt_vec_info): Relase it.
17311 * tree-vectorizer.h (_stmt_vec_info::vectorized_stmt): Remove.
17312 (_stmt_vec_info::vec_stmts): Add.
17313 (STMT_VINFO_VEC_STMT): Remove.
17314 (STMT_VINFO_VEC_STMTS): New.
17315 (vect_get_vec_def_for_operand_1): Remove.
17316 (vect_get_vec_def_for_operand): Likewise.
17317 (vect_get_vec_defs_for_stmt_copy): Likewise.
17318 (vect_get_vec_def_for_stmt_copy): Likewise.
17319 (vect_get_vec_defs): New overloads.
17320 (vect_get_vec_defs_for_operand): New.
17321 (vect_get_slp_defs): Declare.
17322
17323 2020-06-10 Qian Chao <qianchao9@huawei.com>
17324
17325 PR tree-optimization/95569
17326 * trans-mem.c (expand_assign_tm): Ensure that rtmp is marked TREE_ADDRESSABLE.
17327
17328 2020-06-10 Martin Liska <mliska@suse.cz>
17329
17330 PR tree-optimization/92860
17331 * optc-save-gen.awk: Generate new function cl_optimization_compare.
17332 * opth-gen.awk: Generate declaration of the function.
17333
17334 2020-06-09 Michael Meissner <meissner@linux.ibm.com>
17335
17336 * config/rs6000/ppc-auxv.h (PPC_PLATFORM_FUTURE): Allocate
17337 'future' PowerPC platform.
17338 (PPC_FEATURE2_ARCH_3_1): New HWCAP2 bit for ISA 3.1.
17339 (PPC_FEATURE2_MMA): New HWCAP2 bit for MMA.
17340 * config/rs6000/rs6000-call.c (cpu_supports_info): Add ISA 3.1 and
17341 MMA HWCAP2 bits.
17342 * config/rs6000/rs6000.c (CLONE_ISA_3_1): New clone support.
17343 (rs6000_clone_map): Add 'future' system target_clones support.
17344
17345 2020-06-09 Michael Kuhn <gcc@ikkoku.de>
17346
17347 * Makefile.in (ZSTD_INC): Define.
17348 (ZSTD_LIB): Include ZSTD_LDFLAGS.
17349 (CFLAGS-lto-compress.o): Add ZSTD_INC.
17350 * configure.ac (ZSTD_CPPFLAGS, ZSTD_LDFLAGS): New variables for
17351 AC_SUBST.
17352 * configure: Rebuilt.
17353
17354 2020-06-09 Jason Merrill <jason@redhat.com>
17355
17356 PR c++/95552
17357 * tree.c (walk_tree_1): Call func on the TYPE_DECL of a DECL_EXPR.
17358
17359 2020-06-09 Marco Elver <elver@google.com>
17360
17361 * params.opt: Define --param=tsan-distinguish-volatile=[0,1].
17362 * sanitizer.def (BUILT_IN_TSAN_VOLATILE_READ1): Define new
17363 builtin for volatile instrumentation of reads/writes.
17364 (BUILT_IN_TSAN_VOLATILE_READ2): Likewise.
17365 (BUILT_IN_TSAN_VOLATILE_READ4): Likewise.
17366 (BUILT_IN_TSAN_VOLATILE_READ8): Likewise.
17367 (BUILT_IN_TSAN_VOLATILE_READ16): Likewise.
17368 (BUILT_IN_TSAN_VOLATILE_WRITE1): Likewise.
17369 (BUILT_IN_TSAN_VOLATILE_WRITE2): Likewise.
17370 (BUILT_IN_TSAN_VOLATILE_WRITE4): Likewise.
17371 (BUILT_IN_TSAN_VOLATILE_WRITE8): Likewise.
17372 (BUILT_IN_TSAN_VOLATILE_WRITE16): Likewise.
17373 * tsan.c (get_memory_access_decl): Argument if access is
17374 volatile. If param tsan-distinguish-volatile is non-zero, and
17375 access if volatile, return volatile instrumentation decl.
17376 (instrument_expr): Check if access is volatile.
17377
17378 2020-06-09 Richard Biener <rguenther@suse.de>
17379
17380 * tree-vect-loop.c (vectorizable_induction): Remove dead code.
17381
17382 2020-06-09 Tobias Burnus <tobias@codesourcery.com>
17383
17384 * omp-offload.c (add_decls_addresses_to_decl_constructor,
17385 omp_finish_file): With in_lto_p, stream out all offload-table
17386 items even if the symtab_node does not exist.
17387
17388 2020-06-09 Richard Biener <rguenther@suse.de>
17389
17390 * tree-vect-stmts.c (vect_transform_stmt): Remove dead code.
17391
17392 2020-06-09 Martin Liska <mliska@suse.cz>
17393
17394 * gcov-dump.c (print_usage): Fix spacing for --raw option
17395 in --help.
17396
17397 2020-06-09 Martin Liska <mliska@suse.cz>
17398
17399 * cif-code.def (ATTRIBUTE_MISMATCH): Rename to...
17400 (SANITIZE_ATTRIBUTE_MISMATCH): ...this.
17401 * ipa-inline.c (sanitize_attrs_match_for_inline_p):
17402 Handle all sanitizer options.
17403 (can_inline_edge_p): Use renamed CIF_* enum value.
17404
17405 2020-06-09 Joe Ramsay <joe.ramsay@arm.com>
17406
17407 * config/aarch64/aarch64-sve.md (<optab><mode>2): Add support for
17408 unpacked vectors.
17409 (@aarch64_pred_<optab><mode>): Add support for unpacked vectors.
17410 (@aarch64_bic<mode>): Enable unpacked BIC.
17411 (*bic<mode>3): Enable unpacked BIC.
17412
17413 2020-06-09 Martin Liska <mliska@suse.cz>
17414
17415 PR gcov-profile/95365
17416 * doc/gcov.texi: Compile and link one example in 2 steps.
17417
17418 2020-06-09 Jakub Jelinek <jakub@redhat.com>
17419
17420 PR tree-optimization/95527
17421 * match.pd (__builtin_ffs (X) cmp CST): New optimizations.
17422
17423 2020-06-09 Michael Meissner <meissner@linux.ibm.com>
17424
17425 * config/rs6000/ppc-auxv.h (PPC_PLATFORM_FUTURE): Allocate
17426 'future' PowerPC platform.
17427 (PPC_FEATURE2_ARCH_3_1): New HWCAP2 bit for ISA 3.1.
17428 (PPC_FEATURE2_MMA): New HWCAP2 bit for MMA.
17429 * config/rs6000/rs6000-call.c (cpu_supports_info): Add ISA 3.1 and
17430 MMA HWCAP2 bits.
17431 * config/rs6000/rs6000.c (CLONE_ISA_3_1): New clone support.
17432 (rs6000_clone_map): Add 'future' system target_clones support.
17433
17434 2020-06-08 Tobias Burnus <tobias@codesourcery.com>
17435
17436 PR lto/94848
17437 PR middle-end/95551
17438 * omp-offload.c (add_decls_addresses_to_decl_constructor,
17439 omp_finish_file): Skip removed items.
17440 * lto-cgraph.c (output_offload_tables): Likewise; set force_output
17441 to this node for variables and functions.
17442
17443 2020-06-08 Jason Merrill <jason@redhat.com>
17444
17445 * aclocal.m4: Remove ax_cxx_compile_stdcxx.m4.
17446 * configure.ac: Remove AX_CXX_COMPILE_STDCXX.
17447 * configure: Regenerate.
17448
17449 2020-06-08 Martin Sebor <msebor@redhat.com>
17450
17451 * postreload.c (reload_cse_simplify_operands): Clear first array element
17452 before using it. Assert a precondition.
17453
17454 2020-06-08 Jakub Jelinek <jakub@redhat.com>
17455
17456 PR target/95528
17457 * tree-ssa-forwprop.c (simplify_vector_constructor): Don't use
17458 VEC_UNPACK*_EXPR or VEC_PACK_TRUNC_EXPR with scalar modes unless the
17459 type is vector boolean.
17460
17461 2020-06-08 Tamar Christina <tamar.christina@arm.com>
17462
17463 * config/aarch64/aarch64.c (aarch64_layout_frame): Expand comments.
17464
17465 2020-06-08 Christophe Lyon <christophe.lyon@linaro.org>
17466
17467 * config/arm/predicates.md (vfp_register_operand): Use VFP_HI_REGS
17468 instead of VFP_REGS.
17469
17470 2020-06-08 Martin Liska <mliska@suse.cz>
17471
17472 * config/rs6000/vector.md: Replace FAIL with gcc_unreachable
17473 in all vcond* patterns.
17474
17475 2020-06-08 Christophe Lyon <christophe.lyon@linaro.org>
17476
17477 * common/config/arm/arm-common.c (INCLUDE_ALGORITHM):
17478 Define. No longer include <algorithm>.
17479
17480 2020-06-07 Roger Sayle <roger@nextmovesoftware.com>
17481
17482 * config/i386/i386.md (paritydi2, paritysi2): Expand reduction
17483 via shift and xor to an USPEC PARITY matching a parityhi2_cmp.
17484 (paritydi2_cmp, paritysi2_cmp): Delete these define_insn_and_split.
17485 (parityhi2, parityqi2): New expanders.
17486 (parityhi2_cmp): Implement set parity flag with xorb insn.
17487 (parityqi2_cmp): Implement set parity flag with testb insn.
17488 New peephole2s to use these insns (UNSPEC PARITY) when appropriate.
17489
17490 2020-06-07 Jiufu Guo <guojiufu@linux.ibm.com>
17491
17492 PR target/95018
17493 * config/rs6000/rs6000.c (rs6000_option_override_internal):
17494 Override flag_cunroll_grow_size.
17495
17496 2020-06-07 Jiufu Guo <guojiufu@linux.ibm.com>
17497
17498 * common.opt (flag_cunroll_grow_size): New flag.
17499 * toplev.c (process_options): Set flag_cunroll_grow_size.
17500 * tree-ssa-loop-ivcanon.c (pass_complete_unroll::execute):
17501 Use flag_cunroll_grow_size.
17502
17503 2020-06-06 Jan Hubicka <hubicka@ucw.cz>
17504
17505 PR lto/95548
17506 * ipa-devirt.c (struct odr_enum_val): Turn values to wide_int.
17507 (ipa_odr_summary_write): Update streaming.
17508 (ipa_odr_read_section): Update streaming.
17509
17510 2020-06-06 Alexandre Oliva <oliva@adacore.com>
17511
17512 PR driver/95456
17513 * gcc.c (do_spec_1): Don't call memcpy (_, NULL, 0).
17514
17515 2020-06-05 Thomas Schwinge <thomas@codesourcery.com>
17516 Julian Brown <julian@codesourcery.com>
17517
17518 * gimplify.c (gimplify_adjust_omp_clauses): Remove
17519 'GOMP_MAP_STRUCT' mapping from OpenACC 'exit data' directives.
17520
17521 2020-06-05 Richard Biener <rguenther@suse.de>
17522
17523 PR tree-optimization/95539
17524 * tree-vect-data-refs.c
17525 (vect_slp_analyze_and_verify_instance_alignment): Use
17526 SLP_TREE_REPRESENTATIVE for the data-ref check.
17527 * tree-vect-stmts.c (vectorizable_load): Reset stmt_info
17528 back to the first scalar stmt rather than the
17529 SLP_TREE_REPRESENTATIVE to match previous behavior.
17530
17531 2020-06-05 Felix Yang <felix.yang@huawei.com>
17532
17533 PR target/95254
17534 * expr.c (emit_move_insn): Check src and dest of the copy to see
17535 if one or both of them are subregs, try to remove the subregs when
17536 innermode and outermode are equal in size and the mode change involves
17537 an implicit round trip through memory.
17538
17539 2020-06-05 Jakub Jelinek <jakub@redhat.com>
17540
17541 PR target/95535
17542 * config/i386/i386.md (*ctzsi2_zext, *clzsi2_lzcnt_zext): New
17543 define_insn_and_split patterns.
17544 (*ctzsi2_zext_falsedep, *clzsi2_lzcnt_zext_falsedep): New
17545 define_insn patterns.
17546
17547 2020-06-05 Jonathan Wakely <jwakely@redhat.com>
17548
17549 * alloc-pool.h (object_allocator::remove_raw): New.
17550 * tree-ssa-math-opts.c (struct occurrence): Use NSMDI.
17551 (occurrence::occurrence): Add.
17552 (occurrence::~occurrence): Likewise.
17553 (occurrence::new): Likewise.
17554 (occurrence::delete): Likewise.
17555 (occ_new): Remove.
17556 (insert_bb): Use new occurence (...) instead of occ_new.
17557 (register_division_in): Likewise.
17558 (free_bb): Use delete occ instead of manually removing
17559 from the pool.
17560
17561 2020-06-05 Richard Biener <rguenther@suse.de>
17562
17563 PR middle-end/95493
17564 * cfgexpand.c (expand_debug_expr): Avoid calling
17565 set_mem_attributes_minus_bitpos when we were expanding
17566 an SSA name.
17567 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
17568 ARRAY_REF special-casing, add CONSTRUCTOR to the set of
17569 special-cases we do not want MEM_EXPRs for. Assert
17570 we end up with reasonable MEM_EXPRs.
17571
17572 2020-06-05 Lili Cui <lili.cui@intel.com>
17573
17574 PR target/95525
17575 * config/i386/i386.h (PTA_WAITPKG): Change bitmask value.
17576
17577 2020-06-04 Martin Sebor <msebor@redhat.com>
17578
17579 PR middle-end/10138
17580 PR middle-end/95136
17581 * attribs.c (init_attr_rdwr_indices): Move function here.
17582 * attribs.h (rdwr_access_hash, rdwr_map): Define.
17583 (attr_access): Add 'none'.
17584 (init_attr_rdwr_indices): Declared function.
17585 * builtins.c (warn_for_access)): New function.
17586 (check_access): Call it.
17587 * builtins.h (checK-access): Add an optional argument.
17588 * calls.c (rdwr_access_hash, rdwr_map): Move to attribs.h.
17589 (init_attr_rdwr_indices): Declare extern.
17590 (append_attrname): Handle attr_access::none.
17591 (maybe_warn_rdwr_sizes): Same.
17592 (initialize_argument_information): Update comments.
17593 * doc/extend.texi (attribute access): Document 'none'.
17594 * tree-ssa-uninit.c (struct wlimits): New.
17595 (maybe_warn_operand): New function.
17596 (maybe_warn_pass_by_reference): Same.
17597 (warn_uninitialized_vars): Refactor code into maybe_warn_operand.
17598 Also call for function calls.
17599 (pass_late_warn_uninitialized::execute): Adjust comments.
17600 (execute_early_warn_uninitialized): Same.
17601
17602 2020-06-04 Vladimir Makarov <vmakarov@redhat.com>
17603
17604 PR middle-end/95464
17605 * lra.c (lra_emit_move): Add processing STRICT_LOW_PART.
17606 * lra-constraints.c (match_reload): Use STRICT_LOW_PART in output
17607 reload if the original insn has it too.
17608
17609 2020-06-04 Richard Biener <rguenther@suse.de>
17610
17611 * config/aarch64/aarch64.c (aarch64_gimplify_va_arg_expr):
17612 Ensure that tmp_ha is marked TREE_ADDRESSABLE.
17613
17614 2020-06-04 Martin Jambor <mjambor@suse.cz>
17615
17616 PR ipa/95113
17617 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Move non-call
17618 exceptions check to...
17619 * tree-eh.c (stmt_unremovable_because_of_non_call_eh_p): ...this
17620 new function.
17621 * tree-eh.h (stmt_unremovable_because_of_non_call_eh_p): Declare it.
17622 * ipa-sra.c (isra_track_scalar_value_uses): Use it. New parameter
17623 fun.
17624
17625 2020-06-04 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
17626
17627 PR target/94735
17628 * config/arm/predicates.md (mve_scatter_memory): Define to
17629 match (mem (reg)) for scatter store memory.
17630 * config/arm/mve.md (mve_vstrbq_scatter_offset_<supf><mode>): Modify
17631 define_insn to define_expand.
17632 (mve_vstrbq_scatter_offset_p_<supf><mode>): Likewise.
17633 (mve_vstrhq_scatter_offset_<supf><mode>): Likewise.
17634 (mve_vstrhq_scatter_shifted_offset_p_<supf><mode>): Likewise.
17635 (mve_vstrhq_scatter_shifted_offset_<supf><mode>): Likewise.
17636 (mve_vstrdq_scatter_offset_p_<supf>v2di): Likewise.
17637 (mve_vstrdq_scatter_offset_<supf>v2di): Likewise.
17638 (mve_vstrdq_scatter_shifted_offset_p_<supf>v2di): Likewise.
17639 (mve_vstrdq_scatter_shifted_offset_<supf>v2di): Likewise.
17640 (mve_vstrhq_scatter_offset_fv8hf): Likewise.
17641 (mve_vstrhq_scatter_offset_p_fv8hf): Likewise.
17642 (mve_vstrhq_scatter_shifted_offset_fv8hf): Likewise.
17643 (mve_vstrhq_scatter_shifted_offset_p_fv8hf): Likewise.
17644 (mve_vstrwq_scatter_offset_fv4sf): Likewise.
17645 (mve_vstrwq_scatter_offset_p_fv4sf): Likewise.
17646 (mve_vstrwq_scatter_offset_p_<supf>v4si): Likewise.
17647 (mve_vstrwq_scatter_offset_<supf>v4si): Likewise.
17648 (mve_vstrwq_scatter_shifted_offset_fv4sf): Likewise.
17649 (mve_vstrwq_scatter_shifted_offset_p_fv4sf): Likewise.
17650 (mve_vstrwq_scatter_shifted_offset_p_<supf>v4si): Likewise.
17651 (mve_vstrwq_scatter_shifted_offset_<supf>v4si): Likewise.
17652 (mve_vstrbq_scatter_offset_<supf><mode>_insn): Define insn for scatter
17653 stores.
17654 (mve_vstrbq_scatter_offset_p_<supf><mode>_insn): Likewise.
17655 (mve_vstrhq_scatter_offset_<supf><mode>_insn): Likewise.
17656 (mve_vstrhq_scatter_shifted_offset_p_<supf><mode>_insn): Likewise.
17657 (mve_vstrhq_scatter_shifted_offset_<supf><mode>_insn): Likewise.
17658 (mve_vstrdq_scatter_offset_p_<supf>v2di_insn): Likewise.
17659 (mve_vstrdq_scatter_offset_<supf>v2di_insn): Likewise.
17660 (mve_vstrdq_scatter_shifted_offset_p_<supf>v2di_insn): Likewise.
17661 (mve_vstrdq_scatter_shifted_offset_<supf>v2di_insn): Likewise.
17662 (mve_vstrhq_scatter_offset_fv8hf_insn): Likewise.
17663 (mve_vstrhq_scatter_offset_p_fv8hf_insn): Likewise.
17664 (mve_vstrhq_scatter_shifted_offset_fv8hf_insn): Likewise.
17665 (mve_vstrhq_scatter_shifted_offset_p_fv8hf_insn): Likewise.
17666 (mve_vstrwq_scatter_offset_fv4sf_insn): Likewise.
17667 (mve_vstrwq_scatter_offset_p_fv4sf_insn): Likewise.
17668 (mve_vstrwq_scatter_offset_p_<supf>v4si_insn): Likewise.
17669 (mve_vstrwq_scatter_offset_<supf>v4si_insn): Likewise.
17670 (mve_vstrwq_scatter_shifted_offset_fv4sf_insn): Likewise.
17671 (mve_vstrwq_scatter_shifted_offset_p_fv4sf_insn): Likewise.
17672 (mve_vstrwq_scatter_shifted_offset_p_<supf>v4si_insn): Likewise.
17673 (mve_vstrwq_scatter_shifted_offset_<supf>v4si_insn): Likewise.
17674
17675 2020-06-04 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
17676
17677 * config/arm/arm_mve.h (__arm_vbicq_n_u16): Correct the intrinsic
17678 arguments.
17679 (__arm_vbicq_n_s16): Likewise.
17680 (__arm_vbicq_n_u32): Likewise.
17681 (__arm_vbicq_n_s32): Likewise.
17682 (__arm_vbicq): Modify polymorphic variant.
17683
17684 2020-06-04 Richard Biener <rguenther@suse.de>
17685
17686 * tree-vectorizer.h (vect_get_slp_vect_def): Declare.
17687 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use it.
17688 * tree-vect-stmts.c (vect_transform_stmt): Likewise.
17689 (vect_is_simple_use): Use SLP_TREE_REPRESENTATIVE.
17690 * tree-vect-slp.c (vect_get_slp_vect_defs): Fold into single
17691 use ...
17692 (vect_get_slp_defs): ... here.
17693 (vect_get_slp_vect_def): New function.
17694
17695 2020-06-04 Richard Biener <rguenther@suse.de>
17696
17697 * tree-vectorizer.h (_slp_tree::lanes): New.
17698 (SLP_TREE_LANES): Likewise.
17699 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use it.
17700 (vectorizable_reduction): Likewise.
17701 (vect_transform_cycle_phi): Likewise.
17702 (vectorizable_induction): Likewise.
17703 (vectorizable_live_operation): Likewise.
17704 * tree-vect-slp.c (_slp_tree::_slp_tree): Initialize lanes.
17705 (vect_create_new_slp_node): Likewise.
17706 (slp_copy_subtree): Copy it.
17707 (vect_optimize_slp): Use it.
17708 (vect_slp_analyze_node_operations_1): Likewise.
17709 (vect_slp_convert_to_external): Likewise.
17710 (vect_bb_vectorization_profitable_p): Likewise.
17711 * tree-vect-stmts.c (vectorizable_load): Likewise.
17712 (get_vectype_for_scalar_type): Likewise.
17713
17714 2020-06-04 Richard Biener <rguenther@suse.de>
17715
17716 * tree-vect-slp.c (vect_update_all_shared_vectypes): Remove.
17717 (vect_build_slp_tree_2): Simplify building all external op
17718 nodes from scalars.
17719 (vect_slp_analyze_node_operations): Remove push/pop of
17720 STMT_VINFO_DEF_TYPE.
17721 (vect_schedule_slp_instance): Likewise.
17722 * tree-vect-stmts.c (ect_check_store_rhs): Pass in the
17723 stmt_info, use the vect_is_simple_use overload combining
17724 SLP and stmt_info analysis.
17725 (vect_is_simple_cond): Likewise.
17726 (vectorizable_store): Adjust.
17727 (vectorizable_condition): Likewise.
17728 (vect_is_simple_use): Fully handle invariant SLP nodes
17729 here. Amend stmt_info operand extraction with COND_EXPR
17730 and masked stores.
17731 * tree-vect-loop.c (vectorizable_reduction): Deal with
17732 COND_EXPR representation ugliness.
17733
17734 2020-06-04 Hongtao Liu <hongtao.liu@inte.com>
17735
17736 PR target/95254
17737 * config/i386/sse.md (*vcvtps2ph_store<merge_mask_name>):
17738 Refine from *vcvtps2ph_store<mask_name>.
17739 (vcvtps2ph256<mask_name>): Refine constraint from vm to v.
17740 (<mask_codefor>avx512f_vcvtps2ph512<mask_name>): Ditto.
17741 (*vcvtps2ph256<merge_mask_name>): New define_insn.
17742 (*avx512f_vcvtps2ph512<merge_mask_name>): Ditto.
17743 * config/i386/subst.md (merge_mask): New define_subst.
17744 (merge_mask_name): New define_subst_attr.
17745 (merge_mask_operand3): Ditto.
17746
17747 2020-06-04 Hao Liu <hliu@os.amperecomputing.com>
17748
17749 PR tree-optimization/89430
17750 * tree-ssa-phiopt.c
17751 (struct name_to_bb): Rename to ref_to_bb; add a new field exp;
17752 remove ssa_name_ver, store, offset fields.
17753 (struct ssa_names_hasher): Rename to refs_hasher; update functions.
17754 (class nontrapping_dom_walker): Rename m_seen_ssa_names to m_seen_refs.
17755 (nontrapping_dom_walker::add_or_mark_expr): Extend to support ARRAY_REFs
17756 and COMPONENT_REFs.
17757
17758 2020-06-04 Andreas Schwab <schwab@suse.de>
17759
17760 PR target/95154
17761 * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Call assemble_external.
17762
17763 2020-06-04 Hongtao.liu <hongtao.liu@intel.com>
17764
17765 * config/i386/sse.md (pmov_dst_3_lower): New mode attribute.
17766 (trunc<mode><pmov_dst_3_lower>2): Refine from
17767 trunc<mode><pmov_dst_3>2.
17768
17769 2020-06-03 Vitor Guidi <vitor.guidi@usp.br>
17770
17771 * match.pd (tanh/sinh -> 1/cosh): New simplification.
17772
17773 2020-06-03 Aaron Sawdey <acsawdey@linux.ibm.com>
17774
17775 PR target/95347
17776 * config/rs6000/rs6000.c (is_stfs_insn): Rename to
17777 is_lfs_stfs_insn and make it recognize lfs as well.
17778 (prefixed_store_p): Use is_lfs_stfs_insn().
17779 (prefixed_load_p): Use is_lfs_stfs_insn() to recognize lfs.
17780
17781 2020-06-03 Jan Hubicka <hubicka@ucw.cz>
17782
17783 * ipa-devirt.c: Include data-streamer.h, lto-streamer.h and
17784 streamer-hooks.h.
17785 (odr_enums): New static var.
17786 (struct odr_enum_val): New struct.
17787 (class odr_enum): New struct.
17788 (odr_enum_map): New hashtable.
17789 (odr_types_equivalent_p): Drop code testing TYPE_VALUES.
17790 (add_type_duplicate): Likewise.
17791 (free_odr_warning_data): Do not free TYPE_VALUES.
17792 (register_odr_enum): New function.
17793 (ipa_odr_summary_write): New function.
17794 (ipa_odr_read_section): New function.
17795 (ipa_odr_summary_read): New function.
17796 (class pass_ipa_odr): New pass.
17797 (make_pass_ipa_odr): New function.
17798 * ipa-utils.h (register_odr_enum): Declare.
17799 * lto-section-in.c: (lto_section_name): Add odr_types section.
17800 * lto-streamer.h (enum lto_section_type): Add odr_types section.
17801 * passes.def: Add odr_types pass.
17802 * lto-streamer-out.c (DFS::DFS_write_tree_body): Do not stream
17803 TYPE_VALUES.
17804 (hash_tree): Likewise.
17805 * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers):
17806 Likewise.
17807 * tree-streamer-out.c (write_ts_type_non_common_tree_pointers):
17808 Likewise.
17809 * timevar.def (TV_IPA_ODR): New timervar.
17810 * tree-pass.h (make_pass_ipa_odr): Declare.
17811 * tree.c (free_lang_data_in_type): Regiser ODR types.
17812
17813 2020-06-03 Romain Naour <romain.naour@gmail.com>
17814
17815 * Makefile.in (SELFTEST_DEPS): Move before including language makefile
17816 fragments.
17817
17818 2020-06-03 Richard Biener <rguenther@suse.de>
17819
17820 PR tree-optimization/95487
17821 * tree-vect-stmts.c (vectorizable_store): Use a truth type
17822 for the scatter mask.
17823
17824 2020-06-03 Richard Biener <rguenther@suse.de>
17825
17826 PR tree-optimization/95495
17827 * tree-vect-slp.c (vect_slp_analyze_node_operations): Use
17828 SLP_TREE_REPRESENTATIVE in the shift assertion.
17829
17830 2020-06-03 Tom Tromey <tromey@adacore.com>
17831
17832 * spellcheck.c (CASE_COST): New define.
17833 (BASE_COST): New define.
17834 (get_edit_distance): Recognize case changes.
17835 (get_edit_distance_cutoff): Update.
17836 (test_edit_distances): Update.
17837 (get_old_cutoff): Update.
17838 (test_find_closest_string): Add case sensitivity test.
17839
17840 2020-06-03 Richard Biener <rguenther@suse.de>
17841
17842 * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Loop over
17843 the cost vector to unset the visited flag on stmts.
17844
17845 2020-06-03 Tobias Burnus <tobias@codesourcery.com>
17846
17847 * gimplify.c (omp_notice_variable): Use new hook.
17848 * langhooks-def.h (lhd_omp_predetermined_mapping): Declare.
17849 (LANG_HOOKS_OMP_PREDETERMINED_MAPPING): Define
17850 (LANG_HOOKS_DECLS): Add it.
17851 * langhooks.c (lhd_omp_predetermined_sharing): Remove bogus unused attr.
17852 (lhd_omp_predetermined_mapping): New.
17853 * langhooks.h (struct lang_hooks_for_decls): Add new hook.
17854
17855 2020-06-03 Jan Hubicka <jh@suse.cz>
17856
17857 * lto-streamer.h (LTO_tags): Reorder so frequent tags has small indexes;
17858 add LTO_first_tree_tag and LTO_first_gimple_tag.
17859 (lto_tag_is_tree_code_p): Update.
17860 (lto_tag_is_gimple_code_p): Update.
17861 (lto_gimple_code_to_tag): Update.
17862 (lto_tag_to_gimple_code): Update.
17863 (lto_tree_code_to_tag): Update.
17864 (lto_tag_to_tree_code): Update.
17865
17866 2020-06-02 Felix Yang <felix.yang@huawei.com>
17867
17868 PR target/95459
17869 * config/aarch64/aarch64.c (aarch64_short_vector_p):
17870 Leave later code to report an error if SVE is disabled.
17871
17872 2020-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17873
17874 * config/aarch64/aarch64-cores.def (zeus): Define.
17875 * config/aarch64/aarch64-tune.md: Regenerate.
17876 * doc/invoke.texi (AArch64 Options): Document zeus -mcpu option.
17877
17878 2020-06-02 Aaron Sawdey <acsawdey@linux.ibm.com>
17879
17880 PR target/95347
17881 * config/rs6000/rs6000.c (prefixed_store_p): Add special case
17882 for stfs.
17883 (is_stfs_insn): New helper function.
17884
17885 2020-06-02 Jan Hubicka <jh@suse.cz>
17886
17887 * lto-streamer-in.c (stream_read_tree_ref): Simplify streaming of
17888 references.
17889 * lto-streamer-out.c (stream_write_tree_ref): Likewise.
17890
17891 2020-06-02 Andrew Stubbs <ams@codesourcery.com>
17892
17893 * config/gcn/gcn-hsa.h (CC1_SPEC): Delete.
17894 * config/gcn/gcn.opt (-mlocal-symbol-id): Delete.
17895 * config/gcn/mkoffload.c (main): Don't use -mlocal-symbol-id.
17896
17897 2020-06-02 Eric Botcazou <ebotcazou@adacore.com>
17898
17899 PR middle-end/95395
17900 * optabs.c (expand_unop): Fix bits/bytes confusion in latest change.
17901 * tree-pretty-print.c (dump_generic_node) <ARRAY_TYPE>: Print quals.
17902
17903 2020-06-02 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
17904
17905 * config/s390/s390.c (print_operand): Emit vector alignment
17906 hints for z13.
17907
17908 2020-06-02 Martin Liska <mliska@suse.cz>
17909
17910 * coverage.c (get_coverage_counts): Skip sanity check for TOP N counters
17911 as they have variable number of counters.
17912 * gcov-dump.c (main): Add new option -r.
17913 (print_usage): Likewise.
17914 (tag_counters): All new raw format.
17915 * gcov-io.h (struct gcov_kvp): New.
17916 (GCOV_TOPN_VALUES): Remove.
17917 (GCOV_TOPN_VALUES_COUNTERS): Likewise.
17918 (GCOV_TOPN_MEM_COUNTERS): New.
17919 (GCOV_TOPN_DISK_COUNTERS): Likewise.
17920 (GCOV_TOPN_MAXIMUM_TRACKED_VALUES): Likewise.
17921 * ipa-profile.c (ipa_profile_generate_summary): Use
17922 GCOV_TOPN_MAXIMUM_TRACKED_VALUES.
17923 (ipa_profile_write_edge_summary): Likewise.
17924 (ipa_profile_read_edge_summary): Likewise.
17925 (ipa_profile): Remove usage of GCOV_TOPN_VALUES.
17926 * profile.c (sort_hist_values): Sort variable number
17927 of counters.
17928 (compute_value_histograms): Special case for TOP N counters
17929 that have dynamic number of key-value pairs.
17930 * value-prof.c (dump_histogram_value): Dump variable number
17931 of key-value pairs.
17932 (stream_in_histogram_value): Stream in variable number
17933 of key-value pairs for TOP N counter.
17934 (get_nth_most_common_value): Deal with variable number
17935 of key-value pairs.
17936 (dump_ic_profile): Use GCOV_TOPN_MAXIMUM_TRACKED_VALUES
17937 for loop iteration.
17938 (gimple_find_values_to_profile): Set GCOV_TOPN_MEM_COUNTERS
17939 to n_counters.
17940 * doc/gcov-dump.texi: Document new -r option.
17941
17942 2020-06-02 Iain Buclaw <ibuclaw@gdcproject.org>
17943
17944 PR target/95420
17945 * config.gcc (arm-wrs-vxworks7*): Set default cpu to generic-armv7-a.
17946
17947 2020-06-01 Jeff Law <law@torsion.usersys.redhat.com>
17948
17949 * lower-subreg.c (resolve_simple_move): If simplify_gen_subreg_concatn
17950 returns (const_int 0) for the destination, then emit nothing.
17951
17952 2020-06-01 Jan Hubicka <hubicka@ucw.cz>
17953
17954 * lto-streamer.h (enum LTO_tags): Remove LTO_field_decl_ref,
17955 LTO_function_decl_ref, LTO_label_decl_ref, LTO_namespace_decl_ref,
17956 LTO_result_decl_ref, LTO_type_decl_ref, LTO_type_ref,
17957 LTO_const_decl_ref, LTO_imported_decl_ref,
17958 LTO_translation_unit_decl_ref, LTO_global_decl_ref and
17959 LTO_namelist_decl_ref; add LTO_global_stream_ref.
17960 * lto-streamer-in.c (lto_input_tree_ref): Simplify.
17961 (lto_input_scc): Update.
17962 (lto_input_tree_1): Update.
17963 * lto-streamer-out.c (lto_indexable_tree_ref): Simlify.
17964 * lto-streamer.c (lto_tag_name): Update.
17965
17966 2020-06-01 Jan Hubicka <hubicka@ucw.cz>
17967
17968 * ipa-reference.c (stream_out_bitmap): Use lto_output_var_decl_ref.
17969 (ipa_reference_read_optimization_summary): Use lto_intput_var_decl_ref.
17970 * lto-cgraph.c (lto_output_node): Likewise.
17971 (lto_output_varpool_node): Likewise.
17972 (output_offload_tables): Likewise.
17973 (input_node): Likewise.
17974 (input_varpool_node): Likewise.
17975 (input_offload_tables): Likewise.
17976 * lto-streamer-in.c (lto_input_tree_ref): Declare.
17977 (lto_input_var_decl_ref): Declare.
17978 (lto_input_fn_decl_ref): Declare.
17979 * lto-streamer-out.c (lto_indexable_tree_ref): Use only one decl stream.
17980 (lto_output_var_decl_index): Rename to ..
17981 (lto_output_var_decl_ref): ... this.
17982 (lto_output_fn_decl_index): Rename to ...
17983 (lto_output_fn_decl_ref): ... this.
17984 * lto-streamer.h (enum lto_decl_stream_e_t): Remove per-type streams.
17985 (DEFINE_DECL_STREAM_FUNCS): Remove.
17986 (lto_output_var_decl_index): Remove.
17987 (lto_output_fn_decl_index): Remove.
17988 (lto_output_var_decl_ref): Declare.
17989 (lto_output_fn_decl_ref): Declare.
17990 (lto_input_var_decl_ref): Declare.
17991 (lto_input_fn_decl_ref): Declare.
17992
17993 2020-06-01 Feng Xue <fxue@os.amperecomputing.com>
17994
17995 * cgraphclones.c (materialize_all_clones): Adjust replace map dump.
17996 * ipa-param-manipulation.c (ipa_dump_adjusted_parameters): Do not
17997 dump infomation if there is no adjusted parameter.
17998 * (ipa_param_adjustments::dump): Adjust prefix spaces for dump string.
17999
18000 2020-06-01 Aldy Hernandez <aldyh@redhat.com>
18001
18002 * Makefile.in (gimple-array-bounds.o): New.
18003 * tree-vrp.c: Move array bounds code...
18004 * gimple-array-bounds.cc: ...here...
18005 * gimple-array-bounds.h: ...and here.
18006
18007 2020-06-01 Aldy Hernandez <aldyh@redhat.com>
18008
18009 * Makefile.in (OBJS): Add value-range-equiv.o.
18010 * tree-vrp.c (*value_range_equiv*): Move to...
18011 * value-range-equiv.cc: ...here.
18012 * tree-vrp.h (class value_range_equiv): Move to...
18013 * value-range-equiv.h: ...here.
18014 * vr-values.h: Include value-range-equiv.h.
18015
18016 2020-06-01 Feng Xue <fxue@os.amperecomputing.com>
18017
18018 PR ipa/93429
18019 * ipa-cp.c (propagate_aggs_across_jump_function): Check aggregate
18020 lattice for simple pass-through by-ref argument.
18021
18022 2020-05-31 Jeff Law <law@redhat.com>
18023
18024 * lra.c (add_auto_inc_notes): Remove function.
18025 * reload1.c (add_auto_inc_notes): Similarly. Move into...
18026 * rtlanal.c (add_auto_inc_notes): New function.
18027 * rtl.h (add_auto_inc_notes): Add prototype.
18028 * recog.c (peep2_attempt): Scan and add REG_INC notes to new insns
18029 as needed.
18030
18031 2020-05-31 Jan Hubicka <jh@suse.cz>
18032
18033 * lto-section-out.c (lto_output_decl_index): Remove.
18034 (lto_output_field_decl_index): Move to lto-streamer-out.c
18035 (lto_output_fn_decl_index): Move to lto-streamer-out.c
18036 (lto_output_namespace_decl_index): Remove.
18037 (lto_output_var_decl_index): Remove.
18038 (lto_output_type_decl_index): Remove.
18039 (lto_output_type_ref_index): Remove.
18040 * lto-streamer-out.c (output_type_ref): Remove.
18041 (lto_get_index): New function.
18042 (lto_output_tree_ref): Remove.
18043 (lto_indexable_tree_ref): New function.
18044 (lto_output_var_decl_index): Move here from lto-section-out.c; simplify.
18045 (lto_output_fn_decl_index): Move here from lto-section-out.c; simplify.
18046 (stream_write_tree_ref): Update.
18047 (lto_output_tree): Update.
18048 * lto-streamer.h (lto_output_decl_index): Remove prototype.
18049 (lto_output_field_decl_index): Remove prototype.
18050 (lto_output_namespace_decl_index): Remove prototype.
18051 (lto_output_type_decl_index): Remove prototype.
18052 (lto_output_type_ref_index): Remove prototype.
18053 (lto_output_var_decl_index): Move.
18054 (lto_output_fn_decl_index): Move
18055
18056 2020-05-31 Jakub Jelinek <jakub@redhat.com>
18057
18058 PR middle-end/95052
18059 * expr.c (store_expr): For shortedned_string_cst, ensure temp has
18060 BLKmode.
18061
18062 2020-05-31 Jeff Law <law@redhat.com>
18063
18064 * config/h8300/jumpcall.md (brabs, brabc): Disable patterns.
18065
18066 2020-05-31 Jim Wilson <jimw@sifive.com>
18067
18068 * config/riscv/riscv.md (zero_extendsidi2_shifted): New.
18069
18070 2020-05-30 Jonathan Yong <10walls@gmail.com>
18071
18072 * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Insert -lkernel32
18073 after -lmsvcrt. This is necessary as libmsvcrt.a is not a pure
18074 import library, but also contains some functions that invoke
18075 others in KERNEL32.DLL.
18076
18077 2020-05-29 Segher Boessenkool <segher@kernel.crashing.org>
18078
18079 * config/rs6000/altivec.md (altivec_vmrghw_direct): Prefer VSX form.
18080 (altivec_vmrglw_direct): Ditto.
18081 (altivec_vperm_<mode>_direct): Ditto.
18082 (altivec_vperm_v8hiv16qi): Ditto.
18083 (*altivec_vperm_<mode>_uns_internal): Ditto.
18084 (*altivec_vpermr_<mode>_internal): Ditto.
18085 (vperm_v8hiv4si): Ditto.
18086 (vperm_v16qiv8hi): Ditto.
18087
18088 2020-05-29 Jan Hubicka <jh@suse.cz>
18089
18090 * lto-streamer-in.c (streamer_read_chain): Move here from
18091 tree-streamer-in.c.
18092 (stream_read_tree_ref): New.
18093 (lto_input_tree_1): Simplify.
18094 * lto-streamer-out.c (stream_write_tree_ref): New.
18095 (lto_write_tree_1): Simplify.
18096 (lto_output_tree_1): Simplify.
18097 (DFS::DFS_write_tree): Simplify.
18098 (streamer_write_chain): Move here from tree-stremaer-out.c.
18099 * lto-streamer.h (lto_output_tree_ref): Update prototype.
18100 (stream_read_tree_ref): Declare
18101 (stream_write_tree_ref): Declare
18102 * tree-streamer-in.c (streamer_read_chain): Update to use
18103 stream_read_tree_ref.
18104 (lto_input_ts_common_tree_pointers): Likewise.
18105 (lto_input_ts_vector_tree_pointers): Likewise.
18106 (lto_input_ts_poly_tree_pointers): Likewise.
18107 (lto_input_ts_complex_tree_pointers): Likewise.
18108 (lto_input_ts_decl_minimal_tree_pointers): Likewise.
18109 (lto_input_ts_decl_common_tree_pointers): Likewise.
18110 (lto_input_ts_decl_with_vis_tree_pointers): Likewise.
18111 (lto_input_ts_field_decl_tree_pointers): Likewise.
18112 (lto_input_ts_function_decl_tree_pointers): Likewise.
18113 (lto_input_ts_type_common_tree_pointers): Likewise.
18114 (lto_input_ts_type_non_common_tree_pointers): Likewise.
18115 (lto_input_ts_list_tree_pointers): Likewise.
18116 (lto_input_ts_vec_tree_pointers): Likewise.
18117 (lto_input_ts_exp_tree_pointers): Likewise.
18118 (lto_input_ts_block_tree_pointers): Likewise.
18119 (lto_input_ts_binfo_tree_pointers): Likewise.
18120 (lto_input_ts_constructor_tree_pointers): Likewise.
18121 (lto_input_ts_omp_clause_tree_pointers): Likewise.
18122 * tree-streamer-out.c (streamer_write_chain): Update to use
18123 stream_write_tree_ref.
18124 (write_ts_common_tree_pointers): Likewise.
18125 (write_ts_vector_tree_pointers): Likewise.
18126 (write_ts_poly_tree_pointers): Likewise.
18127 (write_ts_complex_tree_pointers): Likewise.
18128 (write_ts_decl_minimal_tree_pointers): Likewise.
18129 (write_ts_decl_common_tree_pointers): Likewise.
18130 (write_ts_decl_non_common_tree_pointers): Likewise.
18131 (write_ts_decl_with_vis_tree_pointers): Likewise.
18132 (write_ts_field_decl_tree_pointers): Likewise.
18133 (write_ts_function_decl_tree_pointers): Likewise.
18134 (write_ts_type_common_tree_pointers): Likewise.
18135 (write_ts_type_non_common_tree_pointers): Likewise.
18136 (write_ts_list_tree_pointers): Likewise.
18137 (write_ts_vec_tree_pointers): Likewise.
18138 (write_ts_exp_tree_pointers): Likewise.
18139 (write_ts_block_tree_pointers): Likewise.
18140 (write_ts_binfo_tree_pointers): Likewise.
18141 (write_ts_constructor_tree_pointers): Likewise.
18142 (write_ts_omp_clause_tree_pointers): Likewise.
18143 (streamer_write_tree_body): Likewise.
18144 (streamer_write_integer_cst): Likewise.
18145 * tree-streamer.h (streamer_read_chain):Declare.
18146 (streamer_write_chain):Declare.
18147 (streamer_write_tree_body): Update prototype.
18148 (streamer_write_integer_cst): Update prototype.
18149
18150 2020-05-29 H.J. Lu <hjl.tools@gmail.com>
18151
18152 PR bootstrap/95413
18153 * configure: Regenerated.
18154
18155 2020-05-29 Andrew Stubbs <ams@codesourcery.com>
18156
18157 * config/gcn/gcn-valu.md (add<mode>3_vcc_zext_dup): Add early clobber.
18158 (add<mode>3_vcc_zext_dup_exec): Likewise.
18159 (add<mode>3_vcc_zext_dup2): Likewise.
18160 (add<mode>3_vcc_zext_dup2_exec): Likewise.
18161
18162 2020-05-29 Richard Biener <rguenther@suse.de>
18163
18164 PR tree-optimization/95272
18165 * tree-vectorizer.h (_slp_tree::representative): Add.
18166 (SLP_TREE_REPRESENTATIVE): Likewise.
18167 * tree-vect-loop.c (vectorizable_reduction): Adjust SLP
18168 node gathering.
18169 (vectorizable_live_operation): Use the representative to
18170 attach the reduction info to.
18171 * tree-vect-slp.c (_slp_tree::_slp_tree): Initialize
18172 SLP_TREE_REPRESENTATIVE.
18173 (vect_create_new_slp_node): Likewise.
18174 (slp_copy_subtree): Copy it.
18175 (vect_slp_rearrange_stmts): Re-arrange even COND_EXPR stmts.
18176 (vect_slp_analyze_node_operations_1): Pass the representative
18177 to vect_analyze_stmt.
18178 (vect_schedule_slp_instance): Pass the representative to
18179 vect_transform_stmt.
18180
18181 2020-05-29 Richard Biener <rguenther@suse.de>
18182
18183 PR tree-optimization/95356
18184 * tree-vect-stmts.c (vectorizable_shift): Do in-place SLP
18185 node hacking during analysis.
18186
18187 2020-05-29 Jan Hubicka <hubicka@ucw.cz>
18188
18189 PR lto/95362
18190 * lto-streamer-out.c (lto_output_tree): Disable redundant streaming.
18191
18192 2020-05-29 Richard Biener <rguenther@suse.de>
18193
18194 PR tree-optimization/95403
18195 * tree-vect-stmts.c (vect_init_vector_1): Guard against NULL
18196 stmt_vinfo.
18197
18198 2020-05-29 Jakub Jelinek <jakub@redhat.com>
18199
18200 PR middle-end/95315
18201 * omp-general.c (omp_resolve_declare_variant): Fix up addition of
18202 declare variant cgraph node removal callback.
18203
18204 2020-05-29 Jakub Jelinek <jakub@redhat.com>
18205
18206 PR middle-end/95052
18207 * expr.c (store_expr): If expr_size is constant and significantly
18208 larger than TREE_STRING_LENGTH, set temp to just the
18209 TREE_STRING_LENGTH portion of the STRING_CST.
18210
18211 2020-05-29 Richard Biener <rguenther@suse.de>
18212
18213 PR tree-optimization/95393
18214 * tree-ssa-phiopt.c (minmax_replacement): Use gimple_build
18215 to build the min/max expression so we simplify cases like
18216 MAX(0, s) immediately.
18217
18218 2020-05-29 Joe Ramsay <joe.ramsay@arm.com>
18219
18220 * config/aarch64/aarch64-sve.md (<LOGICAL:optab><mode>3): Add support
18221 for unpacked EOR, ORR, AND.
18222
18223 2020-05-28 Nicolas Bértolo <nicolasbertolo@gmail.com>
18224
18225 * Makefile.in: don't look for libiberty in the "pic" subdirectory
18226 when building for Mingw. Add dependency on xgcc with the proper
18227 extension.
18228
18229 2020-05-28 Jeff Law <law@redhat.com>
18230
18231 * config/h8300/logical.md (bclrhi_msx): Remove pattern.
18232
18233 2020-05-28 Jeff Law <law@redhat.com>
18234
18235 * config/h8300/logical.md (HImode H8/SX bit-and splitter): Don't
18236 make a nonzero adjustment to the memory offset.
18237 (b<ior,xor>hi_msx): Turn into a splitter.
18238
18239 2020-05-28 Eric Botcazou <ebotcazou@adacore.com>
18240
18241 * gimple-ssa-store-merging.c (merged_store_group::can_be_merged_into):
18242 Fix off-by-one error.
18243
18244 2020-05-28 Richard Sandiford <richard.sandiford@arm.com>
18245
18246 * config/aarch64/aarch64.h (aarch64_frame): Add a comment above
18247 wb_candidate1 and wb_candidate2.
18248 * config/aarch64/aarch64.c (aarch64_layout_frame): Invalidate
18249 wb_candidate1 and wb_candidate2 if we decided not to use them.
18250
18251 2020-05-28 Richard Sandiford <richard.sandiford@arm.com>
18252
18253 PR testsuite/95361
18254 * config/aarch64/aarch64.c (aarch64_expand_epilogue): Assert that
18255 we have at least some CFI operations when using a frame pointer.
18256 Only redefine the CFA if we have CFI operations.
18257
18258 2020-05-28 Richard Biener <rguenther@suse.de>
18259
18260 * tree-vect-slp.c (vect_prologue_cost_for_slp): Remove
18261 case for !SLP_TREE_VECTYPE.
18262 (vect_slp_analyze_node_operations): Adjust.
18263
18264 2020-05-28 Richard Biener <rguenther@suse.de>
18265
18266 * tree-vectorizer.h (_slp_tree::vec_defs): Add.
18267 (SLP_TREE_VEC_DEFS): Likewise.
18268 * tree-vect-slp.c (_slp_tree::_slp_tree): Adjust.
18269 (_slp_tree::~_slp_tree): Likewise.
18270 (vect_mask_constant_operand_p): Remove unused function.
18271 (vect_get_constant_vectors): Rename to...
18272 (vect_create_constant_vectors): ... this. Take the
18273 invariant node as argument and code generate it. Remove
18274 dead code, remove temporary asserts. Pass a NULL stmt_info
18275 to vect_init_vector.
18276 (vect_get_slp_defs): Simplify.
18277 (vect_schedule_slp_instance): Code-generate externals and
18278 invariants using vect_create_constant_vectors.
18279
18280 2020-05-28 Richard Biener <rguenther@suse.de>
18281
18282 * tree-vect-stmts.c (vect_finish_stmt_generation_1):
18283 Conditionalize stmt_info use, assert the new stmt cannot throw
18284 when not specified.
18285 (vect_finish_stmt_generation): Adjust assert.
18286
18287 2020-05-28 Richard Biener <rguenther@suse.de>
18288
18289 PR tree-optimization/95273
18290 PR tree-optimization/95356
18291 * tree-vect-stmts.c (vectorizable_shift): Adjust when and to
18292 what we set the vector type of the shift operand SLP node
18293 again.
18294
18295 2020-05-28 Andrea Corallo <andrea.corallo@arm.com>
18296
18297 * config/arm/arm.c (mve_vector_mem_operand): Fix unwanted
18298 fall-throughs.
18299
18300 2020-05-28 Martin Liska <mliska@suse.cz>
18301
18302 PR web/95380
18303 * doc/invoke.texi: Add missing params, remove max-once-peeled-insns and
18304 rename ipcp-unit-growth to ipa-cp-unit-growth.
18305
18306 2020-05-28 Hongtao Liu <hongtao.liu@intel.com>
18307
18308 * config/i386/sse.md (*avx512vl_<code>v2div2qi2_store_1): Rename
18309 from *avx512vl_<code>v2div2qi_store and refine memory size of
18310 the pattern.
18311 (*avx512vl_<code>v2div2qi2_mask_store_1): Ditto.
18312 (*avx512vl_<code><mode>v4qi2_store_1): Ditto.
18313 (*avx512vl_<code><mode>v4qi2_mask_store_1): Ditto.
18314 (*avx512vl_<code><mode>v8qi2_store_1): Ditto.
18315 (*avx512vl_<code><mode>v8qi2_mask_store_1): Ditto.
18316 (*avx512vl_<code><mode>v4hi2_store_1): Ditto.
18317 (*avx512vl_<code><mode>v4hi2_mask_store_1): Ditto.
18318 (*avx512vl_<code>v2div2hi2_store_1): Ditto.
18319 (*avx512vl_<code>v2div2hi2_mask_store_1): Ditto.
18320 (*avx512vl_<code>v2div2si2_store_1): Ditto.
18321 (*avx512vl_<code>v2div2si2_mask_store_1): Ditto.
18322 (*avx512f_<code>v8div16qi2_store_1): Ditto.
18323 (*avx512f_<code>v8div16qi2_mask_store_1): Ditto.
18324 (*avx512vl_<code>v2div2qi2_store_2): New define_insn_and_split.
18325 (*avx512vl_<code>v2div2qi2_mask_store_2): Ditto.
18326 (*avx512vl_<code><mode>v4qi2_store_2): Ditto.
18327 (*avx512vl_<code><mode>v4qi2_mask_store_2): Ditto.
18328 (*avx512vl_<code><mode>v8qi2_store_2): Ditto.
18329 (*avx512vl_<code><mode>v8qi2_mask_store_2): Ditto.
18330 (*avx512vl_<code><mode>v4hi2_store_2): Ditto.
18331 (*avx512vl_<code><mode>v4hi2_mask_store_2): Ditto.
18332 (*avx512vl_<code>v2div2hi2_store_2): Ditto.
18333 (*avx512vl_<code>v2div2hi2_mask_store_2): Ditto.
18334 (*avx512vl_<code>v2div2si2_store_2): Ditto.
18335 (*avx512vl_<code>v2div2si2_mask_store_2): Ditto.
18336 (*avx512f_<code>v8div16qi2_store_2): Ditto.
18337 (*avx512f_<code>v8div16qi2_mask_store_2): Ditto.
18338 * config/i386/i386-builtin-types.def: Adjust builtin type.
18339 * config/i386/i386-expand.c: Ditto.
18340 * config/i386/i386-builtin.def: Adjust builtin.
18341 * config/i386/avx512fintrin.h: Ditto.
18342 * config/i386/avx512vlbwintrin.h: Ditto.
18343 * config/i386/avx512vlintrin.h: Ditto.
18344
18345 2020-05-28 Dong JianQiang <dongjianqiang2@huawei.com>
18346
18347 PR gcov-profile/95332
18348 * gcov-io.c (gcov_var::endian): Move field.
18349 (from_file): Add IN_GCOV_TOOL check.
18350 * gcov-io.h (gcov_magic): Ditto.
18351
18352 2020-05-28 Max Filippov <jcmvbkbc@gmail.com>
18353
18354 * config/xtensa/xtensa.c (xtensa_delegitimize_address): New
18355 function.
18356 (TARGET_DELEGITIMIZE_ADDRESS): New macro.
18357
18358 2020-05-27 Eric Botcazou <ebotcazou@adacore.com>
18359
18360 * builtin-types.def (BT_UINT128): New primitive type.
18361 (BT_FN_UINT128_UINT128): New function type.
18362 * builtins.def (BUILT_IN_BSWAP128): New GCC builtin.
18363 * doc/extend.texi (__builtin_bswap128): Document it.
18364 * builtins.c (expand_builtin): Deal with BUILT_IN_BSWAP128.
18365 (is_inexpensive_builtin): Likewise.
18366 * fold-const-call.c (fold_const_call_ss): Likewise.
18367 * fold-const.c (tree_call_nonnegative_warnv_p): Likewise.
18368 * tree-ssa-ccp.c (evaluate_stmt): Likewise.
18369 * tree-vect-stmts.c (vect_get_data_ptr_increment): Likewise.
18370 (vectorizable_call): Likewise.
18371 * optabs.c (expand_unop): Always use the double word path for it.
18372 * tree-core.h (enum tree_index): Add TI_UINT128_TYPE.
18373 * tree.h (uint128_type_node): New global type.
18374 * tree.c (build_common_tree_nodes): Build it if TImode is supported.
18375
18376 2020-05-27 Uroš Bizjak <ubizjak@gmail.com>
18377
18378 * config/i386/mmx.md (*mmx_haddv2sf3): Remove SSE alternatives.
18379 (mmx_hsubv2sf3): Ditto.
18380 (mmx_haddsubv2sf3): New expander.
18381 (*mmx_haddsubv2sf3): Rename from mmx_addsubv2sf3. Correct
18382 RTL template to model horizontal subtraction and addition.
18383 * config/i386/i386-builtin.def (IX86_BUILTIN_PFPNACC):
18384 Update for rename.
18385
18386 2020-05-27 Uroš Bizjak <ubizjak@gmail.com>
18387
18388 PR target/95355
18389 * config/i386/sse.md
18390 (<mask_codefor>avx512f_<code>v16qiv16si2<mask_name>):
18391 Remove %q operand modifier from insn template.
18392 (avx512f_<code>v8hiv8di2<mask_name>): Ditto.
18393
18394 2020-05-27 Uroš Bizjak <ubizjak@gmail.com>
18395
18396 * config/i386/mmx.md (mmx_pswapdsf2): Add SSE alternatives.
18397 Enable insn pattern for TARGET_MMX_WITH_SSE.
18398 (*mmx_movshdup): New insn pattern.
18399 (*mmx_movsldup): Ditto.
18400 (*mmx_movss): Ditto.
18401 * config/i386/i386-expand.c (ix86_vectorize_vec_perm_const):
18402 Handle E_V2SFmode.
18403 (expand_vec_perm_movs): Handle E_V2SFmode.
18404 (expand_vec_perm_even_odd): Ditto.
18405 (expand_vec_perm_broadcast_1): Assert that E_V2SFmode
18406 is already handled by standard shuffle patterns.
18407
18408 2020-05-27 Richard Biener <rguenther@suse.de>
18409
18410 PR tree-optimization/95295
18411 * tree-ssa-loop-im.c (sm_seq_valid_bb): Fix sinking after
18412 merging stores from paths.
18413
18414 2020-05-27 Richard Biener <rguenther@suse.de>
18415
18416 PR tree-optimization/95356
18417 * tree-vect-stmts.c (vectorizable_shift): Adjust vector
18418 type for the shift operand.
18419
18420 2020-05-27 Richard Biener <rguenther@suse.de>
18421
18422 PR tree-optimization/95335
18423 * tree-vect-slp.c (vect_slp_analyze_node_operations): Reset
18424 lvisited for nodes made external.
18425
18426 2020-05-27 Richard Biener <rguenther@suse.de>
18427
18428 * dump-context.h (debug_dump_context): New class.
18429 (dump_context): Make it friend.
18430 * dumpfile.c (debug_dump_context::debug_dump_context):
18431 Implement.
18432 (debug_dump_context::~debug_dump_context): Likewise.
18433 * tree-vect-slp.c: Include dump-context.h.
18434 (vect_print_slp_tree): Dump a single SLP node.
18435 (debug): New overload for slp_tree.
18436 (vect_print_slp_graph): Rename from vect_print_slp_tree and
18437 use that.
18438 (vect_analyze_slp_instance): Adjust.
18439
18440 2020-05-27 Jakub Jelinek <jakub@redhat.com>
18441
18442 PR middle-end/95315
18443 * omp-general.c (omp_declare_variant_remove_hook): New function.
18444 (omp_resolve_declare_variant): Always return base if it is already
18445 declare_variant_alt magic decl itself. Register
18446 omp_declare_variant_remove_hook as cgraph node removal hook.
18447
18448 2020-05-27 Jeff Law <law@redhat.com>
18449
18450 * config/h8300/testcompare.md (tst_extzv_1_n): Do not accept constants
18451 for the primary input operand.
18452 (tstsi_variable_bit_qi): Similarly.
18453
18454 2020-05-26 Uroš Bizjak <ubizjak@gmail.com>
18455
18456 * config/i386/mmx.md (mmx_pswapdv2si2): Add SSE2 alternative.
18457
18458 2020-05-26 Tobias Burnus <tobias@codesourcery.com>
18459
18460 PR ipa/95320
18461 * ipa-utils.h (odr_type_p): Also permit calls with
18462 only flag_generate_offload set.
18463
18464 2020-05-26 Alexandre Oliva <oliva@adacore.com>
18465
18466 * gcc.c (validate_switches): Add braced parameter. Adjust all
18467 callers. Expected and skip trailing brace only if braced.
18468 Return after handling one atom otherwise.
18469 (DUMPS_OPTIONS): New.
18470 (cpp_debug_options): Define in terms of it.
18471
18472 2020-05-26 Richard Biener <rguenther@suse.de>
18473
18474 PR tree-optimization/95327
18475 * tree-vect-stmts.c (vectorizable_shift): Compute op1_vectype
18476 when we are not using a scalar shift.
18477
18478 2020-05-26 Uroš Bizjak <ubizjak@gmail.com>
18479
18480 * config/i386/mmx.md (*mmx_pshufd_1): New insn pattern.
18481 * config/i386/i386-expand.c (ix86_vectorize_vec_perm_const):
18482 Handle E_V2SImode and E_V4HImode.
18483 (expand_vec_perm_even_odd_1): Handle E_V4HImode.
18484 Assert that E_V2SImode is already handled.
18485 (expand_vec_perm_broadcast_1): Assert that E_V2SImode
18486 is already handled by standard shuffle patterns.
18487
18488 2020-05-26 Jan Hubicka <jh@suse.cz>
18489
18490 * tree.c (free_lang_data_in_type): Simpify types of TYPE_VALUES in
18491 enumeral types.
18492
18493 2020-05-26 Jakub Jelinek <jakub@redhat.com>
18494
18495 PR c++/95197
18496 * gimplify.c (find_combined_omp_for): Move to omp-general.c.
18497 * omp-general.h (find_combined_omp_for): Declare.
18498 * omp-general.c: Include tree-iterator.h.
18499 (find_combined_omp_for): New function, moved from gimplify.c.
18500
18501 2020-05-26 Alexandre Oliva <oliva@adacore.com>
18502
18503 * common.opt (aux_base_name): Define.
18504 (dumpbase, dumpdir): Mark as Driver options.
18505 (-dumpbase, -dumpdir): Likewise.
18506 (dumpbase-ext, -dumpbase-ext): New.
18507 (auxbase, auxbase-strip): Drop.
18508 * doc/invoke.texi (-dumpbase, -dumpbase-ext, -dumpdir):
18509 Document.
18510 (-o): Introduce the notion of primary output, mention it
18511 influences auxiliary and dump output names as well, add
18512 examples.
18513 (-save-temps): Adjust, move examples into -dump*.
18514 (-save-temps=cwd, -save-temps=obj): Likewise.
18515 (-fdump-final-insns): Adjust.
18516 * dwarf2out.c (gen_producer_string): Drop auxbase and
18517 auxbase_strip; add dumpbase_ext.
18518 * gcc.c (enum save_temps): Add SAVE_TEMPS_DUMP.
18519 (save_temps_prefix, save_temps_length): Drop.
18520 (save_temps_overrides_dumpdir): New.
18521 (dumpdir, dumpbase, dumpbase_ext): New.
18522 (dumpdir_length, dumpdir_trailing_dash_added): New.
18523 (outbase, outbase_length): New.
18524 (The Specs Language): Introduce %". Adjust %b and %B.
18525 (ASM_FINAL_SPEC): Use %b.dwo for an aux output name always.
18526 Precede object file with %w when it's the primary output.
18527 (cpp_debug_options): Do not pass on incoming -dumpdir,
18528 -dumpbase and -dumpbase-ext options; recompute them with
18529 %:dumps.
18530 (cc1_options): Drop auxbase with and without compare-debug;
18531 use cpp_debug_options instead of dumpbase. Mark asm output
18532 with %w when it's the primary output.
18533 (static_spec_functions): Drop %:compare-debug-auxbase-opt and
18534 %:replace-exception. Add %:dumps.
18535 (driver_handle_option): Implement -save-temps=*/-dumpdir
18536 mutual overriding logic. Save dumpdir, dumpbase and
18537 dumpbase-ext options. Do not save output_file in
18538 save_temps_prefix.
18539 (adds_single_suffix_p): New.
18540 (single_input_file_index): New.
18541 (process_command): Combine output dir, output base name, and
18542 dumpbase into dumpdir and outbase.
18543 (set_collect_gcc_options): Pass a possibly-adjusted -dumpdir.
18544 (do_spec_1): Optionally dumpdir instead of save_temps_prefix,
18545 and outbase instead of input_basename in %b, %B and in
18546 -save-temps aux files. Handle empty argument %".
18547 (driver::maybe_run_linker): Adjust dumpdir and auxbase.
18548 (compare_debug_dump_opt_spec_function): Adjust gkd dump file
18549 naming. Spec-quote the computed -fdump-final-insns file name.
18550 (debug_auxbase_opt): Drop.
18551 (compare_debug_self_opt_spec_function): Drop auxbase-strip
18552 computation.
18553 (compare_debug_auxbase_opt_spec_function): Drop.
18554 (not_actual_file_p): New.
18555 (replace_extension_spec_func): Drop.
18556 (dumps_spec_func): New.
18557 (convert_white_space): Split-out parts into...
18558 (quote_string, whitespace_to_convert_p): ... these. New.
18559 (quote_spec_char_p, quote_spec, quote_spec_arg): New.
18560 (driver::finalize): Release and reset new variables; drop
18561 removed ones.
18562 * lto-wrapper.c (HAVE_TARGET_EXECUTABLE_SUFFIX): Define if...
18563 (TARGET_EXECUTABLE_SUFFIX): ... is defined; define this to the
18564 empty string otherwise.
18565 (DUMPBASE_SUFFIX): Drop leading period.
18566 (debug_objcopy): Use concat.
18567 (run_gcc): Recognize -save-temps=* as -save-temps too. Obey
18568 -dumpdir. Pass on empty dumpdir and dumpbase with a directory
18569 component. Simplify temp file names.
18570 * opts.c (finish_options): Drop aux base name handling.
18571 (common_handle_option): Drop auxbase-strip handling.
18572 * toplev.c (print_switch_values): Drop auxbase, add
18573 dumpbase-ext.
18574 (process_options): Derive aux_base_name from dump_base_name
18575 and dump_base_ext.
18576 (lang_dependent_init): Compute dump_base_ext along with
18577 dump_base_name. Disable stack usage and callgraph-info during
18578 lto generation and compare-debug recompilation.
18579
18580 2020-05-26 Hongtao Liu <hongtao.liu@intel.com>
18581 Uroš Bizjak <ubizjak@gmail.com>
18582
18583 PR target/95211
18584 PR target/95256
18585 * config/i386/sse.md (<floatunssuffix>v2div2sf2): New expander.
18586 (fix<fixunssuffix>_truncv2sfv2di2): Ditto.
18587 (avx512dq_float<floatunssuffix>v2div2sf2): Renaming from
18588 float<floatunssuffix>v2div2sf2.
18589 (avx512dq_fix<fixunssuffix>_truncv2sfv2di2<mask_name>):
18590 Renaming from fix<fixunssuffix>_truncv2sfv2di2<mask_name>.
18591 (vec_pack<floatprefix>_float_<mode>): Adjust icode name.
18592 (vec_unpack_<fixprefix>fix_trunc_lo_<mode>): Ditto.
18593 (vec_unpack_<fixprefix>fix_trunc_hi_<mode>): Ditto.
18594 * config/i386/i386-builtin.def: Ditto.
18595 * emit-rtl.c (validate_subreg): Allow use of *paradoxical* vector
18596 subregs when both omode and imode are vector mode and
18597 have the same inner mode.
18598
18599 2020-05-25 Eric Botcazou <ebotcazou@adacore.com>
18600
18601 * gimple-ssa-store-merging.c (merged_store_group::can_be_merged_into):
18602 Only turn MEM_REFs into bit-field stores for small bit-field regions.
18603 (imm_store_chain_info::output_merged_store): Be prepared for sources
18604 with non-integral type in the bit-field insertion case.
18605 (pass_store_merging::process_store): Use MAX_BITSIZE_MODE_ANY_INT as
18606 the largest size for the bit-field case.
18607
18608 2020-05-25 Uroš Bizjak <ubizjak@gmail.com>
18609
18610 * config/i386/mmx.md (*vec_dupv2sf): Redefine as define_insn.
18611 (mmx_pshufw_1): Change Yv constraint to xYw. Correct type attribute.
18612 (*vec_dupv4hi): Redefine as define_insn.
18613 Remove alternative with general register input.
18614 (*vec_dupv2si): Ditto.
18615
18616 2020-05-25 Richard Biener <rguenther@suse.de>
18617
18618 PR tree-optimization/95309
18619 * tree-vect-slp.c (vect_get_constant_vectors): Move number
18620 of vector computation ...
18621 (vect_slp_analyze_node_operations): ... to analysis phase.
18622
18623 2020-05-25 Jan Hubicka <hubicka@ucw.cz>
18624
18625 * lto-streamer-out.c (lto_output_tree): Add streamer_debugging check.
18626 * lto-streamer.h (streamer_debugging): New constant
18627 * tree-streamer-in.c (streamer_read_tree_bitfields): Add
18628 streamer_debugging check.
18629 (streamer_get_pickled_tree): Likewise.
18630 * tree-streamer-out.c (pack_ts_base_value_fields): Likewise.
18631
18632 2020-05-25 Richard Biener <rguenther@suse.de>
18633
18634 PR tree-optimization/95308
18635 * tree-ssa-forwprop.c (pass_forwprop::execute): Generalize
18636 test for TARGET_MEM_REFs.
18637
18638 2020-05-25 Richard Biener <rguenther@suse.de>
18639
18640 PR tree-optimization/95295
18641 * tree-ssa-loop-im.c (sm_seq_valid_bb): Compare remat stores
18642 RHSes and drop to full sm_other if they are not equal.
18643
18644 2020-05-25 Richard Biener <rguenther@suse.de>
18645
18646 PR tree-optimization/95271
18647 * tree-vect-stmts.c (vectorizable_bswap): Update invariant SLP
18648 children vector type.
18649 (vectorizable_call): Pass down slp ops.
18650
18651 2020-05-25 Richard Biener <rguenther@suse.de>
18652
18653 PR tree-optimization/95297
18654 * tree-vect-stmts.c (vectorizable_shift): For scalar_shift_arg
18655 skip updating operand 1 vector type.
18656
18657 2020-05-25 Richard Biener <rguenther@suse.de>
18658
18659 PR tree-optimization/95284
18660 * tree-ssa-sink.c (sink_common_stores_to_bb): Amend previous
18661 fix.
18662
18663 2020-05-25 Hongtao Liu <hongtao.liu@intel.com>
18664
18665 PR target/95125
18666 * config/i386/sse.md (sf2dfmode_lower): New mode attribute.
18667 (trunc<mode><sf2dfmode_lower>2) New expander.
18668 (extend<sf2dfmode_lower><mode>2): Ditto.
18669
18670 2020-05-23 Iain Sandoe <iain@sandoe.co.uk>
18671
18672 * config/darwin.h (ASM_GENERATE_INTERNAL_LABEL): Make
18673 ubsan_{data,type},ASAN symbols linker-visible.
18674
18675 2020-05-22 Jan Hubicka <hubicka@ucw.cz>
18676
18677 * lto-streamer-out.c (DFS::DFS): Silence warning.
18678
18679 2020-05-22 Uroš Bizjak <ubizjak@gmail.com>
18680
18681 PR target/95255
18682 * config/i386/i386.md (<rounding_insn><mode>2): Do not try to
18683 expand non-sse4 ROUND_ROUNDEVEN rounding via SSE support routines.
18684
18685 2020-05-22 Jan Hubicka <hubicka@ucw.cz>
18686
18687 * lto-streamer-out.c (lto_output_tree): Do not stream final ref if
18688 it is not needed.
18689
18690 2020-05-22 Jan Hubicka <hubicka@ucw.cz>
18691
18692 * lto-section-out.c (lto_output_decl_index): Adjust dump indentation.
18693 * lto-streamer-out.c (create_output_block): Fix whitespace
18694 (lto_write_tree_1): Add (debug) dump.
18695 (DFS::DFS): Add dump.
18696 (DFS::DFS_write_tree_body): Do not dump here.
18697 (lto_output_tree): Improve dumping; do not stream ref when not needed.
18698 (produce_asm_for_decls): Fix whitespace.
18699 * tree-streamer-out.c (streamer_write_tree_header): Add dump.
18700 * tree-streamer-out.c (streamer_write_integer_cst): Add debug dump.
18701
18702 2020-05-22 Hongtao.liu <hongtao.liu@intel.com>
18703
18704 PR target/92658
18705 * config/i386/sse.md (trunc<pmov_src_lower><mode>2): New expander
18706 (truncv32hiv32qi2): Ditto.
18707 (trunc<ssedoublemodelower><mode>2): Ditto.
18708 (trunc<mode><pmov_dst_3>2): Ditto.
18709 (trunc<mode><pmov_dst_mode_4>2): Ditto.
18710 (truncv2div2si2): Ditto.
18711 (truncv8div8qi2): Ditto.
18712 (avx512f_<code>v8div16qi2): Renaming from *avx512f_<code>v8div16qi2.
18713 (avx512vl_<code>v2div2si): Renaming from *avx512vl_<code>v2div2si2.
18714 (avx512vl_<code><mode>v2<ssecakarnum>qi2): Renaming from
18715 *avx512vl_<code><mode>v<ssescalarnum>qi2.
18716
18717 2020-05-22 H.J. Lu <hongjiu.lu@intel.com>
18718
18719 PR target/95258
18720 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
18721 AVX512VPOPCNTDQ.
18722
18723 2020-05-22 Richard Biener <rguenther@suse.de>
18724
18725 PR tree-optimization/95268
18726 * tree-ssa-sink.c (sink_common_stores_to_bb): Handle clobbers
18727 properly.
18728
18729 2020-05-22 Jan Hubicka <hubicka@ucw.cz>
18730
18731 * tree-streamer.c (record_common_node): Fix hash value of pre-streamed
18732 nodes.
18733
18734 2020-05-22 Jan Hubicka <hubicka@ucw.cz>
18735
18736 * lto-streamer-in.c (lto_read_tree): Do not stream end markers.
18737 (lto_input_scc): Optimize streaming of entry lengths.
18738 * lto-streamer-out.c (lto_write_tree): Do not stream end markers
18739 (DFS::DFS): Optimize stremaing of entry lengths
18740
18741 2020-05-22 Richard Biener <rguenther@suse.de>
18742
18743 PR lto/95190
18744 * doc/invoke.texi (flto): Document behavior of diagnostic
18745 options.
18746
18747 2020-05-22 Richard Biener <rguenther@suse.de>
18748
18749 * tree-vectorizer.h (vect_is_simple_use): New overload.
18750 (vect_maybe_update_slp_op_vectype): New.
18751 * tree-vect-stmts.c (vect_is_simple_use): New overload
18752 accessing operands of SLP vs. non-SLP operation transparently.
18753 (vect_maybe_update_slp_op_vectype): New function updating
18754 the possibly shared SLP operands vector type.
18755 (vectorizable_operation): Be a bit more SLP vs non-SLP agnostic
18756 using the new vect_is_simple_use overload; update SLP invariant
18757 operand nodes vector type.
18758 (vectorizable_comparison): Likewise.
18759 (vectorizable_call): Likewise.
18760 (vectorizable_conversion): Likewise.
18761 (vectorizable_shift): Likewise.
18762 (vectorizable_store): Likewise.
18763 (vectorizable_condition): Likewise.
18764 (vectorizable_assignment): Likewise.
18765 * tree-vect-loop.c (vectorizable_reduction): Likewise.
18766 * tree-vect-slp.c (vect_get_constant_vectors): Enforce
18767 present SLP_TREE_VECTYPE and check it matches previous
18768 behavior.
18769
18770 2020-05-22 Richard Biener <rguenther@suse.de>
18771
18772 PR tree-optimization/95248
18773 * tree-ssa-loop-im.c (sm_seq_valid_bb): Remove bogus early out.
18774
18775 2020-05-22 Richard Biener <rguenther@suse.de>
18776
18777 * tree-vectorizer.h (_slp_tree::_slp_tree): New.
18778 (_slp_tree::~_slp_tree): Likewise.
18779 * tree-vect-slp.c (_slp_tree::_slp_tree): Factor out code
18780 from allocators.
18781 (_slp_tree::~_slp_tree): Implement.
18782 (vect_free_slp_tree): Simplify.
18783 (vect_create_new_slp_node): Likewise. Add nops parameter.
18784 (vect_build_slp_tree_2): Adjust.
18785 (vect_analyze_slp_instance): Likewise.
18786
18787 2020-05-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18788
18789 * adjust-alignment.c: Include memmodel.h.
18790
18791 2020-05-21 H.J. Lu <hongjiu.lu@intel.com>
18792
18793 PR target/95260
18794 * config/i386/cpuid.h: Use hexadecimal in comments.
18795
18796 2020-05-21 H.J. Lu <hongjiu.lu@intel.com>
18797
18798 PR target/95212
18799 * config/i386/i386-builtins.c (processor_features): Move
18800 F_AVX512VP2INTERSECT after F_AVX512BF16.
18801 (isa_names_table): Likewise.
18802
18803 2020-05-21 Martin Liska <mliska@suse.cz>
18804
18805 * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
18806 Handle OPT_moutline_atomics.
18807 * config/aarch64/aarch64.c: Add outline-atomics to
18808 aarch64_attributes.
18809 * doc/extend.texi: Document the newly added target attribute.
18810
18811 2020-05-21 Uroš Bizjak <ubizjak@gmail.com>
18812
18813 PR target/95218
18814
18815 * config/i386/mmx.md (*mmx_<code>v2sf): Do not mark
18816 operands 1 and 2 commutative. Manually swap operands.
18817 (*mmx_nabsv2sf2): Ditto.
18818
18819 Partially revert:
18820 2020-05-18 Uroš Bizjak <ubizjak@gmail.com>
18821
18822 * config/i386/i386.md (*<code>tf2_1):
18823 Mark operands 1 and 2 commutative.
18824 (*nabstf2_1): Ditto.
18825 * config/i386/sse.md (*<code><mode>2): Mark operands 1 and 2
18826 commutative. Do not swap operands.
18827 (*nabs<mode>2): Ditto.
18828
18829 2020-05-20 Uroš Bizjak <ubizjak@gmail.com>
18830
18831 PR target/95229
18832 * config/i386/sse.md (<code>v8qiv8hi2): Use
18833 simplify_gen_subreg instead of simplify_subreg.
18834 (<code>v8qiv8si2): Ditto.
18835 (<code>v4qiv4si2): Ditto.
18836 (<code>v4hiv4si2): Ditto.
18837 (<code>v8qiv8di2): Ditto.
18838 (<code>v4qiv4di2): Ditto.
18839 (<code>v2qiv2di2): Ditto.
18840 (<code>v4hiv4di2): Ditto.
18841 (<code>v2hiv2di2): Ditto.
18842 (<code>v2siv2di2): Ditto.
18843
18844 2020-05-20 Uroš Bizjak <ubizjak@gmail.com>
18845
18846 PR target/95238
18847 * config/i386/i386.md (*pushsi2_rex64):
18848 Use "e" constraint instead of "i".
18849
18850 2020-05-20 Jan Hubicka <hubicka@ucw.cz>
18851
18852 * lto-streamer-in.c (lto_input_scc): Add SHARED_SCC parameter.
18853 (lto_input_tree_1): Strenghten sanity check.
18854 (lto_input_tree): Update call of lto_input_scc.
18855 * lto-streamer-out.c: Include ipa-utils.h
18856 (create_output_block): Initialize local_trees if merigng is going
18857 to happen.
18858 (destroy_output_block): Destroy local_trees.
18859 (DFS): Add max_local_entry.
18860 (local_tree_p): New function.
18861 (DFS::DFS): Initialize and maintain it.
18862 (DFS::DFS_write_tree): Decide on streaming format.
18863 (lto_output_tree): Stream inline singleton SCCs
18864 * lto-streamer.h (enum LTO_tags): Add LTO_trees.
18865 (struct output_block): Add local_trees.
18866 (lto_input_scc): Update prototype.
18867
18868 2020-05-20 Patrick Palka <ppalka@redhat.com>
18869
18870 PR c++/95223
18871 * hash-table.h (hash_table::find_with_hash): Move up the call to
18872 hash_table::verify.
18873
18874 2020-05-20 Martin Liska <mliska@suse.cz>
18875
18876 * lto-compress.c (lto_compression_zstd): Fill up
18877 num_compressed_il_bytes.
18878 (lto_uncompression_zstd): Likewise for num_uncompressed_il_bytes here.
18879
18880 2020-05-20 Richard Biener <rguenther@suse.de>
18881
18882 PR tree-optimization/95219
18883 * tree-vect-loop.c (vectorizable_induction): Reduce
18884 group_size before computing the number of required IVs.
18885
18886 2020-05-20 Richard Biener <rguenther@suse.de>
18887
18888 PR middle-end/95231
18889 * tree-inline.c (remap_gimple_stmt): Revert adjusting
18890 COND_EXPR and VEC_COND_EXPR for a -fnon-call-exception boundary.
18891
18892 2020-05-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
18893 Andre Vieira <andre.simoesdiasvieira@arm.com>
18894
18895 PR target/94959
18896 * config/arm/arm-protos.h (arm_mode_base_reg_class): Function
18897 declaration.
18898 (mve_vector_mem_operand): Likewise.
18899 * config/arm/arm.c (thumb2_legitimate_address_p): For MVE target check
18900 the load from memory to a core register is legitimate for give mode.
18901 (mve_vector_mem_operand): Define function.
18902 (arm_print_operand): Modify comment.
18903 (arm_mode_base_reg_class): Define.
18904 * config/arm/arm.h (MODE_BASE_REG_CLASS): Modify to add check for
18905 TARGET_HAVE_MVE and expand to arm_mode_base_reg_class on TRUE.
18906 * config/arm/constraints.md (Ux): Likewise.
18907 (Ul): Likewise.
18908 * config/arm/mve.md (mve_mov): Replace constraint Us with Ux and also
18909 add support for missing Vector Store Register and Vector Load Register.
18910 Add a new alternative to support load from memory to PC (or label) in
18911 vector store/load.
18912 (mve_vstrbq_<supf><mode>): Modify constraint Us to Ux.
18913 (mve_vldrbq_<supf><mode>): Modify constriant Us to Ux, predicate to
18914 mve_memory_operand and also modify the MVE instructions to emit.
18915 (mve_vldrbq_z_<supf><mode>): Modify constraint Us to Ux.
18916 (mve_vldrhq_fv8hf): Modify constriant Us to Ux, predicate to
18917 mve_memory_operand and also modify the MVE instructions to emit.
18918 (mve_vldrhq_<supf><mode>): Modify constriant Us to Ux, predicate to
18919 mve_memory_operand and also modify the MVE instructions to emit.
18920 (mve_vldrhq_z_fv8hf): Likewise.
18921 (mve_vldrhq_z_<supf><mode>): Likewise.
18922 (mve_vldrwq_fv4sf): Likewise.
18923 (mve_vldrwq_<supf>v4si): Likewise.
18924 (mve_vldrwq_z_fv4sf): Likewise.
18925 (mve_vldrwq_z_<supf>v4si): Likewise.
18926 (mve_vld1q_f<mode>): Modify constriant Us to Ux.
18927 (mve_vld1q_<supf><mode>): Likewise.
18928 (mve_vstrhq_fv8hf): Modify constriant Us to Ux, predicate to
18929 mve_memory_operand.
18930 (mve_vstrhq_p_fv8hf): Modify constriant Us to Ux, predicate to
18931 mve_memory_operand and also modify the MVE instructions to emit.
18932 (mve_vstrhq_p_<supf><mode>): Likewise.
18933 (mve_vstrhq_<supf><mode>): Modify constriant Us to Ux, predicate to
18934 mve_memory_operand.
18935 (mve_vstrwq_fv4sf): Modify constriant Us to Ux.
18936 (mve_vstrwq_p_fv4sf): Modify constriant Us to Ux and also modify the MVE
18937 instructions to emit.
18938 (mve_vstrwq_p_<supf>v4si): Likewise.
18939 (mve_vstrwq_<supf>v4si): Likewise.Modify constriant Us to Ux.
18940 * config/arm/predicates.md (mve_memory_operand): Define.
18941
18942 2020-05-30 Richard Biener <rguenther@suse.de>
18943
18944 PR c/95141
18945 * c-fold.c (c_fully_fold_internal): Enhance guard on
18946 overflow_warning.
18947
18948 2020-05-20 Kito Cheng <kito.cheng@sifive.com>
18949
18950 PR target/90811
18951 * Makefile.in (OBJS): Add adjust-alignment.o.
18952 * adjust-alignment.c (pass_data_adjust_alignment): New.
18953 (pass_adjust_alignment): New.
18954 (pass_adjust_alignment::execute): New.
18955 (make_pass_adjust_alignment): New.
18956 * tree-pass.h (make_pass_adjust_alignment): New.
18957 * passes.def: Add pass_adjust_alignment.
18958
18959 2020-05-19 Alex Coplan <alex.coplan@arm.com>
18960
18961 PR target/94591
18962 * config/aarch64/aarch64.c (aarch64_evpc_rev_local): Don't match
18963 identity permutation.
18964
18965 2020-05-19 Jozef Lawrynowicz <jozef.l@mittosystems.com>
18966
18967 * doc/sourcebuild.texi: Document new short_eq_int, ptr_eq_short,
18968 msp430_small, msp430_large and size24plus DejaGNU effective
18969 targets.
18970 Improve grammar in descriptions for size20plus and size32plus effective
18971 targets.
18972
18973 2020-05-19 Jose E. Marchesi <jose.marchesi@oracle.com>
18974
18975 * config/bpf/bpf.c (bpf_compute_frame_layout): Include space for
18976 callee saved registers only in xBPF.
18977 (bpf_expand_prologue): Save callee saved registers only in xBPF.
18978 (bpf_expand_epilogue): Likewise for restoring.
18979 * doc/invoke.texi (eBPF Options): Document this is activated by
18980 -mxbpf.
18981
18982 2020-05-19 Jose E. Marchesi <jose.marchesi@oracle.com>
18983
18984 * config/bpf/bpf.opt (mxbpf): New option.
18985 * doc/invoke.texi (Option Summary): Add -mxbpf.
18986 (eBPF Options): Document -mxbbpf.
18987
18988 2020-05-19 Uroš Bizjak <ubizjak@gmail.com>
18989
18990 PR target/92658
18991 * config/i386/sse.md (<code>v16qiv16hi2): New expander.
18992 (<code>v32qiv32hi2): Ditto.
18993 (<code>v8qiv8hi2): Ditto.
18994 (<code>v16qiv16si2): Ditto.
18995 (<code>v8qiv8si2): Ditto.
18996 (<code>v4qiv4si2): Ditto.
18997 (<code>v16hiv16si2): Ditto.
18998 (<code>v8hiv8si2): Ditto.
18999 (<code>v4hiv4si2): Ditto.
19000 (<code>v8qiv8di2): Ditto.
19001 (<code>v4qiv4di2): Ditto.
19002 (<code>v2qiv2di2): Ditto.
19003 (<code>v8hiv8di2): Ditto.
19004 (<code>v4hiv4di2): Ditto.
19005 (<code>v2hiv2di2): Ditto.
19006 (<code>v8siv8di2): Ditto.
19007 (<code>v4siv4di2): Ditto.
19008 (<code>v2siv2di2): Ditto.
19009
19010 2020-05-19 Kito Cheng <kito.cheng@sifive.com>
19011
19012 * common/config/riscv/riscv-common.c (riscv_implied_info_t): New.
19013 (riscv_implied_info): New.
19014 (riscv_subset_list): Add handle_implied_ext.
19015 (riscv_subset_list::to_string): New parameter version_p to
19016 control output format.
19017 (riscv_subset_list::handle_implied_ext): New.
19018 (riscv_subset_list::parse_std_ext): Call handle_implied_ext.
19019 (riscv_arch_str): New parameter version_p to control output format.
19020 (riscv_expand_arch): New.
19021 * config/riscv/riscv-protos.h (riscv_arch_str): New parameter,
19022 version_p.
19023 * config/riscv/riscv.h (riscv_expand_arch): New,
19024 (EXTRA_SPEC_FUNCTIONS): Define.
19025 (ASM_SPEC): Transform -march= via riscv_expand_arch.
19026
19027 2020-05-19 Kito Cheng <kito.cheng@sifive.com>
19028
19029 * riscv-common.c (parse_sv_or_non_std_ext): Rename to
19030 parse_multiletter_ext.
19031 (parse_multiletter_ext): Add parsing `h` and `z`, drop `sx`,
19032 adjust parsing order for 's' and 'x'.
19033
19034 2020-05-19 Richard Biener <rguenther@suse.de>
19035
19036 * tree-vectorizer.h (_slp_tree::vectype): Add field.
19037 (SLP_TREE_VECTYPE): New.
19038 * tree-vect-slp.c (vect_create_new_slp_node): Initialize
19039 SLP_TREE_VECTYPE.
19040 (vect_create_new_slp_node): Likewise.
19041 (vect_prologue_cost_for_slp): Move here from tree-vect-stmts.c
19042 and simplify.
19043 (vect_slp_analyze_node_operations): Walk nodes children for
19044 invariant costing.
19045 (vect_get_constant_vectors): Use local scope op variable.
19046 * tree-vect-stmts.c (vect_prologue_cost_for_slp_op): Remove here.
19047 (vect_model_simple_cost): Adjust.
19048 (vect_model_store_cost): Likewise.
19049 (vectorizable_store): Likewise.
19050
19051 2020-05-18 Martin Sebor <msebor@redhat.com>
19052
19053 PR middle-end/92815
19054 * tree-object-size.c (decl_init_size): New function.
19055 (addr_object_size): Call it.
19056 * tree.h (last_field): Declare.
19057 (first_field): Add attribute nonnull.
19058
19059 2020-05-18 Martin Sebor <msebor@redhat.com>
19060
19061 PR middle-end/94940
19062 * tree-vrp.c (vrp_prop::check_mem_ref): Remove unreachable code.
19063 * tree.c (component_ref_size): Correct the handling or array members
19064 of unions.
19065 Drop a pointless test.
19066 Rename a local variable.
19067
19068 2020-05-18 Jason Merrill <jason@redhat.com>
19069
19070 * aclocal.m4: Add ax_cxx_compile_stdcxx.m4.
19071 * configure.ac: Use AX_CXX_COMPILE_STDCXX(11).
19072
19073 2020-05-14 Jason Merrill <jason@redhat.com>
19074
19075 * doc/install.texi (Prerequisites): Update boostrap compiler
19076 requirement to C++11/GCC 4.8.
19077
19078 2020-05-18 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
19079
19080 PR tree-optimization/94952
19081 * gimple-ssa-store-merging.c (pass_store_merging::process_store):
19082 Initialize variables bitpos, bitregion_start, and bitregion_end in
19083 order to silence warnings about use of uninitialized variables.
19084
19085 2020-05-18 Carl Love <cel@us.ibm.com>
19086
19087 PR target/94833
19088 * config/rs6000/vsx.md (define_expand): Fix instruction generation for
19089 first_match_index_<mode>.
19090 * testsuite/gcc.target/powerpc/builtins-8-p9-runnable.c (main): Add
19091 additional test cases with zero vector elements.
19092
19093 2020-05-18 Uroš Bizjak <ubizjak@gmail.com>
19094
19095 PR target/95169
19096 * config/i386/i386-expand.c (ix86_expand_int_movcc):
19097 Avoid reversing a non-trapping comparison to a trapping one.
19098
19099 2020-05-18 Alex Coplan <alex.coplan@arm.com>
19100
19101 * config/arm/arm.c (output_move_double): Fix codegen when loading into
19102 a register pair with an odd base register.
19103
19104 2020-05-18 Uroš Bizjak <ubizjak@gmail.com>
19105
19106 * config/i386/i386-expand.c (ix86_expand_fp_absneg_operator):
19107 Do not emit FLAGS_REG clobber for TFmode.
19108 * config/i386/i386.md (*<code>tf2_1): Rewrite as
19109 define_insn_and_split. Mark operands 1 and 2 commutative.
19110 (*nabstf2_1): Ditto.
19111 (absneg SSE splitter): Use MODEF mode iterator instead of SSEMODEF.
19112 Do not swap memory operands. Simplify RTX generation.
19113 (neg abs SSE splitter): Ditto.
19114 * config/i386/sse.md (*<code><mode>2): Mark operands 1 and 2
19115 commutative. Do not swap operands. Simplify RTX generation.
19116 (*nabs<mode>2): Ditto.
19117
19118 2020-05-18 Richard Biener <rguenther@suse.de>
19119
19120 * tree-vect-slp.c (vect_slp_bb): Start after labels.
19121 (vect_get_constant_vectors): Really place init stmt after scalar defs.
19122 * tree-vect-stmts.c (vect_init_vector_1): Insert before
19123 region begin.
19124
19125 2020-05-18 H.J. Lu <hongjiu.lu@intel.com>
19126
19127 * config/i386/driver-i386.c (host_detect_local_cpu): Support
19128 Intel Airmont, Tremont, Comet Lake, Ice Lake and Tiger Lake
19129 processor families.
19130
19131 2020-05-18 Richard Biener <rguenther@suse.de>
19132
19133 PR middle-end/95171
19134 * tree-inline.c (remap_gimple_stmt): Split out trapping compares
19135 when inlining into a non-call EH function.
19136
19137 2020-05-18 Richard Biener <rguenther@suse.de>
19138
19139 PR tree-optimization/95172
19140 * tree-ssa-loop-im.c (execute_sm): Get flag whether we
19141 eventually need the conditional processing.
19142 (execute_sm_exit): When processing an orderd sequence
19143 avoid doing any conditional processing.
19144 (hoist_memory_references): Pass down whether all edges
19145 have ordered processing for a ref to execute_sm.
19146
19147 2020-05-17 Jeff Law <law@redhat.com>
19148
19149 * config/h8300/predicates.md (pc_or_label_operand): New predicate.
19150 * config/h8300/jumpcall.md (branch_true, branch_false): Consolidate
19151 into a single pattern using pc_or_label_operand.
19152 * config/h8300/combiner.md (bit branch patterns): Likewise.
19153 * config/h8300/peepholes.md (HImode and SImode branches): Likewise.
19154
19155 2020-05-17 H.J. Lu <hongjiu.lu@intel.com>
19156
19157 PR target/95021
19158 * config/i386/i386-features.c (has_non_address_hard_reg):
19159 Renamed to ...
19160 (pseudo_reg_set): This. Return the SET expression. Ignore
19161 pseudo register push.
19162 (general_scalar_to_vector_candidate_p): Combine single_set and
19163 has_non_address_hard_reg calls to pseudo_reg_set.
19164 (timode_scalar_to_vector_candidate_p): Likewise.
19165 * config/i386/i386.md (*pushv1ti2): New pattern.
19166
19167 2020-05-17 Aldy Hernandez <aldyh@redhat.com>
19168
19169 Revert:
19170 2020-05-17 Aldy Hernandez <aldyh@redhat.com>
19171
19172 * tree-vrp.c (operand_less_p): Move to...
19173 * vr-values.c (operand_less_p): ...here.
19174 * tree-vrp.h (operand_less_p): Remove.
19175
19176 2020-05-17 Aldy Hernandez <aldyh@redhat.com>
19177
19178 * tree-vrp.c (operand_less_p): Move to...
19179 * vr-values.c (operand_less_p): ...here.
19180 * tree-vrp.h (operand_less_p): Remove.
19181
19182 2020-05-17 Aldy Hernandez <aldyh@redhat.com>
19183
19184 * tree-vrp.c (class vrp_insert): Remove prototype for
19185 live_on_edge.
19186
19187 2020-05-17 Aldy Hernandez <aldyh@redhat.com>
19188
19189 * tree-vrp.c (class live_names): New.
19190 (live_on_edge): Move into live_names.
19191 (build_assert_expr_for): Move into vrp_insert.
19192 (find_assert_locations_in_bb): Rename from
19193 find_assert_locations_1.
19194 (process_assert_insertions_for): Move into vrp_insert.
19195 (compare_assert_loc): Same.
19196 (remove_range_assertions): Same.
19197 (dump_asserts_for): Rename to vrp_insert::dump.
19198 (debug_asserts_for): Rename to vrp_insert::debug.
19199 (dump_all_asserts): Rename to vrp_insert::dump.
19200 (debug_all_asserts): Rename to vrp_insert::debug.
19201
19202 2020-05-17 Aldy Hernandez <aldyh@redhat.com>
19203
19204 * tree-vrp.c (class vrp_prop): Move check_all_array_refs,
19205 check_array_ref, check_mem_ref, and search_for_addr_array
19206 into new class...
19207 (class array_bounds_checker): ...here.
19208 (class check_array_bounds_dom_walker): Adjust to use
19209 array_bounds_checker.
19210 (check_all_array_refs): Move into array_bounds_checker and rename
19211 to check.
19212 (class vrp_folder): Make fold_predicate_in private.
19213
19214 2020-05-15 Jeff Law <law@redhat.com>
19215
19216 * config/h8300/h8300.md (SFI iterator): New iterator for
19217 SFmode and SImode.
19218 * config/h8300/peepholes.md (memory comparison): Use mode
19219 iterator to consolidate 3 patterns into one.
19220 (stack allocation and stack store): Handle SFmode. Handle
19221 8 byte allocations.
19222
19223 2020-05-15 Segher Boessenkool <segher@kernel.crashing.org>
19224
19225 * config/rs6000/rs6000-builtin.def (BU_FUTURE_MISC_2): Also require
19226 RS6000_BTM_POWERPC64.
19227
19228 2020-05-15 Uroš Bizjak <ubizjak@gmail.com>
19229
19230 * config/i386/i386.md (SWI48DWI): New mode iterator.
19231 (*push<mode>2): Allow XMM registers.
19232 (*pushdi2_rex64): Ditto.
19233 (*pushsi2_rex64): Ditto.
19234 (*pushsi2): Ditto.
19235 (push XMM reg splitter): New splitter
19236
19237 (*pushdf) Change "x" operand constraint to "v".
19238 (*pushsf_rex64): Ditto.
19239 (*pushsf): Ditto.
19240
19241 2020-05-15 Richard Biener <rguenther@suse.de>
19242
19243 PR tree-optimization/92260
19244 * tree-vect-slp.c (vect_get_constant_vectors): Compute
19245 the number of vector stmts in a canonical way.
19246
19247 2020-05-15 Martin Liska <mliska@suse.cz>
19248
19249 * hsa-gen.c (get_symbol_for_decl): Fix misleading indentation
19250 warning.
19251
19252 2020-05-15 Andrew Stubbs <ams@codesourcery.com>
19253
19254 * config/gcn/gcn-valu.md (v<expander><mode>3): Fix unsignedp.
19255
19256 2020-05-15 Richard Biener <rguenther@suse.de>
19257
19258 PR tree-optimization/95133
19259 * gimple-ssa-split-paths.c
19260 (find_block_to_duplicate_for_splitting_paths): Check for
19261 normal edges.
19262
19263 2020-05-15 Christophe Lyon <christophe.lyon@linaro.org>
19264
19265 * config/arm/arm.c (reg_needs_saving_p): Add support for interrupt
19266 routines.
19267 (arm_compute_save_reg0_reg12_mask): Use reg_needs_saving_p.
19268
19269 2020-05-15 Tobias Burnus <tobias@codesourcery.com>
19270
19271 PR middle-end/94635
19272 * gimplify.c (gimplify_scan_omp_clauses): For MAP_TO_PSET with
19273 OMP_TARGET_EXIT_DATA, use 'release:' unless the associated
19274 item is 'delete:'.
19275
19276 2020-05-15 Uroš Bizjak <ubizjak@gmail.com>
19277
19278 PR target/95046
19279 * config/i386/i386.md (isa): Add sse3_noavx.
19280 (enabled): Handle sse3_noavx.
19281
19282 * config/i386/mmx.md (mmx_haddv2sf3): New expander.
19283 (*mmx_haddv2sf3): Rename from mmx_haddv2sf3. Add SSE/AVX
19284 alternatives. Match commutative vec_select selector operands.
19285 (*mmx_haddv2sf3_low): New insn pattern.
19286
19287 (*mmx_hsubv2sf3): Add SSE/AVX alternatives.
19288 (*mmx_hsubv2sf3_low): New insn pattern.
19289
19290 2020-05-15 Richard Biener <rguenther@suse.de>
19291
19292 PR tree-optimization/33315
19293 * tree-ssa-sink.c: Include tree-eh.h.
19294 (sink_stats): Add commoned member.
19295 (sink_common_stores_to_bb): New function implementing store
19296 commoning by sinking to the successor.
19297 (sink_code_in_bb): Call it, pass down TODO_cleanup_cfg returned.
19298 (pass_sink_code::execute): Likewise. Record commoned stores
19299 in statistics.
19300
19301 2020-05-14 Xiong Hu Luo <luoxhu@linux.ibm.com>
19302
19303 PR rtl-optimization/37451, part of PR target/61837
19304 * loop-doloop.c (doloop_simplify_count): New function. Simplify
19305 (add -1; zero_ext; add +1) to zero_ext when not wrapping.
19306 (doloop_modify): Call doloop_simplify_count.
19307
19308 2020-05-14 H.J. Lu <hongjiu.lu@intel.com>
19309
19310 PR jit/94778
19311 * doc/sourcebuild.texi: Document effective target lgccjit.
19312
19313 2020-05-14 Andrew Stubbs <ams@codesourcery.com>
19314
19315 * config/gcn/gcn-valu.md (add<mode>3_zext_dup): Change to a
19316 define_expand, and rename the original to ...
19317 (add<mode>3_vcc_zext_dup): ... this, and add a custom VCC operand.
19318 (add<mode>3_zext_dup_exec): Likewise, with ...
19319 (add<mode>3_vcc_zext_dup_exec): ... this.
19320 (add<mode>3_zext_dup2): Likewise, with ...
19321 (add<mode>3_zext_dup_exec): ... this.
19322 (add<mode>3_zext_dup2_exec): Likewise, with ...
19323 (add<mode>3_zext_dup2): ... this.
19324 * config/gcn/gcn.c (gcn_expand_scalar_to_vector_address): Switch
19325 addv64di3_zext* calls to use addv64di3_vcc_zext*.
19326
19327 2020-05-14 Uroš Bizjak <ubizjak@gmail.com>
19328
19329 PR target/95046
19330 * config/i386/sse.md (truncv2dfv2df2): New insn pattern.
19331 (extendv2sfv2df2): Ditto.
19332
19333 2020-05-14 H.J. Lu <hongjiu.lu@intel.com>
19334
19335 * configure: Regenerated.
19336
19337 2020-05-14 Christophe Lyon <christophe.lyon@linaro.org>
19338
19339 * config/arm/arm.c (reg_needs_saving_p): New function.
19340 (use_return_insn): Use reg_needs_saving_p.
19341 (arm_get_vfp_saved_size): Likewise.
19342 (arm_compute_frame_layout): Likewise.
19343 (arm_save_coproc_regs): Likewise.
19344 (thumb1_expand_epilogue): Likewise.
19345 (arm_expand_epilogue_apcs_frame): Likewise.
19346 (arm_expand_epilogue): Likewise.
19347
19348 2020-05-14 Christophe Lyon <christophe.lyon@linaro.org>
19349
19350 * config/arm/arm.c (thumb1_expand_prologue): Update error message.
19351
19352 2020-05-14 Uroš Bizjak <ubizjak@gmail.com>
19353
19354 PR target/95046
19355 * config/i386/sse.md (sse2_cvtpi2pd): Add memory to alternative 1.
19356
19357 (floatv2siv2df2): New expander.
19358 (floatunsv2siv2df2): New insn pattern.
19359
19360 (fix_truncv2dfv2si2): New expander.
19361 (fixuns_truncv2dfv2si2): New insn pattern.
19362
19363 2020-05-14 Richard Sandiford <richard.sandiford@arm.com>
19364
19365 PR target/95105
19366 * config/aarch64/aarch64-sve-builtins.cc
19367 (handle_arm_sve_vector_bits_attribute): Create a copy of the
19368 original type's TYPE_MAIN_VARIANT, then reapply all the differences
19369 between the original type and its main variant.
19370
19371 2020-05-14 Richard Biener <rguenther@suse.de>
19372
19373 PR middle-end/95118
19374 * real.c (real_to_decimal_for_mode): Make sure we handle
19375 a zero with nonzero exponent.
19376
19377 2020-05-14 Jakub Jelinek <jakub@redhat.com>
19378
19379 * Makefile.in (GTFILES): Add omp-general.c.
19380 * cgraph.h (struct cgraph_node): Add declare_variant_alt and
19381 calls_declare_variant_alt members and initialize them in the
19382 ctor.
19383 * ipa.c (symbol_table::remove_unreachable_nodes): Handle direct
19384 calls to declare_variant_alt nodes.
19385 * lto-cgraph.c (lto_output_node): Write declare_variant_alt
19386 and calls_declare_variant_alt.
19387 (input_overwrite_node): Read them back.
19388 * omp-simd-clone.c (simd_clone_create): Copy calls_declare_variant_alt
19389 bit.
19390 * tree-inline.c (expand_call_inline): Or in calls_declare_variant_alt
19391 bit.
19392 (tree_function_versioning): Copy calls_declare_variant_alt bit.
19393 * omp-offload.c (execute_omp_device_lower): Call
19394 omp_resolve_declare_variant on direct function calls.
19395 (pass_omp_device_lower::gate): Also enable for
19396 calls_declare_variant_alt functions.
19397 * omp-general.c (omp_maybe_offloaded): Return false after inlining.
19398 (omp_context_selector_matches): Handle the case when
19399 cfun->curr_properties has PROP_gimple_any bit set.
19400 (struct omp_declare_variant_entry): New type.
19401 (struct omp_declare_variant_base_entry): New type.
19402 (struct omp_declare_variant_hasher): New type.
19403 (omp_declare_variant_hasher::hash, omp_declare_variant_hasher::equal):
19404 New methods.
19405 (omp_declare_variants): New variable.
19406 (struct omp_declare_variant_alt_hasher): New type.
19407 (omp_declare_variant_alt_hasher::hash,
19408 omp_declare_variant_alt_hasher::equal): New methods.
19409 (omp_declare_variant_alt): New variables.
19410 (omp_resolve_late_declare_variant): New function.
19411 (omp_resolve_declare_variant): Call omp_resolve_late_declare_variant
19412 when called late. Create a magic declare_variant_alt fndecl and
19413 cgraph node and return that if decision needs to be deferred until
19414 after gimplification.
19415 * cgraph.c (symbol_table::create_edge): Or in calls_declare_variant_alt
19416 bit.
19417
19418 PR middle-end/95108
19419 * omp-simd-clone.c (struct modify_stmt_info): Add after_stmt member.
19420 (ipa_simd_modify_stmt_ops): For PHIs, only add before first stmt in
19421 entry block if info->after_stmt is NULL, otherwise add after that stmt
19422 and update it after adding each stmt.
19423 (ipa_simd_modify_function_body): Initialize info.after_stmt.
19424
19425 * function.h (struct function): Add has_omp_target bit.
19426 * omp-offload.c (omp_discover_declare_target_fn_r): New function,
19427 old renamed to ...
19428 (omp_discover_declare_target_tgt_fn_r): ... this.
19429 (omp_discover_declare_target_var_r): Call
19430 omp_discover_declare_target_tgt_fn_r instead of
19431 omp_discover_declare_target_fn_r.
19432 (omp_discover_implicit_declare_target): Also queue functions with
19433 has_omp_target bit set, for those walk with
19434 omp_discover_declare_target_fn_r, for declare target to functions
19435 walk with omp_discover_declare_target_tgt_fn_r.
19436
19437 2020-05-14 Uroš Bizjak <ubizjak@gmail.com>
19438
19439 PR target/95046
19440 * config/i386/mmx.md (mmx_fix_truncv2sfv2si2): Rename from mmx_pf2id.
19441 Add SSE/AVX alternative. Change operand predicates from
19442 nonimmediate_operand to register_mmxmem_operand.
19443 Enable instruction pattern for TARGET_MMX_WITH_SSE.
19444 (fix_truncv2sfv2si2): New expander.
19445 (fixuns_truncv2sfv2si2): New insn pattern.
19446
19447 (mmx_floatv2siv2sf2): rename from mmx_floatv2si2.
19448 Add SSE/AVX alternative. Change operand predicates from
19449 nonimmediate_operand to register_mmxmem_operand.
19450 Enable instruction pattern for TARGET_MMX_WITH_SSE.
19451 (floatv2siv2sf2): New expander.
19452 (floatunsv2siv2sf2): New insn pattern.
19453
19454 * config/i386/i386-builtin.def (IX86_BUILTIN_PF2ID):
19455 Update for rename.
19456 (IX86_BUILTIN_PI2FD): Ditto.
19457
19458 2020-05-14 Andreas Krebbel <krebbel@linux.ibm.com>
19459
19460 * config/s390/s390.c (s390_emit_stack_probe): Call the probe_stack
19461 expander.
19462 * config/s390/s390.md ("@probe_stack2<mode>", "probe_stack"): New
19463 expanders.
19464
19465 2020-05-14 Andreas Krebbel <krebbel@linux.ibm.com>
19466
19467 * config/s390/s390.c (allocate_stack_space): Add missing updates
19468 of last_probe_offset.
19469
19470 2020-05-14 Andreas Krebbel <krebbel@linux.ibm.com>
19471
19472 * config/s390/s390.md ("allocate_stack"): Call
19473 anti_adjust_stack_and_probe_stack_clash when stack clash
19474 protection is enabled.
19475 * explow.c (anti_adjust_stack_and_probe_stack_clash): Remove
19476 prototype. Remove static.
19477 * explow.h (anti_adjust_stack_and_probe_stack_clash): Add
19478 prototype.
19479
19480 2020-05-13 Kelvin Nilsen <kelvin@gcc.gnu.org>
19481
19482 * config/rs6000/altivec.h (vec_extractl): New #define.
19483 (vec_extracth): Likewise.
19484 * config/rs6000/altivec.md (UNSPEC_EXTRACTL): New constant.
19485 (UNSPEC_EXTRACTR): Likewise.
19486 (vextractl<mode>): New expansion.
19487 (vextractl<mode>_internal): New insn.
19488 (vextractr<mode>): New expansion.
19489 (vextractr<mode>_internal): New insn.
19490 * config/rs6000/rs6000-builtin.def (__builtin_altivec_vextdubvlx):
19491 New built-in function.
19492 (__builtin_altivec_vextduhvlx): Likewise.
19493 (__builtin_altivec_vextduwvlx): Likewise.
19494 (__builtin_altivec_vextddvlx): Likewise.
19495 (__builtin_altivec_vextdubvhx): Likewise.
19496 (__builtin_altivec_vextduhvhx): Likewise.
19497 (__builtin_altivec_vextduwvhx): Likewise.
19498 (__builtin_altivec_vextddvhx): Likewise.
19499 (__builtin_vec_extractl): New overloaded built-in function.
19500 (__builtin_vec_extracth): Likewise.
19501 * config/rs6000/rs6000-call.c (altivec_overloaded_builtins):
19502 Define overloaded forms of __builtin_vec_extractl and
19503 __builtin_vec_extracth.
19504 (builtin_function_type): Add cases to mark arguments of new
19505 built-in functions as unsigned.
19506 (rs6000_common_init_builtins): Add
19507 opaque_ftype_opaque_opaque_opaque_opaque.
19508 * config/rs6000/rs6000.md (du_or_d): New mode attribute.
19509 * doc/extend.texi (PowerPC AltiVec Built-in Functions Available
19510 for a Future Architecture): Add description of vec_extractl and
19511 vec_extractr built-in functions.
19512
19513 2020-05-13 Richard Biener <rguenther@suse.de>
19514
19515 * target.def (add_stmt_cost): Add new vectype parameter.
19516 * targhooks.c (default_add_stmt_cost): Adjust.
19517 * targhooks.h (default_add_stmt_cost): Likewise.
19518 * config/aarch64/aarch64.c (aarch64_add_stmt_cost): Take new
19519 vectype parameter.
19520 * config/arm/arm.c (arm_add_stmt_cost): Likewise.
19521 * config/i386/i386.c (ix86_add_stmt_cost): Likewise.
19522 * config/rs6000/rs6000.c (rs6000_add_stmt_cost): Likewise.
19523
19524 * tree-vectorizer.h (stmt_info_for_cost::vectype): Add.
19525 (dump_stmt_cost): Add new vectype parameter.
19526 (add_stmt_cost): Likewise.
19527 (record_stmt_cost): Likewise.
19528 (record_stmt_cost): Add overload with old signature.
19529 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
19530 Adjust.
19531 (vect_get_known_peeling_cost): Likewise.
19532 (vect_estimate_min_profitable_iters): Likewise.
19533 * tree-vectorizer.c (dump_stmt_cost): Add new vectype parameter.
19534 * tree-vect-stmts.c (record_stmt_cost): Likewise.
19535 (vect_prologue_cost_for_slp_op): Remove stmt_vec_info parameter
19536 and pass down correct vectype and NULL stmt_info.
19537 (vect_model_simple_cost): Adjust.
19538 (vect_model_store_cost): Likewise.
19539
19540 2020-05-13 Richard Biener <rguenther@suse.de>
19541
19542 * tree-vectorizer.h (SLP_INSTANCE_GROUP_SIZE): Remove.
19543 (_slp_instance::group_size): Likewise.
19544 * tree-vect-loop.c (vectorizable_reduction): The group size
19545 is the number of lanes in the node.
19546 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Likewise.
19547 (vect_analyze_slp_instance): Do not set SLP_INSTANCE_GROUP_SIZE,
19548 verify it matches the instance trees number of lanes.
19549 (vect_slp_analyze_node_operations_1): Use the numer of lanes
19550 in the node as group size.
19551 (vect_bb_vectorization_profitable_p): Use the instance root
19552 number of lanes for the size of life.
19553 (vect_schedule_slp_instance): Use the number of lanes as
19554 group_size.
19555 * tree-vect-stmts.c (vectorizable_load): Remove SLP instance
19556 parameter. Use the number of lanes of the load for the group
19557 size in the gap adjustment code.
19558 (vect_analyze_stmt): Adjust.
19559 (vect_transform_stmt): Likewise.
19560
19561 2020-05-13 Jakub Jelinek <jakub@redhat.com>
19562
19563 PR debug/95080
19564 * cfgrtl.c (purge_dead_edges): Skip over debug and note insns even
19565 if the last insn is a note.
19566
19567 PR tree-optimization/95060
19568 * tree-ssa-math-opts.c (convert_mult_to_fma_1): Fold a NEGATE_EXPR
19569 if it is the single use of the FMA internal builtin.
19570
19571 2020-05-13 Bin Cheng <bin.cheng@linux.alibaba.com>
19572
19573 PR tree-optimization/94969
19574 * tree-data-dependence.c (constant_access_functions): Rename to...
19575 (invariant_access_functions): ...this. Add parameter. Check for
19576 invariant access function, rather than constant.
19577 (build_classic_dist_vector): Call above function.
19578 * tree-loop-distribution.c (pg_add_dependence_edges): Add comment.
19579
19580 2020-05-13 Hongtao Liu <hongtao.liu@intel.com>
19581
19582 PR target/94118
19583 * doc/extend.texi (x86Operandmodifiers): Document more x86
19584 operand modifier.
19585 * gcc/config/i386/i386.c: Add comment for operand modifier N and I.
19586
19587 2020-05-12 Giuliano Belinassi <giuliano.belinassi@usp.br>
19588
19589 * tree-vrp.c (class vrp_insert): New.
19590 (insert_range_assertions): Move to class vrp_insert.
19591 (dump_all_asserts): Same as above.
19592 (dump_asserts_for): Same as above.
19593 (live): Same as above.
19594 (need_assert_for): Same as above.
19595 (live_on_edge): Same as above.
19596 (finish_register_edge_assert_for): Same as above.
19597 (find_switch_asserts): Same as above.
19598 (find_assert_locations): Same as above.
19599 (find_assert_locations_1): Same as above.
19600 (find_conditional_asserts): Same as above.
19601 (process_assert_insertions): Same as above.
19602 (register_new_assert_for): Same as above.
19603 (vrp_prop): New variable fun.
19604 (vrp_initialize): New parameter.
19605 (identify_jump_threads): Same as above.
19606 (execute_vrp): Same as above.
19607
19608
19609 2020-05-12 Keith Packard <keith.packard@sifive.com>
19610
19611 * config/riscv/riscv.c (riscv_unique_section): New.
19612 (TARGET_ASM_UNIQUE_SECTION): New.
19613
19614 2020-05-12 Craig Blackmore <craig.blackmore@embecosm.com>
19615
19616 * config.gcc: Add riscv-shorten-memrefs.o to extra_objs for riscv.
19617 * config/riscv/riscv-passes.def: New file.
19618 * config/riscv/riscv-protos.h (make_pass_shorten_memrefs): Declare.
19619 * config/riscv/riscv-shorten-memrefs.c: New file.
19620 * config/riscv/riscv.c (tree-pass.h): New include.
19621 (riscv_compressed_reg_p): New Function
19622 (riscv_compressed_lw_offset_p): Likewise.
19623 (riscv_compressed_lw_address_p): Likewise.
19624 (riscv_shorten_lw_offset): Likewise.
19625 (riscv_legitimize_address): Attempt to convert base + large_offset
19626 to compressible new_base + small_offset.
19627 (riscv_address_cost): Make anticipated compressed load/stores
19628 cheaper for code size than uncompressed load/stores.
19629 (riscv_register_priority): Move compressed register check to
19630 riscv_compressed_reg_p.
19631 * config/riscv/riscv.h (C_S_BITS): Define.
19632 (CSW_MAX_OFFSET): Define.
19633 * config/riscv/riscv.opt (mshorten-memefs): New option.
19634 * config/riscv/t-riscv (riscv-shorten-memrefs.o): New rule.
19635 (PASSES_EXTRA): Add riscv-passes.def.
19636 * doc/invoke.texi: Document -mshorten-memrefs.
19637
19638 * config/riscv/riscv.c (riscv_new_address_profitable_p): New function.
19639 (TARGET_NEW_ADDRESS_PROFITABLE_P): Define.
19640 * doc/tm.texi: Regenerate.
19641 * doc/tm.texi.in (TARGET_NEW_ADDRESS_PROFITABLE_P): New hook.
19642 * sched-deps.c (attempt_change): Use old address if it is cheaper than
19643 new address.
19644 * target.def (new_address_profitable_p): New hook.
19645 * targhooks.c (default_new_address_profitable_p): New function.
19646 * targhooks.h (default_new_address_profitable_p): Declare.
19647
19648 2020-05-12 Uroš Bizjak <ubizjak@gmail.com>
19649
19650 PR target/95046
19651 * config/i386/mmx.md (copysignv2sf3): New expander.
19652 (xorsignv2sf3): Ditto.
19653 (signbitv2sf3): Ditto.
19654
19655 2020-05-12 Uroš Bizjak <ubizjak@gmail.com>
19656
19657 PR target/95046
19658 * config/i386/mmx.md (fmav2sf4): New insn pattern.
19659 (fmsv2sf4): Ditto.
19660 (fnmav2sf4): Ditto.
19661 (fnmsv2sf4): Ditto.
19662
19663 2020-05-12 H.J. Lu <hongjiu.lu@intel.com>
19664
19665 * Makefile.in (CET_HOST_FLAGS): New.
19666 (COMPILER): Add $(CET_HOST_FLAGS).
19667 * configure.ac: Add GCC_CET_HOST_FLAGS(CET_HOST_FLAGS) and
19668 AC_SUBST(CET_HOST_FLAGS). Clear CET_HOST_FLAGS if jit isn't
19669 enabled.
19670 * aclocal.m4: Regenerated.
19671 * configure: Likewise.
19672
19673 2020-05-12 Uroš Bizjak <ubizjak@gmail.com>
19674
19675 PR target/95046
19676 * config/i386/mmx.md (<code>v2sf2): New insn pattern.
19677 (*mmx_<code>v2sf2): New insn_and_split pattern.
19678 (*mmx_nabsv2sf2): Ditto.
19679 (*mmx_andnotv2sf3): New insn pattern.
19680 (*mmx_<code>v2sf3): Ditto.
19681 * config/i386/i386.md (absneg_op): New code attribute.
19682 * config/i386/i386.c (ix86_build_const_vector): Handle V2SFmode.
19683 (ix86_build_signbit_mask): Ditto.
19684
19685 2020-05-12 Richard Biener <rguenther@suse.de>
19686
19687 * tree-ssa-live.c (remove_unused_locals): Remove dead debug
19688 bind resets.
19689
19690 2020-05-12 Jozef Lawrynowicz <jozef.l@mittosystems.com>
19691
19692 * config/msp430/msp430-protos.h (msp430_output_aligned_decl_common):
19693 Update prototype to include "local" argument.
19694 * config/msp430/msp430.c (msp430_output_aligned_decl_common): Add
19695 "local" argument. Handle local common decls.
19696 * config/msp430/msp430.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Adjust
19697 msp430_output_aligned_decl_common call with 0 for "local" argument.
19698 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
19699
19700 2020-05-12 Richard Biener <rguenther@suse.de>
19701
19702 * cfghooks.c (split_edge): Preserve EDGE_DFS_BACK if set.
19703
19704 2020-05-12 Martin Liska <mliska@suse.cz>
19705
19706 PR sanitizer/95033
19707 PR sanitizer/95051
19708 * sanopt.c (sanitize_rewrite_addressable_params):
19709 Clear DECL_NOT_GIMPLE_REG_P for argument.
19710
19711 2020-05-12 Richard Sandiford <richard.sandiford@arm.com>
19712
19713 PR tree-optimization/94980
19714 * tree-vect-generic.c (expand_vector_comparison): Use
19715 vector_element_bits_tree to get the element size in bits,
19716 rather than using TYPE_SIZE.
19717 (expand_vector_condition, vector_element): Likewise.
19718
19719 2020-05-12 Richard Sandiford <richard.sandiford@arm.com>
19720
19721 PR tree-optimization/94980
19722 * tree-vect-generic.c (build_replicated_const): Take the number
19723 of bits as a parameter, instead of the type of the elements.
19724 (do_plus_minus): Update accordingly, using vector_element_bits
19725 to calculate the correct number of bits.
19726 (do_negate): Likewise.
19727
19728 2020-05-12 Richard Sandiford <richard.sandiford@arm.com>
19729
19730 PR tree-optimization/94980
19731 * tree.h (vector_element_bits, vector_element_bits_tree): Declare.
19732 * tree.c (vector_element_bits, vector_element_bits_tree): New.
19733 * match.pd: Use the new functions instead of determining the
19734 vector element size directly from TYPE_SIZE(_UNIT).
19735 * tree-vect-data-refs.c (vect_gather_scatter_fn_p): Likewise.
19736 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Likewise.
19737 * tree-vect-stmts.c (vect_is_simple_cond): Likewise.
19738 * tree-vect-generic.c (expand_vector_piecewise): Likewise.
19739 (expand_vector_conversion): Likewise.
19740 (expand_vector_addition): Likewise for a TYPE_SIZE_UNIT used as
19741 a divisor. Convert the dividend to bits to compensate.
19742 * tree-vect-loop.c (vectorizable_live_operation): Call
19743 vector_element_bits instead of open-coding it.
19744
19745 2020-05-12 Jakub Jelinek <jakub@redhat.com>
19746
19747 * omp-offload.h (omp_discover_implicit_declare_target): Declare.
19748 * omp-offload.c: Include context.h.
19749 (omp_declare_target_fn_p, omp_declare_target_var_p,
19750 omp_discover_declare_target_fn_r, omp_discover_declare_target_var_r,
19751 omp_discover_implicit_declare_target): New functions.
19752 * cgraphunit.c (analyze_functions): Call
19753 omp_discover_implicit_declare_target.
19754
19755 2020-05-12 Richard Biener <rguenther@suse.de>
19756
19757 * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Canonicalize
19758 literal constant &MEM[..] to a constant literal.
19759
19760 2020-05-12 Richard Biener <rguenther@suse.de>
19761
19762 PR tree-optimization/95045
19763 * dbgcnt.def (lim): Add debug-counter.
19764 * tree-ssa-loop-im.c: Include dbgcnt.h.
19765 (find_refs_for_sm): Use lim debug counter for store motion
19766 candidates.
19767 (do_store_motion): Rename form store_motion. Commit edge
19768 insertions...
19769 (store_motion_loop): ... here.
19770 (tree_ssa_lim): Adjust.
19771
19772 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
19773
19774 * config/rs6000/altivec.h (vec_clzm): Rename to vec_cntlzm.
19775 (vec_ctzm): Rename to vec_cnttzm.
19776 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
19777 Change fourth operand for vec_ternarylogic to require
19778 compatibility with unsigned SImode rather than unsigned QImode.
19779 * config/rs6000/rs6000-call.c (altivec_overloaded_builtins):
19780 Remove overloaded forms of vec_gnb that are no longer needed.
19781 * doc/extend.texi (PowerPC AltiVec Built-in Functions Available
19782 for a Future Architecture): Replace vec_clzm with vec_cntlzm;
19783 replace vec_ctzm with vec_cntlzm; remove four unwanted forms of
19784 vec_gnb; move vec_ternarylogic documentation into this section
19785 and replace const unsigned char with const unsigned int as its
19786 fourth argument.
19787
19788 2020-05-11 Carl Love <cel@us.ibm.com>
19789
19790 * config/rs6000/altivec.h (vec_genpcvm): New #define.
19791 * config/rs6000/rs6000-builtin.def (XXGENPCVM_V16QI): New built-in
19792 instantiation.
19793 (XXGENPCVM_V8HI): Likewise.
19794 (XXGENPCVM_V4SI): Likewise.
19795 (XXGENPCVM_V2DI): Likewise.
19796 (XXGENPCVM): New overloaded built-in instantiation.
19797 * config/rs6000/rs6000-call.c (altivec_overloaded_builtins): Add
19798 entries for FUTURE_BUILTIN_VEC_XXGENPCVM.
19799 (altivec_expand_builtin): Add special handling for
19800 FUTURE_BUILTIN_VEC_XXGENPCVM.
19801 (builtin_function_type): Add handling for
19802 FUTURE_BUILTIN_XXGENPCVM_{V16QI,V8HI,V4SI,V2DI}.
19803 * config/rs6000/vsx.md (VSX_EXTRACT_I4): New mode iterator.
19804 (UNSPEC_XXGENPCV): New constant.
19805 (xxgenpcvm_<mode>_internal): New insn.
19806 (xxgenpcvm_<mode>): New expansion.
19807 * doc/extend.texi: Add documentation for vec_genpcvm built-ins.
19808
19809 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
19810
19811 * config/rs6000/altivec.h (vec_strir): New #define.
19812 (vec_stril): Likewise.
19813 (vec_strir_p): Likewise.
19814 (vec_stril_p): Likewise.
19815 * config/rs6000/altivec.md (UNSPEC_VSTRIR): New constant.
19816 (UNSPEC_VSTRIL): Likewise.
19817 (vstrir_<mode>): New expansion.
19818 (vstrir_code_<mode>): New insn.
19819 (vstrir_p_<mode>): New expansion.
19820 (vstrir_p_code_<mode>): New insn.
19821 (vstril_<mode>): New expansion.
19822 (vstril_code_<mode>): New insn.
19823 (vstril_p_<mode>): New expansion.
19824 (vstril_p_code_<mode>): New insn.
19825 * config/rs6000/rs6000-builtin.def (__builtin_altivec_vstribr):
19826 New built-in function.
19827 (__builtin_altivec_vstrihr): Likewise.
19828 (__builtin_altivec_vstribl): Likewise.
19829 (__builtin_altivec_vstrihl): Likewise.
19830 (__builtin_altivec_vstribr_p): Likewise.
19831 (__builtin_altivec_vstrihr_p): Likewise.
19832 (__builtin_altivec_vstribl_p): Likewise.
19833 (__builtin_altivec_vstrihl_p): Likewise.
19834 (__builtin_vec_strir): New overloaded built-in function.
19835 (__builtin_vec_stril): Likewise.
19836 (__builtin_vec_strir_p): Likewise.
19837 (__builtin_vec_stril_p): Likewise.
19838 * config/rs6000/rs6000-call.c (altivec_overloaded_builtins):
19839 Define overloaded forms of __builtin_vec_strir,
19840 __builtin_vec_stril, __builtin_vec_strir_p, and
19841 __builtin_vec_stril_p.
19842 * doc/extend.texi (PowerPC AltiVec Built-in Functions Available
19843 for a Future Architecture): Add description of vec_stril,
19844 vec_stril_p, vec_strir, and vec_strir_p built-in functions.
19845
19846 2020-05-11 Kelvin Nilsen <wschmidt@linux.ibm.com>
19847
19848 * config/rs6000/altivec.h (vec_ternarylogic): New #define.
19849 * config/rs6000/altivec.md (UNSPEC_XXEVAL): New constant.
19850 (xxeval): New insn.
19851 * config/rs6000/predicates.md (u8bit_cint_operand): New predicate.
19852 * config/rs6000/rs6000-builtin.def: Add handling of new macro
19853 RS6000_BUILTIN_4.
19854 (BU_FUTURE_V_4): New macro. Use it.
19855 (BU_FUTURE_OVERLOAD_4): Likewise.
19856 * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin): Add
19857 handling for quaternary built-in functions.
19858 (altivec_resolve_overloaded_builtin): Add special-case handling
19859 for __builtin_vec_xxeval.
19860 * config/rs6000/rs6000-call.c: Add handling of new macro
19861 RS6000_BUILTIN_4 in initialization of rs6000_builtin_info,
19862 bdesc0_arg, bdesc1_arg, bdesc2_arg, bdesc_3arg,
19863 bdesc_altivec_preds, bdesc_abs, and bdesc_htm arrays.
19864 (altivec_overloaded_builtins): Add definitions for
19865 FUTURE_BUILTIN_VEC_XXEVAL.
19866 (bdesc_4arg): New array.
19867 (htm_expand_builtin): Add handling for quaternary built-in
19868 functions.
19869 (rs6000_expand_quaternop_builtin): New function.
19870 (rs6000_expand_builtin): Add handling for quaternary built-in
19871 functions.
19872 (rs6000_init_builtins): Initialize builtin_mode_to_type entries
19873 for unsigned QImode and unsigned HImode.
19874 (builtin_quaternary_function_type): New function.
19875 (rs6000_common_init_builtins): Add handling of quaternary
19876 operations.
19877 * config/rs6000/rs6000.h (RS6000_BTC_QUATERNARY): New defined
19878 constant.
19879 (RS6000_BTC_PREDICATE): Change value of constant.
19880 (RS6000_BTC_ABS): Likewise.
19881 (rs6000_builtins): Add support for new macro RS6000_BUILTIN_4.
19882 * doc/extend.texi (PowerPC AltiVec Built-In Functions Available
19883 for a Future Architecture): Add description of vec_ternarylogic
19884 built-in function.
19885
19886 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
19887
19888 * config/rs6000/rs6000-builtin.def (__builtin_pdepd): New built-in
19889 function.
19890 (__builtin_pextd): Likewise.
19891 * config/rs6000/rs6000.md (UNSPEC_PDEPD): New constant.
19892 (UNSPEC_PEXTD): Likewise.
19893 (pdepd): New insn.
19894 (pextd): Likewise.
19895 * doc/extend.texi (Basic PowerPC Built-in Functions Available for
19896 a Future Architecture): Add descriptions of __builtin_pdepd and
19897 __builtin_pextd functions.
19898
19899 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
19900
19901 * config/rs6000/altivec.h (vec_clrl): New #define.
19902 (vec_clrr): Likewise.
19903 * config/rs6000/altivec.md (UNSPEC_VCLRLB): New constant.
19904 (UNSPEC_VCLRRB): Likewise.
19905 (vclrlb): New insn.
19906 (vclrrb): Likewise.
19907 * config/rs6000/rs6000-builtin.def (__builtin_altivec_vclrlb): New
19908 built-in function.
19909 (__builtin_altivec_vclrrb): Likewise.
19910 (__builtin_vec_clrl): New overloaded built-in function.
19911 (__builtin_vec_clrr): Likewise.
19912 * config/rs6000/rs6000-call.c (altivec_overloaded_builtins):
19913 Define overloaded forms of __builtin_vec_clrl and
19914 __builtin_vec_clrr.
19915 * doc/extend.texi (PowerPC AltiVec Built-in Functions Available
19916 for a Future Architecture): Add descriptions of vec_clrl and
19917 vec_clrr.
19918
19919 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
19920
19921 * config/rs6000/rs6000-builtin.def (__builtin_cntlzdm): New
19922 built-in function definition.
19923 (__builtin_cnttzdm): Likewise.
19924 * config/rs6000/rs6000.md (UNSPEC_CNTLZDM): New constant.
19925 (UNSPEC_CNTTZDM): Likewise.
19926 (cntlzdm): New insn.
19927 (cnttzdm): Likewise.
19928 * doc/extend.texi (Basic PowerPC Built-in Functions available for
19929 a Future Architecture): Add descriptions of __builtin_cntlzdm and
19930 __builtin_cnttzdm functions.
19931
19932 2020-05-11 Uroš Bizjak <ubizjak@gmail.com>
19933
19934 PR target/95046
19935 * config/i386/mmx.md (sqrtv2sf2): New insn pattern.
19936
19937 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
19938
19939 * config/rs6000/altivec.h (vec_cfuge): New #define.
19940 * config/rs6000/altivec.md (UNSPEC_VCFUGED): New constant.
19941 (vcfuged): New insn.
19942 * config/rs6000/rs6000-builtin.def (__builtin_altivec_vcfuged):
19943 New built-in function.
19944 * config/rs6000/rs6000-call.c (builtin_function_type): Add
19945 handling for FUTURE_BUILTIN_VCFUGED case.
19946 * doc/extend.texi (PowerPC AltiVec Built-in Functions Available
19947 for a Future Architecture): Add description of vec_cfuge built-in
19948 function.
19949
19950 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
19951
19952 * config/rs6000/rs6000-builtin.def (BU_FUTURE_MISC_0): New
19953 #define.
19954 (BU_FUTURE_MISC_1): Likewise.
19955 (BU_FUTURE_MISC_2): Likewise.
19956 (BU_FUTURE_MISC_3): Likewise.
19957 (__builtin_cfuged): New built-in function definition.
19958 * config/rs6000/rs6000.md (UNSPEC_CFUGED): New constant.
19959 (cfuged): New insn.
19960 * doc/extend.texi (Basic PowerPC Built-in Functions Available for
19961 a Future Architecture): New subsubsection.
19962
19963 2020-05-11 Richard Biener <rguenther@suse.de>
19964
19965 PR tree-optimization/95049
19966 * tree-ssa-sccvn.c (set_ssa_val_to): Reject lattice transition
19967 between different constants.
19968
19969 2020-05-11 Richard Sandiford <richard.sandiford@arm.com>
19970
19971 * tree-pretty-print.c (dump_generic_node): Handle BOOLEAN_TYPEs.
19972
19973 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
19974 Bill Schmidt <wschmidt@linux.ibm.com>
19975
19976 * config/rs6000/altivec.h (vec_gnb): New #define.
19977 * config/rs6000/altivec.md (UNSPEC_VGNB): New constant.
19978 (vgnb): New insn.
19979 * config/rs6000/rs6000-builtin.def (BU_FUTURE_OVERLOAD_1): New
19980 #define.
19981 (BU_FUTURE_OVERLOAD_2): Likewise.
19982 (BU_FUTURE_OVERLOAD_3): Likewise.
19983 (__builtin_altivec_gnb): New built-in function.
19984 (__buiiltin_vec_gnb): New overloaded built-in function.
19985 * config/rs6000/rs6000-call.c (altivec_overloaded_builtins):
19986 Define overloaded forms of __builtin_vec_gnb.
19987 (rs6000_expand_binop_builtin): Add error checking for 2nd argument
19988 of __builtin_vec_gnb.
19989 (builtin_function_type): Mark return value and arguments unsigned
19990 for FUTURE_BUILTIN_VGNB.
19991 * doc/extend.texi (PowerPC AltiVec Built-in Functions Available
19992 for a Future Architecture): Add description of vec_gnb built-in
19993 function.
19994
19995 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
19996 Bill Schmidt <wschmidt@linux.ibm.com>
19997
19998 * config/rs6000/altivec.h (vec_pdep): New macro implementing new
19999 built-in function.
20000 (vec_pext): Likewise.
20001 * config/rs6000/altivec.md (UNSPEC_VPDEPD): New constant.
20002 (UNSPEC_VPEXTD): Likewise.
20003 (vpdepd): New insn.
20004 (vpextd): Likewise.
20005 * config/rs6000/rs6000-builtin.def (__builtin_altivec_vpdepd): New
20006 built-in function.
20007 (__builtin_altivec_vpextd): Likewise.
20008 * config/rs6000/rs6000-call.c (builtin_function_type): Add
20009 handling for FUTURE_BUILTIN_VPDEPD and FUTURE_BUILTIN_VPEXTD
20010 cases.
20011 * doc/extend.texi (PowerPC Altivec Built-in Functions Available
20012 for a Future Architecture): Add description of vec_pdep and
20013 vec_pext built-in functions.
20014
20015 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
20016 Bill Schmidt <wschmidt@linux.ibm.com>
20017
20018 * config/rs6000/altivec.h (vec_clzm): New macro.
20019 (vec_ctzm): Likewise.
20020 * config/rs6000/altivec.md (UNSPEC_VCLZDM): New constant.
20021 (UNSPEC_VCTZDM): Likewise.
20022 (vclzdm): New insn.
20023 (vctzdm): Likewise.
20024 * config/rs6000/rs6000-builtin.def (BU_FUTURE_V_0): New macro.
20025 (BU_FUTURE_V_1): Likewise.
20026 (BU_FUTURE_V_2): Likewise.
20027 (BU_FUTURE_V_3): Likewise.
20028 (__builtin_altivec_vclzdm): New builtin definition.
20029 (__builtin_altivec_vctzdm): Likewise.
20030 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Cause
20031 _ARCH_PWR_FUTURE macro to be defined if OPTION_MASK_FUTURE flag is
20032 set.
20033 * config/rs6000/rs6000-call.c (builtin_function_type): Set return
20034 value and parameter types to be unsigned for VCLZDM and VCTZDM.
20035 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
20036 support for TARGET_FUTURE flag.
20037 * config/rs6000/rs6000.h (RS6000_BTM_FUTURE): New macro constant.
20038 * doc/extend.texi (PowerPC Altivec Built-in Functions Available
20039 for a Future Architecture): New subsubsection.
20040
20041 2020-05-11 Richard Biener <rguenther@suse.de>
20042
20043 PR tree-optimization/94988
20044 PR tree-optimization/95025
20045 * tree-ssa-loop-im.c (seq_entry): Make a struct, add from.
20046 (sm_seq_push_down): Take extra parameter denoting where we
20047 moved the ref to.
20048 (execute_sm_exit): Re-issue sm_other stores in the correct
20049 order.
20050 (sm_seq_valid_bb): When always executed, allow sm_other to
20051 prevail inbetween sm_ord and record their stored value.
20052 (hoist_memory_references): Adjust refs_not_supported propagation
20053 and prune sm_other from the end of the ordered sequences.
20054
20055 2020-05-11 Felix Yang <felix.yang@huawei.com>
20056
20057 PR target/94991
20058 * config/aarch64/aarch64.md (mov<mode>):
20059 Bitcasts to the equivalent integer mode using gen_lowpart
20060 instead of doing FAIL for scalar floating point move.
20061
20062 2020-05-11 Alex Coplan <alex.coplan@arm.com>
20063
20064 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Add case
20065 to correctly calculate cost for new pattern (*csinv3_uxtw_insn3).
20066 * config/aarch64/aarch64.md (*csinv3_utxw_insn1): New.
20067 (*csinv3_uxtw_insn2): New.
20068 (*csinv3_uxtw_insn3): New.
20069 * config/aarch64/iterators.md (neg_not_cs): New.
20070
20071 2020-05-11 Uroš Bizjak <ubizjak@gmail.com>
20072
20073 PR target/95046
20074 * config/i386/mmx.md (mmx_addv2sf3): Use "v" constraint
20075 instead of "Yv" for AVX alternatives. Add "prefix" attribute.
20076 (*mmx_addv2sf3): Ditto.
20077 (*mmx_subv2sf3): Ditto.
20078 (*mmx_mulv2sf3): Ditto.
20079 (*mmx_<code>v2sf3): Ditto.
20080 (mmx_ieee_<ieee_maxmin>v2sf3): Ditto.
20081
20082 2020-05-11 Uroš Bizjak <ubizjak@gmail.com>
20083
20084 PR target/95046
20085 * config/i386/i386.c (ix86_vector_mode_supported_p):
20086 Vectorize 3dNOW! vector modes for TARGET_MMX_WITH_SSE.
20087 * config/i386/mmx.md (*mov<mode>_internal): Do not set
20088 mode of alternative 13 to V2SF for TARGET_MMX_WITH_SSE.
20089
20090 (mmx_addv2sf3): Change operand predicates from
20091 nonimmediate_operand to register_mmxmem_operand.
20092 (addv2sf3): New expander.
20093 (*mmx_addv2sf3): Add SSE/AVX alternatives. Change operand
20094 predicates from nonimmediate_operand to register_mmxmem_operand.
20095 Enable instruction pattern for TARGET_MMX_WITH_SSE.
20096
20097 (mmx_subv2sf3): Change operand predicate from
20098 nonimmediate_operand to register_mmxmem_operand.
20099 (mmx_subrv2sf3): Ditto.
20100 (subv2sf3): New expander.
20101 (*mmx_subv2sf3): Add SSE/AVX alternatives. Change operand
20102 predicates from nonimmediate_operand to register_mmxmem_operand.
20103 Enable instruction pattern for TARGET_MMX_WITH_SSE.
20104
20105 (mmx_mulv2sf3): Change operand predicates from
20106 nonimmediate_operand to register_mmxmem_operand.
20107 (mulv2sf3): New expander.
20108 (*mmx_mulv2sf3): Add SSE/AVX alternatives. Change operand
20109 predicates from nonimmediate_operand to register_mmxmem_operand.
20110 Enable instruction pattern for TARGET_MMX_WITH_SSE.
20111
20112 (mmx_<code>v2sf3): Change operand predicates from
20113 nonimmediate_operand to register_mmxmem_operand.
20114 (<code>v2sf3): New expander.
20115 (*mmx_<code>v2sf3): Add SSE/AVX alternatives. Change operand
20116 predicates from nonimmediate_operand to register_mmxmem_operand.
20117 Enable instruction pattern for TARGET_MMX_WITH_SSE.
20118 (mmx_ieee_<ieee_maxmin>v2sf3): Ditto.
20119
20120 2020-05-11 Martin Liska <mliska@suse.cz>
20121
20122 PR c/95040
20123 * common.opt: Fix typo in option description.
20124
20125 2020-05-11 Martin Liska <mliska@suse.cz>
20126
20127 PR gcov-profile/94928
20128 * gcov-io.h: Add caveat about coverage format parsing and
20129 possible outdated documentation.
20130
20131 2020-05-11 Xiong Hu Luo <luoxhu@linux.ibm.com>
20132
20133 PR tree-optimization/83403
20134 * tree-affine.c (expr_to_aff_combination): Replace SSA_NAME with
20135 determine_value_range, Add fold conversion of MULT_EXPR, fix the
20136 previous PLUS_EXPR.
20137
20138 2020-05-10 Gerald Pfeifer <gerald@pfeifer.com>
20139
20140 * config/i386/i386-c.c (ix86_target_macros): Define _ILP32 and
20141 __ILP32__ for 32-bit targets.
20142
20143 2020-05-09 Eric Botcazou <ebotcazou@adacore.com>
20144
20145 * tree.h (expr_align): Delete.
20146 * tree.c (expr_align): Likewise.
20147
20148 2020-05-09 Hans-Peter Nilsson <hp@axis.com>
20149
20150 * resource.c (init_resource_info): Filter-out TARGET_FLAGS_REGNUM
20151 from end_of_function_needs.
20152
20153 * config.gcc: Remove support for crisv32-*-* and cris-*-linux*.
20154 * config/cris/t-linux, config/cris/linux.h, config/cris/linux.opt:
20155 Remove.
20156 * config/cris/t-elfmulti: Remove crisv32 multilib.
20157 * config/cris: Remove shared-library and CRIS v32 support.
20158
20159 Move trivially from cc0 to reg:CC model, removing most optimizations.
20160 * config/cris/cris.md: Remove all side-effect patterns and their
20161 splitters. Remove most peepholes. Add clobbers of CRIS_CC0_REGNUM
20162 to all but post-reload control-flow and movem insns. Remove
20163 constraints on all modified expanders. Remove obsoleted cc0-related
20164 references.
20165 (attr "cc"): Remove alternative "rev".
20166 (mode_iterator BWDD, DI_, SI_): New.
20167 (mode_attr sCC_destc, cmp_op1c, cmp_op2c): New.
20168 ("tst<mode>"): Remove; fold as "M" alternative into compare insn.
20169 ("mstep_shift", "mstep_mul"): Remove patterns.
20170 ("s<rcond>", "s<ocond>", "s<ncond>"): Anonymize.
20171 * config/cris/cris.c: Change all non-condition-code,
20172 non-control-flow emitted insns to add a parallel with clobber of
20173 CRIS_CC0_REGNUM, mostly by changing from gen_rtx_SET with
20174 emit_insn to use of emit_move_insn, gen_add2_insn or
20175 cris_emit_insn, as convenient.
20176 (cris_reg_overlap_mentioned_p)
20177 (cris_normal_notice_update_cc, cris_notice_update_cc): Remove.
20178 (cris_movem_load_rest_p): Don't assume all elements in a
20179 PARALLEL are SETs.
20180 (cris_store_multiple_op_p): Ditto.
20181 (cris_emit_insn): New function.
20182 * cris/cris-protos.h (cris_emit_insn): Declare.
20183
20184 PR target/93372
20185 * config/cris/cris.md (zcond): New code_iterator.
20186 ("*cbranch<mode>4_btstq<CC>"): New insn_and_split.
20187
20188 * config/cris/cris.c (TARGET_FLAGS_REGNUM): Define.
20189
20190 * config/cris/cris.h (REVERSIBLE_CC_MODE): Define to true.
20191
20192 * config/cris/cris.md ("movsi"): For memory destination
20193 post-reload, generate clobberless variant. Similarly for a
20194 zero-source post-reload.
20195 ("*mov_tomem<mode>_split"): New split.
20196 ("*mov_tomem<mode>"): New insn.
20197 ("enabled", mov_tomem_enabled): Define and use to exclude "x" ->
20198 "Q>m" for less-than-SImode.
20199 ("*mov_fromzero<mode>_split"): New split.
20200 ("*mov_fromzero<mode>"): New insn.
20201
20202 Prepare for cmpelim pass to eliminate redundant compare insns.
20203 * config/cris/cris-modes.def: New file.
20204 * config/cris/cris-protos.h (cris_select_cc_mode): Declare.
20205 (cris_notice_update_cc): Remove left-over declaration.
20206 * config/cris/cris.c (TARGET_CC_MODES_COMPATIBLE): Define.
20207 (cris_select_cc_mode, cris_cc_modes_compatible): New functions.
20208 * config/cris/cris.h (SELECT_CC_MODE): Define.
20209 * config/cris/cris.md (NZSET, NZUSE, NZVCSET, NZVCUSE): New
20210 mode_iterators.
20211 (cond): New code_iterator.
20212 (nzcond): Replacement for incorrect ncond. All callers changed.
20213 (nzvccond): Replacement for ocond. All callers changed.
20214 (rnzcond): Replacement for rcond. All callers changed.
20215 (xCC): New code_attr.
20216 (cmp_op1c, cmp_op0c): Renumber from cmp_op1c and cmp_op2c. All
20217 users changed.
20218 ("*cmpdi<NZVCSET:mode>"): Rename from "*cmpdi". Replace
20219 CCmode with iteration over NZVCSET.
20220 ("*cmp_ext<BW:mode><NZVCSET:mode>"): Similarly; rename from
20221 "*cmp_ext<mode>".
20222 ("*cmpsi<NZVCSET:mode>"): Similarly, from "*cmpsi".
20223 ("*cmp<BW:mode><NZVCSET:mode>"): Similarly from "*cmp<mode>".
20224 ("*btst<mode>"): Similarly, from "*btst".
20225 ("*cbranch<mode><code>4"): Rename from "*cbranch<mode>4",
20226 iterating over cond instead of matching the comparison with
20227 ordered_comparison_operator.
20228 ("*cbranch<mode>4_btstq<CC>"): Correct label operand number.
20229 ("b<zcond:code><mode>"): Rename from "b<ncond:code>", iterating
20230 over NZUSE.
20231 ("b<nzvccond:code><mode>"): Similarly from "b<ocond:code>", over
20232 NZVCUSE. Remove FIXME.
20233 ("*b<nzcond:code>_reversed<mode>"): Similarly from
20234 "*b<ncond:code>_reversed", over NZUSE.
20235 ("*b<nzvccond:code>_reversed<mode>"): Similarly from
20236 "*b<ocond:code>_reversed", over NZVCUSE. Remove FIXME.
20237 ("b<rnzcond:code><mode>"): Similarly from "b<rcond:code>",
20238 over NZUSE. Reinstate "b<oCC>" vs. "b<CC>" mnemonic choice,
20239 depending on CC_NZmode vs. CCmode. Remove FIXME.
20240 ("*b<rnzcond:code>_reversed<mode>"): Similarly from
20241 "*b<rcond:code>_reversed", over NZUSE.
20242 ("*cstore<mode><code>4"): Rename from "*cstore<mode>4",
20243 iterating over cond instead of matching the comparison with
20244 ordered_comparison_operator.
20245 ("*s<nzcond:code><mode>"): Rename from "*s<ncond:code>",
20246 iterating over NZUSE.
20247 ("*s<rnzcond:code><mode>"): Similar from "*s<rcond:code>", over
20248 NZUSE. Reinstate "b<oCC>" vs. "b<CC>" mnemonic choice,
20249 depending on CC_NZmode vs. CCmode.
20250 ("*s<nzvccond:code><mode>"): Simlar from "*s<ocond:code>", over
20251 NZVCUSE. Remove FIXME.
20252 ("cc"): Comment on new use.
20253 ("cc_enabled"): New attribute.
20254 ("enabled"): Make default fall back to cc_enabled.
20255 ("setnz", "ccnz", "setnzvc", "ccnzvc", "setcc", "cccc"): New
20256 default_subst_attrs.
20257 ("setnz_subst", "setnzvc_subst", "setcc_subst"): New default_subst.
20258 ("*movsi_internal<setcc><setnz><setnzvc>"): Rename from
20259 "*movsi_internal". Correct contents of, and rename attribute
20260 "cc" to "cc<cccc><ccnz><ccnzvc>".
20261 ("anz", "anzvc", "acc"): New define_subst_attrs.
20262 ("<acc><anz><anzvc>movhi<setcc><setnz><setnzvc>"): Rename from
20263 "movhi". Rename "cc" attribute to "cc<cccc><ccnz><ccnzvc>".
20264 ("<acc><anz><anzvc>movqi<setcc><setnz><setnzvc>"): Similar from
20265 "movqi". Correct contents of, and rename "cc" attribute to
20266 "cc<cccc><ccnz><ccnzvc>".
20267 ("*b<zcond:code><mode>"): Rename from "b<zcond:code><mode>".
20268 ("*b<nzvccond:code><mode>"): Rename from "b<nzvccond:code><mode>".
20269 ("*b<rnzcond:code><mode>"): Rename from "*b<rnzcond:code><mode>".
20270 ("<acc><anz><anzvc>extend<mode>si2<setcc><setnz><setnzvc>"):
20271 Rename from "extend<mode>si2".
20272 ("<acc><anz><anzvc>zero_extend<mode>si2<setcc><setnz><setnzvc>"):
20273 Similar, from "zero_extend<mode>si2".
20274 ("*adddi3<setnz>"): Rename from "*adddi3".
20275 ("*subdi3<setnz>"): Similarly from "*subdi3".
20276 ("*addsi3<setnz>"): Similarly from "*addsi3".
20277 ("*subsi3<setnz>"): Similarly from "*subsi3".
20278 ("*addhi3<setnz>"): Similarly from "*addhi3" and decorate the
20279 "cc" attribute to "cc<ccnz>".
20280 ("*addqi3<setnz>"): Similarly from "*addqi3".
20281 ("*sub<mode>3<setnz>"): Similarly from "*sub<mode>3".
20282 ("*expanded_andsi<setcc><setnz><setnzvc>"): Rename from
20283 "*expanded_andsi".
20284 ("*iorsi3<setcc><setnz><setnzvc>"): Similar from "*iorsi3".
20285 Decorate "cc" attribute to make "cc<cccc><ccnz><ccnzvc>".
20286 ("*iorhi3<setcc><setnz><setnzvc>"): Similar from "*iorhi3".
20287 ("*iorqi3<setcc><setnz><setnzvc>"): Similar from "*iorqi3".
20288 ("*expanded_andhi<setcc><setnz><setnzvc>"): Similar from
20289 "*expanded_andhi". Add quick cc-setting alternative for 0..31.
20290 ("*andqi3<setcc><setnz><setnzvc>"): Similar from "*andqi3".
20291 ("<acc><anz><anzvc>xorsi3<setcc><setnz><setnzvc>"): Rename
20292 from "xorsi3".
20293 ("<acc><anz><anzvc>one_cmplsi2<setcc><setnz><setnzvc>"): Rename
20294 from "one_cmplsi2".
20295 ("<acc><anz><anzvc><shlr>si3<setcc><setnz><setnzvc>"): Rename
20296 from "<shlr>si3".
20297 ("<acc><anz><anzvc>clzsi2<setcc><setnz><setnzvc>"): Rename
20298 from "clzsi2".
20299 ("<acc><anz><anzvc>bswapsi2<setcc><setnz><setnzvc>"): Rename
20300 from "bswapsi2".
20301 ("*uminsi3<setcc><setnz><setnzvc>"): Rename from "*uminsi3".
20302
20303 * config/cris/cris-modes.def (CC_ZnN): New CC_MODE.
20304 * config/cris/cris.c (cris_rtx_costs): Handle pre-split bit-test
20305 * config/cris/cris.md (ZnNNZSET, ZnNNZUSE): New mode_iterators.
20306 (znnCC, rznnCC): New code_attrs.
20307 ("*btst<mode>"): Iterator over ZnNNZSET instead of NZVCSET. Remove
20308 obseolete comment. Add belt-and-suspenders mode-test to condition.
20309 Add fixme regarding remaining matched-but-not-generated case.
20310 ("*cbranch<mode>4_btstrq1_<CC>"): New insn_and_split.
20311 ("*cbranch<mode>4_btstqb0_<CC>"): Rename from
20312 "*cbranch<mode>4_btstq<CC>". Split to CC_NZ instead of CC.
20313 ("*b<zcond:code><mode>"): Iterate over ZnNNZUSE instead of NZUSE.
20314 Handle output of CC_ZnNmode.
20315 ("*b<nzcond:code>_reversed<mode>"): Ditto.
20316
20317 * config/cris/cris.c (cris_select_cc_mode): Return CC_NZmode for
20318 NEG too. Correct comment.
20319 * config/cris/cris.md ("<anz>neg<mode>2<setnz>"): Rename from
20320 "neg<mode>2".
20321
20322 2020-05-08 Vladimir Makarov <vmakarov@redhat.com>
20323
20324 * ira-color.c (update_costs_from_allocno): Remove
20325 conflict_cost_update_p argument. Propagate costs only along
20326 threads. Always do conflict cost update. Add printing debugging
20327 info.
20328 (update_costs_from_copies): Add printing debugging info.
20329 (restore_costs_from_copies): Ditto.
20330 (assign_hard_reg): Improve debug info.
20331 (push_only_colorable): Ditto. Call update_costs_from_prefs.
20332 (color_allocnos): Remove update_costs_from_prefs.
20333
20334 2020-05-08 Richard Biener <rguenther@suse.de>
20335
20336 * tree-vectorizer.h (vec_info::slp_loads): New.
20337 (vect_optimize_slp): Declare.
20338 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Do
20339 nothing when there are no loads.
20340 (vect_gather_slp_loads): Gather loads into a vector.
20341 (vect_supported_load_permutation_p): Remove.
20342 (vect_analyze_slp_instance): Do not verify permutation
20343 validity here.
20344 (vect_analyze_slp): Optimize permutations of reductions
20345 after all SLP instances have been gathered and gather
20346 all loads.
20347 (vect_optimize_slp): New function split out from
20348 vect_supported_load_permutation_p. Elide some permutations.
20349 (vect_slp_analyze_bb_1): Call vect_optimize_slp.
20350 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
20351 * tree-vect-stmts.c (vectorizable_load): Check whether
20352 the load can be permuted. When generating code assert we can.
20353
20354 2020-05-08 Richard Biener <rguenther@suse.de>
20355
20356 * tree-ssa-sccvn.c (rpo_avail): Change type to
20357 eliminate_dom_walker *.
20358 (eliminate_with_rpo_vn): Adjust rpo_avail to make vn_valueize
20359 use the DOM walker availability.
20360 (vn_reference_fold_indirect): Use get_addr_base_and_unit_offset_1
20361 with vn_valueize as valueization callback.
20362 (vn_reference_maybe_forwprop_address): Likewise.
20363 * tree-dfa.c (get_addr_base_and_unit_offset_1): Also valueize
20364 array_ref_low_bound.
20365
20366 2020-05-08 Jakub Jelinek <jakub@redhat.com>
20367
20368 PR tree-optimization/94786
20369 * match.pd (A ^ ((A ^ B) & -(C cmp D)) -> (C cmp D) ? B : A): New
20370 simplification.
20371
20372 PR target/94857
20373 * config/i386/i386.md (peephole2 after *add<mode>3_cc_overflow_1): New
20374 define_peephole2.
20375
20376 PR middle-end/94724
20377 * tree.c (get_narrower): Reuse the op temporary instead of
20378 shadowing it.
20379
20380 PR tree-optimization/94783
20381 * match.pd ((X + (X >> (prec - 1))) ^ (X >> (prec - 1)) to abs (X)):
20382 New simplification.
20383
20384 PR tree-optimization/94956
20385 * match.pd (FFS): Optimize __builtin_ffs* of non-zero argument into
20386 __builtin_ctz* + 1 if direct IFN_CTZ is supported.
20387
20388 PR tree-optimization/94913
20389 * match.pd (A - B + -1 >= A to B >= A): New simplification.
20390 (A - B > A to A < B): Don't test TYPE_OVERFLOW_WRAPS which is always
20391 true for TYPE_UNSIGNED integral types.
20392
20393 PR bootstrap/94961
20394 PR rtl-optimization/94516
20395 * rtl.h (remove_reg_equal_equiv_notes): Add a bool argument defaulted
20396 to false.
20397 * rtlanal.c (remove_reg_equal_equiv_notes): Add no_rescan argument.
20398 Call df_notes_rescan if that argument is not true and returning true.
20399 * combine.c (adjust_for_new_dest): Pass true as second argument to
20400 remove_reg_equal_equiv_notes.
20401 * postreload.c (reload_combine_recognize_pattern): Don't call
20402 df_notes_rescan.
20403
20404 2020-05-07 Segher Boessenkool <segher@kernel.crashing.org>
20405
20406 * config/rs6000/rs6000.md (*setnbc_<un>signed_<GPR:mode>): New
20407 define_insn.
20408 (*setnbcr_<un>signed_<GPR:mode>): New define_insn.
20409 (*neg_eq_<mode>): Avoid for TARGET_FUTURE; add missing && 1.
20410 (*neg_ne_<mode>): Likewise.
20411
20412 2020-05-07 Segher Boessenkool <segher@kernel.crashing.org>
20413
20414 * config/rs6000/rs6000.md (setbc_<un>signed_<GPR:mode>): New
20415 define_insn.
20416 (*setbcr_<un>signed_<GPR:mode>): Likewise.
20417 (cstore<mode>4): Use setbc[r] if available.
20418 (<code><GPR:mode><GPR2:mode>2_isel): Avoid for TARGET_FUTURE.
20419 (eq<mode>3): Use setbc for TARGET_FUTURE.
20420 (*eq<mode>3): Avoid for TARGET_FUTURE.
20421 (ne<mode>3): Replace :P with :GPR; use setbc for TARGET_FUTURE;
20422 else for non-Pmode, use gen_eq and gen_xor.
20423 (*ne<mode>3): Avoid for TARGET_FUTURE.
20424 (*eqsi3_ext<mode>): Avoid for TARGET_FUTURE; fix missing && 1.
20425
20426 2020-05-07 Jeff Law <law@redhat.com>
20427
20428 * config/h8300/h8300.md: Move expanders and patterns into
20429 files based on functionality.
20430 * config/h8300/addsub.md: New file.
20431 * config/h8300/bitfield.md: New file
20432 * config/h8300/combiner.md: New file
20433 * config/h8300/divmod.md: New file
20434 * config/h8300/extensions.md: New file
20435 * config/h8300/jumpcall.md: New file
20436 * config/h8300/logical.md: New file
20437 * config/h8300/movepush.md: New file
20438 * config/h8300/multiply.md: New file
20439 * config/h8300/other.md: New file
20440 * config/h8300/proepi.md: New file
20441 * config/h8300/shiftrotate.md: New file
20442 * config/h8300/testcompare.md: New file
20443
20444 * config/h8300/h8300.md (adds/subs splitters): Merge into single
20445 splitter.
20446 (negation expanders and patterns): Simplify and combine using
20447 iterators.
20448 (one_cmpl expanders and patterns): Likewise.
20449 (tablejump, indirect_jump patterns ): Likewise.
20450 (shift and rotate expanders and patterns): Likewise.
20451 (absolute value expander and pattern): Drop expander, rename pattern
20452 to just "abssf2"
20453 (peephole2 patterns): Move into...
20454 * config/h8300/peepholes.md: New file.
20455
20456 * config/h8300/constraints.md (L and N): Simplify now that we're not
20457 longer supporting the original H8/300 chip.
20458 * config/h8300/elf.h (LINK_SPEC): Likewise. Default to H8/300H.
20459 * config/h8300/h8300.c (shift_alg_qi): Drop H8/300 support.
20460 (shift_alg_hi, shift_alg_si): Similarly.
20461 (h8300_option_overrides): Similarly. Default to H8/300H. If
20462 compiling for H8/S, then turn off H8/300H. Do not update the
20463 shift_alg tables for H8/300 port.
20464 (h8300_emit_stack_adjustment): Remove support for H8/300. Simplify
20465 where possible.
20466 (push, split_adds_subs, h8300_rtx_costs): Likewise.
20467 (h8300_print_operand, compute_mov_length): Likewise.
20468 (output_plussi, compute_plussi_length): Likewise.
20469 (compute_plussi_cc, output_logical_op): Likewise.
20470 (compute_logical_op_length, compute_logical_op_cc): Likewise.
20471 (get_shift_alg, h8300_shift_needs_scratch): Likewise.
20472 (output_a_shift, compute_a_shift_length): Likewise.
20473 (output_a_rotate, compute_a_rotate_length): Likewise.
20474 (output_simode_bld, h8300_hard_regno_mode_ok): Likewise.
20475 (h8300_modes_tieable_p, h8300_return_in_memory): Likewise.
20476 * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Likewise.
20477 (attr_cpu, TARGET_H8300): Remove.
20478 (TARGET_DEFAULT): Update.
20479 (UNITS_PER_WORD, PARM_BOUNDARY): Simplify where possible.
20480 (BIGGEST_ALIGNMENT, STACK_BOUNDARY): Likewise.
20481 (CONSTANT_ADDRESS_P, MOVE_MAX, Pmode): Likewise.
20482 (SIZE_TYPE, POINTER_SIZE, ASM_WORD_OP): Likewise.
20483 * config/h8300/h8300.md: Simplify patterns throughout.
20484 * config/h8300/t-h8300: Update multilib configuration.
20485
20486 * config/h8300/h8300.h (LINK_SPEC): Remove.
20487 (USER_LABEL_PREFIX): Likewise.
20488
20489 * config/h8300/h8300.c (h8300_asm_named_section): Remove.
20490 (h8300_option_override): Remove remnants of COFF support.
20491
20492 2020-05-07 Alan Modra <amodra@gmail.com>
20493
20494 * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Replace
20495 set_rtx_cost with set_src_cost.
20496 * tree-switch-conversion.c (bit_test_cluster::emit): Likewise.
20497
20498 2020-05-07 Kewen Lin <linkw@gcc.gnu.org>
20499
20500 * tree-vect-stmts.c (vectorizable_load): Check alignment to avoid
20501 redundant half vector handlings for no peeling gaps.
20502
20503 2020-05-07 Giuliano Belinassi <giuliano.belinassi@usp.br>
20504
20505 * tree-ssa-operands.c (operands_scanner): New class.
20506 (operands_bitmap_obstack): Remove.
20507 (n_initialized): Remove.
20508 (build_uses): Move to operands_scanner class.
20509 (build_vuse): Same as above.
20510 (build_vdef): Same as above.
20511 (verify_ssa_operands): Same as above.
20512 (finalize_ssa_uses): Same as above.
20513 (cleanup_build_arrays): Same as above.
20514 (finalize_ssa_stmt_operands): Same as above.
20515 (start_ssa_stmt_operands): Same as above.
20516 (append_use): Same as above.
20517 (append_vdef): Same as above.
20518 (add_virtual_operand): Same as above.
20519 (add_stmt_operand): Same as above.
20520 (get_mem_ref_operands): Same as above.
20521 (get_tmr_operands): Same as above.
20522 (maybe_add_call_vops): Same as above.
20523 (get_asm_stmt_operands): Same as above.
20524 (get_expr_operands): Same as above.
20525 (parse_ssa_operands): Same as above.
20526 (finalize_ssa_defs): Same as above.
20527 (build_ssa_operands): Same as above, plus create a C-like wrapper.
20528 (update_stmt_operands): Create an instance of operands_scanner.
20529
20530 2020-05-07 Richard Biener <rguenther@suse.de>
20531
20532 PR ipa/94947
20533 * tree-ssa-structalias.c (refered_from_nonlocal_fn): Use
20534 DECL_EXTERNAL || TREE_PUBLIC instead of externally_visible.
20535 (refered_from_nonlocal_var): Likewise.
20536 (ipa_pta_execute): Likewise.
20537
20538 2020-05-07 Erick Ochoa <erick.ochoa@theobroma-systems.com>
20539
20540 * gcc/tree-ssa-struct-alias.c: Fix comments
20541
20542 2020-05-07 Martin Liska <mliska@suse.cz>
20543
20544 * doc/invoke.texi: Fix 2 optindex entries.
20545
20546 2020-05-07 Richard Biener <rguenther@suse.de>
20547
20548 PR middle-end/94703
20549 * tree-core.h (tree_decl_common::gimple_reg_flag): Rename ...
20550 (tree_decl_common::not_gimple_reg_flag): ... to this.
20551 * tree.h (DECL_GIMPLE_REG_P): Rename ...
20552 (DECL_NOT_GIMPLE_REG_P): ... to this.
20553 * gimple-expr.c (copy_var_decl): Copy DECL_NOT_GIMPLE_REG_P.
20554 (create_tmp_reg): Simplify.
20555 (create_tmp_reg_fn): Likewise.
20556 (is_gimple_reg): Check DECL_NOT_GIMPLE_REG_P for all regs.
20557 * gimplify.c (create_tmp_from_val): Simplify.
20558 (gimplify_bind_expr): Likewise.
20559 (gimplify_compound_literal_expr): Likewise.
20560 (gimplify_function_tree): Likewise.
20561 (prepare_gimple_addressable): Set DECL_NOT_GIMPLE_REG_P.
20562 * asan.c (create_odr_indicator): Do not clear DECL_GIMPLE_REG_P.
20563 (asan_add_global): Copy it.
20564 * cgraphunit.c (cgraph_node::expand_thunk): Force args
20565 to be GIMPLE regs.
20566 * function.c (gimplify_parameters): Copy
20567 DECL_NOT_GIMPLE_REG_P.
20568 * ipa-param-manipulation.c
20569 (ipa_param_body_adjustments::common_initialization): Simplify.
20570 (ipa_param_body_adjustments::reset_debug_stmts): Copy
20571 DECL_NOT_GIMPLE_REG_P.
20572 * omp-low.c (lower_omp_for_scan): Do not set DECL_GIMPLE_REG_P.
20573 * sanopt.c (sanitize_rewrite_addressable_params): Likewise.
20574 * tree-cfg.c (make_blocks_1): Simplify.
20575 (verify_address): Do not verify DECL_GIMPLE_REG_P setting.
20576 * tree-eh.c (lower_eh_constructs_2): Simplify.
20577 * tree-inline.c (declare_return_variable): Adjust and
20578 generalize.
20579 (copy_decl_to_var): Copy DECL_NOT_GIMPLE_REG_P.
20580 (copy_result_decl_to_var): Likewise.
20581 * tree-into-ssa.c (pass_build_ssa::execute): Adjust comment.
20582 * tree-nested.c (create_tmp_var_for): Simplify.
20583 * tree-parloops.c (separate_decls_in_region_name): Copy
20584 DECL_NOT_GIMPLE_REG_P.
20585 * tree-sra.c (create_access_replacement): Adjust and
20586 generalize partial def support.
20587 * tree-ssa-forwprop.c (pass_forwprop::execute): Set
20588 DECL_NOT_GIMPLE_REG_P on decls we introduce partial defs on.
20589 * tree-ssa.c (maybe_optimize_var): Handle clearing of
20590 TREE_ADDRESSABLE and setting/clearing DECL_NOT_GIMPLE_REG_P
20591 independently.
20592 * lto-streamer-out.c (hash_tree): Hash DECL_NOT_GIMPLE_REG_P.
20593 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Stream
20594 DECL_NOT_GIMPLE_REG_P.
20595 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
20596 * cfgexpand.c (avoid_type_punning_on_regs): New.
20597 (discover_nonconstant_array_refs): Call
20598 avoid_type_punning_on_regs to avoid unsupported mode punning.
20599
20600 2020-05-07 Alex Coplan <alex.coplan@arm.com>
20601
20602 * config/arm/arm.c (arm_add_stmt_cost): Fix declaration, remove class
20603 from definition.
20604
20605 2020-05-07 Richard Biener <rguenther@suse.de>
20606
20607 PR tree-optimization/57359
20608 * tree-ssa-loop-im.c (im_mem_ref::indep_loop): Remove.
20609 (in_mem_ref::dep_loop): Repurpose.
20610 (LOOP_DEP_BIT): Remove.
20611 (enum dep_kind): New.
20612 (enum dep_state): Likewise.
20613 (record_loop_dependence): New function to populate the
20614 dependence cache.
20615 (query_loop_dependence): New function to query the dependence
20616 cache.
20617 (memory_accesses::refs_in_loop): Rename to ...
20618 (memory_accesses::refs_loaded_in_loop): ... this and change to
20619 only record loads.
20620 (outermost_indep_loop): Adjust.
20621 (mem_ref_alloc): Likewise.
20622 (gather_mem_refs_stmt): Likewise.
20623 (mem_refs_may_alias_p): Add tbaa_p parameter and pass it down.
20624 (struct sm_aux): New.
20625 (execute_sm): Split code generation on exits, record state
20626 into new hash-map.
20627 (enum sm_kind): New.
20628 (execute_sm_exit): Exit code generation part.
20629 (sm_seq_push_down): Helper for sm_seq_valid_bb performing
20630 dependence checking on stores reached from exits.
20631 (sm_seq_valid_bb): New function gathering SM stores on exits.
20632 (hoist_memory_references): Re-implement.
20633 (refs_independent_p): Add tbaa_p parameter and pass it down.
20634 (record_dep_loop): Remove.
20635 (ref_indep_loop_p_1): Fold into ...
20636 (ref_indep_loop_p): ... this and generalize for three kinds
20637 of dependence queries.
20638 (can_sm_ref_p): Adjust according to hoist_memory_references
20639 changes.
20640 (store_motion_loop): Don't do anything if the set of SM
20641 candidates is empty.
20642 (tree_ssa_lim_initialize): Adjust.
20643 (tree_ssa_lim_finalize): Likewise.
20644
20645 2020-05-07 Eric Botcazou <ebotcazou@adacore.com>
20646 Pierre-Marie de Rodat <derodat@adacore.com>
20647
20648 * dwarf2out.c (add_data_member_location_attribute): Take into account
20649 the variant part offset in the computation of the data bit offset.
20650 (add_bit_offset_attribute): Remove CTX parameter. Pass a new context
20651 in the call to field_byte_offset.
20652 (gen_field_die): Adjust call to add_bit_offset_attribute and remove
20653 confusing assertion.
20654 (analyze_variant_discr): Deal with boolean subtypes.
20655
20656 2020-05-07 Martin Liska <mliska@suse.cz>
20657
20658 * lto-wrapper.c: Split arguments of MAKE environment
20659 variable.
20660
20661 2020-05-07 Uroš Bizjak <ubizjak@gmail.com>
20662
20663 * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): Use
20664 TARGET_EXPR instead of MODIFY_EXPR for the first assignments to
20665 fenv_var and new_fenv_var.
20666
20667 2020-05-06 Jakub Jelinek <jakub@redhat.com>
20668
20669 PR target/93069
20670 * config/i386/subst.md (store_mask_constraint, store_mask_predicate):
20671 Remove.
20672 (avx512dq_vextract<shuffletype>64x2_1_maskm,
20673 avx512f_vextract<shuffletype>32x4_1_maskm,
20674 vec_extract_lo_<mode>_maskm, vec_extract_hi_<mode>_maskm): Remove.
20675 (<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>): Split
20676 into ...
20677 (*avx512dq_vextract<shuffletype>64x2_1,
20678 avx512dq_vextract<shuffletype>64x2_1_mask): ... these new
20679 define_insns. Even in the masked variant allow memory output but in
20680 that case use 0 rather than 0C constraint on the source of masked-out
20681 elts.
20682 (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Split
20683 into ...
20684 (*avx512f_vextract<shuffletype>32x4_1,
20685 avx512f_vextract<shuffletype>32x4_1_mask): ... these new define_insns.
20686 Even in the masked variant allow memory output but in that case use
20687 0 rather than 0C constraint on the source of masked-out elts.
20688 (vec_extract_lo_<mode><mask_name>): Split into ...
20689 (vec_extract_lo_<mode>, vec_extract_lo_<mode>_mask): ... these new
20690 define_insns. Even in the masked variant allow memory output but in
20691 that case use 0 rather than 0C constraint on the source of masked-out
20692 elts.
20693 (vec_extract_hi_<mode><mask_name>): Split into ...
20694 (vec_extract_hi_<mode>, vec_extract_hi_<mode>_mask): ... these new
20695 define_insns. Even in the masked variant allow memory output but in
20696 that case use 0 rather than 0C constraint on the source of masked-out
20697 elts.
20698
20699 2020-05-06 qing zhao <qing.zhao@oracle.com>
20700
20701 PR c/94230
20702 * common.opt: Add -flarge-source-files.
20703 * doc/invoke.texi: Document it.
20704 * toplev.c (process_options): set line_table->default_range_bits
20705 to 0 when flag_large_source_files is true.
20706
20707 2020-05-06 Uroš Bizjak <ubizjak@gmail.com>
20708
20709 PR target/94913
20710 * config/i386/predicates.md (add_comparison_operator): New predicate.
20711 * config/i386/i386.md (compare->add splitter): New splitters.
20712
20713 2020-05-06 Richard Biener <rguenther@suse.de>
20714
20715 * tree-vectorizer.h (vect_transform_slp_perm_load): Adjust.
20716 * tree-vect-data-refs.c (vect_slp_analyze_node_dependences):
20717 Remove slp_instance parameter, just iterate over all scalar stmts.
20718 (vect_slp_analyze_instance_dependence): Adjust and likewise.
20719 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Remove unused BB
20720 parameter.
20721 (vect_schedule_slp): Just iterate over all scalar stmts.
20722 (vect_supported_load_permutation_p): Adjust.
20723 (vect_transform_slp_perm_load): Remove slp_instance parameter,
20724 instead use the number of lanes in the node as group size.
20725 * tree-vect-stmts.c (vect_model_load_cost): Get vectorization
20726 factor instead of slp_instance as parameter.
20727 (vectorizable_load): Adjust.
20728
20729 2020-05-06 Andreas Schwab <schwab@suse.de>
20730
20731 * config/aarch64/driver-aarch64.c: Include "aarch64-protos.h".
20732 (aarch64_get_extension_string_for_isa_flags): Don't declare.
20733
20734 2020-05-06 Richard Biener <rguenther@suse.de>
20735
20736 PR middle-end/94964
20737 * cfgloopmanip.c (create_preheader): Require non-complex
20738 preheader edge for CP_SIMPLE_PREHEADERS.
20739
20740 2020-05-06 Richard Biener <rguenther@suse.de>
20741
20742 PR tree-optimization/94963
20743 * tree-ssa-loop-im.c (execute_sm_if_changed): Remove
20744 no-warning marking of the conditional store.
20745 (execute_sm): Instead mark the uninitialized state
20746 on loop entry to be not warned about.
20747
20748 2020-05-06 Hongtao Liu <hongtao.liu@intel.com>
20749
20750 * common/config/i386/i386-common.c (OPTION_MASK_ISA2_TSXLDTRK_SET,
20751 OPTION_MASK_ISA2_TSXLDTRK_UNSET): New macros.
20752 * config.gcc: Add tsxldtrkintrin.h to extra_headers.
20753 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
20754 TSXLDTRK.
20755 * config/i386/i386-builtin.def: Add new builtins.
20756 * config/i386/i386-c.c (ix86_target_macros_internal): Define
20757 __TSXLDTRK__.
20758 * config/i386/i386-options.c (ix86_target_string): Add
20759 -mtsxldtrk.
20760 (ix86_valid_target_attribute_inner_p): Add attribute tsxldtrk.
20761 * config/i386/i386.h (TARGET_TSXLDTRK, TARGET_TSXLDTRK_P):
20762 New.
20763 * config/i386/i386.md (define_c_enum "unspec"): Add
20764 UNSPECV_SUSLDTRK, UNSPECV_RESLDTRK.
20765 (TSXLDTRK): New define_int_iterator.
20766 ("<tsxldtrk>"): New define_insn.
20767 * config/i386/i386.opt: Add -mtsxldtrk.
20768 * config/i386/immintrin.h: Include tsxldtrkintrin.h.
20769 * config/i386/tsxldtrkintrin.h: New.
20770 * doc/invoke.texi: Document -mtsxldtrk.
20771
20772 2020-05-06 Jakub Jelinek <jakub@redhat.com>
20773
20774 PR tree-optimization/94921
20775 * match.pd (~(~X - Y) -> X + Y, ~(~X + Y) -> X - Y): New
20776 simplifications.
20777
20778 2020-05-06 Richard Biener <rguenther@suse.de>
20779
20780 PR tree-optimization/94965
20781 * tree-vect-stmts.c (vectorizable_load): Fix typo.
20782
20783 2020-05-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20784
20785 * doc/install.texi: Replace Sun with Solaris as appropriate.
20786 (Tools/packages necessary for building GCC, Perl version between
20787 5.6.1 and 5.6.24): Remove Solaris 8 reference.
20788 (Installing GCC: Binaries, Solaris 2 (SPARC, Intel)): Remove
20789 TGCware reference.
20790 (Specific, i?86-*-solaris2*): Update version references for
20791 Solaris 11.3 and later. Remove gas 2.26 caveat.
20792 (Specific, *-*-solaris2*): Update version references for
20793 Solaris 11.3 and later. Remove boehm-gc reference.
20794 Document GMP, MPFR caveats on Solaris 11.3.
20795 (Specific, sparc-sun-solaris2*): Update Solaris 9 references.
20796 (Specific, sparc64-*-solaris2*): Likewise.
20797 Document --build requirement.
20798
20799 2020-05-06 Jakub Jelinek <jakub@redhat.com>
20800
20801 PR target/94950
20802 * config/riscv/riscv-builtins.c (riscv_atomic_assign_expand_fenv): Use
20803 TARGET_EXPR instead of MODIFY_EXPR for first assignment to old_flags.
20804
20805 PR rtl-optimization/94873
20806 * combine.c (combine_instructions): Don't optimize using REG_EQUAL
20807 note if SET_SRC (set) has side-effects.
20808
20809 2020-05-06 Hongtao Liu <hongtao.liu@intel.com>
20810 Wei Xiao <wei3.xiao@intel.com>
20811
20812 * common/config/i386/i386-common.c (OPTION_MASK_ISA2_SERIALIZE_SET,
20813 OPTION_MASK_ISA2_SERIALIZE_UNSET): New macros.
20814 (ix86_handle_option): Handle -mserialize.
20815 * config.gcc (serializeintrin.h): New header file.
20816 * config/i386/cpuid.h (bit_SERIALIZE): New bit.
20817 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
20818 -mserialize.
20819 * config/i386/i386-builtin.def: Add new builtin.
20820 * config/i386/i386-c.c (__SERIALIZE__): New macro.
20821 * config/i386/i386-options.c (ix86_target_opts_isa2_opts):
20822 Add -mserialize.
20823 * (ix86_valid_target_attribute_inner_p): Add target attribute
20824 * for serialize.
20825 * config/i386/i386.h (TARGET_SERIALIZE, TARGET_SERIALIZE_P):
20826 New macros.
20827 * config/i386/i386.md (UNSPECV_SERIALIZE): New unspec.
20828 (serialize): New define_insn.
20829 * config/i386/i386.opt (mserialize): New option
20830 * config/i386/immintrin.h: Include serailizeintrin.h.
20831 * config/i386/serializeintrin.h: New header file.
20832 * doc/invoke.texi: Add documents for -mserialize.
20833
20834 2020-05-06 Richard Biener <rguenther@suse.de>
20835
20836 * tree-cfg.c (verify_gimple_assign_unary): Adjust integer
20837 to/from pointer conversion checking.
20838
20839 2020-05-05 Michael Meissner <meissner@linux.ibm.com>
20840
20841 * config/rs6000/rs6000-builtin.def: Delete changes meant for a
20842 private branch.
20843 * config/rs6000/rs6000-c.c: Likewise.
20844 * config/rs6000/rs6000-call.c: Likewise.
20845 * config/rs6000/rs6000.c: Likewise.
20846
20847 2020-05-05 Sebastian Huber <sebastian.huber@embedded-brains.de>
20848
20849 * config/rtems.h (RTEMS_STARTFILE_SPEC): Define if undefined.
20850 (RTEMS_ENDFILE_SPEC): Likewise.
20851 (STARTFILE_SPEC): Update comment. Add RTEMS_STARTFILE_SPEC.
20852 (ENDFILE_SPEC): Add RTEMS_ENDFILE_SPEC.
20853 (LIB_SPECS): Support -nodefaultlibs option.
20854 * config/or1k/rtems.h (RTEMS_STARTFILE_SPEC): Define.
20855 (RTEMS_ENDFILE_SPEC): Likewise.
20856 * config/rs6000/rtems.h (RTEMS_STARTFILE_SPEC): Likewise.
20857 (RTEMS_ENDFILE_SPEC): Likewise.
20858 * config/v850/rtems.h (RTEMS_STARTFILE_SPEC): Likewise.
20859 (RTEMS_ENDFILE_SPEC): Likewise.
20860
20861 2020-05-05 Dimitar Dimitrov <dimitar@dinux.eu>
20862
20863 * config/pru/pru.c (pru_hard_regno_call_part_clobbered): Remove.
20864 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Remove.
20865
20866 2020-05-05 Dimitar Dimitrov <dimitar@dinux.eu>
20867
20868 * config/pru/pru.h: Mark R3.w0 as caller saved.
20869
20870 2020-05-05 Dimitar Dimitrov <dimitar@dinux.eu>
20871
20872 * config/pru/pru.c (pru_emit_doloop): Use new gen_doloop_end_internal
20873 and gen_doloop_begin_internal.
20874 (pru_reorg_loop): Use gen_pruloop with mode.
20875 * config/pru/pru.md: Use new @insn syntax.
20876
20877 2020-05-05 Dimitar Dimitrov <dimitar@dinux.eu>
20878
20879 * config/pru/pru.c (pru_print_operand): Fix fall through comment.
20880
20881 2020-05-05 Uroš Bizjak <ubizjak@gmail.com>
20882
20883 * config/i386/i386.md (fixuns_trunc<mode>si2): Use
20884 "clobber (scratch:M)" instad of "clobber (match_scratch:M N)".
20885 (addqi3_cconly_overflow): Ditto.
20886 (umulv<mode>4): Ditto.
20887 (<s>mul<mode>3_highpart): Ditto.
20888 (tls_global_dynamic_32): Ditto.
20889 (tls_local_dynamic_base_32): Ditto.
20890 (atanxf2): Ditto.
20891 (asinxf2): Ditto.
20892 (acosxf2): Ditto.
20893 (logxf2): Ditto.
20894 (log10xf2): Ditto.
20895 (log2xf2): Ditto.
20896 (*adddi_4): Remove "m" constraint from scratch operand.
20897 (*add<mode>_4): Ditto.
20898
20899 2020-05-05 Jakub Jelinek <jakub@redhat.com>
20900
20901 PR rtl-optimization/94516
20902 * postreload.c (reload_cse_simplify): When replacing sp = sp + const
20903 with sp = reg, add REG_EQUAL note with sp + const.
20904 * combine-stack-adj.c (try_apply_stack_adjustment): Change return
20905 type from int to bool. Add LIVE and OTHER_INSN arguments. Undo
20906 postreload sp = sp + const to sp = reg optimization if needed and
20907 possible.
20908 (combine_stack_adjustments_for_block): Add LIVE argument. Handle
20909 reg = sp insn with sp + const REG_EQUAL note. Adjust
20910 try_apply_stack_adjustment caller, call
20911 df_simulate_initialize_forwards and df_simulate_one_insn_forwards.
20912 (combine_stack_adjustments): Allocate and free LIVE bitmap,
20913 adjust combine_stack_adjustments_for_block caller.
20914
20915 2020-05-05 Martin Liska <mliska@suse.cz>
20916
20917 PR gcov-profile/93623
20918 * tree-cfg.c (stmt_can_terminate_bb_p): Update comment to reflect
20919 reality.
20920
20921 2020-05-05 Martin Liska <mliska@suse.cz>
20922
20923 * opt-functions.awk (opt_args_non_empty): New function.
20924 * opt-read.awk: Use the function for various option arguments.
20925
20926 2020-05-05 Martin Liska <mliska@suse.cz>
20927
20928 PR driver/94330
20929 * lto-wrapper.c (run_gcc): When using -flto=jobserver,
20930 report warning when the jobserver is not detected.
20931
20932 2020-05-05 Martin Liska <mliska@suse.cz>
20933
20934 PR gcov-profile/94636
20935 * gcov.c (main): Print total lines summary at the end.
20936 (generate_results): Expect file_name always being non-null.
20937 Print newline after intermediate file is printed in order to align with
20938 what we do for normal files.
20939
20940 2020-05-05 Martin Liska <mliska@suse.cz>
20941
20942 * dumpfile.c (dump_switch_p): Change return type
20943 and print option suggestion.
20944 * dumpfile.h: Change return type.
20945 * opts-global.c (handle_common_deferred_options):
20946 Move error into dump_switch_p function.
20947
20948 2020-05-05 Martin Liska <mliska@suse.cz>
20949
20950 PR c/92472
20951 * alloc-pool.h: Use const for some arguments.
20952 * bitmap.h: Likewise.
20953 * mem-stats.h: Likewise.
20954 * sese.h (get_entry_bb): Likewise.
20955 (get_exit_bb): Likewise.
20956
20957 2020-05-05 Richard Biener <rguenther@suse.de>
20958
20959 * tree-vect-slp.c (struct vdhs_data): New.
20960 (vect_detect_hybrid_slp): New walker.
20961 (vect_detect_hybrid_slp): Rewrite.
20962
20963 2020-05-05 Richard Biener <rguenther@suse.de>
20964
20965 PR ipa/94947
20966 * tree-ssa-structalias.c (ipa_pta_execute): Use
20967 varpool_node::externally_visible_p ().
20968 (refered_from_nonlocal_var): Likewise.
20969
20970 2020-05-05 Eric Botcazou <ebotcazou@adacore.com>
20971
20972 * gcc.c (LTO_PLUGIN_SPEC): Define if not already.
20973 (LINK_PLUGIN_SPEC): Execute LTO_PLUGIN_SPEC.
20974 * config/vxworks.h (LTO_PLUGIN_SPEC): Define.
20975
20976 2020-05-05 Eric Botcazou <ebotcazou@adacore.com>
20977
20978 * gimplify.c (gimplify_init_constructor): Do not put the constructor
20979 into static memory if it is not complete.
20980
20981 2020-05-05 Richard Biener <rguenther@suse.de>
20982
20983 PR tree-optimization/94949
20984 * tree-ssa-loop-im.c (execute_sm): Check whether we use
20985 the multithreaded model or always compute the stored value
20986 before eliding a load.
20987
20988 2020-05-05 Alex Coplan <alex.coplan@arm.com>
20989
20990 * config/aarch64/aarch64.md (*one_cmpl_zero_extend): New.
20991
20992 2020-05-05 Jakub Jelinek <jakub@redhat.com>
20993
20994 PR tree-optimization/94800
20995 * match.pd (X + (X << C) to X * (1 + (1 << C)),
20996 (X << C1) + (X << C2) to X * ((1 << C1) + (1 << C2))): New
20997 canonicalizations.
20998
20999 PR target/94942
21000 * config/i386/mmx.md (*vec_dupv4hi): Use xYw constraints instead of Yv.
21001
21002 PR tree-optimization/94914
21003 * match.pd ((((type)A * B) >> prec) != 0 to .MUL_OVERFLOW(A, B) != 0):
21004 New simplification.
21005
21006 2020-05-05 Uroš Bizjak <ubizjak@gmail.com>
21007
21008 * config/i386/i386.md (*testqi_ext_3): Use
21009 int_nonimmediate_operand instead of manual mode checks.
21010 (*x86_mov<SWI48:mode>cc_0_m1_neg_leu<SWI:mode>):
21011 Use int_nonimmediate_operand predicate. Rewrite
21012 define_insn_and_split pattern to a combine pass splitter.
21013
21014 2020-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21015
21016 * configure.ac <i[34567]86-*-*>: Add --32 to tls_as_opt on Solaris.
21017 * configure: Regenerate.
21018
21019 2020-05-05 Jakub Jelinek <jakub@redhat.com>
21020
21021 PR target/94460
21022 * config/i386/sse.md (avx2_ph<plusminus_mnemonic>wv16hi3,
21023 ssse3_ph<plusminus_mnemonic>wv8hi3, ssse3_ph<plusminus_mnemonic>wv4hi3,
21024 avx2_ph<plusminus_mnemonic>dv8si3, ssse3_ph<plusminus_mnemonic>dv4si3,
21025 ssse3_ph<plusminus_mnemonic>dv2si3): Simplify RTL patterns.
21026
21027 2020-05-04 Clement Chigot <clement.chigot@atos.net>
21028 David Edelsohn <dje.gcc@gmail.com>
21029
21030 * config/rs6000/rs6000-call.c (rs6000_init_builtins): Override explicit
21031 for fmodl, frexpl, ldexpl and modfl builtins.
21032
21033 2020-05-04 Richard Sandiford <richard.sandiford@arm.com>
21034
21035 PR middle-end/94941
21036 * internal-fn.c (expand_load_lanes_optab_fn): Emit a move if the
21037 chosen lhs is different from the gcall lhs.
21038 (expand_mask_load_optab_fn): Likewise.
21039 (expand_gather_load_optab_fn): Likewise.
21040
21041 2020-05-04 Uroš Bizjak <ubizjak@gmail.com>
21042
21043 PR target/94795
21044 * config/i386/i386.md (*neg<mode>_ccc): New insn pattern.
21045 (EQ compare->LTU compare splitter): New splitter.
21046 (NE compare->NEG splitter): Ditto.
21047
21048 2020-05-04 Marek Polacek <polacek@redhat.com>
21049
21050 Revert:
21051 2020-04-30 Marek Polacek <polacek@redhat.com>
21052
21053 PR c++/94775
21054 * tree.c (check_base_type): Return true only if TYPE_USER_ALIGN match.
21055 (check_aligned_type): Check if TYPE_USER_ALIGN match.
21056
21057 2020-05-04 Richard Biener <rguenther@suse.de>
21058
21059 PR tree-optimization/93891
21060 * tree-ssa-sccvn.c (vn_reference_lookup_3): Fall back to
21061 the original reference tree for assessing access alignment.
21062
21063 2020-05-04 Richard Biener <rguenther@suse.de>
21064
21065 PR tree-optimization/39612
21066 * tree-ssa-loop-im.c (im_mem_ref::loaded): New member.
21067 (set_ref_loaded_in_loop): New.
21068 (mark_ref_loaded): Likewise.
21069 (gather_mem_refs_stmt): Call mark_ref_loaded for loads.
21070 (execute_sm): Avoid issueing a load when it was not there.
21071 (execute_sm_if_changed): Avoid issueing warnings for the
21072 conditional store.
21073
21074 2020-05-04 Martin Jambor <mjambor@suse.cz>
21075
21076 PR ipa/93385
21077 * tree-inline.c (tree_function_versioning): Leave any type conversion
21078 of replacements to setup_one_parameter and its friend
21079 force_value_to_type.
21080
21081 2020-05-04 Uroš Bizjak <ubizjak@gmail.com>
21082
21083 PR target/94650
21084 * config/i386/predicates.md (shr_comparison_operator): New predicate.
21085 * config/i386/i386.md (compare->shr splitter): New splitters.
21086
21087 2020-05-04 Jakub Jelinek <jakub@redhat.com>
21088
21089 PR tree-optimization/94718
21090 * match.pd ((X < 0) != (Y < 0) into (X ^ Y) < 0): New simplification.
21091
21092 PR tree-optimization/94718
21093 * match.pd (bitop (convert @0) (convert? @1)): For GIMPLE, if we can,
21094 replace two nop conversions on bit_{and,ior,xor} argument
21095 and result with just one conversion on the result or another argument.
21096
21097 PR tree-optimization/94718
21098 * fold-const.c (fold_binary_loc): Move (X & C) eqne (Y & C)
21099 -> (X ^ Y) & C eqne 0 optimization to ...
21100 * match.pd ((X & C) op (Y & C) into (X ^ Y) & C op 0): ... here.
21101
21102 * opts.c (get_option_html_page): Instead of hardcoding a list of
21103 options common between C/C++ and Fortran only use gfortran/
21104 documentation for warnings that have CL_Fortran set but not
21105 CL_C or CL_CXX.
21106
21107 2020-05-03 Uroš Bizjak <ubizjak@gmail.com>
21108
21109 * config/i386/i386-expand.c (ix86_expand_int_movcc):
21110 Use plus_constant instead of gen_rtx_PLUS with GEN_INT.
21111 (emit_memmov): Ditto.
21112 (emit_memset): Ditto.
21113 (ix86_expand_strlensi_unroll_1): Ditto.
21114 (release_scratch_register_on_entry): Ditto.
21115 (gen_frame_set): Ditto.
21116 (ix86_emit_restore_reg_using_pop): Ditto.
21117 (ix86_emit_outlined_ms2sysv_restore): Ditto.
21118 (ix86_expand_epilogue): Ditto.
21119 (ix86_expand_split_stack_prologue): Ditto.
21120 * config/i386/i386.md (push immediate splitter): Ditto.
21121 (strmov): Ditto.
21122 (strset): Ditto.
21123
21124 2020-05-02 Iain Sandoe <iain@sandoe.co.uk>
21125
21126 PR translation/93861
21127 * config/darwin-driver.c (darwin_driver_init): Adjust spelling in
21128 a warning.
21129
21130 2020-05-02 Jakub Jelinek <jakub@redhat.com>
21131
21132 * config/tilegx/tilegx.md
21133 (insn_stnt<I124MODE:n>_add<I48MODE:bitsuffix>): Use <I124MODE:n>
21134 rather than just <n>.
21135
21136 2020-05-01 H.J. Lu <hongjiu.lu@intel.com>
21137
21138 PR target/93492
21139 * cfgexpand.c (pass_expand::execute): Set crtl->patch_area_size
21140 and crtl->patch_area_entry.
21141 * emit-rtl.h (rtl_data): Add patch_area_size and patch_area_entry.
21142 * opts.c (common_handle_option): Limit
21143 function_entry_patch_area_size and function_entry_patch_area_start
21144 to USHRT_MAX. Fix a typo in error message.
21145 * varasm.c (assemble_start_function): Use crtl->patch_area_size
21146 and crtl->patch_area_entry.
21147 * doc/invoke.texi: Document the maximum value for
21148 -fpatchable-function-entry.
21149
21150 2020-05-01 Iain Sandoe <iain@sandoe.co.uk>
21151
21152 * config/i386/darwin.h: Repair SUBTARGET_INIT_BUILTINS.
21153 Override SUBTARGET_SHADOW_OFFSET macro.
21154
21155 2020-05-01 Andreas Tobler <andreast@gcc.gnu.org>
21156
21157 * config/i386/i386.h: Define a new macro: SUBTARGET_SHADOW_OFFSET.
21158 * config/i386/i386.c (ix86_asan_shadow_offset): Use this macro.
21159 * config/i386/darwin.h: Override the SUBTARGET_SHADOW_OFFSET macro.
21160 * config/i386/freebsd.h: Likewise.
21161 * config/freebsd.h (LIBASAN_EARLY_SPEC): Define.
21162 LIBTSAN_EARLY_SPEC): Likewise. (LIBLSAN_EARLY_SPEC): Likewise.
21163
21164 2020-04-30 Alexandre Oliva <oliva@adacore.com>
21165
21166 * doc/sourcebuild.texi (Effective-Target Keywords): Document
21167 the newly-introduced fileio effective target.
21168
21169 2020-04-30 Richard Sandiford <richard.sandiford@arm.com>
21170
21171 PR rtl-optimization/94740
21172 * cse.c (cse_process_notes_1): Replace with...
21173 (cse_process_note_1): ...this new function, acting as a
21174 simplify_replace_fn_rtx callback to process_note. Handle only
21175 REGs and MEMs directly. Validate the MEM if cse_process_note
21176 changes its address.
21177 (cse_process_notes): Replace with...
21178 (cse_process_note): ...this new function.
21179 (cse_extended_basic_block): Update accordingly, iterating over
21180 the register notes and passing individual notes to cse_process_note.
21181
21182 2020-04-30 Carl Love <cel@us.ibm.com>
21183
21184 * config/rs6000/emmintrin.h (_mm_movemask_epi8): Fix comment.
21185
21186 2020-04-30 Martin Jambor <mjambor@suse.cz>
21187
21188 PR ipa/94856
21189 * cgraph.c (clone_of_p): Also consider thunks whih had their bodies
21190 saved by the inliner and thunks which had their call inlined.
21191 * ipa-inline-transform.c (save_inline_function_body): Fill in
21192 former_clone_of of new body holders.
21193
21194 2020-04-30 Jakub Jelinek <jakub@redhat.com>
21195
21196 * BASE-VER: Set to 11.0.0.
21197
21198 2020-04-30 Jonathan Wakely <jwakely@redhat.com>
21199
21200 * pretty-print.c (pp_take_prefix): Fix spelling in comment.
21201
21202 2020-04-30 Marek Polacek <polacek@redhat.com>
21203
21204 PR c++/94775
21205 * tree.c (check_base_type): Return true only if TYPE_USER_ALIGN match.
21206 (check_aligned_type): Check if TYPE_USER_ALIGN match.
21207
21208 2020-04-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21209
21210 * config/aarch64/aarch64.h (TARGET_OUTLINE_ATOMICS): Define.
21211 * config/aarch64/aarch64.opt (moutline-atomics): Change to Int variable.
21212 * doc/invoke.texi (moutline-atomics): Document as on by default.
21213
21214 2020-04-30 Szabolcs Nagy <szabolcs.nagy@arm.com>
21215
21216 PR target/94748
21217 * config/aarch64/aarch64-bti-insert.c (rest_of_insert_bti): Remove
21218 the check for NOTE_INSN_DELETED_LABEL.
21219
21220 2020-04-30 Jakub Jelinek <jakub@redhat.com>
21221
21222 * configure.ac (--with-documentation-root-url,
21223 --with-changes-root-url): Diagnose URL not ending with /,
21224 use AC_DEFINE_UNQUOTED instead of AC_SUBST.
21225 * opts.h (get_changes_url): Remove.
21226 * opts.c (get_changes_url): Remove.
21227 * Makefile.in (CFLAGS-opts.o): Don't add -DDOCUMENTATION_ROOT_URL
21228 or -DCHANGES_ROOT_URL.
21229 * doc/install.texi (--with-documentation-root-url,
21230 --with-changes-root-url): Document.
21231 * config/arm/arm.c (aapcs_vfp_is_call_or_return_candidate): Don't call
21232 get_changes_url and free, change url variable type to const char * and
21233 set it to CHANGES_ROOT_URL "gcc-10/changes.html#empty_base".
21234 * config/s390/s390.c (s390_function_arg_vector,
21235 s390_function_arg_float): Likewise.
21236 * config/aarch64/aarch64.c (aarch64_vfp_is_call_or_return_candidate):
21237 Likewise.
21238 * config/rs6000/rs6000-call.c (rs6000_discover_homogeneous_aggregate):
21239 Likewise.
21240 * config.in: Regenerate.
21241 * configure: Regenerate.
21242
21243 2020-04-30 Christophe Lyon <christophe.lyon@linaro.org>
21244
21245 PR target/57002
21246 * config/arm/arm.c (isr_attribute_args): Remove duplicate entries.
21247
21248 2020-04-30 Andreas Krebbel <krebbel@linux.ibm.com>
21249
21250 * config/s390/constraints.md ("j>f", "jb4"): New constraints.
21251 * config/s390/vecintrin.h (vec_load_len_r, vec_store_len_r): Fix
21252 macro definitions.
21253 * config/s390/vx-builtins.md ("vlrlrv16qi", "vstrlrv16qi"): Add a
21254 separate expander.
21255 ("*vlrlrv16qi", "*vstrlrv16qi"): Add alternative for vl/vst.
21256 Change constraint for vlrl/vstrl to jb4.
21257
21258 2020-04-30 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
21259
21260 * var-tracking.c (vt_initialize): Move variables pre and post
21261 into inner block and initialize both in order to fix warning
21262 about uninitialized use. Remove unnecessary checks for
21263 frame_pointer_needed.
21264
21265 2020-04-30 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
21266
21267 * toplev.c (output_stack_usage_1): Ensure that first
21268 argument to fprintf is not null.
21269
21270 2020-04-29 Jakub Jelinek <jakub@redhat.com>
21271
21272 * configure.ac (-with-changes-root-url): New configure option,
21273 defaulting to https://gcc.gnu.org/.
21274 * Makefile.in (CFLAGS-opts.o): Define CHANGES_ROOT_URL for
21275 opts.c.
21276 * pretty-print.c (get_end_url_string): New function.
21277 (pp_format): Handle %{ and %} for URLs.
21278 (pp_begin_url): Use pp_string instead of pp_printf.
21279 (pp_end_url): Use get_end_url_string.
21280 * opts.h (get_changes_url): Declare.
21281 * opts.c (get_changes_url): New function.
21282 * config/rs6000/rs6000-call.c: Include opts.h.
21283 (rs6000_discover_homogeneous_aggregate): Use %{in GCC 10.1%} instead
21284 of just in GCC 10.1 in diagnostics and add URL.
21285 * config/arm/arm.c (aapcs_vfp_is_call_or_return_candidate): Likewise.
21286 * config/aarch64/aarch64.c (aarch64_vfp_is_call_or_return_candidate):
21287 Likewise.
21288 * config/s390/s390.c (s390_function_arg_vector,
21289 s390_function_arg_float): Likewise.
21290 * configure: Regenerated.
21291
21292 PR target/94704
21293 * config/s390/s390.c (s390_function_arg_vector,
21294 s390_function_arg_float): Use DECL_FIELD_ABI_IGNORED instead of
21295 cxx17_empty_base_field_p. In -Wpsabi diagnostics use the type
21296 passed to the function rather than the type of the single element.
21297 Rename cxx17_empty_base_seen variable to empty_base_seen, change
21298 type to int, and adjust diagnostics depending on if the field
21299 has [[no_unique_attribute]] or not.
21300
21301 PR target/94832
21302 * config/i386/avx512bwintrin.h (_mm512_alignr_epi8,
21303 _mm512_mask_alignr_epi8, _mm512_maskz_alignr_epi8): Wrap macro operands
21304 used in casts into parens.
21305 * config/i386/avx512fintrin.h (_mm512_cvt_roundps_ph, _mm512_cvtps_ph,
21306 _mm512_mask_cvt_roundps_ph, _mm512_mask_cvtps_ph,
21307 _mm512_maskz_cvt_roundps_ph, _mm512_maskz_cvtps_ph,
21308 _mm512_mask_cmp_epi64_mask, _mm512_mask_cmp_epi32_mask,
21309 _mm512_mask_cmp_epu64_mask, _mm512_mask_cmp_epu32_mask,
21310 _mm512_mask_cmp_round_pd_mask, _mm512_mask_cmp_round_ps_mask,
21311 _mm512_mask_cmp_pd_mask, _mm512_mask_cmp_ps_mask): Likewise.
21312 * config/i386/avx512vlbwintrin.h (_mm256_mask_alignr_epi8,
21313 _mm256_maskz_alignr_epi8, _mm_mask_alignr_epi8, _mm_maskz_alignr_epi8,
21314 _mm256_mask_cmp_epu8_mask): Likewise.
21315 * config/i386/avx512vlintrin.h (_mm_mask_cvtps_ph, _mm_maskz_cvtps_ph,
21316 _mm256_mask_cvtps_ph, _mm256_maskz_cvtps_ph): Likewise.
21317 * config/i386/f16cintrin.h (_mm_cvtps_ph, _mm256_cvtps_ph): Likewise.
21318 * config/i386/shaintrin.h (_mm_sha1rnds4_epu32): Likewise.
21319
21320 PR target/94832
21321 * config/i386/avx2intrin.h (_mm_mask_i32gather_pd,
21322 _mm256_mask_i32gather_pd, _mm_mask_i64gather_pd,
21323 _mm256_mask_i64gather_pd, _mm_mask_i32gather_ps,
21324 _mm256_mask_i32gather_ps, _mm_mask_i64gather_ps,
21325 _mm256_mask_i64gather_ps, _mm_i32gather_epi64,
21326 _mm_mask_i32gather_epi64, _mm256_i32gather_epi64,
21327 _mm256_mask_i32gather_epi64, _mm_i64gather_epi64,
21328 _mm_mask_i64gather_epi64, _mm256_i64gather_epi64,
21329 _mm256_mask_i64gather_epi64, _mm_i32gather_epi32,
21330 _mm_mask_i32gather_epi32, _mm256_i32gather_epi32,
21331 _mm256_mask_i32gather_epi32, _mm_i64gather_epi32,
21332 _mm_mask_i64gather_epi32, _mm256_i64gather_epi32,
21333 _mm256_mask_i64gather_epi32): Surround macro parameter uses with
21334 parens.
21335 (_mm_i32gather_pd, _mm256_i32gather_pd, _mm_i64gather_pd,
21336 _mm256_i64gather_pd, _mm_i32gather_ps, _mm256_i32gather_ps,
21337 _mm_i64gather_ps, _mm256_i64gather_ps): Likewise. Don't use
21338 as mask vector containing -1.0 or -1.0f elts, but instead vector
21339 with all bits set using _mm*_cmpeq_p? with zero operands.
21340 * config/i386/avx512fintrin.h (_mm512_i32gather_ps,
21341 _mm512_mask_i32gather_ps, _mm512_i32gather_pd,
21342 _mm512_mask_i32gather_pd, _mm512_i64gather_ps,
21343 _mm512_mask_i64gather_ps, _mm512_i64gather_pd,
21344 _mm512_mask_i64gather_pd, _mm512_i32gather_epi32,
21345 _mm512_mask_i32gather_epi32, _mm512_i32gather_epi64,
21346 _mm512_mask_i32gather_epi64, _mm512_i64gather_epi32,
21347 _mm512_mask_i64gather_epi32, _mm512_i64gather_epi64,
21348 _mm512_mask_i64gather_epi64, _mm512_i32scatter_ps,
21349 _mm512_mask_i32scatter_ps, _mm512_i32scatter_pd,
21350 _mm512_mask_i32scatter_pd, _mm512_i64scatter_ps,
21351 _mm512_mask_i64scatter_ps, _mm512_i64scatter_pd,
21352 _mm512_mask_i64scatter_pd, _mm512_i32scatter_epi32,
21353 _mm512_mask_i32scatter_epi32, _mm512_i32scatter_epi64,
21354 _mm512_mask_i32scatter_epi64, _mm512_i64scatter_epi32,
21355 _mm512_mask_i64scatter_epi32, _mm512_i64scatter_epi64,
21356 _mm512_mask_i64scatter_epi64): Surround macro parameter uses with
21357 parens.
21358 * config/i386/avx512pfintrin.h (_mm512_prefetch_i32gather_pd,
21359 _mm512_prefetch_i32gather_ps, _mm512_mask_prefetch_i32gather_pd,
21360 _mm512_mask_prefetch_i32gather_ps, _mm512_prefetch_i64gather_pd,
21361 _mm512_prefetch_i64gather_ps, _mm512_mask_prefetch_i64gather_pd,
21362 _mm512_mask_prefetch_i64gather_ps, _mm512_prefetch_i32scatter_pd,
21363 _mm512_prefetch_i32scatter_ps, _mm512_mask_prefetch_i32scatter_pd,
21364 _mm512_mask_prefetch_i32scatter_ps, _mm512_prefetch_i64scatter_pd,
21365 _mm512_prefetch_i64scatter_ps, _mm512_mask_prefetch_i64scatter_pd,
21366 _mm512_mask_prefetch_i64scatter_ps): Likewise.
21367 * config/i386/avx512vlintrin.h (_mm256_mmask_i32gather_ps,
21368 _mm_mmask_i32gather_ps, _mm256_mmask_i32gather_pd,
21369 _mm_mmask_i32gather_pd, _mm256_mmask_i64gather_ps,
21370 _mm_mmask_i64gather_ps, _mm256_mmask_i64gather_pd,
21371 _mm_mmask_i64gather_pd, _mm256_mmask_i32gather_epi32,
21372 _mm_mmask_i32gather_epi32, _mm256_mmask_i32gather_epi64,
21373 _mm_mmask_i32gather_epi64, _mm256_mmask_i64gather_epi32,
21374 _mm_mmask_i64gather_epi32, _mm256_mmask_i64gather_epi64,
21375 _mm_mmask_i64gather_epi64, _mm256_i32scatter_ps,
21376 _mm256_mask_i32scatter_ps, _mm_i32scatter_ps, _mm_mask_i32scatter_ps,
21377 _mm256_i32scatter_pd, _mm256_mask_i32scatter_pd, _mm_i32scatter_pd,
21378 _mm_mask_i32scatter_pd, _mm256_i64scatter_ps,
21379 _mm256_mask_i64scatter_ps, _mm_i64scatter_ps, _mm_mask_i64scatter_ps,
21380 _mm256_i64scatter_pd, _mm256_mask_i64scatter_pd, _mm_i64scatter_pd,
21381 _mm_mask_i64scatter_pd, _mm256_i32scatter_epi32,
21382 _mm256_mask_i32scatter_epi32, _mm_i32scatter_epi32,
21383 _mm_mask_i32scatter_epi32, _mm256_i32scatter_epi64,
21384 _mm256_mask_i32scatter_epi64, _mm_i32scatter_epi64,
21385 _mm_mask_i32scatter_epi64, _mm256_i64scatter_epi32,
21386 _mm256_mask_i64scatter_epi32, _mm_i64scatter_epi32,
21387 _mm_mask_i64scatter_epi32, _mm256_i64scatter_epi64,
21388 _mm256_mask_i64scatter_epi64, _mm_i64scatter_epi64,
21389 _mm_mask_i64scatter_epi64): Likewise.
21390
21391 2020-04-29 Jeff Law <law@redhat.com>
21392
21393 * config/h8300/h8300.md (H8/SX div patterns): All H8/SX specific
21394 division instructions are 4 bytes long.
21395
21396 2020-04-29 Jakub Jelinek <jakub@redhat.com>
21397
21398 PR target/94826
21399 * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv): Use
21400 TARGET_EXPR instead of MODIFY_EXPR for first assignment to
21401 fenv_var, fenv_clear and old_fenv variables. For fenv_addr
21402 take address of TARGET_EXPR of fenv_var with void_node initializer.
21403 Formatting fixes.
21404
21405 2020-04-29 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
21406
21407 PR tree-optimization/94774
21408 * gimple-ssa-sprintf.c (try_substitute_return_value): Initialize
21409 variable retval.
21410
21411 2020-04-29 Richard Sandiford <richard.sandiford@arm.com>
21412
21413 * calls.h (cxx17_empty_base_field_p): Turn into a function declaration.
21414 * calls.c (cxx17_empty_base_field_p): New function. Check
21415 DECL_ARTIFICIAL and RECORD_OR_UNION_TYPE_P in addition to the
21416 previous checks.
21417
21418 2020-04-29 H.J. Lu <hongjiu.lu@intel.com>
21419
21420 PR target/93654
21421 * config/i386/i386-options.c (ix86_set_indirect_branch_type):
21422 Allow -fcf-protection with -mindirect-branch=thunk-extern and
21423 -mfunction-return=thunk-extern.
21424 * doc/invoke.texi: Update notes for -fcf-protection=branch with
21425 -mindirect-branch=thunk-extern and -mindirect-return=thunk-extern.
21426
21427 2020-04-29 Richard Sandiford <richard.sandiford@arm.com>
21428
21429 * doc/sourcebuild.texi: Add missing arm_arch_v8a_hard_ok anchor.
21430
21431 2020-04-29 Richard Sandiford <richard.sandiford@arm.com>
21432
21433 * config/arm/arm-builtins.c (arm_atomic_assign_expand_fenv): Use
21434 TARGET_EXPR instead of MODIFY_EXPR for the first assignments to
21435 fenv_var and new_fenv_var.
21436
21437 2020-04-29 Richard Sandiford <richard.sandiford@arm.com>
21438
21439 * doc/sourcebuild.texi (arm_arch_v8a_hard_ok): Document new
21440 effective-target keyword.
21441 (arm_arch_v8a_hard_multilib): Likewise.
21442 (arm_arch_v8a_hard): Document new dg-add-options keyword.
21443 * config/arm/arm.c (arm_return_in_memory): Note that the APCS
21444 code is deprecated and has not been updated to handle
21445 DECL_FIELD_ABI_IGNORED.
21446 (WARN_PSABI_EMPTY_CXX17_BASE): New constant.
21447 (WARN_PSABI_NO_UNIQUE_ADDRESS): Likewise.
21448 (aapcs_vfp_sub_candidate): Replace the boolean pointer parameter
21449 avoid_cxx17_empty_base with a pointer to a bitmask. Ignore fields
21450 whose DECL_FIELD_ABI_IGNORED bit is set when determining whether
21451 something actually is a HFA or HVA. Record whether we see a
21452 [[no_unique_address]] field that previous GCCs would not have
21453 ignored in this way.
21454 (aapcs_vfp_is_call_or_return_candidate): Update the calls to
21455 aapcs_vfp_sub_candidate and report a -Wpsabi warning for the
21456 [[no_unique_address]] case. Use TYPE_MAIN_VARIANT in the
21457 diagnostic messages.
21458 (arm_needs_doubleword_align): Add a comment explaining why we
21459 consider even zero-sized fields.
21460
21461 2020-04-29 Richard Biener <rguenther@suse.de>
21462 Li Zekun <lizekun1@huawei.com>
21463
21464 PR lto/94822
21465 * tree.c (component_ref_size): Guard against error_mark_node
21466 DECL_INITIAL as it happens with LTO.
21467
21468 2020-04-29 Richard Sandiford <richard.sandiford@arm.com>
21469
21470 * config/aarch64/aarch64.c (aarch64_function_arg_alignment): Add a
21471 comment explaining why we consider even zero-sized fields.
21472 (WARN_PSABI_EMPTY_CXX17_BASE): New constant.
21473 (WARN_PSABI_NO_UNIQUE_ADDRESS): Likewise.
21474 (aapcs_vfp_sub_candidate): Replace the boolean pointer parameter
21475 avoid_cxx17_empty_base with a pointer to a bitmask. Ignore fields
21476 whose DECL_FIELD_ABI_IGNORED bit is set when determining whether
21477 something actually is a HFA or HVA. Record whether we see a
21478 [[no_unique_address]] field that previous GCCs would not have
21479 ignored in this way.
21480 (aarch64_vfp_is_call_or_return_candidate): Add a parameter to say
21481 whether diagnostics should be suppressed. Update the calls to
21482 aapcs_vfp_sub_candidate and report a -Wpsabi warning for the
21483 [[no_unique_address]] case.
21484 (aarch64_return_in_msb): Update call accordingly, never silencing
21485 diagnostics.
21486 (aarch64_function_value): Likewise.
21487 (aarch64_return_in_memory_1): Likewise.
21488 (aarch64_init_cumulative_args): Likewise.
21489 (aarch64_gimplify_va_arg_expr): Likewise.
21490 (aarch64_pass_by_reference_1): Take a CUMULATIVE_ARGS pointer and
21491 use it to decide whether arch64_vfp_is_call_or_return_candidate
21492 should be silent.
21493 (aarch64_pass_by_reference): Update calls accordingly.
21494 (aarch64_vfp_is_call_candidate): Use the CUMULATIVE_ARGS argument
21495 to decide whether arch64_vfp_is_call_or_return_candidate should be
21496 silent.
21497
21498 2020-04-29 Haijian Zhang <z.zhanghaijian@huawei.com>
21499
21500 PR target/94820
21501 * config/aarch64/aarch64-builtins.c
21502 (aarch64_atomic_assign_expand_fenv): Use TARGET_EXPR instead of
21503 MODIFY_EXPR for first assignment to fenv_cr, fenv_sr and
21504 new_fenv_var.
21505
21506 2020-04-29 Thomas Schwinge <thomas@codesourcery.com>
21507
21508 * configure.ac <$enable_offload_targets>: Do parsing as done
21509 elsewhere.
21510 * configure: Regenerate.
21511
21512 * configure.ac <$enable_offload_targets>: 'amdgcn' is 'gcn'.
21513 * configure: Regenerate.
21514
21515 PR target/94279
21516 * rtlanal.c (set_noop_p): Handle non-constant selectors.
21517
21518 PR target/94282
21519 * common/config/gcn/gcn-common.c (gcn_except_unwind_info): New
21520 function.
21521 (TARGET_EXCEPT_UNWIND_INFO): Define.
21522
21523 2020-04-29 Jakub Jelinek <jakub@redhat.com>
21524
21525 PR target/94248
21526 * config/gcn/gcn.md (*mov<mode>_insn): Use
21527 'reg_overlap_mentioned_p' to check for overlap.
21528
21529 PR target/94706
21530 * config/ia64/ia64.c (hfa_element_mode): Use DECL_FIELD_ABI_IGNORED
21531 instead of cxx17_empty_base_field_p.
21532
21533 PR target/94707
21534 * tree-core.h (tree_decl_common): Note decl_flag_0 used for
21535 DECL_FIELD_ABI_IGNORED.
21536 * tree.h (DECL_FIELD_ABI_IGNORED): Define.
21537 * calls.h (cxx17_empty_base_field_p): Change into a temporary
21538 macro, check DECL_FIELD_ABI_IGNORED flag with no "no_unique_address"
21539 attribute.
21540 * calls.c (cxx17_empty_base_field_p): Remove.
21541 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Handle
21542 DECL_FIELD_ABI_IGNORED.
21543 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
21544 * lto-streamer-out.c (hash_tree): Likewise.
21545 * config/rs6000/rs6000-call.c (rs6000_aggregate_candidate): Rename
21546 cxx17_empty_base_seen to empty_base_seen, change type to int *,
21547 adjust recursive calls, use DECL_FIELD_ABI_IGNORED instead of
21548 cxx17_empty_base_field_p, if "no_unique_address" attribute is
21549 present, propagate that to the caller too.
21550 (rs6000_discover_homogeneous_aggregate): Adjust
21551 rs6000_aggregate_candidate caller, emit different diagnostics
21552 when c++17 empty base fields are present and when empty
21553 [[no_unique_address]] fields are present.
21554 * config/rs6000/rs6000.c (rs6000_special_round_type_align,
21555 darwin_rs6000_special_round_type_align): Skip DECL_FIELD_ABI_IGNORED
21556 fields.
21557
21558 2020-04-29 Richard Biener <rguenther@suse.de>
21559
21560 * tree-ssa-loop-im.c (ref_always_accessed::operator ()):
21561 Just check whether the stmt stores.
21562
21563 2020-04-28 Alexandre Oliva <oliva@adacore.com>
21564
21565 PR target/94812
21566 * config/rs6000/rs6000.md (rs6000_mffsl): Copy result to
21567 output operand in emulation. Don't overwrite pseudos.
21568
21569 2020-04-28 Jeff Law <law@redhat.com>
21570
21571 * config/h8300/h8300.md (H8/SX mult patterns): All H8/SX specific
21572 multiply patterns are 4 bytes long.
21573
21574 2020-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21575
21576 * config/arm/arm-cpus.in (cortex-m55): Remove +nofp option.
21577 * doc/invoke.texi (Arm Options): Remove -mcpu=cortex-m55 from +nofp option.
21578
21579 2020-04-28 Matthew Malcomson <matthew.malcomson@arm.com>
21580 Jakub Jelinek <jakub@redhat.com>
21581
21582 PR target/94711
21583 * config/arm/arm.c (aapcs_vfp_sub_candidate): Account for C++17 empty
21584 base class artificial fields.
21585 (aapcs_vfp_is_call_or_return_candidate): Warn when PCS ABI
21586 decision is different after this fix.
21587
21588 2020-04-28 David Malcolm <dmalcolm@redhat.com>
21589
21590 PR analyzer/94447
21591 PR analyzer/94639
21592 PR analyzer/94732
21593 PR analyzer/94754
21594 * doc/invoke.texi (Static Analyzer Options): Remove
21595 -Wanalyzer-use-of-uninitialized-value.
21596 (-Wno-analyzer-use-of-uninitialized-value): Remove item.
21597
21598 2020-04-28 Jakub Jelinek <jakub@redhat.com>
21599
21600 PR tree-optimization/94809
21601 * tree.c (build_call_expr_internal_loc_array): Call
21602 process_call_operands.
21603
21604 2020-04-27 Anton Youdkevitch <anton.youdkevitch@bell-sw.com>
21605
21606 * config/aarch64/aarch64-cores.def (thunderx3t110): Add the chip name.
21607 * config/aarch64/aarch64-tune.md: Regenerate.
21608 * config/aarch64/aarch64.c (thunderx3t110_addrcost_table): Define.
21609 (thunderx3t110_regmove_cost): Likewise.
21610 (thunderx3t110_vector_cost): Likewise.
21611 (thunderx3t110_prefetch_tune): Likewise.
21612 (thunderx3t110_tunings): Likewise.
21613 * config/aarch64/aarch64-cost-tables.h (thunderx3t110_extra_costs):
21614 Define.
21615 * config/aarch64/thunderx3t110.md: New file.
21616 * config/aarch64/aarch64.md: Include thunderx3t110.md.
21617 * doc/invoke.texi (AArch64 options): Add thunderx3t110.
21618
21619 2020-04-28 Jakub Jelinek <jakub@redhat.com>
21620
21621 PR target/94704
21622 * config/s390/s390.c (s390_function_arg_vector,
21623 s390_function_arg_float): Emit -Wpsabi diagnostics if the ABI changed.
21624
21625 2020-04-28 Richard Sandiford <richard.sandiford@arm.com>
21626
21627 PR tree-optimization/94727
21628 * tree-vect-stmts.c (vect_is_simple_cond): If both comparison
21629 operands are invariant booleans, use the mask type associated with the
21630 STMT_VINFO_VECTYPE. Use !slp_node instead of !vectype to exclude SLP.
21631 (vectorizable_condition): Pass vectype unconditionally to
21632 vect_is_simple_cond.
21633
21634 2020-04-27 Jakub Jelinek <jakub@redhat.com>
21635
21636 PR target/94780
21637 * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Use
21638 TARGET_EXPR instead of MODIFY_EXPR for first assignment to
21639 sw_var, exceptions_var, mxcsr_orig_var and mxcsr_mod_var.
21640
21641 2020-04-27 David Malcolm <dmalcolm@redhat.com>
21642
21643 PR 92830
21644 * configure.ac (DOCUMENTATION_ROOT_URL): Drop trailing "gcc/" from
21645 default value, so that it can by supplied by get_option_html_page.
21646 * configure: Regenerate.
21647 * opts.c: Include "selftest.h".
21648 (get_option_html_page): New function.
21649 (get_option_url): Use it. Reformat to place comments next to the
21650 expressions they refer to.
21651 (selftest::test_get_option_html_page): New.
21652 (selftest::opts_c_tests): New.
21653 * selftest-run-tests.c (selftest::run_tests): Call
21654 selftest::opts_c_tests.
21655 * selftest.h (selftest::opts_c_tests): New decl.
21656
21657 2020-04-27 Richard Sandiford <richard.sandiford@arm.com>
21658
21659 * config/arm/arm-builtins.c (arm_expand_builtin_args): Only apply
21660 UINTVAL to CONST_INTs.
21661
21662 2020-04-27 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
21663
21664 * config/arm/constraints.md (e): Remove constraint.
21665 (Te): Define constraint.
21666 * config/arm/mve.md (vaddvq_<supf><mode>): Modify constraint in
21667 operand 0 from "e" to "Te".
21668 (vaddvaq_<supf><mode>): Likewise.
21669 (vaddvq_p_<supf><mode>): Likewise.
21670 (vmladavq_<supf><mode>): Likewise.
21671 (vmladavxq_s<mode>): Likewise.
21672 (vmlsdavq_s<mode>): Likewise.
21673 (vmlsdavxq_s<mode>): Likewise.
21674 (vaddvaq_p_<supf><mode>): Likewise.
21675 (vmladavaq_<supf><mode>): Likewise.
21676 (vmladavq_p_<supf><mode>): Likewise.
21677 (vmladavxq_p_s<mode>): Likewise.
21678 (vmlsdavq_p_s<mode>): Likewise.
21679 (vmlsdavxq_p_s<mode>): Likewise.
21680 (vmlsdavaxq_s<mode>): Likewise.
21681 (vmlsdavaq_s<mode>): Likewise.
21682 (vmladavaxq_s<mode>): Likewise.
21683 (vmladavaq_p_<supf><mode>): Likewise.
21684 (vmladavaxq_p_s<mode>): Likewise.
21685 (vmlsdavaq_p_s<mode>): Likewise.
21686 (vmlsdavaxq_p_s<mode>): Likewise.
21687
21688 2020-04-27 Andre Vieira <andre.simoesdiasvieira@arm.com>
21689
21690 * config/arm/arm.c (output_move_neon): Only get the first operand if
21691 addr is PLUS.
21692
21693 2020-04-27 Felix Yang <felix.yang@huawei.com>
21694
21695 PR tree-optimization/94784
21696 * tree-ssa-forwprop.c (simplify_vector_constructor): Flip the
21697 assert around so that it checks that the two vectors have equal
21698 TYPE_VECTOR_SUBPARTS and that converting the corresponding element
21699 types is a useless_type_conversion_p.
21700
21701 2020-04-27 Szabolcs Nagy <szabolcs.nagy@arm.com>
21702
21703 PR target/94515
21704 * dwarf2cfi.c (struct GTY): Add ra_mangled.
21705 (cfi_row_equal_p): Check ra_mangled.
21706 (dwarf2out_frame_debug_cfa_window_save): Remove the argument,
21707 this only handles the sparc logic now.
21708 (dwarf2out_frame_debug_cfa_toggle_ra_mangle): New function for
21709 the aarch64 specific logic.
21710 (dwarf2out_frame_debug): Update to use the new subroutines.
21711 (change_cfi_row): Check ra_mangled.
21712
21713 2020-04-27 Jakub Jelinek <jakub@redhat.com>
21714
21715 PR target/94704
21716 * config/s390/s390.c (s390_function_arg_vector,
21717 s390_function_arg_float): Ignore cxx17_empty_base_field_p fields.
21718
21719 2020-04-27 Jiufu Guo <guojiufu@cn.ibm.com>
21720
21721 * common/config/rs6000/rs6000-common.c
21722 (rs6000_option_optimization_table) [OPT_LEVELS_ALL]: Remove turn off
21723 -fweb.
21724 * config/rs6000/rs6000.c (rs6000_option_override_internal): Avoid to
21725 set flag_web.
21726
21727 2020-04-27 Martin Liska <mliska@suse.cz>
21728
21729 PR lto/94659
21730 * cgraph.h (cgraph_node::can_remove_if_no_direct_calls_and_refs_p):
21731 Do not remove ifunc_resolvers in remove unreachable nodes in LTO.
21732
21733 2020-04-27 Xiong Hu Luo <luoxhu@linux.ibm.com>
21734
21735 PR target/91518
21736 * config/rs6000/rs6000-logue.c (frame_pointer_needed_indeed):
21737 New variable.
21738 (rs6000_emit_prologue_components):
21739 Check with frame_pointer_needed_indeed.
21740 (rs6000_emit_epilogue_components): Likewise.
21741 (rs6000_emit_prologue): Likewise.
21742 (rs6000_emit_epilogue): Set frame_pointer_needed_indeed.
21743
21744 2020-04-25 David Edelsohn <dje.gcc@gmail.com>
21745
21746 * config/rs6000/rs6000-logue.c (rs6000_stack_info): Don't push a
21747 stack frame when debugging and flag_compare_debug is enabled.
21748
21749 2020-04-25 Michael Meissner <meissner@linux.ibm.com>
21750
21751 * config/rs6000/linux64.h (PCREL_SUPPORTED_BY_OS): Define to
21752 enable PC-relative addressing for -mcpu=future.
21753 * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Move
21754 after OTHER_FUTURE_MASKS. Use OTHER_FUTURE_MASKS.
21755 * config/rs6000/rs6000.c (PCREL_SUPPORTED_BY_OS): If not defined,
21756 suppress PC-relative addressing.
21757 (rs6000_option_override_internal): Split up error messages
21758 checking for -mprefixed and -mpcrel. Enable -mpcrel if the target
21759 system supports it.
21760
21761 2020-04-25 Jakub Jelinek <jakub@redhat.com>
21762 Richard Biener <rguenther@suse.de>
21763
21764 PR tree-optimization/94734
21765 PR tree-optimization/89430
21766 * tree-ssa-phiopt.c: Include tree-eh.h.
21767 (cond_store_replacement): Return false if an automatic variable
21768 access could trap. If -fstore-data-races, don't return false
21769 just because an automatic variable is addressable.
21770
21771 2020-04-24 Andrew Stubbs <ams@codesourcery.com>
21772
21773 * config/gcn/gcn-valu.md (add<mode>_zext_dup2_exec): Fix merge
21774 of high-part.
21775 (add<mode>_sext_dup2_exec): Likewise.
21776
21777 2020-04-24 Segher Boessenkool <segher@kernel.crashing.org>
21778
21779 PR target/94710
21780 * config/rs6000/vector.md (vec_shr_<mode> for VEC_L): Correct little
21781 endian byteshift_val calculation.
21782
21783 2020-04-24 Andrew Stubbs <ams@codesourcery.com>
21784
21785 * config/gcn/gcn.md (*mov<mode>_insn): Only split post-reload.
21786
21787 2020-04-24 Richard Sandiford <richard.sandiford@arm.com>
21788
21789 * config/aarch64/arm_sve.h: Add a comment.
21790
21791 2020-04-24 Haijian Zhang <z.zhanghaijian@huawei.com>
21792
21793 PR rtl-optimization/94708
21794 * combine.c (simplify_if_then_else): Add check for
21795 !HONOR_NANS (mode) && !HONOR_SIGNED_ZEROS (mode).
21796
21797 2020-04-23 Martin Sebor <msebor@redhat.com>
21798
21799 PR driver/90983
21800 * common.opt (-Wno-frame-larger-than): New option.
21801 (-Wno-larger-than, -Wno-stack-usage): Same.
21802
21803 2020-04-23 Andrew Stubbs <ams@codesourcery.com>
21804
21805 * config/gcn/gcn-valu.md (mov<mode>_exec): Swap the numbers on operands
21806 2 and 3.
21807 (mov<mode>_exec): Likewise.
21808 (trunc<vndi><mode>2_exec): Swap parameters to gen_mov<mode>_exec.
21809 (<convop><mode><vndi>2_exec): Likewise.
21810
21811 2019-04-23 Eric Botcazou <ebotcazou@adacore.com>
21812
21813 PR tree-optimization/94717
21814 * gimple-ssa-store-merging.c (try_coalesce_bswap): Return false if one
21815 of the stores doesn't have the same landing pad number as the first.
21816 (coalesce_immediate_stores): Do not try to coalesce the store using
21817 bswap if it doesn't have the same landing pad number as the first.
21818
21819 2020-04-23 Bill Schmidt <wschmidt@linux.ibm.com>
21820
21821 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
21822 Replace outdated link to ELFv2 ABI.
21823
21824 2020-04-23 Jakub Jelinek <jakub@redhat.com>
21825
21826 PR target/94710
21827 * optabs.c (expand_vec_perm_const): For shift_amt const0_rtx
21828 just return v2.
21829
21830 PR middle-end/94724
21831 * tree.c (get_narrower): Instead of creating COMPOUND_EXPRs
21832 temporarily with non-final second operand and updating it later,
21833 push COMPOUND_EXPRs into a vector and process it in reverse,
21834 creating COMPOUND_EXPRs with the final operands.
21835
21836 2020-04-23 Szabolcs Nagy <szabolcs.nagy@arm.com>
21837
21838 PR target/94697
21839 * config/aarch64/aarch64-bti-insert.c (rest_of_insert_bti): Swap
21840 bti c and bti j handling.
21841
21842 2020-04-23 Andrew Stubbs <ams@codesourcery.com>
21843 Thomas Schwinge <thomas@codesourcery.com>
21844
21845 PR middle-end/93488
21846
21847 * omp-expand.c (expand_omp_target): Use force_gimple_operand_gsi on
21848 t_async and the wait arguments.
21849
21850 2020-04-23 Richard Sandiford <richard.sandiford@arm.com>
21851
21852 PR tree-optimization/94727
21853 * tree-vect-stmts.c (vectorizable_comparison): Use mask_type when
21854 comparing invariant scalar booleans.
21855
21856 2020-04-23 Matthew Malcomson <matthew.malcomson@arm.com>
21857 Jakub Jelinek <jakub@redhat.com>
21858
21859 PR target/94383
21860 * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Account for C++17
21861 empty base class artificial fields.
21862 (aarch64_vfp_is_call_or_return_candidate): Warn when ABI PCS decision is
21863 different after this fix.
21864
21865 2020-04-23 Jakub Jelinek <jakub@redhat.com>
21866
21867 PR target/94707
21868 * config/rs6000/rs6000-call.c (rs6000_discover_homogeneous_aggregate):
21869 Use TYPE_UID (TYPE_MAIN_VARIANT (type)) instead of type to check
21870 if the same type has been diagnosed most recently already.
21871
21872 2020-04-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
21873
21874 * config/arm/arm_mve.h (__arm_vbicq_n_u16): Modify function parameter's
21875 datatype.
21876 (__arm_vbicq_n_s16): Likewise.
21877 (__arm_vbicq_n_u32): Likewise.
21878 (__arm_vbicq_n_s32): Likewise.
21879 (__arm_vbicq): Likewise.
21880 (__arm_vbicq_n_s16): Modify MVE polymorphic variant argument's datatype.
21881 (__arm_vbicq_n_s32): Likewise.
21882 (__arm_vbicq_n_u16): Likewise.
21883 (__arm_vbicq_n_u32): Likewise.
21884 (__arm_vdupq_m_n_s8): Likewise.
21885 (__arm_vdupq_m_n_s16): Likewise.
21886 (__arm_vdupq_m_n_s32): Likewise.
21887 (__arm_vdupq_m_n_u8): Likewise.
21888 (__arm_vdupq_m_n_u16): Likewise.
21889 (__arm_vdupq_m_n_u32): Likewise.
21890 (__arm_vdupq_m_n_f16): Likewise.
21891 (__arm_vdupq_m_n_f32): Likewise.
21892 (__arm_vldrhq_gather_offset_s16): Likewise.
21893 (__arm_vldrhq_gather_offset_s32): Likewise.
21894 (__arm_vldrhq_gather_offset_u16): Likewise.
21895 (__arm_vldrhq_gather_offset_u32): Likewise.
21896 (__arm_vldrhq_gather_offset_f16): Likewise.
21897 (__arm_vldrhq_gather_offset_z_s16): Likewise.
21898 (__arm_vldrhq_gather_offset_z_s32): Likewise.
21899 (__arm_vldrhq_gather_offset_z_u16): Likewise.
21900 (__arm_vldrhq_gather_offset_z_u32): Likewise.
21901 (__arm_vldrhq_gather_offset_z_f16): Likewise.
21902 (__arm_vldrhq_gather_shifted_offset_s16): Likewise.
21903 (__arm_vldrhq_gather_shifted_offset_s32): Likewise.
21904 (__arm_vldrhq_gather_shifted_offset_u16): Likewise.
21905 (__arm_vldrhq_gather_shifted_offset_u32): Likewise.
21906 (__arm_vldrhq_gather_shifted_offset_f16): Likewise.
21907 (__arm_vldrhq_gather_shifted_offset_z_s16): Likewise.
21908 (__arm_vldrhq_gather_shifted_offset_z_s32): Likewise.
21909 (__arm_vldrhq_gather_shifted_offset_z_u16): Likewise.
21910 (__arm_vldrhq_gather_shifted_offset_z_u32): Likewise.
21911 (__arm_vldrhq_gather_shifted_offset_z_f16): Likewise.
21912 (__arm_vldrwq_gather_offset_s32): Likewise.
21913 (__arm_vldrwq_gather_offset_u32): Likewise.
21914 (__arm_vldrwq_gather_offset_f32): Likewise.
21915 (__arm_vldrwq_gather_offset_z_s32): Likewise.
21916 (__arm_vldrwq_gather_offset_z_u32): Likewise.
21917 (__arm_vldrwq_gather_offset_z_f32): Likewise.
21918 (__arm_vldrwq_gather_shifted_offset_s32): Likewise.
21919 (__arm_vldrwq_gather_shifted_offset_u32): Likewise.
21920 (__arm_vldrwq_gather_shifted_offset_f32): Likewise.
21921 (__arm_vldrwq_gather_shifted_offset_z_s32): Likewise.
21922 (__arm_vldrwq_gather_shifted_offset_z_u32): Likewise.
21923 (__arm_vldrwq_gather_shifted_offset_z_f32): Likewise.
21924 (__arm_vdwdupq_x_n_u8): Likewise.
21925 (__arm_vdwdupq_x_n_u16): Likewise.
21926 (__arm_vdwdupq_x_n_u32): Likewise.
21927 (__arm_viwdupq_x_n_u8): Likewise.
21928 (__arm_viwdupq_x_n_u16): Likewise.
21929 (__arm_viwdupq_x_n_u32): Likewise.
21930 (__arm_vidupq_x_n_u8): Likewise.
21931 (__arm_vddupq_x_n_u8): Likewise.
21932 (__arm_vidupq_x_n_u16): Likewise.
21933 (__arm_vddupq_x_n_u16): Likewise.
21934 (__arm_vidupq_x_n_u32): Likewise.
21935 (__arm_vddupq_x_n_u32): Likewise.
21936 (__arm_vldrdq_gather_offset_s64): Likewise.
21937 (__arm_vldrdq_gather_offset_u64): Likewise.
21938 (__arm_vldrdq_gather_offset_z_s64): Likewise.
21939 (__arm_vldrdq_gather_offset_z_u64): Likewise.
21940 (__arm_vldrdq_gather_shifted_offset_s64): Likewise.
21941 (__arm_vldrdq_gather_shifted_offset_u64): Likewise.
21942 (__arm_vldrdq_gather_shifted_offset_z_s64): Likewise.
21943 (__arm_vldrdq_gather_shifted_offset_z_u64): Likewise.
21944 (__arm_vidupq_m_n_u8): Likewise.
21945 (__arm_vidupq_m_n_u16): Likewise.
21946 (__arm_vidupq_m_n_u32): Likewise.
21947 (__arm_vddupq_m_n_u8): Likewise.
21948 (__arm_vddupq_m_n_u16): Likewise.
21949 (__arm_vddupq_m_n_u32): Likewise.
21950 (__arm_vidupq_n_u16): Likewise.
21951 (__arm_vidupq_n_u32): Likewise.
21952 (__arm_vidupq_n_u8): Likewise.
21953 (__arm_vddupq_n_u16): Likewise.
21954 (__arm_vddupq_n_u32): Likewise.
21955 (__arm_vddupq_n_u8): Likewise.
21956
21957 2020-04-23 Iain Buclaw <ibuclaw@gdcproject.org>
21958
21959 * doc/install.texi (D-Specific Options): Document
21960 --enable-libphobos-checking and --with-libphobos-druntime-only.
21961
21962 2020-04-23 Jakub Jelinek <jakub@redhat.com>
21963
21964 PR target/94707
21965 * config/rs6000/rs6000-call.c (rs6000_aggregate_candidate): Add
21966 cxx17_empty_base_seen argument. Pass it to recursive calls.
21967 Ignore cxx17_empty_base_field_p fields after setting
21968 *cxx17_empty_base_seen to true.
21969 (rs6000_discover_homogeneous_aggregate): Adjust
21970 rs6000_aggregate_candidate caller. With -Wpsabi, diagnose homogeneous
21971 aggregates with C++17 empty base fields.
21972
21973 PR c/94705
21974 * attribs.c (decl_attribute): Don't diagnose attribute exclusions
21975 if last_decl is error_mark_node or has such a TREE_TYPE.
21976
21977 PR c/94705
21978 * attribs.c (decl_attribute): Don't diagnose attribute exclusions
21979 if last_decl is error_mark_node or has such a TREE_TYPE.
21980
21981 2020-04-22 Felix Yang <felix.yang@huawei.com>
21982
21983 PR target/94678
21984 * config/aarch64/aarch64.h (TARGET_SVE):
21985 Add && !TARGET_GENERAL_REGS_ONLY.
21986 (TARGET_SVE2): Add && TARGET_SVE.
21987 (TARGET_SVE2_AES, TARGET_SVE2_BITPERM, TARGET_SVE2_SHA3,
21988 TARGET_SVE2_SM4): Add && TARGET_SVE2.
21989 * config/aarch64/aarch64-sve-builtins.h
21990 (sve_switcher::m_old_general_regs_only): New member.
21991 * config/aarch64/aarch64-sve-builtins.cc (check_required_registers):
21992 New function.
21993 (reported_missing_registers_p): New variable.
21994 (check_required_extensions): Call check_required_registers before
21995 return if all required extenstions are present.
21996 (sve_switcher::sve_switcher): Save TARGET_GENERAL_REGS_ONLY in
21997 m_old_general_regs_only and clear MASK_GENERAL_REGS_ONLY in
21998 global_options.x_target_flags.
21999 (sve_switcher::~sve_switcher): Set MASK_GENERAL_REGS_ONLY in
22000 global_options.x_target_flags if m_old_general_regs_only is true.
22001
22002 2020-04-22 Zackery Spytz <zspytz@gmail.com>
22003
22004 * doc/extend.exi: Add "free" to list of other builtin functions
22005 supported by GCC.
22006
22007 2020-04-20 Aaron Sawdey <acsawdey@linux.ibm.com>
22008
22009 PR target/94622
22010 * config/rs6000/sync.md (load_quadpti): Add attr "prefixed"
22011 if TARGET_PREFIXED.
22012 (store_quadpti): Ditto.
22013 (atomic_load<mode>): Do not swap doublewords if TARGET_PREFIXED as
22014 plq will be used and doesn't need it.
22015 (atomic_store<mode>): Ditto, for pstq.
22016
22017 2020-04-22 Erick Ochoa <erick.ochoa@theobroma-systems.com>
22018
22019 * doc/invoke.texi: Update flags turned on by -O3.
22020
22021 2020-04-22 Jakub Jelinek <jakub@redhat.com>
22022
22023 PR target/94706
22024 * config/ia64/ia64.c (hfa_element_mode): Ignore
22025 cxx17_empty_base_field_p fields.
22026
22027 PR target/94383
22028 * calls.h (cxx17_empty_base_field_p): Declare.
22029 * calls.c (cxx17_empty_base_field_p): Define.
22030
22031 2020-04-22 Christophe Lyon <christophe.lyon@linaro.org>
22032
22033 * doc/sourcebuild.texi (arm_softfp_ok, arm_hard_ok): Document.
22034
22035 2020-04-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22036 Andre Vieira <andre.simoesdiasvieira@arm.com>
22037 Mihail Ionescu <mihail.ionescu@arm.com>
22038
22039 * config/arm/arm.c (arm_file_start): Handle isa_bit_quirk_no_asmcpu.
22040 * config/arm/arm-cpus.in (quirk_no_asmcpu): Define.
22041 (ALL_QUIRKS): Add quirk_no_asmcpu.
22042 (cortex-m55): Define new cpu.
22043 * config/arm/arm-tables.opt: Regenerate.
22044 * config/arm/arm-tune.md: Likewise.
22045 * doc/invoke.texi (Arm Options): Document -mcpu=cortex-m55.
22046
22047 2020-04-22 Richard Sandiford <richard.sandiford@arm.com>
22048
22049 PR tree-optimization/94700
22050 * tree-ssa-forwprop.c (simplify_vector_constructor): When processing
22051 an identity constructor, use a VIEW_CONVERT_EXPR to handle mixtures
22052 of similarly-structured but distinct vector types.
22053
22054 2020-04-21 Martin Sebor <msebor@redhat.com>
22055
22056 PR middle-end/94647
22057 * gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Correct
22058 the computation of the lower bound of the source access size.
22059 (builtin_access::generic_overlap): Remove a hack for setting ranges
22060 of overlap offsets.
22061
22062 2020-04-21 John David Anglin <danglin@gcc.gnu.org>
22063
22064 * config/pa/som.h (ASM_WEAKEN_LABEL): Delete.
22065 (ASM_WEAKEN_DECL): New define.
22066 (HAVE_GAS_WEAKREF): Undefine.
22067
22068 2020-04-21 Richard Sandiford <richard.sandiford@arm.com>
22069
22070 PR tree-optimization/94683
22071 * tree-ssa-forwprop.c (simplify_vector_constructor): Use a
22072 VIEW_CONVERT_EXPR to handle mixtures of similarly-structured
22073 but distinct vector types.
22074
22075 2020-04-21 Jakub Jelinek <jakub@redhat.com>
22076
22077 PR c/94641
22078 * stor-layout.c (place_field, finalize_record_size): Don't emit
22079 -Wpadded warning on TYPE_ARTIFICIAL rli->t.
22080 * ubsan.c (ubsan_get_type_descriptor_type,
22081 ubsan_get_source_location_type, ubsan_create_data): Set
22082 TYPE_ARTIFICIAL.
22083 * asan.c (asan_global_struct): Likewise.
22084
22085 2020-04-21 Duan bo <duanbo3@huawei.com>
22086
22087 PR target/94577
22088 * config/aarch64/aarch64.c: Add an error message for option conflict.
22089 * doc/invoke.texi (-mcmodel=large): Mention that -mcmodel=large is
22090 incompatible with -fpic, -fPIC and -mabi=ilp32.
22091
22092 2020-04-21 Frederik Harwath <frederik@codesourcery.com>
22093
22094 PR other/94629
22095 * omp-low.c (new_omp_context): Remove assignments to
22096 ctx->outer_reduction_clauses and ctx->local_reduction_clauses.
22097
22098 2020-04-20 Andreas Krebbel <krebbel@linux.ibm.com>
22099
22100 * config/s390/vector.md ("popcountv8hi2_vx", "popcountv4si2_vx")
22101 ("popcountv2di2_vx"): Use simplify_gen_subreg.
22102
22103 2020-04-20 Andreas Krebbel <krebbel@linux.ibm.com>
22104
22105 PR target/94613
22106 * config/s390/s390-builtin-types.def: Add 3 new function modes.
22107 * config/s390/s390-builtins.def: Add mode dependent low-level
22108 builtin and map the overloaded builtins to these.
22109 * config/s390/vx-builtins.md ("vec_selV_HW"): Rename to ...
22110 ("vsel<V_HW"): ... this and rewrite the pattern with bitops.
22111
22112 2020-04-20 Richard Sandiford <richard.sandiford@arm.com>
22113
22114 * tree-vect-loop.c (vect_better_loop_vinfo_p): If old_loop_vinfo
22115 has a variable VF, prefer new_loop_vinfo if it is cheaper for the
22116 estimated VF and is no worse at double the estimated VF.
22117
22118 2020-04-20 Richard Sandiford <richard.sandiford@arm.com>
22119
22120 PR target/94668
22121 * config/aarch64/aarch64.c (aarch64_sve_expand_vector_init): Fix
22122 order of arguments to rtx_vector_builder.
22123 (aarch64_sve_expand_vector_init_handle_trailing_constants): Likewise.
22124 When extending the trailing constants to a full vector, replace any
22125 variables with zeros.
22126
22127 2020-04-20 Jan Hubicka <hubicka@ucw.cz>
22128
22129 PR ipa/94582
22130 * tree-inline.c (optimize_inline_calls): Recompute calls_comdat_local
22131 flag.
22132
22133 2020-04-20 Martin Liska <mliska@suse.cz>
22134
22135 * symtab.c (symtab_node::dump_references): Add space after
22136 one entry.
22137 (symtab_node::dump_referring): Likewise.
22138
22139 2020-04-18 Jeff Law <law@redhat.com>
22140
22141 PR debug/94439
22142 * regrename.c (check_new_reg_p): Ignore DEBUG_INSNs when walking
22143 the chain.
22144
22145 2020-04-18 Iain Buclaw <ibuclaw@gdcproject.org>
22146
22147 * doc/sourcebuild.texi (Effective-Target Keywords, Environment
22148 attributes): Document d_runtime_has_std_library.
22149
22150 2020-04-17 Jeff Law <law@redhat.com>
22151
22152 PR rtl-optimization/90275
22153 * cse.c (cse_insn): Avoid recording nop sets in multi-set parallels
22154 when the destination has a REG_UNUSED note.
22155
22156 2020-04-17 Tobias Burnus <tobias@codesourcery.com>
22157
22158 PR middle-end/94635
22159 * gimplify.c (gimplify_scan_omp_clauses): Turn MAP_TO_PSET to
22160 MAP_DELETE.
22161
22162 2020-04-17 Richard Sandiford <richard.sandiford@arm.com>
22163
22164 * config/aarch64/aarch64.c (aarch64_advsimd_ldp_stp_p): New function.
22165 (aarch64_sve_adjust_stmt_cost): Add a vectype parameter. Double the
22166 cost of load and store insns if one loop iteration has enough scalar
22167 elements to use an Advanced SIMD LDP or STP.
22168 (aarch64_add_stmt_cost): Update call accordingly.
22169
22170 2020-04-17 Jakub Jelinek <jakub@redhat.com>
22171 Jeff Law <law@redhat.com>
22172
22173 PR target/94567
22174 * config/i386/i386.md (*testqi_ext_3): Use CCZmode rather than
22175 CCNOmode in ix86_match_ccmode if len is equal to <MODE>mode precision,
22176 or pos + len >= 32, or pos + len is equal to operands[2] precision
22177 and operands[2] is not a register operand. During splitting perform
22178 SImode AND if operands[0] doesn't have CCZmode and pos + len is
22179 equal to mode precision.
22180
22181 2020-04-17 Richard Biener <rguenther@suse.de>
22182
22183 PR other/94629
22184 * cgraphclones.c (cgraph_node::create_clone): Remove duplicate
22185 initialization.
22186 * dwarf2out.c (dw_val_equal_p): Fix pasto in
22187 dw_val_class_vms_delta comparison.
22188 * optabs.c (expand_binop_directly): Fix pasto in commutation
22189 check.
22190 * tree-ssa-sccvn.c (vn_reference_lookup_pieces): Fix pasto in
22191 initialization.
22192
22193 2020-04-17 Jakub Jelinek <jakub@redhat.com>
22194
22195 PR rtl-optimization/94618
22196 * cfgrtl.c (delete_insn_and_edges): Set purge not just when
22197 insn is the BB_END of its block, but also when it is only followed
22198 by DEBUG_INSNs in its block.
22199
22200 PR tree-optimization/94621
22201 * tree-inline.c (remap_type_1): Don't dereference NULL TYPE_DOMAIN.
22202 Move id->adjust_array_error_bounds check first in the condition.
22203
22204 2020-04-17 Martin Liska <mliska@suse.cz>
22205 Jonathan Yong <10walls@gmail.com>
22206
22207 PR gcov-profile/94570
22208 * coverage.c (coverage_init): Use separator properly.
22209
22210 2020-04-16 Peter Bergner <bergner@linux.ibm.com>
22211
22212 PR rtl-optimization/93974
22213 * config/rs6000/rs6000.c (TARGET_CANNOT_SUBSTITUTE_MEM_EQUIV_P): Define.
22214 (rs6000_cannot_substitute_mem_equiv_p): New function.
22215
22216 2020-04-16 Martin Jambor <mjambor@suse.cz>
22217
22218 PR ipa/93621
22219 * ipa-inline.h (ipa_saved_clone_sources): Declare.
22220 * ipa-inline-transform.c (ipa_saved_clone_sources): New variable.
22221 (save_inline_function_body): Link the new body holder with the
22222 previous one.
22223 * cgraph.c: Include ipa-inline.h.
22224 (cgraph_edge::redirect_call_stmt_to_callee): Try to find the decl from
22225 the statement in ipa_saved_clone_sources.
22226 * cgraphunit.c: Include ipa-inline.h.
22227 (expand_all_functions): Free ipa_saved_clone_sources.
22228
22229 2020-04-16 Richard Sandiford <richard.sandiford@arm.com>
22230
22231 PR target/94606
22232 * config/aarch64/aarch64.c (aarch64_expand_sve_const_pred_eor): Take
22233 the VNx16BI lowpart of the recursively-generated constant.
22234
22235 2020-04-16 Martin Liska <mliska@suse.cz>
22236 Jakub Jelinek <jakub@redhat.com>
22237
22238 PR c++/94314
22239 * cgraphclones.c (set_new_clone_decl_and_node_flags): Drop
22240 DECL_IS_REPLACEABLE_OPERATOR during cloning.
22241 * tree-ssa-dce.c (valid_new_delete_pair_p): New function.
22242 (propagate_necessity): Check operator names.
22243
22244 2020-04-16 Richard Sandiford <richard.sandiford@arm.com>
22245
22246 PR rtl-optimization/94605
22247 * early-remat.c (early_remat::process_block): Handle insns that
22248 set multiple candidate registers.
22249 2020-04-16 Jan Hubicka <hubicka@ucw.cz>
22250
22251 PR gcov-profile/93401
22252 * common.opt (profile-prefix-path): New option.
22253 * coverae.c: Include diagnostics.h.
22254 (coverage_init): Strip profile prefix path.
22255 * doc/invoke.texi (-fprofile-prefix-path): Document.
22256
22257 2020-04-16 Richard Biener <rguenther@suse.de>
22258
22259 PR middle-end/94614
22260 * expr.c (emit_move_multi_word): Do not generate code when
22261 the destination part is undefined_operand_subword_p.
22262 * lower-subreg.c (resolve_clobber): Look through a paradoxica
22263 subreg.
22264
22265 2020-04-16 Martin Jambor <mjambor@suse.cz>
22266
22267 PR tree-optimization/94598
22268 * tree-sra.c (verify_sra_access_forest): Fix verification of total
22269 scalarization accesses under access to one-element arrays.
22270
22271 2020-04-16 Jakub Jelinek <jakub@redhat.com>
22272
22273 PR bootstrap/89494
22274 * function.c (assign_parm_find_data_types): Add workaround for
22275 BROKEN_VALUE_INITIALIZATION compilers.
22276
22277 2020-04-16 Richard Biener <rguenther@suse.de>
22278
22279 * gdbhooks.py (TreePrinter): Print SSA_NAME_VERSION of SSA_NAME
22280 nodes.
22281
22282 2020-04-15 Uroš Bizjak <ubizjak@gmail.com>
22283
22284 PR target/94603
22285 * config/i386/i386-builtin.def (__builtin_ia32_movq128):
22286 Require OPTION_MASK_ISA_SSE2.
22287
22288 2020-04-15 Gustavo Romero <gromero@linux.ibm.com>
22289
22290 PR bootstrap/89494
22291 * dumpfile.c (selftest::temp_dump_context::temp_dump_context):
22292 Don't construct a dump_context temporary to call static method.
22293
22294 2020-04-15 Andrea Corallo <andrea.corallo@arm.com>
22295
22296 * config/aarch64/falkor-tag-collision-avoidance.c
22297 (valid_src_p): Check for aarch64_address_info type before
22298 accessing base field.
22299
22300 2020-04-15 Andre Vieira <andre.simoesdiasvieira@arm.com>
22301
22302 * config/arm/mve.md (mve_vec_duplicate<mode>): New pattern.
22303 (V_sz_elem2): Remove unused mode attribute.
22304
22305 2020-04-15 Matthew Malcomson <matthew.malcomson@arm.com>
22306
22307 * config/arm/arm.md (arm_movdi): Disallow for MVE.
22308
22309 2020-04-15 Richard Biener <rguenther@suse.de>
22310
22311 PR middle-end/94539
22312 * tree-ssa-alias.c (same_type_for_tbaa): Defer to
22313 alias_sets_conflict_p for pointers.
22314
22315 2020-04-14 Max Filippov <jcmvbkbc@gmail.com>
22316
22317 PR target/94584
22318 * config/xtensa/xtensa.md (zero_extendhisi2, zero_extendqisi2)
22319 (extendhisi2_internal): Add %v1 before the load instructions.
22320
22321 2020-04-14 Aaron Sawdey <acsawdey@linux.ibm.com>
22322
22323 PR target/94542
22324 * config/rs6000/rs6000.c (address_to_insn_form): Do not attempt to
22325 use PC-relative addressing for TLS references.
22326
22327 2020-04-14 Martin Jambor <mjambor@suse.cz>
22328
22329 PR ipa/94434
22330 * ipa-sra.c: Include internal-fn.h.
22331 (enum isra_scan_context): Update comment.
22332 (scan_function): Treat calls to internal_functions like loads or stores.
22333
22334 2020-04-14 Yang Yang <yangyang305@huawei.com>
22335
22336 PR tree-optimization/94574
22337 * tree-ssa.c (non_rewritable_lvalue_p): Add size check when analyzing
22338 whether a vector-insert is rewritable using a BIT_INSERT_EXPR.
22339
22340 2020-04-14 H.J. Lu <hongjiu.lu@intel.com>
22341
22342 PR target/94561
22343 * config/i386/i386.c (ix86_get_ssemov): Remove mode size check.
22344
22345 2020-04-13 Martin Sebor <msebor@redhat.com>
22346
22347 * doc/extend.texi (-Wall): Mention -Wformat-overflow and
22348 -Wformat-truncation. Move -Wzero-length-bounds last.
22349 (-Wrestrict): Document positive form of option enabled by -Wall.
22350
22351 2020-04-13 Zachary Spytz <zspytz@gmail.com>
22352
22353 * doc/extend.texi: Add realloc to list of built-in functions
22354 are recognized by the compiler.
22355
22356 2020-04-13 H.J. Lu <hongjiu.lu@intel.com>
22357
22358 PR target/94556
22359 * config/i386/i386.c (ix86_expand_epilogue): Restore the frame
22360 pointer in word_mode for eh_return epilogues.
22361
22362 2020-04-13 Jozef Lawrynowicz <jozef.l@mittosystems.com>
22363
22364 * config/msp430/msp430.c (msp430_print_operand): Don't add offsets to
22365 memory references in %B, %C and %D operand selectors when the inner
22366 operand is a post increment address.
22367
22368 2020-04-13 Jozef Lawrynowicz <jozef.l@mittosystems.com>
22369
22370 * config/msp430/msp430.c (msp430_print_operand): Offset a %C memory
22371 reference by 4 bytes, and %D memory reference by 6 bytes.
22372
22373 2020-04-11 Uroš Bizjak <ubizjak@gmail.com>
22374
22375 PR target/94494
22376 * config/i386/sse.md (REDUC_SSE_SMINMAX_MODE): Use TARGET_SSE2
22377 condition for V4SI, V8HI and V16QI modes.
22378
22379 2020-04-11 Jakub Jelinek <jakub@redhat.com>
22380
22381 PR debug/94495
22382 PR target/94551
22383 * cselib.c (cselib_record_sp_cfa_base_equiv): Set PRESERVED_VALUE_P on
22384 val->val_rtx.
22385
22386 2020-04-10 Thomas Schwinge <thomas@codesourcery.com>
22387
22388 PR middle-end/89433
22389 PR middle-end/93465
22390 * omp-general.c (oacc_verify_routine_clauses): Diagnose if
22391 "#pragma omp declare target" has also been applied.
22392
22393 2020-04-09 Jozef Lawrynowicz <jozef.l@mittosystems.com>
22394
22395 * config/msp430/msp430.c (msp430_expand_epilogue): Use emit_jump_insn
22396 when to emit the epilogue_helper insn.
22397 * config/msp430/msp430.md (epilogue_helper): Add a return insn to the
22398 RTL pattern.
22399
22400 2020-04-09 Jakub Jelinek <jakub@redhat.com>
22401
22402 PR debug/94495
22403 * cselib.h (cselib_record_sp_cfa_base_equiv,
22404 cselib_sp_derived_value_p): Declare.
22405 * cselib.c (cselib_record_sp_cfa_base_equiv,
22406 cselib_sp_derived_value_p): New functions.
22407 * var-tracking.c (add_stores): Don't record MO_VAL_SET for
22408 cselib_sp_derived_value_p values.
22409 (vt_initialize): Call cselib_record_sp_cfa_base_equiv at the
22410 start of extended basic blocks other than the first one
22411 for !frame_pointer_needed functions.
22412
22413 2020-04-09 Richard Sandiford <richard.sandiford@arm.com>
22414
22415 * doc/sourcebuild.texi (aarch64_sve_hw, aarch64_sve128_hw)
22416 (aarch64_sve256_hw, aarch64_sve512_hw, aarch64_sve1024_hw)
22417 (aarch64_sve2048_hw): Document.
22418 * config/aarch64/aarch64-protos.h
22419 (aarch64_sve::handle_arm_sve_vector_bits_attribute): Declare.
22420 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
22421 __ARM_FEATURE_SVE_VECTOR_OPERATIONS when SVE is enabled.
22422 * config/aarch64/aarch64-sve-builtins.cc (matches_type_p): New
22423 function.
22424 (find_type_suffix_for_scalar_type): Use it instead of comparing
22425 TYPE_MAIN_VARIANTs.
22426 (function_resolver::infer_vector_or_tuple_type): Likewise.
22427 (function_resolver::require_vector_type): Likewise.
22428 (handle_arm_sve_vector_bits_attribute): New function.
22429 * config/aarch64/aarch64.c (pure_scalable_type_info): New class.
22430 (aarch64_attribute_table): Add arm_sve_vector_bits.
22431 (aarch64_return_in_memory_1):
22432 (pure_scalable_type_info::piece::get_rtx): New function.
22433 (pure_scalable_type_info::num_zr): Likewise.
22434 (pure_scalable_type_info::num_pr): Likewise.
22435 (pure_scalable_type_info::get_rtx): Likewise.
22436 (pure_scalable_type_info::analyze): Likewise.
22437 (pure_scalable_type_info::analyze_registers): Likewise.
22438 (pure_scalable_type_info::analyze_array): Likewise.
22439 (pure_scalable_type_info::analyze_record): Likewise.
22440 (pure_scalable_type_info::add_piece): Likewise.
22441 (aarch64_some_values_include_pst_objects_p): Likewise.
22442 (aarch64_returns_value_in_sve_regs_p): Use pure_scalable_type_info
22443 to analyze whether the type is returned in SVE registers.
22444 (aarch64_takes_arguments_in_sve_regs_p): Likwise whether the type
22445 is passed in SVE registers.
22446 (aarch64_pass_by_reference_1): New function, extracted from...
22447 (aarch64_pass_by_reference): ...here. Use pure_scalable_type_info
22448 to analyze whether the type is a pure scalable type and, if so,
22449 whether it should be passed by reference.
22450 (aarch64_return_in_msb): Return false for pure scalable types.
22451 (aarch64_function_value_1): Fold back into...
22452 (aarch64_function_value): ...this function. Use
22453 pure_scalable_type_info to analyze whether the type is a pure
22454 scalable type and, if so, which registers it should use. Handle
22455 types that include pure scalable types but are not themselves
22456 pure scalable types.
22457 (aarch64_return_in_memory_1): New function, split out from...
22458 (aarch64_return_in_memory): ...here. Use pure_scalable_type_info
22459 to analyze whether the type is a pure scalable type and, if so,
22460 whether it should be returned by reference.
22461 (aarch64_layout_arg): Remove orig_mode argument. Use
22462 pure_scalable_type_info to analyze whether the type is a pure
22463 scalable type and, if so, which registers it should use. Handle
22464 types that include pure scalable types but are not themselves
22465 pure scalable types.
22466 (aarch64_function_arg): Update call accordingly.
22467 (aarch64_function_arg_advance): Likewise.
22468 (aarch64_pad_reg_upward): On big-endian targets, return false for
22469 pure scalable types that are smaller than 16 bytes.
22470 (aarch64_member_type_forces_blk): New function.
22471 (aapcs_vfp_sub_candidate): Exit early for built-in SVE types.
22472 (aarch64_short_vector_p): Return false for VECTOR_TYPEs that
22473 correspond to built-in SVE types. Do not rely on a vector mode
22474 if the type includes an pure scalable type. When returning true,
22475 assert that the mode is not an SVE mode.
22476 (aarch64_vfp_is_call_or_return_candidate): Do not check for SVE
22477 built-in types here. When returning true, assert that the type
22478 does not have an SVE mode.
22479 (aarch64_can_change_mode_class): Don't allow anything to change
22480 between a predicate mode and a non-predicate mode. Also don't
22481 allow changes between SVE vector modes and other modes that
22482 might be bigger than 128 bits.
22483 (aarch64_invalid_binary_op): Reject binary operations that mix
22484 SVE and GNU vector types.
22485 (TARGET_MEMBER_TYPE_FORCES_BLK): Define.
22486
22487 2020-04-09 Richard Sandiford <richard.sandiford@arm.com>
22488
22489 * config/aarch64/aarch64.c (aarch64_attribute_table): Add
22490 "SVE sizeless type".
22491 * config/aarch64/aarch64-sve-builtins.cc (make_type_sizeless)
22492 (sizeless_type_p): New functions.
22493 (register_builtin_types): Apply make_type_sizeless to the type.
22494 (register_tuple_type): Likewise.
22495 (verify_type_context): Use sizeless_type_p instead of builin_type_p.
22496
22497 2020-04-09 Matthew Malcomson <matthew.malcomson@arm.com>
22498
22499 * config/arm/arm_cde.h: Remove `extern "C"` when compiling for
22500 C++.
22501
22502 2020-04-09 Martin Jambor <mjambor@suse.cz>
22503 Richard Biener <rguenther@suse.de>
22504
22505 PR tree-optimization/94482
22506 * tree-sra.c (create_access_replacement): Dump new replacement with
22507 TDF_UID.
22508 (sra_modify_expr): Fix handling of cases when the original EXPR writes
22509 to only part of the replacement.
22510 * tree-ssa-forwprop.c (pass_forwprop::execute): Properly verify
22511 the first operand of combinations into REAL/IMAGPART_EXPR and
22512 BIT_FIELD_REF.
22513
22514 2020-04-09 Richard Sandiford <richard.sandiford@arm.com>
22515
22516 * doc/sourcebuild.texi (check-function-bodies): Treat the third
22517 parameter as a list of option regexps and require each regexp
22518 to match.
22519
22520 2020-04-09 Andrea Corallo <andrea.corallo@arm.com>
22521
22522 PR target/94530
22523 * config/aarch64/falkor-tag-collision-avoidance.c
22524 (valid_src_p): Fix missing rtx type check.
22525
22526 2020-04-09 Bin Cheng <bin.cheng@linux.alibaba.com>
22527 Richard Biener <rguenther@suse.de>
22528
22529 PR tree-optimization/93674
22530 * tree-ssa-loop-ivopts.c (langhooks.h): New include.
22531 (add_iv_candidate_for_use): For iv_use of non integer or pointer type,
22532 or non-mode precision type, add candidate in unsigned type with the
22533 same precision.
22534
22535 2020-04-08 Clement Chigot <clement.chigot@atos.net>
22536
22537 * config/rs6000/aix61.h (LIB_SPEC): Add -lc128 with -mlong-double-128.
22538 * config/rs6000/aix71.h (LIB_SPEC): Likewise.
22539 * config/rs6000/aix72.h (LIB_SPEC): Likewise.
22540
22541 2020-04-08 Jakub Jelinek <jakub@redhat.com>
22542
22543 PR middle-end/94526
22544 * cselib.c (autoinc_split): Handle e->val_rtx being SP_DERIVED_VALUE_P
22545 with zero offset.
22546 * reload1.c (eliminate_regs_1): Avoid creating
22547 (plus (reg) (const_int 0)) in DEBUG_INSNs.
22548
22549 PR tree-optimization/94524
22550 * tree-vect-generic.c (expand_vector_divmod): If any elt of op1 is
22551 negative for signed TRUNC_MOD_EXPR, multiply with absolute value of
22552 op1 rather than op1 itself at the end. Punt for signed modulo by
22553 most negative constant.
22554 * tree-vect-patterns.c (vect_recog_divmod_pattern): Punt for signed
22555 modulo by most negative constant.
22556
22557 2020-04-08 Richard Biener <rguenther@suse.de>
22558
22559 PR rtl-optimization/93946
22560 * cse.c (cse_insn): Record the tabled expression in
22561 src_related. Verify a redundant store removal is valid.
22562
22563 2020-04-08 H.J. Lu <hongjiu.lu@intel.com>
22564
22565 PR target/94417
22566 * config/i386/i386-features.c (rest_of_insert_endbranch): Insert
22567 ENDBR at function entry if function will be called indirectly.
22568
22569 2020-04-08 Jakub Jelinek <jakub@redhat.com>
22570
22571 PR target/94438
22572 * config/i386/i386.c (ix86_get_mask_mode): Only use int mask for elem_size
22573 1, 2, 4 and 8.
22574
22575 2020-04-08 Martin Liska <mliska@suse.cz>
22576
22577 PR c++/94314
22578 * gimple.c (gimple_call_operator_delete_p): Rename to...
22579 (gimple_call_replaceable_operator_delete_p): ... this.
22580 Use DECL_IS_REPLACEABLE_OPERATOR_DELETE_P.
22581 * gimple.h (gimple_call_operator_delete_p): Rename to ...
22582 (gimple_call_replaceable_operator_delete_p): ... this.
22583 * tree-core.h (tree_function_decl): Add replaceable_operator
22584 flag.
22585 * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1):
22586 Use DECL_IS_REPLACEABLE_OPERATOR_DELETE_P.
22587 (propagate_necessity): Use gimple_call_replaceable_operator_delete_p.
22588 (eliminate_unnecessary_stmts): Likewise.
22589 * tree-streamer-in.c (unpack_ts_function_decl_value_fields):
22590 Pack DECL_IS_REPLACEABLE_OPERATOR.
22591 * tree-streamer-out.c (pack_ts_function_decl_value_fields):
22592 Unpack the field here.
22593 * tree.h (DECL_IS_REPLACEABLE_OPERATOR): New.
22594 (DECL_IS_REPLACEABLE_OPERATOR_NEW_P): New.
22595 (DECL_IS_REPLACEABLE_OPERATOR_DELETE_P): New.
22596 * cgraph.c (cgraph_node::dump): Dump if an operator is replaceable.
22597 * ipa-icf.c (sem_item::compare_referenced_symbol_properties): Compare
22598 replaceable operator flags.
22599
22600 2020-04-08 Dennis Zhang <dennis.zhang@arm.com>
22601 Matthew Malcomson <matthew.malcomson@arm.com>
22602
22603 * config/arm/arm-builtins.c (CX_IMM_QUALIFIERS): New macro.
22604 (CX_UNARY_QUALIFIERS, CX_BINARY_QUALIFIERS): Likewise.
22605 (CX_TERNARY_QUALIFIERS): Likewise.
22606 (ARM_BUILTIN_CDE_PATTERN_START): Likewise.
22607 (ARM_BUILTIN_CDE_PATTERN_END): Likewise.
22608 (arm_init_acle_builtins): Initialize CDE builtins.
22609 (arm_expand_acle_builtin): Check CDE constant operands.
22610 * config/arm/arm.h (ARM_CDE_CONST_COPROC): New macro to set the range
22611 of CDE constant operand.
22612 * config/arm/arm.c (arm_hard_regno_mode_ok): Support DImode for
22613 TARGET_VFP_BASE.
22614 (ARM_VCDE_CONST_1, ARM_VCDE_CONST_2, ARM_VCDE_CONST_3): Likewise.
22615 * config/arm/arm_cde.h (__arm_vcx1_u32): New macro of ACLE interface.
22616 (__arm_vcx1a_u32, __arm_vcx2_u32, __arm_vcx2a_u32): Likewise.
22617 (__arm_vcx3_u32, __arm_vcx3a_u32, __arm_vcx1d_u64): Likewise.
22618 (__arm_vcx1da_u64, __arm_vcx2d_u64, __arm_vcx2da_u64): Likewise.
22619 (__arm_vcx3d_u64, __arm_vcx3da_u64): Likewise.
22620 * config/arm/arm_cde_builtins.def: New file.
22621 * config/arm/iterators.md (V_reg): New attribute of SI.
22622 * config/arm/predicates.md (const_int_coproc_operand): New.
22623 (const_int_vcde1_operand, const_int_vcde2_operand): New.
22624 (const_int_vcde3_operand): New.
22625 * config/arm/unspecs.md (UNSPEC_VCDE, UNSPEC_VCDEA): New.
22626 * config/arm/vfp.md (arm_vcx1<mode>): New entry.
22627 (arm_vcx1a<mode>, arm_vcx2<mode>, arm_vcx2a<mode>): Likewise.
22628 (arm_vcx3<mode>, arm_vcx3a<mode>): Likewise.
22629
22630 2020-04-08 Dennis Zhang <dennis.zhang@arm.com>
22631
22632 * config.gcc: Add arm_cde.h.
22633 * config/arm/arm-c.c (arm_cpu_builtins): Define or undefine
22634 __ARM_FEATURE_CDE and __ARM_FEATURE_CDE_COPROC.
22635 * config/arm/arm-cpus.in (cdecp0, cdecp1, ..., cdecp7): New options.
22636 * config/arm/arm.c (arm_option_reconfigure_globals): Configure
22637 arm_arch_cde and arm_arch_cde_coproc to store the feature bits.
22638 * config/arm/arm.h (TARGET_CDE): New macro.
22639 * config/arm/arm_cde.h: New file.
22640 * doc/invoke.texi: Document CDE options +cdecp[0-7].
22641 * doc/sourcebuild.texi (arm_v8m_main_cde_ok): Document new target
22642 supports option.
22643 (arm_v8m_main_cde_fp, arm_v8_1m_main_cde_mve): Likewise.
22644
22645 2020-04-08 Jakub Jelinek <jakub@redhat.com>
22646
22647 PR rtl-optimization/94516
22648 * postreload.c: Include rtl-iter.h.
22649 (reload_cse_move2add): Handle SP autoinc here by FOR_EACH_SUBRTX_VAR
22650 looking for all MEMs with RTX_AUTOINC operand.
22651 (move2add_note_store): Remove {PRE,POST}_{INC,DEC} handling.
22652
22653 2020-04-08 Tobias Burnus <tobias@codesourcery.com>
22654
22655 * omp-grid.c (grid_eliminate_combined_simd_part): Use
22656 OMP_CLAUSE_CODE to access the omp clause code.
22657
22658 2020-04-07 Jeff Law <law@redhat.com>
22659
22660 PR rtl-optimization/92264
22661 * config/h8300/h8300.md (mov;add peephole2): Avoid applying when
22662 the destination is the stack pointer.
22663
22664 2020-04-07 Jakub Jelinek <jakub@redhat.com>
22665
22666 PR rtl-optimization/94291
22667 PR rtl-optimization/84169
22668 * combine.c (try_combine): For split_i2i3, don't assume SET_DEST
22669 must be a REG or SUBREG of REG; if it is not one of these, don't
22670 update LOG_LINKs.
22671
22672 2020-04-07 Richard Biener <rguenther@suse.de>
22673
22674 PR middle-end/94479
22675 * gimplify.c (gimplify_addr_expr): Also consider generated
22676 MEM_REFs.
22677
22678 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
22679
22680 * config/arm/arm_mve.h: Add C++ polymorphism and fix preserve MACROs.
22681
22682 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
22683
22684 * config/arm/arm_mve.h: Cast some pointers to expected types.
22685
22686 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
22687
22688 * config/arm/arm_mve.h: Replace all uses of vuninitializedq_* with the
22689 same with '__arm_' prefix.
22690
22691 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
22692
22693 * config/arm/mve.md (mve_vec_extract*): Allow memory operands in set.
22694
22695 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
22696
22697 * config/arm/arm.c (arm_mve_immediate_check): Removed.
22698 * config/arm/mve.md (MVE_pred2, MVE_constraint2): Added FP types.
22699 (mve_vcvtq_n_to_f_*, mve_vcvtq_n_from_f_*, mve_vqshrnbq_n_*,
22700 mve_vqshrntq_n_*, mve_vqshrunbq_n_s*, mve_vqshruntq_n_s*,
22701 mve_vcvtq_m_n_from_f_*, mve_vcvtq_m_n_to_f_*, mve_vqshrnbq_m_n_*,
22702 mve_vqrshruntq_m_n_s*, mve_vqshrunbq_m_n_s*,
22703 mve_vqshruntq_m_n_s*): Fixed immediate constraints.
22704
22705 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
22706
22707 * config/arm/arm.d (ashldi3): Don't use lsll for constant 32-bit shifts.
22708
22709 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
22710
22711 * config/arm/arm_mve.h: Fix v[id]wdup intrinsics.
22712 * config/arm/mve/md: Fix v[id]wdup patterns.
22713
22714 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
22715
22716 * config/arm/arm.c (output_move_neon): Deal with label + offset cases.
22717 * config/arm/mve.md (*mve_mov<mode>): Handle const vectors.
22718
22719 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
22720
22721 * config/arm/arm_mve.h: Remove use of typeof for addr pointer parameters
22722 and remove const_ptr enums.
22723
22724 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
22725
22726 * config/arm/arm_mve.h (vsubq_n): Merge with...
22727 (vsubq): ... this.
22728 (vmulq_n): Merge with...
22729 (vmulq): ... this.
22730 (__ARM_mve_typeid): Simplify scalar and constant detection.
22731
22732 2020-04-07 Jakub Jelinek <jakub@redhat.com>
22733
22734 PR target/94509
22735 * config/i386/i386-expand.c (expand_vec_perm_pshufb): Fix the check
22736 for inter-lane permutation for 64-byte modes.
22737
22738 PR target/94488
22739 * config/aarch64/aarch64-simd.md (ashl<mode>3, lshr<mode>3,
22740 ashr<mode>3): Force operands[2] into reg whenever it is not CONST_INT.
22741 Assume it is a REG after that instead of testing it and doing FAIL
22742 otherwise. Formatting fix.
22743
22744 2020-04-07 Sebastian Huber <sebastian.huber@embedded-brains.de>
22745
22746 * config/rs6000/t-rtems: Delete mcpu=8540 multilib.
22747
22748 2020-04-07 Jakub Jelinek <jakub@redhat.com>
22749
22750 PR target/94500
22751 * config/i386/i386-expand.c (emit_reduc_half): For V{64QI,32HI}mode
22752 handle i < 64 using avx512bw_lshrv4ti3. Formatting fixes.
22753
22754 2020-04-06 Jakub Jelinek <jakub@redhat.com>
22755
22756 * cselib.c (cselib_subst_to_values): For SP_DERIVED_VALUE_P
22757 + const0_rtx return the SP_DERIVED_VALUE_P.
22758
22759 2020-04-06 Richard Sandiford <richard.sandiford@arm.com>
22760
22761 PR rtl-optimization/92989
22762 * lra-lives.c (process_bb_lives): Do not treat eh_return data
22763 registers as being live at the beginning of the EH receiver.
22764
22765 2020-04-05 Zachary Spytz <zspytz@gmail.com>
22766
22767 * extend.texi: Add free to list of ISO C90 functions that
22768 are recognized by the compiler.
22769
22770 2020-04-05 Nagaraju Mekala <nmekala@xilix.com>
22771
22772 * config/microblaze/microblaze.c (microblaze_must_save_register): Check
22773 for fast_interrupt.
22774
22775 * config/microblaze/microblaze.md (trap): Update output pattern.
22776
22777 2020-04-04 Hannes Domani <ssbssa@yahoo.de>
22778 Jakub Jelinek <jakub@redhat.com>
22779
22780 PR debug/94459
22781 * dwarf2out.c (gen_subprogram_die): Look through references, pointers,
22782 arrays, pointer-to-members, function types and qualifiers when
22783 checking if in-class DIE had an 'auto' or 'decltype(auto)' return type
22784 to emit type again on definition.
22785
22786 2020-04-04 Jan Hubicka <hubicka@ucw.cz>
22787
22788 PR ipa/93940
22789 * ipa-fnsummary.c (vrp_will_run_p): New function.
22790 (fre_will_run_p): New function.
22791 (evaluate_properties_for_edge): Use it.
22792 * ipa-inline.c (can_inline_edge_by_limits_p): Do not inline
22793 !optimize_debug to optimize_debug.
22794
22795 2020-04-04 Jakub Jelinek <jakub@redhat.com>
22796
22797 PR rtl-optimization/94468
22798 * cselib.c (references_value_p): Formatting fix.
22799 (cselib_useless_value_p): New function.
22800 (discard_useless_locs, discard_useless_values,
22801 cselib_invalidate_regno_val, cselib_invalidate_mem,
22802 cselib_record_set): Use it instead of
22803 v->locs == 0 && !PRESERVED_VALUE_P (v->val_rtx).
22804
22805 PR debug/94441
22806 * tree-iterator.h (expr_single): Declare.
22807 * tree-iterator.c (expr_single): New function.
22808 * tree.h (protected_set_expr_location_if_unset): Declare.
22809 * tree.c (protected_set_expr_location): Use expr_single.
22810 (protected_set_expr_location_if_unset): New function.
22811
22812 2020-04-03 Jeff Law <law@redhat.com>
22813
22814 PR rtl-optimization/92264
22815 * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Handle
22816 reloading of auto-increment addressing modes.
22817
22818 2020-04-03 H.J. Lu <hongjiu.lu@intel.com>
22819
22820 PR target/94467
22821 * config/i386/sse.md (ssse3_pshufbv8qi3): Mark scratch operand
22822 as earlyclobber.
22823
22824 2020-04-03 Jeff Law <law@redhat.com>
22825
22826 PR rtl-optimization/92264
22827 * config/m32r/m32r.c (m32r_output_block_move): Properly account for
22828 post-increment addressing of source operands as well as residuals
22829 when computing any adjustments to the input pointer.
22830
22831 2020-04-03 Jakub Jelinek <jakub@redhat.com>
22832
22833 PR target/94460
22834 * config/i386/sse.md (avx2_ph<plusminus_mnemonic>wv16hi3,
22835 avx2_ph<plusminus_mnemonic>dv8si3): Fix up RTL pattern to do
22836 second half of first lane from first lane of second operand and
22837 first half of second lane from second lane of first operand.
22838
22839 2020-04-03 Andre Vieira <andre.simoesdiasvieira@arm.com>
22840
22841 * config/arm/arm_mve.h: Condition the header file on __ARM_FEATURE_MVE.
22842
22843 2020-04-03 Tamar Christina <tamar.christina@arm.com>
22844
22845 PR target/94396
22846 * common/config/aarch64/aarch64-common.c
22847 (aarch64_get_extension_string_for_isa_flags): Handle default flags.
22848
22849 2020-04-03 Richard Biener <rguenther@suse.de>
22850
22851 PR middle-end/94465
22852 * tree.c (array_ref_low_bound): Deal with released SSA names
22853 in index position.
22854
22855 2020-04-03 Kwok Cheung Yeung <kcy@codesourcery.com>
22856
22857 * config/gcn/gcn.c (print_operand): Handle unordered comparison
22858 operators.
22859 * config/gcn/predicates.md (gcn_fp_compare_operator): Add unordered
22860 comparison operators.
22861
22862 2020-04-03 Kewen Lin <linkw@gcc.gnu.org>
22863
22864 PR tree-optimization/94443
22865 * tree-vect-loop.c (vectorizable_live_operation): Use
22866 gsi_insert_seq_before to replace gsi_insert_before.
22867
22868 2020-04-03 Martin Liska <mliska@suse.cz>
22869
22870 PR ipa/94445
22871 * ipa-icf-gimple.c (func_checker::compare_gimple_call):
22872 Compare type attributes for gimple_call_fntypes.
22873
22874 2020-04-02 Sandra Loosemore <sandra@codesourcery.com>
22875
22876 * alias.c (get_alias_set): Fix comment typos.
22877
22878 2020-04-02 Fritz Reese <foreese@gcc.gnu.org>
22879
22880 PR fortran/85982
22881 * fortran/decl.c (match_attr_spec): Lump COMP_STRUCTURE/COMP_MAP into
22882 attribute checking used by TYPE.
22883
22884 2020-04-02 Martin Jambor <mjambor@suse.cz>
22885
22886 PR ipa/92676
22887 * ipa-sra.c (struct caller_issues): New fields candidate and
22888 call_from_outside_comdat.
22889 (check_for_caller_issues): Check for calls from outsied of
22890 candidate's same_comdat_group.
22891 (check_all_callers_for_issues): Set up issues.candidate, check result
22892 of the new check.
22893 (mark_callers_calls_comdat_local): New function.
22894 (process_isra_node_results): Set calls_comdat_local of callers if
22895 appropriate.
22896
22897 2020-04-02 Richard Biener <rguenther@suse.de>
22898
22899 PR c/94392
22900 * common.opt (ffinite-loops): Initialize to zero.
22901 * opts.c (default_options_table): Remove OPT_ffinite_loops
22902 entry.
22903 * cfgloop.h (loop::finite_p): New member.
22904 * cfgloopmanip.c (copy_loop_info): Copy finite_p.
22905 * ipa-icf-gimple.c (func_checker::compare_loops): Compare
22906 finite_p.
22907 * lto-streamer-in.c (input_cfg): Stream finite_p.
22908 * lto-streamer-out.c (output_cfg): Likewise.
22909 * tree-cfg.c (replace_loop_annotate): Initialize finite_p
22910 from flag_finite_loops at CFG build time.
22911 * tree-ssa-loop-niter.c (finite_loop_p): Check the loops
22912 finite_p flag instead of flag_finite_loops.
22913 * doc/invoke.texi (ffinite-loops): Adjust documentation of
22914 default setting.
22915
22916 2020-04-02 Richard Biener <rguenther@suse.de>
22917
22918 PR debug/94450
22919 * dwarf2out.c (dwarf2out_early_finish): Remove code emitting
22920 DW_TAG_imported_unit.
22921
22922 2020-04-02 Maciej W. Rozycki <macro@wdc.com>
22923
22924 * doc/install.texi (Specific) <riscv32-*-elf, riscv32-*-linux>
22925 <riscv64-*-elf, riscv64-*-linux>: Update binutils requirement to
22926 2.30.
22927
22928 2020-04-02 Kewen Lin <linkw@gcc.gnu.org>
22929
22930 PR tree-optimization/94401
22931 * tree-vect-loop.c (vectorizable_load): Handle VMAT_CONTIGUOUS_REVERSE
22932 access type when loading halves of vector to avoid peeling for gaps.
22933
22934 2020-04-02 Jakub Jelinek <jakub@redhat.com>
22935
22936 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add a space in
22937 between a string literal and MIPS_SYSVERSION_SPEC macro.
22938
22939 2020-04-02 Martin Jambor <mjambor@suse.cz>
22940
22941 * doc/invoke.texi (Optimize Options): Document sra-max-propagations.
22942
22943 2020-04-02 Jakub Jelinek <jakub@redhat.com>
22944
22945 PR rtl-optimization/92264
22946 * params.opt (-param=max-find-base-term-values=): Decrease default
22947 from 2000 to 200.
22948
22949 PR rtl-optimization/92264
22950 * rtl.h (struct rtx_def): Mention that call bit is used as
22951 SP_DERIVED_VALUE_P in cselib.c.
22952 * cselib.c (SP_DERIVED_VALUE_P): Define.
22953 (PRESERVED_VALUE_P, SP_BASED_VALUE_P): Move definitions earlier.
22954 (cselib_hasher::equal): Handle equality between SP_DERIVED_VALUE_P
22955 val_rtx and sp based expression where offsets cancel each other.
22956 (preserve_constants_and_equivs): Formatting fix.
22957 (cselib_reset_table): Add reverse op loc to SP_DERIVED_VALUE_P
22958 locs list for cfa_base_preserved_val if needed. Formatting fix.
22959 (autoinc_split): If the to be returned value is a REG, MEM or
22960 VALUE which has SP_DERIVED_VALUE_P + CONST_INT as one of its
22961 locs, return the SP_DERIVED_VALUE_P VALUE and adjust *off.
22962 (rtx_equal_for_cselib_1): Call autoinc_split even if both
22963 expressions are PLUS in Pmode with CONST_INT second operands.
22964 Handle SP_DERIVED_VALUE_P cases.
22965 (cselib_hash_plus_const_int): New function.
22966 (cselib_hash_rtx): Use it for PLUS in Pmode with CONST_INT
22967 second operand, as well as for PRE_DEC etc. that ought to be
22968 hashed the same way.
22969 (cselib_subst_to_values): Substitute PLUS with Pmode and
22970 CONST_INT operand if the first operand is a VALUE which has
22971 SP_DERIVED_VALUE_P + CONST_INT as one of its locs for the
22972 SP_DERIVED_VALUE_P + adjusted offset.
22973 (cselib_lookup_1): When creating a new VALUE for stack_pointer_rtx,
22974 set SP_DERIVED_VALUE_P on it. Set PRESERVED_VALUE_P when adding
22975 SP_DERIVED_VALUE_P PRESERVED_VALUE_P subseted VALUE location.
22976 * var-tracking.c (vt_initialize): Call cselib_add_permanent_equiv
22977 on the sp value before calling cselib_add_permanent_equiv on the
22978 cfa_base value.
22979 * dse.c (check_for_inc_dec_1, check_for_inc_dec): Punt on RTX_AUTOINC
22980 in the insn without REG_INC note.
22981 (replace_read): Punt on RTX_AUTOINC in the *loc being replaced.
22982 Punt on invalid insns added by copy_to_mode_reg. Formatting fixes.
22983
22984 PR target/94435
22985 * config/aarch64/aarch64.c (aarch64_gen_compare_reg_maybe_ze): For
22986 y_mode E_[QH]Imode and y being a CONST_INT, change y_mode to SImode.
22987
22988 2020-04-02 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
22989
22990 PR target/94317
22991 * config/arm/arm-builtins.c (LDRGBWBXU_QUALIFIERS): Define.
22992 (LDRGBWBXU_Z_QUALIFIERS): Likewise.
22993 * config/arm/arm_mve.h (__arm_vldrdq_gather_base_wb_s64): Modify
22994 intrinsic defintion by adding a new builtin call to writeback into base
22995 address.
22996 (__arm_vldrdq_gather_base_wb_u64): Likewise.
22997 (__arm_vldrdq_gather_base_wb_z_s64): Likewise.
22998 (__arm_vldrdq_gather_base_wb_z_u64): Likewise.
22999 (__arm_vldrwq_gather_base_wb_s32): Likewise.
23000 (__arm_vldrwq_gather_base_wb_u32): Likewise.
23001 (__arm_vldrwq_gather_base_wb_z_s32): Likewise.
23002 (__arm_vldrwq_gather_base_wb_z_u32): Likewise.
23003 (__arm_vldrwq_gather_base_wb_f32): Likewise.
23004 (__arm_vldrwq_gather_base_wb_z_f32): Likewise.
23005 * config/arm/arm_mve_builtins.def (vldrwq_gather_base_wb_z_u): Modify
23006 builtin's qualifier.
23007 (vldrdq_gather_base_wb_z_u): Likewise.
23008 (vldrwq_gather_base_wb_u): Likewise.
23009 (vldrdq_gather_base_wb_u): Likewise.
23010 (vldrwq_gather_base_wb_z_s): Likewise.
23011 (vldrwq_gather_base_wb_z_f): Likewise.
23012 (vldrdq_gather_base_wb_z_s): Likewise.
23013 (vldrwq_gather_base_wb_s): Likewise.
23014 (vldrwq_gather_base_wb_f): Likewise.
23015 (vldrdq_gather_base_wb_s): Likewise.
23016 (vldrwq_gather_base_nowb_z_u): Define builtin.
23017 (vldrdq_gather_base_nowb_z_u): Likewise.
23018 (vldrwq_gather_base_nowb_u): Likewise.
23019 (vldrdq_gather_base_nowb_u): Likewise.
23020 (vldrwq_gather_base_nowb_z_s): Likewise.
23021 (vldrwq_gather_base_nowb_z_f): Likewise.
23022 (vldrdq_gather_base_nowb_z_s): Likewise.
23023 (vldrwq_gather_base_nowb_s): Likewise.
23024 (vldrwq_gather_base_nowb_f): Likewise.
23025 (vldrdq_gather_base_nowb_s): Likewise.
23026 * config/arm/mve.md (mve_vldrwq_gather_base_nowb_<supf>v4si): Define RTL
23027 pattern.
23028 (mve_vldrwq_gather_base_wb_<supf>v4si): Modify RTL pattern.
23029 (mve_vldrwq_gather_base_nowb_z_<supf>v4si): Define RTL pattern.
23030 (mve_vldrwq_gather_base_wb_z_<supf>v4si): Modify RTL pattern.
23031 (mve_vldrwq_gather_base_wb_fv4sf): Modify RTL pattern.
23032 (mve_vldrwq_gather_base_nowb_fv4sf): Define RTL pattern.
23033 (mve_vldrwq_gather_base_wb_z_fv4sf): Modify RTL pattern.
23034 (mve_vldrwq_gather_base_nowb_z_fv4sf): Define RTL pattern.
23035 (mve_vldrdq_gather_base_nowb_<supf>v4di): Define RTL pattern.
23036 (mve_vldrdq_gather_base_wb_<supf>v4di): Modify RTL pattern.
23037 (mve_vldrdq_gather_base_nowb_z_<supf>v4di): Define RTL pattern.
23038 (mve_vldrdq_gather_base_wb_z_<supf>v4di): Modify RTL pattern.
23039
23040 2020-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
23041
23042 * config/s390/vector.md ("<ti*>add<mode>3", "mul<mode>3")
23043 ("and<mode>3", "notand<mode>3", "ior<mode>3", "ior_not<mode>3")
23044 ("xor<mode>3", "notxor<mode>3", "smin<mode>3", "smax<mode>3")
23045 ("umin<mode>3", "umax<mode>3", "vec_widen_smult_even_<mode>")
23046 ("vec_widen_umult_even_<mode>", "vec_widen_smult_odd_<mode>")
23047 ("vec_widen_umult_odd_<mode>", "add<mode>3", "sub<mode>3")
23048 ("mul<mode>3", "fma<mode>4", "fms<mode>4", "neg_fma<mode>4")
23049 ("neg_fms<mode>4", "*smax<mode>3_vxe", "*smaxv2df3_vx")
23050 ("*smin<mode>3_vxe", "*sminv2df3_vx"): Remove % constraint
23051 modifier.
23052 ("vec_widen_umult_lo_<mode>", "vec_widen_umult_hi_<mode>")
23053 ("vec_widen_smult_lo_<mode>", "vec_widen_smult_hi_<mode>"):
23054 Remove constraints from expander.
23055 * config/s390/vx-builtins.md ("vacc<bhfgq>_<mode>", "vacq")
23056 ("vacccq", "vec_avg<mode>", "vec_avgu<mode>", "vec_vmal<mode>")
23057 ("vec_vmah<mode>", "vec_vmalh<mode>", "vec_vmae<mode>")
23058 ("vec_vmale<mode>", "vec_vmao<mode>", "vec_vmalo<mode>")
23059 ("vec_smulh<mode>", "vec_umulh<mode>", "vec_nor<mode>3")
23060 ("vfmin<mode>", "vfmax<mode>"): Remove % constraint modifier.
23061
23062 2020-04-01 Peter Bergner <bergner@linux.ibm.com>
23063
23064 PR rtl-optimization/94123
23065 * lower-subreg.c (pass_lower_subreg3::gate): Remove test for
23066 flag_split_wide_types_early.
23067
23068 2020-04-01 Joerg Sonnenberger <joerg@bec.de>
23069
23070 * doc/extend.texi (Common Function Attributes): Fix typo.
23071
23072 2020-04-01 Segher Boessenkool <segher@kernel.crashing.org>
23073
23074 PR target/94420
23075 * config/rs6000/rs6000.md (*tocref<mode> for P): Add insn condition
23076 on operands[1].
23077
23078 2020-04-01 Zackery Spytz <zspytz@gmail.com>
23079
23080 * doc/extend.texi: Fix a typo in the documentation of the
23081 copy function attribute.
23082
23083 2020-04-01 Jakub Jelinek <jakub@redhat.com>
23084
23085 PR middle-end/94423
23086 * tree-object-size.c (pass_object_sizes::execute): Don't call
23087 replace_uses_by for SSA_NAME_OCCURS_IN_ABNORMAL_PHI lhs, instead
23088 call replace_call_with_value.
23089
23090 2020-04-01 Kewen Lin <linkw@gcc.gnu.org>
23091
23092 PR tree-optimization/94043
23093 * tree-vect-loop.c (vectorizable_live_operation): Generate loop-closed
23094 phi for vec_lhs and use it for lane extraction.
23095
23096 2020-03-31 Felix Yang <felix.yang@huawei.com>
23097
23098 PR tree-optimization/94398
23099 * tree-vect-stmts.c (vectorizable_store): Instead of calling
23100 vect_supportable_dr_alignment, set alignment_support_scheme to
23101 dr_unaligned_supported for gather-scatter accesses.
23102 (vectorizable_load): Likewise.
23103
23104 2020-03-31 Andrew Stubbs <ams@codesourcery.com>
23105
23106 * config/gcn/gcn-valu.md (V_QI, V_HI, V_HF, V_SI, V_SF, V_DI, V_DF):
23107 New mode iterators.
23108 (vnsi, VnSI, vndi, VnDI): New mode attributes.
23109 (mov<mode>): Use <VnDI> in place of V64DI.
23110 (mov<mode>_exec): Likewise.
23111 (mov<mode>_sgprbase): Likewise.
23112 (reload_out<mode>): Likewise.
23113 (*vec_set<mode>_1): Use GET_MODE_NUNITS instead of constant 64.
23114 (gather_load<mode>v64si): Rename to ...
23115 (gather_load<mode><vnsi>): ... this, and use <VnSI> in place of V64SI,
23116 and <VnDI> in place of V64DI.
23117 (gather<mode>_insn_1offset<exec>): Use <VnDI> in place of V64DI.
23118 (gather<mode>_insn_1offset_ds<exec>): Use <VnSI> in place of V64SI.
23119 (gather<mode>_insn_2offsets<exec>): Use <VnSI> and <VnDI>.
23120 (scatter_store<mode>v64si): Rename to ...
23121 (scatter_store<mode><vnsi>): ... this, and use <VnSI> and <VnDI>.
23122 (scatter<mode>_expr<exec_scatter>): Use <VnSI> and <VnDI>.
23123 (scatter<mode>_insn_1offset<exec_scatter>): Likewise.
23124 (scatter<mode>_insn_1offset_ds<exec_scatter>): Likewise.
23125 (scatter<mode>_insn_2offsets<exec_scatter>): Likewise.
23126 (ds_bpermute<mode>): Use <VnSI>.
23127 (addv64si3_vcc<exec_vcc>): Rename to ...
23128 (add<mode>3_vcc<exec_vcc>): ... this, and use V_SI.
23129 (addv64si3_vcc_dup<exec_vcc>): Rename to ...
23130 (add<mode>3_vcc_dup<exec_vcc>): ... this, and use V_SI.
23131 (addcv64si3<exec_vcc>): Rename to ...
23132 (addc<mode>3<exec_vcc>): ... this, and use V_SI.
23133 (subv64si3_vcc<exec_vcc>): Rename to ...
23134 (sub<mode>3_vcc<exec_vcc>): ... this, and use V_SI.
23135 (subcv64si3<exec_vcc>): Rename to ...
23136 (subc<mode>3<exec_vcc>): ... this, and use V_SI.
23137 (addv64di3): Rename to ...
23138 (add<mode>3): ... this, and use V_DI.
23139 (addv64di3_exec): Rename to ...
23140 (add<mode>3_exec): ... this, and use V_DI.
23141 (subv64di3): Rename to ...
23142 (sub<mode>3): ... this, and use V_DI.
23143 (subv64di3_exec): Rename to ...
23144 (sub<mode>3_exec): ... this, and use V_DI.
23145 (addv64di3_zext): Rename to ...
23146 (add<mode>3_zext): ... this, and use V_DI and <VnSI>.
23147 (addv64di3_zext_exec): Rename to ...
23148 (add<mode>3_zext_exec): ... this, and use V_DI and <VnSI>.
23149 (addv64di3_zext_dup): Rename to ...
23150 (add<mode>3_zext_dup): ... this, and use V_DI and <VnSI>.
23151 (addv64di3_zext_dup_exec): Rename to ...
23152 (add<mode>3_zext_dup_exec): ... this, and use V_DI and <VnSI>.
23153 (addv64di3_zext_dup2): Rename to ...
23154 (add<mode>3_zext_dup2): ... this, and use V_DI and <VnSI>.
23155 (addv64di3_zext_dup2_exec): Rename to ...
23156 (add<mode>3_zext_dup2_exec): ... this, and use V_DI and <VnSI>.
23157 (addv64di3_sext_dup2): Rename to ...
23158 (add<mode>3_sext_dup2): ... this, and use V_DI and <VnSI>.
23159 (addv64di3_sext_dup2_exec): Rename to ...
23160 (add<mode>3_sext_dup2_exec): ... this, and use V_DI and <VnSI>.
23161 (<su>mulv64si3_highpart<exec>): Rename to ...
23162 (<su>mul<mode>3_highpart<exec>): ... this and use V_SI and <VnDI>.
23163 (mulv64di3): Rename to ...
23164 (mul<mode>3): ... this, and use V_DI and <VnSI>.
23165 (mulv64di3_exec): Rename to ...
23166 (mul<mode>3_exec): ... this, and use V_DI and <VnSI>.
23167 (mulv64di3_zext): Rename to ...
23168 (mul<mode>3_zext): ... this, and use V_DI and <VnSI>.
23169 (mulv64di3_zext_exec): Rename to ...
23170 (mul<mode>3_zext_exec): ... this, and use V_DI and <VnSI>.
23171 (mulv64di3_zext_dup2): Rename to ...
23172 (mul<mode>3_zext_dup2): ... this, and use V_DI and <VnSI>.
23173 (mulv64di3_zext_dup2_exec): Rename to ...
23174 (mul<mode>3_zext_dup2_exec): ... this, and use V_DI and <VnSI>.
23175 (<expander>v64di3): Rename to ...
23176 (<expander><mode>3): ... this, and use V_DI and <VnSI>.
23177 (<expander>v64di3_exec): Rename to ...
23178 (<expander><mode>3_exec): ... this, and use V_DI and <VnSI>.
23179 (<expander>v64si3<exec>): Rename to ...
23180 (<expander><mode>3<exec>): ... this, and use V_SI and <VnSI>.
23181 (v<expander>v64si3<exec>): Rename to ...
23182 (v<expander><mode>3<exec>): ... this, and use V_SI and <VnSI>.
23183 (<expander>v64si3<exec>): Rename to ...
23184 (<expander><vnsi>3<exec>): ... this, and use V_SI.
23185 (subv64df3<exec>): Rename to ...
23186 (sub<mode>3<exec>): ... this, and use V_DF.
23187 (truncv64di<mode>2): Rename to ...
23188 (trunc<vndi><mode>2): ... this, and use <VnDI>.
23189 (truncv64di<mode>2_exec): Rename to ...
23190 (trunc<vndi><mode>2_exec): ... this, and use <VnDI>.
23191 (<convop><mode>v64di2): Rename to ...
23192 (<convop><mode><vndi>2): ... this, and use <VnDI>.
23193 (<convop><mode>v64di2_exec): Rename to ...
23194 (<convop><mode><vndi>2_exec): ... this, and use <VnDI>.
23195 (vec_cmp<u>v64qidi): Rename to ...
23196 (vec_cmp<u><mode>di): ... this, and use <VnSI>.
23197 (vec_cmp<u>v64qidi_exec): Rename to ...
23198 (vec_cmp<u><mode>di_exec): ... this, and use <VnSI>.
23199 (vcond_mask_<mode>di): Use <VnDI>.
23200 (maskload<mode>di): Likewise.
23201 (maskstore<mode>di): Likewise.
23202 (mask_gather_load<mode>v64si): Rename to ...
23203 (mask_gather_load<mode><vnsi>): ... this, and use <VnSI> and <VnDI>.
23204 (mask_scatter_store<mode>v64si): Rename to ...
23205 (mask_scatter_store<mode><vnsi>): ... this, and use <VnSI> and <VnDI>.
23206 (*<reduc_op>_dpp_shr_v64di): Rename to ...
23207 (*<reduc_op>_dpp_shr_<mode>): ... this, and use V_DI and <VnSI>.
23208 (*plus_carry_in_dpp_shr_v64si): Rename to ...
23209 (*plus_carry_in_dpp_shr_<mode>): ... this, and use V_SI.
23210 (*plus_carry_dpp_shr_v64di): Rename to ...
23211 (*plus_carry_dpp_shr_<mode>): ... this, and use V_DI and <VnSI>.
23212 (vec_seriesv64si): Rename to ...
23213 (vec_series<mode>): ... this, and use V_SI.
23214 (vec_seriesv64di): Rename to ...
23215 (vec_series<mode>): ... this, and use V_DI.
23216
23217 2020-03-31 Claudiu Zissulescu <claziss@synopsys.com>
23218
23219 * config/arc/arc.c (arc_print_operand): Use
23220 HOST_WIDE_INT_PRINT_DEC macro.
23221
23222 2020-03-31 Claudiu Zissulescu <claziss@synopsys.com>
23223
23224 * config/arc/arc.h (ASM_FORMAT_PRIVATE_NAME): Fix it.
23225
23226 2020-03-31 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
23227
23228 * config/arm/arm_mve.h (vbicq): Define MVE intrinsic polymorphic
23229 variant.
23230 (__arm_vbicq): Likewise.
23231
23232 2020-03-31 Vineet Gupta <vgupta@synopsys.com>
23233
23234 * config/arc/linux.h: GLIBC_DYNAMIC_LINKER support BE/arc700.
23235
23236 2020-03-31 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
23237
23238 * config/arm/arm_mve.h (vaddlvq): Move the polymorphic variant to the
23239 common section of both MVE Integer and MVE Floating Point.
23240 (vaddvq): Likewise.
23241 (vaddlvq_p): Likewise.
23242 (vaddvaq): Likewise.
23243 (vaddvq_p): Likewise.
23244 (vcmpcsq): Likewise.
23245 (vmlsdavxq): Likewise.
23246 (vmlsdavq): Likewise.
23247 (vmladavxq): Likewise.
23248 (vmladavq): Likewise.
23249 (vminvq): Likewise.
23250 (vminavq): Likewise.
23251 (vmaxvq): Likewise.
23252 (vmaxavq): Likewise.
23253 (vmlaldavq): Likewise.
23254 (vcmphiq): Likewise.
23255 (vaddlvaq): Likewise.
23256 (vrmlaldavhq): Likewise.
23257 (vrmlaldavhxq): Likewise.
23258 (vrmlsldavhq): Likewise.
23259 (vrmlsldavhxq): Likewise.
23260 (vmlsldavxq): Likewise.
23261 (vmlsldavq): Likewise.
23262 (vabavq): Likewise.
23263 (vrmlaldavhaq): Likewise.
23264 (vcmpgeq_m_n): Likewise.
23265 (vmlsdavxq_p): Likewise.
23266 (vmlsdavq_p): Likewise.
23267 (vmlsdavaxq): Likewise.
23268 (vmlsdavaq): Likewise.
23269 (vaddvaq_p): Likewise.
23270 (vcmpcsq_m_n): Likewise.
23271 (vcmpcsq_m): Likewise.
23272 (vmladavxq_p): Likewise.
23273 (vmladavq_p): Likewise.
23274 (vmladavaxq): Likewise.
23275 (vmladavaq): Likewise.
23276 (vminvq_p): Likewise.
23277 (vminavq_p): Likewise.
23278 (vmaxvq_p): Likewise.
23279 (vmaxavq_p): Likewise.
23280 (vcmphiq_m): Likewise.
23281 (vaddlvaq_p): Likewise.
23282 (vmlaldavaq): Likewise.
23283 (vmlaldavaxq): Likewise.
23284 (vmlaldavq_p): Likewise.
23285 (vmlaldavxq_p): Likewise.
23286 (vmlsldavaq): Likewise.
23287 (vmlsldavaxq): Likewise.
23288 (vmlsldavq_p): Likewise.
23289 (vmlsldavxq_p): Likewise.
23290 (vrmlaldavhaxq): Likewise.
23291 (vrmlaldavhq_p): Likewise.
23292 (vrmlaldavhxq_p): Likewise.
23293 (vrmlsldavhaq): Likewise.
23294 (vrmlsldavhaxq): Likewise.
23295 (vrmlsldavhq_p): Likewise.
23296 (vrmlsldavhxq_p): Likewise.
23297 (vabavq_p): Likewise.
23298 (vmladavaq_p): Likewise.
23299 (vstrbq_scatter_offset): Likewise.
23300 (vstrbq_p): Likewise.
23301 (vstrbq_scatter_offset_p): Likewise.
23302 (vstrdq_scatter_base_p): Likewise.
23303 (vstrdq_scatter_base): Likewise.
23304 (vstrdq_scatter_offset_p): Likewise.
23305 (vstrdq_scatter_offset): Likewise.
23306 (vstrdq_scatter_shifted_offset_p): Likewise.
23307 (vstrdq_scatter_shifted_offset): Likewise.
23308 (vmaxq_x): Likewise.
23309 (vminq_x): Likewise.
23310 (vmovlbq_x): Likewise.
23311 (vmovltq_x): Likewise.
23312 (vmulhq_x): Likewise.
23313 (vmullbq_int_x): Likewise.
23314 (vmullbq_poly_x): Likewise.
23315 (vmulltq_int_x): Likewise.
23316 (vmulltq_poly_x): Likewise.
23317 (vstrbq): Likewise.
23318
23319 2020-03-31 Jakub Jelinek <jakub@redhat.com>
23320
23321 PR target/94368
23322 * config/aarch64/constraints.md (Uph): New constraint.
23323 * config/aarch64/atomics.md (cas_short_expected_imm): New mode attr.
23324 (@aarch64_compare_and_swap<mode>): Use it instead of n in operand 2's
23325 constraint.
23326
23327 2020-03-31 Marc Glisse <marc.glisse@inria.fr>
23328 Jakub Jelinek <jakub@redhat.com>
23329
23330 PR middle-end/94412
23331 * fold-const.c (fold_binary_loc) <case TRUNC_DIV_EXPR>: Use
23332 ANY_INTEGRAL_TYPE_P instead of INTEGRAL_TYPE_P.
23333
23334 2020-03-31 Jakub Jelinek <jakub@redhat.com>
23335
23336 PR tree-optimization/94403
23337 * gimple-ssa-store-merging.c (verify_symbolic_number_p): Allow also
23338 ENUMERAL_TYPE lhs_type.
23339
23340 PR rtl-optimization/94344
23341 * tree-ssa-forwprop.c (simplify_rotate): Handle also same precision
23342 conversions, either on both operands of |^+ or just one. Handle
23343 also extra same precision conversion on RSHIFT_EXPR first operand
23344 provided RSHIFT_EXPR is performed in unsigned type.
23345
23346 2020-03-30 David Malcolm <dmalcolm@redhat.com>
23347
23348 * lra.c (finish_insn_code_data_once): Set the array elements
23349 to NULL after freeing them.
23350
23351 2020-03-30 Andreas Schwab <schwab@suse.de>
23352
23353 * config/host-linux.c (TRY_EMPTY_VM_SPACE) [__riscv && __LP64__]:
23354 Define.
23355
23356 2020-03-30 Will Schmidt <will_schmidt@vnet.ibm.com>
23357
23358 * config/rs6000/rs6000-call.c altivec_init_builtins(): Remove code
23359 to skip defining builtins based on builtin_mask.
23360
23361 2020-03-30 Jakub Jelinek <jakub@redhat.com>
23362
23363 PR target/94343
23364 * config/i386/sse.md (<mask_codefor>one_cmpl<mode>2<mask_name>): If
23365 !TARGET_AVX512VL, use 512-bit vpternlog and make sure the input
23366 operand is a register. Don't enable masked variants for V*[QH]Imode.
23367
23368 PR target/93069
23369 * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Use
23370 <store_mask_constraint> instead of m in output operand constraint.
23371 (vec_extract_hi_<mode><mask_name>): Use <mask_operand2> instead of
23372 %{%3%}.
23373
23374 2020-03-30 Alan Modra <amodra@gmail.com>
23375
23376 * config/rs6000/rs6000.c (rs6000_call_aix): Emit cookie to pattern.
23377 (rs6000_indirect_call_template_1): Adjust to suit.
23378 * config/rs6000/rs6000.md (call_local): Merge call_local32,
23379 call_local64, and call_local_aix.
23380 (call_value_local): Simlarly.
23381 (call_nonlocal_aix, call_value_nonlocal_aix): Adjust rtl to suit,
23382 and disable pattern when CALL_LONG.
23383 (call_indirect_aix, call_value_indirect_aix): Adjust rtl.
23384 (call_indirect_elfv2, call_indirect_pcrel): Likewise.
23385 (call_value_indirect_elfv2, call_value_indirect_pcrel): Likewise.
23386
23387 2020-03-29 H.J. Lu <hongjiu.lu@intel.com>
23388
23389 PR driver/94381
23390 * doc/invoke.texi: Update -falign-functions, -falign-loops and
23391 -falign-jumps documentation.
23392
23393 2020-03-29 Martin Liska <mliska@suse.cz>
23394
23395 PR ipa/94363
23396 * cgraphunit.c (process_function_and_variable_attributes): Remove
23397 double 'attribute' words.
23398
23399 2020-03-29 John David Anglin <dave.anglin@bell.net>
23400
23401 * config/pa/pa.c (pa_asm_output_aligned_bss): Delete duplicate
23402 .align output.
23403
23404 2020-03-28 Jakub Jelinek <jakub@redhat.com>
23405
23406 PR c/93573
23407 * c-decl.c (grokdeclarator): After issuing errors, set size_int_const
23408 to true after setting size to integer_one_node.
23409
23410 PR tree-optimization/94329
23411 * tree-ssa-reassoc.c (reassociate_bb): When calling reassoc_remove_stmt
23412 on the last stmt in a bb, make sure gsi_prev isn't done immediately
23413 after gsi_last_bb.
23414
23415 2020-03-27 Alan Modra <amodra@gmail.com>
23416
23417 PR target/94145
23418 * config/rs6000/rs6000.c (rs6000_longcall_ref): Use unspec_volatile
23419 for PLT16_LO and PLT_PCREL.
23420 * config/rs6000/rs6000.md (UNSPEC_PLT16_LO, UNSPEC_PLT_PCREL): Remove.
23421 (UNSPECV_PLT16_LO, UNSPECV_PLT_PCREL): Define.
23422 (pltseq_plt16_lo_, pltseq_plt_pcrel): Use unspec_volatile.
23423
23424 2020-03-27 Martin Sebor <msebor@redhat.com>
23425
23426 PR c++/94098
23427 * calls.c (init_attr_rdwr_indices): Iterate over all access attributes.
23428
23429 2020-03-27 Andrew Stubbs <ams@codesourcery.com>
23430
23431 * config/gcn/gcn-valu.md:
23432 (VEC_SUBDWORD_MODE): Rename to V_QIHI throughout.
23433 (VEC_1REG_MODE): Delete.
23434 (VEC_1REG_ALT): Delete.
23435 (VEC_ALL1REG_MODE): Rename to V_1REG throughout.
23436 (VEC_1REG_INT_MODE): Delete.
23437 (VEC_ALL1REG_INT_MODE): Rename to V_INT_1REG throughout.
23438 (VEC_ALL1REG_INT_ALT): Rename to V_INT_1REG_ALT throughout.
23439 (VEC_2REG_MODE): Rename to V_2REG throughout.
23440 (VEC_REG_MODE): Rename to V_noHI throughout.
23441 (VEC_ALLREG_MODE): Rename to V_ALL throughout.
23442 (VEC_ALLREG_ALT): Rename to V_ALL_ALT throughout.
23443 (VEC_ALLREG_INT_MODE): Rename to V_INT throughout.
23444 (VEC_INT_MODE): Delete.
23445 (VEC_FP_MODE): Rename to V_FP throughout and move to top.
23446 (VEC_FP_1REG_MODE): Rename to V_FP_1REG throughout and move to top.
23447 (FP_MODE): Delete and replace with FP throughout.
23448 (FP_1REG_MODE): Delete and replace with FP_1REG throughout.
23449 (VCMP_MODE): Rename to V_noQI throughout and move to top.
23450 (VCMP_MODE_INT): Rename to V_INT_noQI throughout and move to top.
23451 * config/gcn/gcn.md (FP): New mode iterator.
23452 (FP_1REG): New mode iterator.
23453
23454 2020-03-27 David Malcolm <dmalcolm@redhat.com>
23455
23456 * doc/invoke.texi (-fdump-analyzer-supergraph): Document that this
23457 now emits two .dot files.
23458 * graphviz.cc (graphviz_out::begin_tr): Only emit a TR, not a TD.
23459 (graphviz_out::end_tr): Only close a TR, not a TD.
23460 (graphviz_out::begin_td): New.
23461 (graphviz_out::end_td): New.
23462 (graphviz_out::begin_trtd): New, replacing the old implementation
23463 of graphviz_out::begin_tr.
23464 (graphviz_out::end_tdtr): New, replacing the old implementation
23465 of graphviz_out::end_tr.
23466 * graphviz.h (graphviz_out::begin_td): New decl.
23467 (graphviz_out::end_td): New decl.
23468 (graphviz_out::begin_trtd): New decl.
23469 (graphviz_out::end_tdtr): New decl.
23470
23471 2020-03-27 Richard Biener <rguenther@suse.de>
23472
23473 PR debug/94273
23474 * dwarf2out.c (should_emit_struct_debug): Return false for
23475 DINFO_LEVEL_TERSE.
23476
23477 2020-03-27 Richard Biener <rguenther@suse.de>
23478
23479 PR tree-optimization/94352
23480 * tree-ssa-propagate.c (ssa_prop_init): Move seeding of the
23481 worklist ...
23482 (ssa_propagation_engine::ssa_propagate): ... here after
23483 initializing curr_order.
23484
23485 2020-03-27 Kewen Lin <linkw@gcc.gnu.org>
23486
23487 PR tree-optimization/90332
23488 * tree-vect-stmts.c (vector_vector_composition_type): New function.
23489 (get_group_load_store_type): Adjust to call
23490 vector_vector_composition_type, extend it to construct with scalar
23491 types.
23492 (vectorizable_load): Likewise.
23493
23494 2020-03-27 Roman Zhuykov <zhroma@ispras.ru>
23495
23496 * ddg.c (create_ddg_dep_from_intra_loop_link): Remove assertions.
23497 (create_ddg_dep_no_link): Likewise.
23498 (add_cross_iteration_register_deps): Move debug instruction check.
23499 Other minor refactoring.
23500 (add_intra_loop_mem_dep): Do not check for debug instructions.
23501 (add_inter_loop_mem_dep): Likewise.
23502 (build_intra_loop_deps): Likewise.
23503 (create_ddg): Do not include debug insns into the graph.
23504 * ddg.h (struct ddg): Remove num_debug field.
23505 * modulo-sched.c (doloop_register_get): Adjust condition.
23506 (res_MII): Remove DDG num_debug field usage.
23507 (sms_schedule_by_order): Use assertion against debug insns.
23508 (ps_has_conflicts): Drop debug insn check.
23509
23510 2020-03-26 Jakub Jelinek <jakub@redhat.com>
23511
23512 PR debug/94323
23513 * tree.c (protected_set_expr_location): Recurse on STATEMENT_LIST
23514 that contains exactly one non-DEBUG_BEGIN_STMT statement.
23515
23516 PR debug/94281
23517 * gimple.h (gimple_seq_first_nondebug_stmt): New function.
23518 (gimple_seq_last_nondebug_stmt): Don't return NULL if seq contains
23519 a single non-debug stmt followed by one or more debug stmts.
23520 * gimplify.c (gimplify_body): Use gimple_seq_first_nondebug_stmt
23521 instead of gimple_seq_first_stmt, use gimple_seq_first_nondebug_stmt
23522 and gimple_seq_last_nondebug_stmt instead of gimple_seq_first and
23523 gimple_seq_last to check if outer_stmt gbind could be reused and
23524 if yes and it is surrounded by any debug stmts, move them into the
23525 gbind body.
23526
23527 PR rtl-optimization/92264
23528 * var-tracking.c (add_stores): Call cselib_set_value_sp_based even
23529 for sp based values in !frame_pointer_needed
23530 && !ACCUMULATE_OUTGOING_ARGS functions.
23531
23532 2020-03-26 Felix Yang <felix.yang@huawei.com>
23533
23534 PR tree-optimization/94269
23535 * tree-ssa-math-opts.c (convert_plusminus_to_widen): Restrict
23536 this
23537 operation to single basic block.
23538
23539 2020-03-25 Jeff Law <law@redhat.com>
23540
23541 PR rtl-optimization/90275
23542 * config/sh/sh.md (mov_neg_si_t): Clobber the T register in the
23543 pattern.
23544
23545 2020-03-25 Jakub Jelinek <jakub@redhat.com>
23546
23547 PR target/94292
23548 * config/arm/arm.c (arm_gen_dicompare_reg): Set mode of COMPARE to
23549 mode rather than VOIDmode.
23550
23551 2020-03-25 Martin Sebor <msebor@redhat.com>
23552
23553 PR middle-end/94004
23554 * gimple-ssa-warn-alloca.c (pass_walloca::execute): Issue warnings
23555 even for alloca calls resulting from system macro expansion.
23556 Include inlining context in all warnings.
23557
23558 2020-03-25 Richard Sandiford <richard.sandiford@arm.com>
23559
23560 PR target/94254
23561 * config/rs6000/rs6000.c (rs6000_can_change_mode_class): Allow
23562 FPRs to change between SDmode and DDmode.
23563
23564 2020-03-25 Martin Sebor <msebor@redhat.com>
23565
23566 PR tree-optimization/94131
23567 * gimple-fold.c (get_range_strlen_tree): Fail for variable-length
23568 types and decls.
23569 * tree-ssa-strlen.c (get_range_strlen_dynamic): Avoid assuming
23570 types have constant sizes.
23571
23572 2020-03-25 Martin Liska <mliska@suse.cz>
23573
23574 PR lto/94259
23575 * configure.ac: Report error only when --with-zstd
23576 is used.
23577 * configure: Regenerate.
23578
23579 2020-03-25 Jakub Jelinek <jakub@redhat.com>
23580
23581 PR target/94308
23582 * config/i386/i386-features.c (ix86_add_reg_usage_to_vzeroupper): Set
23583 INSN_CODE (insn) to -1 when changing the pattern.
23584
23585 2020-03-25 Martin Liska <mliska@suse.cz>
23586
23587 PR target/93274
23588 PR ipa/94271
23589 * config/i386/i386-features.c (make_resolver_func): Drop
23590 public flag for resolver.
23591 * config/rs6000/rs6000.c (make_resolver_func): Add comdat
23592 group for resolver and drop public flag if possible.
23593 * multiple_target.c (create_dispatcher_calls): Drop unique_name
23594 and resolution as we want to enable LTO privatization of the default
23595 symbol.
23596
23597 2020-03-25 Martin Liska <mliska@suse.cz>
23598
23599 PR lto/94259
23600 * configure.ac: Respect --without-zstd and report
23601 error when we can't find header file with --with-zstd.
23602 * configure: Regenerate.
23603
23604 2020-03-25 Jakub Jelinek <jakub@redhat.com>
23605
23606 PR middle-end/94303
23607 * varasm.c (output_constructor_array_range): If local->index
23608 RANGE_EXPR doesn't start at the current location in the constructor,
23609 skip needed number of bytes using assemble_zeros or assert we don't
23610 go backwards.
23611
23612 PR c++/94223
23613 * langhooks.c (lhd_set_decl_assembler_name): Use a static ulong
23614 counter instead of DECL_UID.
23615
23616 PR tree-optimization/94300
23617 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): If pd.offset
23618 is positive, make sure that off + size isn't larger than needed_len.
23619
23620 2020-03-25 Richard Biener <rguenther@suse.de>
23621 Jakub Jelinek <jakub@redhat.com>
23622
23623 PR debug/94283
23624 * tree-if-conv.c (ifcvt_local_dce): Delete dead statements backwards.
23625
23626 2020-03-24 Christophe Lyon <christophe.lyon@linaro.org>
23627
23628 * doc/sourcebuild.texi (ARM-specific attributes): Add
23629 arm_fp_dp_ok.
23630 (Features for dg-add-options): Add arm_fp_dp.
23631
23632 2020-03-24 John David Anglin <danglin@gcc.gnu.org>
23633
23634 PR lto/94249
23635 * config/pa/pa.h (TARGET_CPU_CPP_BUILTINS): Define __BIG_ENDIAN__.
23636
23637 2020-03-24 Tobias Burnus <tobias@codesourcery.com>
23638
23639 PR libgomp/81689
23640 * omp-offload.c (omp_finish_file): Fix target-link handling if
23641 targetm_common.have_named_sections is false.
23642
23643 2020-03-24 Jakub Jelinek <jakub@redhat.com>
23644
23645 PR target/94286
23646 * config/arm/arm.md (subvdi4, usubvsi4, usubvdi4): Use gen_int_mode
23647 instead of GEN_INT.
23648
23649 PR debug/94285
23650 * tree-ssa-loop-manip.c (create_iv): If after, set stmt location to
23651 e->goto_locus even if gsi_bb (*incr_pos) contains only debug stmts.
23652 If not after and at *incr_pos is a debug stmt, set stmt location to
23653 location of next non-debug stmt after it if any.
23654
23655 PR debug/94283
23656 * tree-if-conv.c (ifcvt_local_dce): For gimple debug stmts, just set
23657 GF_PLF_2, but don't add them to worklist. Don't add an assigment to
23658 worklist or set GF_PLF_2 just because it is used in a debug stmt in
23659 another bb. Formatting improvements.
23660
23661 PR debug/94277
23662 * cgraphunit.c (check_global_declaration): For DECL_EXTERNAL and
23663 non-TREE_PUBLIC non-DECL_ARTIFICIAL FUNCTION_DECLs, set TREE_PUBLIC
23664 regardless of whether TREE_NO_WARNING is set on it or whether
23665 warn_unused_function is true or not.
23666
23667 2020-03-23 Jeff Law <law@redhat.com>
23668
23669 PR rtl-optimization/90275
23670 PR target/94238
23671 PR target/94144
23672 * simplify-rtx.c (comparison_code_valid_for_mode): New function.
23673 (simplify_logical_relational_operation): Use it.
23674
23675 2020-03-23 Jakub Jelinek <jakub@redhat.com>
23676
23677 PR c++/91993
23678 * tree.c (get_narrower): Handle COMPOUND_EXPR by recursing on
23679 ultimate rhs and if returned something different, reconstructing
23680 the COMPOUND_EXPRs.
23681
23682 2020-03-23 Lewis Hyatt <lhyatt@gmail.com>
23683
23684 * opts.c (print_filtered_help): Improve the help text for alias options.
23685
23686 2020-03-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
23687 Andre Vieira <andre.simoesdiasvieira@arm.com>
23688 Mihail Ionescu <mihail.ionescu@arm.com>
23689
23690 * config/arm/arm_mve.h (vshlcq_m_s8): Define macro.
23691 (vshlcq_m_u8): Likewise.
23692 (vshlcq_m_s16): Likewise.
23693 (vshlcq_m_u16): Likewise.
23694 (vshlcq_m_s32): Likewise.
23695 (vshlcq_m_u32): Likewise.
23696 (__arm_vshlcq_m_s8): Define intrinsic.
23697 (__arm_vshlcq_m_u8): Likewise.
23698 (__arm_vshlcq_m_s16): Likewise.
23699 (__arm_vshlcq_m_u16): Likewise.
23700 (__arm_vshlcq_m_s32): Likewise.
23701 (__arm_vshlcq_m_u32): Likewise.
23702 (vshlcq_m): Define polymorphic variant.
23703 * config/arm/arm_mve_builtins.def (QUADOP_NONE_NONE_UNONE_IMM_UNONE):
23704 Use builtin qualifier.
23705 (QUADOP_UNONE_UNONE_UNONE_IMM_UNONE): Likewise.
23706 * config/arm/mve.md (mve_vshlcq_m_vec_<supf><mode>): Define RTL pattern.
23707 (mve_vshlcq_m_carry_<supf><mode>): Likewise.
23708 (mve_vshlcq_m_<supf><mode>): Likewise.
23709
23710 2020-03-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
23711
23712 * config/arm/arm-builtins.c (LSLL_QUALIFIERS): Define builtin qualifier.
23713 (UQSHL_QUALIFIERS): Likewise.
23714 (ASRL_QUALIFIERS): Likewise.
23715 (SQSHL_QUALIFIERS): Likewise.
23716 * config/arm/arm_mve.h (__ARM_BIG_ENDIAN): Check to not support MVE in
23717 Big-Endian Mode.
23718 (sqrshr): Define macro.
23719 (sqrshrl): Likewise.
23720 (sqrshrl_sat48): Likewise.
23721 (sqshl): Likewise.
23722 (sqshll): Likewise.
23723 (srshr): Likewise.
23724 (srshrl): Likewise.
23725 (uqrshl): Likewise.
23726 (uqrshll): Likewise.
23727 (uqrshll_sat48): Likewise.
23728 (uqshl): Likewise.
23729 (uqshll): Likewise.
23730 (urshr): Likewise.
23731 (urshrl): Likewise.
23732 (lsll): Likewise.
23733 (asrl): Likewise.
23734 (__arm_lsll): Define intrinsic.
23735 (__arm_asrl): Likewise.
23736 (__arm_uqrshll): Likewise.
23737 (__arm_uqrshll_sat48): Likewise.
23738 (__arm_sqrshrl): Likewise.
23739 (__arm_sqrshrl_sat48): Likewise.
23740 (__arm_uqshll): Likewise.
23741 (__arm_urshrl): Likewise.
23742 (__arm_srshrl): Likewise.
23743 (__arm_sqshll): Likewise.
23744 (__arm_uqrshl): Likewise.
23745 (__arm_sqrshr): Likewise.
23746 (__arm_uqshl): Likewise.
23747 (__arm_urshr): Likewise.
23748 (__arm_sqshl): Likewise.
23749 (__arm_srshr): Likewise.
23750 * config/arm/arm_mve_builtins.def (LSLL_QUALIFIERS): Use builtin
23751 qualifier.
23752 (UQSHL_QUALIFIERS): Likewise.
23753 (ASRL_QUALIFIERS): Likewise.
23754 (SQSHL_QUALIFIERS): Likewise.
23755 * config/arm/mve.md (mve_uqrshll_sat<supf>_di): Define RTL pattern.
23756 (mve_sqrshrl_sat<supf>_di): Likewise.
23757 (mve_uqrshl_si): Likewise.
23758 (mve_sqrshr_si): Likewise.
23759 (mve_uqshll_di): Likewise.
23760 (mve_urshrl_di): Likewise.
23761 (mve_uqshl_si): Likewise.
23762 (mve_urshr_si): Likewise.
23763 (mve_sqshl_si): Likewise.
23764 (mve_srshr_si): Likewise.
23765 (mve_srshrl_di): Likewise.
23766 (mve_sqshll_di): Likewise.
23767
23768 2020-03-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
23769 Andre Vieira <andre.simoesdiasvieira@arm.com>
23770 Mihail Ionescu <mihail.ionescu@arm.com>
23771
23772 * config/arm/arm_mve.h (vsetq_lane_f16): Define macro.
23773 (vsetq_lane_f32): Likewise.
23774 (vsetq_lane_s16): Likewise.
23775 (vsetq_lane_s32): Likewise.
23776 (vsetq_lane_s8): Likewise.
23777 (vsetq_lane_s64): Likewise.
23778 (vsetq_lane_u8): Likewise.
23779 (vsetq_lane_u16): Likewise.
23780 (vsetq_lane_u32): Likewise.
23781 (vsetq_lane_u64): Likewise.
23782 (vgetq_lane_f16): Likewise.
23783 (vgetq_lane_f32): Likewise.
23784 (vgetq_lane_s16): Likewise.
23785 (vgetq_lane_s32): Likewise.
23786 (vgetq_lane_s8): Likewise.
23787 (vgetq_lane_s64): Likewise.
23788 (vgetq_lane_u8): Likewise.
23789 (vgetq_lane_u16): Likewise.
23790 (vgetq_lane_u32): Likewise.
23791 (vgetq_lane_u64): Likewise.
23792 (__ARM_NUM_LANES): Likewise.
23793 (__ARM_LANEQ): Likewise.
23794 (__ARM_CHECK_LANEQ): Likewise.
23795 (__arm_vsetq_lane_s16): Define intrinsic.
23796 (__arm_vsetq_lane_s32): Likewise.
23797 (__arm_vsetq_lane_s8): Likewise.
23798 (__arm_vsetq_lane_s64): Likewise.
23799 (__arm_vsetq_lane_u8): Likewise.
23800 (__arm_vsetq_lane_u16): Likewise.
23801 (__arm_vsetq_lane_u32): Likewise.
23802 (__arm_vsetq_lane_u64): Likewise.
23803 (__arm_vgetq_lane_s16): Likewise.
23804 (__arm_vgetq_lane_s32): Likewise.
23805 (__arm_vgetq_lane_s8): Likewise.
23806 (__arm_vgetq_lane_s64): Likewise.
23807 (__arm_vgetq_lane_u8): Likewise.
23808 (__arm_vgetq_lane_u16): Likewise.
23809 (__arm_vgetq_lane_u32): Likewise.
23810 (__arm_vgetq_lane_u64): Likewise.
23811 (__arm_vsetq_lane_f16): Likewise.
23812 (__arm_vsetq_lane_f32): Likewise.
23813 (__arm_vgetq_lane_f16): Likewise.
23814 (__arm_vgetq_lane_f32): Likewise.
23815 (vgetq_lane): Define polymorphic variant.
23816 (vsetq_lane): Likewise.
23817 * config/arm/mve.md (mve_vec_extract<mode><V_elem_l>): Define RTL
23818 pattern.
23819 (mve_vec_extractv2didi): Likewise.
23820 (mve_vec_extract_sext_internal<mode>): Likewise.
23821 (mve_vec_extract_zext_internal<mode>): Likewise.
23822 (mve_vec_set<mode>_internal): Likewise.
23823 (mve_vec_setv2di_internal): Likewise.
23824 * config/arm/neon.md (vec_set<mode>): Move RTL pattern to vec-common.md
23825 file.
23826 (vec_extract<mode><V_elem_l>): Rename to
23827 "neon_vec_extract<mode><V_elem_l>".
23828 (vec_extractv2didi): Rename to "neon_vec_extractv2didi".
23829 * config/arm/vec-common.md (vec_extract<mode><V_elem_l>): Define RTL
23830 pattern common for MVE and NEON.
23831 (vec_set<mode>): Move RTL pattern from neon.md and modify to accept both
23832 MVE and NEON.
23833
23834 2020-03-23 Andre Vieira <andre.simoesdiasvieira@arm.com>
23835
23836 * config/arm/mve.md (earlyclobber_32): New mode attribute.
23837 (mve_vrev64q_*, mve_vcaddq*, mve_vhcaddq_*, mve_vcmulq_*,
23838 mve_vmull[bt]q_*, mve_vqdmull[bt]q_*): Add appropriate early clobbers.
23839
23840 2020-03-23 Richard Biener <rguenther@suse.de>
23841
23842 PR tree-optimization/94261
23843 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove
23844 IL operand swapping code.
23845 (vect_slp_rearrange_stmts): Do not arrange isomorphic
23846 nodes that would need operation code adjustments.
23847
23848 2020-03-23 Tobias Burnus <tobias@codesourcery.com>
23849
23850 * doc/install.texi (amdgcn-*-amdhsa): Renamed
23851 from amdgcn-unknown-amdhsa; change
23852 amdgcn-unknown-amdhsa to amdgcn-amdhsa.
23853
23854 2020-03-23 Richard Biener <rguenther@suse.de>
23855
23856 PR ipa/94245
23857 * ipa-prop.c (ipa_read_jump_function): Build the ADDR_EXRP
23858 directly rather than also folding it via build_fold_addr_expr.
23859
23860 2020-03-23 Richard Biener <rguenther@suse.de>
23861
23862 PR tree-optimization/94266
23863 * tree-ssa-forwprop.c (pass_forwprop::execute): Do not propagate
23864 addresses of TARGET_MEM_REFs.
23865
23866 2020-03-23 Martin Liska <mliska@suse.cz>
23867
23868 PR ipa/94250
23869 * symtab.c (symtab_node::clone_references): Save speculative_id
23870 as ref may be overwritten by create_reference.
23871 (symtab_node::clone_referring): Likewise.
23872 (symtab_node::clone_reference): Likewise.
23873
23874 2020-03-22 Iain Sandoe <iain@sandoe.co.uk>
23875
23876 * config/i386/darwin.h (JUMP_TABLES_IN_TEXT_SECTION): Remove
23877 references to Darwin.
23878 * config/i386/i386.h (JUMP_TABLES_IN_TEXT_SECTION): Define this
23879 unconditionally and comment on why.
23880
23881 2020-03-21 Iain Sandoe <iain@sandoe.co.uk>
23882
23883 * config/darwin.c (darwin_mergeable_constant_section): Collect
23884 section anchor checks into the caller.
23885 (machopic_select_section): Collect section anchor checks into
23886 the determination of 'effective zero-size' objects. When the
23887 size is unknown, assume it is non-zero, and thus return the
23888 'generic' section for the DECL.
23889
23890 2020-03-21 Iain Sandoe <iain@sandoe.co.uk>
23891
23892 PR target/93694
23893 * config/darwin.opt: Amend options descriptions.
23894
23895 2020-03-21 Richard Sandiford <richard.sandiford@arm.com>
23896
23897 PR rtl-optimization/94052
23898 * lra-constraints.c (simplify_operand_subreg): Reload the inner
23899 register of a paradoxical subreg if simplify_subreg_regno fails
23900 to give a valid hard register for the outer mode.
23901
23902 2020-03-20 Martin Jambor <mjambor@suse.cz>
23903
23904 PR tree-optimization/93435
23905 * params.opt (sra-max-propagations): New parameter.
23906 * tree-sra.c (propagation_budget): New variable.
23907 (budget_for_propagation_access): New function.
23908 (propagate_subaccesses_from_rhs): Use it.
23909 (propagate_subaccesses_from_lhs): Likewise.
23910 (propagate_all_subaccesses): Set up and destroy propagation_budget.
23911
23912 2020-03-20 Carl Love <cel@us.ibm.com>
23913
23914 PR/target 87583
23915 * config/rs6000/rs6000.c (rs6000_option_override_internal):
23916 Add check for TARGET_FPRND for Power 7 or newer.
23917
23918 2020-03-20 Jan Hubicka <hubicka@ucw.cz>
23919
23920 PR ipa/93347
23921 * cgraph.c (symbol_table::create_edge): Update calls_comdat_local flag.
23922 (cgraph_edge::redirect_callee): Move here; likewise.
23923 (cgraph_node::remove_callees): Update calls_comdat_local flag.
23924 (cgraph_node::verify_node): Verify that calls_comdat_local flag match
23925 reality.
23926 (cgraph_node::check_calls_comdat_local_p): New member function.
23927 * cgraph.h (cgraph_node::check_calls_comdat_local_p): Declare.
23928 (cgraph_edge::redirect_callee): Move offline.
23929 * ipa-fnsummary.c (compute_fn_summary): Do not compute
23930 calls_comdat_local flag here.
23931 * ipa-inline-transform.c (inline_call): Fix updating of
23932 calls_comdat_local flag.
23933 * ipa-split.c (split_function): Use true instead of 1 to set the flag.
23934 * symtab.c (symtab_node::add_to_same_comdat_group): Update
23935 calls_comdat_local flag.
23936
23937 2020-03-20 Richard Biener <rguenther@suse.de>
23938
23939 * tree-vect-slp.c (vect_analyze_slp_instance): Dump SLP tree
23940 from the possibly modified root.
23941
23942 2020-03-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
23943 Andre Vieira <andre.simoesdiasvieira@arm.com>
23944 Mihail Ionescu <mihail.ionescu@arm.com>
23945
23946 * config/arm/arm_mve.h (vst1q_p_u8): Define macro.
23947 (vst1q_p_s8): Likewise.
23948 (vst2q_s8): Likewise.
23949 (vst2q_u8): Likewise.
23950 (vld1q_z_u8): Likewise.
23951 (vld1q_z_s8): Likewise.
23952 (vld2q_s8): Likewise.
23953 (vld2q_u8): Likewise.
23954 (vld4q_s8): Likewise.
23955 (vld4q_u8): Likewise.
23956 (vst1q_p_u16): Likewise.
23957 (vst1q_p_s16): Likewise.
23958 (vst2q_s16): Likewise.
23959 (vst2q_u16): Likewise.
23960 (vld1q_z_u16): Likewise.
23961 (vld1q_z_s16): Likewise.
23962 (vld2q_s16): Likewise.
23963 (vld2q_u16): Likewise.
23964 (vld4q_s16): Likewise.
23965 (vld4q_u16): Likewise.
23966 (vst1q_p_u32): Likewise.
23967 (vst1q_p_s32): Likewise.
23968 (vst2q_s32): Likewise.
23969 (vst2q_u32): Likewise.
23970 (vld1q_z_u32): Likewise.
23971 (vld1q_z_s32): Likewise.
23972 (vld2q_s32): Likewise.
23973 (vld2q_u32): Likewise.
23974 (vld4q_s32): Likewise.
23975 (vld4q_u32): Likewise.
23976 (vld4q_f16): Likewise.
23977 (vld2q_f16): Likewise.
23978 (vld1q_z_f16): Likewise.
23979 (vst2q_f16): Likewise.
23980 (vst1q_p_f16): Likewise.
23981 (vld4q_f32): Likewise.
23982 (vld2q_f32): Likewise.
23983 (vld1q_z_f32): Likewise.
23984 (vst2q_f32): Likewise.
23985 (vst1q_p_f32): Likewise.
23986 (__arm_vst1q_p_u8): Define intrinsic.
23987 (__arm_vst1q_p_s8): Likewise.
23988 (__arm_vst2q_s8): Likewise.
23989 (__arm_vst2q_u8): Likewise.
23990 (__arm_vld1q_z_u8): Likewise.
23991 (__arm_vld1q_z_s8): Likewise.
23992 (__arm_vld2q_s8): Likewise.
23993 (__arm_vld2q_u8): Likewise.
23994 (__arm_vld4q_s8): Likewise.
23995 (__arm_vld4q_u8): Likewise.
23996 (__arm_vst1q_p_u16): Likewise.
23997 (__arm_vst1q_p_s16): Likewise.
23998 (__arm_vst2q_s16): Likewise.
23999 (__arm_vst2q_u16): Likewise.
24000 (__arm_vld1q_z_u16): Likewise.
24001 (__arm_vld1q_z_s16): Likewise.
24002 (__arm_vld2q_s16): Likewise.
24003 (__arm_vld2q_u16): Likewise.
24004 (__arm_vld4q_s16): Likewise.
24005 (__arm_vld4q_u16): Likewise.
24006 (__arm_vst1q_p_u32): Likewise.
24007 (__arm_vst1q_p_s32): Likewise.
24008 (__arm_vst2q_s32): Likewise.
24009 (__arm_vst2q_u32): Likewise.
24010 (__arm_vld1q_z_u32): Likewise.
24011 (__arm_vld1q_z_s32): Likewise.
24012 (__arm_vld2q_s32): Likewise.
24013 (__arm_vld2q_u32): Likewise.
24014 (__arm_vld4q_s32): Likewise.
24015 (__arm_vld4q_u32): Likewise.
24016 (__arm_vld4q_f16): Likewise.
24017 (__arm_vld2q_f16): Likewise.
24018 (__arm_vld1q_z_f16): Likewise.
24019 (__arm_vst2q_f16): Likewise.
24020 (__arm_vst1q_p_f16): Likewise.
24021 (__arm_vld4q_f32): Likewise.
24022 (__arm_vld2q_f32): Likewise.
24023 (__arm_vld1q_z_f32): Likewise.
24024 (__arm_vst2q_f32): Likewise.
24025 (__arm_vst1q_p_f32): Likewise.
24026 (vld1q_z): Define polymorphic variant.
24027 (vld2q): Likewise.
24028 (vld4q): Likewise.
24029 (vst1q_p): Likewise.
24030 (vst2q): Likewise.
24031 * config/arm/arm_mve_builtins.def (STORE1): Use builtin qualifier.
24032 (LOAD1): Likewise.
24033 * config/arm/mve.md (mve_vst2q<mode>): Define RTL pattern.
24034 (mve_vld2q<mode>): Likewise.
24035 (mve_vld4q<mode>): Likewise.
24036
24037 2020-03-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
24038 Andre Vieira <andre.simoesdiasvieira@arm.com>
24039 Mihail Ionescu <mihail.ionescu@arm.com>
24040
24041 * config/arm/arm-builtins.c (ARM_BUILTIN_GET_FPSCR_NZCVQC): Define.
24042 (ARM_BUILTIN_SET_FPSCR_NZCVQC): Likewise.
24043 (arm_init_mve_builtins): Add "__builtin_arm_get_fpscr_nzcvqc" and
24044 "__builtin_arm_set_fpscr_nzcvqc" to arm_builtin_decls array.
24045 (arm_expand_builtin): Define case ARM_BUILTIN_GET_FPSCR_NZCVQC
24046 and ARM_BUILTIN_SET_FPSCR_NZCVQC.
24047 * config/arm/arm_mve.h (vadciq_s32): Define macro.
24048 (vadciq_u32): Likewise.
24049 (vadciq_m_s32): Likewise.
24050 (vadciq_m_u32): Likewise.
24051 (vadcq_s32): Likewise.
24052 (vadcq_u32): Likewise.
24053 (vadcq_m_s32): Likewise.
24054 (vadcq_m_u32): Likewise.
24055 (vsbciq_s32): Likewise.
24056 (vsbciq_u32): Likewise.
24057 (vsbciq_m_s32): Likewise.
24058 (vsbciq_m_u32): Likewise.
24059 (vsbcq_s32): Likewise.
24060 (vsbcq_u32): Likewise.
24061 (vsbcq_m_s32): Likewise.
24062 (vsbcq_m_u32): Likewise.
24063 (__arm_vadciq_s32): Define intrinsic.
24064 (__arm_vadciq_u32): Likewise.
24065 (__arm_vadciq_m_s32): Likewise.
24066 (__arm_vadciq_m_u32): Likewise.
24067 (__arm_vadcq_s32): Likewise.
24068 (__arm_vadcq_u32): Likewise.
24069 (__arm_vadcq_m_s32): Likewise.
24070 (__arm_vadcq_m_u32): Likewise.
24071 (__arm_vsbciq_s32): Likewise.
24072 (__arm_vsbciq_u32): Likewise.
24073 (__arm_vsbciq_m_s32): Likewise.
24074 (__arm_vsbciq_m_u32): Likewise.
24075 (__arm_vsbcq_s32): Likewise.
24076 (__arm_vsbcq_u32): Likewise.
24077 (__arm_vsbcq_m_s32): Likewise.
24078 (__arm_vsbcq_m_u32): Likewise.
24079 (vadciq_m): Define polymorphic variant.
24080 (vadciq): Likewise.
24081 (vadcq_m): Likewise.
24082 (vadcq): Likewise.
24083 (vsbciq_m): Likewise.
24084 (vsbciq): Likewise.
24085 (vsbcq_m): Likewise.
24086 (vsbcq): Likewise.
24087 * config/arm/arm_mve_builtins.def (BINOP_NONE_NONE_NONE): Use builtin
24088 qualifier.
24089 (BINOP_UNONE_UNONE_UNONE): Likewise.
24090 (QUADOP_NONE_NONE_NONE_NONE_UNONE): Likewise.
24091 (QUADOP_UNONE_UNONE_UNONE_UNONE_UNONE): Likewise.
24092 * config/arm/mve.md (VADCIQ): Define iterator.
24093 (VADCIQ_M): Likewise.
24094 (VSBCQ): Likewise.
24095 (VSBCQ_M): Likewise.
24096 (VSBCIQ): Likewise.
24097 (VSBCIQ_M): Likewise.
24098 (VADCQ): Likewise.
24099 (VADCQ_M): Likewise.
24100 (mve_vadciq_m_<supf>v4si): Define RTL pattern.
24101 (mve_vadciq_<supf>v4si): Likewise.
24102 (mve_vadcq_m_<supf>v4si): Likewise.
24103 (mve_vadcq_<supf>v4si): Likewise.
24104 (mve_vsbciq_m_<supf>v4si): Likewise.
24105 (mve_vsbciq_<supf>v4si): Likewise.
24106 (mve_vsbcq_m_<supf>v4si): Likewise.
24107 (mve_vsbcq_<supf>v4si): Likewise.
24108 (get_fpscr_nzcvqc): Define isns.
24109 (set_fpscr_nzcvqc): Define isns.
24110 * config/arm/unspecs.md (UNSPEC_GET_FPSCR_NZCVQC): Define.
24111 (UNSPEC_SET_FPSCR_NZCVQC): Define.
24112
24113 2020-03-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
24114
24115 * config/arm/arm_mve.h (vddupq_x_n_u8): Define macro.
24116 (vddupq_x_n_u16): Likewise.
24117 (vddupq_x_n_u32): Likewise.
24118 (vddupq_x_wb_u8): Likewise.
24119 (vddupq_x_wb_u16): Likewise.
24120 (vddupq_x_wb_u32): Likewise.
24121 (vdwdupq_x_n_u8): Likewise.
24122 (vdwdupq_x_n_u16): Likewise.
24123 (vdwdupq_x_n_u32): Likewise.
24124 (vdwdupq_x_wb_u8): Likewise.
24125 (vdwdupq_x_wb_u16): Likewise.
24126 (vdwdupq_x_wb_u32): Likewise.
24127 (vidupq_x_n_u8): Likewise.
24128 (vidupq_x_n_u16): Likewise.
24129 (vidupq_x_n_u32): Likewise.
24130 (vidupq_x_wb_u8): Likewise.
24131 (vidupq_x_wb_u16): Likewise.
24132 (vidupq_x_wb_u32): Likewise.
24133 (viwdupq_x_n_u8): Likewise.
24134 (viwdupq_x_n_u16): Likewise.
24135 (viwdupq_x_n_u32): Likewise.
24136 (viwdupq_x_wb_u8): Likewise.
24137 (viwdupq_x_wb_u16): Likewise.
24138 (viwdupq_x_wb_u32): Likewise.
24139 (vdupq_x_n_s8): Likewise.
24140 (vdupq_x_n_s16): Likewise.
24141 (vdupq_x_n_s32): Likewise.
24142 (vdupq_x_n_u8): Likewise.
24143 (vdupq_x_n_u16): Likewise.
24144 (vdupq_x_n_u32): Likewise.
24145 (vminq_x_s8): Likewise.
24146 (vminq_x_s16): Likewise.
24147 (vminq_x_s32): Likewise.
24148 (vminq_x_u8): Likewise.
24149 (vminq_x_u16): Likewise.
24150 (vminq_x_u32): Likewise.
24151 (vmaxq_x_s8): Likewise.
24152 (vmaxq_x_s16): Likewise.
24153 (vmaxq_x_s32): Likewise.
24154 (vmaxq_x_u8): Likewise.
24155 (vmaxq_x_u16): Likewise.
24156 (vmaxq_x_u32): Likewise.
24157 (vabdq_x_s8): Likewise.
24158 (vabdq_x_s16): Likewise.
24159 (vabdq_x_s32): Likewise.
24160 (vabdq_x_u8): Likewise.
24161 (vabdq_x_u16): Likewise.
24162 (vabdq_x_u32): Likewise.
24163 (vabsq_x_s8): Likewise.
24164 (vabsq_x_s16): Likewise.
24165 (vabsq_x_s32): Likewise.
24166 (vaddq_x_s8): Likewise.
24167 (vaddq_x_s16): Likewise.
24168 (vaddq_x_s32): Likewise.
24169 (vaddq_x_n_s8): Likewise.
24170 (vaddq_x_n_s16): Likewise.
24171 (vaddq_x_n_s32): Likewise.
24172 (vaddq_x_u8): Likewise.
24173 (vaddq_x_u16): Likewise.
24174 (vaddq_x_u32): Likewise.
24175 (vaddq_x_n_u8): Likewise.
24176 (vaddq_x_n_u16): Likewise.
24177 (vaddq_x_n_u32): Likewise.
24178 (vclsq_x_s8): Likewise.
24179 (vclsq_x_s16): Likewise.
24180 (vclsq_x_s32): Likewise.
24181 (vclzq_x_s8): Likewise.
24182 (vclzq_x_s16): Likewise.
24183 (vclzq_x_s32): Likewise.
24184 (vclzq_x_u8): Likewise.
24185 (vclzq_x_u16): Likewise.
24186 (vclzq_x_u32): Likewise.
24187 (vnegq_x_s8): Likewise.
24188 (vnegq_x_s16): Likewise.
24189 (vnegq_x_s32): Likewise.
24190 (vmulhq_x_s8): Likewise.
24191 (vmulhq_x_s16): Likewise.
24192 (vmulhq_x_s32): Likewise.
24193 (vmulhq_x_u8): Likewise.
24194 (vmulhq_x_u16): Likewise.
24195 (vmulhq_x_u32): Likewise.
24196 (vmullbq_poly_x_p8): Likewise.
24197 (vmullbq_poly_x_p16): Likewise.
24198 (vmullbq_int_x_s8): Likewise.
24199 (vmullbq_int_x_s16): Likewise.
24200 (vmullbq_int_x_s32): Likewise.
24201 (vmullbq_int_x_u8): Likewise.
24202 (vmullbq_int_x_u16): Likewise.
24203 (vmullbq_int_x_u32): Likewise.
24204 (vmulltq_poly_x_p8): Likewise.
24205 (vmulltq_poly_x_p16): Likewise.
24206 (vmulltq_int_x_s8): Likewise.
24207 (vmulltq_int_x_s16): Likewise.
24208 (vmulltq_int_x_s32): Likewise.
24209 (vmulltq_int_x_u8): Likewise.
24210 (vmulltq_int_x_u16): Likewise.
24211 (vmulltq_int_x_u32): Likewise.
24212 (vmulq_x_s8): Likewise.
24213 (vmulq_x_s16): Likewise.
24214 (vmulq_x_s32): Likewise.
24215 (vmulq_x_n_s8): Likewise.
24216 (vmulq_x_n_s16): Likewise.
24217 (vmulq_x_n_s32): Likewise.
24218 (vmulq_x_u8): Likewise.
24219 (vmulq_x_u16): Likewise.
24220 (vmulq_x_u32): Likewise.
24221 (vmulq_x_n_u8): Likewise.
24222 (vmulq_x_n_u16): Likewise.
24223 (vmulq_x_n_u32): Likewise.
24224 (vsubq_x_s8): Likewise.
24225 (vsubq_x_s16): Likewise.
24226 (vsubq_x_s32): Likewise.
24227 (vsubq_x_n_s8): Likewise.
24228 (vsubq_x_n_s16): Likewise.
24229 (vsubq_x_n_s32): Likewise.
24230 (vsubq_x_u8): Likewise.
24231 (vsubq_x_u16): Likewise.
24232 (vsubq_x_u32): Likewise.
24233 (vsubq_x_n_u8): Likewise.
24234 (vsubq_x_n_u16): Likewise.
24235 (vsubq_x_n_u32): Likewise.
24236 (vcaddq_rot90_x_s8): Likewise.
24237 (vcaddq_rot90_x_s16): Likewise.
24238 (vcaddq_rot90_x_s32): Likewise.
24239 (vcaddq_rot90_x_u8): Likewise.
24240 (vcaddq_rot90_x_u16): Likewise.
24241 (vcaddq_rot90_x_u32): Likewise.
24242 (vcaddq_rot270_x_s8): Likewise.
24243 (vcaddq_rot270_x_s16): Likewise.
24244 (vcaddq_rot270_x_s32): Likewise.
24245 (vcaddq_rot270_x_u8): Likewise.
24246 (vcaddq_rot270_x_u16): Likewise.
24247 (vcaddq_rot270_x_u32): Likewise.
24248 (vhaddq_x_n_s8): Likewise.
24249 (vhaddq_x_n_s16): Likewise.
24250 (vhaddq_x_n_s32): Likewise.
24251 (vhaddq_x_n_u8): Likewise.
24252 (vhaddq_x_n_u16): Likewise.
24253 (vhaddq_x_n_u32): Likewise.
24254 (vhaddq_x_s8): Likewise.
24255 (vhaddq_x_s16): Likewise.
24256 (vhaddq_x_s32): Likewise.
24257 (vhaddq_x_u8): Likewise.
24258 (vhaddq_x_u16): Likewise.
24259 (vhaddq_x_u32): Likewise.
24260 (vhcaddq_rot90_x_s8): Likewise.
24261 (vhcaddq_rot90_x_s16): Likewise.
24262 (vhcaddq_rot90_x_s32): Likewise.
24263 (vhcaddq_rot270_x_s8): Likewise.
24264 (vhcaddq_rot270_x_s16): Likewise.
24265 (vhcaddq_rot270_x_s32): Likewise.
24266 (vhsubq_x_n_s8): Likewise.
24267 (vhsubq_x_n_s16): Likewise.
24268 (vhsubq_x_n_s32): Likewise.
24269 (vhsubq_x_n_u8): Likewise.
24270 (vhsubq_x_n_u16): Likewise.
24271 (vhsubq_x_n_u32): Likewise.
24272 (vhsubq_x_s8): Likewise.
24273 (vhsubq_x_s16): Likewise.
24274 (vhsubq_x_s32): Likewise.
24275 (vhsubq_x_u8): Likewise.
24276 (vhsubq_x_u16): Likewise.
24277 (vhsubq_x_u32): Likewise.
24278 (vrhaddq_x_s8): Likewise.
24279 (vrhaddq_x_s16): Likewise.
24280 (vrhaddq_x_s32): Likewise.
24281 (vrhaddq_x_u8): Likewise.
24282 (vrhaddq_x_u16): Likewise.
24283 (vrhaddq_x_u32): Likewise.
24284 (vrmulhq_x_s8): Likewise.
24285 (vrmulhq_x_s16): Likewise.
24286 (vrmulhq_x_s32): Likewise.
24287 (vrmulhq_x_u8): Likewise.
24288 (vrmulhq_x_u16): Likewise.
24289 (vrmulhq_x_u32): Likewise.
24290 (vandq_x_s8): Likewise.
24291 (vandq_x_s16): Likewise.
24292 (vandq_x_s32): Likewise.
24293 (vandq_x_u8): Likewise.
24294 (vandq_x_u16): Likewise.
24295 (vandq_x_u32): Likewise.
24296 (vbicq_x_s8): Likewise.
24297 (vbicq_x_s16): Likewise.
24298 (vbicq_x_s32): Likewise.
24299 (vbicq_x_u8): Likewise.
24300 (vbicq_x_u16): Likewise.
24301 (vbicq_x_u32): Likewise.
24302 (vbrsrq_x_n_s8): Likewise.
24303 (vbrsrq_x_n_s16): Likewise.
24304 (vbrsrq_x_n_s32): Likewise.
24305 (vbrsrq_x_n_u8): Likewise.
24306 (vbrsrq_x_n_u16): Likewise.
24307 (vbrsrq_x_n_u32): Likewise.
24308 (veorq_x_s8): Likewise.
24309 (veorq_x_s16): Likewise.
24310 (veorq_x_s32): Likewise.
24311 (veorq_x_u8): Likewise.
24312 (veorq_x_u16): Likewise.
24313 (veorq_x_u32): Likewise.
24314 (vmovlbq_x_s8): Likewise.
24315 (vmovlbq_x_s16): Likewise.
24316 (vmovlbq_x_u8): Likewise.
24317 (vmovlbq_x_u16): Likewise.
24318 (vmovltq_x_s8): Likewise.
24319 (vmovltq_x_s16): Likewise.
24320 (vmovltq_x_u8): Likewise.
24321 (vmovltq_x_u16): Likewise.
24322 (vmvnq_x_s8): Likewise.
24323 (vmvnq_x_s16): Likewise.
24324 (vmvnq_x_s32): Likewise.
24325 (vmvnq_x_u8): Likewise.
24326 (vmvnq_x_u16): Likewise.
24327 (vmvnq_x_u32): Likewise.
24328 (vmvnq_x_n_s16): Likewise.
24329 (vmvnq_x_n_s32): Likewise.
24330 (vmvnq_x_n_u16): Likewise.
24331 (vmvnq_x_n_u32): Likewise.
24332 (vornq_x_s8): Likewise.
24333 (vornq_x_s16): Likewise.
24334 (vornq_x_s32): Likewise.
24335 (vornq_x_u8): Likewise.
24336 (vornq_x_u16): Likewise.
24337 (vornq_x_u32): Likewise.
24338 (vorrq_x_s8): Likewise.
24339 (vorrq_x_s16): Likewise.
24340 (vorrq_x_s32): Likewise.
24341 (vorrq_x_u8): Likewise.
24342 (vorrq_x_u16): Likewise.
24343 (vorrq_x_u32): Likewise.
24344 (vrev16q_x_s8): Likewise.
24345 (vrev16q_x_u8): Likewise.
24346 (vrev32q_x_s8): Likewise.
24347 (vrev32q_x_s16): Likewise.
24348 (vrev32q_x_u8): Likewise.
24349 (vrev32q_x_u16): Likewise.
24350 (vrev64q_x_s8): Likewise.
24351 (vrev64q_x_s16): Likewise.
24352 (vrev64q_x_s32): Likewise.
24353 (vrev64q_x_u8): Likewise.
24354 (vrev64q_x_u16): Likewise.
24355 (vrev64q_x_u32): Likewise.
24356 (vrshlq_x_s8): Likewise.
24357 (vrshlq_x_s16): Likewise.
24358 (vrshlq_x_s32): Likewise.
24359 (vrshlq_x_u8): Likewise.
24360 (vrshlq_x_u16): Likewise.
24361 (vrshlq_x_u32): Likewise.
24362 (vshllbq_x_n_s8): Likewise.
24363 (vshllbq_x_n_s16): Likewise.
24364 (vshllbq_x_n_u8): Likewise.
24365 (vshllbq_x_n_u16): Likewise.
24366 (vshlltq_x_n_s8): Likewise.
24367 (vshlltq_x_n_s16): Likewise.
24368 (vshlltq_x_n_u8): Likewise.
24369 (vshlltq_x_n_u16): Likewise.
24370 (vshlq_x_s8): Likewise.
24371 (vshlq_x_s16): Likewise.
24372 (vshlq_x_s32): Likewise.
24373 (vshlq_x_u8): Likewise.
24374 (vshlq_x_u16): Likewise.
24375 (vshlq_x_u32): Likewise.
24376 (vshlq_x_n_s8): Likewise.
24377 (vshlq_x_n_s16): Likewise.
24378 (vshlq_x_n_s32): Likewise.
24379 (vshlq_x_n_u8): Likewise.
24380 (vshlq_x_n_u16): Likewise.
24381 (vshlq_x_n_u32): Likewise.
24382 (vrshrq_x_n_s8): Likewise.
24383 (vrshrq_x_n_s16): Likewise.
24384 (vrshrq_x_n_s32): Likewise.
24385 (vrshrq_x_n_u8): Likewise.
24386 (vrshrq_x_n_u16): Likewise.
24387 (vrshrq_x_n_u32): Likewise.
24388 (vshrq_x_n_s8): Likewise.
24389 (vshrq_x_n_s16): Likewise.
24390 (vshrq_x_n_s32): Likewise.
24391 (vshrq_x_n_u8): Likewise.
24392 (vshrq_x_n_u16): Likewise.
24393 (vshrq_x_n_u32): Likewise.
24394 (vdupq_x_n_f16): Likewise.
24395 (vdupq_x_n_f32): Likewise.
24396 (vminnmq_x_f16): Likewise.
24397 (vminnmq_x_f32): Likewise.
24398 (vmaxnmq_x_f16): Likewise.
24399 (vmaxnmq_x_f32): Likewise.
24400 (vabdq_x_f16): Likewise.
24401 (vabdq_x_f32): Likewise.
24402 (vabsq_x_f16): Likewise.
24403 (vabsq_x_f32): Likewise.
24404 (vaddq_x_f16): Likewise.
24405 (vaddq_x_f32): Likewise.
24406 (vaddq_x_n_f16): Likewise.
24407 (vaddq_x_n_f32): Likewise.
24408 (vnegq_x_f16): Likewise.
24409 (vnegq_x_f32): Likewise.
24410 (vmulq_x_f16): Likewise.
24411 (vmulq_x_f32): Likewise.
24412 (vmulq_x_n_f16): Likewise.
24413 (vmulq_x_n_f32): Likewise.
24414 (vsubq_x_f16): Likewise.
24415 (vsubq_x_f32): Likewise.
24416 (vsubq_x_n_f16): Likewise.
24417 (vsubq_x_n_f32): Likewise.
24418 (vcaddq_rot90_x_f16): Likewise.
24419 (vcaddq_rot90_x_f32): Likewise.
24420 (vcaddq_rot270_x_f16): Likewise.
24421 (vcaddq_rot270_x_f32): Likewise.
24422 (vcmulq_x_f16): Likewise.
24423 (vcmulq_x_f32): Likewise.
24424 (vcmulq_rot90_x_f16): Likewise.
24425 (vcmulq_rot90_x_f32): Likewise.
24426 (vcmulq_rot180_x_f16): Likewise.
24427 (vcmulq_rot180_x_f32): Likewise.
24428 (vcmulq_rot270_x_f16): Likewise.
24429 (vcmulq_rot270_x_f32): Likewise.
24430 (vcvtaq_x_s16_f16): Likewise.
24431 (vcvtaq_x_s32_f32): Likewise.
24432 (vcvtaq_x_u16_f16): Likewise.
24433 (vcvtaq_x_u32_f32): Likewise.
24434 (vcvtnq_x_s16_f16): Likewise.
24435 (vcvtnq_x_s32_f32): Likewise.
24436 (vcvtnq_x_u16_f16): Likewise.
24437 (vcvtnq_x_u32_f32): Likewise.
24438 (vcvtpq_x_s16_f16): Likewise.
24439 (vcvtpq_x_s32_f32): Likewise.
24440 (vcvtpq_x_u16_f16): Likewise.
24441 (vcvtpq_x_u32_f32): Likewise.
24442 (vcvtmq_x_s16_f16): Likewise.
24443 (vcvtmq_x_s32_f32): Likewise.
24444 (vcvtmq_x_u16_f16): Likewise.
24445 (vcvtmq_x_u32_f32): Likewise.
24446 (vcvtbq_x_f32_f16): Likewise.
24447 (vcvttq_x_f32_f16): Likewise.
24448 (vcvtq_x_f16_u16): Likewise.
24449 (vcvtq_x_f16_s16): Likewise.
24450 (vcvtq_x_f32_s32): Likewise.
24451 (vcvtq_x_f32_u32): Likewise.
24452 (vcvtq_x_n_f16_s16): Likewise.
24453 (vcvtq_x_n_f16_u16): Likewise.
24454 (vcvtq_x_n_f32_s32): Likewise.
24455 (vcvtq_x_n_f32_u32): Likewise.
24456 (vcvtq_x_s16_f16): Likewise.
24457 (vcvtq_x_s32_f32): Likewise.
24458 (vcvtq_x_u16_f16): Likewise.
24459 (vcvtq_x_u32_f32): Likewise.
24460 (vcvtq_x_n_s16_f16): Likewise.
24461 (vcvtq_x_n_s32_f32): Likewise.
24462 (vcvtq_x_n_u16_f16): Likewise.
24463 (vcvtq_x_n_u32_f32): Likewise.
24464 (vrndq_x_f16): Likewise.
24465 (vrndq_x_f32): Likewise.
24466 (vrndnq_x_f16): Likewise.
24467 (vrndnq_x_f32): Likewise.
24468 (vrndmq_x_f16): Likewise.
24469 (vrndmq_x_f32): Likewise.
24470 (vrndpq_x_f16): Likewise.
24471 (vrndpq_x_f32): Likewise.
24472 (vrndaq_x_f16): Likewise.
24473 (vrndaq_x_f32): Likewise.
24474 (vrndxq_x_f16): Likewise.
24475 (vrndxq_x_f32): Likewise.
24476 (vandq_x_f16): Likewise.
24477 (vandq_x_f32): Likewise.
24478 (vbicq_x_f16): Likewise.
24479 (vbicq_x_f32): Likewise.
24480 (vbrsrq_x_n_f16): Likewise.
24481 (vbrsrq_x_n_f32): Likewise.
24482 (veorq_x_f16): Likewise.
24483 (veorq_x_f32): Likewise.
24484 (vornq_x_f16): Likewise.
24485 (vornq_x_f32): Likewise.
24486 (vorrq_x_f16): Likewise.
24487 (vorrq_x_f32): Likewise.
24488 (vrev32q_x_f16): Likewise.
24489 (vrev64q_x_f16): Likewise.
24490 (vrev64q_x_f32): Likewise.
24491 (__arm_vddupq_x_n_u8): Define intrinsic.
24492 (__arm_vddupq_x_n_u16): Likewise.
24493 (__arm_vddupq_x_n_u32): Likewise.
24494 (__arm_vddupq_x_wb_u8): Likewise.
24495 (__arm_vddupq_x_wb_u16): Likewise.
24496 (__arm_vddupq_x_wb_u32): Likewise.
24497 (__arm_vdwdupq_x_n_u8): Likewise.
24498 (__arm_vdwdupq_x_n_u16): Likewise.
24499 (__arm_vdwdupq_x_n_u32): Likewise.
24500 (__arm_vdwdupq_x_wb_u8): Likewise.
24501 (__arm_vdwdupq_x_wb_u16): Likewise.
24502 (__arm_vdwdupq_x_wb_u32): Likewise.
24503 (__arm_vidupq_x_n_u8): Likewise.
24504 (__arm_vidupq_x_n_u16): Likewise.
24505 (__arm_vidupq_x_n_u32): Likewise.
24506 (__arm_vidupq_x_wb_u8): Likewise.
24507 (__arm_vidupq_x_wb_u16): Likewise.
24508 (__arm_vidupq_x_wb_u32): Likewise.
24509 (__arm_viwdupq_x_n_u8): Likewise.
24510 (__arm_viwdupq_x_n_u16): Likewise.
24511 (__arm_viwdupq_x_n_u32): Likewise.
24512 (__arm_viwdupq_x_wb_u8): Likewise.
24513 (__arm_viwdupq_x_wb_u16): Likewise.
24514 (__arm_viwdupq_x_wb_u32): Likewise.
24515 (__arm_vdupq_x_n_s8): Likewise.
24516 (__arm_vdupq_x_n_s16): Likewise.
24517 (__arm_vdupq_x_n_s32): Likewise.
24518 (__arm_vdupq_x_n_u8): Likewise.
24519 (__arm_vdupq_x_n_u16): Likewise.
24520 (__arm_vdupq_x_n_u32): Likewise.
24521 (__arm_vminq_x_s8): Likewise.
24522 (__arm_vminq_x_s16): Likewise.
24523 (__arm_vminq_x_s32): Likewise.
24524 (__arm_vminq_x_u8): Likewise.
24525 (__arm_vminq_x_u16): Likewise.
24526 (__arm_vminq_x_u32): Likewise.
24527 (__arm_vmaxq_x_s8): Likewise.
24528 (__arm_vmaxq_x_s16): Likewise.
24529 (__arm_vmaxq_x_s32): Likewise.
24530 (__arm_vmaxq_x_u8): Likewise.
24531 (__arm_vmaxq_x_u16): Likewise.
24532 (__arm_vmaxq_x_u32): Likewise.
24533 (__arm_vabdq_x_s8): Likewise.
24534 (__arm_vabdq_x_s16): Likewise.
24535 (__arm_vabdq_x_s32): Likewise.
24536 (__arm_vabdq_x_u8): Likewise.
24537 (__arm_vabdq_x_u16): Likewise.
24538 (__arm_vabdq_x_u32): Likewise.
24539 (__arm_vabsq_x_s8): Likewise.
24540 (__arm_vabsq_x_s16): Likewise.
24541 (__arm_vabsq_x_s32): Likewise.
24542 (__arm_vaddq_x_s8): Likewise.
24543 (__arm_vaddq_x_s16): Likewise.
24544 (__arm_vaddq_x_s32): Likewise.
24545 (__arm_vaddq_x_n_s8): Likewise.
24546 (__arm_vaddq_x_n_s16): Likewise.
24547 (__arm_vaddq_x_n_s32): Likewise.
24548 (__arm_vaddq_x_u8): Likewise.
24549 (__arm_vaddq_x_u16): Likewise.
24550 (__arm_vaddq_x_u32): Likewise.
24551 (__arm_vaddq_x_n_u8): Likewise.
24552 (__arm_vaddq_x_n_u16): Likewise.
24553 (__arm_vaddq_x_n_u32): Likewise.
24554 (__arm_vclsq_x_s8): Likewise.
24555 (__arm_vclsq_x_s16): Likewise.
24556 (__arm_vclsq_x_s32): Likewise.
24557 (__arm_vclzq_x_s8): Likewise.
24558 (__arm_vclzq_x_s16): Likewise.
24559 (__arm_vclzq_x_s32): Likewise.
24560 (__arm_vclzq_x_u8): Likewise.
24561 (__arm_vclzq_x_u16): Likewise.
24562 (__arm_vclzq_x_u32): Likewise.
24563 (__arm_vnegq_x_s8): Likewise.
24564 (__arm_vnegq_x_s16): Likewise.
24565 (__arm_vnegq_x_s32): Likewise.
24566 (__arm_vmulhq_x_s8): Likewise.
24567 (__arm_vmulhq_x_s16): Likewise.
24568 (__arm_vmulhq_x_s32): Likewise.
24569 (__arm_vmulhq_x_u8): Likewise.
24570 (__arm_vmulhq_x_u16): Likewise.
24571 (__arm_vmulhq_x_u32): Likewise.
24572 (__arm_vmullbq_poly_x_p8): Likewise.
24573 (__arm_vmullbq_poly_x_p16): Likewise.
24574 (__arm_vmullbq_int_x_s8): Likewise.
24575 (__arm_vmullbq_int_x_s16): Likewise.
24576 (__arm_vmullbq_int_x_s32): Likewise.
24577 (__arm_vmullbq_int_x_u8): Likewise.
24578 (__arm_vmullbq_int_x_u16): Likewise.
24579 (__arm_vmullbq_int_x_u32): Likewise.
24580 (__arm_vmulltq_poly_x_p8): Likewise.
24581 (__arm_vmulltq_poly_x_p16): Likewise.
24582 (__arm_vmulltq_int_x_s8): Likewise.
24583 (__arm_vmulltq_int_x_s16): Likewise.
24584 (__arm_vmulltq_int_x_s32): Likewise.
24585 (__arm_vmulltq_int_x_u8): Likewise.
24586 (__arm_vmulltq_int_x_u16): Likewise.
24587 (__arm_vmulltq_int_x_u32): Likewise.
24588 (__arm_vmulq_x_s8): Likewise.
24589 (__arm_vmulq_x_s16): Likewise.
24590 (__arm_vmulq_x_s32): Likewise.
24591 (__arm_vmulq_x_n_s8): Likewise.
24592 (__arm_vmulq_x_n_s16): Likewise.
24593 (__arm_vmulq_x_n_s32): Likewise.
24594 (__arm_vmulq_x_u8): Likewise.
24595 (__arm_vmulq_x_u16): Likewise.
24596 (__arm_vmulq_x_u32): Likewise.
24597 (__arm_vmulq_x_n_u8): Likewise.
24598 (__arm_vmulq_x_n_u16): Likewise.
24599 (__arm_vmulq_x_n_u32): Likewise.
24600 (__arm_vsubq_x_s8): Likewise.
24601 (__arm_vsubq_x_s16): Likewise.
24602 (__arm_vsubq_x_s32): Likewise.
24603 (__arm_vsubq_x_n_s8): Likewise.
24604 (__arm_vsubq_x_n_s16): Likewise.
24605 (__arm_vsubq_x_n_s32): Likewise.
24606 (__arm_vsubq_x_u8): Likewise.
24607 (__arm_vsubq_x_u16): Likewise.
24608 (__arm_vsubq_x_u32): Likewise.
24609 (__arm_vsubq_x_n_u8): Likewise.
24610 (__arm_vsubq_x_n_u16): Likewise.
24611 (__arm_vsubq_x_n_u32): Likewise.
24612 (__arm_vcaddq_rot90_x_s8): Likewise.
24613 (__arm_vcaddq_rot90_x_s16): Likewise.
24614 (__arm_vcaddq_rot90_x_s32): Likewise.
24615 (__arm_vcaddq_rot90_x_u8): Likewise.
24616 (__arm_vcaddq_rot90_x_u16): Likewise.
24617 (__arm_vcaddq_rot90_x_u32): Likewise.
24618 (__arm_vcaddq_rot270_x_s8): Likewise.
24619 (__arm_vcaddq_rot270_x_s16): Likewise.
24620 (__arm_vcaddq_rot270_x_s32): Likewise.
24621 (__arm_vcaddq_rot270_x_u8): Likewise.
24622 (__arm_vcaddq_rot270_x_u16): Likewise.
24623 (__arm_vcaddq_rot270_x_u32): Likewise.
24624 (__arm_vhaddq_x_n_s8): Likewise.
24625 (__arm_vhaddq_x_n_s16): Likewise.
24626 (__arm_vhaddq_x_n_s32): Likewise.
24627 (__arm_vhaddq_x_n_u8): Likewise.
24628 (__arm_vhaddq_x_n_u16): Likewise.
24629 (__arm_vhaddq_x_n_u32): Likewise.
24630 (__arm_vhaddq_x_s8): Likewise.
24631 (__arm_vhaddq_x_s16): Likewise.
24632 (__arm_vhaddq_x_s32): Likewise.
24633 (__arm_vhaddq_x_u8): Likewise.
24634 (__arm_vhaddq_x_u16): Likewise.
24635 (__arm_vhaddq_x_u32): Likewise.
24636 (__arm_vhcaddq_rot90_x_s8): Likewise.
24637 (__arm_vhcaddq_rot90_x_s16): Likewise.
24638 (__arm_vhcaddq_rot90_x_s32): Likewise.
24639 (__arm_vhcaddq_rot270_x_s8): Likewise.
24640 (__arm_vhcaddq_rot270_x_s16): Likewise.
24641 (__arm_vhcaddq_rot270_x_s32): Likewise.
24642 (__arm_vhsubq_x_n_s8): Likewise.
24643 (__arm_vhsubq_x_n_s16): Likewise.
24644 (__arm_vhsubq_x_n_s32): Likewise.
24645 (__arm_vhsubq_x_n_u8): Likewise.
24646 (__arm_vhsubq_x_n_u16): Likewise.
24647 (__arm_vhsubq_x_n_u32): Likewise.
24648 (__arm_vhsubq_x_s8): Likewise.
24649 (__arm_vhsubq_x_s16): Likewise.
24650 (__arm_vhsubq_x_s32): Likewise.
24651 (__arm_vhsubq_x_u8): Likewise.
24652 (__arm_vhsubq_x_u16): Likewise.
24653 (__arm_vhsubq_x_u32): Likewise.
24654 (__arm_vrhaddq_x_s8): Likewise.
24655 (__arm_vrhaddq_x_s16): Likewise.
24656 (__arm_vrhaddq_x_s32): Likewise.
24657 (__arm_vrhaddq_x_u8): Likewise.
24658 (__arm_vrhaddq_x_u16): Likewise.
24659 (__arm_vrhaddq_x_u32): Likewise.
24660 (__arm_vrmulhq_x_s8): Likewise.
24661 (__arm_vrmulhq_x_s16): Likewise.
24662 (__arm_vrmulhq_x_s32): Likewise.
24663 (__arm_vrmulhq_x_u8): Likewise.
24664 (__arm_vrmulhq_x_u16): Likewise.
24665 (__arm_vrmulhq_x_u32): Likewise.
24666 (__arm_vandq_x_s8): Likewise.
24667 (__arm_vandq_x_s16): Likewise.
24668 (__arm_vandq_x_s32): Likewise.
24669 (__arm_vandq_x_u8): Likewise.
24670 (__arm_vandq_x_u16): Likewise.
24671 (__arm_vandq_x_u32): Likewise.
24672 (__arm_vbicq_x_s8): Likewise.
24673 (__arm_vbicq_x_s16): Likewise.
24674 (__arm_vbicq_x_s32): Likewise.
24675 (__arm_vbicq_x_u8): Likewise.
24676 (__arm_vbicq_x_u16): Likewise.
24677 (__arm_vbicq_x_u32): Likewise.
24678 (__arm_vbrsrq_x_n_s8): Likewise.
24679 (__arm_vbrsrq_x_n_s16): Likewise.
24680 (__arm_vbrsrq_x_n_s32): Likewise.
24681 (__arm_vbrsrq_x_n_u8): Likewise.
24682 (__arm_vbrsrq_x_n_u16): Likewise.
24683 (__arm_vbrsrq_x_n_u32): Likewise.
24684 (__arm_veorq_x_s8): Likewise.
24685 (__arm_veorq_x_s16): Likewise.
24686 (__arm_veorq_x_s32): Likewise.
24687 (__arm_veorq_x_u8): Likewise.
24688 (__arm_veorq_x_u16): Likewise.
24689 (__arm_veorq_x_u32): Likewise.
24690 (__arm_vmovlbq_x_s8): Likewise.
24691 (__arm_vmovlbq_x_s16): Likewise.
24692 (__arm_vmovlbq_x_u8): Likewise.
24693 (__arm_vmovlbq_x_u16): Likewise.
24694 (__arm_vmovltq_x_s8): Likewise.
24695 (__arm_vmovltq_x_s16): Likewise.
24696 (__arm_vmovltq_x_u8): Likewise.
24697 (__arm_vmovltq_x_u16): Likewise.
24698 (__arm_vmvnq_x_s8): Likewise.
24699 (__arm_vmvnq_x_s16): Likewise.
24700 (__arm_vmvnq_x_s32): Likewise.
24701 (__arm_vmvnq_x_u8): Likewise.
24702 (__arm_vmvnq_x_u16): Likewise.
24703 (__arm_vmvnq_x_u32): Likewise.
24704 (__arm_vmvnq_x_n_s16): Likewise.
24705 (__arm_vmvnq_x_n_s32): Likewise.
24706 (__arm_vmvnq_x_n_u16): Likewise.
24707 (__arm_vmvnq_x_n_u32): Likewise.
24708 (__arm_vornq_x_s8): Likewise.
24709 (__arm_vornq_x_s16): Likewise.
24710 (__arm_vornq_x_s32): Likewise.
24711 (__arm_vornq_x_u8): Likewise.
24712 (__arm_vornq_x_u16): Likewise.
24713 (__arm_vornq_x_u32): Likewise.
24714 (__arm_vorrq_x_s8): Likewise.
24715 (__arm_vorrq_x_s16): Likewise.
24716 (__arm_vorrq_x_s32): Likewise.
24717 (__arm_vorrq_x_u8): Likewise.
24718 (__arm_vorrq_x_u16): Likewise.
24719 (__arm_vorrq_x_u32): Likewise.
24720 (__arm_vrev16q_x_s8): Likewise.
24721 (__arm_vrev16q_x_u8): Likewise.
24722 (__arm_vrev32q_x_s8): Likewise.
24723 (__arm_vrev32q_x_s16): Likewise.
24724 (__arm_vrev32q_x_u8): Likewise.
24725 (__arm_vrev32q_x_u16): Likewise.
24726 (__arm_vrev64q_x_s8): Likewise.
24727 (__arm_vrev64q_x_s16): Likewise.
24728 (__arm_vrev64q_x_s32): Likewise.
24729 (__arm_vrev64q_x_u8): Likewise.
24730 (__arm_vrev64q_x_u16): Likewise.
24731 (__arm_vrev64q_x_u32): Likewise.
24732 (__arm_vrshlq_x_s8): Likewise.
24733 (__arm_vrshlq_x_s16): Likewise.
24734 (__arm_vrshlq_x_s32): Likewise.
24735 (__arm_vrshlq_x_u8): Likewise.
24736 (__arm_vrshlq_x_u16): Likewise.
24737 (__arm_vrshlq_x_u32): Likewise.
24738 (__arm_vshllbq_x_n_s8): Likewise.
24739 (__arm_vshllbq_x_n_s16): Likewise.
24740 (__arm_vshllbq_x_n_u8): Likewise.
24741 (__arm_vshllbq_x_n_u16): Likewise.
24742 (__arm_vshlltq_x_n_s8): Likewise.
24743 (__arm_vshlltq_x_n_s16): Likewise.
24744 (__arm_vshlltq_x_n_u8): Likewise.
24745 (__arm_vshlltq_x_n_u16): Likewise.
24746 (__arm_vshlq_x_s8): Likewise.
24747 (__arm_vshlq_x_s16): Likewise.
24748 (__arm_vshlq_x_s32): Likewise.
24749 (__arm_vshlq_x_u8): Likewise.
24750 (__arm_vshlq_x_u16): Likewise.
24751 (__arm_vshlq_x_u32): Likewise.
24752 (__arm_vshlq_x_n_s8): Likewise.
24753 (__arm_vshlq_x_n_s16): Likewise.
24754 (__arm_vshlq_x_n_s32): Likewise.
24755 (__arm_vshlq_x_n_u8): Likewise.
24756 (__arm_vshlq_x_n_u16): Likewise.
24757 (__arm_vshlq_x_n_u32): Likewise.
24758 (__arm_vrshrq_x_n_s8): Likewise.
24759 (__arm_vrshrq_x_n_s16): Likewise.
24760 (__arm_vrshrq_x_n_s32): Likewise.
24761 (__arm_vrshrq_x_n_u8): Likewise.
24762 (__arm_vrshrq_x_n_u16): Likewise.
24763 (__arm_vrshrq_x_n_u32): Likewise.
24764 (__arm_vshrq_x_n_s8): Likewise.
24765 (__arm_vshrq_x_n_s16): Likewise.
24766 (__arm_vshrq_x_n_s32): Likewise.
24767 (__arm_vshrq_x_n_u8): Likewise.
24768 (__arm_vshrq_x_n_u16): Likewise.
24769 (__arm_vshrq_x_n_u32): Likewise.
24770 (__arm_vdupq_x_n_f16): Likewise.
24771 (__arm_vdupq_x_n_f32): Likewise.
24772 (__arm_vminnmq_x_f16): Likewise.
24773 (__arm_vminnmq_x_f32): Likewise.
24774 (__arm_vmaxnmq_x_f16): Likewise.
24775 (__arm_vmaxnmq_x_f32): Likewise.
24776 (__arm_vabdq_x_f16): Likewise.
24777 (__arm_vabdq_x_f32): Likewise.
24778 (__arm_vabsq_x_f16): Likewise.
24779 (__arm_vabsq_x_f32): Likewise.
24780 (__arm_vaddq_x_f16): Likewise.
24781 (__arm_vaddq_x_f32): Likewise.
24782 (__arm_vaddq_x_n_f16): Likewise.
24783 (__arm_vaddq_x_n_f32): Likewise.
24784 (__arm_vnegq_x_f16): Likewise.
24785 (__arm_vnegq_x_f32): Likewise.
24786 (__arm_vmulq_x_f16): Likewise.
24787 (__arm_vmulq_x_f32): Likewise.
24788 (__arm_vmulq_x_n_f16): Likewise.
24789 (__arm_vmulq_x_n_f32): Likewise.
24790 (__arm_vsubq_x_f16): Likewise.
24791 (__arm_vsubq_x_f32): Likewise.
24792 (__arm_vsubq_x_n_f16): Likewise.
24793 (__arm_vsubq_x_n_f32): Likewise.
24794 (__arm_vcaddq_rot90_x_f16): Likewise.
24795 (__arm_vcaddq_rot90_x_f32): Likewise.
24796 (__arm_vcaddq_rot270_x_f16): Likewise.
24797 (__arm_vcaddq_rot270_x_f32): Likewise.
24798 (__arm_vcmulq_x_f16): Likewise.
24799 (__arm_vcmulq_x_f32): Likewise.
24800 (__arm_vcmulq_rot90_x_f16): Likewise.
24801 (__arm_vcmulq_rot90_x_f32): Likewise.
24802 (__arm_vcmulq_rot180_x_f16): Likewise.
24803 (__arm_vcmulq_rot180_x_f32): Likewise.
24804 (__arm_vcmulq_rot270_x_f16): Likewise.
24805 (__arm_vcmulq_rot270_x_f32): Likewise.
24806 (__arm_vcvtaq_x_s16_f16): Likewise.
24807 (__arm_vcvtaq_x_s32_f32): Likewise.
24808 (__arm_vcvtaq_x_u16_f16): Likewise.
24809 (__arm_vcvtaq_x_u32_f32): Likewise.
24810 (__arm_vcvtnq_x_s16_f16): Likewise.
24811 (__arm_vcvtnq_x_s32_f32): Likewise.
24812 (__arm_vcvtnq_x_u16_f16): Likewise.
24813 (__arm_vcvtnq_x_u32_f32): Likewise.
24814 (__arm_vcvtpq_x_s16_f16): Likewise.
24815 (__arm_vcvtpq_x_s32_f32): Likewise.
24816 (__arm_vcvtpq_x_u16_f16): Likewise.
24817 (__arm_vcvtpq_x_u32_f32): Likewise.
24818 (__arm_vcvtmq_x_s16_f16): Likewise.
24819 (__arm_vcvtmq_x_s32_f32): Likewise.
24820 (__arm_vcvtmq_x_u16_f16): Likewise.
24821 (__arm_vcvtmq_x_u32_f32): Likewise.
24822 (__arm_vcvtbq_x_f32_f16): Likewise.
24823 (__arm_vcvttq_x_f32_f16): Likewise.
24824 (__arm_vcvtq_x_f16_u16): Likewise.
24825 (__arm_vcvtq_x_f16_s16): Likewise.
24826 (__arm_vcvtq_x_f32_s32): Likewise.
24827 (__arm_vcvtq_x_f32_u32): Likewise.
24828 (__arm_vcvtq_x_n_f16_s16): Likewise.
24829 (__arm_vcvtq_x_n_f16_u16): Likewise.
24830 (__arm_vcvtq_x_n_f32_s32): Likewise.
24831 (__arm_vcvtq_x_n_f32_u32): Likewise.
24832 (__arm_vcvtq_x_s16_f16): Likewise.
24833 (__arm_vcvtq_x_s32_f32): Likewise.
24834 (__arm_vcvtq_x_u16_f16): Likewise.
24835 (__arm_vcvtq_x_u32_f32): Likewise.
24836 (__arm_vcvtq_x_n_s16_f16): Likewise.
24837 (__arm_vcvtq_x_n_s32_f32): Likewise.
24838 (__arm_vcvtq_x_n_u16_f16): Likewise.
24839 (__arm_vcvtq_x_n_u32_f32): Likewise.
24840 (__arm_vrndq_x_f16): Likewise.
24841 (__arm_vrndq_x_f32): Likewise.
24842 (__arm_vrndnq_x_f16): Likewise.
24843 (__arm_vrndnq_x_f32): Likewise.
24844 (__arm_vrndmq_x_f16): Likewise.
24845 (__arm_vrndmq_x_f32): Likewise.
24846 (__arm_vrndpq_x_f16): Likewise.
24847 (__arm_vrndpq_x_f32): Likewise.
24848 (__arm_vrndaq_x_f16): Likewise.
24849 (__arm_vrndaq_x_f32): Likewise.
24850 (__arm_vrndxq_x_f16): Likewise.
24851 (__arm_vrndxq_x_f32): Likewise.
24852 (__arm_vandq_x_f16): Likewise.
24853 (__arm_vandq_x_f32): Likewise.
24854 (__arm_vbicq_x_f16): Likewise.
24855 (__arm_vbicq_x_f32): Likewise.
24856 (__arm_vbrsrq_x_n_f16): Likewise.
24857 (__arm_vbrsrq_x_n_f32): Likewise.
24858 (__arm_veorq_x_f16): Likewise.
24859 (__arm_veorq_x_f32): Likewise.
24860 (__arm_vornq_x_f16): Likewise.
24861 (__arm_vornq_x_f32): Likewise.
24862 (__arm_vorrq_x_f16): Likewise.
24863 (__arm_vorrq_x_f32): Likewise.
24864 (__arm_vrev32q_x_f16): Likewise.
24865 (__arm_vrev64q_x_f16): Likewise.
24866 (__arm_vrev64q_x_f32): Likewise.
24867 (vabdq_x): Define polymorphic variant.
24868 (vabsq_x): Likewise.
24869 (vaddq_x): Likewise.
24870 (vandq_x): Likewise.
24871 (vbicq_x): Likewise.
24872 (vbrsrq_x): Likewise.
24873 (vcaddq_rot270_x): Likewise.
24874 (vcaddq_rot90_x): Likewise.
24875 (vcmulq_rot180_x): Likewise.
24876 (vcmulq_rot270_x): Likewise.
24877 (vcmulq_x): Likewise.
24878 (vcvtq_x): Likewise.
24879 (vcvtq_x_n): Likewise.
24880 (vcvtnq_m): Likewise.
24881 (veorq_x): Likewise.
24882 (vmaxnmq_x): Likewise.
24883 (vminnmq_x): Likewise.
24884 (vmulq_x): Likewise.
24885 (vnegq_x): Likewise.
24886 (vornq_x): Likewise.
24887 (vorrq_x): Likewise.
24888 (vrev32q_x): Likewise.
24889 (vrev64q_x): Likewise.
24890 (vrndaq_x): Likewise.
24891 (vrndmq_x): Likewise.
24892 (vrndnq_x): Likewise.
24893 (vrndpq_x): Likewise.
24894 (vrndq_x): Likewise.
24895 (vrndxq_x): Likewise.
24896 (vsubq_x): Likewise.
24897 (vcmulq_rot90_x): Likewise.
24898 (vadciq): Likewise.
24899 (vclsq_x): Likewise.
24900 (vclzq_x): Likewise.
24901 (vhaddq_x): Likewise.
24902 (vhcaddq_rot270_x): Likewise.
24903 (vhcaddq_rot90_x): Likewise.
24904 (vhsubq_x): Likewise.
24905 (vmaxq_x): Likewise.
24906 (vminq_x): Likewise.
24907 (vmovlbq_x): Likewise.
24908 (vmovltq_x): Likewise.
24909 (vmulhq_x): Likewise.
24910 (vmullbq_int_x): Likewise.
24911 (vmullbq_poly_x): Likewise.
24912 (vmulltq_int_x): Likewise.
24913 (vmulltq_poly_x): Likewise.
24914 (vmvnq_x): Likewise.
24915 (vrev16q_x): Likewise.
24916 (vrhaddq_x): Likewise.
24917 (vrmulhq_x): Likewise.
24918 (vrshlq_x): Likewise.
24919 (vrshrq_x): Likewise.
24920 (vshllbq_x): Likewise.
24921 (vshlltq_x): Likewise.
24922 (vshlq_x_n): Likewise.
24923 (vshlq_x): Likewise.
24924 (vdwdupq_x_u8): Likewise.
24925 (vdwdupq_x_u16): Likewise.
24926 (vdwdupq_x_u32): Likewise.
24927 (viwdupq_x_u8): Likewise.
24928 (viwdupq_x_u16): Likewise.
24929 (viwdupq_x_u32): Likewise.
24930 (vidupq_x_u8): Likewise.
24931 (vddupq_x_u8): Likewise.
24932 (vidupq_x_u16): Likewise.
24933 (vddupq_x_u16): Likewise.
24934 (vidupq_x_u32): Likewise.
24935 (vddupq_x_u32): Likewise.
24936 (vshrq_x): Likewise.
24937
24938 2020-03-20 Richard Biener <rguenther@suse.de>
24939
24940 * tree-vect-slp.c (vect_analyze_slp_instance): Push the stmts
24941 to vectorize for CTOR defs.
24942
24943 2020-03-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
24944 Andre Vieira <andre.simoesdiasvieira@arm.com>
24945 Mihail Ionescu <mihail.ionescu@arm.com>
24946
24947 * config/arm/arm-builtins.c (LDRGBWBS_QUALIFIERS): Define builtin
24948 qualifier.
24949 (LDRGBWBU_QUALIFIERS): Likewise.
24950 (LDRGBWBS_Z_QUALIFIERS): Likewise.
24951 (LDRGBWBU_Z_QUALIFIERS): Likewise.
24952 (STRSBWBS_QUALIFIERS): Likewise.
24953 (STRSBWBU_QUALIFIERS): Likewise.
24954 (STRSBWBS_P_QUALIFIERS): Likewise.
24955 (STRSBWBU_P_QUALIFIERS): Likewise.
24956 * config/arm/arm_mve.h (vldrdq_gather_base_wb_s64): Define macro.
24957 (vldrdq_gather_base_wb_u64): Likewise.
24958 (vldrdq_gather_base_wb_z_s64): Likewise.
24959 (vldrdq_gather_base_wb_z_u64): Likewise.
24960 (vldrwq_gather_base_wb_f32): Likewise.
24961 (vldrwq_gather_base_wb_s32): Likewise.
24962 (vldrwq_gather_base_wb_u32): Likewise.
24963 (vldrwq_gather_base_wb_z_f32): Likewise.
24964 (vldrwq_gather_base_wb_z_s32): Likewise.
24965 (vldrwq_gather_base_wb_z_u32): Likewise.
24966 (vstrdq_scatter_base_wb_p_s64): Likewise.
24967 (vstrdq_scatter_base_wb_p_u64): Likewise.
24968 (vstrdq_scatter_base_wb_s64): Likewise.
24969 (vstrdq_scatter_base_wb_u64): Likewise.
24970 (vstrwq_scatter_base_wb_p_s32): Likewise.
24971 (vstrwq_scatter_base_wb_p_f32): Likewise.
24972 (vstrwq_scatter_base_wb_p_u32): Likewise.
24973 (vstrwq_scatter_base_wb_s32): Likewise.
24974 (vstrwq_scatter_base_wb_u32): Likewise.
24975 (vstrwq_scatter_base_wb_f32): Likewise.
24976 (__arm_vldrdq_gather_base_wb_s64): Define intrinsic.
24977 (__arm_vldrdq_gather_base_wb_u64): Likewise.
24978 (__arm_vldrdq_gather_base_wb_z_s64): Likewise.
24979 (__arm_vldrdq_gather_base_wb_z_u64): Likewise.
24980 (__arm_vldrwq_gather_base_wb_s32): Likewise.
24981 (__arm_vldrwq_gather_base_wb_u32): Likewise.
24982 (__arm_vldrwq_gather_base_wb_z_s32): Likewise.
24983 (__arm_vldrwq_gather_base_wb_z_u32): Likewise.
24984 (__arm_vstrdq_scatter_base_wb_s64): Likewise.
24985 (__arm_vstrdq_scatter_base_wb_u64): Likewise.
24986 (__arm_vstrdq_scatter_base_wb_p_s64): Likewise.
24987 (__arm_vstrdq_scatter_base_wb_p_u64): Likewise.
24988 (__arm_vstrwq_scatter_base_wb_p_s32): Likewise.
24989 (__arm_vstrwq_scatter_base_wb_p_u32): Likewise.
24990 (__arm_vstrwq_scatter_base_wb_s32): Likewise.
24991 (__arm_vstrwq_scatter_base_wb_u32): Likewise.
24992 (__arm_vldrwq_gather_base_wb_f32): Likewise.
24993 (__arm_vldrwq_gather_base_wb_z_f32): Likewise.
24994 (__arm_vstrwq_scatter_base_wb_f32): Likewise.
24995 (__arm_vstrwq_scatter_base_wb_p_f32): Likewise.
24996 (vstrwq_scatter_base_wb): Define polymorphic variant.
24997 (vstrwq_scatter_base_wb_p): Likewise.
24998 (vstrdq_scatter_base_wb_p): Likewise.
24999 (vstrdq_scatter_base_wb): Likewise.
25000 * config/arm/arm_mve_builtins.def (LDRGBWBS_QUALIFIERS): Use builtin
25001 qualifier.
25002 * config/arm/mve.md (mve_vstrwq_scatter_base_wb_<supf>v4si): Define RTL
25003 pattern.
25004 (mve_vstrwq_scatter_base_wb_add_<supf>v4si): Likewise.
25005 (mve_vstrwq_scatter_base_wb_<supf>v4si_insn): Likewise.
25006 (mve_vstrwq_scatter_base_wb_p_<supf>v4si): Likewise.
25007 (mve_vstrwq_scatter_base_wb_p_add_<supf>v4si): Likewise.
25008 (mve_vstrwq_scatter_base_wb_p_<supf>v4si_insn): Likewise.
25009 (mve_vstrwq_scatter_base_wb_fv4sf): Likewise.
25010 (mve_vstrwq_scatter_base_wb_add_fv4sf): Likewise.
25011 (mve_vstrwq_scatter_base_wb_fv4sf_insn): Likewise.
25012 (mve_vstrwq_scatter_base_wb_p_fv4sf): Likewise.
25013 (mve_vstrwq_scatter_base_wb_p_add_fv4sf): Likewise.
25014 (mve_vstrwq_scatter_base_wb_p_fv4sf_insn): Likewise.
25015 (mve_vstrdq_scatter_base_wb_<supf>v2di): Likewise.
25016 (mve_vstrdq_scatter_base_wb_add_<supf>v2di): Likewise.
25017 (mve_vstrdq_scatter_base_wb_<supf>v2di_insn): Likewise.
25018 (mve_vstrdq_scatter_base_wb_p_<supf>v2di): Likewise.
25019 (mve_vstrdq_scatter_base_wb_p_add_<supf>v2di): Likewise.
25020 (mve_vstrdq_scatter_base_wb_p_<supf>v2di_insn): Likewise.
25021 (mve_vldrwq_gather_base_wb_<supf>v4si): Likewise.
25022 (mve_vldrwq_gather_base_wb_<supf>v4si_insn): Likewise.
25023 (mve_vldrwq_gather_base_wb_z_<supf>v4si): Likewise.
25024 (mve_vldrwq_gather_base_wb_z_<supf>v4si_insn): Likewise.
25025 (mve_vldrwq_gather_base_wb_fv4sf): Likewise.
25026 (mve_vldrwq_gather_base_wb_fv4sf_insn): Likewise.
25027 (mve_vldrwq_gather_base_wb_z_fv4sf): Likewise.
25028 (mve_vldrwq_gather_base_wb_z_fv4sf_insn): Likewise.
25029 (mve_vldrdq_gather_base_wb_<supf>v2di): Likewise.
25030 (mve_vldrdq_gather_base_wb_<supf>v2di_insn): Likewise.
25031 (mve_vldrdq_gather_base_wb_z_<supf>v2di): Likewise.
25032 (mve_vldrdq_gather_base_wb_z_<supf>v2di_insn): Likewise.
25033
25034 2020-03-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
25035 Andre Vieira <andre.simoesdiasvieira@arm.com>
25036 Mihail Ionescu <mihail.ionescu@arm.com>
25037
25038 * config/arm/arm-builtins.c
25039 (QUINOP_UNONE_UNONE_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Define quinary
25040 builtin qualifier.
25041 * config/arm/arm_mve.h (vddupq_m_n_u8): Define macro.
25042 (vddupq_m_n_u32): Likewise.
25043 (vddupq_m_n_u16): Likewise.
25044 (vddupq_m_wb_u8): Likewise.
25045 (vddupq_m_wb_u16): Likewise.
25046 (vddupq_m_wb_u32): Likewise.
25047 (vddupq_n_u8): Likewise.
25048 (vddupq_n_u32): Likewise.
25049 (vddupq_n_u16): Likewise.
25050 (vddupq_wb_u8): Likewise.
25051 (vddupq_wb_u16): Likewise.
25052 (vddupq_wb_u32): Likewise.
25053 (vdwdupq_m_n_u8): Likewise.
25054 (vdwdupq_m_n_u32): Likewise.
25055 (vdwdupq_m_n_u16): Likewise.
25056 (vdwdupq_m_wb_u8): Likewise.
25057 (vdwdupq_m_wb_u32): Likewise.
25058 (vdwdupq_m_wb_u16): Likewise.
25059 (vdwdupq_n_u8): Likewise.
25060 (vdwdupq_n_u32): Likewise.
25061 (vdwdupq_n_u16): Likewise.
25062 (vdwdupq_wb_u8): Likewise.
25063 (vdwdupq_wb_u32): Likewise.
25064 (vdwdupq_wb_u16): Likewise.
25065 (vidupq_m_n_u8): Likewise.
25066 (vidupq_m_n_u32): Likewise.
25067 (vidupq_m_n_u16): Likewise.
25068 (vidupq_m_wb_u8): Likewise.
25069 (vidupq_m_wb_u16): Likewise.
25070 (vidupq_m_wb_u32): Likewise.
25071 (vidupq_n_u8): Likewise.
25072 (vidupq_n_u32): Likewise.
25073 (vidupq_n_u16): Likewise.
25074 (vidupq_wb_u8): Likewise.
25075 (vidupq_wb_u16): Likewise.
25076 (vidupq_wb_u32): Likewise.
25077 (viwdupq_m_n_u8): Likewise.
25078 (viwdupq_m_n_u32): Likewise.
25079 (viwdupq_m_n_u16): Likewise.
25080 (viwdupq_m_wb_u8): Likewise.
25081 (viwdupq_m_wb_u32): Likewise.
25082 (viwdupq_m_wb_u16): Likewise.
25083 (viwdupq_n_u8): Likewise.
25084 (viwdupq_n_u32): Likewise.
25085 (viwdupq_n_u16): Likewise.
25086 (viwdupq_wb_u8): Likewise.
25087 (viwdupq_wb_u32): Likewise.
25088 (viwdupq_wb_u16): Likewise.
25089 (__arm_vddupq_m_n_u8): Define intrinsic.
25090 (__arm_vddupq_m_n_u32): Likewise.
25091 (__arm_vddupq_m_n_u16): Likewise.
25092 (__arm_vddupq_m_wb_u8): Likewise.
25093 (__arm_vddupq_m_wb_u16): Likewise.
25094 (__arm_vddupq_m_wb_u32): Likewise.
25095 (__arm_vddupq_n_u8): Likewise.
25096 (__arm_vddupq_n_u32): Likewise.
25097 (__arm_vddupq_n_u16): Likewise.
25098 (__arm_vdwdupq_m_n_u8): Likewise.
25099 (__arm_vdwdupq_m_n_u32): Likewise.
25100 (__arm_vdwdupq_m_n_u16): Likewise.
25101 (__arm_vdwdupq_m_wb_u8): Likewise.
25102 (__arm_vdwdupq_m_wb_u32): Likewise.
25103 (__arm_vdwdupq_m_wb_u16): Likewise.
25104 (__arm_vdwdupq_n_u8): Likewise.
25105 (__arm_vdwdupq_n_u32): Likewise.
25106 (__arm_vdwdupq_n_u16): Likewise.
25107 (__arm_vdwdupq_wb_u8): Likewise.
25108 (__arm_vdwdupq_wb_u32): Likewise.
25109 (__arm_vdwdupq_wb_u16): Likewise.
25110 (__arm_vidupq_m_n_u8): Likewise.
25111 (__arm_vidupq_m_n_u32): Likewise.
25112 (__arm_vidupq_m_n_u16): Likewise.
25113 (__arm_vidupq_n_u8): Likewise.
25114 (__arm_vidupq_m_wb_u8): Likewise.
25115 (__arm_vidupq_m_wb_u16): Likewise.
25116 (__arm_vidupq_m_wb_u32): Likewise.
25117 (__arm_vidupq_n_u32): Likewise.
25118 (__arm_vidupq_n_u16): Likewise.
25119 (__arm_vidupq_wb_u8): Likewise.
25120 (__arm_vidupq_wb_u16): Likewise.
25121 (__arm_vidupq_wb_u32): Likewise.
25122 (__arm_vddupq_wb_u8): Likewise.
25123 (__arm_vddupq_wb_u16): Likewise.
25124 (__arm_vddupq_wb_u32): Likewise.
25125 (__arm_viwdupq_m_n_u8): Likewise.
25126 (__arm_viwdupq_m_n_u32): Likewise.
25127 (__arm_viwdupq_m_n_u16): Likewise.
25128 (__arm_viwdupq_m_wb_u8): Likewise.
25129 (__arm_viwdupq_m_wb_u32): Likewise.
25130 (__arm_viwdupq_m_wb_u16): Likewise.
25131 (__arm_viwdupq_n_u8): Likewise.
25132 (__arm_viwdupq_n_u32): Likewise.
25133 (__arm_viwdupq_n_u16): Likewise.
25134 (__arm_viwdupq_wb_u8): Likewise.
25135 (__arm_viwdupq_wb_u32): Likewise.
25136 (__arm_viwdupq_wb_u16): Likewise.
25137 (vidupq_m): Define polymorphic variant.
25138 (vddupq_m): Likewise.
25139 (vidupq_u16): Likewise.
25140 (vidupq_u32): Likewise.
25141 (vidupq_u8): Likewise.
25142 (vddupq_u16): Likewise.
25143 (vddupq_u32): Likewise.
25144 (vddupq_u8): Likewise.
25145 (viwdupq_m): Likewise.
25146 (viwdupq_u16): Likewise.
25147 (viwdupq_u32): Likewise.
25148 (viwdupq_u8): Likewise.
25149 (vdwdupq_m): Likewise.
25150 (vdwdupq_u16): Likewise.
25151 (vdwdupq_u32): Likewise.
25152 (vdwdupq_u8): Likewise.
25153 * config/arm/arm_mve_builtins.def
25154 (QUINOP_UNONE_UNONE_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Use builtin
25155 qualifier.
25156 * config/arm/mve.md (mve_vidupq_n_u<mode>): Define RTL pattern.
25157 (mve_vidupq_u<mode>_insn): Likewise.
25158 (mve_vidupq_m_n_u<mode>): Likewise.
25159 (mve_vidupq_m_wb_u<mode>_insn): Likewise.
25160 (mve_vddupq_n_u<mode>): Likewise.
25161 (mve_vddupq_u<mode>_insn): Likewise.
25162 (mve_vddupq_m_n_u<mode>): Likewise.
25163 (mve_vddupq_m_wb_u<mode>_insn): Likewise.
25164 (mve_vdwdupq_n_u<mode>): Likewise.
25165 (mve_vdwdupq_wb_u<mode>): Likewise.
25166 (mve_vdwdupq_wb_u<mode>_insn): Likewise.
25167 (mve_vdwdupq_m_n_u<mode>): Likewise.
25168 (mve_vdwdupq_m_wb_u<mode>): Likewise.
25169 (mve_vdwdupq_m_wb_u<mode>_insn): Likewise.
25170 (mve_viwdupq_n_u<mode>): Likewise.
25171 (mve_viwdupq_wb_u<mode>): Likewise.
25172 (mve_viwdupq_wb_u<mode>_insn): Likewise.
25173 (mve_viwdupq_m_n_u<mode>): Likewise.
25174 (mve_viwdupq_m_wb_u<mode>): Likewise.
25175 (mve_viwdupq_m_wb_u<mode>_insn): Likewise.
25176
25177 2020-03-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
25178
25179 * config/arm/arm_mve.h (vreinterpretq_s16_s32): Define macro.
25180 (vreinterpretq_s16_s64): Likewise.
25181 (vreinterpretq_s16_s8): Likewise.
25182 (vreinterpretq_s16_u16): Likewise.
25183 (vreinterpretq_s16_u32): Likewise.
25184 (vreinterpretq_s16_u64): Likewise.
25185 (vreinterpretq_s16_u8): Likewise.
25186 (vreinterpretq_s32_s16): Likewise.
25187 (vreinterpretq_s32_s64): Likewise.
25188 (vreinterpretq_s32_s8): Likewise.
25189 (vreinterpretq_s32_u16): Likewise.
25190 (vreinterpretq_s32_u32): Likewise.
25191 (vreinterpretq_s32_u64): Likewise.
25192 (vreinterpretq_s32_u8): Likewise.
25193 (vreinterpretq_s64_s16): Likewise.
25194 (vreinterpretq_s64_s32): Likewise.
25195 (vreinterpretq_s64_s8): Likewise.
25196 (vreinterpretq_s64_u16): Likewise.
25197 (vreinterpretq_s64_u32): Likewise.
25198 (vreinterpretq_s64_u64): Likewise.
25199 (vreinterpretq_s64_u8): Likewise.
25200 (vreinterpretq_s8_s16): Likewise.
25201 (vreinterpretq_s8_s32): Likewise.
25202 (vreinterpretq_s8_s64): Likewise.
25203 (vreinterpretq_s8_u16): Likewise.
25204 (vreinterpretq_s8_u32): Likewise.
25205 (vreinterpretq_s8_u64): Likewise.
25206 (vreinterpretq_s8_u8): Likewise.
25207 (vreinterpretq_u16_s16): Likewise.
25208 (vreinterpretq_u16_s32): Likewise.
25209 (vreinterpretq_u16_s64): Likewise.
25210 (vreinterpretq_u16_s8): Likewise.
25211 (vreinterpretq_u16_u32): Likewise.
25212 (vreinterpretq_u16_u64): Likewise.
25213 (vreinterpretq_u16_u8): Likewise.
25214 (vreinterpretq_u32_s16): Likewise.
25215 (vreinterpretq_u32_s32): Likewise.
25216 (vreinterpretq_u32_s64): Likewise.
25217 (vreinterpretq_u32_s8): Likewise.
25218 (vreinterpretq_u32_u16): Likewise.
25219 (vreinterpretq_u32_u64): Likewise.
25220 (vreinterpretq_u32_u8): Likewise.
25221 (vreinterpretq_u64_s16): Likewise.
25222 (vreinterpretq_u64_s32): Likewise.
25223 (vreinterpretq_u64_s64): Likewise.
25224 (vreinterpretq_u64_s8): Likewise.
25225 (vreinterpretq_u64_u16): Likewise.
25226 (vreinterpretq_u64_u32): Likewise.
25227 (vreinterpretq_u64_u8): Likewise.
25228 (vreinterpretq_u8_s16): Likewise.
25229 (vreinterpretq_u8_s32): Likewise.
25230 (vreinterpretq_u8_s64): Likewise.
25231 (vreinterpretq_u8_s8): Likewise.
25232 (vreinterpretq_u8_u16): Likewise.
25233 (vreinterpretq_u8_u32): Likewise.
25234 (vreinterpretq_u8_u64): Likewise.
25235 (vreinterpretq_s32_f16): Likewise.
25236 (vreinterpretq_s32_f32): Likewise.
25237 (vreinterpretq_u16_f16): Likewise.
25238 (vreinterpretq_u16_f32): Likewise.
25239 (vreinterpretq_u32_f16): Likewise.
25240 (vreinterpretq_u32_f32): Likewise.
25241 (vreinterpretq_u64_f16): Likewise.
25242 (vreinterpretq_u64_f32): Likewise.
25243 (vreinterpretq_u8_f16): Likewise.
25244 (vreinterpretq_u8_f32): Likewise.
25245 (vreinterpretq_f16_f32): Likewise.
25246 (vreinterpretq_f16_s16): Likewise.
25247 (vreinterpretq_f16_s32): Likewise.
25248 (vreinterpretq_f16_s64): Likewise.
25249 (vreinterpretq_f16_s8): Likewise.
25250 (vreinterpretq_f16_u16): Likewise.
25251 (vreinterpretq_f16_u32): Likewise.
25252 (vreinterpretq_f16_u64): Likewise.
25253 (vreinterpretq_f16_u8): Likewise.
25254 (vreinterpretq_f32_f16): Likewise.
25255 (vreinterpretq_f32_s16): Likewise.
25256 (vreinterpretq_f32_s32): Likewise.
25257 (vreinterpretq_f32_s64): Likewise.
25258 (vreinterpretq_f32_s8): Likewise.
25259 (vreinterpretq_f32_u16): Likewise.
25260 (vreinterpretq_f32_u32): Likewise.
25261 (vreinterpretq_f32_u64): Likewise.
25262 (vreinterpretq_f32_u8): Likewise.
25263 (vreinterpretq_s16_f16): Likewise.
25264 (vreinterpretq_s16_f32): Likewise.
25265 (vreinterpretq_s64_f16): Likewise.
25266 (vreinterpretq_s64_f32): Likewise.
25267 (vreinterpretq_s8_f16): Likewise.
25268 (vreinterpretq_s8_f32): Likewise.
25269 (vuninitializedq_u8): Likewise.
25270 (vuninitializedq_u16): Likewise.
25271 (vuninitializedq_u32): Likewise.
25272 (vuninitializedq_u64): Likewise.
25273 (vuninitializedq_s8): Likewise.
25274 (vuninitializedq_s16): Likewise.
25275 (vuninitializedq_s32): Likewise.
25276 (vuninitializedq_s64): Likewise.
25277 (vuninitializedq_f16): Likewise.
25278 (vuninitializedq_f32): Likewise.
25279 (__arm_vuninitializedq_u8): Define intrinsic.
25280 (__arm_vuninitializedq_u16): Likewise.
25281 (__arm_vuninitializedq_u32): Likewise.
25282 (__arm_vuninitializedq_u64): Likewise.
25283 (__arm_vuninitializedq_s8): Likewise.
25284 (__arm_vuninitializedq_s16): Likewise.
25285 (__arm_vuninitializedq_s32): Likewise.
25286 (__arm_vuninitializedq_s64): Likewise.
25287 (__arm_vreinterpretq_s16_s32): Likewise.
25288 (__arm_vreinterpretq_s16_s64): Likewise.
25289 (__arm_vreinterpretq_s16_s8): Likewise.
25290 (__arm_vreinterpretq_s16_u16): Likewise.
25291 (__arm_vreinterpretq_s16_u32): Likewise.
25292 (__arm_vreinterpretq_s16_u64): Likewise.
25293 (__arm_vreinterpretq_s16_u8): Likewise.
25294 (__arm_vreinterpretq_s32_s16): Likewise.
25295 (__arm_vreinterpretq_s32_s64): Likewise.
25296 (__arm_vreinterpretq_s32_s8): Likewise.
25297 (__arm_vreinterpretq_s32_u16): Likewise.
25298 (__arm_vreinterpretq_s32_u32): Likewise.
25299 (__arm_vreinterpretq_s32_u64): Likewise.
25300 (__arm_vreinterpretq_s32_u8): Likewise.
25301 (__arm_vreinterpretq_s64_s16): Likewise.
25302 (__arm_vreinterpretq_s64_s32): Likewise.
25303 (__arm_vreinterpretq_s64_s8): Likewise.
25304 (__arm_vreinterpretq_s64_u16): Likewise.
25305 (__arm_vreinterpretq_s64_u32): Likewise.
25306 (__arm_vreinterpretq_s64_u64): Likewise.
25307 (__arm_vreinterpretq_s64_u8): Likewise.
25308 (__arm_vreinterpretq_s8_s16): Likewise.
25309 (__arm_vreinterpretq_s8_s32): Likewise.
25310 (__arm_vreinterpretq_s8_s64): Likewise.
25311 (__arm_vreinterpretq_s8_u16): Likewise.
25312 (__arm_vreinterpretq_s8_u32): Likewise.
25313 (__arm_vreinterpretq_s8_u64): Likewise.
25314 (__arm_vreinterpretq_s8_u8): Likewise.
25315 (__arm_vreinterpretq_u16_s16): Likewise.
25316 (__arm_vreinterpretq_u16_s32): Likewise.
25317 (__arm_vreinterpretq_u16_s64): Likewise.
25318 (__arm_vreinterpretq_u16_s8): Likewise.
25319 (__arm_vreinterpretq_u16_u32): Likewise.
25320 (__arm_vreinterpretq_u16_u64): Likewise.
25321 (__arm_vreinterpretq_u16_u8): Likewise.
25322 (__arm_vreinterpretq_u32_s16): Likewise.
25323 (__arm_vreinterpretq_u32_s32): Likewise.
25324 (__arm_vreinterpretq_u32_s64): Likewise.
25325 (__arm_vreinterpretq_u32_s8): Likewise.
25326 (__arm_vreinterpretq_u32_u16): Likewise.
25327 (__arm_vreinterpretq_u32_u64): Likewise.
25328 (__arm_vreinterpretq_u32_u8): Likewise.
25329 (__arm_vreinterpretq_u64_s16): Likewise.
25330 (__arm_vreinterpretq_u64_s32): Likewise.
25331 (__arm_vreinterpretq_u64_s64): Likewise.
25332 (__arm_vreinterpretq_u64_s8): Likewise.
25333 (__arm_vreinterpretq_u64_u16): Likewise.
25334 (__arm_vreinterpretq_u64_u32): Likewise.
25335 (__arm_vreinterpretq_u64_u8): Likewise.
25336 (__arm_vreinterpretq_u8_s16): Likewise.
25337 (__arm_vreinterpretq_u8_s32): Likewise.
25338 (__arm_vreinterpretq_u8_s64): Likewise.
25339 (__arm_vreinterpretq_u8_s8): Likewise.
25340 (__arm_vreinterpretq_u8_u16): Likewise.
25341 (__arm_vreinterpretq_u8_u32): Likewise.
25342 (__arm_vreinterpretq_u8_u64): Likewise.
25343 (__arm_vuninitializedq_f16): Likewise.
25344 (__arm_vuninitializedq_f32): Likewise.
25345 (__arm_vreinterpretq_s32_f16): Likewise.
25346 (__arm_vreinterpretq_s32_f32): Likewise.
25347 (__arm_vreinterpretq_s16_f16): Likewise.
25348 (__arm_vreinterpretq_s16_f32): Likewise.
25349 (__arm_vreinterpretq_s64_f16): Likewise.
25350 (__arm_vreinterpretq_s64_f32): Likewise.
25351 (__arm_vreinterpretq_s8_f16): Likewise.
25352 (__arm_vreinterpretq_s8_f32): Likewise.
25353 (__arm_vreinterpretq_u16_f16): Likewise.
25354 (__arm_vreinterpretq_u16_f32): Likewise.
25355 (__arm_vreinterpretq_u32_f16): Likewise.
25356 (__arm_vreinterpretq_u32_f32): Likewise.
25357 (__arm_vreinterpretq_u64_f16): Likewise.
25358 (__arm_vreinterpretq_u64_f32): Likewise.
25359 (__arm_vreinterpretq_u8_f16): Likewise.
25360 (__arm_vreinterpretq_u8_f32): Likewise.
25361 (__arm_vreinterpretq_f16_f32): Likewise.
25362 (__arm_vreinterpretq_f16_s16): Likewise.
25363 (__arm_vreinterpretq_f16_s32): Likewise.
25364 (__arm_vreinterpretq_f16_s64): Likewise.
25365 (__arm_vreinterpretq_f16_s8): Likewise.
25366 (__arm_vreinterpretq_f16_u16): Likewise.
25367 (__arm_vreinterpretq_f16_u32): Likewise.
25368 (__arm_vreinterpretq_f16_u64): Likewise.
25369 (__arm_vreinterpretq_f16_u8): Likewise.
25370 (__arm_vreinterpretq_f32_f16): Likewise.
25371 (__arm_vreinterpretq_f32_s16): Likewise.
25372 (__arm_vreinterpretq_f32_s32): Likewise.
25373 (__arm_vreinterpretq_f32_s64): Likewise.
25374 (__arm_vreinterpretq_f32_s8): Likewise.
25375 (__arm_vreinterpretq_f32_u16): Likewise.
25376 (__arm_vreinterpretq_f32_u32): Likewise.
25377 (__arm_vreinterpretq_f32_u64): Likewise.
25378 (__arm_vreinterpretq_f32_u8): Likewise.
25379 (vuninitializedq): Define polymorphic variant.
25380 (vreinterpretq_f16): Likewise.
25381 (vreinterpretq_f32): Likewise.
25382 (vreinterpretq_s16): Likewise.
25383 (vreinterpretq_s32): Likewise.
25384 (vreinterpretq_s64): Likewise.
25385 (vreinterpretq_s8): Likewise.
25386 (vreinterpretq_u16): Likewise.
25387 (vreinterpretq_u32): Likewise.
25388 (vreinterpretq_u64): Likewise.
25389 (vreinterpretq_u8): Likewise.
25390
25391 2020-03-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
25392 Andre Vieira <andre.simoesdiasvieira@arm.com>
25393 Mihail Ionescu <mihail.ionescu@arm.com>
25394
25395 * config/arm/arm_mve.h (vaddq_s8): Define macro.
25396 (vaddq_s16): Likewise.
25397 (vaddq_s32): Likewise.
25398 (vaddq_u8): Likewise.
25399 (vaddq_u16): Likewise.
25400 (vaddq_u32): Likewise.
25401 (vaddq_f16): Likewise.
25402 (vaddq_f32): Likewise.
25403 (__arm_vaddq_s8): Define intrinsic.
25404 (__arm_vaddq_s16): Likewise.
25405 (__arm_vaddq_s32): Likewise.
25406 (__arm_vaddq_u8): Likewise.
25407 (__arm_vaddq_u16): Likewise.
25408 (__arm_vaddq_u32): Likewise.
25409 (__arm_vaddq_f16): Likewise.
25410 (__arm_vaddq_f32): Likewise.
25411 (vaddq): Define polymorphic variant.
25412 * config/arm/iterators.md (VNIM): Define mode iterator for common types
25413 Neon, IWMMXT and MVE.
25414 (VNINOTM): Likewise.
25415 * config/arm/mve.md (mve_vaddq<mode>): Define RTL pattern.
25416 (mve_vaddq_f<mode>): Define RTL pattern.
25417 * config/arm/neon.md (add<mode>3): Rename to addv4hf3 RTL pattern.
25418 (addv8hf3_neon): Define RTL pattern.
25419 * config/arm/vec-common.md (add<mode>3): Modify standard add RTL pattern
25420 to support MVE.
25421 (addv8hf3): Define standard RTL pattern for MVE and Neon.
25422 (add<mode>3): Modify existing standard add RTL pattern for Neon and IWMMXT.
25423
25424 2020-03-20 Martin Liska <mliska@suse.cz>
25425
25426 PR ipa/94232
25427 * ipa-cp.c (ipa_get_jf_ancestor_result): Use offset in bytes. Previously
25428 build_ref_for_offset function was used and it transforms off to bytes
25429 from bits.
25430
25431 2020-03-20 Richard Biener <rguenther@suse.de>
25432
25433 PR tree-optimization/94266
25434 * gimple-ssa-sprintf.c (get_origin_and_offset): Use the
25435 type of the underlying object to adjust for the containing
25436 field if available.
25437
25438 2020-03-20 Andre Vieira <andre.simoesdiasvieira@arm.com>
25439
25440 * config/arm/unspecs.md (UNSPEC_GET_FPSCR): Rename this to ...
25441 (VUNSPEC_GET_FPSCR): ... this, and move it to vunspec.
25442 * config/arm/vfp.md: (get_fpscr, set_fpscr): Revert to old patterns.
25443
25444 2020-03-20 Andre Vieira <andre.simoesdiasvieira@arm.com>
25445
25446 * config/arm/mve.md (mve_mov<mode>): Fix R->R case.
25447
25448 2020-03-20 Jakub Jelinek <jakub@redhat.com>
25449
25450 PR tree-optimization/94224
25451 * gimple-ssa-store-merging.c
25452 (imm_store_chain_info::coalesce_immediate): Don't consider overlapping
25453 or adjacent INTEGER_CST rhs_code stores as mergeable if they have
25454 different lp_nr.
25455
25456 2020-03-20 Andre Vieira <andre.simoesdiasvieira@arm.com>
25457
25458 * config/arm/arm.md (define_attr "conds"): Fix logic for neon and mve.
25459
25460 2020-03-19 Jan Hubicka <hubicka@ucw.cz>
25461
25462 PR ipa/94202
25463 * cgraph.c (cgraph_node::function_symbol): Fix availability computation.
25464 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
25465
25466 2020-03-19 Jan Hubicka <hubicka@ucw.cz>
25467
25468 PR ipa/92372
25469 * cgraphunit.c (process_function_and_variable_attributes): warn
25470 for flatten attribute on alias.
25471 * ipa-inline.c (ipa_inline): Do not ICE on flatten attribute on alias.
25472
25473 2020-03-19 Martin Liska <mliska@suse.cz>
25474
25475 * lto-section-in.c: Add ext_symtab.
25476 * lto-streamer-out.c (write_symbol_extension_info): New.
25477 (produce_symtab_extension): New.
25478 (produce_asm_for_decls): Stream also produce_symtab_extension.
25479 * lto-streamer.h (enum lto_section_type): New section.
25480
25481 2020-03-19 Jakub Jelinek <jakub@redhat.com>
25482
25483 PR tree-optimization/94211
25484 * tree-ssa-phiopt.c (value_replacement): Use estimate_num_insns_seq
25485 instead of estimate_num_insns for bb_seq (middle_bb). Rename
25486 emtpy_or_with_defined_p variable to empty_or_with_defined_p, adjust
25487 all uses.
25488
25489 2020-03-19 Richard Biener <rguenther@suse.de>
25490
25491 PR ipa/94217
25492 * ipa-cp.c (ipa_get_jf_ancestor_result): Avoid build_fold_addr_expr
25493 and build_ref_for_offset.
25494
25495 2020-03-19 Richard Biener <rguenther@suse.de>
25496
25497 PR middle-end/94216
25498 * fold-const.c (fold_binary_loc): Avoid using
25499 build_fold_addr_expr when we really want an ADDR_EXPR.
25500
25501 2020-03-18 Segher Boessenkool <segher@kernel.crashing.org>
25502
25503 * config/rs6000/constraints.md (wd, wf, wi, ws, ww): New undocumented
25504 aliases for "wa".
25505
25506 2020-03-12 Richard Sandiford <richard.sandiford@arm.com>
25507
25508 PR rtl-optimization/90275
25509 * cse.c (cse_insn): Delete no-op register moves too.
25510
25511 2020-03-18 Martin Sebor <msebor@redhat.com>
25512
25513 PR ipa/92799
25514 * cgraphunit.c (process_function_and_variable_attributes): Also
25515 complain about weakref function definitions and drop all effects
25516 of the attribute.
25517
25518 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
25519 Mihail Ionescu <mihail.ionescu@arm.com>
25520 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
25521
25522 * config/arm/arm_mve.h (vstrdq_scatter_base_p_s64): Define macro.
25523 (vstrdq_scatter_base_p_u64): Likewise.
25524 (vstrdq_scatter_base_s64): Likewise.
25525 (vstrdq_scatter_base_u64): Likewise.
25526 (vstrdq_scatter_offset_p_s64): Likewise.
25527 (vstrdq_scatter_offset_p_u64): Likewise.
25528 (vstrdq_scatter_offset_s64): Likewise.
25529 (vstrdq_scatter_offset_u64): Likewise.
25530 (vstrdq_scatter_shifted_offset_p_s64): Likewise.
25531 (vstrdq_scatter_shifted_offset_p_u64): Likewise.
25532 (vstrdq_scatter_shifted_offset_s64): Likewise.
25533 (vstrdq_scatter_shifted_offset_u64): Likewise.
25534 (vstrhq_scatter_offset_f16): Likewise.
25535 (vstrhq_scatter_offset_p_f16): Likewise.
25536 (vstrhq_scatter_shifted_offset_f16): Likewise.
25537 (vstrhq_scatter_shifted_offset_p_f16): Likewise.
25538 (vstrwq_scatter_base_f32): Likewise.
25539 (vstrwq_scatter_base_p_f32): Likewise.
25540 (vstrwq_scatter_offset_f32): Likewise.
25541 (vstrwq_scatter_offset_p_f32): Likewise.
25542 (vstrwq_scatter_offset_p_s32): Likewise.
25543 (vstrwq_scatter_offset_p_u32): Likewise.
25544 (vstrwq_scatter_offset_s32): Likewise.
25545 (vstrwq_scatter_offset_u32): Likewise.
25546 (vstrwq_scatter_shifted_offset_f32): Likewise.
25547 (vstrwq_scatter_shifted_offset_p_f32): Likewise.
25548 (vstrwq_scatter_shifted_offset_p_s32): Likewise.
25549 (vstrwq_scatter_shifted_offset_p_u32): Likewise.
25550 (vstrwq_scatter_shifted_offset_s32): Likewise.
25551 (vstrwq_scatter_shifted_offset_u32): Likewise.
25552 (__arm_vstrdq_scatter_base_p_s64): Define intrinsic.
25553 (__arm_vstrdq_scatter_base_p_u64): Likewise.
25554 (__arm_vstrdq_scatter_base_s64): Likewise.
25555 (__arm_vstrdq_scatter_base_u64): Likewise.
25556 (__arm_vstrdq_scatter_offset_p_s64): Likewise.
25557 (__arm_vstrdq_scatter_offset_p_u64): Likewise.
25558 (__arm_vstrdq_scatter_offset_s64): Likewise.
25559 (__arm_vstrdq_scatter_offset_u64): Likewise.
25560 (__arm_vstrdq_scatter_shifted_offset_p_s64): Likewise.
25561 (__arm_vstrdq_scatter_shifted_offset_p_u64): Likewise.
25562 (__arm_vstrdq_scatter_shifted_offset_s64): Likewise.
25563 (__arm_vstrdq_scatter_shifted_offset_u64): Likewise.
25564 (__arm_vstrwq_scatter_offset_p_s32): Likewise.
25565 (__arm_vstrwq_scatter_offset_p_u32): Likewise.
25566 (__arm_vstrwq_scatter_offset_s32): Likewise.
25567 (__arm_vstrwq_scatter_offset_u32): Likewise.
25568 (__arm_vstrwq_scatter_shifted_offset_p_s32): Likewise.
25569 (__arm_vstrwq_scatter_shifted_offset_p_u32): Likewise.
25570 (__arm_vstrwq_scatter_shifted_offset_s32): Likewise.
25571 (__arm_vstrwq_scatter_shifted_offset_u32): Likewise.
25572 (__arm_vstrhq_scatter_offset_f16): Likewise.
25573 (__arm_vstrhq_scatter_offset_p_f16): Likewise.
25574 (__arm_vstrhq_scatter_shifted_offset_f16): Likewise.
25575 (__arm_vstrhq_scatter_shifted_offset_p_f16): Likewise.
25576 (__arm_vstrwq_scatter_base_f32): Likewise.
25577 (__arm_vstrwq_scatter_base_p_f32): Likewise.
25578 (__arm_vstrwq_scatter_offset_f32): Likewise.
25579 (__arm_vstrwq_scatter_offset_p_f32): Likewise.
25580 (__arm_vstrwq_scatter_shifted_offset_f32): Likewise.
25581 (__arm_vstrwq_scatter_shifted_offset_p_f32): Likewise.
25582 (vstrhq_scatter_offset): Define polymorphic variant.
25583 (vstrhq_scatter_offset_p): Likewise.
25584 (vstrhq_scatter_shifted_offset): Likewise.
25585 (vstrhq_scatter_shifted_offset_p): Likewise.
25586 (vstrwq_scatter_base): Likewise.
25587 (vstrwq_scatter_base_p): Likewise.
25588 (vstrwq_scatter_offset): Likewise.
25589 (vstrwq_scatter_offset_p): Likewise.
25590 (vstrwq_scatter_shifted_offset): Likewise.
25591 (vstrwq_scatter_shifted_offset_p): Likewise.
25592 (vstrdq_scatter_base_p): Likewise.
25593 (vstrdq_scatter_base): Likewise.
25594 (vstrdq_scatter_offset_p): Likewise.
25595 (vstrdq_scatter_offset): Likewise.
25596 (vstrdq_scatter_shifted_offset_p): Likewise.
25597 (vstrdq_scatter_shifted_offset): Likewise.
25598 * config/arm/arm_mve_builtins.def (STRSBS): Use builtin qualifier.
25599 (STRSBS_P): Likewise.
25600 (STRSBU): Likewise.
25601 (STRSBU_P): Likewise.
25602 (STRSS): Likewise.
25603 (STRSS_P): Likewise.
25604 (STRSU): Likewise.
25605 (STRSU_P): Likewise.
25606 * config/arm/constraints.md (Ri): Define.
25607 * config/arm/mve.md (VSTRDSBQ): Define iterator.
25608 (VSTRDSOQ): Likewise.
25609 (VSTRDSSOQ): Likewise.
25610 (VSTRWSOQ): Likewise.
25611 (VSTRWSSOQ): Likewise.
25612 (mve_vstrdq_scatter_base_p_<supf>v2di): Define RTL pattern.
25613 (mve_vstrdq_scatter_base_<supf>v2di): Likewise.
25614 (mve_vstrdq_scatter_offset_p_<supf>v2di): Likewise.
25615 (mve_vstrdq_scatter_offset_<supf>v2di): Likewise.
25616 (mve_vstrdq_scatter_shifted_offset_p_<supf>v2di): Likewise.
25617 (mve_vstrdq_scatter_shifted_offset_<supf>v2di): Likewise.
25618 (mve_vstrhq_scatter_offset_fv8hf): Likewise.
25619 (mve_vstrhq_scatter_offset_p_fv8hf): Likewise.
25620 (mve_vstrhq_scatter_shifted_offset_fv8hf): Likewise.
25621 (mve_vstrhq_scatter_shifted_offset_p_fv8hf): Likewise.
25622 (mve_vstrwq_scatter_base_fv4sf): Likewise.
25623 (mve_vstrwq_scatter_base_p_fv4sf): Likewise.
25624 (mve_vstrwq_scatter_offset_fv4sf): Likewise.
25625 (mve_vstrwq_scatter_offset_p_fv4sf): Likewise.
25626 (mve_vstrwq_scatter_offset_p_<supf>v4si): Likewise.
25627 (mve_vstrwq_scatter_offset_<supf>v4si): Likewise.
25628 (mve_vstrwq_scatter_shifted_offset_fv4sf): Likewise.
25629 (mve_vstrwq_scatter_shifted_offset_p_fv4sf): Likewise.
25630 (mve_vstrwq_scatter_shifted_offset_p_<supf>v4si): Likewise.
25631 (mve_vstrwq_scatter_shifted_offset_<supf>v4si): Likewise.
25632 * config/arm/predicates.md (Ri): Define predicate to check immediate
25633 is the range +/-1016 and multiple of 8.
25634
25635 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
25636 Mihail Ionescu <mihail.ionescu@arm.com>
25637 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
25638
25639 * config/arm/arm_mve.h (vst1q_f32): Define macro.
25640 (vst1q_f16): Likewise.
25641 (vst1q_s8): Likewise.
25642 (vst1q_s32): Likewise.
25643 (vst1q_s16): Likewise.
25644 (vst1q_u8): Likewise.
25645 (vst1q_u32): Likewise.
25646 (vst1q_u16): Likewise.
25647 (vstrhq_f16): Likewise.
25648 (vstrhq_scatter_offset_s32): Likewise.
25649 (vstrhq_scatter_offset_s16): Likewise.
25650 (vstrhq_scatter_offset_u32): Likewise.
25651 (vstrhq_scatter_offset_u16): Likewise.
25652 (vstrhq_scatter_offset_p_s32): Likewise.
25653 (vstrhq_scatter_offset_p_s16): Likewise.
25654 (vstrhq_scatter_offset_p_u32): Likewise.
25655 (vstrhq_scatter_offset_p_u16): Likewise.
25656 (vstrhq_scatter_shifted_offset_s32): Likewise.
25657 (vstrhq_scatter_shifted_offset_s16): Likewise.
25658 (vstrhq_scatter_shifted_offset_u32): Likewise.
25659 (vstrhq_scatter_shifted_offset_u16): Likewise.
25660 (vstrhq_scatter_shifted_offset_p_s32): Likewise.
25661 (vstrhq_scatter_shifted_offset_p_s16): Likewise.
25662 (vstrhq_scatter_shifted_offset_p_u32): Likewise.
25663 (vstrhq_scatter_shifted_offset_p_u16): Likewise.
25664 (vstrhq_s32): Likewise.
25665 (vstrhq_s16): Likewise.
25666 (vstrhq_u32): Likewise.
25667 (vstrhq_u16): Likewise.
25668 (vstrhq_p_f16): Likewise.
25669 (vstrhq_p_s32): Likewise.
25670 (vstrhq_p_s16): Likewise.
25671 (vstrhq_p_u32): Likewise.
25672 (vstrhq_p_u16): Likewise.
25673 (vstrwq_f32): Likewise.
25674 (vstrwq_s32): Likewise.
25675 (vstrwq_u32): Likewise.
25676 (vstrwq_p_f32): Likewise.
25677 (vstrwq_p_s32): Likewise.
25678 (vstrwq_p_u32): Likewise.
25679 (__arm_vst1q_s8): Define intrinsic.
25680 (__arm_vst1q_s32): Likewise.
25681 (__arm_vst1q_s16): Likewise.
25682 (__arm_vst1q_u8): Likewise.
25683 (__arm_vst1q_u32): Likewise.
25684 (__arm_vst1q_u16): Likewise.
25685 (__arm_vstrhq_scatter_offset_s32): Likewise.
25686 (__arm_vstrhq_scatter_offset_s16): Likewise.
25687 (__arm_vstrhq_scatter_offset_u32): Likewise.
25688 (__arm_vstrhq_scatter_offset_u16): Likewise.
25689 (__arm_vstrhq_scatter_offset_p_s32): Likewise.
25690 (__arm_vstrhq_scatter_offset_p_s16): Likewise.
25691 (__arm_vstrhq_scatter_offset_p_u32): Likewise.
25692 (__arm_vstrhq_scatter_offset_p_u16): Likewise.
25693 (__arm_vstrhq_scatter_shifted_offset_s32): Likewise.
25694 (__arm_vstrhq_scatter_shifted_offset_s16): Likewise.
25695 (__arm_vstrhq_scatter_shifted_offset_u32): Likewise.
25696 (__arm_vstrhq_scatter_shifted_offset_u16): Likewise.
25697 (__arm_vstrhq_scatter_shifted_offset_p_s32): Likewise.
25698 (__arm_vstrhq_scatter_shifted_offset_p_s16): Likewise.
25699 (__arm_vstrhq_scatter_shifted_offset_p_u32): Likewise.
25700 (__arm_vstrhq_scatter_shifted_offset_p_u16): Likewise.
25701 (__arm_vstrhq_s32): Likewise.
25702 (__arm_vstrhq_s16): Likewise.
25703 (__arm_vstrhq_u32): Likewise.
25704 (__arm_vstrhq_u16): Likewise.
25705 (__arm_vstrhq_p_s32): Likewise.
25706 (__arm_vstrhq_p_s16): Likewise.
25707 (__arm_vstrhq_p_u32): Likewise.
25708 (__arm_vstrhq_p_u16): Likewise.
25709 (__arm_vstrwq_s32): Likewise.
25710 (__arm_vstrwq_u32): Likewise.
25711 (__arm_vstrwq_p_s32): Likewise.
25712 (__arm_vstrwq_p_u32): Likewise.
25713 (__arm_vstrwq_p_f32): Likewise.
25714 (__arm_vstrwq_f32): Likewise.
25715 (__arm_vst1q_f32): Likewise.
25716 (__arm_vst1q_f16): Likewise.
25717 (__arm_vstrhq_f16): Likewise.
25718 (__arm_vstrhq_p_f16): Likewise.
25719 (vst1q): Define polymorphic variant.
25720 (vstrhq): Likewise.
25721 (vstrhq_p): Likewise.
25722 (vstrhq_scatter_offset_p): Likewise.
25723 (vstrhq_scatter_offset): Likewise.
25724 (vstrhq_scatter_shifted_offset_p): Likewise.
25725 (vstrhq_scatter_shifted_offset): Likewise.
25726 (vstrwq_p): Likewise.
25727 (vstrwq): Likewise.
25728 * config/arm/arm_mve_builtins.def (STRS): Use builtin qualifier.
25729 (STRS_P): Likewise.
25730 (STRSS): Likewise.
25731 (STRSS_P): Likewise.
25732 (STRSU): Likewise.
25733 (STRSU_P): Likewise.
25734 (STRU): Likewise.
25735 (STRU_P): Likewise.
25736 * config/arm/mve.md (VST1Q): Define iterator.
25737 (VSTRHSOQ): Likewise.
25738 (VSTRHSSOQ): Likewise.
25739 (VSTRHQ): Likewise.
25740 (VSTRWQ): Likewise.
25741 (mve_vstrhq_fv8hf): Define RTL pattern.
25742 (mve_vstrhq_p_fv8hf): Likewise.
25743 (mve_vstrhq_p_<supf><mode>): Likewise.
25744 (mve_vstrhq_scatter_offset_p_<supf><mode>): Likewise.
25745 (mve_vstrhq_scatter_offset_<supf><mode>): Likewise.
25746 (mve_vstrhq_scatter_shifted_offset_p_<supf><mode>): Likewise.
25747 (mve_vstrhq_scatter_shifted_offset_<supf><mode>): Likewise.
25748 (mve_vstrhq_<supf><mode>): Likewise.
25749 (mve_vstrwq_fv4sf): Likewise.
25750 (mve_vstrwq_p_fv4sf): Likewise.
25751 (mve_vstrwq_p_<supf>v4si): Likewise.
25752 (mve_vstrwq_<supf>v4si): Likewise.
25753 (mve_vst1q_f<mode>): Define expand.
25754 (mve_vst1q_<supf><mode>): Likewise.
25755
25756 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
25757 Mihail Ionescu <mihail.ionescu@arm.com>
25758 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
25759
25760 * config/arm/arm_mve.h (vld1q_s8): Define macro.
25761 (vld1q_s32): Likewise.
25762 (vld1q_s16): Likewise.
25763 (vld1q_u8): Likewise.
25764 (vld1q_u32): Likewise.
25765 (vld1q_u16): Likewise.
25766 (vldrhq_gather_offset_s32): Likewise.
25767 (vldrhq_gather_offset_s16): Likewise.
25768 (vldrhq_gather_offset_u32): Likewise.
25769 (vldrhq_gather_offset_u16): Likewise.
25770 (vldrhq_gather_offset_z_s32): Likewise.
25771 (vldrhq_gather_offset_z_s16): Likewise.
25772 (vldrhq_gather_offset_z_u32): Likewise.
25773 (vldrhq_gather_offset_z_u16): Likewise.
25774 (vldrhq_gather_shifted_offset_s32): Likewise.
25775 (vldrhq_gather_shifted_offset_s16): Likewise.
25776 (vldrhq_gather_shifted_offset_u32): Likewise.
25777 (vldrhq_gather_shifted_offset_u16): Likewise.
25778 (vldrhq_gather_shifted_offset_z_s32): Likewise.
25779 (vldrhq_gather_shifted_offset_z_s16): Likewise.
25780 (vldrhq_gather_shifted_offset_z_u32): Likewise.
25781 (vldrhq_gather_shifted_offset_z_u16): Likewise.
25782 (vldrhq_s32): Likewise.
25783 (vldrhq_s16): Likewise.
25784 (vldrhq_u32): Likewise.
25785 (vldrhq_u16): Likewise.
25786 (vldrhq_z_s32): Likewise.
25787 (vldrhq_z_s16): Likewise.
25788 (vldrhq_z_u32): Likewise.
25789 (vldrhq_z_u16): Likewise.
25790 (vldrwq_s32): Likewise.
25791 (vldrwq_u32): Likewise.
25792 (vldrwq_z_s32): Likewise.
25793 (vldrwq_z_u32): Likewise.
25794 (vld1q_f32): Likewise.
25795 (vld1q_f16): Likewise.
25796 (vldrhq_f16): Likewise.
25797 (vldrhq_z_f16): Likewise.
25798 (vldrwq_f32): Likewise.
25799 (vldrwq_z_f32): Likewise.
25800 (__arm_vld1q_s8): Define intrinsic.
25801 (__arm_vld1q_s32): Likewise.
25802 (__arm_vld1q_s16): Likewise.
25803 (__arm_vld1q_u8): Likewise.
25804 (__arm_vld1q_u32): Likewise.
25805 (__arm_vld1q_u16): Likewise.
25806 (__arm_vldrhq_gather_offset_s32): Likewise.
25807 (__arm_vldrhq_gather_offset_s16): Likewise.
25808 (__arm_vldrhq_gather_offset_u32): Likewise.
25809 (__arm_vldrhq_gather_offset_u16): Likewise.
25810 (__arm_vldrhq_gather_offset_z_s32): Likewise.
25811 (__arm_vldrhq_gather_offset_z_s16): Likewise.
25812 (__arm_vldrhq_gather_offset_z_u32): Likewise.
25813 (__arm_vldrhq_gather_offset_z_u16): Likewise.
25814 (__arm_vldrhq_gather_shifted_offset_s32): Likewise.
25815 (__arm_vldrhq_gather_shifted_offset_s16): Likewise.
25816 (__arm_vldrhq_gather_shifted_offset_u32): Likewise.
25817 (__arm_vldrhq_gather_shifted_offset_u16): Likewise.
25818 (__arm_vldrhq_gather_shifted_offset_z_s32): Likewise.
25819 (__arm_vldrhq_gather_shifted_offset_z_s16): Likewise.
25820 (__arm_vldrhq_gather_shifted_offset_z_u32): Likewise.
25821 (__arm_vldrhq_gather_shifted_offset_z_u16): Likewise.
25822 (__arm_vldrhq_s32): Likewise.
25823 (__arm_vldrhq_s16): Likewise.
25824 (__arm_vldrhq_u32): Likewise.
25825 (__arm_vldrhq_u16): Likewise.
25826 (__arm_vldrhq_z_s32): Likewise.
25827 (__arm_vldrhq_z_s16): Likewise.
25828 (__arm_vldrhq_z_u32): Likewise.
25829 (__arm_vldrhq_z_u16): Likewise.
25830 (__arm_vldrwq_s32): Likewise.
25831 (__arm_vldrwq_u32): Likewise.
25832 (__arm_vldrwq_z_s32): Likewise.
25833 (__arm_vldrwq_z_u32): Likewise.
25834 (__arm_vld1q_f32): Likewise.
25835 (__arm_vld1q_f16): Likewise.
25836 (__arm_vldrwq_f32): Likewise.
25837 (__arm_vldrwq_z_f32): Likewise.
25838 (__arm_vldrhq_z_f16): Likewise.
25839 (__arm_vldrhq_f16): Likewise.
25840 (vld1q): Define polymorphic variant.
25841 (vldrhq_gather_offset): Likewise.
25842 (vldrhq_gather_offset_z): Likewise.
25843 (vldrhq_gather_shifted_offset): Likewise.
25844 (vldrhq_gather_shifted_offset_z): Likewise.
25845 * config/arm/arm_mve_builtins.def (LDRU): Use builtin qualifier.
25846 (LDRS): Likewise.
25847 (LDRU_Z): Likewise.
25848 (LDRS_Z): Likewise.
25849 (LDRGU_Z): Likewise.
25850 (LDRGU): Likewise.
25851 (LDRGS_Z): Likewise.
25852 (LDRGS): Likewise.
25853 * config/arm/mve.md (MVE_H_ELEM): Define mode iterator.
25854 (V_sz_elem1): Likewise.
25855 (VLD1Q): Define iterator.
25856 (VLDRHGOQ): Likewise.
25857 (VLDRHGSOQ): Likewise.
25858 (VLDRHQ): Likewise.
25859 (VLDRWQ): Likewise.
25860 (mve_vldrhq_fv8hf): Define RTL pattern.
25861 (mve_vldrhq_gather_offset_<supf><mode>): Likewise.
25862 (mve_vldrhq_gather_offset_z_<supf><mode>): Likewise.
25863 (mve_vldrhq_gather_shifted_offset_<supf><mode>): Likewise.
25864 (mve_vldrhq_gather_shifted_offset_z_<supf><mode>): Likewise.
25865 (mve_vldrhq_<supf><mode>): Likewise.
25866 (mve_vldrhq_z_fv8hf): Likewise.
25867 (mve_vldrhq_z_<supf><mode>): Likewise.
25868 (mve_vldrwq_fv4sf): Likewise.
25869 (mve_vldrwq_<supf>v4si): Likewise.
25870 (mve_vldrwq_z_fv4sf): Likewise.
25871 (mve_vldrwq_z_<supf>v4si): Likewise.
25872 (mve_vld1q_f<mode>): Define RTL expand pattern.
25873 (mve_vld1q_<supf><mode>): Likewise.
25874
25875 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
25876 Mihail Ionescu <mihail.ionescu@arm.com>
25877 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
25878
25879 * config/arm/arm_mve.h (vld1q_s8): Define macro.
25880 (vld1q_s32): Likewise.
25881 (vld1q_s16): Likewise.
25882 (vld1q_u8): Likewise.
25883 (vld1q_u32): Likewise.
25884 (vld1q_u16): Likewise.
25885 (vldrhq_gather_offset_s32): Likewise.
25886 (vldrhq_gather_offset_s16): Likewise.
25887 (vldrhq_gather_offset_u32): Likewise.
25888 (vldrhq_gather_offset_u16): Likewise.
25889 (vldrhq_gather_offset_z_s32): Likewise.
25890 (vldrhq_gather_offset_z_s16): Likewise.
25891 (vldrhq_gather_offset_z_u32): Likewise.
25892 (vldrhq_gather_offset_z_u16): Likewise.
25893 (vldrhq_gather_shifted_offset_s32): Likewise.
25894 (vldrhq_gather_shifted_offset_s16): Likewise.
25895 (vldrhq_gather_shifted_offset_u32): Likewise.
25896 (vldrhq_gather_shifted_offset_u16): Likewise.
25897 (vldrhq_gather_shifted_offset_z_s32): Likewise.
25898 (vldrhq_gather_shifted_offset_z_s16): Likewise.
25899 (vldrhq_gather_shifted_offset_z_u32): Likewise.
25900 (vldrhq_gather_shifted_offset_z_u16): Likewise.
25901 (vldrhq_s32): Likewise.
25902 (vldrhq_s16): Likewise.
25903 (vldrhq_u32): Likewise.
25904 (vldrhq_u16): Likewise.
25905 (vldrhq_z_s32): Likewise.
25906 (vldrhq_z_s16): Likewise.
25907 (vldrhq_z_u32): Likewise.
25908 (vldrhq_z_u16): Likewise.
25909 (vldrwq_s32): Likewise.
25910 (vldrwq_u32): Likewise.
25911 (vldrwq_z_s32): Likewise.
25912 (vldrwq_z_u32): Likewise.
25913 (vld1q_f32): Likewise.
25914 (vld1q_f16): Likewise.
25915 (vldrhq_f16): Likewise.
25916 (vldrhq_z_f16): Likewise.
25917 (vldrwq_f32): Likewise.
25918 (vldrwq_z_f32): Likewise.
25919 (__arm_vld1q_s8): Define intrinsic.
25920 (__arm_vld1q_s32): Likewise.
25921 (__arm_vld1q_s16): Likewise.
25922 (__arm_vld1q_u8): Likewise.
25923 (__arm_vld1q_u32): Likewise.
25924 (__arm_vld1q_u16): Likewise.
25925 (__arm_vldrhq_gather_offset_s32): Likewise.
25926 (__arm_vldrhq_gather_offset_s16): Likewise.
25927 (__arm_vldrhq_gather_offset_u32): Likewise.
25928 (__arm_vldrhq_gather_offset_u16): Likewise.
25929 (__arm_vldrhq_gather_offset_z_s32): Likewise.
25930 (__arm_vldrhq_gather_offset_z_s16): Likewise.
25931 (__arm_vldrhq_gather_offset_z_u32): Likewise.
25932 (__arm_vldrhq_gather_offset_z_u16): Likewise.
25933 (__arm_vldrhq_gather_shifted_offset_s32): Likewise.
25934 (__arm_vldrhq_gather_shifted_offset_s16): Likewise.
25935 (__arm_vldrhq_gather_shifted_offset_u32): Likewise.
25936 (__arm_vldrhq_gather_shifted_offset_u16): Likewise.
25937 (__arm_vldrhq_gather_shifted_offset_z_s32): Likewise.
25938 (__arm_vldrhq_gather_shifted_offset_z_s16): Likewise.
25939 (__arm_vldrhq_gather_shifted_offset_z_u32): Likewise.
25940 (__arm_vldrhq_gather_shifted_offset_z_u16): Likewise.
25941 (__arm_vldrhq_s32): Likewise.
25942 (__arm_vldrhq_s16): Likewise.
25943 (__arm_vldrhq_u32): Likewise.
25944 (__arm_vldrhq_u16): Likewise.
25945 (__arm_vldrhq_z_s32): Likewise.
25946 (__arm_vldrhq_z_s16): Likewise.
25947 (__arm_vldrhq_z_u32): Likewise.
25948 (__arm_vldrhq_z_u16): Likewise.
25949 (__arm_vldrwq_s32): Likewise.
25950 (__arm_vldrwq_u32): Likewise.
25951 (__arm_vldrwq_z_s32): Likewise.
25952 (__arm_vldrwq_z_u32): Likewise.
25953 (__arm_vld1q_f32): Likewise.
25954 (__arm_vld1q_f16): Likewise.
25955 (__arm_vldrwq_f32): Likewise.
25956 (__arm_vldrwq_z_f32): Likewise.
25957 (__arm_vldrhq_z_f16): Likewise.
25958 (__arm_vldrhq_f16): Likewise.
25959 (vld1q): Define polymorphic variant.
25960 (vldrhq_gather_offset): Likewise.
25961 (vldrhq_gather_offset_z): Likewise.
25962 (vldrhq_gather_shifted_offset): Likewise.
25963 (vldrhq_gather_shifted_offset_z): Likewise.
25964 * config/arm/arm_mve_builtins.def (LDRU): Use builtin qualifier.
25965 (LDRS): Likewise.
25966 (LDRU_Z): Likewise.
25967 (LDRS_Z): Likewise.
25968 (LDRGU_Z): Likewise.
25969 (LDRGU): Likewise.
25970 (LDRGS_Z): Likewise.
25971 (LDRGS): Likewise.
25972 * config/arm/mve.md (MVE_H_ELEM): Define mode iterator.
25973 (V_sz_elem1): Likewise.
25974 (VLD1Q): Define iterator.
25975 (VLDRHGOQ): Likewise.
25976 (VLDRHGSOQ): Likewise.
25977 (VLDRHQ): Likewise.
25978 (VLDRWQ): Likewise.
25979 (mve_vldrhq_fv8hf): Define RTL pattern.
25980 (mve_vldrhq_gather_offset_<supf><mode>): Likewise.
25981 (mve_vldrhq_gather_offset_z_<supf><mode>): Likewise.
25982 (mve_vldrhq_gather_shifted_offset_<supf><mode>): Likewise.
25983 (mve_vldrhq_gather_shifted_offset_z_<supf><mode>): Likewise.
25984 (mve_vldrhq_<supf><mode>): Likewise.
25985 (mve_vldrhq_z_fv8hf): Likewise.
25986 (mve_vldrhq_z_<supf><mode>): Likewise.
25987 (mve_vldrwq_fv4sf): Likewise.
25988 (mve_vldrwq_<supf>v4si): Likewise.
25989 (mve_vldrwq_z_fv4sf): Likewise.
25990 (mve_vldrwq_z_<supf>v4si): Likewise.
25991 (mve_vld1q_f<mode>): Define RTL expand pattern.
25992 (mve_vld1q_<supf><mode>): Likewise.
25993
25994 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
25995 Mihail Ionescu <mihail.ionescu@arm.com>
25996 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
25997
25998 * config/arm/arm-builtins.c (LDRGBS_Z_QUALIFIERS): Define builtin
25999 qualifier.
26000 (LDRGBU_Z_QUALIFIERS): Likewise.
26001 (LDRGS_Z_QUALIFIERS): Likewise.
26002 (LDRGU_Z_QUALIFIERS): Likewise.
26003 (LDRS_Z_QUALIFIERS): Likewise.
26004 (LDRU_Z_QUALIFIERS): Likewise.
26005 * config/arm/arm_mve.h (vldrbq_gather_offset_z_s16): Define macro.
26006 (vldrbq_gather_offset_z_u8): Likewise.
26007 (vldrbq_gather_offset_z_s32): Likewise.
26008 (vldrbq_gather_offset_z_u16): Likewise.
26009 (vldrbq_gather_offset_z_u32): Likewise.
26010 (vldrbq_gather_offset_z_s8): Likewise.
26011 (vldrbq_z_s16): Likewise.
26012 (vldrbq_z_u8): Likewise.
26013 (vldrbq_z_s8): Likewise.
26014 (vldrbq_z_s32): Likewise.
26015 (vldrbq_z_u16): Likewise.
26016 (vldrbq_z_u32): Likewise.
26017 (vldrwq_gather_base_z_u32): Likewise.
26018 (vldrwq_gather_base_z_s32): Likewise.
26019 (__arm_vldrbq_gather_offset_z_s8): Define intrinsic.
26020 (__arm_vldrbq_gather_offset_z_s32): Likewise.
26021 (__arm_vldrbq_gather_offset_z_s16): Likewise.
26022 (__arm_vldrbq_gather_offset_z_u8): Likewise.
26023 (__arm_vldrbq_gather_offset_z_u32): Likewise.
26024 (__arm_vldrbq_gather_offset_z_u16): Likewise.
26025 (__arm_vldrbq_z_s8): Likewise.
26026 (__arm_vldrbq_z_s32): Likewise.
26027 (__arm_vldrbq_z_s16): Likewise.
26028 (__arm_vldrbq_z_u8): Likewise.
26029 (__arm_vldrbq_z_u32): Likewise.
26030 (__arm_vldrbq_z_u16): Likewise.
26031 (__arm_vldrwq_gather_base_z_s32): Likewise.
26032 (__arm_vldrwq_gather_base_z_u32): Likewise.
26033 (vldrbq_gather_offset_z): Define polymorphic variant.
26034 * config/arm/arm_mve_builtins.def (LDRGBS_Z_QUALIFIERS): Use builtin
26035 qualifier.
26036 (LDRGBU_Z_QUALIFIERS): Likewise.
26037 (LDRGS_Z_QUALIFIERS): Likewise.
26038 (LDRGU_Z_QUALIFIERS): Likewise.
26039 (LDRS_Z_QUALIFIERS): Likewise.
26040 (LDRU_Z_QUALIFIERS): Likewise.
26041 * config/arm/mve.md (mve_vldrbq_gather_offset_z_<supf><mode>): Define
26042 RTL pattern.
26043 (mve_vldrbq_z_<supf><mode>): Likewise.
26044 (mve_vldrwq_gather_base_z_<supf>v4si): Likewise.
26045
26046 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
26047 Mihail Ionescu <mihail.ionescu@arm.com>
26048 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
26049
26050 * config/arm/arm-builtins.c (STRS_P_QUALIFIERS): Define builtin
26051 qualifier.
26052 (STRU_P_QUALIFIERS): Likewise.
26053 (STRSU_P_QUALIFIERS): Likewise.
26054 (STRSS_P_QUALIFIERS): Likewise.
26055 (STRSBS_P_QUALIFIERS): Likewise.
26056 (STRSBU_P_QUALIFIERS): Likewise.
26057 * config/arm/arm_mve.h (vstrbq_p_s8): Define macro.
26058 (vstrbq_p_s32): Likewise.
26059 (vstrbq_p_s16): Likewise.
26060 (vstrbq_p_u8): Likewise.
26061 (vstrbq_p_u32): Likewise.
26062 (vstrbq_p_u16): Likewise.
26063 (vstrbq_scatter_offset_p_s8): Likewise.
26064 (vstrbq_scatter_offset_p_s32): Likewise.
26065 (vstrbq_scatter_offset_p_s16): Likewise.
26066 (vstrbq_scatter_offset_p_u8): Likewise.
26067 (vstrbq_scatter_offset_p_u32): Likewise.
26068 (vstrbq_scatter_offset_p_u16): Likewise.
26069 (vstrwq_scatter_base_p_s32): Likewise.
26070 (vstrwq_scatter_base_p_u32): Likewise.
26071 (__arm_vstrbq_p_s8): Define intrinsic.
26072 (__arm_vstrbq_p_s32): Likewise.
26073 (__arm_vstrbq_p_s16): Likewise.
26074 (__arm_vstrbq_p_u8): Likewise.
26075 (__arm_vstrbq_p_u32): Likewise.
26076 (__arm_vstrbq_p_u16): Likewise.
26077 (__arm_vstrbq_scatter_offset_p_s8): Likewise.
26078 (__arm_vstrbq_scatter_offset_p_s32): Likewise.
26079 (__arm_vstrbq_scatter_offset_p_s16): Likewise.
26080 (__arm_vstrbq_scatter_offset_p_u8): Likewise.
26081 (__arm_vstrbq_scatter_offset_p_u32): Likewise.
26082 (__arm_vstrbq_scatter_offset_p_u16): Likewise.
26083 (__arm_vstrwq_scatter_base_p_s32): Likewise.
26084 (__arm_vstrwq_scatter_base_p_u32): Likewise.
26085 (vstrbq_p): Define polymorphic variant.
26086 (vstrbq_scatter_offset_p): Likewise.
26087 (vstrwq_scatter_base_p): Likewise.
26088 * config/arm/arm_mve_builtins.def (STRS_P_QUALIFIERS): Use builtin
26089 qualifier.
26090 (STRU_P_QUALIFIERS): Likewise.
26091 (STRSU_P_QUALIFIERS): Likewise.
26092 (STRSS_P_QUALIFIERS): Likewise.
26093 (STRSBS_P_QUALIFIERS): Likewise.
26094 (STRSBU_P_QUALIFIERS): Likewise.
26095 * config/arm/mve.md (mve_vstrbq_scatter_offset_p_<supf><mode>): Define
26096 RTL pattern.
26097 (mve_vstrwq_scatter_base_p_<supf>v4si): Likewise.
26098 (mve_vstrbq_p_<supf><mode>): Likewise.
26099
26100 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
26101 Mihail Ionescu <mihail.ionescu@arm.com>
26102 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
26103
26104 * config/arm/arm-builtins.c (LDRGU_QUALIFIERS): Define builtin
26105 qualifier.
26106 (LDRGS_QUALIFIERS): Likewise.
26107 (LDRS_QUALIFIERS): Likewise.
26108 (LDRU_QUALIFIERS): Likewise.
26109 (LDRGBS_QUALIFIERS): Likewise.
26110 (LDRGBU_QUALIFIERS): Likewise.
26111 * config/arm/arm_mve.h (vldrbq_gather_offset_u8): Define macro.
26112 (vldrbq_gather_offset_s8): Likewise.
26113 (vldrbq_s8): Likewise.
26114 (vldrbq_u8): Likewise.
26115 (vldrbq_gather_offset_u16): Likewise.
26116 (vldrbq_gather_offset_s16): Likewise.
26117 (vldrbq_s16): Likewise.
26118 (vldrbq_u16): Likewise.
26119 (vldrbq_gather_offset_u32): Likewise.
26120 (vldrbq_gather_offset_s32): Likewise.
26121 (vldrbq_s32): Likewise.
26122 (vldrbq_u32): Likewise.
26123 (vldrwq_gather_base_s32): Likewise.
26124 (vldrwq_gather_base_u32): Likewise.
26125 (__arm_vldrbq_gather_offset_u8): Define intrinsic.
26126 (__arm_vldrbq_gather_offset_s8): Likewise.
26127 (__arm_vldrbq_s8): Likewise.
26128 (__arm_vldrbq_u8): Likewise.
26129 (__arm_vldrbq_gather_offset_u16): Likewise.
26130 (__arm_vldrbq_gather_offset_s16): Likewise.
26131 (__arm_vldrbq_s16): Likewise.
26132 (__arm_vldrbq_u16): Likewise.
26133 (__arm_vldrbq_gather_offset_u32): Likewise.
26134 (__arm_vldrbq_gather_offset_s32): Likewise.
26135 (__arm_vldrbq_s32): Likewise.
26136 (__arm_vldrbq_u32): Likewise.
26137 (__arm_vldrwq_gather_base_s32): Likewise.
26138 (__arm_vldrwq_gather_base_u32): Likewise.
26139 (vldrbq_gather_offset): Define polymorphic variant.
26140 * config/arm/arm_mve_builtins.def (LDRGU_QUALIFIERS): Use builtin
26141 qualifier.
26142 (LDRGS_QUALIFIERS): Likewise.
26143 (LDRS_QUALIFIERS): Likewise.
26144 (LDRU_QUALIFIERS): Likewise.
26145 (LDRGBS_QUALIFIERS): Likewise.
26146 (LDRGBU_QUALIFIERS): Likewise.
26147 * config/arm/mve.md (VLDRBGOQ): Define iterator.
26148 (VLDRBQ): Likewise.
26149 (VLDRWGBQ): Likewise.
26150 (mve_vldrbq_gather_offset_<supf><mode>): Define RTL pattern.
26151 (mve_vldrbq_<supf><mode>): Likewise.
26152 (mve_vldrwq_gather_base_<supf>v4si): Likewise.
26153
26154 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
26155 Mihail Ionescu <mihail.ionescu@arm.com>
26156 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
26157
26158 * config/arm/arm-builtins.c (STRS_QUALIFIERS): Define builtin qualifier.
26159 (STRU_QUALIFIERS): Likewise.
26160 (STRSS_QUALIFIERS): Likewise.
26161 (STRSU_QUALIFIERS): Likewise.
26162 (STRSBS_QUALIFIERS): Likewise.
26163 (STRSBU_QUALIFIERS): Likewise.
26164 * config/arm/arm_mve.h (vstrbq_s8): Define macro.
26165 (vstrbq_u8): Likewise.
26166 (vstrbq_u16): Likewise.
26167 (vstrbq_scatter_offset_s8): Likewise.
26168 (vstrbq_scatter_offset_u8): Likewise.
26169 (vstrbq_scatter_offset_u16): Likewise.
26170 (vstrbq_s16): Likewise.
26171 (vstrbq_u32): Likewise.
26172 (vstrbq_scatter_offset_s16): Likewise.
26173 (vstrbq_scatter_offset_u32): Likewise.
26174 (vstrbq_s32): Likewise.
26175 (vstrbq_scatter_offset_s32): Likewise.
26176 (vstrwq_scatter_base_s32): Likewise.
26177 (vstrwq_scatter_base_u32): Likewise.
26178 (__arm_vstrbq_scatter_offset_s8): Define intrinsic.
26179 (__arm_vstrbq_scatter_offset_s32): Likewise.
26180 (__arm_vstrbq_scatter_offset_s16): Likewise.
26181 (__arm_vstrbq_scatter_offset_u8): Likewise.
26182 (__arm_vstrbq_scatter_offset_u32): Likewise.
26183 (__arm_vstrbq_scatter_offset_u16): Likewise.
26184 (__arm_vstrbq_s8): Likewise.
26185 (__arm_vstrbq_s32): Likewise.
26186 (__arm_vstrbq_s16): Likewise.
26187 (__arm_vstrbq_u8): Likewise.
26188 (__arm_vstrbq_u32): Likewise.
26189 (__arm_vstrbq_u16): Likewise.
26190 (__arm_vstrwq_scatter_base_s32): Likewise.
26191 (__arm_vstrwq_scatter_base_u32): Likewise.
26192 (vstrbq): Define polymorphic variant.
26193 (vstrbq_scatter_offset): Likewise.
26194 (vstrwq_scatter_base): Likewise.
26195 * config/arm/arm_mve_builtins.def (STRS_QUALIFIERS): Use builtin
26196 qualifier.
26197 (STRU_QUALIFIERS): Likewise.
26198 (STRSS_QUALIFIERS): Likewise.
26199 (STRSU_QUALIFIERS): Likewise.
26200 (STRSBS_QUALIFIERS): Likewise.
26201 (STRSBU_QUALIFIERS): Likewise.
26202 * config/arm/mve.md (MVE_B_ELEM): Define mode attribute iterator.
26203 (VSTRWSBQ): Define iterators.
26204 (VSTRBSOQ): Likewise.
26205 (VSTRBQ): Likewise.
26206 (mve_vstrbq_<supf><mode>): Define RTL pattern.
26207 (mve_vstrbq_scatter_offset_<supf><mode>): Likewise.
26208 (mve_vstrwq_scatter_base_<supf>v4si): Likewise.
26209
26210 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
26211 Mihail Ionescu <mihail.ionescu@arm.com>
26212 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
26213
26214 * config/arm/arm_mve.h (vabdq_m_f32): Define macro.
26215 (vabdq_m_f16): Likewise.
26216 (vaddq_m_f32): Likewise.
26217 (vaddq_m_f16): Likewise.
26218 (vaddq_m_n_f32): Likewise.
26219 (vaddq_m_n_f16): Likewise.
26220 (vandq_m_f32): Likewise.
26221 (vandq_m_f16): Likewise.
26222 (vbicq_m_f32): Likewise.
26223 (vbicq_m_f16): Likewise.
26224 (vbrsrq_m_n_f32): Likewise.
26225 (vbrsrq_m_n_f16): Likewise.
26226 (vcaddq_rot270_m_f32): Likewise.
26227 (vcaddq_rot270_m_f16): Likewise.
26228 (vcaddq_rot90_m_f32): Likewise.
26229 (vcaddq_rot90_m_f16): Likewise.
26230 (vcmlaq_m_f32): Likewise.
26231 (vcmlaq_m_f16): Likewise.
26232 (vcmlaq_rot180_m_f32): Likewise.
26233 (vcmlaq_rot180_m_f16): Likewise.
26234 (vcmlaq_rot270_m_f32): Likewise.
26235 (vcmlaq_rot270_m_f16): Likewise.
26236 (vcmlaq_rot90_m_f32): Likewise.
26237 (vcmlaq_rot90_m_f16): Likewise.
26238 (vcmulq_m_f32): Likewise.
26239 (vcmulq_m_f16): Likewise.
26240 (vcmulq_rot180_m_f32): Likewise.
26241 (vcmulq_rot180_m_f16): Likewise.
26242 (vcmulq_rot270_m_f32): Likewise.
26243 (vcmulq_rot270_m_f16): Likewise.
26244 (vcmulq_rot90_m_f32): Likewise.
26245 (vcmulq_rot90_m_f16): Likewise.
26246 (vcvtq_m_n_s32_f32): Likewise.
26247 (vcvtq_m_n_s16_f16): Likewise.
26248 (vcvtq_m_n_u32_f32): Likewise.
26249 (vcvtq_m_n_u16_f16): Likewise.
26250 (veorq_m_f32): Likewise.
26251 (veorq_m_f16): Likewise.
26252 (vfmaq_m_f32): Likewise.
26253 (vfmaq_m_f16): Likewise.
26254 (vfmaq_m_n_f32): Likewise.
26255 (vfmaq_m_n_f16): Likewise.
26256 (vfmasq_m_n_f32): Likewise.
26257 (vfmasq_m_n_f16): Likewise.
26258 (vfmsq_m_f32): Likewise.
26259 (vfmsq_m_f16): Likewise.
26260 (vmaxnmq_m_f32): Likewise.
26261 (vmaxnmq_m_f16): Likewise.
26262 (vminnmq_m_f32): Likewise.
26263 (vminnmq_m_f16): Likewise.
26264 (vmulq_m_f32): Likewise.
26265 (vmulq_m_f16): Likewise.
26266 (vmulq_m_n_f32): Likewise.
26267 (vmulq_m_n_f16): Likewise.
26268 (vornq_m_f32): Likewise.
26269 (vornq_m_f16): Likewise.
26270 (vorrq_m_f32): Likewise.
26271 (vorrq_m_f16): Likewise.
26272 (vsubq_m_f32): Likewise.
26273 (vsubq_m_f16): Likewise.
26274 (vsubq_m_n_f32): Likewise.
26275 (vsubq_m_n_f16): Likewise.
26276 (__attribute__): Likewise.
26277 (__arm_vabdq_m_f32): Likewise.
26278 (__arm_vabdq_m_f16): Likewise.
26279 (__arm_vaddq_m_f32): Likewise.
26280 (__arm_vaddq_m_f16): Likewise.
26281 (__arm_vaddq_m_n_f32): Likewise.
26282 (__arm_vaddq_m_n_f16): Likewise.
26283 (__arm_vandq_m_f32): Likewise.
26284 (__arm_vandq_m_f16): Likewise.
26285 (__arm_vbicq_m_f32): Likewise.
26286 (__arm_vbicq_m_f16): Likewise.
26287 (__arm_vbrsrq_m_n_f32): Likewise.
26288 (__arm_vbrsrq_m_n_f16): Likewise.
26289 (__arm_vcaddq_rot270_m_f32): Likewise.
26290 (__arm_vcaddq_rot270_m_f16): Likewise.
26291 (__arm_vcaddq_rot90_m_f32): Likewise.
26292 (__arm_vcaddq_rot90_m_f16): Likewise.
26293 (__arm_vcmlaq_m_f32): Likewise.
26294 (__arm_vcmlaq_m_f16): Likewise.
26295 (__arm_vcmlaq_rot180_m_f32): Likewise.
26296 (__arm_vcmlaq_rot180_m_f16): Likewise.
26297 (__arm_vcmlaq_rot270_m_f32): Likewise.
26298 (__arm_vcmlaq_rot270_m_f16): Likewise.
26299 (__arm_vcmlaq_rot90_m_f32): Likewise.
26300 (__arm_vcmlaq_rot90_m_f16): Likewise.
26301 (__arm_vcmulq_m_f32): Likewise.
26302 (__arm_vcmulq_m_f16): Likewise.
26303 (__arm_vcmulq_rot180_m_f32): Define intrinsic.
26304 (__arm_vcmulq_rot180_m_f16): Likewise.
26305 (__arm_vcmulq_rot270_m_f32): Likewise.
26306 (__arm_vcmulq_rot270_m_f16): Likewise.
26307 (__arm_vcmulq_rot90_m_f32): Likewise.
26308 (__arm_vcmulq_rot90_m_f16): Likewise.
26309 (__arm_vcvtq_m_n_s32_f32): Likewise.
26310 (__arm_vcvtq_m_n_s16_f16): Likewise.
26311 (__arm_vcvtq_m_n_u32_f32): Likewise.
26312 (__arm_vcvtq_m_n_u16_f16): Likewise.
26313 (__arm_veorq_m_f32): Likewise.
26314 (__arm_veorq_m_f16): Likewise.
26315 (__arm_vfmaq_m_f32): Likewise.
26316 (__arm_vfmaq_m_f16): Likewise.
26317 (__arm_vfmaq_m_n_f32): Likewise.
26318 (__arm_vfmaq_m_n_f16): Likewise.
26319 (__arm_vfmasq_m_n_f32): Likewise.
26320 (__arm_vfmasq_m_n_f16): Likewise.
26321 (__arm_vfmsq_m_f32): Likewise.
26322 (__arm_vfmsq_m_f16): Likewise.
26323 (__arm_vmaxnmq_m_f32): Likewise.
26324 (__arm_vmaxnmq_m_f16): Likewise.
26325 (__arm_vminnmq_m_f32): Likewise.
26326 (__arm_vminnmq_m_f16): Likewise.
26327 (__arm_vmulq_m_f32): Likewise.
26328 (__arm_vmulq_m_f16): Likewise.
26329 (__arm_vmulq_m_n_f32): Likewise.
26330 (__arm_vmulq_m_n_f16): Likewise.
26331 (__arm_vornq_m_f32): Likewise.
26332 (__arm_vornq_m_f16): Likewise.
26333 (__arm_vorrq_m_f32): Likewise.
26334 (__arm_vorrq_m_f16): Likewise.
26335 (__arm_vsubq_m_f32): Likewise.
26336 (__arm_vsubq_m_f16): Likewise.
26337 (__arm_vsubq_m_n_f32): Likewise.
26338 (__arm_vsubq_m_n_f16): Likewise.
26339 (vabdq_m): Define polymorphic variant.
26340 (vaddq_m): Likewise.
26341 (vaddq_m_n): Likewise.
26342 (vandq_m): Likewise.
26343 (vbicq_m): Likewise.
26344 (vbrsrq_m_n): Likewise.
26345 (vcaddq_rot270_m): Likewise.
26346 (vcaddq_rot90_m): Likewise.
26347 (vcmlaq_m): Likewise.
26348 (vcmlaq_rot180_m): Likewise.
26349 (vcmlaq_rot270_m): Likewise.
26350 (vcmlaq_rot90_m): Likewise.
26351 (vcmulq_m): Likewise.
26352 (vcmulq_rot180_m): Likewise.
26353 (vcmulq_rot270_m): Likewise.
26354 (vcmulq_rot90_m): Likewise.
26355 (veorq_m): Likewise.
26356 (vfmaq_m): Likewise.
26357 (vfmaq_m_n): Likewise.
26358 (vfmasq_m_n): Likewise.
26359 (vfmsq_m): Likewise.
26360 (vmaxnmq_m): Likewise.
26361 (vminnmq_m): Likewise.
26362 (vmulq_m): Likewise.
26363 (vmulq_m_n): Likewise.
26364 (vornq_m): Likewise.
26365 (vsubq_m): Likewise.
26366 (vsubq_m_n): Likewise.
26367 (vorrq_m): Likewise.
26368 * config/arm/arm_mve_builtins.def (QUADOP_NONE_NONE_NONE_IMM_UNONE): Use
26369 builtin qualifier.
26370 (QUADOP_NONE_NONE_NONE_NONE_UNONE): Likewise.
26371 (QUADOP_UNONE_UNONE_NONE_IMM_UNONE): Likewise.
26372 * config/arm/mve.md (mve_vabdq_m_f<mode>): Define RTL pattern.
26373 (mve_vaddq_m_f<mode>): Likewise.
26374 (mve_vaddq_m_n_f<mode>): Likewise.
26375 (mve_vandq_m_f<mode>): Likewise.
26376 (mve_vbicq_m_f<mode>): Likewise.
26377 (mve_vbrsrq_m_n_f<mode>): Likewise.
26378 (mve_vcaddq_rot270_m_f<mode>): Likewise.
26379 (mve_vcaddq_rot90_m_f<mode>): Likewise.
26380 (mve_vcmlaq_m_f<mode>): Likewise.
26381 (mve_vcmlaq_rot180_m_f<mode>): Likewise.
26382 (mve_vcmlaq_rot270_m_f<mode>): Likewise.
26383 (mve_vcmlaq_rot90_m_f<mode>): Likewise.
26384 (mve_vcmulq_m_f<mode>): Likewise.
26385 (mve_vcmulq_rot180_m_f<mode>): Likewise.
26386 (mve_vcmulq_rot270_m_f<mode>): Likewise.
26387 (mve_vcmulq_rot90_m_f<mode>): Likewise.
26388 (mve_veorq_m_f<mode>): Likewise.
26389 (mve_vfmaq_m_f<mode>): Likewise.
26390 (mve_vfmaq_m_n_f<mode>): Likewise.
26391 (mve_vfmasq_m_n_f<mode>): Likewise.
26392 (mve_vfmsq_m_f<mode>): Likewise.
26393 (mve_vmaxnmq_m_f<mode>): Likewise.
26394 (mve_vminnmq_m_f<mode>): Likewise.
26395 (mve_vmulq_m_f<mode>): Likewise.
26396 (mve_vmulq_m_n_f<mode>): Likewise.
26397 (mve_vornq_m_f<mode>): Likewise.
26398 (mve_vorrq_m_f<mode>): Likewise.
26399 (mve_vsubq_m_f<mode>): Likewise.
26400 (mve_vsubq_m_n_f<mode>): Likewise.
26401
26402 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
26403 Mihail Ionescu <mihail.ionescu@arm.com>
26404 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
26405
26406 * config/arm/arm-protos.h (arm_mve_immediate_check):
26407 * config/arm/arm.c (arm_mve_immediate_check): Define fuction to check
26408 mode and interger value.
26409 * config/arm/arm_mve.h (vmlaldavaq_p_s32): Define macro.
26410 (vmlaldavaq_p_s16): Likewise.
26411 (vmlaldavaq_p_u32): Likewise.
26412 (vmlaldavaq_p_u16): Likewise.
26413 (vmlaldavaxq_p_s32): Likewise.
26414 (vmlaldavaxq_p_s16): Likewise.
26415 (vmlaldavaxq_p_u32): Likewise.
26416 (vmlaldavaxq_p_u16): Likewise.
26417 (vmlsldavaq_p_s32): Likewise.
26418 (vmlsldavaq_p_s16): Likewise.
26419 (vmlsldavaxq_p_s32): Likewise.
26420 (vmlsldavaxq_p_s16): Likewise.
26421 (vmullbq_poly_m_p8): Likewise.
26422 (vmullbq_poly_m_p16): Likewise.
26423 (vmulltq_poly_m_p8): Likewise.
26424 (vmulltq_poly_m_p16): Likewise.
26425 (vqdmullbq_m_n_s32): Likewise.
26426 (vqdmullbq_m_n_s16): Likewise.
26427 (vqdmullbq_m_s32): Likewise.
26428 (vqdmullbq_m_s16): Likewise.
26429 (vqdmulltq_m_n_s32): Likewise.
26430 (vqdmulltq_m_n_s16): Likewise.
26431 (vqdmulltq_m_s32): Likewise.
26432 (vqdmulltq_m_s16): Likewise.
26433 (vqrshrnbq_m_n_s32): Likewise.
26434 (vqrshrnbq_m_n_s16): Likewise.
26435 (vqrshrnbq_m_n_u32): Likewise.
26436 (vqrshrnbq_m_n_u16): Likewise.
26437 (vqrshrntq_m_n_s32): Likewise.
26438 (vqrshrntq_m_n_s16): Likewise.
26439 (vqrshrntq_m_n_u32): Likewise.
26440 (vqrshrntq_m_n_u16): Likewise.
26441 (vqrshrunbq_m_n_s32): Likewise.
26442 (vqrshrunbq_m_n_s16): Likewise.
26443 (vqrshruntq_m_n_s32): Likewise.
26444 (vqrshruntq_m_n_s16): Likewise.
26445 (vqshrnbq_m_n_s32): Likewise.
26446 (vqshrnbq_m_n_s16): Likewise.
26447 (vqshrnbq_m_n_u32): Likewise.
26448 (vqshrnbq_m_n_u16): Likewise.
26449 (vqshrntq_m_n_s32): Likewise.
26450 (vqshrntq_m_n_s16): Likewise.
26451 (vqshrntq_m_n_u32): Likewise.
26452 (vqshrntq_m_n_u16): Likewise.
26453 (vqshrunbq_m_n_s32): Likewise.
26454 (vqshrunbq_m_n_s16): Likewise.
26455 (vqshruntq_m_n_s32): Likewise.
26456 (vqshruntq_m_n_s16): Likewise.
26457 (vrmlaldavhaq_p_s32): Likewise.
26458 (vrmlaldavhaq_p_u32): Likewise.
26459 (vrmlaldavhaxq_p_s32): Likewise.
26460 (vrmlsldavhaq_p_s32): Likewise.
26461 (vrmlsldavhaxq_p_s32): Likewise.
26462 (vrshrnbq_m_n_s32): Likewise.
26463 (vrshrnbq_m_n_s16): Likewise.
26464 (vrshrnbq_m_n_u32): Likewise.
26465 (vrshrnbq_m_n_u16): Likewise.
26466 (vrshrntq_m_n_s32): Likewise.
26467 (vrshrntq_m_n_s16): Likewise.
26468 (vrshrntq_m_n_u32): Likewise.
26469 (vrshrntq_m_n_u16): Likewise.
26470 (vshllbq_m_n_s8): Likewise.
26471 (vshllbq_m_n_s16): Likewise.
26472 (vshllbq_m_n_u8): Likewise.
26473 (vshllbq_m_n_u16): Likewise.
26474 (vshlltq_m_n_s8): Likewise.
26475 (vshlltq_m_n_s16): Likewise.
26476 (vshlltq_m_n_u8): Likewise.
26477 (vshlltq_m_n_u16): Likewise.
26478 (vshrnbq_m_n_s32): Likewise.
26479 (vshrnbq_m_n_s16): Likewise.
26480 (vshrnbq_m_n_u32): Likewise.
26481 (vshrnbq_m_n_u16): Likewise.
26482 (vshrntq_m_n_s32): Likewise.
26483 (vshrntq_m_n_s16): Likewise.
26484 (vshrntq_m_n_u32): Likewise.
26485 (vshrntq_m_n_u16): Likewise.
26486 (__arm_vmlaldavaq_p_s32): Define intrinsic.
26487 (__arm_vmlaldavaq_p_s16): Likewise.
26488 (__arm_vmlaldavaq_p_u32): Likewise.
26489 (__arm_vmlaldavaq_p_u16): Likewise.
26490 (__arm_vmlaldavaxq_p_s32): Likewise.
26491 (__arm_vmlaldavaxq_p_s16): Likewise.
26492 (__arm_vmlaldavaxq_p_u32): Likewise.
26493 (__arm_vmlaldavaxq_p_u16): Likewise.
26494 (__arm_vmlsldavaq_p_s32): Likewise.
26495 (__arm_vmlsldavaq_p_s16): Likewise.
26496 (__arm_vmlsldavaxq_p_s32): Likewise.
26497 (__arm_vmlsldavaxq_p_s16): Likewise.
26498 (__arm_vmullbq_poly_m_p8): Likewise.
26499 (__arm_vmullbq_poly_m_p16): Likewise.
26500 (__arm_vmulltq_poly_m_p8): Likewise.
26501 (__arm_vmulltq_poly_m_p16): Likewise.
26502 (__arm_vqdmullbq_m_n_s32): Likewise.
26503 (__arm_vqdmullbq_m_n_s16): Likewise.
26504 (__arm_vqdmullbq_m_s32): Likewise.
26505 (__arm_vqdmullbq_m_s16): Likewise.
26506 (__arm_vqdmulltq_m_n_s32): Likewise.
26507 (__arm_vqdmulltq_m_n_s16): Likewise.
26508 (__arm_vqdmulltq_m_s32): Likewise.
26509 (__arm_vqdmulltq_m_s16): Likewise.
26510 (__arm_vqrshrnbq_m_n_s32): Likewise.
26511 (__arm_vqrshrnbq_m_n_s16): Likewise.
26512 (__arm_vqrshrnbq_m_n_u32): Likewise.
26513 (__arm_vqrshrnbq_m_n_u16): Likewise.
26514 (__arm_vqrshrntq_m_n_s32): Likewise.
26515 (__arm_vqrshrntq_m_n_s16): Likewise.
26516 (__arm_vqrshrntq_m_n_u32): Likewise.
26517 (__arm_vqrshrntq_m_n_u16): Likewise.
26518 (__arm_vqrshrunbq_m_n_s32): Likewise.
26519 (__arm_vqrshrunbq_m_n_s16): Likewise.
26520 (__arm_vqrshruntq_m_n_s32): Likewise.
26521 (__arm_vqrshruntq_m_n_s16): Likewise.
26522 (__arm_vqshrnbq_m_n_s32): Likewise.
26523 (__arm_vqshrnbq_m_n_s16): Likewise.
26524 (__arm_vqshrnbq_m_n_u32): Likewise.
26525 (__arm_vqshrnbq_m_n_u16): Likewise.
26526 (__arm_vqshrntq_m_n_s32): Likewise.
26527 (__arm_vqshrntq_m_n_s16): Likewise.
26528 (__arm_vqshrntq_m_n_u32): Likewise.
26529 (__arm_vqshrntq_m_n_u16): Likewise.
26530 (__arm_vqshrunbq_m_n_s32): Likewise.
26531 (__arm_vqshrunbq_m_n_s16): Likewise.
26532 (__arm_vqshruntq_m_n_s32): Likewise.
26533 (__arm_vqshruntq_m_n_s16): Likewise.
26534 (__arm_vrmlaldavhaq_p_s32): Likewise.
26535 (__arm_vrmlaldavhaq_p_u32): Likewise.
26536 (__arm_vrmlaldavhaxq_p_s32): Likewise.
26537 (__arm_vrmlsldavhaq_p_s32): Likewise.
26538 (__arm_vrmlsldavhaxq_p_s32): Likewise.
26539 (__arm_vrshrnbq_m_n_s32): Likewise.
26540 (__arm_vrshrnbq_m_n_s16): Likewise.
26541 (__arm_vrshrnbq_m_n_u32): Likewise.
26542 (__arm_vrshrnbq_m_n_u16): Likewise.
26543 (__arm_vrshrntq_m_n_s32): Likewise.
26544 (__arm_vrshrntq_m_n_s16): Likewise.
26545 (__arm_vrshrntq_m_n_u32): Likewise.
26546 (__arm_vrshrntq_m_n_u16): Likewise.
26547 (__arm_vshllbq_m_n_s8): Likewise.
26548 (__arm_vshllbq_m_n_s16): Likewise.
26549 (__arm_vshllbq_m_n_u8): Likewise.
26550 (__arm_vshllbq_m_n_u16): Likewise.
26551 (__arm_vshlltq_m_n_s8): Likewise.
26552 (__arm_vshlltq_m_n_s16): Likewise.
26553 (__arm_vshlltq_m_n_u8): Likewise.
26554 (__arm_vshlltq_m_n_u16): Likewise.
26555 (__arm_vshrnbq_m_n_s32): Likewise.
26556 (__arm_vshrnbq_m_n_s16): Likewise.
26557 (__arm_vshrnbq_m_n_u32): Likewise.
26558 (__arm_vshrnbq_m_n_u16): Likewise.
26559 (__arm_vshrntq_m_n_s32): Likewise.
26560 (__arm_vshrntq_m_n_s16): Likewise.
26561 (__arm_vshrntq_m_n_u32): Likewise.
26562 (__arm_vshrntq_m_n_u16): Likewise.
26563 (vmullbq_poly_m): Define polymorphic variant.
26564 (vmulltq_poly_m): Likewise.
26565 (vshllbq_m): Likewise.
26566 (vshrntq_m_n): Likewise.
26567 (vshrnbq_m_n): Likewise.
26568 (vshlltq_m_n): Likewise.
26569 (vshllbq_m_n): Likewise.
26570 (vrshrntq_m_n): Likewise.
26571 (vrshrnbq_m_n): Likewise.
26572 (vqshruntq_m_n): Likewise.
26573 (vqshrunbq_m_n): Likewise.
26574 (vqdmullbq_m_n): Likewise.
26575 (vqdmullbq_m): Likewise.
26576 (vqdmulltq_m_n): Likewise.
26577 (vqdmulltq_m): Likewise.
26578 (vqrshrnbq_m_n): Likewise.
26579 (vqrshrntq_m_n): Likewise.
26580 (vqrshrunbq_m_n): Likewise.
26581 (vqrshruntq_m_n): Likewise.
26582 (vqshrnbq_m_n): Likewise.
26583 (vqshrntq_m_n): Likewise.
26584 * config/arm/arm_mve_builtins.def (QUADOP_NONE_NONE_NONE_IMM_UNONE): Use
26585 builtin qualifiers.
26586 (QUADOP_NONE_NONE_NONE_NONE_UNONE): Likewise.
26587 (QUADOP_UNONE_UNONE_NONE_IMM_UNONE): Likewise.
26588 (QUADOP_UNONE_UNONE_UNONE_IMM_UNONE): Likewise.
26589 (QUADOP_UNONE_UNONE_UNONE_UNONE_UNONE): Likewise.
26590 * config/arm/mve.md (VMLALDAVAQ_P): Define iterator.
26591 (VMLALDAVAXQ_P): Likewise.
26592 (VQRSHRNBQ_M_N): Likewise.
26593 (VQRSHRNTQ_M_N): Likewise.
26594 (VQSHRNBQ_M_N): Likewise.
26595 (VQSHRNTQ_M_N): Likewise.
26596 (VRSHRNBQ_M_N): Likewise.
26597 (VRSHRNTQ_M_N): Likewise.
26598 (VSHLLBQ_M_N): Likewise.
26599 (VSHLLTQ_M_N): Likewise.
26600 (VSHRNBQ_M_N): Likewise.
26601 (VSHRNTQ_M_N): Likewise.
26602 (mve_vmlaldavaq_p_<supf><mode>): Define RTL pattern.
26603 (mve_vmlaldavaxq_p_<supf><mode>): Likewise.
26604 (mve_vqrshrnbq_m_n_<supf><mode>): Likewise.
26605 (mve_vqrshrntq_m_n_<supf><mode>): Likewise.
26606 (mve_vqshrnbq_m_n_<supf><mode>): Likewise.
26607 (mve_vqshrntq_m_n_<supf><mode>): Likewise.
26608 (mve_vrmlaldavhaq_p_sv4si): Likewise.
26609 (mve_vrshrnbq_m_n_<supf><mode>): Likewise.
26610 (mve_vrshrntq_m_n_<supf><mode>): Likewise.
26611 (mve_vshllbq_m_n_<supf><mode>): Likewise.
26612 (mve_vshlltq_m_n_<supf><mode>): Likewise.
26613 (mve_vshrnbq_m_n_<supf><mode>): Likewise.
26614 (mve_vshrntq_m_n_<supf><mode>): Likewise.
26615 (mve_vmlsldavaq_p_s<mode>): Likewise.
26616 (mve_vmlsldavaxq_p_s<mode>): Likewise.
26617 (mve_vmullbq_poly_m_p<mode>): Likewise.
26618 (mve_vmulltq_poly_m_p<mode>): Likewise.
26619 (mve_vqdmullbq_m_n_s<mode>): Likewise.
26620 (mve_vqdmullbq_m_s<mode>): Likewise.
26621 (mve_vqdmulltq_m_n_s<mode>): Likewise.
26622 (mve_vqdmulltq_m_s<mode>): Likewise.
26623 (mve_vqrshrunbq_m_n_s<mode>): Likewise.
26624 (mve_vqrshruntq_m_n_s<mode>): Likewise.
26625 (mve_vqshrunbq_m_n_s<mode>): Likewise.
26626 (mve_vqshruntq_m_n_s<mode>): Likewise.
26627 (mve_vrmlaldavhaq_p_uv4si): Likewise.
26628 (mve_vrmlaldavhaxq_p_sv4si): Likewise.
26629 (mve_vrmlsldavhaq_p_sv4si): Likewise.
26630 (mve_vrmlsldavhaxq_p_sv4si): Likewise.
26631
26632 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
26633 Mihail Ionescu <mihail.ionescu@arm.com>
26634 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
26635
26636 * config/arm/arm_mve.h (vabdq_m_s8): Define macro.
26637 (vabdq_m_s32): Likewise.
26638 (vabdq_m_s16): Likewise.
26639 (vabdq_m_u8): Likewise.
26640 (vabdq_m_u32): Likewise.
26641 (vabdq_m_u16): Likewise.
26642 (vaddq_m_n_s8): Likewise.
26643 (vaddq_m_n_s32): Likewise.
26644 (vaddq_m_n_s16): Likewise.
26645 (vaddq_m_n_u8): Likewise.
26646 (vaddq_m_n_u32): Likewise.
26647 (vaddq_m_n_u16): Likewise.
26648 (vaddq_m_s8): Likewise.
26649 (vaddq_m_s32): Likewise.
26650 (vaddq_m_s16): Likewise.
26651 (vaddq_m_u8): Likewise.
26652 (vaddq_m_u32): Likewise.
26653 (vaddq_m_u16): Likewise.
26654 (vandq_m_s8): Likewise.
26655 (vandq_m_s32): Likewise.
26656 (vandq_m_s16): Likewise.
26657 (vandq_m_u8): Likewise.
26658 (vandq_m_u32): Likewise.
26659 (vandq_m_u16): Likewise.
26660 (vbicq_m_s8): Likewise.
26661 (vbicq_m_s32): Likewise.
26662 (vbicq_m_s16): Likewise.
26663 (vbicq_m_u8): Likewise.
26664 (vbicq_m_u32): Likewise.
26665 (vbicq_m_u16): Likewise.
26666 (vbrsrq_m_n_s8): Likewise.
26667 (vbrsrq_m_n_s32): Likewise.
26668 (vbrsrq_m_n_s16): Likewise.
26669 (vbrsrq_m_n_u8): Likewise.
26670 (vbrsrq_m_n_u32): Likewise.
26671 (vbrsrq_m_n_u16): Likewise.
26672 (vcaddq_rot270_m_s8): Likewise.
26673 (vcaddq_rot270_m_s32): Likewise.
26674 (vcaddq_rot270_m_s16): Likewise.
26675 (vcaddq_rot270_m_u8): Likewise.
26676 (vcaddq_rot270_m_u32): Likewise.
26677 (vcaddq_rot270_m_u16): Likewise.
26678 (vcaddq_rot90_m_s8): Likewise.
26679 (vcaddq_rot90_m_s32): Likewise.
26680 (vcaddq_rot90_m_s16): Likewise.
26681 (vcaddq_rot90_m_u8): Likewise.
26682 (vcaddq_rot90_m_u32): Likewise.
26683 (vcaddq_rot90_m_u16): Likewise.
26684 (veorq_m_s8): Likewise.
26685 (veorq_m_s32): Likewise.
26686 (veorq_m_s16): Likewise.
26687 (veorq_m_u8): Likewise.
26688 (veorq_m_u32): Likewise.
26689 (veorq_m_u16): Likewise.
26690 (vhaddq_m_n_s8): Likewise.
26691 (vhaddq_m_n_s32): Likewise.
26692 (vhaddq_m_n_s16): Likewise.
26693 (vhaddq_m_n_u8): Likewise.
26694 (vhaddq_m_n_u32): Likewise.
26695 (vhaddq_m_n_u16): Likewise.
26696 (vhaddq_m_s8): Likewise.
26697 (vhaddq_m_s32): Likewise.
26698 (vhaddq_m_s16): Likewise.
26699 (vhaddq_m_u8): Likewise.
26700 (vhaddq_m_u32): Likewise.
26701 (vhaddq_m_u16): Likewise.
26702 (vhcaddq_rot270_m_s8): Likewise.
26703 (vhcaddq_rot270_m_s32): Likewise.
26704 (vhcaddq_rot270_m_s16): Likewise.
26705 (vhcaddq_rot90_m_s8): Likewise.
26706 (vhcaddq_rot90_m_s32): Likewise.
26707 (vhcaddq_rot90_m_s16): Likewise.
26708 (vhsubq_m_n_s8): Likewise.
26709 (vhsubq_m_n_s32): Likewise.
26710 (vhsubq_m_n_s16): Likewise.
26711 (vhsubq_m_n_u8): Likewise.
26712 (vhsubq_m_n_u32): Likewise.
26713 (vhsubq_m_n_u16): Likewise.
26714 (vhsubq_m_s8): Likewise.
26715 (vhsubq_m_s32): Likewise.
26716 (vhsubq_m_s16): Likewise.
26717 (vhsubq_m_u8): Likewise.
26718 (vhsubq_m_u32): Likewise.
26719 (vhsubq_m_u16): Likewise.
26720 (vmaxq_m_s8): Likewise.
26721 (vmaxq_m_s32): Likewise.
26722 (vmaxq_m_s16): Likewise.
26723 (vmaxq_m_u8): Likewise.
26724 (vmaxq_m_u32): Likewise.
26725 (vmaxq_m_u16): Likewise.
26726 (vminq_m_s8): Likewise.
26727 (vminq_m_s32): Likewise.
26728 (vminq_m_s16): Likewise.
26729 (vminq_m_u8): Likewise.
26730 (vminq_m_u32): Likewise.
26731 (vminq_m_u16): Likewise.
26732 (vmladavaq_p_s8): Likewise.
26733 (vmladavaq_p_s32): Likewise.
26734 (vmladavaq_p_s16): Likewise.
26735 (vmladavaq_p_u8): Likewise.
26736 (vmladavaq_p_u32): Likewise.
26737 (vmladavaq_p_u16): Likewise.
26738 (vmladavaxq_p_s8): Likewise.
26739 (vmladavaxq_p_s32): Likewise.
26740 (vmladavaxq_p_s16): Likewise.
26741 (vmlaq_m_n_s8): Likewise.
26742 (vmlaq_m_n_s32): Likewise.
26743 (vmlaq_m_n_s16): Likewise.
26744 (vmlaq_m_n_u8): Likewise.
26745 (vmlaq_m_n_u32): Likewise.
26746 (vmlaq_m_n_u16): Likewise.
26747 (vmlasq_m_n_s8): Likewise.
26748 (vmlasq_m_n_s32): Likewise.
26749 (vmlasq_m_n_s16): Likewise.
26750 (vmlasq_m_n_u8): Likewise.
26751 (vmlasq_m_n_u32): Likewise.
26752 (vmlasq_m_n_u16): Likewise.
26753 (vmlsdavaq_p_s8): Likewise.
26754 (vmlsdavaq_p_s32): Likewise.
26755 (vmlsdavaq_p_s16): Likewise.
26756 (vmlsdavaxq_p_s8): Likewise.
26757 (vmlsdavaxq_p_s32): Likewise.
26758 (vmlsdavaxq_p_s16): Likewise.
26759 (vmulhq_m_s8): Likewise.
26760 (vmulhq_m_s32): Likewise.
26761 (vmulhq_m_s16): Likewise.
26762 (vmulhq_m_u8): Likewise.
26763 (vmulhq_m_u32): Likewise.
26764 (vmulhq_m_u16): Likewise.
26765 (vmullbq_int_m_s8): Likewise.
26766 (vmullbq_int_m_s32): Likewise.
26767 (vmullbq_int_m_s16): Likewise.
26768 (vmullbq_int_m_u8): Likewise.
26769 (vmullbq_int_m_u32): Likewise.
26770 (vmullbq_int_m_u16): Likewise.
26771 (vmulltq_int_m_s8): Likewise.
26772 (vmulltq_int_m_s32): Likewise.
26773 (vmulltq_int_m_s16): Likewise.
26774 (vmulltq_int_m_u8): Likewise.
26775 (vmulltq_int_m_u32): Likewise.
26776 (vmulltq_int_m_u16): Likewise.
26777 (vmulq_m_n_s8): Likewise.
26778 (vmulq_m_n_s32): Likewise.
26779 (vmulq_m_n_s16): Likewise.
26780 (vmulq_m_n_u8): Likewise.
26781 (vmulq_m_n_u32): Likewise.
26782 (vmulq_m_n_u16): Likewise.
26783 (vmulq_m_s8): Likewise.
26784 (vmulq_m_s32): Likewise.
26785 (vmulq_m_s16): Likewise.
26786 (vmulq_m_u8): Likewise.
26787 (vmulq_m_u32): Likewise.
26788 (vmulq_m_u16): Likewise.
26789 (vornq_m_s8): Likewise.
26790 (vornq_m_s32): Likewise.
26791 (vornq_m_s16): Likewise.
26792 (vornq_m_u8): Likewise.
26793 (vornq_m_u32): Likewise.
26794 (vornq_m_u16): Likewise.
26795 (vorrq_m_s8): Likewise.
26796 (vorrq_m_s32): Likewise.
26797 (vorrq_m_s16): Likewise.
26798 (vorrq_m_u8): Likewise.
26799 (vorrq_m_u32): Likewise.
26800 (vorrq_m_u16): Likewise.
26801 (vqaddq_m_n_s8): Likewise.
26802 (vqaddq_m_n_s32): Likewise.
26803 (vqaddq_m_n_s16): Likewise.
26804 (vqaddq_m_n_u8): Likewise.
26805 (vqaddq_m_n_u32): Likewise.
26806 (vqaddq_m_n_u16): Likewise.
26807 (vqaddq_m_s8): Likewise.
26808 (vqaddq_m_s32): Likewise.
26809 (vqaddq_m_s16): Likewise.
26810 (vqaddq_m_u8): Likewise.
26811 (vqaddq_m_u32): Likewise.
26812 (vqaddq_m_u16): Likewise.
26813 (vqdmladhq_m_s8): Likewise.
26814 (vqdmladhq_m_s32): Likewise.
26815 (vqdmladhq_m_s16): Likewise.
26816 (vqdmladhxq_m_s8): Likewise.
26817 (vqdmladhxq_m_s32): Likewise.
26818 (vqdmladhxq_m_s16): Likewise.
26819 (vqdmlahq_m_n_s8): Likewise.
26820 (vqdmlahq_m_n_s32): Likewise.
26821 (vqdmlahq_m_n_s16): Likewise.
26822 (vqdmlahq_m_n_u8): Likewise.
26823 (vqdmlahq_m_n_u32): Likewise.
26824 (vqdmlahq_m_n_u16): Likewise.
26825 (vqdmlsdhq_m_s8): Likewise.
26826 (vqdmlsdhq_m_s32): Likewise.
26827 (vqdmlsdhq_m_s16): Likewise.
26828 (vqdmlsdhxq_m_s8): Likewise.
26829 (vqdmlsdhxq_m_s32): Likewise.
26830 (vqdmlsdhxq_m_s16): Likewise.
26831 (vqdmulhq_m_n_s8): Likewise.
26832 (vqdmulhq_m_n_s32): Likewise.
26833 (vqdmulhq_m_n_s16): Likewise.
26834 (vqdmulhq_m_s8): Likewise.
26835 (vqdmulhq_m_s32): Likewise.
26836 (vqdmulhq_m_s16): Likewise.
26837 (vqrdmladhq_m_s8): Likewise.
26838 (vqrdmladhq_m_s32): Likewise.
26839 (vqrdmladhq_m_s16): Likewise.
26840 (vqrdmladhxq_m_s8): Likewise.
26841 (vqrdmladhxq_m_s32): Likewise.
26842 (vqrdmladhxq_m_s16): Likewise.
26843 (vqrdmlahq_m_n_s8): Likewise.
26844 (vqrdmlahq_m_n_s32): Likewise.
26845 (vqrdmlahq_m_n_s16): Likewise.
26846 (vqrdmlahq_m_n_u8): Likewise.
26847 (vqrdmlahq_m_n_u32): Likewise.
26848 (vqrdmlahq_m_n_u16): Likewise.
26849 (vqrdmlashq_m_n_s8): Likewise.
26850 (vqrdmlashq_m_n_s32): Likewise.
26851 (vqrdmlashq_m_n_s16): Likewise.
26852 (vqrdmlashq_m_n_u8): Likewise.
26853 (vqrdmlashq_m_n_u32): Likewise.
26854 (vqrdmlashq_m_n_u16): Likewise.
26855 (vqrdmlsdhq_m_s8): Likewise.
26856 (vqrdmlsdhq_m_s32): Likewise.
26857 (vqrdmlsdhq_m_s16): Likewise.
26858 (vqrdmlsdhxq_m_s8): Likewise.
26859 (vqrdmlsdhxq_m_s32): Likewise.
26860 (vqrdmlsdhxq_m_s16): Likewise.
26861 (vqrdmulhq_m_n_s8): Likewise.
26862 (vqrdmulhq_m_n_s32): Likewise.
26863 (vqrdmulhq_m_n_s16): Likewise.
26864 (vqrdmulhq_m_s8): Likewise.
26865 (vqrdmulhq_m_s32): Likewise.
26866 (vqrdmulhq_m_s16): Likewise.
26867 (vqrshlq_m_s8): Likewise.
26868 (vqrshlq_m_s32): Likewise.
26869 (vqrshlq_m_s16): Likewise.
26870 (vqrshlq_m_u8): Likewise.
26871 (vqrshlq_m_u32): Likewise.
26872 (vqrshlq_m_u16): Likewise.
26873 (vqshlq_m_n_s8): Likewise.
26874 (vqshlq_m_n_s32): Likewise.
26875 (vqshlq_m_n_s16): Likewise.
26876 (vqshlq_m_n_u8): Likewise.
26877 (vqshlq_m_n_u32): Likewise.
26878 (vqshlq_m_n_u16): Likewise.
26879 (vqshlq_m_s8): Likewise.
26880 (vqshlq_m_s32): Likewise.
26881 (vqshlq_m_s16): Likewise.
26882 (vqshlq_m_u8): Likewise.
26883 (vqshlq_m_u32): Likewise.
26884 (vqshlq_m_u16): Likewise.
26885 (vqsubq_m_n_s8): Likewise.
26886 (vqsubq_m_n_s32): Likewise.
26887 (vqsubq_m_n_s16): Likewise.
26888 (vqsubq_m_n_u8): Likewise.
26889 (vqsubq_m_n_u32): Likewise.
26890 (vqsubq_m_n_u16): Likewise.
26891 (vqsubq_m_s8): Likewise.
26892 (vqsubq_m_s32): Likewise.
26893 (vqsubq_m_s16): Likewise.
26894 (vqsubq_m_u8): Likewise.
26895 (vqsubq_m_u32): Likewise.
26896 (vqsubq_m_u16): Likewise.
26897 (vrhaddq_m_s8): Likewise.
26898 (vrhaddq_m_s32): Likewise.
26899 (vrhaddq_m_s16): Likewise.
26900 (vrhaddq_m_u8): Likewise.
26901 (vrhaddq_m_u32): Likewise.
26902 (vrhaddq_m_u16): Likewise.
26903 (vrmulhq_m_s8): Likewise.
26904 (vrmulhq_m_s32): Likewise.
26905 (vrmulhq_m_s16): Likewise.
26906 (vrmulhq_m_u8): Likewise.
26907 (vrmulhq_m_u32): Likewise.
26908 (vrmulhq_m_u16): Likewise.
26909 (vrshlq_m_s8): Likewise.
26910 (vrshlq_m_s32): Likewise.
26911 (vrshlq_m_s16): Likewise.
26912 (vrshlq_m_u8): Likewise.
26913 (vrshlq_m_u32): Likewise.
26914 (vrshlq_m_u16): Likewise.
26915 (vrshrq_m_n_s8): Likewise.
26916 (vrshrq_m_n_s32): Likewise.
26917 (vrshrq_m_n_s16): Likewise.
26918 (vrshrq_m_n_u8): Likewise.
26919 (vrshrq_m_n_u32): Likewise.
26920 (vrshrq_m_n_u16): Likewise.
26921 (vshlq_m_n_s8): Likewise.
26922 (vshlq_m_n_s32): Likewise.
26923 (vshlq_m_n_s16): Likewise.
26924 (vshlq_m_n_u8): Likewise.
26925 (vshlq_m_n_u32): Likewise.
26926 (vshlq_m_n_u16): Likewise.
26927 (vshrq_m_n_s8): Likewise.
26928 (vshrq_m_n_s32): Likewise.
26929 (vshrq_m_n_s16): Likewise.
26930 (vshrq_m_n_u8): Likewise.
26931 (vshrq_m_n_u32): Likewise.
26932 (vshrq_m_n_u16): Likewise.
26933 (vsliq_m_n_s8): Likewise.
26934 (vsliq_m_n_s32): Likewise.
26935 (vsliq_m_n_s16): Likewise.
26936 (vsliq_m_n_u8): Likewise.
26937 (vsliq_m_n_u32): Likewise.
26938 (vsliq_m_n_u16): Likewise.
26939 (vsubq_m_n_s8): Likewise.
26940 (vsubq_m_n_s32): Likewise.
26941 (vsubq_m_n_s16): Likewise.
26942 (vsubq_m_n_u8): Likewise.
26943 (vsubq_m_n_u32): Likewise.
26944 (vsubq_m_n_u16): Likewise.
26945 (__arm_vabdq_m_s8): Define intrinsic.
26946 (__arm_vabdq_m_s32): Likewise.
26947 (__arm_vabdq_m_s16): Likewise.
26948 (__arm_vabdq_m_u8): Likewise.
26949 (__arm_vabdq_m_u32): Likewise.
26950 (__arm_vabdq_m_u16): Likewise.
26951 (__arm_vaddq_m_n_s8): Likewise.
26952 (__arm_vaddq_m_n_s32): Likewise.
26953 (__arm_vaddq_m_n_s16): Likewise.
26954 (__arm_vaddq_m_n_u8): Likewise.
26955 (__arm_vaddq_m_n_u32): Likewise.
26956 (__arm_vaddq_m_n_u16): Likewise.
26957 (__arm_vaddq_m_s8): Likewise.
26958 (__arm_vaddq_m_s32): Likewise.
26959 (__arm_vaddq_m_s16): Likewise.
26960 (__arm_vaddq_m_u8): Likewise.
26961 (__arm_vaddq_m_u32): Likewise.
26962 (__arm_vaddq_m_u16): Likewise.
26963 (__arm_vandq_m_s8): Likewise.
26964 (__arm_vandq_m_s32): Likewise.
26965 (__arm_vandq_m_s16): Likewise.
26966 (__arm_vandq_m_u8): Likewise.
26967 (__arm_vandq_m_u32): Likewise.
26968 (__arm_vandq_m_u16): Likewise.
26969 (__arm_vbicq_m_s8): Likewise.
26970 (__arm_vbicq_m_s32): Likewise.
26971 (__arm_vbicq_m_s16): Likewise.
26972 (__arm_vbicq_m_u8): Likewise.
26973 (__arm_vbicq_m_u32): Likewise.
26974 (__arm_vbicq_m_u16): Likewise.
26975 (__arm_vbrsrq_m_n_s8): Likewise.
26976 (__arm_vbrsrq_m_n_s32): Likewise.
26977 (__arm_vbrsrq_m_n_s16): Likewise.
26978 (__arm_vbrsrq_m_n_u8): Likewise.
26979 (__arm_vbrsrq_m_n_u32): Likewise.
26980 (__arm_vbrsrq_m_n_u16): Likewise.
26981 (__arm_vcaddq_rot270_m_s8): Likewise.
26982 (__arm_vcaddq_rot270_m_s32): Likewise.
26983 (__arm_vcaddq_rot270_m_s16): Likewise.
26984 (__arm_vcaddq_rot270_m_u8): Likewise.
26985 (__arm_vcaddq_rot270_m_u32): Likewise.
26986 (__arm_vcaddq_rot270_m_u16): Likewise.
26987 (__arm_vcaddq_rot90_m_s8): Likewise.
26988 (__arm_vcaddq_rot90_m_s32): Likewise.
26989 (__arm_vcaddq_rot90_m_s16): Likewise.
26990 (__arm_vcaddq_rot90_m_u8): Likewise.
26991 (__arm_vcaddq_rot90_m_u32): Likewise.
26992 (__arm_vcaddq_rot90_m_u16): Likewise.
26993 (__arm_veorq_m_s8): Likewise.
26994 (__arm_veorq_m_s32): Likewise.
26995 (__arm_veorq_m_s16): Likewise.
26996 (__arm_veorq_m_u8): Likewise.
26997 (__arm_veorq_m_u32): Likewise.
26998 (__arm_veorq_m_u16): Likewise.
26999 (__arm_vhaddq_m_n_s8): Likewise.
27000 (__arm_vhaddq_m_n_s32): Likewise.
27001 (__arm_vhaddq_m_n_s16): Likewise.
27002 (__arm_vhaddq_m_n_u8): Likewise.
27003 (__arm_vhaddq_m_n_u32): Likewise.
27004 (__arm_vhaddq_m_n_u16): Likewise.
27005 (__arm_vhaddq_m_s8): Likewise.
27006 (__arm_vhaddq_m_s32): Likewise.
27007 (__arm_vhaddq_m_s16): Likewise.
27008 (__arm_vhaddq_m_u8): Likewise.
27009 (__arm_vhaddq_m_u32): Likewise.
27010 (__arm_vhaddq_m_u16): Likewise.
27011 (__arm_vhcaddq_rot270_m_s8): Likewise.
27012 (__arm_vhcaddq_rot270_m_s32): Likewise.
27013 (__arm_vhcaddq_rot270_m_s16): Likewise.
27014 (__arm_vhcaddq_rot90_m_s8): Likewise.
27015 (__arm_vhcaddq_rot90_m_s32): Likewise.
27016 (__arm_vhcaddq_rot90_m_s16): Likewise.
27017 (__arm_vhsubq_m_n_s8): Likewise.
27018 (__arm_vhsubq_m_n_s32): Likewise.
27019 (__arm_vhsubq_m_n_s16): Likewise.
27020 (__arm_vhsubq_m_n_u8): Likewise.
27021 (__arm_vhsubq_m_n_u32): Likewise.
27022 (__arm_vhsubq_m_n_u16): Likewise.
27023 (__arm_vhsubq_m_s8): Likewise.
27024 (__arm_vhsubq_m_s32): Likewise.
27025 (__arm_vhsubq_m_s16): Likewise.
27026 (__arm_vhsubq_m_u8): Likewise.
27027 (__arm_vhsubq_m_u32): Likewise.
27028 (__arm_vhsubq_m_u16): Likewise.
27029 (__arm_vmaxq_m_s8): Likewise.
27030 (__arm_vmaxq_m_s32): Likewise.
27031 (__arm_vmaxq_m_s16): Likewise.
27032 (__arm_vmaxq_m_u8): Likewise.
27033 (__arm_vmaxq_m_u32): Likewise.
27034 (__arm_vmaxq_m_u16): Likewise.
27035 (__arm_vminq_m_s8): Likewise.
27036 (__arm_vminq_m_s32): Likewise.
27037 (__arm_vminq_m_s16): Likewise.
27038 (__arm_vminq_m_u8): Likewise.
27039 (__arm_vminq_m_u32): Likewise.
27040 (__arm_vminq_m_u16): Likewise.
27041 (__arm_vmladavaq_p_s8): Likewise.
27042 (__arm_vmladavaq_p_s32): Likewise.
27043 (__arm_vmladavaq_p_s16): Likewise.
27044 (__arm_vmladavaq_p_u8): Likewise.
27045 (__arm_vmladavaq_p_u32): Likewise.
27046 (__arm_vmladavaq_p_u16): Likewise.
27047 (__arm_vmladavaxq_p_s8): Likewise.
27048 (__arm_vmladavaxq_p_s32): Likewise.
27049 (__arm_vmladavaxq_p_s16): Likewise.
27050 (__arm_vmlaq_m_n_s8): Likewise.
27051 (__arm_vmlaq_m_n_s32): Likewise.
27052 (__arm_vmlaq_m_n_s16): Likewise.
27053 (__arm_vmlaq_m_n_u8): Likewise.
27054 (__arm_vmlaq_m_n_u32): Likewise.
27055 (__arm_vmlaq_m_n_u16): Likewise.
27056 (__arm_vmlasq_m_n_s8): Likewise.
27057 (__arm_vmlasq_m_n_s32): Likewise.
27058 (__arm_vmlasq_m_n_s16): Likewise.
27059 (__arm_vmlasq_m_n_u8): Likewise.
27060 (__arm_vmlasq_m_n_u32): Likewise.
27061 (__arm_vmlasq_m_n_u16): Likewise.
27062 (__arm_vmlsdavaq_p_s8): Likewise.
27063 (__arm_vmlsdavaq_p_s32): Likewise.
27064 (__arm_vmlsdavaq_p_s16): Likewise.
27065 (__arm_vmlsdavaxq_p_s8): Likewise.
27066 (__arm_vmlsdavaxq_p_s32): Likewise.
27067 (__arm_vmlsdavaxq_p_s16): Likewise.
27068 (__arm_vmulhq_m_s8): Likewise.
27069 (__arm_vmulhq_m_s32): Likewise.
27070 (__arm_vmulhq_m_s16): Likewise.
27071 (__arm_vmulhq_m_u8): Likewise.
27072 (__arm_vmulhq_m_u32): Likewise.
27073 (__arm_vmulhq_m_u16): Likewise.
27074 (__arm_vmullbq_int_m_s8): Likewise.
27075 (__arm_vmullbq_int_m_s32): Likewise.
27076 (__arm_vmullbq_int_m_s16): Likewise.
27077 (__arm_vmullbq_int_m_u8): Likewise.
27078 (__arm_vmullbq_int_m_u32): Likewise.
27079 (__arm_vmullbq_int_m_u16): Likewise.
27080 (__arm_vmulltq_int_m_s8): Likewise.
27081 (__arm_vmulltq_int_m_s32): Likewise.
27082 (__arm_vmulltq_int_m_s16): Likewise.
27083 (__arm_vmulltq_int_m_u8): Likewise.
27084 (__arm_vmulltq_int_m_u32): Likewise.
27085 (__arm_vmulltq_int_m_u16): Likewise.
27086 (__arm_vmulq_m_n_s8): Likewise.
27087 (__arm_vmulq_m_n_s32): Likewise.
27088 (__arm_vmulq_m_n_s16): Likewise.
27089 (__arm_vmulq_m_n_u8): Likewise.
27090 (__arm_vmulq_m_n_u32): Likewise.
27091 (__arm_vmulq_m_n_u16): Likewise.
27092 (__arm_vmulq_m_s8): Likewise.
27093 (__arm_vmulq_m_s32): Likewise.
27094 (__arm_vmulq_m_s16): Likewise.
27095 (__arm_vmulq_m_u8): Likewise.
27096 (__arm_vmulq_m_u32): Likewise.
27097 (__arm_vmulq_m_u16): Likewise.
27098 (__arm_vornq_m_s8): Likewise.
27099 (__arm_vornq_m_s32): Likewise.
27100 (__arm_vornq_m_s16): Likewise.
27101 (__arm_vornq_m_u8): Likewise.
27102 (__arm_vornq_m_u32): Likewise.
27103 (__arm_vornq_m_u16): Likewise.
27104 (__arm_vorrq_m_s8): Likewise.
27105 (__arm_vorrq_m_s32): Likewise.
27106 (__arm_vorrq_m_s16): Likewise.
27107 (__arm_vorrq_m_u8): Likewise.
27108 (__arm_vorrq_m_u32): Likewise.
27109 (__arm_vorrq_m_u16): Likewise.
27110 (__arm_vqaddq_m_n_s8): Likewise.
27111 (__arm_vqaddq_m_n_s32): Likewise.
27112 (__arm_vqaddq_m_n_s16): Likewise.
27113 (__arm_vqaddq_m_n_u8): Likewise.
27114 (__arm_vqaddq_m_n_u32): Likewise.
27115 (__arm_vqaddq_m_n_u16): Likewise.
27116 (__arm_vqaddq_m_s8): Likewise.
27117 (__arm_vqaddq_m_s32): Likewise.
27118 (__arm_vqaddq_m_s16): Likewise.
27119 (__arm_vqaddq_m_u8): Likewise.
27120 (__arm_vqaddq_m_u32): Likewise.
27121 (__arm_vqaddq_m_u16): Likewise.
27122 (__arm_vqdmladhq_m_s8): Likewise.
27123 (__arm_vqdmladhq_m_s32): Likewise.
27124 (__arm_vqdmladhq_m_s16): Likewise.
27125 (__arm_vqdmladhxq_m_s8): Likewise.
27126 (__arm_vqdmladhxq_m_s32): Likewise.
27127 (__arm_vqdmladhxq_m_s16): Likewise.
27128 (__arm_vqdmlahq_m_n_s8): Likewise.
27129 (__arm_vqdmlahq_m_n_s32): Likewise.
27130 (__arm_vqdmlahq_m_n_s16): Likewise.
27131 (__arm_vqdmlahq_m_n_u8): Likewise.
27132 (__arm_vqdmlahq_m_n_u32): Likewise.
27133 (__arm_vqdmlahq_m_n_u16): Likewise.
27134 (__arm_vqdmlsdhq_m_s8): Likewise.
27135 (__arm_vqdmlsdhq_m_s32): Likewise.
27136 (__arm_vqdmlsdhq_m_s16): Likewise.
27137 (__arm_vqdmlsdhxq_m_s8): Likewise.
27138 (__arm_vqdmlsdhxq_m_s32): Likewise.
27139 (__arm_vqdmlsdhxq_m_s16): Likewise.
27140 (__arm_vqdmulhq_m_n_s8): Likewise.
27141 (__arm_vqdmulhq_m_n_s32): Likewise.
27142 (__arm_vqdmulhq_m_n_s16): Likewise.
27143 (__arm_vqdmulhq_m_s8): Likewise.
27144 (__arm_vqdmulhq_m_s32): Likewise.
27145 (__arm_vqdmulhq_m_s16): Likewise.
27146 (__arm_vqrdmladhq_m_s8): Likewise.
27147 (__arm_vqrdmladhq_m_s32): Likewise.
27148 (__arm_vqrdmladhq_m_s16): Likewise.
27149 (__arm_vqrdmladhxq_m_s8): Likewise.
27150 (__arm_vqrdmladhxq_m_s32): Likewise.
27151 (__arm_vqrdmladhxq_m_s16): Likewise.
27152 (__arm_vqrdmlahq_m_n_s8): Likewise.
27153 (__arm_vqrdmlahq_m_n_s32): Likewise.
27154 (__arm_vqrdmlahq_m_n_s16): Likewise.
27155 (__arm_vqrdmlahq_m_n_u8): Likewise.
27156 (__arm_vqrdmlahq_m_n_u32): Likewise.
27157 (__arm_vqrdmlahq_m_n_u16): Likewise.
27158 (__arm_vqrdmlashq_m_n_s8): Likewise.
27159 (__arm_vqrdmlashq_m_n_s32): Likewise.
27160 (__arm_vqrdmlashq_m_n_s16): Likewise.
27161 (__arm_vqrdmlashq_m_n_u8): Likewise.
27162 (__arm_vqrdmlashq_m_n_u32): Likewise.
27163 (__arm_vqrdmlashq_m_n_u16): Likewise.
27164 (__arm_vqrdmlsdhq_m_s8): Likewise.
27165 (__arm_vqrdmlsdhq_m_s32): Likewise.
27166 (__arm_vqrdmlsdhq_m_s16): Likewise.
27167 (__arm_vqrdmlsdhxq_m_s8): Likewise.
27168 (__arm_vqrdmlsdhxq_m_s32): Likewise.
27169 (__arm_vqrdmlsdhxq_m_s16): Likewise.
27170 (__arm_vqrdmulhq_m_n_s8): Likewise.
27171 (__arm_vqrdmulhq_m_n_s32): Likewise.
27172 (__arm_vqrdmulhq_m_n_s16): Likewise.
27173 (__arm_vqrdmulhq_m_s8): Likewise.
27174 (__arm_vqrdmulhq_m_s32): Likewise.
27175 (__arm_vqrdmulhq_m_s16): Likewise.
27176 (__arm_vqrshlq_m_s8): Likewise.
27177 (__arm_vqrshlq_m_s32): Likewise.
27178 (__arm_vqrshlq_m_s16): Likewise.
27179 (__arm_vqrshlq_m_u8): Likewise.
27180 (__arm_vqrshlq_m_u32): Likewise.
27181 (__arm_vqrshlq_m_u16): Likewise.
27182 (__arm_vqshlq_m_n_s8): Likewise.
27183 (__arm_vqshlq_m_n_s32): Likewise.
27184 (__arm_vqshlq_m_n_s16): Likewise.
27185 (__arm_vqshlq_m_n_u8): Likewise.
27186 (__arm_vqshlq_m_n_u32): Likewise.
27187 (__arm_vqshlq_m_n_u16): Likewise.
27188 (__arm_vqshlq_m_s8): Likewise.
27189 (__arm_vqshlq_m_s32): Likewise.
27190 (__arm_vqshlq_m_s16): Likewise.
27191 (__arm_vqshlq_m_u8): Likewise.
27192 (__arm_vqshlq_m_u32): Likewise.
27193 (__arm_vqshlq_m_u16): Likewise.
27194 (__arm_vqsubq_m_n_s8): Likewise.
27195 (__arm_vqsubq_m_n_s32): Likewise.
27196 (__arm_vqsubq_m_n_s16): Likewise.
27197 (__arm_vqsubq_m_n_u8): Likewise.
27198 (__arm_vqsubq_m_n_u32): Likewise.
27199 (__arm_vqsubq_m_n_u16): Likewise.
27200 (__arm_vqsubq_m_s8): Likewise.
27201 (__arm_vqsubq_m_s32): Likewise.
27202 (__arm_vqsubq_m_s16): Likewise.
27203 (__arm_vqsubq_m_u8): Likewise.
27204 (__arm_vqsubq_m_u32): Likewise.
27205 (__arm_vqsubq_m_u16): Likewise.
27206 (__arm_vrhaddq_m_s8): Likewise.
27207 (__arm_vrhaddq_m_s32): Likewise.
27208 (__arm_vrhaddq_m_s16): Likewise.
27209 (__arm_vrhaddq_m_u8): Likewise.
27210 (__arm_vrhaddq_m_u32): Likewise.
27211 (__arm_vrhaddq_m_u16): Likewise.
27212 (__arm_vrmulhq_m_s8): Likewise.
27213 (__arm_vrmulhq_m_s32): Likewise.
27214 (__arm_vrmulhq_m_s16): Likewise.
27215 (__arm_vrmulhq_m_u8): Likewise.
27216 (__arm_vrmulhq_m_u32): Likewise.
27217 (__arm_vrmulhq_m_u16): Likewise.
27218 (__arm_vrshlq_m_s8): Likewise.
27219 (__arm_vrshlq_m_s32): Likewise.
27220 (__arm_vrshlq_m_s16): Likewise.
27221 (__arm_vrshlq_m_u8): Likewise.
27222 (__arm_vrshlq_m_u32): Likewise.
27223 (__arm_vrshlq_m_u16): Likewise.
27224 (__arm_vrshrq_m_n_s8): Likewise.
27225 (__arm_vrshrq_m_n_s32): Likewise.
27226 (__arm_vrshrq_m_n_s16): Likewise.
27227 (__arm_vrshrq_m_n_u8): Likewise.
27228 (__arm_vrshrq_m_n_u32): Likewise.
27229 (__arm_vrshrq_m_n_u16): Likewise.
27230 (__arm_vshlq_m_n_s8): Likewise.
27231 (__arm_vshlq_m_n_s32): Likewise.
27232 (__arm_vshlq_m_n_s16): Likewise.
27233 (__arm_vshlq_m_n_u8): Likewise.
27234 (__arm_vshlq_m_n_u32): Likewise.
27235 (__arm_vshlq_m_n_u16): Likewise.
27236 (__arm_vshrq_m_n_s8): Likewise.
27237 (__arm_vshrq_m_n_s32): Likewise.
27238 (__arm_vshrq_m_n_s16): Likewise.
27239 (__arm_vshrq_m_n_u8): Likewise.
27240 (__arm_vshrq_m_n_u32): Likewise.
27241 (__arm_vshrq_m_n_u16): Likewise.
27242 (__arm_vsliq_m_n_s8): Likewise.
27243 (__arm_vsliq_m_n_s32): Likewise.
27244 (__arm_vsliq_m_n_s16): Likewise.
27245 (__arm_vsliq_m_n_u8): Likewise.
27246 (__arm_vsliq_m_n_u32): Likewise.
27247 (__arm_vsliq_m_n_u16): Likewise.
27248 (__arm_vsubq_m_n_s8): Likewise.
27249 (__arm_vsubq_m_n_s32): Likewise.
27250 (__arm_vsubq_m_n_s16): Likewise.
27251 (__arm_vsubq_m_n_u8): Likewise.
27252 (__arm_vsubq_m_n_u32): Likewise.
27253 (__arm_vsubq_m_n_u16): Likewise.
27254 (vqdmladhq_m): Define polymorphic variant.
27255 (vqdmladhxq_m): Likewise.
27256 (vqdmlsdhq_m): Likewise.
27257 (vqdmlsdhxq_m): Likewise.
27258 (vabdq_m): Likewise.
27259 (vandq_m): Likewise.
27260 (vbicq_m): Likewise.
27261 (vbrsrq_m_n): Likewise.
27262 (vcaddq_rot270_m): Likewise.
27263 (vcaddq_rot90_m): Likewise.
27264 (veorq_m): Likewise.
27265 (vmaxq_m): Likewise.
27266 (vminq_m): Likewise.
27267 (vmladavaq_p): Likewise.
27268 (vmlaq_m_n): Likewise.
27269 (vmlasq_m_n): Likewise.
27270 (vmulhq_m): Likewise.
27271 (vmullbq_int_m): Likewise.
27272 (vmulltq_int_m): Likewise.
27273 (vornq_m): Likewise.
27274 (vorrq_m): Likewise.
27275 (vqdmlahq_m_n): Likewise.
27276 (vqrdmlahq_m_n): Likewise.
27277 (vqrdmlashq_m_n): Likewise.
27278 (vqrshlq_m): Likewise.
27279 (vqshlq_m_n): Likewise.
27280 (vqshlq_m): Likewise.
27281 (vrhaddq_m): Likewise.
27282 (vrmulhq_m): Likewise.
27283 (vrshlq_m): Likewise.
27284 (vrshrq_m_n): Likewise.
27285 (vshlq_m_n): Likewise.
27286 (vshrq_m_n): Likewise.
27287 (vsliq_m): Likewise.
27288 (vaddq_m_n): Likewise.
27289 (vaddq_m): Likewise.
27290 (vhaddq_m_n): Likewise.
27291 (vhaddq_m): Likewise.
27292 (vhcaddq_rot270_m): Likewise.
27293 (vhcaddq_rot90_m): Likewise.
27294 (vhsubq_m): Likewise.
27295 (vhsubq_m_n): Likewise.
27296 (vmulq_m_n): Likewise.
27297 (vmulq_m): Likewise.
27298 (vqaddq_m_n): Likewise.
27299 (vqaddq_m): Likewise.
27300 (vqdmulhq_m_n): Likewise.
27301 (vqdmulhq_m): Likewise.
27302 (vsubq_m_n): Likewise.
27303 (vsliq_m_n): Likewise.
27304 (vqsubq_m_n): Likewise.
27305 (vqsubq_m): Likewise.
27306 (vqrdmulhq_m): Likewise.
27307 (vqrdmulhq_m_n): Likewise.
27308 (vqrdmlsdhxq_m): Likewise.
27309 (vqrdmlsdhq_m): Likewise.
27310 (vqrdmladhq_m): Likewise.
27311 (vqrdmladhxq_m): Likewise.
27312 (vmlsdavaxq_p): Likewise.
27313 (vmlsdavaq_p): Likewise.
27314 (vmladavaxq_p): Likewise.
27315 * config/arm/arm_mve_builtins.def (QUADOP_NONE_NONE_NONE_IMM_UNONE): Use
27316 builtin qualifier.
27317 (QUADOP_NONE_NONE_NONE_NONE_UNONE): Likewise.
27318 (QUADOP_UNONE_UNONE_UNONE_IMM_UNONE): Likewise.
27319 (QUADOP_UNONE_UNONE_UNONE_NONE_UNONE): Likewise.
27320 (QUADOP_UNONE_UNONE_UNONE_UNONE_UNONE): Likewise.
27321 * config/arm/mve.md (VHSUBQ_M): Define iterators.
27322 (VSLIQ_M_N): Likewise.
27323 (VQRDMLAHQ_M_N): Likewise.
27324 (VRSHLQ_M): Likewise.
27325 (VMINQ_M): Likewise.
27326 (VMULLBQ_INT_M): Likewise.
27327 (VMULHQ_M): Likewise.
27328 (VMULQ_M): Likewise.
27329 (VHSUBQ_M_N): Likewise.
27330 (VHADDQ_M_N): Likewise.
27331 (VORRQ_M): Likewise.
27332 (VRMULHQ_M): Likewise.
27333 (VQADDQ_M): Likewise.
27334 (VRSHRQ_M_N): Likewise.
27335 (VQSUBQ_M_N): Likewise.
27336 (VADDQ_M): Likewise.
27337 (VORNQ_M): Likewise.
27338 (VQDMLAHQ_M_N): Likewise.
27339 (VRHADDQ_M): Likewise.
27340 (VQSHLQ_M): Likewise.
27341 (VANDQ_M): Likewise.
27342 (VBICQ_M): Likewise.
27343 (VSHLQ_M_N): Likewise.
27344 (VCADDQ_ROT270_M): Likewise.
27345 (VQRSHLQ_M): Likewise.
27346 (VQADDQ_M_N): Likewise.
27347 (VADDQ_M_N): Likewise.
27348 (VMAXQ_M): Likewise.
27349 (VQSUBQ_M): Likewise.
27350 (VMLASQ_M_N): Likewise.
27351 (VMLADAVAQ_P): Likewise.
27352 (VBRSRQ_M_N): Likewise.
27353 (VMULQ_M_N): Likewise.
27354 (VCADDQ_ROT90_M): Likewise.
27355 (VMULLTQ_INT_M): Likewise.
27356 (VEORQ_M): Likewise.
27357 (VSHRQ_M_N): Likewise.
27358 (VSUBQ_M_N): Likewise.
27359 (VHADDQ_M): Likewise.
27360 (VABDQ_M): Likewise.
27361 (VQRDMLASHQ_M_N): Likewise.
27362 (VMLAQ_M_N): Likewise.
27363 (VQSHLQ_M_N): Likewise.
27364 (mve_vabdq_m_<supf><mode>): Define RTL pattern.
27365 (mve_vaddq_m_n_<supf><mode>): Likewise.
27366 (mve_vaddq_m_<supf><mode>): Likewise.
27367 (mve_vandq_m_<supf><mode>): Likewise.
27368 (mve_vbicq_m_<supf><mode>): Likewise.
27369 (mve_vbrsrq_m_n_<supf><mode>): Likewise.
27370 (mve_vcaddq_rot270_m_<supf><mode>): Likewise.
27371 (mve_vcaddq_rot90_m_<supf><mode>): Likewise.
27372 (mve_veorq_m_<supf><mode>): Likewise.
27373 (mve_vhaddq_m_n_<supf><mode>): Likewise.
27374 (mve_vhaddq_m_<supf><mode>): Likewise.
27375 (mve_vhsubq_m_n_<supf><mode>): Likewise.
27376 (mve_vhsubq_m_<supf><mode>): Likewise.
27377 (mve_vmaxq_m_<supf><mode>): Likewise.
27378 (mve_vminq_m_<supf><mode>): Likewise.
27379 (mve_vmladavaq_p_<supf><mode>): Likewise.
27380 (mve_vmlaq_m_n_<supf><mode>): Likewise.
27381 (mve_vmlasq_m_n_<supf><mode>): Likewise.
27382 (mve_vmulhq_m_<supf><mode>): Likewise.
27383 (mve_vmullbq_int_m_<supf><mode>): Likewise.
27384 (mve_vmulltq_int_m_<supf><mode>): Likewise.
27385 (mve_vmulq_m_n_<supf><mode>): Likewise.
27386 (mve_vmulq_m_<supf><mode>): Likewise.
27387 (mve_vornq_m_<supf><mode>): Likewise.
27388 (mve_vorrq_m_<supf><mode>): Likewise.
27389 (mve_vqaddq_m_n_<supf><mode>): Likewise.
27390 (mve_vqaddq_m_<supf><mode>): Likewise.
27391 (mve_vqdmlahq_m_n_<supf><mode>): Likewise.
27392 (mve_vqrdmlahq_m_n_<supf><mode>): Likewise.
27393 (mve_vqrdmlashq_m_n_<supf><mode>): Likewise.
27394 (mve_vqrshlq_m_<supf><mode>): Likewise.
27395 (mve_vqshlq_m_n_<supf><mode>): Likewise.
27396 (mve_vqshlq_m_<supf><mode>): Likewise.
27397 (mve_vqsubq_m_n_<supf><mode>): Likewise.
27398 (mve_vqsubq_m_<supf><mode>): Likewise.
27399 (mve_vrhaddq_m_<supf><mode>): Likewise.
27400 (mve_vrmulhq_m_<supf><mode>): Likewise.
27401 (mve_vrshlq_m_<supf><mode>): Likewise.
27402 (mve_vrshrq_m_n_<supf><mode>): Likewise.
27403 (mve_vshlq_m_n_<supf><mode>): Likewise.
27404 (mve_vshrq_m_n_<supf><mode>): Likewise.
27405 (mve_vsliq_m_n_<supf><mode>): Likewise.
27406 (mve_vsubq_m_n_<supf><mode>): Likewise.
27407 (mve_vhcaddq_rot270_m_s<mode>): Likewise.
27408 (mve_vhcaddq_rot90_m_s<mode>): Likewise.
27409 (mve_vmladavaxq_p_s<mode>): Likewise.
27410 (mve_vmlsdavaq_p_s<mode>): Likewise.
27411 (mve_vmlsdavaxq_p_s<mode>): Likewise.
27412 (mve_vqdmladhq_m_s<mode>): Likewise.
27413 (mve_vqdmladhxq_m_s<mode>): Likewise.
27414 (mve_vqdmlsdhq_m_s<mode>): Likewise.
27415 (mve_vqdmlsdhxq_m_s<mode>): Likewise.
27416 (mve_vqdmulhq_m_n_s<mode>): Likewise.
27417 (mve_vqdmulhq_m_s<mode>): Likewise.
27418 (mve_vqrdmladhq_m_s<mode>): Likewise.
27419 (mve_vqrdmladhxq_m_s<mode>): Likewise.
27420 (mve_vqrdmlsdhq_m_s<mode>): Likewise.
27421 (mve_vqrdmlsdhxq_m_s<mode>): Likewise.
27422 (mve_vqrdmulhq_m_n_s<mode>): Likewise.
27423 (mve_vqrdmulhq_m_s<mode>): Likewise.
27424
27425 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
27426 Mihail Ionescu <mihail.ionescu@arm.com>
27427 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
27428
27429 * config/arm/arm-builtins.c (QUADOP_UNONE_UNONE_NONE_NONE_UNONE_QUALIFIERS):
27430 Define builtin qualifier.
27431 (QUADOP_NONE_NONE_NONE_NONE_UNONE_QUALIFIERS): Likewise.
27432 (QUADOP_NONE_NONE_NONE_IMM_UNONE_QUALIFIERS): Likewise.
27433 (QUADOP_UNONE_UNONE_UNONE_UNONE_UNONE_QUALIFIERS): Likewise.
27434 (QUADOP_UNONE_UNONE_NONE_IMM_UNONE_QUALIFIERS): Likewise.
27435 (QUADOP_NONE_NONE_UNONE_IMM_UNONE_QUALIFIERS): Likewise.
27436 (QUADOP_UNONE_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Likewise.
27437 (QUADOP_UNONE_UNONE_UNONE_NONE_UNONE_QUALIFIERS): Likewise.
27438 * config/arm/arm_mve.h (vsriq_m_n_s8): Define macro.
27439 (vsubq_m_s8): Likewise.
27440 (vcvtq_m_n_f16_u16): Likewise.
27441 (vqshluq_m_n_s8): Likewise.
27442 (vabavq_p_s8): Likewise.
27443 (vsriq_m_n_u8): Likewise.
27444 (vshlq_m_u8): Likewise.
27445 (vsubq_m_u8): Likewise.
27446 (vabavq_p_u8): Likewise.
27447 (vshlq_m_s8): Likewise.
27448 (vcvtq_m_n_f16_s16): Likewise.
27449 (vsriq_m_n_s16): Likewise.
27450 (vsubq_m_s16): Likewise.
27451 (vcvtq_m_n_f32_u32): Likewise.
27452 (vqshluq_m_n_s16): Likewise.
27453 (vabavq_p_s16): Likewise.
27454 (vsriq_m_n_u16): Likewise.
27455 (vshlq_m_u16): Likewise.
27456 (vsubq_m_u16): Likewise.
27457 (vabavq_p_u16): Likewise.
27458 (vshlq_m_s16): Likewise.
27459 (vcvtq_m_n_f32_s32): Likewise.
27460 (vsriq_m_n_s32): Likewise.
27461 (vsubq_m_s32): Likewise.
27462 (vqshluq_m_n_s32): Likewise.
27463 (vabavq_p_s32): Likewise.
27464 (vsriq_m_n_u32): Likewise.
27465 (vshlq_m_u32): Likewise.
27466 (vsubq_m_u32): Likewise.
27467 (vabavq_p_u32): Likewise.
27468 (vshlq_m_s32): Likewise.
27469 (__arm_vsriq_m_n_s8): Define intrinsic.
27470 (__arm_vsubq_m_s8): Likewise.
27471 (__arm_vqshluq_m_n_s8): Likewise.
27472 (__arm_vabavq_p_s8): Likewise.
27473 (__arm_vsriq_m_n_u8): Likewise.
27474 (__arm_vshlq_m_u8): Likewise.
27475 (__arm_vsubq_m_u8): Likewise.
27476 (__arm_vabavq_p_u8): Likewise.
27477 (__arm_vshlq_m_s8): Likewise.
27478 (__arm_vsriq_m_n_s16): Likewise.
27479 (__arm_vsubq_m_s16): Likewise.
27480 (__arm_vqshluq_m_n_s16): Likewise.
27481 (__arm_vabavq_p_s16): Likewise.
27482 (__arm_vsriq_m_n_u16): Likewise.
27483 (__arm_vshlq_m_u16): Likewise.
27484 (__arm_vsubq_m_u16): Likewise.
27485 (__arm_vabavq_p_u16): Likewise.
27486 (__arm_vshlq_m_s16): Likewise.
27487 (__arm_vsriq_m_n_s32): Likewise.
27488 (__arm_vsubq_m_s32): Likewise.
27489 (__arm_vqshluq_m_n_s32): Likewise.
27490 (__arm_vabavq_p_s32): Likewise.
27491 (__arm_vsriq_m_n_u32): Likewise.
27492 (__arm_vshlq_m_u32): Likewise.
27493 (__arm_vsubq_m_u32): Likewise.
27494 (__arm_vabavq_p_u32): Likewise.
27495 (__arm_vshlq_m_s32): Likewise.
27496 (__arm_vcvtq_m_n_f16_u16): Likewise.
27497 (__arm_vcvtq_m_n_f16_s16): Likewise.
27498 (__arm_vcvtq_m_n_f32_u32): Likewise.
27499 (__arm_vcvtq_m_n_f32_s32): Likewise.
27500 (vcvtq_m_n): Define polymorphic variant.
27501 (vqshluq_m_n): Likewise.
27502 (vshlq_m): Likewise.
27503 (vsriq_m_n): Likewise.
27504 (vsubq_m): Likewise.
27505 (vabavq_p): Likewise.
27506 * config/arm/arm_mve_builtins.def
27507 (QUADOP_UNONE_UNONE_NONE_NONE_UNONE_QUALIFIERS): Use builtin qualifier.
27508 (QUADOP_NONE_NONE_NONE_NONE_UNONE_QUALIFIERS): Likewise.
27509 (QUADOP_NONE_NONE_NONE_IMM_UNONE_QUALIFIERS): Likewise.
27510 (QUADOP_UNONE_UNONE_UNONE_UNONE_UNONE_QUALIFIERS): Likewise.
27511 (QUADOP_UNONE_UNONE_NONE_IMM_UNONE_QUALIFIERS): Likewise.
27512 (QUADOP_NONE_NONE_UNONE_IMM_UNONE_QUALIFIERS): Likewise.
27513 (QUADOP_UNONE_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Likewise.
27514 (QUADOP_UNONE_UNONE_UNONE_NONE_UNONE_QUALIFIERS): Likewise.
27515 * config/arm/mve.md (VABAVQ_P): Define iterator.
27516 (VSHLQ_M): Likewise.
27517 (VSRIQ_M_N): Likewise.
27518 (VSUBQ_M): Likewise.
27519 (VCVTQ_M_N_TO_F): Likewise.
27520 (mve_vabavq_p_<supf><mode>): Define RTL pattern.
27521 (mve_vqshluq_m_n_s<mode>): Likewise.
27522 (mve_vshlq_m_<supf><mode>): Likewise.
27523 (mve_vsriq_m_n_<supf><mode>): Likewise.
27524 (mve_vsubq_m_<supf><mode>): Likewise.
27525 (mve_vcvtq_m_n_to_f_<supf><mode>): Likewise.
27526
27527 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
27528 Mihail Ionescu <mihail.ionescu@arm.com>
27529 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
27530
27531 * config/arm/arm_mve.h (vrmlaldavhaxq_s32): Define macro.
27532 (vrmlsldavhaq_s32): Likewise.
27533 (vrmlsldavhaxq_s32): Likewise.
27534 (vaddlvaq_p_s32): Likewise.
27535 (vcvtbq_m_f16_f32): Likewise.
27536 (vcvtbq_m_f32_f16): Likewise.
27537 (vcvttq_m_f16_f32): Likewise.
27538 (vcvttq_m_f32_f16): Likewise.
27539 (vrev16q_m_s8): Likewise.
27540 (vrev32q_m_f16): Likewise.
27541 (vrmlaldavhq_p_s32): Likewise.
27542 (vrmlaldavhxq_p_s32): Likewise.
27543 (vrmlsldavhq_p_s32): Likewise.
27544 (vrmlsldavhxq_p_s32): Likewise.
27545 (vaddlvaq_p_u32): Likewise.
27546 (vrev16q_m_u8): Likewise.
27547 (vrmlaldavhq_p_u32): Likewise.
27548 (vmvnq_m_n_s16): Likewise.
27549 (vorrq_m_n_s16): Likewise.
27550 (vqrshrntq_n_s16): Likewise.
27551 (vqshrnbq_n_s16): Likewise.
27552 (vqshrntq_n_s16): Likewise.
27553 (vrshrnbq_n_s16): Likewise.
27554 (vrshrntq_n_s16): Likewise.
27555 (vshrnbq_n_s16): Likewise.
27556 (vshrntq_n_s16): Likewise.
27557 (vcmlaq_f16): Likewise.
27558 (vcmlaq_rot180_f16): Likewise.
27559 (vcmlaq_rot270_f16): Likewise.
27560 (vcmlaq_rot90_f16): Likewise.
27561 (vfmaq_f16): Likewise.
27562 (vfmaq_n_f16): Likewise.
27563 (vfmasq_n_f16): Likewise.
27564 (vfmsq_f16): Likewise.
27565 (vmlaldavaq_s16): Likewise.
27566 (vmlaldavaxq_s16): Likewise.
27567 (vmlsldavaq_s16): Likewise.
27568 (vmlsldavaxq_s16): Likewise.
27569 (vabsq_m_f16): Likewise.
27570 (vcvtmq_m_s16_f16): Likewise.
27571 (vcvtnq_m_s16_f16): Likewise.
27572 (vcvtpq_m_s16_f16): Likewise.
27573 (vcvtq_m_s16_f16): Likewise.
27574 (vdupq_m_n_f16): Likewise.
27575 (vmaxnmaq_m_f16): Likewise.
27576 (vmaxnmavq_p_f16): Likewise.
27577 (vmaxnmvq_p_f16): Likewise.
27578 (vminnmaq_m_f16): Likewise.
27579 (vminnmavq_p_f16): Likewise.
27580 (vminnmvq_p_f16): Likewise.
27581 (vmlaldavq_p_s16): Likewise.
27582 (vmlaldavxq_p_s16): Likewise.
27583 (vmlsldavq_p_s16): Likewise.
27584 (vmlsldavxq_p_s16): Likewise.
27585 (vmovlbq_m_s8): Likewise.
27586 (vmovltq_m_s8): Likewise.
27587 (vmovnbq_m_s16): Likewise.
27588 (vmovntq_m_s16): Likewise.
27589 (vnegq_m_f16): Likewise.
27590 (vpselq_f16): Likewise.
27591 (vqmovnbq_m_s16): Likewise.
27592 (vqmovntq_m_s16): Likewise.
27593 (vrev32q_m_s8): Likewise.
27594 (vrev64q_m_f16): Likewise.
27595 (vrndaq_m_f16): Likewise.
27596 (vrndmq_m_f16): Likewise.
27597 (vrndnq_m_f16): Likewise.
27598 (vrndpq_m_f16): Likewise.
27599 (vrndq_m_f16): Likewise.
27600 (vrndxq_m_f16): Likewise.
27601 (vcmpeqq_m_n_f16): Likewise.
27602 (vcmpgeq_m_f16): Likewise.
27603 (vcmpgeq_m_n_f16): Likewise.
27604 (vcmpgtq_m_f16): Likewise.
27605 (vcmpgtq_m_n_f16): Likewise.
27606 (vcmpleq_m_f16): Likewise.
27607 (vcmpleq_m_n_f16): Likewise.
27608 (vcmpltq_m_f16): Likewise.
27609 (vcmpltq_m_n_f16): Likewise.
27610 (vcmpneq_m_f16): Likewise.
27611 (vcmpneq_m_n_f16): Likewise.
27612 (vmvnq_m_n_u16): Likewise.
27613 (vorrq_m_n_u16): Likewise.
27614 (vqrshruntq_n_s16): Likewise.
27615 (vqshrunbq_n_s16): Likewise.
27616 (vqshruntq_n_s16): Likewise.
27617 (vcvtmq_m_u16_f16): Likewise.
27618 (vcvtnq_m_u16_f16): Likewise.
27619 (vcvtpq_m_u16_f16): Likewise.
27620 (vcvtq_m_u16_f16): Likewise.
27621 (vqmovunbq_m_s16): Likewise.
27622 (vqmovuntq_m_s16): Likewise.
27623 (vqrshrntq_n_u16): Likewise.
27624 (vqshrnbq_n_u16): Likewise.
27625 (vqshrntq_n_u16): Likewise.
27626 (vrshrnbq_n_u16): Likewise.
27627 (vrshrntq_n_u16): Likewise.
27628 (vshrnbq_n_u16): Likewise.
27629 (vshrntq_n_u16): Likewise.
27630 (vmlaldavaq_u16): Likewise.
27631 (vmlaldavaxq_u16): Likewise.
27632 (vmlaldavq_p_u16): Likewise.
27633 (vmlaldavxq_p_u16): Likewise.
27634 (vmovlbq_m_u8): Likewise.
27635 (vmovltq_m_u8): Likewise.
27636 (vmovnbq_m_u16): Likewise.
27637 (vmovntq_m_u16): Likewise.
27638 (vqmovnbq_m_u16): Likewise.
27639 (vqmovntq_m_u16): Likewise.
27640 (vrev32q_m_u8): Likewise.
27641 (vmvnq_m_n_s32): Likewise.
27642 (vorrq_m_n_s32): Likewise.
27643 (vqrshrntq_n_s32): Likewise.
27644 (vqshrnbq_n_s32): Likewise.
27645 (vqshrntq_n_s32): Likewise.
27646 (vrshrnbq_n_s32): Likewise.
27647 (vrshrntq_n_s32): Likewise.
27648 (vshrnbq_n_s32): Likewise.
27649 (vshrntq_n_s32): Likewise.
27650 (vcmlaq_f32): Likewise.
27651 (vcmlaq_rot180_f32): Likewise.
27652 (vcmlaq_rot270_f32): Likewise.
27653 (vcmlaq_rot90_f32): Likewise.
27654 (vfmaq_f32): Likewise.
27655 (vfmaq_n_f32): Likewise.
27656 (vfmasq_n_f32): Likewise.
27657 (vfmsq_f32): Likewise.
27658 (vmlaldavaq_s32): Likewise.
27659 (vmlaldavaxq_s32): Likewise.
27660 (vmlsldavaq_s32): Likewise.
27661 (vmlsldavaxq_s32): Likewise.
27662 (vabsq_m_f32): Likewise.
27663 (vcvtmq_m_s32_f32): Likewise.
27664 (vcvtnq_m_s32_f32): Likewise.
27665 (vcvtpq_m_s32_f32): Likewise.
27666 (vcvtq_m_s32_f32): Likewise.
27667 (vdupq_m_n_f32): Likewise.
27668 (vmaxnmaq_m_f32): Likewise.
27669 (vmaxnmavq_p_f32): Likewise.
27670 (vmaxnmvq_p_f32): Likewise.
27671 (vminnmaq_m_f32): Likewise.
27672 (vminnmavq_p_f32): Likewise.
27673 (vminnmvq_p_f32): Likewise.
27674 (vmlaldavq_p_s32): Likewise.
27675 (vmlaldavxq_p_s32): Likewise.
27676 (vmlsldavq_p_s32): Likewise.
27677 (vmlsldavxq_p_s32): Likewise.
27678 (vmovlbq_m_s16): Likewise.
27679 (vmovltq_m_s16): Likewise.
27680 (vmovnbq_m_s32): Likewise.
27681 (vmovntq_m_s32): Likewise.
27682 (vnegq_m_f32): Likewise.
27683 (vpselq_f32): Likewise.
27684 (vqmovnbq_m_s32): Likewise.
27685 (vqmovntq_m_s32): Likewise.
27686 (vrev32q_m_s16): Likewise.
27687 (vrev64q_m_f32): Likewise.
27688 (vrndaq_m_f32): Likewise.
27689 (vrndmq_m_f32): Likewise.
27690 (vrndnq_m_f32): Likewise.
27691 (vrndpq_m_f32): Likewise.
27692 (vrndq_m_f32): Likewise.
27693 (vrndxq_m_f32): Likewise.
27694 (vcmpeqq_m_n_f32): Likewise.
27695 (vcmpgeq_m_f32): Likewise.
27696 (vcmpgeq_m_n_f32): Likewise.
27697 (vcmpgtq_m_f32): Likewise.
27698 (vcmpgtq_m_n_f32): Likewise.
27699 (vcmpleq_m_f32): Likewise.
27700 (vcmpleq_m_n_f32): Likewise.
27701 (vcmpltq_m_f32): Likewise.
27702 (vcmpltq_m_n_f32): Likewise.
27703 (vcmpneq_m_f32): Likewise.
27704 (vcmpneq_m_n_f32): Likewise.
27705 (vmvnq_m_n_u32): Likewise.
27706 (vorrq_m_n_u32): Likewise.
27707 (vqrshruntq_n_s32): Likewise.
27708 (vqshrunbq_n_s32): Likewise.
27709 (vqshruntq_n_s32): Likewise.
27710 (vcvtmq_m_u32_f32): Likewise.
27711 (vcvtnq_m_u32_f32): Likewise.
27712 (vcvtpq_m_u32_f32): Likewise.
27713 (vcvtq_m_u32_f32): Likewise.
27714 (vqmovunbq_m_s32): Likewise.
27715 (vqmovuntq_m_s32): Likewise.
27716 (vqrshrntq_n_u32): Likewise.
27717 (vqshrnbq_n_u32): Likewise.
27718 (vqshrntq_n_u32): Likewise.
27719 (vrshrnbq_n_u32): Likewise.
27720 (vrshrntq_n_u32): Likewise.
27721 (vshrnbq_n_u32): Likewise.
27722 (vshrntq_n_u32): Likewise.
27723 (vmlaldavaq_u32): Likewise.
27724 (vmlaldavaxq_u32): Likewise.
27725 (vmlaldavq_p_u32): Likewise.
27726 (vmlaldavxq_p_u32): Likewise.
27727 (vmovlbq_m_u16): Likewise.
27728 (vmovltq_m_u16): Likewise.
27729 (vmovnbq_m_u32): Likewise.
27730 (vmovntq_m_u32): Likewise.
27731 (vqmovnbq_m_u32): Likewise.
27732 (vqmovntq_m_u32): Likewise.
27733 (vrev32q_m_u16): Likewise.
27734 (__arm_vrmlaldavhaxq_s32): Define intrinsic.
27735 (__arm_vrmlsldavhaq_s32): Likewise.
27736 (__arm_vrmlsldavhaxq_s32): Likewise.
27737 (__arm_vaddlvaq_p_s32): Likewise.
27738 (__arm_vrev16q_m_s8): Likewise.
27739 (__arm_vrmlaldavhq_p_s32): Likewise.
27740 (__arm_vrmlaldavhxq_p_s32): Likewise.
27741 (__arm_vrmlsldavhq_p_s32): Likewise.
27742 (__arm_vrmlsldavhxq_p_s32): Likewise.
27743 (__arm_vaddlvaq_p_u32): Likewise.
27744 (__arm_vrev16q_m_u8): Likewise.
27745 (__arm_vrmlaldavhq_p_u32): Likewise.
27746 (__arm_vmvnq_m_n_s16): Likewise.
27747 (__arm_vorrq_m_n_s16): Likewise.
27748 (__arm_vqrshrntq_n_s16): Likewise.
27749 (__arm_vqshrnbq_n_s16): Likewise.
27750 (__arm_vqshrntq_n_s16): Likewise.
27751 (__arm_vrshrnbq_n_s16): Likewise.
27752 (__arm_vrshrntq_n_s16): Likewise.
27753 (__arm_vshrnbq_n_s16): Likewise.
27754 (__arm_vshrntq_n_s16): Likewise.
27755 (__arm_vmlaldavaq_s16): Likewise.
27756 (__arm_vmlaldavaxq_s16): Likewise.
27757 (__arm_vmlsldavaq_s16): Likewise.
27758 (__arm_vmlsldavaxq_s16): Likewise.
27759 (__arm_vmlaldavq_p_s16): Likewise.
27760 (__arm_vmlaldavxq_p_s16): Likewise.
27761 (__arm_vmlsldavq_p_s16): Likewise.
27762 (__arm_vmlsldavxq_p_s16): Likewise.
27763 (__arm_vmovlbq_m_s8): Likewise.
27764 (__arm_vmovltq_m_s8): Likewise.
27765 (__arm_vmovnbq_m_s16): Likewise.
27766 (__arm_vmovntq_m_s16): Likewise.
27767 (__arm_vqmovnbq_m_s16): Likewise.
27768 (__arm_vqmovntq_m_s16): Likewise.
27769 (__arm_vrev32q_m_s8): Likewise.
27770 (__arm_vmvnq_m_n_u16): Likewise.
27771 (__arm_vorrq_m_n_u16): Likewise.
27772 (__arm_vqrshruntq_n_s16): Likewise.
27773 (__arm_vqshrunbq_n_s16): Likewise.
27774 (__arm_vqshruntq_n_s16): Likewise.
27775 (__arm_vqmovunbq_m_s16): Likewise.
27776 (__arm_vqmovuntq_m_s16): Likewise.
27777 (__arm_vqrshrntq_n_u16): Likewise.
27778 (__arm_vqshrnbq_n_u16): Likewise.
27779 (__arm_vqshrntq_n_u16): Likewise.
27780 (__arm_vrshrnbq_n_u16): Likewise.
27781 (__arm_vrshrntq_n_u16): Likewise.
27782 (__arm_vshrnbq_n_u16): Likewise.
27783 (__arm_vshrntq_n_u16): Likewise.
27784 (__arm_vmlaldavaq_u16): Likewise.
27785 (__arm_vmlaldavaxq_u16): Likewise.
27786 (__arm_vmlaldavq_p_u16): Likewise.
27787 (__arm_vmlaldavxq_p_u16): Likewise.
27788 (__arm_vmovlbq_m_u8): Likewise.
27789 (__arm_vmovltq_m_u8): Likewise.
27790 (__arm_vmovnbq_m_u16): Likewise.
27791 (__arm_vmovntq_m_u16): Likewise.
27792 (__arm_vqmovnbq_m_u16): Likewise.
27793 (__arm_vqmovntq_m_u16): Likewise.
27794 (__arm_vrev32q_m_u8): Likewise.
27795 (__arm_vmvnq_m_n_s32): Likewise.
27796 (__arm_vorrq_m_n_s32): Likewise.
27797 (__arm_vqrshrntq_n_s32): Likewise.
27798 (__arm_vqshrnbq_n_s32): Likewise.
27799 (__arm_vqshrntq_n_s32): Likewise.
27800 (__arm_vrshrnbq_n_s32): Likewise.
27801 (__arm_vrshrntq_n_s32): Likewise.
27802 (__arm_vshrnbq_n_s32): Likewise.
27803 (__arm_vshrntq_n_s32): Likewise.
27804 (__arm_vmlaldavaq_s32): Likewise.
27805 (__arm_vmlaldavaxq_s32): Likewise.
27806 (__arm_vmlsldavaq_s32): Likewise.
27807 (__arm_vmlsldavaxq_s32): Likewise.
27808 (__arm_vmlaldavq_p_s32): Likewise.
27809 (__arm_vmlaldavxq_p_s32): Likewise.
27810 (__arm_vmlsldavq_p_s32): Likewise.
27811 (__arm_vmlsldavxq_p_s32): Likewise.
27812 (__arm_vmovlbq_m_s16): Likewise.
27813 (__arm_vmovltq_m_s16): Likewise.
27814 (__arm_vmovnbq_m_s32): Likewise.
27815 (__arm_vmovntq_m_s32): Likewise.
27816 (__arm_vqmovnbq_m_s32): Likewise.
27817 (__arm_vqmovntq_m_s32): Likewise.
27818 (__arm_vrev32q_m_s16): Likewise.
27819 (__arm_vmvnq_m_n_u32): Likewise.
27820 (__arm_vorrq_m_n_u32): Likewise.
27821 (__arm_vqrshruntq_n_s32): Likewise.
27822 (__arm_vqshrunbq_n_s32): Likewise.
27823 (__arm_vqshruntq_n_s32): Likewise.
27824 (__arm_vqmovunbq_m_s32): Likewise.
27825 (__arm_vqmovuntq_m_s32): Likewise.
27826 (__arm_vqrshrntq_n_u32): Likewise.
27827 (__arm_vqshrnbq_n_u32): Likewise.
27828 (__arm_vqshrntq_n_u32): Likewise.
27829 (__arm_vrshrnbq_n_u32): Likewise.
27830 (__arm_vrshrntq_n_u32): Likewise.
27831 (__arm_vshrnbq_n_u32): Likewise.
27832 (__arm_vshrntq_n_u32): Likewise.
27833 (__arm_vmlaldavaq_u32): Likewise.
27834 (__arm_vmlaldavaxq_u32): Likewise.
27835 (__arm_vmlaldavq_p_u32): Likewise.
27836 (__arm_vmlaldavxq_p_u32): Likewise.
27837 (__arm_vmovlbq_m_u16): Likewise.
27838 (__arm_vmovltq_m_u16): Likewise.
27839 (__arm_vmovnbq_m_u32): Likewise.
27840 (__arm_vmovntq_m_u32): Likewise.
27841 (__arm_vqmovnbq_m_u32): Likewise.
27842 (__arm_vqmovntq_m_u32): Likewise.
27843 (__arm_vrev32q_m_u16): Likewise.
27844 (__arm_vcvtbq_m_f16_f32): Likewise.
27845 (__arm_vcvtbq_m_f32_f16): Likewise.
27846 (__arm_vcvttq_m_f16_f32): Likewise.
27847 (__arm_vcvttq_m_f32_f16): Likewise.
27848 (__arm_vrev32q_m_f16): Likewise.
27849 (__arm_vcmlaq_f16): Likewise.
27850 (__arm_vcmlaq_rot180_f16): Likewise.
27851 (__arm_vcmlaq_rot270_f16): Likewise.
27852 (__arm_vcmlaq_rot90_f16): Likewise.
27853 (__arm_vfmaq_f16): Likewise.
27854 (__arm_vfmaq_n_f16): Likewise.
27855 (__arm_vfmasq_n_f16): Likewise.
27856 (__arm_vfmsq_f16): Likewise.
27857 (__arm_vabsq_m_f16): Likewise.
27858 (__arm_vcvtmq_m_s16_f16): Likewise.
27859 (__arm_vcvtnq_m_s16_f16): Likewise.
27860 (__arm_vcvtpq_m_s16_f16): Likewise.
27861 (__arm_vcvtq_m_s16_f16): Likewise.
27862 (__arm_vdupq_m_n_f16): Likewise.
27863 (__arm_vmaxnmaq_m_f16): Likewise.
27864 (__arm_vmaxnmavq_p_f16): Likewise.
27865 (__arm_vmaxnmvq_p_f16): Likewise.
27866 (__arm_vminnmaq_m_f16): Likewise.
27867 (__arm_vminnmavq_p_f16): Likewise.
27868 (__arm_vminnmvq_p_f16): Likewise.
27869 (__arm_vnegq_m_f16): Likewise.
27870 (__arm_vpselq_f16): Likewise.
27871 (__arm_vrev64q_m_f16): Likewise.
27872 (__arm_vrndaq_m_f16): Likewise.
27873 (__arm_vrndmq_m_f16): Likewise.
27874 (__arm_vrndnq_m_f16): Likewise.
27875 (__arm_vrndpq_m_f16): Likewise.
27876 (__arm_vrndq_m_f16): Likewise.
27877 (__arm_vrndxq_m_f16): Likewise.
27878 (__arm_vcmpeqq_m_n_f16): Likewise.
27879 (__arm_vcmpgeq_m_f16): Likewise.
27880 (__arm_vcmpgeq_m_n_f16): Likewise.
27881 (__arm_vcmpgtq_m_f16): Likewise.
27882 (__arm_vcmpgtq_m_n_f16): Likewise.
27883 (__arm_vcmpleq_m_f16): Likewise.
27884 (__arm_vcmpleq_m_n_f16): Likewise.
27885 (__arm_vcmpltq_m_f16): Likewise.
27886 (__arm_vcmpltq_m_n_f16): Likewise.
27887 (__arm_vcmpneq_m_f16): Likewise.
27888 (__arm_vcmpneq_m_n_f16): Likewise.
27889 (__arm_vcvtmq_m_u16_f16): Likewise.
27890 (__arm_vcvtnq_m_u16_f16): Likewise.
27891 (__arm_vcvtpq_m_u16_f16): Likewise.
27892 (__arm_vcvtq_m_u16_f16): Likewise.
27893 (__arm_vcmlaq_f32): Likewise.
27894 (__arm_vcmlaq_rot180_f32): Likewise.
27895 (__arm_vcmlaq_rot270_f32): Likewise.
27896 (__arm_vcmlaq_rot90_f32): Likewise.
27897 (__arm_vfmaq_f32): Likewise.
27898 (__arm_vfmaq_n_f32): Likewise.
27899 (__arm_vfmasq_n_f32): Likewise.
27900 (__arm_vfmsq_f32): Likewise.
27901 (__arm_vabsq_m_f32): Likewise.
27902 (__arm_vcvtmq_m_s32_f32): Likewise.
27903 (__arm_vcvtnq_m_s32_f32): Likewise.
27904 (__arm_vcvtpq_m_s32_f32): Likewise.
27905 (__arm_vcvtq_m_s32_f32): Likewise.
27906 (__arm_vdupq_m_n_f32): Likewise.
27907 (__arm_vmaxnmaq_m_f32): Likewise.
27908 (__arm_vmaxnmavq_p_f32): Likewise.
27909 (__arm_vmaxnmvq_p_f32): Likewise.
27910 (__arm_vminnmaq_m_f32): Likewise.
27911 (__arm_vminnmavq_p_f32): Likewise.
27912 (__arm_vminnmvq_p_f32): Likewise.
27913 (__arm_vnegq_m_f32): Likewise.
27914 (__arm_vpselq_f32): Likewise.
27915 (__arm_vrev64q_m_f32): Likewise.
27916 (__arm_vrndaq_m_f32): Likewise.
27917 (__arm_vrndmq_m_f32): Likewise.
27918 (__arm_vrndnq_m_f32): Likewise.
27919 (__arm_vrndpq_m_f32): Likewise.
27920 (__arm_vrndq_m_f32): Likewise.
27921 (__arm_vrndxq_m_f32): Likewise.
27922 (__arm_vcmpeqq_m_n_f32): Likewise.
27923 (__arm_vcmpgeq_m_f32): Likewise.
27924 (__arm_vcmpgeq_m_n_f32): Likewise.
27925 (__arm_vcmpgtq_m_f32): Likewise.
27926 (__arm_vcmpgtq_m_n_f32): Likewise.
27927 (__arm_vcmpleq_m_f32): Likewise.
27928 (__arm_vcmpleq_m_n_f32): Likewise.
27929 (__arm_vcmpltq_m_f32): Likewise.
27930 (__arm_vcmpltq_m_n_f32): Likewise.
27931 (__arm_vcmpneq_m_f32): Likewise.
27932 (__arm_vcmpneq_m_n_f32): Likewise.
27933 (__arm_vcvtmq_m_u32_f32): Likewise.
27934 (__arm_vcvtnq_m_u32_f32): Likewise.
27935 (__arm_vcvtpq_m_u32_f32): Likewise.
27936 (__arm_vcvtq_m_u32_f32): Likewise.
27937 (vcvtq_m): Define polymorphic variant.
27938 (vabsq_m): Likewise.
27939 (vcmlaq): Likewise.
27940 (vcmlaq_rot180): Likewise.
27941 (vcmlaq_rot270): Likewise.
27942 (vcmlaq_rot90): Likewise.
27943 (vcmpeqq_m_n): Likewise.
27944 (vcmpgeq_m_n): Likewise.
27945 (vrndxq_m): Likewise.
27946 (vrndq_m): Likewise.
27947 (vrndpq_m): Likewise.
27948 (vcmpgtq_m_n): Likewise.
27949 (vcmpgtq_m): Likewise.
27950 (vcmpleq_m): Likewise.
27951 (vcmpleq_m_n): Likewise.
27952 (vcmpltq_m_n): Likewise.
27953 (vcmpltq_m): Likewise.
27954 (vcmpneq_m): Likewise.
27955 (vcmpneq_m_n): Likewise.
27956 (vcvtbq_m): Likewise.
27957 (vcvttq_m): Likewise.
27958 (vcvtmq_m): Likewise.
27959 (vcvtnq_m): Likewise.
27960 (vcvtpq_m): Likewise.
27961 (vdupq_m_n): Likewise.
27962 (vfmaq_n): Likewise.
27963 (vfmaq): Likewise.
27964 (vfmasq_n): Likewise.
27965 (vfmsq): Likewise.
27966 (vmaxnmaq_m): Likewise.
27967 (vmaxnmavq_m): Likewise.
27968 (vmaxnmvq_m): Likewise.
27969 (vmaxnmavq_p): Likewise.
27970 (vmaxnmvq_p): Likewise.
27971 (vminnmaq_m): Likewise.
27972 (vminnmavq_p): Likewise.
27973 (vminnmvq_p): Likewise.
27974 (vrndnq_m): Likewise.
27975 (vrndaq_m): Likewise.
27976 (vrndmq_m): Likewise.
27977 (vrev64q_m): Likewise.
27978 (vrev32q_m): Likewise.
27979 (vpselq): Likewise.
27980 (vnegq_m): Likewise.
27981 (vcmpgeq_m): Likewise.
27982 (vshrntq_n): Likewise.
27983 (vrshrntq_n): Likewise.
27984 (vmovlbq_m): Likewise.
27985 (vmovnbq_m): Likewise.
27986 (vmovntq_m): Likewise.
27987 (vmvnq_m_n): Likewise.
27988 (vmvnq_m): Likewise.
27989 (vshrnbq_n): Likewise.
27990 (vrshrnbq_n): Likewise.
27991 (vqshruntq_n): Likewise.
27992 (vrev16q_m): Likewise.
27993 (vqshrunbq_n): Likewise.
27994 (vqshrntq_n): Likewise.
27995 (vqrshruntq_n): Likewise.
27996 (vqrshrntq_n): Likewise.
27997 (vqshrnbq_n): Likewise.
27998 (vqmovuntq_m): Likewise.
27999 (vqmovntq_m): Likewise.
28000 (vqmovnbq_m): Likewise.
28001 (vorrq_m_n): Likewise.
28002 (vmovltq_m): Likewise.
28003 (vqmovunbq_m): Likewise.
28004 (vaddlvaq_p): Likewise.
28005 (vmlaldavaq): Likewise.
28006 (vmlaldavaxq): Likewise.
28007 (vmlaldavq_p): Likewise.
28008 (vmlaldavxq_p): Likewise.
28009 (vmlsldavaq): Likewise.
28010 (vmlsldavaxq): Likewise.
28011 (vmlsldavq_p): Likewise.
28012 (vmlsldavxq_p): Likewise.
28013 (vrmlaldavhaxq): Likewise.
28014 (vrmlaldavhq_p): Likewise.
28015 (vrmlaldavhxq_p): Likewise.
28016 (vrmlsldavhaq): Likewise.
28017 (vrmlsldavhaxq): Likewise.
28018 (vrmlsldavhq_p): Likewise.
28019 (vrmlsldavhxq_p): Likewise.
28020 * config/arm/arm_mve_builtins.def (TERNOP_NONE_NONE_IMM_UNONE): Use
28021 builtin qualifier.
28022 (TERNOP_NONE_NONE_NONE_IMM): Likewise.
28023 (TERNOP_NONE_NONE_NONE_NONE): Likewise.
28024 (TERNOP_NONE_NONE_NONE_UNONE): Likewise.
28025 (TERNOP_UNONE_NONE_NONE_UNONE): Likewise.
28026 (TERNOP_UNONE_UNONE_IMM_UNONE): Likewise.
28027 (TERNOP_UNONE_UNONE_NONE_IMM): Likewise.
28028 (TERNOP_UNONE_UNONE_NONE_UNONE): Likewise.
28029 (TERNOP_UNONE_UNONE_UNONE_IMM): Likewise.
28030 (TERNOP_UNONE_UNONE_UNONE_UNONE): Likewise.
28031 * config/arm/mve.md (MVE_constraint3): Define mode attribute iterator.
28032 (MVE_pred3): Likewise.
28033 (MVE_constraint1): Likewise.
28034 (MVE_pred1): Likewise.
28035 (VMLALDAVQ_P): Define iterator.
28036 (VQMOVNBQ_M): Likewise.
28037 (VMOVLTQ_M): Likewise.
28038 (VMOVNBQ_M): Likewise.
28039 (VRSHRNTQ_N): Likewise.
28040 (VORRQ_M_N): Likewise.
28041 (VREV32Q_M): Likewise.
28042 (VREV16Q_M): Likewise.
28043 (VQRSHRNTQ_N): Likewise.
28044 (VMOVNTQ_M): Likewise.
28045 (VMOVLBQ_M): Likewise.
28046 (VMLALDAVAQ): Likewise.
28047 (VQSHRNBQ_N): Likewise.
28048 (VSHRNBQ_N): Likewise.
28049 (VRSHRNBQ_N): Likewise.
28050 (VMLALDAVXQ_P): Likewise.
28051 (VQMOVNTQ_M): Likewise.
28052 (VMVNQ_M_N): Likewise.
28053 (VQSHRNTQ_N): Likewise.
28054 (VMLALDAVAXQ): Likewise.
28055 (VSHRNTQ_N): Likewise.
28056 (VCVTMQ_M): Likewise.
28057 (VCVTNQ_M): Likewise.
28058 (VCVTPQ_M): Likewise.
28059 (VCVTQ_M_N_FROM_F): Likewise.
28060 (VCVTQ_M_FROM_F): Likewise.
28061 (VRMLALDAVHQ_P): Likewise.
28062 (VADDLVAQ_P): Likewise.
28063 (mve_vrndq_m_f<mode>): Define RTL pattern.
28064 (mve_vabsq_m_f<mode>): Likewise.
28065 (mve_vaddlvaq_p_<supf>v4si): Likewise.
28066 (mve_vcmlaq_f<mode>): Likewise.
28067 (mve_vcmlaq_rot180_f<mode>): Likewise.
28068 (mve_vcmlaq_rot270_f<mode>): Likewise.
28069 (mve_vcmlaq_rot90_f<mode>): Likewise.
28070 (mve_vcmpeqq_m_n_f<mode>): Likewise.
28071 (mve_vcmpgeq_m_f<mode>): Likewise.
28072 (mve_vcmpgeq_m_n_f<mode>): Likewise.
28073 (mve_vcmpgtq_m_f<mode>): Likewise.
28074 (mve_vcmpgtq_m_n_f<mode>): Likewise.
28075 (mve_vcmpleq_m_f<mode>): Likewise.
28076 (mve_vcmpleq_m_n_f<mode>): Likewise.
28077 (mve_vcmpltq_m_f<mode>): Likewise.
28078 (mve_vcmpltq_m_n_f<mode>): Likewise.
28079 (mve_vcmpneq_m_f<mode>): Likewise.
28080 (mve_vcmpneq_m_n_f<mode>): Likewise.
28081 (mve_vcvtbq_m_f16_f32v8hf): Likewise.
28082 (mve_vcvtbq_m_f32_f16v4sf): Likewise.
28083 (mve_vcvttq_m_f16_f32v8hf): Likewise.
28084 (mve_vcvttq_m_f32_f16v4sf): Likewise.
28085 (mve_vdupq_m_n_f<mode>): Likewise.
28086 (mve_vfmaq_f<mode>): Likewise.
28087 (mve_vfmaq_n_f<mode>): Likewise.
28088 (mve_vfmasq_n_f<mode>): Likewise.
28089 (mve_vfmsq_f<mode>): Likewise.
28090 (mve_vmaxnmaq_m_f<mode>): Likewise.
28091 (mve_vmaxnmavq_p_f<mode>): Likewise.
28092 (mve_vmaxnmvq_p_f<mode>): Likewise.
28093 (mve_vminnmaq_m_f<mode>): Likewise.
28094 (mve_vminnmavq_p_f<mode>): Likewise.
28095 (mve_vminnmvq_p_f<mode>): Likewise.
28096 (mve_vmlaldavaq_<supf><mode>): Likewise.
28097 (mve_vmlaldavaxq_<supf><mode>): Likewise.
28098 (mve_vmlaldavq_p_<supf><mode>): Likewise.
28099 (mve_vmlaldavxq_p_<supf><mode>): Likewise.
28100 (mve_vmlsldavaq_s<mode>): Likewise.
28101 (mve_vmlsldavaxq_s<mode>): Likewise.
28102 (mve_vmlsldavq_p_s<mode>): Likewise.
28103 (mve_vmlsldavxq_p_s<mode>): Likewise.
28104 (mve_vmovlbq_m_<supf><mode>): Likewise.
28105 (mve_vmovltq_m_<supf><mode>): Likewise.
28106 (mve_vmovnbq_m_<supf><mode>): Likewise.
28107 (mve_vmovntq_m_<supf><mode>): Likewise.
28108 (mve_vmvnq_m_n_<supf><mode>): Likewise.
28109 (mve_vnegq_m_f<mode>): Likewise.
28110 (mve_vorrq_m_n_<supf><mode>): Likewise.
28111 (mve_vpselq_f<mode>): Likewise.
28112 (mve_vqmovnbq_m_<supf><mode>): Likewise.
28113 (mve_vqmovntq_m_<supf><mode>): Likewise.
28114 (mve_vqmovunbq_m_s<mode>): Likewise.
28115 (mve_vqmovuntq_m_s<mode>): Likewise.
28116 (mve_vqrshrntq_n_<supf><mode>): Likewise.
28117 (mve_vqrshruntq_n_s<mode>): Likewise.
28118 (mve_vqshrnbq_n_<supf><mode>): Likewise.
28119 (mve_vqshrntq_n_<supf><mode>): Likewise.
28120 (mve_vqshrunbq_n_s<mode>): Likewise.
28121 (mve_vqshruntq_n_s<mode>): Likewise.
28122 (mve_vrev32q_m_fv8hf): Likewise.
28123 (mve_vrev32q_m_<supf><mode>): Likewise.
28124 (mve_vrev64q_m_f<mode>): Likewise.
28125 (mve_vrmlaldavhaxq_sv4si): Likewise.
28126 (mve_vrmlaldavhxq_p_sv4si): Likewise.
28127 (mve_vrmlsldavhaxq_sv4si): Likewise.
28128 (mve_vrmlsldavhq_p_sv4si): Likewise.
28129 (mve_vrmlsldavhxq_p_sv4si): Likewise.
28130 (mve_vrndaq_m_f<mode>): Likewise.
28131 (mve_vrndmq_m_f<mode>): Likewise.
28132 (mve_vrndnq_m_f<mode>): Likewise.
28133 (mve_vrndpq_m_f<mode>): Likewise.
28134 (mve_vrndxq_m_f<mode>): Likewise.
28135 (mve_vrshrnbq_n_<supf><mode>): Likewise.
28136 (mve_vrshrntq_n_<supf><mode>): Likewise.
28137 (mve_vshrnbq_n_<supf><mode>): Likewise.
28138 (mve_vshrntq_n_<supf><mode>): Likewise.
28139 (mve_vcvtmq_m_<supf><mode>): Likewise.
28140 (mve_vcvtpq_m_<supf><mode>): Likewise.
28141 (mve_vcvtnq_m_<supf><mode>): Likewise.
28142 (mve_vcvtq_m_n_from_f_<supf><mode>): Likewise.
28143 (mve_vrev16q_m_<supf>v16qi): Likewise.
28144 (mve_vcvtq_m_from_f_<supf><mode>): Likewise.
28145 (mve_vrmlaldavhq_p_<supf>v4si): Likewise.
28146 (mve_vrmlsldavhaq_sv4si): Likewise.
28147
28148 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
28149 Mihail Ionescu <mihail.ionescu@arm.com>
28150 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
28151
28152 * config/arm/arm_mve.h (vpselq_u8): Define macro.
28153 (vpselq_s8): Likewise.
28154 (vrev64q_m_u8): Likewise.
28155 (vqrdmlashq_n_u8): Likewise.
28156 (vqrdmlahq_n_u8): Likewise.
28157 (vqdmlahq_n_u8): Likewise.
28158 (vmvnq_m_u8): Likewise.
28159 (vmlasq_n_u8): Likewise.
28160 (vmlaq_n_u8): Likewise.
28161 (vmladavq_p_u8): Likewise.
28162 (vmladavaq_u8): Likewise.
28163 (vminvq_p_u8): Likewise.
28164 (vmaxvq_p_u8): Likewise.
28165 (vdupq_m_n_u8): Likewise.
28166 (vcmpneq_m_u8): Likewise.
28167 (vcmpneq_m_n_u8): Likewise.
28168 (vcmphiq_m_u8): Likewise.
28169 (vcmphiq_m_n_u8): Likewise.
28170 (vcmpeqq_m_u8): Likewise.
28171 (vcmpeqq_m_n_u8): Likewise.
28172 (vcmpcsq_m_u8): Likewise.
28173 (vcmpcsq_m_n_u8): Likewise.
28174 (vclzq_m_u8): Likewise.
28175 (vaddvaq_p_u8): Likewise.
28176 (vsriq_n_u8): Likewise.
28177 (vsliq_n_u8): Likewise.
28178 (vshlq_m_r_u8): Likewise.
28179 (vrshlq_m_n_u8): Likewise.
28180 (vqshlq_m_r_u8): Likewise.
28181 (vqrshlq_m_n_u8): Likewise.
28182 (vminavq_p_s8): Likewise.
28183 (vminaq_m_s8): Likewise.
28184 (vmaxavq_p_s8): Likewise.
28185 (vmaxaq_m_s8): Likewise.
28186 (vcmpneq_m_s8): Likewise.
28187 (vcmpneq_m_n_s8): Likewise.
28188 (vcmpltq_m_s8): Likewise.
28189 (vcmpltq_m_n_s8): Likewise.
28190 (vcmpleq_m_s8): Likewise.
28191 (vcmpleq_m_n_s8): Likewise.
28192 (vcmpgtq_m_s8): Likewise.
28193 (vcmpgtq_m_n_s8): Likewise.
28194 (vcmpgeq_m_s8): Likewise.
28195 (vcmpgeq_m_n_s8): Likewise.
28196 (vcmpeqq_m_s8): Likewise.
28197 (vcmpeqq_m_n_s8): Likewise.
28198 (vshlq_m_r_s8): Likewise.
28199 (vrshlq_m_n_s8): Likewise.
28200 (vrev64q_m_s8): Likewise.
28201 (vqshlq_m_r_s8): Likewise.
28202 (vqrshlq_m_n_s8): Likewise.
28203 (vqnegq_m_s8): Likewise.
28204 (vqabsq_m_s8): Likewise.
28205 (vnegq_m_s8): Likewise.
28206 (vmvnq_m_s8): Likewise.
28207 (vmlsdavxq_p_s8): Likewise.
28208 (vmlsdavq_p_s8): Likewise.
28209 (vmladavxq_p_s8): Likewise.
28210 (vmladavq_p_s8): Likewise.
28211 (vminvq_p_s8): Likewise.
28212 (vmaxvq_p_s8): Likewise.
28213 (vdupq_m_n_s8): Likewise.
28214 (vclzq_m_s8): Likewise.
28215 (vclsq_m_s8): Likewise.
28216 (vaddvaq_p_s8): Likewise.
28217 (vabsq_m_s8): Likewise.
28218 (vqrdmlsdhxq_s8): Likewise.
28219 (vqrdmlsdhq_s8): Likewise.
28220 (vqrdmlashq_n_s8): Likewise.
28221 (vqrdmlahq_n_s8): Likewise.
28222 (vqrdmladhxq_s8): Likewise.
28223 (vqrdmladhq_s8): Likewise.
28224 (vqdmlsdhxq_s8): Likewise.
28225 (vqdmlsdhq_s8): Likewise.
28226 (vqdmlahq_n_s8): Likewise.
28227 (vqdmladhxq_s8): Likewise.
28228 (vqdmladhq_s8): Likewise.
28229 (vmlsdavaxq_s8): Likewise.
28230 (vmlsdavaq_s8): Likewise.
28231 (vmlasq_n_s8): Likewise.
28232 (vmlaq_n_s8): Likewise.
28233 (vmladavaxq_s8): Likewise.
28234 (vmladavaq_s8): Likewise.
28235 (vsriq_n_s8): Likewise.
28236 (vsliq_n_s8): Likewise.
28237 (vpselq_u16): Likewise.
28238 (vpselq_s16): Likewise.
28239 (vrev64q_m_u16): Likewise.
28240 (vqrdmlashq_n_u16): Likewise.
28241 (vqrdmlahq_n_u16): Likewise.
28242 (vqdmlahq_n_u16): Likewise.
28243 (vmvnq_m_u16): Likewise.
28244 (vmlasq_n_u16): Likewise.
28245 (vmlaq_n_u16): Likewise.
28246 (vmladavq_p_u16): Likewise.
28247 (vmladavaq_u16): Likewise.
28248 (vminvq_p_u16): Likewise.
28249 (vmaxvq_p_u16): Likewise.
28250 (vdupq_m_n_u16): Likewise.
28251 (vcmpneq_m_u16): Likewise.
28252 (vcmpneq_m_n_u16): Likewise.
28253 (vcmphiq_m_u16): Likewise.
28254 (vcmphiq_m_n_u16): Likewise.
28255 (vcmpeqq_m_u16): Likewise.
28256 (vcmpeqq_m_n_u16): Likewise.
28257 (vcmpcsq_m_u16): Likewise.
28258 (vcmpcsq_m_n_u16): Likewise.
28259 (vclzq_m_u16): Likewise.
28260 (vaddvaq_p_u16): Likewise.
28261 (vsriq_n_u16): Likewise.
28262 (vsliq_n_u16): Likewise.
28263 (vshlq_m_r_u16): Likewise.
28264 (vrshlq_m_n_u16): Likewise.
28265 (vqshlq_m_r_u16): Likewise.
28266 (vqrshlq_m_n_u16): Likewise.
28267 (vminavq_p_s16): Likewise.
28268 (vminaq_m_s16): Likewise.
28269 (vmaxavq_p_s16): Likewise.
28270 (vmaxaq_m_s16): Likewise.
28271 (vcmpneq_m_s16): Likewise.
28272 (vcmpneq_m_n_s16): Likewise.
28273 (vcmpltq_m_s16): Likewise.
28274 (vcmpltq_m_n_s16): Likewise.
28275 (vcmpleq_m_s16): Likewise.
28276 (vcmpleq_m_n_s16): Likewise.
28277 (vcmpgtq_m_s16): Likewise.
28278 (vcmpgtq_m_n_s16): Likewise.
28279 (vcmpgeq_m_s16): Likewise.
28280 (vcmpgeq_m_n_s16): Likewise.
28281 (vcmpeqq_m_s16): Likewise.
28282 (vcmpeqq_m_n_s16): Likewise.
28283 (vshlq_m_r_s16): Likewise.
28284 (vrshlq_m_n_s16): Likewise.
28285 (vrev64q_m_s16): Likewise.
28286 (vqshlq_m_r_s16): Likewise.
28287 (vqrshlq_m_n_s16): Likewise.
28288 (vqnegq_m_s16): Likewise.
28289 (vqabsq_m_s16): Likewise.
28290 (vnegq_m_s16): Likewise.
28291 (vmvnq_m_s16): Likewise.
28292 (vmlsdavxq_p_s16): Likewise.
28293 (vmlsdavq_p_s16): Likewise.
28294 (vmladavxq_p_s16): Likewise.
28295 (vmladavq_p_s16): Likewise.
28296 (vminvq_p_s16): Likewise.
28297 (vmaxvq_p_s16): Likewise.
28298 (vdupq_m_n_s16): Likewise.
28299 (vclzq_m_s16): Likewise.
28300 (vclsq_m_s16): Likewise.
28301 (vaddvaq_p_s16): Likewise.
28302 (vabsq_m_s16): Likewise.
28303 (vqrdmlsdhxq_s16): Likewise.
28304 (vqrdmlsdhq_s16): Likewise.
28305 (vqrdmlashq_n_s16): Likewise.
28306 (vqrdmlahq_n_s16): Likewise.
28307 (vqrdmladhxq_s16): Likewise.
28308 (vqrdmladhq_s16): Likewise.
28309 (vqdmlsdhxq_s16): Likewise.
28310 (vqdmlsdhq_s16): Likewise.
28311 (vqdmlahq_n_s16): Likewise.
28312 (vqdmladhxq_s16): Likewise.
28313 (vqdmladhq_s16): Likewise.
28314 (vmlsdavaxq_s16): Likewise.
28315 (vmlsdavaq_s16): Likewise.
28316 (vmlasq_n_s16): Likewise.
28317 (vmlaq_n_s16): Likewise.
28318 (vmladavaxq_s16): Likewise.
28319 (vmladavaq_s16): Likewise.
28320 (vsriq_n_s16): Likewise.
28321 (vsliq_n_s16): Likewise.
28322 (vpselq_u32): Likewise.
28323 (vpselq_s32): Likewise.
28324 (vrev64q_m_u32): Likewise.
28325 (vqrdmlashq_n_u32): Likewise.
28326 (vqrdmlahq_n_u32): Likewise.
28327 (vqdmlahq_n_u32): Likewise.
28328 (vmvnq_m_u32): Likewise.
28329 (vmlasq_n_u32): Likewise.
28330 (vmlaq_n_u32): Likewise.
28331 (vmladavq_p_u32): Likewise.
28332 (vmladavaq_u32): Likewise.
28333 (vminvq_p_u32): Likewise.
28334 (vmaxvq_p_u32): Likewise.
28335 (vdupq_m_n_u32): Likewise.
28336 (vcmpneq_m_u32): Likewise.
28337 (vcmpneq_m_n_u32): Likewise.
28338 (vcmphiq_m_u32): Likewise.
28339 (vcmphiq_m_n_u32): Likewise.
28340 (vcmpeqq_m_u32): Likewise.
28341 (vcmpeqq_m_n_u32): Likewise.
28342 (vcmpcsq_m_u32): Likewise.
28343 (vcmpcsq_m_n_u32): Likewise.
28344 (vclzq_m_u32): Likewise.
28345 (vaddvaq_p_u32): Likewise.
28346 (vsriq_n_u32): Likewise.
28347 (vsliq_n_u32): Likewise.
28348 (vshlq_m_r_u32): Likewise.
28349 (vrshlq_m_n_u32): Likewise.
28350 (vqshlq_m_r_u32): Likewise.
28351 (vqrshlq_m_n_u32): Likewise.
28352 (vminavq_p_s32): Likewise.
28353 (vminaq_m_s32): Likewise.
28354 (vmaxavq_p_s32): Likewise.
28355 (vmaxaq_m_s32): Likewise.
28356 (vcmpneq_m_s32): Likewise.
28357 (vcmpneq_m_n_s32): Likewise.
28358 (vcmpltq_m_s32): Likewise.
28359 (vcmpltq_m_n_s32): Likewise.
28360 (vcmpleq_m_s32): Likewise.
28361 (vcmpleq_m_n_s32): Likewise.
28362 (vcmpgtq_m_s32): Likewise.
28363 (vcmpgtq_m_n_s32): Likewise.
28364 (vcmpgeq_m_s32): Likewise.
28365 (vcmpgeq_m_n_s32): Likewise.
28366 (vcmpeqq_m_s32): Likewise.
28367 (vcmpeqq_m_n_s32): Likewise.
28368 (vshlq_m_r_s32): Likewise.
28369 (vrshlq_m_n_s32): Likewise.
28370 (vrev64q_m_s32): Likewise.
28371 (vqshlq_m_r_s32): Likewise.
28372 (vqrshlq_m_n_s32): Likewise.
28373 (vqnegq_m_s32): Likewise.
28374 (vqabsq_m_s32): Likewise.
28375 (vnegq_m_s32): Likewise.
28376 (vmvnq_m_s32): Likewise.
28377 (vmlsdavxq_p_s32): Likewise.
28378 (vmlsdavq_p_s32): Likewise.
28379 (vmladavxq_p_s32): Likewise.
28380 (vmladavq_p_s32): Likewise.
28381 (vminvq_p_s32): Likewise.
28382 (vmaxvq_p_s32): Likewise.
28383 (vdupq_m_n_s32): Likewise.
28384 (vclzq_m_s32): Likewise.
28385 (vclsq_m_s32): Likewise.
28386 (vaddvaq_p_s32): Likewise.
28387 (vabsq_m_s32): Likewise.
28388 (vqrdmlsdhxq_s32): Likewise.
28389 (vqrdmlsdhq_s32): Likewise.
28390 (vqrdmlashq_n_s32): Likewise.
28391 (vqrdmlahq_n_s32): Likewise.
28392 (vqrdmladhxq_s32): Likewise.
28393 (vqrdmladhq_s32): Likewise.
28394 (vqdmlsdhxq_s32): Likewise.
28395 (vqdmlsdhq_s32): Likewise.
28396 (vqdmlahq_n_s32): Likewise.
28397 (vqdmladhxq_s32): Likewise.
28398 (vqdmladhq_s32): Likewise.
28399 (vmlsdavaxq_s32): Likewise.
28400 (vmlsdavaq_s32): Likewise.
28401 (vmlasq_n_s32): Likewise.
28402 (vmlaq_n_s32): Likewise.
28403 (vmladavaxq_s32): Likewise.
28404 (vmladavaq_s32): Likewise.
28405 (vsriq_n_s32): Likewise.
28406 (vsliq_n_s32): Likewise.
28407 (vpselq_u64): Likewise.
28408 (vpselq_s64): Likewise.
28409 (__arm_vpselq_u8): Define intrinsic.
28410 (__arm_vpselq_s8): Likewise.
28411 (__arm_vrev64q_m_u8): Likewise.
28412 (__arm_vqrdmlashq_n_u8): Likewise.
28413 (__arm_vqrdmlahq_n_u8): Likewise.
28414 (__arm_vqdmlahq_n_u8): Likewise.
28415 (__arm_vmvnq_m_u8): Likewise.
28416 (__arm_vmlasq_n_u8): Likewise.
28417 (__arm_vmlaq_n_u8): Likewise.
28418 (__arm_vmladavq_p_u8): Likewise.
28419 (__arm_vmladavaq_u8): Likewise.
28420 (__arm_vminvq_p_u8): Likewise.
28421 (__arm_vmaxvq_p_u8): Likewise.
28422 (__arm_vdupq_m_n_u8): Likewise.
28423 (__arm_vcmpneq_m_u8): Likewise.
28424 (__arm_vcmpneq_m_n_u8): Likewise.
28425 (__arm_vcmphiq_m_u8): Likewise.
28426 (__arm_vcmphiq_m_n_u8): Likewise.
28427 (__arm_vcmpeqq_m_u8): Likewise.
28428 (__arm_vcmpeqq_m_n_u8): Likewise.
28429 (__arm_vcmpcsq_m_u8): Likewise.
28430 (__arm_vcmpcsq_m_n_u8): Likewise.
28431 (__arm_vclzq_m_u8): Likewise.
28432 (__arm_vaddvaq_p_u8): Likewise.
28433 (__arm_vsriq_n_u8): Likewise.
28434 (__arm_vsliq_n_u8): Likewise.
28435 (__arm_vshlq_m_r_u8): Likewise.
28436 (__arm_vrshlq_m_n_u8): Likewise.
28437 (__arm_vqshlq_m_r_u8): Likewise.
28438 (__arm_vqrshlq_m_n_u8): Likewise.
28439 (__arm_vminavq_p_s8): Likewise.
28440 (__arm_vminaq_m_s8): Likewise.
28441 (__arm_vmaxavq_p_s8): Likewise.
28442 (__arm_vmaxaq_m_s8): Likewise.
28443 (__arm_vcmpneq_m_s8): Likewise.
28444 (__arm_vcmpneq_m_n_s8): Likewise.
28445 (__arm_vcmpltq_m_s8): Likewise.
28446 (__arm_vcmpltq_m_n_s8): Likewise.
28447 (__arm_vcmpleq_m_s8): Likewise.
28448 (__arm_vcmpleq_m_n_s8): Likewise.
28449 (__arm_vcmpgtq_m_s8): Likewise.
28450 (__arm_vcmpgtq_m_n_s8): Likewise.
28451 (__arm_vcmpgeq_m_s8): Likewise.
28452 (__arm_vcmpgeq_m_n_s8): Likewise.
28453 (__arm_vcmpeqq_m_s8): Likewise.
28454 (__arm_vcmpeqq_m_n_s8): Likewise.
28455 (__arm_vshlq_m_r_s8): Likewise.
28456 (__arm_vrshlq_m_n_s8): Likewise.
28457 (__arm_vrev64q_m_s8): Likewise.
28458 (__arm_vqshlq_m_r_s8): Likewise.
28459 (__arm_vqrshlq_m_n_s8): Likewise.
28460 (__arm_vqnegq_m_s8): Likewise.
28461 (__arm_vqabsq_m_s8): Likewise.
28462 (__arm_vnegq_m_s8): Likewise.
28463 (__arm_vmvnq_m_s8): Likewise.
28464 (__arm_vmlsdavxq_p_s8): Likewise.
28465 (__arm_vmlsdavq_p_s8): Likewise.
28466 (__arm_vmladavxq_p_s8): Likewise.
28467 (__arm_vmladavq_p_s8): Likewise.
28468 (__arm_vminvq_p_s8): Likewise.
28469 (__arm_vmaxvq_p_s8): Likewise.
28470 (__arm_vdupq_m_n_s8): Likewise.
28471 (__arm_vclzq_m_s8): Likewise.
28472 (__arm_vclsq_m_s8): Likewise.
28473 (__arm_vaddvaq_p_s8): Likewise.
28474 (__arm_vabsq_m_s8): Likewise.
28475 (__arm_vqrdmlsdhxq_s8): Likewise.
28476 (__arm_vqrdmlsdhq_s8): Likewise.
28477 (__arm_vqrdmlashq_n_s8): Likewise.
28478 (__arm_vqrdmlahq_n_s8): Likewise.
28479 (__arm_vqrdmladhxq_s8): Likewise.
28480 (__arm_vqrdmladhq_s8): Likewise.
28481 (__arm_vqdmlsdhxq_s8): Likewise.
28482 (__arm_vqdmlsdhq_s8): Likewise.
28483 (__arm_vqdmlahq_n_s8): Likewise.
28484 (__arm_vqdmladhxq_s8): Likewise.
28485 (__arm_vqdmladhq_s8): Likewise.
28486 (__arm_vmlsdavaxq_s8): Likewise.
28487 (__arm_vmlsdavaq_s8): Likewise.
28488 (__arm_vmlasq_n_s8): Likewise.
28489 (__arm_vmlaq_n_s8): Likewise.
28490 (__arm_vmladavaxq_s8): Likewise.
28491 (__arm_vmladavaq_s8): Likewise.
28492 (__arm_vsriq_n_s8): Likewise.
28493 (__arm_vsliq_n_s8): Likewise.
28494 (__arm_vpselq_u16): Likewise.
28495 (__arm_vpselq_s16): Likewise.
28496 (__arm_vrev64q_m_u16): Likewise.
28497 (__arm_vqrdmlashq_n_u16): Likewise.
28498 (__arm_vqrdmlahq_n_u16): Likewise.
28499 (__arm_vqdmlahq_n_u16): Likewise.
28500 (__arm_vmvnq_m_u16): Likewise.
28501 (__arm_vmlasq_n_u16): Likewise.
28502 (__arm_vmlaq_n_u16): Likewise.
28503 (__arm_vmladavq_p_u16): Likewise.
28504 (__arm_vmladavaq_u16): Likewise.
28505 (__arm_vminvq_p_u16): Likewise.
28506 (__arm_vmaxvq_p_u16): Likewise.
28507 (__arm_vdupq_m_n_u16): Likewise.
28508 (__arm_vcmpneq_m_u16): Likewise.
28509 (__arm_vcmpneq_m_n_u16): Likewise.
28510 (__arm_vcmphiq_m_u16): Likewise.
28511 (__arm_vcmphiq_m_n_u16): Likewise.
28512 (__arm_vcmpeqq_m_u16): Likewise.
28513 (__arm_vcmpeqq_m_n_u16): Likewise.
28514 (__arm_vcmpcsq_m_u16): Likewise.
28515 (__arm_vcmpcsq_m_n_u16): Likewise.
28516 (__arm_vclzq_m_u16): Likewise.
28517 (__arm_vaddvaq_p_u16): Likewise.
28518 (__arm_vsriq_n_u16): Likewise.
28519 (__arm_vsliq_n_u16): Likewise.
28520 (__arm_vshlq_m_r_u16): Likewise.
28521 (__arm_vrshlq_m_n_u16): Likewise.
28522 (__arm_vqshlq_m_r_u16): Likewise.
28523 (__arm_vqrshlq_m_n_u16): Likewise.
28524 (__arm_vminavq_p_s16): Likewise.
28525 (__arm_vminaq_m_s16): Likewise.
28526 (__arm_vmaxavq_p_s16): Likewise.
28527 (__arm_vmaxaq_m_s16): Likewise.
28528 (__arm_vcmpneq_m_s16): Likewise.
28529 (__arm_vcmpneq_m_n_s16): Likewise.
28530 (__arm_vcmpltq_m_s16): Likewise.
28531 (__arm_vcmpltq_m_n_s16): Likewise.
28532 (__arm_vcmpleq_m_s16): Likewise.
28533 (__arm_vcmpleq_m_n_s16): Likewise.
28534 (__arm_vcmpgtq_m_s16): Likewise.
28535 (__arm_vcmpgtq_m_n_s16): Likewise.
28536 (__arm_vcmpgeq_m_s16): Likewise.
28537 (__arm_vcmpgeq_m_n_s16): Likewise.
28538 (__arm_vcmpeqq_m_s16): Likewise.
28539 (__arm_vcmpeqq_m_n_s16): Likewise.
28540 (__arm_vshlq_m_r_s16): Likewise.
28541 (__arm_vrshlq_m_n_s16): Likewise.
28542 (__arm_vrev64q_m_s16): Likewise.
28543 (__arm_vqshlq_m_r_s16): Likewise.
28544 (__arm_vqrshlq_m_n_s16): Likewise.
28545 (__arm_vqnegq_m_s16): Likewise.
28546 (__arm_vqabsq_m_s16): Likewise.
28547 (__arm_vnegq_m_s16): Likewise.
28548 (__arm_vmvnq_m_s16): Likewise.
28549 (__arm_vmlsdavxq_p_s16): Likewise.
28550 (__arm_vmlsdavq_p_s16): Likewise.
28551 (__arm_vmladavxq_p_s16): Likewise.
28552 (__arm_vmladavq_p_s16): Likewise.
28553 (__arm_vminvq_p_s16): Likewise.
28554 (__arm_vmaxvq_p_s16): Likewise.
28555 (__arm_vdupq_m_n_s16): Likewise.
28556 (__arm_vclzq_m_s16): Likewise.
28557 (__arm_vclsq_m_s16): Likewise.
28558 (__arm_vaddvaq_p_s16): Likewise.
28559 (__arm_vabsq_m_s16): Likewise.
28560 (__arm_vqrdmlsdhxq_s16): Likewise.
28561 (__arm_vqrdmlsdhq_s16): Likewise.
28562 (__arm_vqrdmlashq_n_s16): Likewise.
28563 (__arm_vqrdmlahq_n_s16): Likewise.
28564 (__arm_vqrdmladhxq_s16): Likewise.
28565 (__arm_vqrdmladhq_s16): Likewise.
28566 (__arm_vqdmlsdhxq_s16): Likewise.
28567 (__arm_vqdmlsdhq_s16): Likewise.
28568 (__arm_vqdmlahq_n_s16): Likewise.
28569 (__arm_vqdmladhxq_s16): Likewise.
28570 (__arm_vqdmladhq_s16): Likewise.
28571 (__arm_vmlsdavaxq_s16): Likewise.
28572 (__arm_vmlsdavaq_s16): Likewise.
28573 (__arm_vmlasq_n_s16): Likewise.
28574 (__arm_vmlaq_n_s16): Likewise.
28575 (__arm_vmladavaxq_s16): Likewise.
28576 (__arm_vmladavaq_s16): Likewise.
28577 (__arm_vsriq_n_s16): Likewise.
28578 (__arm_vsliq_n_s16): Likewise.
28579 (__arm_vpselq_u32): Likewise.
28580 (__arm_vpselq_s32): Likewise.
28581 (__arm_vrev64q_m_u32): Likewise.
28582 (__arm_vqrdmlashq_n_u32): Likewise.
28583 (__arm_vqrdmlahq_n_u32): Likewise.
28584 (__arm_vqdmlahq_n_u32): Likewise.
28585 (__arm_vmvnq_m_u32): Likewise.
28586 (__arm_vmlasq_n_u32): Likewise.
28587 (__arm_vmlaq_n_u32): Likewise.
28588 (__arm_vmladavq_p_u32): Likewise.
28589 (__arm_vmladavaq_u32): Likewise.
28590 (__arm_vminvq_p_u32): Likewise.
28591 (__arm_vmaxvq_p_u32): Likewise.
28592 (__arm_vdupq_m_n_u32): Likewise.
28593 (__arm_vcmpneq_m_u32): Likewise.
28594 (__arm_vcmpneq_m_n_u32): Likewise.
28595 (__arm_vcmphiq_m_u32): Likewise.
28596 (__arm_vcmphiq_m_n_u32): Likewise.
28597 (__arm_vcmpeqq_m_u32): Likewise.
28598 (__arm_vcmpeqq_m_n_u32): Likewise.
28599 (__arm_vcmpcsq_m_u32): Likewise.
28600 (__arm_vcmpcsq_m_n_u32): Likewise.
28601 (__arm_vclzq_m_u32): Likewise.
28602 (__arm_vaddvaq_p_u32): Likewise.
28603 (__arm_vsriq_n_u32): Likewise.
28604 (__arm_vsliq_n_u32): Likewise.
28605 (__arm_vshlq_m_r_u32): Likewise.
28606 (__arm_vrshlq_m_n_u32): Likewise.
28607 (__arm_vqshlq_m_r_u32): Likewise.
28608 (__arm_vqrshlq_m_n_u32): Likewise.
28609 (__arm_vminavq_p_s32): Likewise.
28610 (__arm_vminaq_m_s32): Likewise.
28611 (__arm_vmaxavq_p_s32): Likewise.
28612 (__arm_vmaxaq_m_s32): Likewise.
28613 (__arm_vcmpneq_m_s32): Likewise.
28614 (__arm_vcmpneq_m_n_s32): Likewise.
28615 (__arm_vcmpltq_m_s32): Likewise.
28616 (__arm_vcmpltq_m_n_s32): Likewise.
28617 (__arm_vcmpleq_m_s32): Likewise.
28618 (__arm_vcmpleq_m_n_s32): Likewise.
28619 (__arm_vcmpgtq_m_s32): Likewise.
28620 (__arm_vcmpgtq_m_n_s32): Likewise.
28621 (__arm_vcmpgeq_m_s32): Likewise.
28622 (__arm_vcmpgeq_m_n_s32): Likewise.
28623 (__arm_vcmpeqq_m_s32): Likewise.
28624 (__arm_vcmpeqq_m_n_s32): Likewise.
28625 (__arm_vshlq_m_r_s32): Likewise.
28626 (__arm_vrshlq_m_n_s32): Likewise.
28627 (__arm_vrev64q_m_s32): Likewise.
28628 (__arm_vqshlq_m_r_s32): Likewise.
28629 (__arm_vqrshlq_m_n_s32): Likewise.
28630 (__arm_vqnegq_m_s32): Likewise.
28631 (__arm_vqabsq_m_s32): Likewise.
28632 (__arm_vnegq_m_s32): Likewise.
28633 (__arm_vmvnq_m_s32): Likewise.
28634 (__arm_vmlsdavxq_p_s32): Likewise.
28635 (__arm_vmlsdavq_p_s32): Likewise.
28636 (__arm_vmladavxq_p_s32): Likewise.
28637 (__arm_vmladavq_p_s32): Likewise.
28638 (__arm_vminvq_p_s32): Likewise.
28639 (__arm_vmaxvq_p_s32): Likewise.
28640 (__arm_vdupq_m_n_s32): Likewise.
28641 (__arm_vclzq_m_s32): Likewise.
28642 (__arm_vclsq_m_s32): Likewise.
28643 (__arm_vaddvaq_p_s32): Likewise.
28644 (__arm_vabsq_m_s32): Likewise.
28645 (__arm_vqrdmlsdhxq_s32): Likewise.
28646 (__arm_vqrdmlsdhq_s32): Likewise.
28647 (__arm_vqrdmlashq_n_s32): Likewise.
28648 (__arm_vqrdmlahq_n_s32): Likewise.
28649 (__arm_vqrdmladhxq_s32): Likewise.
28650 (__arm_vqrdmladhq_s32): Likewise.
28651 (__arm_vqdmlsdhxq_s32): Likewise.
28652 (__arm_vqdmlsdhq_s32): Likewise.
28653 (__arm_vqdmlahq_n_s32): Likewise.
28654 (__arm_vqdmladhxq_s32): Likewise.
28655 (__arm_vqdmladhq_s32): Likewise.
28656 (__arm_vmlsdavaxq_s32): Likewise.
28657 (__arm_vmlsdavaq_s32): Likewise.
28658 (__arm_vmlasq_n_s32): Likewise.
28659 (__arm_vmlaq_n_s32): Likewise.
28660 (__arm_vmladavaxq_s32): Likewise.
28661 (__arm_vmladavaq_s32): Likewise.
28662 (__arm_vsriq_n_s32): Likewise.
28663 (__arm_vsliq_n_s32): Likewise.
28664 (__arm_vpselq_u64): Likewise.
28665 (__arm_vpselq_s64): Likewise.
28666 (vcmpneq_m_n): Define polymorphic variant.
28667 (vcmpneq_m): Likewise.
28668 (vqrdmlsdhq): Likewise.
28669 (vqrdmlsdhxq): Likewise.
28670 (vqrshlq_m_n): Likewise.
28671 (vqshlq_m_r): Likewise.
28672 (vrev64q_m): Likewise.
28673 (vrshlq_m_n): Likewise.
28674 (vshlq_m_r): Likewise.
28675 (vsliq_n): Likewise.
28676 (vsriq_n): Likewise.
28677 (vqrdmlashq_n): Likewise.
28678 (vqrdmlahq): Likewise.
28679 (vqrdmladhxq): Likewise.
28680 (vqrdmladhq): Likewise.
28681 (vqnegq_m): Likewise.
28682 (vqdmlsdhxq): Likewise.
28683 (vabsq_m): Likewise.
28684 (vclsq_m): Likewise.
28685 (vclzq_m): Likewise.
28686 (vcmpgeq_m): Likewise.
28687 (vcmpgeq_m_n): Likewise.
28688 (vdupq_m_n): Likewise.
28689 (vmaxaq_m): Likewise.
28690 (vmlaq_n): Likewise.
28691 (vmlasq_n): Likewise.
28692 (vmvnq_m): Likewise.
28693 (vnegq_m): Likewise.
28694 (vpselq): Likewise.
28695 (vqdmlahq_n): Likewise.
28696 (vqrdmlahq_n): Likewise.
28697 (vqdmlsdhq): Likewise.
28698 (vqdmladhq): Likewise.
28699 (vqabsq_m): Likewise.
28700 (vminaq_m): Likewise.
28701 (vrmlaldavhaq): Likewise.
28702 (vmlsdavxq_p): Likewise.
28703 (vmlsdavq_p): Likewise.
28704 (vmlsdavaxq): Likewise.
28705 (vmlsdavaq): Likewise.
28706 (vaddvaq_p): Likewise.
28707 (vcmpcsq_m_n): Likewise.
28708 (vcmpcsq_m): Likewise.
28709 (vcmpeqq_m_n): Likewise.
28710 (vcmpeqq_m): Likewise.
28711 (vmladavxq_p): Likewise.
28712 (vmladavq_p): Likewise.
28713 (vmladavaxq): Likewise.
28714 (vmladavaq): Likewise.
28715 (vminvq_p): Likewise.
28716 (vminavq_p): Likewise.
28717 (vmaxvq_p): Likewise.
28718 (vmaxavq_p): Likewise.
28719 (vcmpltq_m_n): Likewise.
28720 (vcmpltq_m): Likewise.
28721 (vcmpleq_m): Likewise.
28722 (vcmpleq_m_n): Likewise.
28723 (vcmphiq_m_n): Likewise.
28724 (vcmphiq_m): Likewise.
28725 (vcmpgtq_m_n): Likewise.
28726 (vcmpgtq_m): Likewise.
28727 * config/arm/arm_mve_builtins.def (TERNOP_NONE_NONE_NONE_IMM): Use
28728 builtin qualifier.
28729 (TERNOP_NONE_NONE_NONE_NONE): Likewise.
28730 (TERNOP_NONE_NONE_NONE_UNONE): Likewise.
28731 (TERNOP_UNONE_NONE_NONE_UNONE): Likewise.
28732 (TERNOP_UNONE_UNONE_NONE_UNONE): Likewise.
28733 (TERNOP_UNONE_UNONE_UNONE_IMM): Likewise.
28734 (TERNOP_UNONE_UNONE_UNONE_UNONE): Likewise.
28735 * config/arm/constraints.md (Rc): Define constraint to check constant is
28736 in the range of 0 to 15.
28737 (Re): Define constraint to check constant is in the range of 0 to 31.
28738 * config/arm/mve.md (VADDVAQ_P): Define iterator.
28739 (VCLZQ_M): Likewise.
28740 (VCMPEQQ_M_N): Likewise.
28741 (VCMPEQQ_M): Likewise.
28742 (VCMPNEQ_M_N): Likewise.
28743 (VCMPNEQ_M): Likewise.
28744 (VDUPQ_M_N): Likewise.
28745 (VMAXVQ_P): Likewise.
28746 (VMINVQ_P): Likewise.
28747 (VMLADAVAQ): Likewise.
28748 (VMLADAVQ_P): Likewise.
28749 (VMLAQ_N): Likewise.
28750 (VMLASQ_N): Likewise.
28751 (VMVNQ_M): Likewise.
28752 (VPSELQ): Likewise.
28753 (VQDMLAHQ_N): Likewise.
28754 (VQRDMLAHQ_N): Likewise.
28755 (VQRDMLASHQ_N): Likewise.
28756 (VQRSHLQ_M_N): Likewise.
28757 (VQSHLQ_M_R): Likewise.
28758 (VREV64Q_M): Likewise.
28759 (VRSHLQ_M_N): Likewise.
28760 (VSHLQ_M_R): Likewise.
28761 (VSLIQ_N): Likewise.
28762 (VSRIQ_N): Likewise.
28763 (mve_vabsq_m_s<mode>): Define RTL pattern.
28764 (mve_vaddvaq_p_<supf><mode>): Likewise.
28765 (mve_vclsq_m_s<mode>): Likewise.
28766 (mve_vclzq_m_<supf><mode>): Likewise.
28767 (mve_vcmpcsq_m_n_u<mode>): Likewise.
28768 (mve_vcmpcsq_m_u<mode>): Likewise.
28769 (mve_vcmpeqq_m_n_<supf><mode>): Likewise.
28770 (mve_vcmpeqq_m_<supf><mode>): Likewise.
28771 (mve_vcmpgeq_m_n_s<mode>): Likewise.
28772 (mve_vcmpgeq_m_s<mode>): Likewise.
28773 (mve_vcmpgtq_m_n_s<mode>): Likewise.
28774 (mve_vcmpgtq_m_s<mode>): Likewise.
28775 (mve_vcmphiq_m_n_u<mode>): Likewise.
28776 (mve_vcmphiq_m_u<mode>): Likewise.
28777 (mve_vcmpleq_m_n_s<mode>): Likewise.
28778 (mve_vcmpleq_m_s<mode>): Likewise.
28779 (mve_vcmpltq_m_n_s<mode>): Likewise.
28780 (mve_vcmpltq_m_s<mode>): Likewise.
28781 (mve_vcmpneq_m_n_<supf><mode>): Likewise.
28782 (mve_vcmpneq_m_<supf><mode>): Likewise.
28783 (mve_vdupq_m_n_<supf><mode>): Likewise.
28784 (mve_vmaxaq_m_s<mode>): Likewise.
28785 (mve_vmaxavq_p_s<mode>): Likewise.
28786 (mve_vmaxvq_p_<supf><mode>): Likewise.
28787 (mve_vminaq_m_s<mode>): Likewise.
28788 (mve_vminavq_p_s<mode>): Likewise.
28789 (mve_vminvq_p_<supf><mode>): Likewise.
28790 (mve_vmladavaq_<supf><mode>): Likewise.
28791 (mve_vmladavq_p_<supf><mode>): Likewise.
28792 (mve_vmladavxq_p_s<mode>): Likewise.
28793 (mve_vmlaq_n_<supf><mode>): Likewise.
28794 (mve_vmlasq_n_<supf><mode>): Likewise.
28795 (mve_vmlsdavq_p_s<mode>): Likewise.
28796 (mve_vmlsdavxq_p_s<mode>): Likewise.
28797 (mve_vmvnq_m_<supf><mode>): Likewise.
28798 (mve_vnegq_m_s<mode>): Likewise.
28799 (mve_vpselq_<supf><mode>): Likewise.
28800 (mve_vqabsq_m_s<mode>): Likewise.
28801 (mve_vqdmlahq_n_<supf><mode>): Likewise.
28802 (mve_vqnegq_m_s<mode>): Likewise.
28803 (mve_vqrdmladhq_s<mode>): Likewise.
28804 (mve_vqrdmladhxq_s<mode>): Likewise.
28805 (mve_vqrdmlahq_n_<supf><mode>): Likewise.
28806 (mve_vqrdmlashq_n_<supf><mode>): Likewise.
28807 (mve_vqrdmlsdhq_s<mode>): Likewise.
28808 (mve_vqrdmlsdhxq_s<mode>): Likewise.
28809 (mve_vqrshlq_m_n_<supf><mode>): Likewise.
28810 (mve_vqshlq_m_r_<supf><mode>): Likewise.
28811 (mve_vrev64q_m_<supf><mode>): Likewise.
28812 (mve_vrshlq_m_n_<supf><mode>): Likewise.
28813 (mve_vshlq_m_r_<supf><mode>): Likewise.
28814 (mve_vsliq_n_<supf><mode>): Likewise.
28815 (mve_vsriq_n_<supf><mode>): Likewise.
28816 (mve_vqdmlsdhxq_s<mode>): Likewise.
28817 (mve_vqdmlsdhq_s<mode>): Likewise.
28818 (mve_vqdmladhxq_s<mode>): Likewise.
28819 (mve_vqdmladhq_s<mode>): Likewise.
28820 (mve_vmlsdavaxq_s<mode>): Likewise.
28821 (mve_vmlsdavaq_s<mode>): Likewise.
28822 (mve_vmladavaxq_s<mode>): Likewise.
28823 * config/arm/predicates.md (mve_imm_15):Define predicate to check the
28824 matching constraint Rc.
28825 (mve_imm_31): Define predicate to check the matching constraint Re.
28826
28827 2020-03-18 Andrew Stubbs <ams@codesourcery.com>
28828
28829 * config/gcn/gcn-valu.md (vec_cmp<mode>di): Set operand 1 to DImode.
28830 (vec_cmp<mode>di_dup): Likewise.
28831 * config/gcn/gcn.h (STORE_FLAG_VALUE): Set to -1.
28832
28833 2020-03-18 Andrew Stubbs <ams@codesourcery.com>
28834
28835 * config/gcn/gcn-valu.md (COND_MODE): Delete.
28836 (COND_INT_MODE): Delete.
28837 (cond_op): Add "mult".
28838 (cond_<expander><mode>): Use VEC_ALLREG_MODE.
28839 (cond_<expander><mode>): Use VEC_ALLREG_INT_MODE.
28840
28841 2020-03-18 Richard Biener <rguenther@suse.de>
28842
28843 PR middle-end/94206
28844 * gimple-fold.c (gimple_fold_builtin_memset): Avoid using
28845 partial int modes or not mode-precision integer types for
28846 the store.
28847
28848 2020-03-18 Jakub Jelinek <jakub@redhat.com>
28849
28850 * asan.c (get_mem_refs_of_builtin_call): Fix up duplicated word issue
28851 in a comment.
28852 * config/arc/arc.c (frame_stack_add): Likewise.
28853 * gimple-loop-versioning.cc (loop_versioning::analyze_arbitrary_term):
28854 Likewise.
28855 * ipa-predicate.c (predicate::remap_after_inlining): Likewise.
28856 * tree-ssa-strlen.h (handle_printf_call): Likewise.
28857 * tree-ssa-strlen.c (is_strlen_related_p): Likewise.
28858 * optinfo-emit-json.cc (optrecord_json_writer::add_record): Likewise.
28859
28860 2020-03-18 Duan bo <duanbo3@huawei.com>
28861
28862 PR target/94201
28863 * config/aarch64/aarch64.md (ldr_got_tiny): Delete.
28864 (@ldr_got_tiny_<mode>): New pattern.
28865 (ldr_got_tiny_sidi): Likewise.
28866 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Use
28867 them to handle SYMBOL_TINY_GOT for ILP32.
28868
28869 2020-03-18 Richard Sandiford <richard.sandiford@arm.com>
28870
28871 * config/aarch64/aarch64.c (aarch64_sve_abi): Treat p12-p15 as
28872 call-preserved for SVE PCS functions.
28873 (aarch64_layout_frame): Cope with up to 12 predicate save slots.
28874 Optimize the case in which there are no following vector save slots.
28875
28876 2020-03-18 Richard Biener <rguenther@suse.de>
28877
28878 PR middle-end/94188
28879 * fold-const.c (build_fold_addr_expr): Convert address to
28880 correct type.
28881 * asan.c (maybe_create_ssa_name): Strip useless type conversions.
28882 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Use build1
28883 to build the ADDR_EXPR which we don't really want to simplify.
28884 * tree-ssa-dom.c (record_equivalences_from_stmt): Likewise.
28885 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Likewise.
28886 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
28887 (simplify_builtin_call): Strip useless type conversions.
28888 * tree-ssa-strlen.c (new_strinfo): Likewise.
28889
28890 2020-03-17 Alexey Neyman <stilor@att.net>
28891
28892 PR debug/93751
28893 * dwarf2out.c (gen_decl_die): Proceed to generating the DIE if
28894 the debug level is terse and the declaration is public. Do not
28895 generate type info.
28896 (dwarf2out_decl): Same.
28897 (add_type_attribute): Return immediately if debug level is
28898 terse.
28899
28900 2020-03-17 Richard Sandiford <richard.sandiford@arm.com>
28901
28902 * config/aarch64/iterators.md (Vmtype): Handle V4BF and V8BF.
28903
28904 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
28905 Mihail Ionescu <mihail.ionescu@arm.com>
28906 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
28907
28908 * config/arm/arm-builtins.c (TERNOP_UNONE_UNONE_UNONE_IMM_QUALIFIERS):
28909 Define qualifier for ternary operands.
28910 (TERNOP_UNONE_UNONE_NONE_NONE_QUALIFIERS): Likewise.
28911 (TERNOP_UNONE_NONE_UNONE_IMM_QUALIFIERS): Likewise.
28912 (TERNOP_NONE_NONE_UNONE_IMM_QUALIFIERS): Likewise.
28913 (TERNOP_UNONE_UNONE_NONE_IMM_QUALIFIERS): Likewise.
28914 (TERNOP_UNONE_UNONE_NONE_UNONE_QUALIFIERS): Likewise.
28915 (TERNOP_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Likewise.
28916 (TERNOP_UNONE_NONE_NONE_UNONE_QUALIFIERS): Likewise.
28917 (TERNOP_NONE_NONE_NONE_IMM_QUALIFIERS): Likewise.
28918 (TERNOP_NONE_NONE_NONE_UNONE_QUALIFIERS): Likewise.
28919 (TERNOP_NONE_NONE_IMM_UNONE_QUALIFIERS): Likewise.
28920 (TERNOP_NONE_NONE_UNONE_UNONE_QUALIFIERS): Likewise.
28921 (TERNOP_UNONE_UNONE_UNONE_UNONE_QUALIFIERS): Likewise.
28922 (TERNOP_NONE_NONE_NONE_NONE_QUALIFIERS): Likewise.
28923 * config/arm/arm_mve.h (vabavq_s8): Define macro.
28924 (vabavq_s16): Likewise.
28925 (vabavq_s32): Likewise.
28926 (vbicq_m_n_s16): Likewise.
28927 (vbicq_m_n_s32): Likewise.
28928 (vbicq_m_n_u16): Likewise.
28929 (vbicq_m_n_u32): Likewise.
28930 (vcmpeqq_m_f16): Likewise.
28931 (vcmpeqq_m_f32): Likewise.
28932 (vcvtaq_m_s16_f16): Likewise.
28933 (vcvtaq_m_u16_f16): Likewise.
28934 (vcvtaq_m_s32_f32): Likewise.
28935 (vcvtaq_m_u32_f32): Likewise.
28936 (vcvtq_m_f16_s16): Likewise.
28937 (vcvtq_m_f16_u16): Likewise.
28938 (vcvtq_m_f32_s32): Likewise.
28939 (vcvtq_m_f32_u32): Likewise.
28940 (vqrshrnbq_n_s16): Likewise.
28941 (vqrshrnbq_n_u16): Likewise.
28942 (vqrshrnbq_n_s32): Likewise.
28943 (vqrshrnbq_n_u32): Likewise.
28944 (vqrshrunbq_n_s16): Likewise.
28945 (vqrshrunbq_n_s32): Likewise.
28946 (vrmlaldavhaq_s32): Likewise.
28947 (vrmlaldavhaq_u32): Likewise.
28948 (vshlcq_s8): Likewise.
28949 (vshlcq_u8): Likewise.
28950 (vshlcq_s16): Likewise.
28951 (vshlcq_u16): Likewise.
28952 (vshlcq_s32): Likewise.
28953 (vshlcq_u32): Likewise.
28954 (vabavq_u8): Likewise.
28955 (vabavq_u16): Likewise.
28956 (vabavq_u32): Likewise.
28957 (__arm_vabavq_s8): Define intrinsic.
28958 (__arm_vabavq_s16): Likewise.
28959 (__arm_vabavq_s32): Likewise.
28960 (__arm_vabavq_u8): Likewise.
28961 (__arm_vabavq_u16): Likewise.
28962 (__arm_vabavq_u32): Likewise.
28963 (__arm_vbicq_m_n_s16): Likewise.
28964 (__arm_vbicq_m_n_s32): Likewise.
28965 (__arm_vbicq_m_n_u16): Likewise.
28966 (__arm_vbicq_m_n_u32): Likewise.
28967 (__arm_vqrshrnbq_n_s16): Likewise.
28968 (__arm_vqrshrnbq_n_u16): Likewise.
28969 (__arm_vqrshrnbq_n_s32): Likewise.
28970 (__arm_vqrshrnbq_n_u32): Likewise.
28971 (__arm_vqrshrunbq_n_s16): Likewise.
28972 (__arm_vqrshrunbq_n_s32): Likewise.
28973 (__arm_vrmlaldavhaq_s32): Likewise.
28974 (__arm_vrmlaldavhaq_u32): Likewise.
28975 (__arm_vshlcq_s8): Likewise.
28976 (__arm_vshlcq_u8): Likewise.
28977 (__arm_vshlcq_s16): Likewise.
28978 (__arm_vshlcq_u16): Likewise.
28979 (__arm_vshlcq_s32): Likewise.
28980 (__arm_vshlcq_u32): Likewise.
28981 (__arm_vcmpeqq_m_f16): Likewise.
28982 (__arm_vcmpeqq_m_f32): Likewise.
28983 (__arm_vcvtaq_m_s16_f16): Likewise.
28984 (__arm_vcvtaq_m_u16_f16): Likewise.
28985 (__arm_vcvtaq_m_s32_f32): Likewise.
28986 (__arm_vcvtaq_m_u32_f32): Likewise.
28987 (__arm_vcvtq_m_f16_s16): Likewise.
28988 (__arm_vcvtq_m_f16_u16): Likewise.
28989 (__arm_vcvtq_m_f32_s32): Likewise.
28990 (__arm_vcvtq_m_f32_u32): Likewise.
28991 (vcvtaq_m): Define polymorphic variant.
28992 (vcvtq_m): Likewise.
28993 (vabavq): Likewise.
28994 (vshlcq): Likewise.
28995 (vbicq_m_n): Likewise.
28996 (vqrshrnbq_n): Likewise.
28997 (vqrshrunbq_n): Likewise.
28998 * config/arm/arm_mve_builtins.def
28999 (TERNOP_UNONE_UNONE_UNONE_IMM_QUALIFIERS): Use the builtin qualifer.
29000 (TERNOP_UNONE_UNONE_NONE_NONE_QUALIFIERS): Likewise.
29001 (TERNOP_UNONE_NONE_UNONE_IMM_QUALIFIERS): Likewise.
29002 (TERNOP_NONE_NONE_UNONE_IMM_QUALIFIERS): Likewise.
29003 (TERNOP_UNONE_UNONE_NONE_IMM_QUALIFIERS): Likewise.
29004 (TERNOP_UNONE_UNONE_NONE_UNONE_QUALIFIERS): Likewise.
29005 (TERNOP_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Likewise.
29006 (TERNOP_UNONE_NONE_NONE_UNONE_QUALIFIERS): Likewise.
29007 (TERNOP_NONE_NONE_NONE_IMM_QUALIFIERS): Likewise.
29008 (TERNOP_NONE_NONE_NONE_UNONE_QUALIFIERS): Likewise.
29009 (TERNOP_NONE_NONE_IMM_UNONE_QUALIFIERS): Likewise.
29010 (TERNOP_NONE_NONE_UNONE_UNONE_QUALIFIERS): Likewise.
29011 (TERNOP_UNONE_UNONE_UNONE_UNONE_QUALIFIERS): Likewise.
29012 (TERNOP_NONE_NONE_NONE_NONE_QUALIFIERS): Likewise.
29013 * config/arm/mve.md (VBICQ_M_N): Define iterator.
29014 (VCVTAQ_M): Likewise.
29015 (VCVTQ_M_TO_F): Likewise.
29016 (VQRSHRNBQ_N): Likewise.
29017 (VABAVQ): Likewise.
29018 (VSHLCQ): Likewise.
29019 (VRMLALDAVHAQ): Likewise.
29020 (mve_vbicq_m_n_<supf><mode>): Define RTL pattern.
29021 (mve_vcmpeqq_m_f<mode>): Likewise.
29022 (mve_vcvtaq_m_<supf><mode>): Likewise.
29023 (mve_vcvtq_m_to_f_<supf><mode>): Likewise.
29024 (mve_vqrshrnbq_n_<supf><mode>): Likewise.
29025 (mve_vqrshrunbq_n_s<mode>): Likewise.
29026 (mve_vrmlaldavhaq_<supf>v4si): Likewise.
29027 (mve_vabavq_<supf><mode>): Likewise.
29028 (mve_vshlcq_<supf><mode>): Likewise.
29029 (mve_vshlcq_<supf><mode>): Likewise.
29030 (mve_vshlcq_vec_<supf><mode>): Define RTL expand.
29031 (mve_vshlcq_carry_<supf><mode>): Likewise.
29032
29033 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
29034 Mihail Ionescu <mihail.ionescu@arm.com>
29035 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
29036
29037 * config/arm/arm_mve.h (vqmovntq_u16): Define macro.
29038 (vqmovnbq_u16): Likewise.
29039 (vmulltq_poly_p8): Likewise.
29040 (vmullbq_poly_p8): Likewise.
29041 (vmovntq_u16): Likewise.
29042 (vmovnbq_u16): Likewise.
29043 (vmlaldavxq_u16): Likewise.
29044 (vmlaldavq_u16): Likewise.
29045 (vqmovuntq_s16): Likewise.
29046 (vqmovunbq_s16): Likewise.
29047 (vshlltq_n_u8): Likewise.
29048 (vshllbq_n_u8): Likewise.
29049 (vorrq_n_u16): Likewise.
29050 (vbicq_n_u16): Likewise.
29051 (vcmpneq_n_f16): Likewise.
29052 (vcmpneq_f16): Likewise.
29053 (vcmpltq_n_f16): Likewise.
29054 (vcmpltq_f16): Likewise.
29055 (vcmpleq_n_f16): Likewise.
29056 (vcmpleq_f16): Likewise.
29057 (vcmpgtq_n_f16): Likewise.
29058 (vcmpgtq_f16): Likewise.
29059 (vcmpgeq_n_f16): Likewise.
29060 (vcmpgeq_f16): Likewise.
29061 (vcmpeqq_n_f16): Likewise.
29062 (vcmpeqq_f16): Likewise.
29063 (vsubq_f16): Likewise.
29064 (vqmovntq_s16): Likewise.
29065 (vqmovnbq_s16): Likewise.
29066 (vqdmulltq_s16): Likewise.
29067 (vqdmulltq_n_s16): Likewise.
29068 (vqdmullbq_s16): Likewise.
29069 (vqdmullbq_n_s16): Likewise.
29070 (vorrq_f16): Likewise.
29071 (vornq_f16): Likewise.
29072 (vmulq_n_f16): Likewise.
29073 (vmulq_f16): Likewise.
29074 (vmovntq_s16): Likewise.
29075 (vmovnbq_s16): Likewise.
29076 (vmlsldavxq_s16): Likewise.
29077 (vmlsldavq_s16): Likewise.
29078 (vmlaldavxq_s16): Likewise.
29079 (vmlaldavq_s16): Likewise.
29080 (vminnmvq_f16): Likewise.
29081 (vminnmq_f16): Likewise.
29082 (vminnmavq_f16): Likewise.
29083 (vminnmaq_f16): Likewise.
29084 (vmaxnmvq_f16): Likewise.
29085 (vmaxnmq_f16): Likewise.
29086 (vmaxnmavq_f16): Likewise.
29087 (vmaxnmaq_f16): Likewise.
29088 (veorq_f16): Likewise.
29089 (vcmulq_rot90_f16): Likewise.
29090 (vcmulq_rot270_f16): Likewise.
29091 (vcmulq_rot180_f16): Likewise.
29092 (vcmulq_f16): Likewise.
29093 (vcaddq_rot90_f16): Likewise.
29094 (vcaddq_rot270_f16): Likewise.
29095 (vbicq_f16): Likewise.
29096 (vandq_f16): Likewise.
29097 (vaddq_n_f16): Likewise.
29098 (vabdq_f16): Likewise.
29099 (vshlltq_n_s8): Likewise.
29100 (vshllbq_n_s8): Likewise.
29101 (vorrq_n_s16): Likewise.
29102 (vbicq_n_s16): Likewise.
29103 (vqmovntq_u32): Likewise.
29104 (vqmovnbq_u32): Likewise.
29105 (vmulltq_poly_p16): Likewise.
29106 (vmullbq_poly_p16): Likewise.
29107 (vmovntq_u32): Likewise.
29108 (vmovnbq_u32): Likewise.
29109 (vmlaldavxq_u32): Likewise.
29110 (vmlaldavq_u32): Likewise.
29111 (vqmovuntq_s32): Likewise.
29112 (vqmovunbq_s32): Likewise.
29113 (vshlltq_n_u16): Likewise.
29114 (vshllbq_n_u16): Likewise.
29115 (vorrq_n_u32): Likewise.
29116 (vbicq_n_u32): Likewise.
29117 (vcmpneq_n_f32): Likewise.
29118 (vcmpneq_f32): Likewise.
29119 (vcmpltq_n_f32): Likewise.
29120 (vcmpltq_f32): Likewise.
29121 (vcmpleq_n_f32): Likewise.
29122 (vcmpleq_f32): Likewise.
29123 (vcmpgtq_n_f32): Likewise.
29124 (vcmpgtq_f32): Likewise.
29125 (vcmpgeq_n_f32): Likewise.
29126 (vcmpgeq_f32): Likewise.
29127 (vcmpeqq_n_f32): Likewise.
29128 (vcmpeqq_f32): Likewise.
29129 (vsubq_f32): Likewise.
29130 (vqmovntq_s32): Likewise.
29131 (vqmovnbq_s32): Likewise.
29132 (vqdmulltq_s32): Likewise.
29133 (vqdmulltq_n_s32): Likewise.
29134 (vqdmullbq_s32): Likewise.
29135 (vqdmullbq_n_s32): Likewise.
29136 (vorrq_f32): Likewise.
29137 (vornq_f32): Likewise.
29138 (vmulq_n_f32): Likewise.
29139 (vmulq_f32): Likewise.
29140 (vmovntq_s32): Likewise.
29141 (vmovnbq_s32): Likewise.
29142 (vmlsldavxq_s32): Likewise.
29143 (vmlsldavq_s32): Likewise.
29144 (vmlaldavxq_s32): Likewise.
29145 (vmlaldavq_s32): Likewise.
29146 (vminnmvq_f32): Likewise.
29147 (vminnmq_f32): Likewise.
29148 (vminnmavq_f32): Likewise.
29149 (vminnmaq_f32): Likewise.
29150 (vmaxnmvq_f32): Likewise.
29151 (vmaxnmq_f32): Likewise.
29152 (vmaxnmavq_f32): Likewise.
29153 (vmaxnmaq_f32): Likewise.
29154 (veorq_f32): Likewise.
29155 (vcmulq_rot90_f32): Likewise.
29156 (vcmulq_rot270_f32): Likewise.
29157 (vcmulq_rot180_f32): Likewise.
29158 (vcmulq_f32): Likewise.
29159 (vcaddq_rot90_f32): Likewise.
29160 (vcaddq_rot270_f32): Likewise.
29161 (vbicq_f32): Likewise.
29162 (vandq_f32): Likewise.
29163 (vaddq_n_f32): Likewise.
29164 (vabdq_f32): Likewise.
29165 (vshlltq_n_s16): Likewise.
29166 (vshllbq_n_s16): Likewise.
29167 (vorrq_n_s32): Likewise.
29168 (vbicq_n_s32): Likewise.
29169 (vrmlaldavhq_u32): Likewise.
29170 (vctp8q_m): Likewise.
29171 (vctp64q_m): Likewise.
29172 (vctp32q_m): Likewise.
29173 (vctp16q_m): Likewise.
29174 (vaddlvaq_u32): Likewise.
29175 (vrmlsldavhxq_s32): Likewise.
29176 (vrmlsldavhq_s32): Likewise.
29177 (vrmlaldavhxq_s32): Likewise.
29178 (vrmlaldavhq_s32): Likewise.
29179 (vcvttq_f16_f32): Likewise.
29180 (vcvtbq_f16_f32): Likewise.
29181 (vaddlvaq_s32): Likewise.
29182 (__arm_vqmovntq_u16): Define intrinsic.
29183 (__arm_vqmovnbq_u16): Likewise.
29184 (__arm_vmulltq_poly_p8): Likewise.
29185 (__arm_vmullbq_poly_p8): Likewise.
29186 (__arm_vmovntq_u16): Likewise.
29187 (__arm_vmovnbq_u16): Likewise.
29188 (__arm_vmlaldavxq_u16): Likewise.
29189 (__arm_vmlaldavq_u16): Likewise.
29190 (__arm_vqmovuntq_s16): Likewise.
29191 (__arm_vqmovunbq_s16): Likewise.
29192 (__arm_vshlltq_n_u8): Likewise.
29193 (__arm_vshllbq_n_u8): Likewise.
29194 (__arm_vorrq_n_u16): Likewise.
29195 (__arm_vbicq_n_u16): Likewise.
29196 (__arm_vcmpneq_n_f16): Likewise.
29197 (__arm_vcmpneq_f16): Likewise.
29198 (__arm_vcmpltq_n_f16): Likewise.
29199 (__arm_vcmpltq_f16): Likewise.
29200 (__arm_vcmpleq_n_f16): Likewise.
29201 (__arm_vcmpleq_f16): Likewise.
29202 (__arm_vcmpgtq_n_f16): Likewise.
29203 (__arm_vcmpgtq_f16): Likewise.
29204 (__arm_vcmpgeq_n_f16): Likewise.
29205 (__arm_vcmpgeq_f16): Likewise.
29206 (__arm_vcmpeqq_n_f16): Likewise.
29207 (__arm_vcmpeqq_f16): Likewise.
29208 (__arm_vsubq_f16): Likewise.
29209 (__arm_vqmovntq_s16): Likewise.
29210 (__arm_vqmovnbq_s16): Likewise.
29211 (__arm_vqdmulltq_s16): Likewise.
29212 (__arm_vqdmulltq_n_s16): Likewise.
29213 (__arm_vqdmullbq_s16): Likewise.
29214 (__arm_vqdmullbq_n_s16): Likewise.
29215 (__arm_vorrq_f16): Likewise.
29216 (__arm_vornq_f16): Likewise.
29217 (__arm_vmulq_n_f16): Likewise.
29218 (__arm_vmulq_f16): Likewise.
29219 (__arm_vmovntq_s16): Likewise.
29220 (__arm_vmovnbq_s16): Likewise.
29221 (__arm_vmlsldavxq_s16): Likewise.
29222 (__arm_vmlsldavq_s16): Likewise.
29223 (__arm_vmlaldavxq_s16): Likewise.
29224 (__arm_vmlaldavq_s16): Likewise.
29225 (__arm_vminnmvq_f16): Likewise.
29226 (__arm_vminnmq_f16): Likewise.
29227 (__arm_vminnmavq_f16): Likewise.
29228 (__arm_vminnmaq_f16): Likewise.
29229 (__arm_vmaxnmvq_f16): Likewise.
29230 (__arm_vmaxnmq_f16): Likewise.
29231 (__arm_vmaxnmavq_f16): Likewise.
29232 (__arm_vmaxnmaq_f16): Likewise.
29233 (__arm_veorq_f16): Likewise.
29234 (__arm_vcmulq_rot90_f16): Likewise.
29235 (__arm_vcmulq_rot270_f16): Likewise.
29236 (__arm_vcmulq_rot180_f16): Likewise.
29237 (__arm_vcmulq_f16): Likewise.
29238 (__arm_vcaddq_rot90_f16): Likewise.
29239 (__arm_vcaddq_rot270_f16): Likewise.
29240 (__arm_vbicq_f16): Likewise.
29241 (__arm_vandq_f16): Likewise.
29242 (__arm_vaddq_n_f16): Likewise.
29243 (__arm_vabdq_f16): Likewise.
29244 (__arm_vshlltq_n_s8): Likewise.
29245 (__arm_vshllbq_n_s8): Likewise.
29246 (__arm_vorrq_n_s16): Likewise.
29247 (__arm_vbicq_n_s16): Likewise.
29248 (__arm_vqmovntq_u32): Likewise.
29249 (__arm_vqmovnbq_u32): Likewise.
29250 (__arm_vmulltq_poly_p16): Likewise.
29251 (__arm_vmullbq_poly_p16): Likewise.
29252 (__arm_vmovntq_u32): Likewise.
29253 (__arm_vmovnbq_u32): Likewise.
29254 (__arm_vmlaldavxq_u32): Likewise.
29255 (__arm_vmlaldavq_u32): Likewise.
29256 (__arm_vqmovuntq_s32): Likewise.
29257 (__arm_vqmovunbq_s32): Likewise.
29258 (__arm_vshlltq_n_u16): Likewise.
29259 (__arm_vshllbq_n_u16): Likewise.
29260 (__arm_vorrq_n_u32): Likewise.
29261 (__arm_vbicq_n_u32): Likewise.
29262 (__arm_vcmpneq_n_f32): Likewise.
29263 (__arm_vcmpneq_f32): Likewise.
29264 (__arm_vcmpltq_n_f32): Likewise.
29265 (__arm_vcmpltq_f32): Likewise.
29266 (__arm_vcmpleq_n_f32): Likewise.
29267 (__arm_vcmpleq_f32): Likewise.
29268 (__arm_vcmpgtq_n_f32): Likewise.
29269 (__arm_vcmpgtq_f32): Likewise.
29270 (__arm_vcmpgeq_n_f32): Likewise.
29271 (__arm_vcmpgeq_f32): Likewise.
29272 (__arm_vcmpeqq_n_f32): Likewise.
29273 (__arm_vcmpeqq_f32): Likewise.
29274 (__arm_vsubq_f32): Likewise.
29275 (__arm_vqmovntq_s32): Likewise.
29276 (__arm_vqmovnbq_s32): Likewise.
29277 (__arm_vqdmulltq_s32): Likewise.
29278 (__arm_vqdmulltq_n_s32): Likewise.
29279 (__arm_vqdmullbq_s32): Likewise.
29280 (__arm_vqdmullbq_n_s32): Likewise.
29281 (__arm_vorrq_f32): Likewise.
29282 (__arm_vornq_f32): Likewise.
29283 (__arm_vmulq_n_f32): Likewise.
29284 (__arm_vmulq_f32): Likewise.
29285 (__arm_vmovntq_s32): Likewise.
29286 (__arm_vmovnbq_s32): Likewise.
29287 (__arm_vmlsldavxq_s32): Likewise.
29288 (__arm_vmlsldavq_s32): Likewise.
29289 (__arm_vmlaldavxq_s32): Likewise.
29290 (__arm_vmlaldavq_s32): Likewise.
29291 (__arm_vminnmvq_f32): Likewise.
29292 (__arm_vminnmq_f32): Likewise.
29293 (__arm_vminnmavq_f32): Likewise.
29294 (__arm_vminnmaq_f32): Likewise.
29295 (__arm_vmaxnmvq_f32): Likewise.
29296 (__arm_vmaxnmq_f32): Likewise.
29297 (__arm_vmaxnmavq_f32): Likewise.
29298 (__arm_vmaxnmaq_f32): Likewise.
29299 (__arm_veorq_f32): Likewise.
29300 (__arm_vcmulq_rot90_f32): Likewise.
29301 (__arm_vcmulq_rot270_f32): Likewise.
29302 (__arm_vcmulq_rot180_f32): Likewise.
29303 (__arm_vcmulq_f32): Likewise.
29304 (__arm_vcaddq_rot90_f32): Likewise.
29305 (__arm_vcaddq_rot270_f32): Likewise.
29306 (__arm_vbicq_f32): Likewise.
29307 (__arm_vandq_f32): Likewise.
29308 (__arm_vaddq_n_f32): Likewise.
29309 (__arm_vabdq_f32): Likewise.
29310 (__arm_vshlltq_n_s16): Likewise.
29311 (__arm_vshllbq_n_s16): Likewise.
29312 (__arm_vorrq_n_s32): Likewise.
29313 (__arm_vbicq_n_s32): Likewise.
29314 (__arm_vrmlaldavhq_u32): Likewise.
29315 (__arm_vctp8q_m): Likewise.
29316 (__arm_vctp64q_m): Likewise.
29317 (__arm_vctp32q_m): Likewise.
29318 (__arm_vctp16q_m): Likewise.
29319 (__arm_vaddlvaq_u32): Likewise.
29320 (__arm_vrmlsldavhxq_s32): Likewise.
29321 (__arm_vrmlsldavhq_s32): Likewise.
29322 (__arm_vrmlaldavhxq_s32): Likewise.
29323 (__arm_vrmlaldavhq_s32): Likewise.
29324 (__arm_vcvttq_f16_f32): Likewise.
29325 (__arm_vcvtbq_f16_f32): Likewise.
29326 (__arm_vaddlvaq_s32): Likewise.
29327 (vst4q): Define polymorphic variant.
29328 (vrndxq): Likewise.
29329 (vrndq): Likewise.
29330 (vrndpq): Likewise.
29331 (vrndnq): Likewise.
29332 (vrndmq): Likewise.
29333 (vrndaq): Likewise.
29334 (vrev64q): Likewise.
29335 (vnegq): Likewise.
29336 (vdupq_n): Likewise.
29337 (vabsq): Likewise.
29338 (vrev32q): Likewise.
29339 (vcvtbq_f32): Likewise.
29340 (vcvttq_f32): Likewise.
29341 (vcvtq): Likewise.
29342 (vsubq_n): Likewise.
29343 (vbrsrq_n): Likewise.
29344 (vcvtq_n): Likewise.
29345 (vsubq): Likewise.
29346 (vorrq): Likewise.
29347 (vabdq): Likewise.
29348 (vaddq_n): Likewise.
29349 (vandq): Likewise.
29350 (vbicq): Likewise.
29351 (vornq): Likewise.
29352 (vmulq_n): Likewise.
29353 (vmulq): Likewise.
29354 (vcaddq_rot270): Likewise.
29355 (vcmpeqq_n): Likewise.
29356 (vcmpeqq): Likewise.
29357 (vcaddq_rot90): Likewise.
29358 (vcmpgeq_n): Likewise.
29359 (vcmpgeq): Likewise.
29360 (vcmpgtq_n): Likewise.
29361 (vcmpgtq): Likewise.
29362 (vcmpgtq): Likewise.
29363 (vcmpleq_n): Likewise.
29364 (vcmpleq_n): Likewise.
29365 (vcmpleq): Likewise.
29366 (vcmpleq): Likewise.
29367 (vcmpltq_n): Likewise.
29368 (vcmpltq_n): Likewise.
29369 (vcmpltq): Likewise.
29370 (vcmpltq): Likewise.
29371 (vcmpneq_n): Likewise.
29372 (vcmpneq_n): Likewise.
29373 (vcmpneq): Likewise.
29374 (vcmpneq): Likewise.
29375 (vcmulq): Likewise.
29376 (vcmulq): Likewise.
29377 (vcmulq_rot180): Likewise.
29378 (vcmulq_rot180): Likewise.
29379 (vcmulq_rot270): Likewise.
29380 (vcmulq_rot270): Likewise.
29381 (vcmulq_rot90): Likewise.
29382 (vcmulq_rot90): Likewise.
29383 (veorq): Likewise.
29384 (veorq): Likewise.
29385 (vmaxnmaq): Likewise.
29386 (vmaxnmaq): Likewise.
29387 (vmaxnmavq): Likewise.
29388 (vmaxnmavq): Likewise.
29389 (vmaxnmq): Likewise.
29390 (vmaxnmq): Likewise.
29391 (vmaxnmvq): Likewise.
29392 (vmaxnmvq): Likewise.
29393 (vminnmaq): Likewise.
29394 (vminnmaq): Likewise.
29395 (vminnmavq): Likewise.
29396 (vminnmavq): Likewise.
29397 (vminnmq): Likewise.
29398 (vminnmq): Likewise.
29399 (vminnmvq): Likewise.
29400 (vminnmvq): Likewise.
29401 (vbicq_n): Likewise.
29402 (vqmovntq): Likewise.
29403 (vqmovntq): Likewise.
29404 (vqmovnbq): Likewise.
29405 (vqmovnbq): Likewise.
29406 (vmulltq_poly): Likewise.
29407 (vmulltq_poly): Likewise.
29408 (vmullbq_poly): Likewise.
29409 (vmullbq_poly): Likewise.
29410 (vmovntq): Likewise.
29411 (vmovntq): Likewise.
29412 (vmovnbq): Likewise.
29413 (vmovnbq): Likewise.
29414 (vmlaldavxq): Likewise.
29415 (vmlaldavxq): Likewise.
29416 (vqmovuntq): Likewise.
29417 (vqmovuntq): Likewise.
29418 (vshlltq_n): Likewise.
29419 (vshlltq_n): Likewise.
29420 (vshllbq_n): Likewise.
29421 (vshllbq_n): Likewise.
29422 (vorrq_n): Likewise.
29423 (vorrq_n): Likewise.
29424 (vmlaldavq): Likewise.
29425 (vmlaldavq): Likewise.
29426 (vqmovunbq): Likewise.
29427 (vqmovunbq): Likewise.
29428 (vqdmulltq_n): Likewise.
29429 (vqdmulltq_n): Likewise.
29430 (vqdmulltq): Likewise.
29431 (vqdmulltq): Likewise.
29432 (vqdmullbq_n): Likewise.
29433 (vqdmullbq_n): Likewise.
29434 (vqdmullbq): Likewise.
29435 (vqdmullbq): Likewise.
29436 (vaddlvaq): Likewise.
29437 (vaddlvaq): Likewise.
29438 (vrmlaldavhq): Likewise.
29439 (vrmlaldavhq): Likewise.
29440 (vrmlaldavhxq): Likewise.
29441 (vrmlaldavhxq): Likewise.
29442 (vrmlsldavhq): Likewise.
29443 (vrmlsldavhq): Likewise.
29444 (vrmlsldavhxq): Likewise.
29445 (vrmlsldavhxq): Likewise.
29446 (vmlsldavxq): Likewise.
29447 (vmlsldavxq): Likewise.
29448 (vmlsldavq): Likewise.
29449 (vmlsldavq): Likewise.
29450 * config/arm/arm_mve_builtins.def (BINOP_NONE_NONE_IMM): Use it.
29451 (BINOP_NONE_NONE_NONE): Likewise.
29452 (BINOP_UNONE_NONE_NONE): Likewise.
29453 (BINOP_UNONE_UNONE_IMM): Likewise.
29454 (BINOP_UNONE_UNONE_NONE): Likewise.
29455 (BINOP_UNONE_UNONE_UNONE): Likewise.
29456 * config/arm/mve.md (mve_vabdq_f<mode>): Define RTL pattern.
29457 (mve_vaddlvaq_<supf>v4si): Likewise.
29458 (mve_vaddq_n_f<mode>): Likewise.
29459 (mve_vandq_f<mode>): Likewise.
29460 (mve_vbicq_f<mode>): Likewise.
29461 (mve_vbicq_n_<supf><mode>): Likewise.
29462 (mve_vcaddq_rot270_f<mode>): Likewise.
29463 (mve_vcaddq_rot90_f<mode>): Likewise.
29464 (mve_vcmpeqq_f<mode>): Likewise.
29465 (mve_vcmpeqq_n_f<mode>): Likewise.
29466 (mve_vcmpgeq_f<mode>): Likewise.
29467 (mve_vcmpgeq_n_f<mode>): Likewise.
29468 (mve_vcmpgtq_f<mode>): Likewise.
29469 (mve_vcmpgtq_n_f<mode>): Likewise.
29470 (mve_vcmpleq_f<mode>): Likewise.
29471 (mve_vcmpleq_n_f<mode>): Likewise.
29472 (mve_vcmpltq_f<mode>): Likewise.
29473 (mve_vcmpltq_n_f<mode>): Likewise.
29474 (mve_vcmpneq_f<mode>): Likewise.
29475 (mve_vcmpneq_n_f<mode>): Likewise.
29476 (mve_vcmulq_f<mode>): Likewise.
29477 (mve_vcmulq_rot180_f<mode>): Likewise.
29478 (mve_vcmulq_rot270_f<mode>): Likewise.
29479 (mve_vcmulq_rot90_f<mode>): Likewise.
29480 (mve_vctp<mode1>q_mhi): Likewise.
29481 (mve_vcvtbq_f16_f32v8hf): Likewise.
29482 (mve_vcvttq_f16_f32v8hf): Likewise.
29483 (mve_veorq_f<mode>): Likewise.
29484 (mve_vmaxnmaq_f<mode>): Likewise.
29485 (mve_vmaxnmavq_f<mode>): Likewise.
29486 (mve_vmaxnmq_f<mode>): Likewise.
29487 (mve_vmaxnmvq_f<mode>): Likewise.
29488 (mve_vminnmaq_f<mode>): Likewise.
29489 (mve_vminnmavq_f<mode>): Likewise.
29490 (mve_vminnmq_f<mode>): Likewise.
29491 (mve_vminnmvq_f<mode>): Likewise.
29492 (mve_vmlaldavq_<supf><mode>): Likewise.
29493 (mve_vmlaldavxq_<supf><mode>): Likewise.
29494 (mve_vmlsldavq_s<mode>): Likewise.
29495 (mve_vmlsldavxq_s<mode>): Likewise.
29496 (mve_vmovnbq_<supf><mode>): Likewise.
29497 (mve_vmovntq_<supf><mode>): Likewise.
29498 (mve_vmulq_f<mode>): Likewise.
29499 (mve_vmulq_n_f<mode>): Likewise.
29500 (mve_vornq_f<mode>): Likewise.
29501 (mve_vorrq_f<mode>): Likewise.
29502 (mve_vorrq_n_<supf><mode>): Likewise.
29503 (mve_vqdmullbq_n_s<mode>): Likewise.
29504 (mve_vqdmullbq_s<mode>): Likewise.
29505 (mve_vqdmulltq_n_s<mode>): Likewise.
29506 (mve_vqdmulltq_s<mode>): Likewise.
29507 (mve_vqmovnbq_<supf><mode>): Likewise.
29508 (mve_vqmovntq_<supf><mode>): Likewise.
29509 (mve_vqmovunbq_s<mode>): Likewise.
29510 (mve_vqmovuntq_s<mode>): Likewise.
29511 (mve_vrmlaldavhxq_sv4si): Likewise.
29512 (mve_vrmlsldavhq_sv4si): Likewise.
29513 (mve_vrmlsldavhxq_sv4si): Likewise.
29514 (mve_vshllbq_n_<supf><mode>): Likewise.
29515 (mve_vshlltq_n_<supf><mode>): Likewise.
29516 (mve_vsubq_f<mode>): Likewise.
29517 (mve_vmulltq_poly_p<mode>): Likewise.
29518 (mve_vmullbq_poly_p<mode>): Likewise.
29519 (mve_vrmlaldavhq_<supf>v4si): Likewise.
29520
29521 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
29522 Mihail Ionescu <mihail.ionescu@arm.com>
29523 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
29524
29525 * config/arm/arm_mve.h (vsubq_u8): Define macro.
29526 (vsubq_n_u8): Likewise.
29527 (vrmulhq_u8): Likewise.
29528 (vrhaddq_u8): Likewise.
29529 (vqsubq_u8): Likewise.
29530 (vqsubq_n_u8): Likewise.
29531 (vqaddq_u8): Likewise.
29532 (vqaddq_n_u8): Likewise.
29533 (vorrq_u8): Likewise.
29534 (vornq_u8): Likewise.
29535 (vmulq_u8): Likewise.
29536 (vmulq_n_u8): Likewise.
29537 (vmulltq_int_u8): Likewise.
29538 (vmullbq_int_u8): Likewise.
29539 (vmulhq_u8): Likewise.
29540 (vmladavq_u8): Likewise.
29541 (vminvq_u8): Likewise.
29542 (vminq_u8): Likewise.
29543 (vmaxvq_u8): Likewise.
29544 (vmaxq_u8): Likewise.
29545 (vhsubq_u8): Likewise.
29546 (vhsubq_n_u8): Likewise.
29547 (vhaddq_u8): Likewise.
29548 (vhaddq_n_u8): Likewise.
29549 (veorq_u8): Likewise.
29550 (vcmpneq_n_u8): Likewise.
29551 (vcmphiq_u8): Likewise.
29552 (vcmphiq_n_u8): Likewise.
29553 (vcmpeqq_u8): Likewise.
29554 (vcmpeqq_n_u8): Likewise.
29555 (vcmpcsq_u8): Likewise.
29556 (vcmpcsq_n_u8): Likewise.
29557 (vcaddq_rot90_u8): Likewise.
29558 (vcaddq_rot270_u8): Likewise.
29559 (vbicq_u8): Likewise.
29560 (vandq_u8): Likewise.
29561 (vaddvq_p_u8): Likewise.
29562 (vaddvaq_u8): Likewise.
29563 (vaddq_n_u8): Likewise.
29564 (vabdq_u8): Likewise.
29565 (vshlq_r_u8): Likewise.
29566 (vrshlq_u8): Likewise.
29567 (vrshlq_n_u8): Likewise.
29568 (vqshlq_u8): Likewise.
29569 (vqshlq_r_u8): Likewise.
29570 (vqrshlq_u8): Likewise.
29571 (vqrshlq_n_u8): Likewise.
29572 (vminavq_s8): Likewise.
29573 (vminaq_s8): Likewise.
29574 (vmaxavq_s8): Likewise.
29575 (vmaxaq_s8): Likewise.
29576 (vbrsrq_n_u8): Likewise.
29577 (vshlq_n_u8): Likewise.
29578 (vrshrq_n_u8): Likewise.
29579 (vqshlq_n_u8): Likewise.
29580 (vcmpneq_n_s8): Likewise.
29581 (vcmpltq_s8): Likewise.
29582 (vcmpltq_n_s8): Likewise.
29583 (vcmpleq_s8): Likewise.
29584 (vcmpleq_n_s8): Likewise.
29585 (vcmpgtq_s8): Likewise.
29586 (vcmpgtq_n_s8): Likewise.
29587 (vcmpgeq_s8): Likewise.
29588 (vcmpgeq_n_s8): Likewise.
29589 (vcmpeqq_s8): Likewise.
29590 (vcmpeqq_n_s8): Likewise.
29591 (vqshluq_n_s8): Likewise.
29592 (vaddvq_p_s8): Likewise.
29593 (vsubq_s8): Likewise.
29594 (vsubq_n_s8): Likewise.
29595 (vshlq_r_s8): Likewise.
29596 (vrshlq_s8): Likewise.
29597 (vrshlq_n_s8): Likewise.
29598 (vrmulhq_s8): Likewise.
29599 (vrhaddq_s8): Likewise.
29600 (vqsubq_s8): Likewise.
29601 (vqsubq_n_s8): Likewise.
29602 (vqshlq_s8): Likewise.
29603 (vqshlq_r_s8): Likewise.
29604 (vqrshlq_s8): Likewise.
29605 (vqrshlq_n_s8): Likewise.
29606 (vqrdmulhq_s8): Likewise.
29607 (vqrdmulhq_n_s8): Likewise.
29608 (vqdmulhq_s8): Likewise.
29609 (vqdmulhq_n_s8): Likewise.
29610 (vqaddq_s8): Likewise.
29611 (vqaddq_n_s8): Likewise.
29612 (vorrq_s8): Likewise.
29613 (vornq_s8): Likewise.
29614 (vmulq_s8): Likewise.
29615 (vmulq_n_s8): Likewise.
29616 (vmulltq_int_s8): Likewise.
29617 (vmullbq_int_s8): Likewise.
29618 (vmulhq_s8): Likewise.
29619 (vmlsdavxq_s8): Likewise.
29620 (vmlsdavq_s8): Likewise.
29621 (vmladavxq_s8): Likewise.
29622 (vmladavq_s8): Likewise.
29623 (vminvq_s8): Likewise.
29624 (vminq_s8): Likewise.
29625 (vmaxvq_s8): Likewise.
29626 (vmaxq_s8): Likewise.
29627 (vhsubq_s8): Likewise.
29628 (vhsubq_n_s8): Likewise.
29629 (vhcaddq_rot90_s8): Likewise.
29630 (vhcaddq_rot270_s8): Likewise.
29631 (vhaddq_s8): Likewise.
29632 (vhaddq_n_s8): Likewise.
29633 (veorq_s8): Likewise.
29634 (vcaddq_rot90_s8): Likewise.
29635 (vcaddq_rot270_s8): Likewise.
29636 (vbrsrq_n_s8): Likewise.
29637 (vbicq_s8): Likewise.
29638 (vandq_s8): Likewise.
29639 (vaddvaq_s8): Likewise.
29640 (vaddq_n_s8): Likewise.
29641 (vabdq_s8): Likewise.
29642 (vshlq_n_s8): Likewise.
29643 (vrshrq_n_s8): Likewise.
29644 (vqshlq_n_s8): Likewise.
29645 (vsubq_u16): Likewise.
29646 (vsubq_n_u16): Likewise.
29647 (vrmulhq_u16): Likewise.
29648 (vrhaddq_u16): Likewise.
29649 (vqsubq_u16): Likewise.
29650 (vqsubq_n_u16): Likewise.
29651 (vqaddq_u16): Likewise.
29652 (vqaddq_n_u16): Likewise.
29653 (vorrq_u16): Likewise.
29654 (vornq_u16): Likewise.
29655 (vmulq_u16): Likewise.
29656 (vmulq_n_u16): Likewise.
29657 (vmulltq_int_u16): Likewise.
29658 (vmullbq_int_u16): Likewise.
29659 (vmulhq_u16): Likewise.
29660 (vmladavq_u16): Likewise.
29661 (vminvq_u16): Likewise.
29662 (vminq_u16): Likewise.
29663 (vmaxvq_u16): Likewise.
29664 (vmaxq_u16): Likewise.
29665 (vhsubq_u16): Likewise.
29666 (vhsubq_n_u16): Likewise.
29667 (vhaddq_u16): Likewise.
29668 (vhaddq_n_u16): Likewise.
29669 (veorq_u16): Likewise.
29670 (vcmpneq_n_u16): Likewise.
29671 (vcmphiq_u16): Likewise.
29672 (vcmphiq_n_u16): Likewise.
29673 (vcmpeqq_u16): Likewise.
29674 (vcmpeqq_n_u16): Likewise.
29675 (vcmpcsq_u16): Likewise.
29676 (vcmpcsq_n_u16): Likewise.
29677 (vcaddq_rot90_u16): Likewise.
29678 (vcaddq_rot270_u16): Likewise.
29679 (vbicq_u16): Likewise.
29680 (vandq_u16): Likewise.
29681 (vaddvq_p_u16): Likewise.
29682 (vaddvaq_u16): Likewise.
29683 (vaddq_n_u16): Likewise.
29684 (vabdq_u16): Likewise.
29685 (vshlq_r_u16): Likewise.
29686 (vrshlq_u16): Likewise.
29687 (vrshlq_n_u16): Likewise.
29688 (vqshlq_u16): Likewise.
29689 (vqshlq_r_u16): Likewise.
29690 (vqrshlq_u16): Likewise.
29691 (vqrshlq_n_u16): Likewise.
29692 (vminavq_s16): Likewise.
29693 (vminaq_s16): Likewise.
29694 (vmaxavq_s16): Likewise.
29695 (vmaxaq_s16): Likewise.
29696 (vbrsrq_n_u16): Likewise.
29697 (vshlq_n_u16): Likewise.
29698 (vrshrq_n_u16): Likewise.
29699 (vqshlq_n_u16): Likewise.
29700 (vcmpneq_n_s16): Likewise.
29701 (vcmpltq_s16): Likewise.
29702 (vcmpltq_n_s16): Likewise.
29703 (vcmpleq_s16): Likewise.
29704 (vcmpleq_n_s16): Likewise.
29705 (vcmpgtq_s16): Likewise.
29706 (vcmpgtq_n_s16): Likewise.
29707 (vcmpgeq_s16): Likewise.
29708 (vcmpgeq_n_s16): Likewise.
29709 (vcmpeqq_s16): Likewise.
29710 (vcmpeqq_n_s16): Likewise.
29711 (vqshluq_n_s16): Likewise.
29712 (vaddvq_p_s16): Likewise.
29713 (vsubq_s16): Likewise.
29714 (vsubq_n_s16): Likewise.
29715 (vshlq_r_s16): Likewise.
29716 (vrshlq_s16): Likewise.
29717 (vrshlq_n_s16): Likewise.
29718 (vrmulhq_s16): Likewise.
29719 (vrhaddq_s16): Likewise.
29720 (vqsubq_s16): Likewise.
29721 (vqsubq_n_s16): Likewise.
29722 (vqshlq_s16): Likewise.
29723 (vqshlq_r_s16): Likewise.
29724 (vqrshlq_s16): Likewise.
29725 (vqrshlq_n_s16): Likewise.
29726 (vqrdmulhq_s16): Likewise.
29727 (vqrdmulhq_n_s16): Likewise.
29728 (vqdmulhq_s16): Likewise.
29729 (vqdmulhq_n_s16): Likewise.
29730 (vqaddq_s16): Likewise.
29731 (vqaddq_n_s16): Likewise.
29732 (vorrq_s16): Likewise.
29733 (vornq_s16): Likewise.
29734 (vmulq_s16): Likewise.
29735 (vmulq_n_s16): Likewise.
29736 (vmulltq_int_s16): Likewise.
29737 (vmullbq_int_s16): Likewise.
29738 (vmulhq_s16): Likewise.
29739 (vmlsdavxq_s16): Likewise.
29740 (vmlsdavq_s16): Likewise.
29741 (vmladavxq_s16): Likewise.
29742 (vmladavq_s16): Likewise.
29743 (vminvq_s16): Likewise.
29744 (vminq_s16): Likewise.
29745 (vmaxvq_s16): Likewise.
29746 (vmaxq_s16): Likewise.
29747 (vhsubq_s16): Likewise.
29748 (vhsubq_n_s16): Likewise.
29749 (vhcaddq_rot90_s16): Likewise.
29750 (vhcaddq_rot270_s16): Likewise.
29751 (vhaddq_s16): Likewise.
29752 (vhaddq_n_s16): Likewise.
29753 (veorq_s16): Likewise.
29754 (vcaddq_rot90_s16): Likewise.
29755 (vcaddq_rot270_s16): Likewise.
29756 (vbrsrq_n_s16): Likewise.
29757 (vbicq_s16): Likewise.
29758 (vandq_s16): Likewise.
29759 (vaddvaq_s16): Likewise.
29760 (vaddq_n_s16): Likewise.
29761 (vabdq_s16): Likewise.
29762 (vshlq_n_s16): Likewise.
29763 (vrshrq_n_s16): Likewise.
29764 (vqshlq_n_s16): Likewise.
29765 (vsubq_u32): Likewise.
29766 (vsubq_n_u32): Likewise.
29767 (vrmulhq_u32): Likewise.
29768 (vrhaddq_u32): Likewise.
29769 (vqsubq_u32): Likewise.
29770 (vqsubq_n_u32): Likewise.
29771 (vqaddq_u32): Likewise.
29772 (vqaddq_n_u32): Likewise.
29773 (vorrq_u32): Likewise.
29774 (vornq_u32): Likewise.
29775 (vmulq_u32): Likewise.
29776 (vmulq_n_u32): Likewise.
29777 (vmulltq_int_u32): Likewise.
29778 (vmullbq_int_u32): Likewise.
29779 (vmulhq_u32): Likewise.
29780 (vmladavq_u32): Likewise.
29781 (vminvq_u32): Likewise.
29782 (vminq_u32): Likewise.
29783 (vmaxvq_u32): Likewise.
29784 (vmaxq_u32): Likewise.
29785 (vhsubq_u32): Likewise.
29786 (vhsubq_n_u32): Likewise.
29787 (vhaddq_u32): Likewise.
29788 (vhaddq_n_u32): Likewise.
29789 (veorq_u32): Likewise.
29790 (vcmpneq_n_u32): Likewise.
29791 (vcmphiq_u32): Likewise.
29792 (vcmphiq_n_u32): Likewise.
29793 (vcmpeqq_u32): Likewise.
29794 (vcmpeqq_n_u32): Likewise.
29795 (vcmpcsq_u32): Likewise.
29796 (vcmpcsq_n_u32): Likewise.
29797 (vcaddq_rot90_u32): Likewise.
29798 (vcaddq_rot270_u32): Likewise.
29799 (vbicq_u32): Likewise.
29800 (vandq_u32): Likewise.
29801 (vaddvq_p_u32): Likewise.
29802 (vaddvaq_u32): Likewise.
29803 (vaddq_n_u32): Likewise.
29804 (vabdq_u32): Likewise.
29805 (vshlq_r_u32): Likewise.
29806 (vrshlq_u32): Likewise.
29807 (vrshlq_n_u32): Likewise.
29808 (vqshlq_u32): Likewise.
29809 (vqshlq_r_u32): Likewise.
29810 (vqrshlq_u32): Likewise.
29811 (vqrshlq_n_u32): Likewise.
29812 (vminavq_s32): Likewise.
29813 (vminaq_s32): Likewise.
29814 (vmaxavq_s32): Likewise.
29815 (vmaxaq_s32): Likewise.
29816 (vbrsrq_n_u32): Likewise.
29817 (vshlq_n_u32): Likewise.
29818 (vrshrq_n_u32): Likewise.
29819 (vqshlq_n_u32): Likewise.
29820 (vcmpneq_n_s32): Likewise.
29821 (vcmpltq_s32): Likewise.
29822 (vcmpltq_n_s32): Likewise.
29823 (vcmpleq_s32): Likewise.
29824 (vcmpleq_n_s32): Likewise.
29825 (vcmpgtq_s32): Likewise.
29826 (vcmpgtq_n_s32): Likewise.
29827 (vcmpgeq_s32): Likewise.
29828 (vcmpgeq_n_s32): Likewise.
29829 (vcmpeqq_s32): Likewise.
29830 (vcmpeqq_n_s32): Likewise.
29831 (vqshluq_n_s32): Likewise.
29832 (vaddvq_p_s32): Likewise.
29833 (vsubq_s32): Likewise.
29834 (vsubq_n_s32): Likewise.
29835 (vshlq_r_s32): Likewise.
29836 (vrshlq_s32): Likewise.
29837 (vrshlq_n_s32): Likewise.
29838 (vrmulhq_s32): Likewise.
29839 (vrhaddq_s32): Likewise.
29840 (vqsubq_s32): Likewise.
29841 (vqsubq_n_s32): Likewise.
29842 (vqshlq_s32): Likewise.
29843 (vqshlq_r_s32): Likewise.
29844 (vqrshlq_s32): Likewise.
29845 (vqrshlq_n_s32): Likewise.
29846 (vqrdmulhq_s32): Likewise.
29847 (vqrdmulhq_n_s32): Likewise.
29848 (vqdmulhq_s32): Likewise.
29849 (vqdmulhq_n_s32): Likewise.
29850 (vqaddq_s32): Likewise.
29851 (vqaddq_n_s32): Likewise.
29852 (vorrq_s32): Likewise.
29853 (vornq_s32): Likewise.
29854 (vmulq_s32): Likewise.
29855 (vmulq_n_s32): Likewise.
29856 (vmulltq_int_s32): Likewise.
29857 (vmullbq_int_s32): Likewise.
29858 (vmulhq_s32): Likewise.
29859 (vmlsdavxq_s32): Likewise.
29860 (vmlsdavq_s32): Likewise.
29861 (vmladavxq_s32): Likewise.
29862 (vmladavq_s32): Likewise.
29863 (vminvq_s32): Likewise.
29864 (vminq_s32): Likewise.
29865 (vmaxvq_s32): Likewise.
29866 (vmaxq_s32): Likewise.
29867 (vhsubq_s32): Likewise.
29868 (vhsubq_n_s32): Likewise.
29869 (vhcaddq_rot90_s32): Likewise.
29870 (vhcaddq_rot270_s32): Likewise.
29871 (vhaddq_s32): Likewise.
29872 (vhaddq_n_s32): Likewise.
29873 (veorq_s32): Likewise.
29874 (vcaddq_rot90_s32): Likewise.
29875 (vcaddq_rot270_s32): Likewise.
29876 (vbrsrq_n_s32): Likewise.
29877 (vbicq_s32): Likewise.
29878 (vandq_s32): Likewise.
29879 (vaddvaq_s32): Likewise.
29880 (vaddq_n_s32): Likewise.
29881 (vabdq_s32): Likewise.
29882 (vshlq_n_s32): Likewise.
29883 (vrshrq_n_s32): Likewise.
29884 (vqshlq_n_s32): Likewise.
29885 (__arm_vsubq_u8): Define intrinsic.
29886 (__arm_vsubq_n_u8): Likewise.
29887 (__arm_vrmulhq_u8): Likewise.
29888 (__arm_vrhaddq_u8): Likewise.
29889 (__arm_vqsubq_u8): Likewise.
29890 (__arm_vqsubq_n_u8): Likewise.
29891 (__arm_vqaddq_u8): Likewise.
29892 (__arm_vqaddq_n_u8): Likewise.
29893 (__arm_vorrq_u8): Likewise.
29894 (__arm_vornq_u8): Likewise.
29895 (__arm_vmulq_u8): Likewise.
29896 (__arm_vmulq_n_u8): Likewise.
29897 (__arm_vmulltq_int_u8): Likewise.
29898 (__arm_vmullbq_int_u8): Likewise.
29899 (__arm_vmulhq_u8): Likewise.
29900 (__arm_vmladavq_u8): Likewise.
29901 (__arm_vminvq_u8): Likewise.
29902 (__arm_vminq_u8): Likewise.
29903 (__arm_vmaxvq_u8): Likewise.
29904 (__arm_vmaxq_u8): Likewise.
29905 (__arm_vhsubq_u8): Likewise.
29906 (__arm_vhsubq_n_u8): Likewise.
29907 (__arm_vhaddq_u8): Likewise.
29908 (__arm_vhaddq_n_u8): Likewise.
29909 (__arm_veorq_u8): Likewise.
29910 (__arm_vcmpneq_n_u8): Likewise.
29911 (__arm_vcmphiq_u8): Likewise.
29912 (__arm_vcmphiq_n_u8): Likewise.
29913 (__arm_vcmpeqq_u8): Likewise.
29914 (__arm_vcmpeqq_n_u8): Likewise.
29915 (__arm_vcmpcsq_u8): Likewise.
29916 (__arm_vcmpcsq_n_u8): Likewise.
29917 (__arm_vcaddq_rot90_u8): Likewise.
29918 (__arm_vcaddq_rot270_u8): Likewise.
29919 (__arm_vbicq_u8): Likewise.
29920 (__arm_vandq_u8): Likewise.
29921 (__arm_vaddvq_p_u8): Likewise.
29922 (__arm_vaddvaq_u8): Likewise.
29923 (__arm_vaddq_n_u8): Likewise.
29924 (__arm_vabdq_u8): Likewise.
29925 (__arm_vshlq_r_u8): Likewise.
29926 (__arm_vrshlq_u8): Likewise.
29927 (__arm_vrshlq_n_u8): Likewise.
29928 (__arm_vqshlq_u8): Likewise.
29929 (__arm_vqshlq_r_u8): Likewise.
29930 (__arm_vqrshlq_u8): Likewise.
29931 (__arm_vqrshlq_n_u8): Likewise.
29932 (__arm_vminavq_s8): Likewise.
29933 (__arm_vminaq_s8): Likewise.
29934 (__arm_vmaxavq_s8): Likewise.
29935 (__arm_vmaxaq_s8): Likewise.
29936 (__arm_vbrsrq_n_u8): Likewise.
29937 (__arm_vshlq_n_u8): Likewise.
29938 (__arm_vrshrq_n_u8): Likewise.
29939 (__arm_vqshlq_n_u8): Likewise.
29940 (__arm_vcmpneq_n_s8): Likewise.
29941 (__arm_vcmpltq_s8): Likewise.
29942 (__arm_vcmpltq_n_s8): Likewise.
29943 (__arm_vcmpleq_s8): Likewise.
29944 (__arm_vcmpleq_n_s8): Likewise.
29945 (__arm_vcmpgtq_s8): Likewise.
29946 (__arm_vcmpgtq_n_s8): Likewise.
29947 (__arm_vcmpgeq_s8): Likewise.
29948 (__arm_vcmpgeq_n_s8): Likewise.
29949 (__arm_vcmpeqq_s8): Likewise.
29950 (__arm_vcmpeqq_n_s8): Likewise.
29951 (__arm_vqshluq_n_s8): Likewise.
29952 (__arm_vaddvq_p_s8): Likewise.
29953 (__arm_vsubq_s8): Likewise.
29954 (__arm_vsubq_n_s8): Likewise.
29955 (__arm_vshlq_r_s8): Likewise.
29956 (__arm_vrshlq_s8): Likewise.
29957 (__arm_vrshlq_n_s8): Likewise.
29958 (__arm_vrmulhq_s8): Likewise.
29959 (__arm_vrhaddq_s8): Likewise.
29960 (__arm_vqsubq_s8): Likewise.
29961 (__arm_vqsubq_n_s8): Likewise.
29962 (__arm_vqshlq_s8): Likewise.
29963 (__arm_vqshlq_r_s8): Likewise.
29964 (__arm_vqrshlq_s8): Likewise.
29965 (__arm_vqrshlq_n_s8): Likewise.
29966 (__arm_vqrdmulhq_s8): Likewise.
29967 (__arm_vqrdmulhq_n_s8): Likewise.
29968 (__arm_vqdmulhq_s8): Likewise.
29969 (__arm_vqdmulhq_n_s8): Likewise.
29970 (__arm_vqaddq_s8): Likewise.
29971 (__arm_vqaddq_n_s8): Likewise.
29972 (__arm_vorrq_s8): Likewise.
29973 (__arm_vornq_s8): Likewise.
29974 (__arm_vmulq_s8): Likewise.
29975 (__arm_vmulq_n_s8): Likewise.
29976 (__arm_vmulltq_int_s8): Likewise.
29977 (__arm_vmullbq_int_s8): Likewise.
29978 (__arm_vmulhq_s8): Likewise.
29979 (__arm_vmlsdavxq_s8): Likewise.
29980 (__arm_vmlsdavq_s8): Likewise.
29981 (__arm_vmladavxq_s8): Likewise.
29982 (__arm_vmladavq_s8): Likewise.
29983 (__arm_vminvq_s8): Likewise.
29984 (__arm_vminq_s8): Likewise.
29985 (__arm_vmaxvq_s8): Likewise.
29986 (__arm_vmaxq_s8): Likewise.
29987 (__arm_vhsubq_s8): Likewise.
29988 (__arm_vhsubq_n_s8): Likewise.
29989 (__arm_vhcaddq_rot90_s8): Likewise.
29990 (__arm_vhcaddq_rot270_s8): Likewise.
29991 (__arm_vhaddq_s8): Likewise.
29992 (__arm_vhaddq_n_s8): Likewise.
29993 (__arm_veorq_s8): Likewise.
29994 (__arm_vcaddq_rot90_s8): Likewise.
29995 (__arm_vcaddq_rot270_s8): Likewise.
29996 (__arm_vbrsrq_n_s8): Likewise.
29997 (__arm_vbicq_s8): Likewise.
29998 (__arm_vandq_s8): Likewise.
29999 (__arm_vaddvaq_s8): Likewise.
30000 (__arm_vaddq_n_s8): Likewise.
30001 (__arm_vabdq_s8): Likewise.
30002 (__arm_vshlq_n_s8): Likewise.
30003 (__arm_vrshrq_n_s8): Likewise.
30004 (__arm_vqshlq_n_s8): Likewise.
30005 (__arm_vsubq_u16): Likewise.
30006 (__arm_vsubq_n_u16): Likewise.
30007 (__arm_vrmulhq_u16): Likewise.
30008 (__arm_vrhaddq_u16): Likewise.
30009 (__arm_vqsubq_u16): Likewise.
30010 (__arm_vqsubq_n_u16): Likewise.
30011 (__arm_vqaddq_u16): Likewise.
30012 (__arm_vqaddq_n_u16): Likewise.
30013 (__arm_vorrq_u16): Likewise.
30014 (__arm_vornq_u16): Likewise.
30015 (__arm_vmulq_u16): Likewise.
30016 (__arm_vmulq_n_u16): Likewise.
30017 (__arm_vmulltq_int_u16): Likewise.
30018 (__arm_vmullbq_int_u16): Likewise.
30019 (__arm_vmulhq_u16): Likewise.
30020 (__arm_vmladavq_u16): Likewise.
30021 (__arm_vminvq_u16): Likewise.
30022 (__arm_vminq_u16): Likewise.
30023 (__arm_vmaxvq_u16): Likewise.
30024 (__arm_vmaxq_u16): Likewise.
30025 (__arm_vhsubq_u16): Likewise.
30026 (__arm_vhsubq_n_u16): Likewise.
30027 (__arm_vhaddq_u16): Likewise.
30028 (__arm_vhaddq_n_u16): Likewise.
30029 (__arm_veorq_u16): Likewise.
30030 (__arm_vcmpneq_n_u16): Likewise.
30031 (__arm_vcmphiq_u16): Likewise.
30032 (__arm_vcmphiq_n_u16): Likewise.
30033 (__arm_vcmpeqq_u16): Likewise.
30034 (__arm_vcmpeqq_n_u16): Likewise.
30035 (__arm_vcmpcsq_u16): Likewise.
30036 (__arm_vcmpcsq_n_u16): Likewise.
30037 (__arm_vcaddq_rot90_u16): Likewise.
30038 (__arm_vcaddq_rot270_u16): Likewise.
30039 (__arm_vbicq_u16): Likewise.
30040 (__arm_vandq_u16): Likewise.
30041 (__arm_vaddvq_p_u16): Likewise.
30042 (__arm_vaddvaq_u16): Likewise.
30043 (__arm_vaddq_n_u16): Likewise.
30044 (__arm_vabdq_u16): Likewise.
30045 (__arm_vshlq_r_u16): Likewise.
30046 (__arm_vrshlq_u16): Likewise.
30047 (__arm_vrshlq_n_u16): Likewise.
30048 (__arm_vqshlq_u16): Likewise.
30049 (__arm_vqshlq_r_u16): Likewise.
30050 (__arm_vqrshlq_u16): Likewise.
30051 (__arm_vqrshlq_n_u16): Likewise.
30052 (__arm_vminavq_s16): Likewise.
30053 (__arm_vminaq_s16): Likewise.
30054 (__arm_vmaxavq_s16): Likewise.
30055 (__arm_vmaxaq_s16): Likewise.
30056 (__arm_vbrsrq_n_u16): Likewise.
30057 (__arm_vshlq_n_u16): Likewise.
30058 (__arm_vrshrq_n_u16): Likewise.
30059 (__arm_vqshlq_n_u16): Likewise.
30060 (__arm_vcmpneq_n_s16): Likewise.
30061 (__arm_vcmpltq_s16): Likewise.
30062 (__arm_vcmpltq_n_s16): Likewise.
30063 (__arm_vcmpleq_s16): Likewise.
30064 (__arm_vcmpleq_n_s16): Likewise.
30065 (__arm_vcmpgtq_s16): Likewise.
30066 (__arm_vcmpgtq_n_s16): Likewise.
30067 (__arm_vcmpgeq_s16): Likewise.
30068 (__arm_vcmpgeq_n_s16): Likewise.
30069 (__arm_vcmpeqq_s16): Likewise.
30070 (__arm_vcmpeqq_n_s16): Likewise.
30071 (__arm_vqshluq_n_s16): Likewise.
30072 (__arm_vaddvq_p_s16): Likewise.
30073 (__arm_vsubq_s16): Likewise.
30074 (__arm_vsubq_n_s16): Likewise.
30075 (__arm_vshlq_r_s16): Likewise.
30076 (__arm_vrshlq_s16): Likewise.
30077 (__arm_vrshlq_n_s16): Likewise.
30078 (__arm_vrmulhq_s16): Likewise.
30079 (__arm_vrhaddq_s16): Likewise.
30080 (__arm_vqsubq_s16): Likewise.
30081 (__arm_vqsubq_n_s16): Likewise.
30082 (__arm_vqshlq_s16): Likewise.
30083 (__arm_vqshlq_r_s16): Likewise.
30084 (__arm_vqrshlq_s16): Likewise.
30085 (__arm_vqrshlq_n_s16): Likewise.
30086 (__arm_vqrdmulhq_s16): Likewise.
30087 (__arm_vqrdmulhq_n_s16): Likewise.
30088 (__arm_vqdmulhq_s16): Likewise.
30089 (__arm_vqdmulhq_n_s16): Likewise.
30090 (__arm_vqaddq_s16): Likewise.
30091 (__arm_vqaddq_n_s16): Likewise.
30092 (__arm_vorrq_s16): Likewise.
30093 (__arm_vornq_s16): Likewise.
30094 (__arm_vmulq_s16): Likewise.
30095 (__arm_vmulq_n_s16): Likewise.
30096 (__arm_vmulltq_int_s16): Likewise.
30097 (__arm_vmullbq_int_s16): Likewise.
30098 (__arm_vmulhq_s16): Likewise.
30099 (__arm_vmlsdavxq_s16): Likewise.
30100 (__arm_vmlsdavq_s16): Likewise.
30101 (__arm_vmladavxq_s16): Likewise.
30102 (__arm_vmladavq_s16): Likewise.
30103 (__arm_vminvq_s16): Likewise.
30104 (__arm_vminq_s16): Likewise.
30105 (__arm_vmaxvq_s16): Likewise.
30106 (__arm_vmaxq_s16): Likewise.
30107 (__arm_vhsubq_s16): Likewise.
30108 (__arm_vhsubq_n_s16): Likewise.
30109 (__arm_vhcaddq_rot90_s16): Likewise.
30110 (__arm_vhcaddq_rot270_s16): Likewise.
30111 (__arm_vhaddq_s16): Likewise.
30112 (__arm_vhaddq_n_s16): Likewise.
30113 (__arm_veorq_s16): Likewise.
30114 (__arm_vcaddq_rot90_s16): Likewise.
30115 (__arm_vcaddq_rot270_s16): Likewise.
30116 (__arm_vbrsrq_n_s16): Likewise.
30117 (__arm_vbicq_s16): Likewise.
30118 (__arm_vandq_s16): Likewise.
30119 (__arm_vaddvaq_s16): Likewise.
30120 (__arm_vaddq_n_s16): Likewise.
30121 (__arm_vabdq_s16): Likewise.
30122 (__arm_vshlq_n_s16): Likewise.
30123 (__arm_vrshrq_n_s16): Likewise.
30124 (__arm_vqshlq_n_s16): Likewise.
30125 (__arm_vsubq_u32): Likewise.
30126 (__arm_vsubq_n_u32): Likewise.
30127 (__arm_vrmulhq_u32): Likewise.
30128 (__arm_vrhaddq_u32): Likewise.
30129 (__arm_vqsubq_u32): Likewise.
30130 (__arm_vqsubq_n_u32): Likewise.
30131 (__arm_vqaddq_u32): Likewise.
30132 (__arm_vqaddq_n_u32): Likewise.
30133 (__arm_vorrq_u32): Likewise.
30134 (__arm_vornq_u32): Likewise.
30135 (__arm_vmulq_u32): Likewise.
30136 (__arm_vmulq_n_u32): Likewise.
30137 (__arm_vmulltq_int_u32): Likewise.
30138 (__arm_vmullbq_int_u32): Likewise.
30139 (__arm_vmulhq_u32): Likewise.
30140 (__arm_vmladavq_u32): Likewise.
30141 (__arm_vminvq_u32): Likewise.
30142 (__arm_vminq_u32): Likewise.
30143 (__arm_vmaxvq_u32): Likewise.
30144 (__arm_vmaxq_u32): Likewise.
30145 (__arm_vhsubq_u32): Likewise.
30146 (__arm_vhsubq_n_u32): Likewise.
30147 (__arm_vhaddq_u32): Likewise.
30148 (__arm_vhaddq_n_u32): Likewise.
30149 (__arm_veorq_u32): Likewise.
30150 (__arm_vcmpneq_n_u32): Likewise.
30151 (__arm_vcmphiq_u32): Likewise.
30152 (__arm_vcmphiq_n_u32): Likewise.
30153 (__arm_vcmpeqq_u32): Likewise.
30154 (__arm_vcmpeqq_n_u32): Likewise.
30155 (__arm_vcmpcsq_u32): Likewise.
30156 (__arm_vcmpcsq_n_u32): Likewise.
30157 (__arm_vcaddq_rot90_u32): Likewise.
30158 (__arm_vcaddq_rot270_u32): Likewise.
30159 (__arm_vbicq_u32): Likewise.
30160 (__arm_vandq_u32): Likewise.
30161 (__arm_vaddvq_p_u32): Likewise.
30162 (__arm_vaddvaq_u32): Likewise.
30163 (__arm_vaddq_n_u32): Likewise.
30164 (__arm_vabdq_u32): Likewise.
30165 (__arm_vshlq_r_u32): Likewise.
30166 (__arm_vrshlq_u32): Likewise.
30167 (__arm_vrshlq_n_u32): Likewise.
30168 (__arm_vqshlq_u32): Likewise.
30169 (__arm_vqshlq_r_u32): Likewise.
30170 (__arm_vqrshlq_u32): Likewise.
30171 (__arm_vqrshlq_n_u32): Likewise.
30172 (__arm_vminavq_s32): Likewise.
30173 (__arm_vminaq_s32): Likewise.
30174 (__arm_vmaxavq_s32): Likewise.
30175 (__arm_vmaxaq_s32): Likewise.
30176 (__arm_vbrsrq_n_u32): Likewise.
30177 (__arm_vshlq_n_u32): Likewise.
30178 (__arm_vrshrq_n_u32): Likewise.
30179 (__arm_vqshlq_n_u32): Likewise.
30180 (__arm_vcmpneq_n_s32): Likewise.
30181 (__arm_vcmpltq_s32): Likewise.
30182 (__arm_vcmpltq_n_s32): Likewise.
30183 (__arm_vcmpleq_s32): Likewise.
30184 (__arm_vcmpleq_n_s32): Likewise.
30185 (__arm_vcmpgtq_s32): Likewise.
30186 (__arm_vcmpgtq_n_s32): Likewise.
30187 (__arm_vcmpgeq_s32): Likewise.
30188 (__arm_vcmpgeq_n_s32): Likewise.
30189 (__arm_vcmpeqq_s32): Likewise.
30190 (__arm_vcmpeqq_n_s32): Likewise.
30191 (__arm_vqshluq_n_s32): Likewise.
30192 (__arm_vaddvq_p_s32): Likewise.
30193 (__arm_vsubq_s32): Likewise.
30194 (__arm_vsubq_n_s32): Likewise.
30195 (__arm_vshlq_r_s32): Likewise.
30196 (__arm_vrshlq_s32): Likewise.
30197 (__arm_vrshlq_n_s32): Likewise.
30198 (__arm_vrmulhq_s32): Likewise.
30199 (__arm_vrhaddq_s32): Likewise.
30200 (__arm_vqsubq_s32): Likewise.
30201 (__arm_vqsubq_n_s32): Likewise.
30202 (__arm_vqshlq_s32): Likewise.
30203 (__arm_vqshlq_r_s32): Likewise.
30204 (__arm_vqrshlq_s32): Likewise.
30205 (__arm_vqrshlq_n_s32): Likewise.
30206 (__arm_vqrdmulhq_s32): Likewise.
30207 (__arm_vqrdmulhq_n_s32): Likewise.
30208 (__arm_vqdmulhq_s32): Likewise.
30209 (__arm_vqdmulhq_n_s32): Likewise.
30210 (__arm_vqaddq_s32): Likewise.
30211 (__arm_vqaddq_n_s32): Likewise.
30212 (__arm_vorrq_s32): Likewise.
30213 (__arm_vornq_s32): Likewise.
30214 (__arm_vmulq_s32): Likewise.
30215 (__arm_vmulq_n_s32): Likewise.
30216 (__arm_vmulltq_int_s32): Likewise.
30217 (__arm_vmullbq_int_s32): Likewise.
30218 (__arm_vmulhq_s32): Likewise.
30219 (__arm_vmlsdavxq_s32): Likewise.
30220 (__arm_vmlsdavq_s32): Likewise.
30221 (__arm_vmladavxq_s32): Likewise.
30222 (__arm_vmladavq_s32): Likewise.
30223 (__arm_vminvq_s32): Likewise.
30224 (__arm_vminq_s32): Likewise.
30225 (__arm_vmaxvq_s32): Likewise.
30226 (__arm_vmaxq_s32): Likewise.
30227 (__arm_vhsubq_s32): Likewise.
30228 (__arm_vhsubq_n_s32): Likewise.
30229 (__arm_vhcaddq_rot90_s32): Likewise.
30230 (__arm_vhcaddq_rot270_s32): Likewise.
30231 (__arm_vhaddq_s32): Likewise.
30232 (__arm_vhaddq_n_s32): Likewise.
30233 (__arm_veorq_s32): Likewise.
30234 (__arm_vcaddq_rot90_s32): Likewise.
30235 (__arm_vcaddq_rot270_s32): Likewise.
30236 (__arm_vbrsrq_n_s32): Likewise.
30237 (__arm_vbicq_s32): Likewise.
30238 (__arm_vandq_s32): Likewise.
30239 (__arm_vaddvaq_s32): Likewise.
30240 (__arm_vaddq_n_s32): Likewise.
30241 (__arm_vabdq_s32): Likewise.
30242 (__arm_vshlq_n_s32): Likewise.
30243 (__arm_vrshrq_n_s32): Likewise.
30244 (__arm_vqshlq_n_s32): Likewise.
30245 (vsubq): Define polymorphic variant.
30246 (vsubq_n): Likewise.
30247 (vshlq_r): Likewise.
30248 (vrshlq_n): Likewise.
30249 (vrshlq): Likewise.
30250 (vrmulhq): Likewise.
30251 (vrhaddq): Likewise.
30252 (vqsubq_n): Likewise.
30253 (vqsubq): Likewise.
30254 (vqshlq): Likewise.
30255 (vqshlq_r): Likewise.
30256 (vqshluq): Likewise.
30257 (vrshrq_n): Likewise.
30258 (vshlq_n): Likewise.
30259 (vqshluq_n): Likewise.
30260 (vqshlq_n): Likewise.
30261 (vqrshlq_n): Likewise.
30262 (vqrshlq): Likewise.
30263 (vqrdmulhq_n): Likewise.
30264 (vqrdmulhq): Likewise.
30265 (vqdmulhq_n): Likewise.
30266 (vqdmulhq): Likewise.
30267 (vqaddq_n): Likewise.
30268 (vqaddq): Likewise.
30269 (vorrq_n): Likewise.
30270 (vorrq): Likewise.
30271 (vornq): Likewise.
30272 (vmulq_n): Likewise.
30273 (vmulq): Likewise.
30274 (vmulltq_int): Likewise.
30275 (vmullbq_int): Likewise.
30276 (vmulhq): Likewise.
30277 (vminq): Likewise.
30278 (vminaq): Likewise.
30279 (vmaxq): Likewise.
30280 (vmaxaq): Likewise.
30281 (vhsubq_n): Likewise.
30282 (vhsubq): Likewise.
30283 (vhcaddq_rot90): Likewise.
30284 (vhcaddq_rot270): Likewise.
30285 (vhaddq_n): Likewise.
30286 (vhaddq): Likewise.
30287 (veorq): Likewise.
30288 (vcaddq_rot90): Likewise.
30289 (vcaddq_rot270): Likewise.
30290 (vbrsrq_n): Likewise.
30291 (vbicq_n): Likewise.
30292 (vbicq): Likewise.
30293 (vaddq): Likewise.
30294 (vaddq_n): Likewise.
30295 (vandq): Likewise.
30296 (vabdq): Likewise.
30297 * config/arm/arm_mve_builtins.def (BINOP_NONE_NONE_IMM): Use it.
30298 (BINOP_NONE_NONE_NONE): Likewise.
30299 (BINOP_NONE_NONE_UNONE): Likewise.
30300 (BINOP_UNONE_NONE_IMM): Likewise.
30301 (BINOP_UNONE_NONE_NONE): Likewise.
30302 (BINOP_UNONE_UNONE_IMM): Likewise.
30303 (BINOP_UNONE_UNONE_NONE): Likewise.
30304 (BINOP_UNONE_UNONE_UNONE): Likewise.
30305 * config/arm/constraints.md (Ra): Define constraint to check constant is
30306 in the range of 0 to 7.
30307 (Rg): Define constriant to check the constant is one among 1, 2, 4
30308 and 8.
30309 * config/arm/mve.md (mve_vabdq_<supf>): Define RTL pattern.
30310 (mve_vaddq_n_<supf>): Likewise.
30311 (mve_vaddvaq_<supf>): Likewise.
30312 (mve_vaddvq_p_<supf>): Likewise.
30313 (mve_vandq_<supf>): Likewise.
30314 (mve_vbicq_<supf>): Likewise.
30315 (mve_vbrsrq_n_<supf>): Likewise.
30316 (mve_vcaddq_rot270_<supf>): Likewise.
30317 (mve_vcaddq_rot90_<supf>): Likewise.
30318 (mve_vcmpcsq_n_u): Likewise.
30319 (mve_vcmpcsq_u): Likewise.
30320 (mve_vcmpeqq_n_<supf>): Likewise.
30321 (mve_vcmpeqq_<supf>): Likewise.
30322 (mve_vcmpgeq_n_s): Likewise.
30323 (mve_vcmpgeq_s): Likewise.
30324 (mve_vcmpgtq_n_s): Likewise.
30325 (mve_vcmpgtq_s): Likewise.
30326 (mve_vcmphiq_n_u): Likewise.
30327 (mve_vcmphiq_u): Likewise.
30328 (mve_vcmpleq_n_s): Likewise.
30329 (mve_vcmpleq_s): Likewise.
30330 (mve_vcmpltq_n_s): Likewise.
30331 (mve_vcmpltq_s): Likewise.
30332 (mve_vcmpneq_n_<supf>): Likewise.
30333 (mve_vddupq_n_u): Likewise.
30334 (mve_veorq_<supf>): Likewise.
30335 (mve_vhaddq_n_<supf>): Likewise.
30336 (mve_vhaddq_<supf>): Likewise.
30337 (mve_vhcaddq_rot270_s): Likewise.
30338 (mve_vhcaddq_rot90_s): Likewise.
30339 (mve_vhsubq_n_<supf>): Likewise.
30340 (mve_vhsubq_<supf>): Likewise.
30341 (mve_vidupq_n_u): Likewise.
30342 (mve_vmaxaq_s): Likewise.
30343 (mve_vmaxavq_s): Likewise.
30344 (mve_vmaxq_<supf>): Likewise.
30345 (mve_vmaxvq_<supf>): Likewise.
30346 (mve_vminaq_s): Likewise.
30347 (mve_vminavq_s): Likewise.
30348 (mve_vminq_<supf>): Likewise.
30349 (mve_vminvq_<supf>): Likewise.
30350 (mve_vmladavq_<supf>): Likewise.
30351 (mve_vmladavxq_s): Likewise.
30352 (mve_vmlsdavq_s): Likewise.
30353 (mve_vmlsdavxq_s): Likewise.
30354 (mve_vmulhq_<supf>): Likewise.
30355 (mve_vmullbq_int_<supf>): Likewise.
30356 (mve_vmulltq_int_<supf>): Likewise.
30357 (mve_vmulq_n_<supf>): Likewise.
30358 (mve_vmulq_<supf>): Likewise.
30359 (mve_vornq_<supf>): Likewise.
30360 (mve_vorrq_<supf>): Likewise.
30361 (mve_vqaddq_n_<supf>): Likewise.
30362 (mve_vqaddq_<supf>): Likewise.
30363 (mve_vqdmulhq_n_s): Likewise.
30364 (mve_vqdmulhq_s): Likewise.
30365 (mve_vqrdmulhq_n_s): Likewise.
30366 (mve_vqrdmulhq_s): Likewise.
30367 (mve_vqrshlq_n_<supf>): Likewise.
30368 (mve_vqrshlq_<supf>): Likewise.
30369 (mve_vqshlq_n_<supf>): Likewise.
30370 (mve_vqshlq_r_<supf>): Likewise.
30371 (mve_vqshlq_<supf>): Likewise.
30372 (mve_vqshluq_n_s): Likewise.
30373 (mve_vqsubq_n_<supf>): Likewise.
30374 (mve_vqsubq_<supf>): Likewise.
30375 (mve_vrhaddq_<supf>): Likewise.
30376 (mve_vrmulhq_<supf>): Likewise.
30377 (mve_vrshlq_n_<supf>): Likewise.
30378 (mve_vrshlq_<supf>): Likewise.
30379 (mve_vrshrq_n_<supf>): Likewise.
30380 (mve_vshlq_n_<supf>): Likewise.
30381 (mve_vshlq_r_<supf>): Likewise.
30382 (mve_vsubq_n_<supf>): Likewise.
30383 (mve_vsubq_<supf>): Likewise.
30384 * config/arm/predicates.md (mve_imm_7): Define predicate to check
30385 the matching constraint Ra.
30386 (mve_imm_selective_upto_8): Define predicate to check the matching
30387 constraint Rg.
30388
30389 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
30390 Mihail Ionescu <mihail.ionescu@arm.com>
30391 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
30392
30393 * config/arm/arm-builtins.c (BINOP_NONE_NONE_UNONE_QUALIFIERS): Define
30394 qualifier for binary operands.
30395 (BINOP_UNONE_NONE_NONE_QUALIFIERS): Likewise.
30396 (BINOP_UNONE_UNONE_NONE_QUALIFIERS): Likewise.
30397 * config/arm/arm_mve.h (vaddlvq_p_s32): Define macro.
30398 (vaddlvq_p_u32): Likewise.
30399 (vcmpneq_s8): Likewise.
30400 (vcmpneq_s16): Likewise.
30401 (vcmpneq_s32): Likewise.
30402 (vcmpneq_u8): Likewise.
30403 (vcmpneq_u16): Likewise.
30404 (vcmpneq_u32): Likewise.
30405 (vshlq_s8): Likewise.
30406 (vshlq_s16): Likewise.
30407 (vshlq_s32): Likewise.
30408 (vshlq_u8): Likewise.
30409 (vshlq_u16): Likewise.
30410 (vshlq_u32): Likewise.
30411 (__arm_vaddlvq_p_s32): Define intrinsic.
30412 (__arm_vaddlvq_p_u32): Likewise.
30413 (__arm_vcmpneq_s8): Likewise.
30414 (__arm_vcmpneq_s16): Likewise.
30415 (__arm_vcmpneq_s32): Likewise.
30416 (__arm_vcmpneq_u8): Likewise.
30417 (__arm_vcmpneq_u16): Likewise.
30418 (__arm_vcmpneq_u32): Likewise.
30419 (__arm_vshlq_s8): Likewise.
30420 (__arm_vshlq_s16): Likewise.
30421 (__arm_vshlq_s32): Likewise.
30422 (__arm_vshlq_u8): Likewise.
30423 (__arm_vshlq_u16): Likewise.
30424 (__arm_vshlq_u32): Likewise.
30425 (vaddlvq_p): Define polymorphic variant.
30426 (vcmpneq): Likewise.
30427 (vshlq): Likewise.
30428 * config/arm/arm_mve_builtins.def (BINOP_NONE_NONE_UNONE_QUALIFIERS):
30429 Use it.
30430 (BINOP_UNONE_NONE_NONE_QUALIFIERS): Likewise.
30431 (BINOP_UNONE_UNONE_NONE_QUALIFIERS): Likewise.
30432 * config/arm/mve.md (mve_vaddlvq_p_<supf>v4si): Define RTL pattern.
30433 (mve_vcmpneq_<supf><mode>): Likewise.
30434 (mve_vshlq_<supf><mode>): Likewise.
30435
30436 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
30437 Mihail Ionescu <mihail.ionescu@arm.com>
30438 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
30439
30440 * config/arm/arm-builtins.c (BINOP_UNONE_UNONE_IMM_QUALIFIERS): Define
30441 qualifier for binary operands.
30442 (BINOP_UNONE_UNONE_UNONE_QUALIFIERS): Likewise.
30443 (BINOP_UNONE_NONE_IMM_QUALIFIERS): Likewise.
30444 * config/arm/arm_mve.h (vcvtq_n_s16_f16): Define macro.
30445 (vcvtq_n_s32_f32): Likewise.
30446 (vcvtq_n_u16_f16): Likewise.
30447 (vcvtq_n_u32_f32): Likewise.
30448 (vcreateq_u8): Likewise.
30449 (vcreateq_u16): Likewise.
30450 (vcreateq_u32): Likewise.
30451 (vcreateq_u64): Likewise.
30452 (vcreateq_s8): Likewise.
30453 (vcreateq_s16): Likewise.
30454 (vcreateq_s32): Likewise.
30455 (vcreateq_s64): Likewise.
30456 (vshrq_n_s8): Likewise.
30457 (vshrq_n_s16): Likewise.
30458 (vshrq_n_s32): Likewise.
30459 (vshrq_n_u8): Likewise.
30460 (vshrq_n_u16): Likewise.
30461 (vshrq_n_u32): Likewise.
30462 (__arm_vcreateq_u8): Define intrinsic.
30463 (__arm_vcreateq_u16): Likewise.
30464 (__arm_vcreateq_u32): Likewise.
30465 (__arm_vcreateq_u64): Likewise.
30466 (__arm_vcreateq_s8): Likewise.
30467 (__arm_vcreateq_s16): Likewise.
30468 (__arm_vcreateq_s32): Likewise.
30469 (__arm_vcreateq_s64): Likewise.
30470 (__arm_vshrq_n_s8): Likewise.
30471 (__arm_vshrq_n_s16): Likewise.
30472 (__arm_vshrq_n_s32): Likewise.
30473 (__arm_vshrq_n_u8): Likewise.
30474 (__arm_vshrq_n_u16): Likewise.
30475 (__arm_vshrq_n_u32): Likewise.
30476 (__arm_vcvtq_n_s16_f16): Likewise.
30477 (__arm_vcvtq_n_s32_f32): Likewise.
30478 (__arm_vcvtq_n_u16_f16): Likewise.
30479 (__arm_vcvtq_n_u32_f32): Likewise.
30480 (vshrq_n): Define polymorphic variant.
30481 * config/arm/arm_mve_builtins.def (BINOP_UNONE_UNONE_IMM_QUALIFIERS):
30482 Use it.
30483 (BINOP_UNONE_UNONE_UNONE_QUALIFIERS): Likewise.
30484 (BINOP_UNONE_NONE_IMM_QUALIFIERS): Likewise.
30485 * config/arm/constraints.md (Rb): Define constraint to check constant is
30486 in the range of 1 to 8.
30487 (Rf): Define constraint to check constant is in the range of 1 to 32.
30488 * config/arm/mve.md (mve_vcreateq_<supf><mode>): Define RTL pattern.
30489 (mve_vshrq_n_<supf><mode>): Likewise.
30490 (mve_vcvtq_n_from_f_<supf><mode>): Likewise.
30491 * config/arm/predicates.md (mve_imm_8): Define predicate to check
30492 the matching constraint Rb.
30493 (mve_imm_32): Define predicate to check the matching constraint Rf.
30494
30495 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
30496 Mihail Ionescu <mihail.ionescu@arm.com>
30497 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
30498
30499 * config/arm/arm-builtins.c (BINOP_NONE_NONE_NONE_QUALIFIERS): Define
30500 qualifier for binary operands.
30501 (BINOP_NONE_NONE_IMM_QUALIFIERS): Likewise.
30502 (BINOP_NONE_UNONE_IMM_QUALIFIERS): Likewise.
30503 (BINOP_NONE_UNONE_UNONE_QUALIFIERS): Likewise.
30504 * config/arm/arm_mve.h (vsubq_n_f16): Define macro.
30505 (vsubq_n_f32): Likewise.
30506 (vbrsrq_n_f16): Likewise.
30507 (vbrsrq_n_f32): Likewise.
30508 (vcvtq_n_f16_s16): Likewise.
30509 (vcvtq_n_f32_s32): Likewise.
30510 (vcvtq_n_f16_u16): Likewise.
30511 (vcvtq_n_f32_u32): Likewise.
30512 (vcreateq_f16): Likewise.
30513 (vcreateq_f32): Likewise.
30514 (__arm_vsubq_n_f16): Define intrinsic.
30515 (__arm_vsubq_n_f32): Likewise.
30516 (__arm_vbrsrq_n_f16): Likewise.
30517 (__arm_vbrsrq_n_f32): Likewise.
30518 (__arm_vcvtq_n_f16_s16): Likewise.
30519 (__arm_vcvtq_n_f32_s32): Likewise.
30520 (__arm_vcvtq_n_f16_u16): Likewise.
30521 (__arm_vcvtq_n_f32_u32): Likewise.
30522 (__arm_vcreateq_f16): Likewise.
30523 (__arm_vcreateq_f32): Likewise.
30524 (vsubq): Define polymorphic variant.
30525 (vbrsrq): Likewise.
30526 (vcvtq_n): Likewise.
30527 * config/arm/arm_mve_builtins.def (BINOP_NONE_NONE_NONE_QUALIFIERS): Use
30528 it.
30529 (BINOP_NONE_NONE_IMM_QUALIFIERS): Likewise.
30530 (BINOP_NONE_UNONE_IMM_QUALIFIERS): Likewise.
30531 (BINOP_NONE_UNONE_UNONE_QUALIFIERS): Likewise.
30532 * config/arm/constraints.md (Rd): Define constraint to check constant is
30533 in the range of 1 to 16.
30534 * config/arm/mve.md (mve_vsubq_n_f<mode>): Define RTL pattern.
30535 mve_vbrsrq_n_f<mode>: Likewise.
30536 mve_vcvtq_n_to_f_<supf><mode>: Likewise.
30537 mve_vcreateq_f<mode>: Likewise.
30538 * config/arm/predicates.md (mve_imm_16): Define predicate to check
30539 the matching constraint Rd.
30540
30541 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
30542 Mihail Ionescu <mihail.ionescu@arm.com>
30543 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
30544
30545 * config/arm/arm-builtins.c (hi_UP): Define mode.
30546 * config/arm/arm.h (IS_VPR_REGNUM): Move.
30547 * config/arm/arm.md (VPR_REGNUM): Define before APSRQ_REGNUM.
30548 (APSRQ_REGNUM): Modify.
30549 (APSRGE_REGNUM): Modify.
30550 * config/arm/arm_mve.h (vctp16q): Define macro.
30551 (vctp32q): Likewise.
30552 (vctp64q): Likewise.
30553 (vctp8q): Likewise.
30554 (vpnot): Likewise.
30555 (__arm_vctp16q): Define intrinsic.
30556 (__arm_vctp32q): Likewise.
30557 (__arm_vctp64q): Likewise.
30558 (__arm_vctp8q): Likewise.
30559 (__arm_vpnot): Likewise.
30560 * config/arm/arm_mve_builtins.def (UNOP_UNONE_UNONE): Use builtin
30561 qualifier.
30562 * config/arm/mve.md (mve_vctp<mode1>qhi): Define RTL pattern.
30563 (mve_vpnothi): Likewise.
30564
30565 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
30566 Mihail Ionescu <mihail.ionescu@arm.com>
30567 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
30568
30569 * config/arm/arm.h (enum reg_class): Define new class EVEN_REGS.
30570 * config/arm/arm_mve.h (vdupq_n_s8): Define macro.
30571 (vdupq_n_s16): Likewise.
30572 (vdupq_n_s32): Likewise.
30573 (vabsq_s8): Likewise.
30574 (vabsq_s16): Likewise.
30575 (vabsq_s32): Likewise.
30576 (vclsq_s8): Likewise.
30577 (vclsq_s16): Likewise.
30578 (vclsq_s32): Likewise.
30579 (vclzq_s8): Likewise.
30580 (vclzq_s16): Likewise.
30581 (vclzq_s32): Likewise.
30582 (vnegq_s8): Likewise.
30583 (vnegq_s16): Likewise.
30584 (vnegq_s32): Likewise.
30585 (vaddlvq_s32): Likewise.
30586 (vaddvq_s8): Likewise.
30587 (vaddvq_s16): Likewise.
30588 (vaddvq_s32): Likewise.
30589 (vmovlbq_s8): Likewise.
30590 (vmovlbq_s16): Likewise.
30591 (vmovltq_s8): Likewise.
30592 (vmovltq_s16): Likewise.
30593 (vmvnq_s8): Likewise.
30594 (vmvnq_s16): Likewise.
30595 (vmvnq_s32): Likewise.
30596 (vrev16q_s8): Likewise.
30597 (vrev32q_s8): Likewise.
30598 (vrev32q_s16): Likewise.
30599 (vqabsq_s8): Likewise.
30600 (vqabsq_s16): Likewise.
30601 (vqabsq_s32): Likewise.
30602 (vqnegq_s8): Likewise.
30603 (vqnegq_s16): Likewise.
30604 (vqnegq_s32): Likewise.
30605 (vcvtaq_s16_f16): Likewise.
30606 (vcvtaq_s32_f32): Likewise.
30607 (vcvtnq_s16_f16): Likewise.
30608 (vcvtnq_s32_f32): Likewise.
30609 (vcvtpq_s16_f16): Likewise.
30610 (vcvtpq_s32_f32): Likewise.
30611 (vcvtmq_s16_f16): Likewise.
30612 (vcvtmq_s32_f32): Likewise.
30613 (vmvnq_u8): Likewise.
30614 (vmvnq_u16): Likewise.
30615 (vmvnq_u32): Likewise.
30616 (vdupq_n_u8): Likewise.
30617 (vdupq_n_u16): Likewise.
30618 (vdupq_n_u32): Likewise.
30619 (vclzq_u8): Likewise.
30620 (vclzq_u16): Likewise.
30621 (vclzq_u32): Likewise.
30622 (vaddvq_u8): Likewise.
30623 (vaddvq_u16): Likewise.
30624 (vaddvq_u32): Likewise.
30625 (vrev32q_u8): Likewise.
30626 (vrev32q_u16): Likewise.
30627 (vmovltq_u8): Likewise.
30628 (vmovltq_u16): Likewise.
30629 (vmovlbq_u8): Likewise.
30630 (vmovlbq_u16): Likewise.
30631 (vrev16q_u8): Likewise.
30632 (vaddlvq_u32): Likewise.
30633 (vcvtpq_u16_f16): Likewise.
30634 (vcvtpq_u32_f32): Likewise.
30635 (vcvtnq_u16_f16): Likewise.
30636 (vcvtmq_u16_f16): Likewise.
30637 (vcvtmq_u32_f32): Likewise.
30638 (vcvtaq_u16_f16): Likewise.
30639 (vcvtaq_u32_f32): Likewise.
30640 (__arm_vdupq_n_s8): Define intrinsic.
30641 (__arm_vdupq_n_s16): Likewise.
30642 (__arm_vdupq_n_s32): Likewise.
30643 (__arm_vabsq_s8): Likewise.
30644 (__arm_vabsq_s16): Likewise.
30645 (__arm_vabsq_s32): Likewise.
30646 (__arm_vclsq_s8): Likewise.
30647 (__arm_vclsq_s16): Likewise.
30648 (__arm_vclsq_s32): Likewise.
30649 (__arm_vclzq_s8): Likewise.
30650 (__arm_vclzq_s16): Likewise.
30651 (__arm_vclzq_s32): Likewise.
30652 (__arm_vnegq_s8): Likewise.
30653 (__arm_vnegq_s16): Likewise.
30654 (__arm_vnegq_s32): Likewise.
30655 (__arm_vaddlvq_s32): Likewise.
30656 (__arm_vaddvq_s8): Likewise.
30657 (__arm_vaddvq_s16): Likewise.
30658 (__arm_vaddvq_s32): Likewise.
30659 (__arm_vmovlbq_s8): Likewise.
30660 (__arm_vmovlbq_s16): Likewise.
30661 (__arm_vmovltq_s8): Likewise.
30662 (__arm_vmovltq_s16): Likewise.
30663 (__arm_vmvnq_s8): Likewise.
30664 (__arm_vmvnq_s16): Likewise.
30665 (__arm_vmvnq_s32): Likewise.
30666 (__arm_vrev16q_s8): Likewise.
30667 (__arm_vrev32q_s8): Likewise.
30668 (__arm_vrev32q_s16): Likewise.
30669 (__arm_vqabsq_s8): Likewise.
30670 (__arm_vqabsq_s16): Likewise.
30671 (__arm_vqabsq_s32): Likewise.
30672 (__arm_vqnegq_s8): Likewise.
30673 (__arm_vqnegq_s16): Likewise.
30674 (__arm_vqnegq_s32): Likewise.
30675 (__arm_vmvnq_u8): Likewise.
30676 (__arm_vmvnq_u16): Likewise.
30677 (__arm_vmvnq_u32): Likewise.
30678 (__arm_vdupq_n_u8): Likewise.
30679 (__arm_vdupq_n_u16): Likewise.
30680 (__arm_vdupq_n_u32): Likewise.
30681 (__arm_vclzq_u8): Likewise.
30682 (__arm_vclzq_u16): Likewise.
30683 (__arm_vclzq_u32): Likewise.
30684 (__arm_vaddvq_u8): Likewise.
30685 (__arm_vaddvq_u16): Likewise.
30686 (__arm_vaddvq_u32): Likewise.
30687 (__arm_vrev32q_u8): Likewise.
30688 (__arm_vrev32q_u16): Likewise.
30689 (__arm_vmovltq_u8): Likewise.
30690 (__arm_vmovltq_u16): Likewise.
30691 (__arm_vmovlbq_u8): Likewise.
30692 (__arm_vmovlbq_u16): Likewise.
30693 (__arm_vrev16q_u8): Likewise.
30694 (__arm_vaddlvq_u32): Likewise.
30695 (__arm_vcvtpq_u16_f16): Likewise.
30696 (__arm_vcvtpq_u32_f32): Likewise.
30697 (__arm_vcvtnq_u16_f16): Likewise.
30698 (__arm_vcvtmq_u16_f16): Likewise.
30699 (__arm_vcvtmq_u32_f32): Likewise.
30700 (__arm_vcvtaq_u16_f16): Likewise.
30701 (__arm_vcvtaq_u32_f32): Likewise.
30702 (__arm_vcvtaq_s16_f16): Likewise.
30703 (__arm_vcvtaq_s32_f32): Likewise.
30704 (__arm_vcvtnq_s16_f16): Likewise.
30705 (__arm_vcvtnq_s32_f32): Likewise.
30706 (__arm_vcvtpq_s16_f16): Likewise.
30707 (__arm_vcvtpq_s32_f32): Likewise.
30708 (__arm_vcvtmq_s16_f16): Likewise.
30709 (__arm_vcvtmq_s32_f32): Likewise.
30710 (vdupq_n): Define polymorphic variant.
30711 (vabsq): Likewise.
30712 (vclsq): Likewise.
30713 (vclzq): Likewise.
30714 (vnegq): Likewise.
30715 (vaddlvq): Likewise.
30716 (vaddvq): Likewise.
30717 (vmovlbq): Likewise.
30718 (vmovltq): Likewise.
30719 (vmvnq): Likewise.
30720 (vrev16q): Likewise.
30721 (vrev32q): Likewise.
30722 (vqabsq): Likewise.
30723 (vqnegq): Likewise.
30724 * config/arm/arm_mve_builtins.def (UNOP_SNONE_SNONE): Use it.
30725 (UNOP_SNONE_NONE): Likewise.
30726 (UNOP_UNONE_UNONE): Likewise.
30727 (UNOP_UNONE_NONE): Likewise.
30728 * config/arm/constraints.md (e): Define new constriant to allow only
30729 even registers.
30730 * config/arm/mve.md (mve_vqabsq_s<mode>): Define RTL pattern.
30731 (mve_vnegq_s<mode>): Likewise.
30732 (mve_vmvnq_<supf><mode>): Likewise.
30733 (mve_vdupq_n_<supf><mode>): Likewise.
30734 (mve_vclzq_<supf><mode>): Likewise.
30735 (mve_vclsq_s<mode>): Likewise.
30736 (mve_vaddvq_<supf><mode>): Likewise.
30737 (mve_vabsq_s<mode>): Likewise.
30738 (mve_vrev32q_<supf><mode>): Likewise.
30739 (mve_vmovltq_<supf><mode>): Likewise.
30740 (mve_vmovlbq_<supf><mode>): Likewise.
30741 (mve_vcvtpq_<supf><mode>): Likewise.
30742 (mve_vcvtnq_<supf><mode>): Likewise.
30743 (mve_vcvtmq_<supf><mode>): Likewise.
30744 (mve_vcvtaq_<supf><mode>): Likewise.
30745 (mve_vrev16q_<supf>v16qi): Likewise.
30746 (mve_vaddlvq_<supf>v4si): Likewise.
30747
30748 2020-03-17 Jakub Jelinek <jakub@redhat.com>
30749
30750 * lra-spills.c (remove_pseudos): Fix up duplicated word issue in
30751 a dump message.
30752 * tree-sra.c (create_access_replacement): Fix up duplicated word issue
30753 in a comment.
30754 * read-rtl-function.c (find_param_by_name,
30755 function_reader::parse_enum_value, function_reader::get_insn_by_uid):
30756 Likewise.
30757 * spellcheck.c (get_edit_distance_cutoff): Likewise.
30758 * tree-data-ref.c (create_ifn_alias_checks): Likewise.
30759 * tree.def (SWITCH_EXPR): Likewise.
30760 * selftest.c (assert_str_contains): Likewise.
30761 * ipa-param-manipulation.h (class ipa_param_body_adjustments):
30762 Likewise.
30763 * tree-ssa-math-opts.c (convert_expand_mult_copysign): Likewise.
30764 * tree-ssa-loop-split.c (find_vdef_in_loop): Likewise.
30765 * langhooks.h (struct lang_hooks_for_decls): Likewise.
30766 * ipa-prop.h (struct ipa_param_descriptor): Likewise.
30767 * tree-ssa-strlen.c (handle_builtin_string_cmp, handle_store):
30768 Likewise.
30769 * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Likewise.
30770 * tree-ssa-reassoc.c (reassociate_bb): Likewise.
30771 * tree.c (component_ref_size): Likewise.
30772 * hsa-common.c (hsa_init_compilation_unit_data): Likewise.
30773 * gimple-ssa-sprintf.c (get_string_length, format_string,
30774 format_directive): Likewise.
30775 * omp-grid.c (grid_process_kernel_body_copy): Likewise.
30776 * input.c (string_concat_db::get_string_concatenation,
30777 test_lexer_string_locations_ucn4): Likewise.
30778 * cfgexpand.c (pass_expand::execute): Likewise.
30779 * gimple-ssa-warn-restrict.c (builtin_memref::offset_out_of_bounds,
30780 maybe_diag_overlap): Likewise.
30781 * rtl.c (RTX_CODE_HWINT_P_1): Likewise.
30782 * shrink-wrap.c (spread_components): Likewise.
30783 * tree-ssa-dse.c (initialize_ao_ref_for_dse, valid_ao_ref_for_dse):
30784 Likewise.
30785 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
30786 Likewise.
30787 * dwarf2out.c (dwarf2out_early_finish): Likewise.
30788 * gimple-ssa-store-merging.c: Likewise.
30789 * ira-costs.c (record_operand_costs): Likewise.
30790 * tree-vect-loop.c (vectorizable_reduction): Likewise.
30791 * target.def (dispatch): Likewise.
30792 (validate_dims, gen_ccmp_first): Fix up duplicated word issue
30793 in documentation text.
30794 * doc/tm.texi: Regenerated.
30795 * config/i386/x86-tune.def (X86_TUNE_PARTIAL_FLAG_REG_STALL): Fix up
30796 duplicated word issue in a comment.
30797 * config/i386/i386.c (ix86_test_loading_unspec): Likewise.
30798 * config/i386/i386-features.c (remove_partial_avx_dependency):
30799 Likewise.
30800 * config/msp430/msp430.c (msp430_select_section): Likewise.
30801 * config/gcn/gcn-run.c (load_image): Likewise.
30802 * config/aarch64/aarch64-sve.md (sve_ld1r<mode>): Likewise.
30803 * config/aarch64/aarch64.c (aarch64_gen_adjusted_ldpstp): Likewise.
30804 * config/aarch64/falkor-tag-collision-avoidance.c
30805 (single_dest_per_chain): Likewise.
30806 * config/nvptx/nvptx.c (nvptx_record_fndecl): Likewise.
30807 * config/fr30/fr30.c (fr30_arg_partial_bytes): Likewise.
30808 * config/rs6000/rs6000-string.c (expand_cmp_vec_sequence): Likewise.
30809 * config/rs6000/rs6000-p8swap.c (replace_swapped_load_constant):
30810 Likewise.
30811 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Likewise.
30812 * config/rs6000/rs6000.c (rs6000_option_override_internal): Likewise.
30813 * config/rs6000/rs6000-logue.c
30814 (rs6000_emit_probe_stack_range_stack_clash): Likewise.
30815 * config/nds32/nds32-md-auxiliary.c (nds32_split_ashiftdi3): Likewise.
30816 Fix various other issues in the comment.
30817
30818 2020-03-17 Mihail Ionescu <mihail.ionescu@arm.com>
30819
30820 * config/arm/t-rmprofile: create new multilib for
30821 armv8.1-m.main+mve hard float and reuse v8-m.main ones for
30822 v8.1-m.main+mve.
30823
30824 2020-03-17 Jakub Jelinek <jakub@redhat.com>
30825
30826 PR tree-optimization/94015
30827 * tree-ssa-strlen.c (count_nonzero_bytes): Split portions of the
30828 function where EXP is address of the bytes being stored rather than
30829 the bytes themselves into count_nonzero_bytes_addr. Punt on zero
30830 sized MEM_REF. Use VAR_P macro and handle CONST_DECL like VAR_DECLs.
30831 Use ctor_for_folding instead of looking at DECL_INITIAL. Punt before
30832 calling native_encode_expr if host or target doesn't have 8-bit
30833 chars. Formatting fixes.
30834 (count_nonzero_bytes_addr): New function.
30835
30836 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
30837 Mihail Ionescu <mihail.ionescu@arm.com>
30838 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
30839
30840 * config/arm/arm-builtins.c (UNOP_SNONE_SNONE_QUALIFIERS): Define.
30841 (UNOP_SNONE_NONE_QUALIFIERS): Likewise.
30842 (UNOP_SNONE_IMM_QUALIFIERS): Likewise.
30843 (UNOP_UNONE_NONE_QUALIFIERS): Likewise.
30844 (UNOP_UNONE_UNONE_QUALIFIERS): Likewise.
30845 (UNOP_UNONE_IMM_QUALIFIERS): Likewise.
30846 * config/arm/arm_mve.h (vmvnq_n_s16): Define macro.
30847 (vmvnq_n_s32): Likewise.
30848 (vrev64q_s8): Likewise.
30849 (vrev64q_s16): Likewise.
30850 (vrev64q_s32): Likewise.
30851 (vcvtq_s16_f16): Likewise.
30852 (vcvtq_s32_f32): Likewise.
30853 (vrev64q_u8): Likewise.
30854 (vrev64q_u16): Likewise.
30855 (vrev64q_u32): Likewise.
30856 (vmvnq_n_u16): Likewise.
30857 (vmvnq_n_u32): Likewise.
30858 (vcvtq_u16_f16): Likewise.
30859 (vcvtq_u32_f32): Likewise.
30860 (__arm_vmvnq_n_s16): Define intrinsic.
30861 (__arm_vmvnq_n_s32): Likewise.
30862 (__arm_vrev64q_s8): Likewise.
30863 (__arm_vrev64q_s16): Likewise.
30864 (__arm_vrev64q_s32): Likewise.
30865 (__arm_vrev64q_u8): Likewise.
30866 (__arm_vrev64q_u16): Likewise.
30867 (__arm_vrev64q_u32): Likewise.
30868 (__arm_vmvnq_n_u16): Likewise.
30869 (__arm_vmvnq_n_u32): Likewise.
30870 (__arm_vcvtq_s16_f16): Likewise.
30871 (__arm_vcvtq_s32_f32): Likewise.
30872 (__arm_vcvtq_u16_f16): Likewise.
30873 (__arm_vcvtq_u32_f32): Likewise.
30874 (vrev64q): Define polymorphic variant.
30875 * config/arm/arm_mve_builtins.def (UNOP_SNONE_SNONE): Use it.
30876 (UNOP_SNONE_NONE): Likewise.
30877 (UNOP_SNONE_IMM): Likewise.
30878 (UNOP_UNONE_UNONE): Likewise.
30879 (UNOP_UNONE_NONE): Likewise.
30880 (UNOP_UNONE_IMM): Likewise.
30881 * config/arm/mve.md (mve_vrev64q_<supf><mode>): Define RTL pattern.
30882 (mve_vcvtq_from_f_<supf><mode>): Likewise.
30883 (mve_vmvnq_n_<supf><mode>): Likewise.
30884
30885 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
30886 Mihail Ionescu <mihail.ionescu@arm.com>
30887 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
30888
30889 * config/arm/arm-builtins.c (UNOP_NONE_NONE_QUALIFIERS): Define macro.
30890 (UNOP_NONE_SNONE_QUALIFIERS): Likewise.
30891 (UNOP_NONE_UNONE_QUALIFIERS): Likewise.
30892 * config/arm/arm_mve.h (vrndxq_f16): Define macro.
30893 (vrndxq_f32): Likewise.
30894 (vrndq_f16) Likewise.
30895 (vrndq_f32): Likewise.
30896 (vrndpq_f16): Likewise.
30897 (vrndpq_f32): Likewise.
30898 (vrndnq_f16): Likewise.
30899 (vrndnq_f32): Likewise.
30900 (vrndmq_f16): Likewise.
30901 (vrndmq_f32): Likewise.
30902 (vrndaq_f16): Likewise.
30903 (vrndaq_f32): Likewise.
30904 (vrev64q_f16): Likewise.
30905 (vrev64q_f32): Likewise.
30906 (vnegq_f16): Likewise.
30907 (vnegq_f32): Likewise.
30908 (vdupq_n_f16): Likewise.
30909 (vdupq_n_f32): Likewise.
30910 (vabsq_f16): Likewise.
30911 (vabsq_f32): Likewise.
30912 (vrev32q_f16): Likewise.
30913 (vcvttq_f32_f16): Likewise.
30914 (vcvtbq_f32_f16): Likewise.
30915 (vcvtq_f16_s16): Likewise.
30916 (vcvtq_f32_s32): Likewise.
30917 (vcvtq_f16_u16): Likewise.
30918 (vcvtq_f32_u32): Likewise.
30919 (__arm_vrndxq_f16): Define intrinsic.
30920 (__arm_vrndxq_f32): Likewise.
30921 (__arm_vrndq_f16): Likewise.
30922 (__arm_vrndq_f32): Likewise.
30923 (__arm_vrndpq_f16): Likewise.
30924 (__arm_vrndpq_f32): Likewise.
30925 (__arm_vrndnq_f16): Likewise.
30926 (__arm_vrndnq_f32): Likewise.
30927 (__arm_vrndmq_f16): Likewise.
30928 (__arm_vrndmq_f32): Likewise.
30929 (__arm_vrndaq_f16): Likewise.
30930 (__arm_vrndaq_f32): Likewise.
30931 (__arm_vrev64q_f16): Likewise.
30932 (__arm_vrev64q_f32): Likewise.
30933 (__arm_vnegq_f16): Likewise.
30934 (__arm_vnegq_f32): Likewise.
30935 (__arm_vdupq_n_f16): Likewise.
30936 (__arm_vdupq_n_f32): Likewise.
30937 (__arm_vabsq_f16): Likewise.
30938 (__arm_vabsq_f32): Likewise.
30939 (__arm_vrev32q_f16): Likewise.
30940 (__arm_vcvttq_f32_f16): Likewise.
30941 (__arm_vcvtbq_f32_f16): Likewise.
30942 (__arm_vcvtq_f16_s16): Likewise.
30943 (__arm_vcvtq_f32_s32): Likewise.
30944 (__arm_vcvtq_f16_u16): Likewise.
30945 (__arm_vcvtq_f32_u32): Likewise.
30946 (vrndxq): Define polymorphic variants.
30947 (vrndq): Likewise.
30948 (vrndpq): Likewise.
30949 (vrndnq): Likewise.
30950 (vrndmq): Likewise.
30951 (vrndaq): Likewise.
30952 (vrev64q): Likewise.
30953 (vnegq): Likewise.
30954 (vabsq): Likewise.
30955 (vrev32q): Likewise.
30956 (vcvtbq_f32): Likewise.
30957 (vcvttq_f32): Likewise.
30958 (vcvtq): Likewise.
30959 * config/arm/arm_mve_builtins.def (VAR2): Define.
30960 (VAR1): Define.
30961 * config/arm/mve.md (mve_vrndxq_f<mode>): Add RTL pattern.
30962 (mve_vrndq_f<mode>): Likewise.
30963 (mve_vrndpq_f<mode>): Likewise.
30964 (mve_vrndnq_f<mode>): Likewise.
30965 (mve_vrndmq_f<mode>): Likewise.
30966 (mve_vrndaq_f<mode>): Likewise.
30967 (mve_vrev64q_f<mode>): Likewise.
30968 (mve_vnegq_f<mode>): Likewise.
30969 (mve_vdupq_n_f<mode>): Likewise.
30970 (mve_vabsq_f<mode>): Likewise.
30971 (mve_vrev32q_fv8hf): Likewise.
30972 (mve_vcvttq_f32_f16v4sf): Likewise.
30973 (mve_vcvtbq_f32_f16v4sf): Likewise.
30974 (mve_vcvtq_to_f_<supf><mode>): Likewise.
30975
30976 2020-03-16 Andre Vieira <andre.simoesdiasvieira@arm.com>
30977 Mihail Ionescu <mihail.ionescu@arm.com>
30978 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
30979
30980 * config/arm/arm-builtins.c (CF): Define mve_builtin_data.
30981 (VAR1): Define.
30982 (ARM_BUILTIN_MVE_PATTERN_START): Define.
30983 (arm_init_mve_builtins): Define function.
30984 (arm_init_builtins): Add TARGET_HAVE_MVE check.
30985 (arm_expand_builtin_1): Check the range of fcode.
30986 (arm_expand_mve_builtin): Define function to expand MVE builtins.
30987 (arm_expand_builtin): Check the range of fcode.
30988 * config/arm/arm_mve.h (__ARM_FEATURE_MVE): Define MVE floating point
30989 types.
30990 (__ARM_MVE_PRESERVE_USER_NAMESPACE): Define to protect user namespace.
30991 (vst4q_s8): Define macro.
30992 (vst4q_s16): Likewise.
30993 (vst4q_s32): Likewise.
30994 (vst4q_u8): Likewise.
30995 (vst4q_u16): Likewise.
30996 (vst4q_u32): Likewise.
30997 (vst4q_f16): Likewise.
30998 (vst4q_f32): Likewise.
30999 (__arm_vst4q_s8): Define inline builtin.
31000 (__arm_vst4q_s16): Likewise.
31001 (__arm_vst4q_s32): Likewise.
31002 (__arm_vst4q_u8): Likewise.
31003 (__arm_vst4q_u16): Likewise.
31004 (__arm_vst4q_u32): Likewise.
31005 (__arm_vst4q_f16): Likewise.
31006 (__arm_vst4q_f32): Likewise.
31007 (__ARM_mve_typeid): Define macro with MVE types.
31008 (__ARM_mve_coerce): Define macro with _Generic feature.
31009 (vst4q): Define polymorphic variant for different vst4q builtins.
31010 * config/arm/arm_mve_builtins.def: New file.
31011 * config/arm/iterators.md (VSTRUCT): Modify to allow XI and OI
31012 modes in MVE.
31013 * config/arm/mve.md (MVE_VLD_ST): Define iterator.
31014 (unspec): Define unspec.
31015 (mve_vst4q<mode>): Define RTL pattern.
31016 * config/arm/neon.md (mov<mode>): Modify expand to allow XI and OI
31017 modes in MVE.
31018 (neon_mov<mode>): Modify RTL define_insn to allow XI and OI modes
31019 in MVE.
31020 (define_split): Allow OI mode split for MVE after reload.
31021 (define_split): Allow XI mode split for MVE after reload.
31022 * config/arm/t-arm (arm.o): Add entry for arm_mve_builtins.def.
31023 (arm-builtins.o): Likewise.
31024
31025 2020-03-17 Christophe Lyon <christophe.lyon@linaro.org>
31026
31027 * c-typeck.c (process_init_element): Handle constructor_type with
31028 type size represented by POLY_INT_CST.
31029
31030 2020-03-17 Jakub Jelinek <jakub@redhat.com>
31031
31032 PR tree-optimization/94187
31033 * tree-ssa-strlen.c (count_nonzero_bytes): Punt if
31034 nchars - offset < nbytes.
31035
31036 PR middle-end/94189
31037 * builtins.c (expand_builtin_strnlen): Do return NULL_RTX if we would
31038 emit a warning if it was enabled and don't depend on TREE_NO_WARNING
31039 for code-generation.
31040
31041 2020-03-16 Vladimir Makarov <vmakarov@redhat.com>
31042
31043 PR target/94185
31044 * lra-spills.c (remove_pseudos): Do not reuse insn alternative
31045 after changing memory subreg.
31046
31047 2020-03-16 Andre Vieira <andre.simoesdiasvieira@arm.com>
31048 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
31049
31050 * config/arm/arm.c (arm_libcall_uses_aapcs_base): Modify function to add
31051 emulator calls for dobule precision arithmetic operations for MVE.
31052
31053 2020-03-16 Andre Vieira <andre.simoesdiasvieira@arm.com>
31054 Mihail Ionescu <mihail.ionescu@arm.com>
31055 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
31056
31057 * common/config/arm/arm-common.c (arm_asm_auto_mfpu): When vfp_base
31058 feature bit is on and -mfpu=auto is passed as compiler option, do not
31059 generate error on not finding any matching fpu. Because in this case
31060 fpu is not required.
31061 * config/arm/arm-cpus.in (vfp_base): Define feature bit, this bit is
31062 enabled for MVE and also for all VFP extensions.
31063 (VFPv2): Modify fgroup to enable vfp_base feature bit when ever VFPv2
31064 is enabled.
31065 (MVE): Define fgroup to enable feature bits mve, vfp_base and armv7em.
31066 (MVE_FP): Define fgroup to enable feature bits is fgroup MVE and FPv5
31067 along with feature bits mve_float.
31068 (mve): Modify add options in armv8.1-m.main arch for MVE.
31069 (mve.fp): Modify add options in armv8.1-m.main arch for MVE with
31070 floating point.
31071 * config/arm/arm.c (use_return_insn): Replace the
31072 check with TARGET_VFP_BASE.
31073 (thumb2_legitimate_index_p): Replace TARGET_HARD_FLOAT with
31074 TARGET_VFP_BASE.
31075 (arm_rtx_costs_internal): Replace "TARGET_HARD_FLOAT || TARGET_HAVE_MVE"
31076 with TARGET_VFP_BASE, to allow cost calculations for copies in MVE as
31077 well.
31078 (arm_get_vfp_saved_size): Replace TARGET_HARD_FLOAT with
31079 TARGET_VFP_BASE, to allow space calculation for VFP registers in MVE
31080 as well.
31081 (arm_compute_frame_layout): Likewise.
31082 (arm_save_coproc_regs): Likewise.
31083 (arm_fixed_condition_code_regs): Modify to enable using VFPCC_REGNUM
31084 in MVE as well.
31085 (arm_hard_regno_mode_ok): Replace "TARGET_HARD_FLOAT || TARGET_HAVE_MVE"
31086 with equivalent macro TARGET_VFP_BASE.
31087 (arm_expand_epilogue_apcs_frame): Likewise.
31088 (arm_expand_epilogue): Likewise.
31089 (arm_conditional_register_usage): Likewise.
31090 (arm_declare_function_name): Add check to skip printing .fpu directive
31091 in assembly file when TARGET_VFP_BASE is enabled and fpu_to_print is
31092 "softvfp".
31093 * config/arm/arm.h (TARGET_VFP_BASE): Define.
31094 * config/arm/arm.md (arch): Add "mve" to arch.
31095 (eq_attr "arch" "mve"): Enable on TARGET_HAVE_MVE is true.
31096 (vfp_pop_multiple_with_writeback): Replace "TARGET_HARD_FLOAT
31097 || TARGET_HAVE_MVE" with equivalent macro TARGET_VFP_BASE.
31098 * config/arm/constraints.md (Uf): Define to allow modification to FPCCR
31099 in MVE.
31100 * config/arm/thumb2.md (thumb2_movsfcc_soft_insn): Modify target guard
31101 to not allow for MVE.
31102 * config/arm/unspecs.md (UNSPEC_GET_FPSCR): Move to volatile unspecs
31103 enum.
31104 (VUNSPEC_GET_FPSCR): Define.
31105 * config/arm/vfp.md (thumb2_movhi_vfp): Add support for VMSR and VMRS
31106 instructions which move to general-purpose Register from Floating-point
31107 Special register and vice-versa.
31108 (thumb2_movhi_fp16): Likewise.
31109 (thumb2_movsi_vfp): Add support for VMSR and VMRS instructions along
31110 with MCR and MRC instructions which set and get Floating-point Status
31111 and Control Register (FPSCR).
31112 (movdi_vfp): Modify pattern to enable Single-precision scalar float move
31113 in MVE.
31114 (thumb2_movdf_vfp): Modify pattern to enable Double-precision scalar
31115 float move patterns in MVE.
31116 (thumb2_movsfcc_vfp): Modify pattern to enable single float conditional
31117 code move patterns of VFP also in MVE by adding TARGET_VFP_BASE check.
31118 (thumb2_movdfcc_vfp): Modify pattern to enable double float conditional
31119 code move patterns of VFP also in MVE by adding TARGET_VFP_BASE check.
31120 (push_multi_vfp): Add support to use VFP VPUSH pattern for MVE by adding
31121 TARGET_VFP_BASE check.
31122 (set_fpscr): Add support to set FPSCR register for MVE. Modify pattern
31123 using VFPCC_REGNUM as few MVE intrinsics use carry bit of FPSCR
31124 register.
31125 (get_fpscr): Add support to get FPSCR register for MVE. Modify pattern
31126 using VFPCC_REGNUM as few MVE intrinsics use carry bit of FPSCR
31127 register.
31128
31129
31130 2020-03-16 Andre Vieira <andre.simoesdiasvieira@arm.com>
31131 Mihail Ionescu <mihail.ionescu@arm.com>
31132 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
31133
31134 * config.gcc (arm_mve.h): Include mve intrinsics header file.
31135 * config/arm/aout.h (p0): Add new register name for MVE predicated
31136 cases.
31137 * config/arm-builtins.c (ARM_BUILTIN_SIMD_LANE_CHECK): Define macro
31138 common to Neon and MVE.
31139 (ARM_BUILTIN_NEON_LANE_CHECK): Renamed to ARM_BUILTIN_SIMD_LANE_CHECK.
31140 (arm_init_simd_builtin_types): Disable poly types for MVE.
31141 (arm_init_neon_builtins): Move a check to arm_init_builtins function.
31142 (arm_init_builtins): Use ARM_BUILTIN_SIMD_LANE_CHECK instead of
31143 ARM_BUILTIN_NEON_LANE_CHECK.
31144 (mve_dereference_pointer): Add function.
31145 (arm_expand_builtin_args): Call to mve_dereference_pointer when MVE is
31146 enabled.
31147 (arm_expand_neon_builtin): Moved to arm_expand_builtin function.
31148 (arm_expand_builtin): Moved from arm_expand_neon_builtin function.
31149 * config/arm/arm-c.c (__ARM_FEATURE_MVE): Define macro for MVE and MVE
31150 with floating point enabled.
31151 * config/arm/arm-protos.h (neon_immediate_valid_for_move): Renamed to
31152 simd_immediate_valid_for_move.
31153 (simd_immediate_valid_for_move): Renamed from
31154 neon_immediate_valid_for_move function.
31155 * config/arm/arm.c (arm_options_perform_arch_sanity_checks): Generate
31156 error if vfpv2 feature bit is disabled and mve feature bit is also
31157 disabled for HARD_FLOAT_ABI.
31158 (use_return_insn): Check to not push VFP regs for MVE.
31159 (aapcs_vfp_allocate): Add MVE check to have same Procedure Call Standard
31160 as Neon.
31161 (aapcs_vfp_allocate_return_reg): Likewise.
31162 (thumb2_legitimate_address_p): Check to return 0 on valid Thumb-2
31163 address operand for MVE.
31164 (arm_rtx_costs_internal): MVE check to determine cost of rtx.
31165 (neon_valid_immediate): Rename to simd_valid_immediate.
31166 (simd_valid_immediate): Rename from neon_valid_immediate.
31167 (simd_valid_immediate): MVE check on size of vector is 128 bits.
31168 (neon_immediate_valid_for_move): Rename to
31169 simd_immediate_valid_for_move.
31170 (simd_immediate_valid_for_move): Rename from
31171 neon_immediate_valid_for_move.
31172 (neon_immediate_valid_for_logic): Modify call to neon_valid_immediate
31173 function.
31174 (neon_make_constant): Modify call to neon_valid_immediate function.
31175 (neon_vector_mem_operand): Return VFP register for POST_INC or PRE_DEC
31176 for MVE.
31177 (output_move_neon): Add MVE check to generate vldm/vstm instrcutions.
31178 (arm_compute_frame_layout): Calculate space for saved VFP registers for
31179 MVE.
31180 (arm_save_coproc_regs): Save coproc registers for MVE.
31181 (arm_print_operand): Add case 'E' to print memory operands for MVE.
31182 (arm_print_operand_address): Check to print register number for MVE.
31183 (arm_hard_regno_mode_ok): Check for arm hard regno mode ok for MVE.
31184 (arm_modes_tieable_p): Check to allow structure mode for MVE.
31185 (arm_regno_class): Add VPR_REGNUM check.
31186 (arm_expand_epilogue_apcs_frame): MVE check to calculate epilogue code
31187 for APCS frame.
31188 (arm_expand_epilogue): MVE check for enabling pop instructions in
31189 epilogue.
31190 (arm_print_asm_arch_directives): Modify function to disable print of
31191 .arch_extension "mve" and "fp" for cases where MVE is enabled with
31192 "SOFT FLOAT ABI".
31193 (arm_vector_mode_supported_p): Check for modes available in MVE interger
31194 and MVE floating point.
31195 (arm_array_mode_supported_p): Add TARGET_HAVE_MVE check for array mode
31196 pointer support.
31197 (arm_conditional_register_usage): Enable usage of conditional regsiter
31198 for MVE.
31199 (fixed_regs[VPR_REGNUM]): Enable VPR_REG for MVE.
31200 (arm_declare_function_name): Modify function to disable print of
31201 .arch_extension "mve" and "fp" for cases where MVE is enabled with
31202 "SOFT FLOAT ABI".
31203 * config/arm/arm.h (TARGET_HAVE_MVE): Disable for soft float abi and
31204 when target general registers are required.
31205 (TARGET_HAVE_MVE_FLOAT): Likewise.
31206 (FIXED_REGISTERS): Add bit for VFP_REG class which is enabled in arm.c
31207 for MVE.
31208 (CALL_USED_REGISTERS): Set bit for VFP_REG class in CALL_USED_REGISTERS
31209 which indicate this is not available for across function calls.
31210 (FIRST_PSEUDO_REGISTER): Modify.
31211 (VALID_MVE_MODE): Define valid MVE mode.
31212 (VALID_MVE_SI_MODE): Define valid MVE SI mode.
31213 (VALID_MVE_SF_MODE): Define valid MVE SF mode.
31214 (VALID_MVE_STRUCT_MODE): Define valid MVE struct mode.
31215 (VPR_REGNUM): Add Vector Predication Register in arm_regs_in_sequence
31216 for MVE.
31217 (IS_VPR_REGNUM): Macro to check for VPR_REG register.
31218 (REG_ALLOC_ORDER): Add VPR_REGNUM entry.
31219 (enum reg_class): Add VPR_REG entry.
31220 (REG_CLASS_NAMES): Add VPR_REG entry.
31221 * config/arm/arm.md (VPR_REGNUM): Define.
31222 (conds): Check is_mve_type attrbiute to differentiate "conditional" and
31223 "unconditional" instructions.
31224 (arm_movsf_soft_insn): Modify RTL to not allow for MVE.
31225 (movdf_soft_insn): Modify RTL to not allow for MVE.
31226 (vfp_pop_multiple_with_writeback): Enable for MVE.
31227 (include "mve.md"): Include mve.md file.
31228 * config/arm/arm_mve.h: Add MVE intrinsics head file.
31229 * config/arm/constraints.md (Up): Constraint to enable "p0" register in MVE
31230 for vector predicated operands.
31231 * config/arm/iterators.md (VNIM1): Define.
31232 (VNINOTM1): Define.
31233 (VHFBF_split): Define
31234 * config/arm/mve.md: New file.
31235 (mve_mov<mode>): Define RTL for move, store and load in MVE.
31236 (mve_mov<mode>): Define move RTL pattern with vec_duplicate operator for
31237 second operand.
31238 * config/arm/neon.md (neon_immediate_valid_for_move): Rename with
31239 simd_immediate_valid_for_move.
31240 (neon_mov<mode>): Split pattern and move expand pattern "movv8hf" which
31241 is common to MVE and NEON to vec-common.md file.
31242 (vec_init<mode><V_elem_l>): Add TARGET_HAVE_MVE check.
31243 * config/arm/predicates.md (vpr_register_operand): Define.
31244 * config/arm/t-arm: Add mve.md file.
31245 * config/arm/types.md (mve_move): Add MVE instructions mve_move to
31246 attribute "type".
31247 (mve_store): Add MVE instructions mve_store to attribute "type".
31248 (mve_load): Add MVE instructions mve_load to attribute "type".
31249 (is_mve_type): Define attribute.
31250 * config/arm/vec-common.md (mov<mode>): Modify RTL expand to support
31251 standard move patterns in MVE along with NEON and IWMMXT with mode
31252 iterator VNIM1.
31253 (mov<mode>): Modify RTL expand to support standard move patterns in NEON
31254 and IWMMXT with mode iterator V8HF.
31255 (movv8hf): Define RTL expand to support standard "movv8hf" pattern in
31256 NEON and MVE.
31257 * config/arm/vfp.md (neon_immediate_valid_for_move): Rename to
31258 simd_immediate_valid_for_move.
31259
31260
31261 2020-03-16 H.J. Lu <hongjiu.lu@intel.com>
31262
31263 PR target/89229
31264 * config/i386/i386.md (*movsi_internal): Call ix86_output_ssemov
31265 for TYPE_SSEMOV. Remove ext_sse_reg_operand and TARGET_AVX512VL
31266 check.
31267 * config/i386/predicates.md (ext_sse_reg_operand): Removed.
31268
31269 2020-03-16 Jakub Jelinek <jakub@redhat.com>
31270
31271 PR debug/94167
31272 * tree-inline.c (insert_init_stmt): Don't gimple_regimplify_operands
31273 DEBUG_STMTs.
31274
31275 PR tree-optimization/94166
31276 * tree-ssa-reassoc.c (sort_by_mach_mode): Use SSA_NAME_VERSION
31277 as secondary comparison key.
31278
31279 2020-03-16 Bin Cheng <bin.cheng@linux.alibaba.com>
31280
31281 PR tree-optimization/94125
31282 * tree-loop-distribution.c
31283 (loop_distribution::break_alias_scc_partitions): Update post order
31284 number for merged scc.
31285
31286 2020-03-15 H.J. Lu <hongjiu.lu@intel.com>
31287
31288 PR target/89229
31289 * config/i386/i386.c (ix86_output_ssemov): Handle MODE_SI and
31290 MODE_SF.
31291 * config/i386/i386.md (*movsf_internal): Call ix86_output_ssemov
31292 for TYPE_SSEMOV. Remove TARGET_PREFER_AVX256, TARGET_AVX512VL
31293 and ext_sse_reg_operand check.
31294
31295 2020-03-15 Lewis Hyatt <lhyatt@gmail.com>
31296
31297 * common.opt: Avoid redundancy in the help text.
31298 * config/arc/arc.opt: Likewise.
31299 * config/cr16/cr16.opt: Likewise.
31300
31301 2020-03-14 Jakub Jelinek <jakub@redhat.com>
31302
31303 PR middle-end/93566
31304 * tree-nested.c (convert_nonlocal_omp_clauses,
31305 convert_local_omp_clauses): Handle {,in_,task_}reduction clauses
31306 with C/C++ array sections.
31307
31308 2020-03-14 H.J. Lu <hongjiu.lu@intel.com>
31309
31310 PR target/89229
31311 * config/i386/i386.md (*movdi_internal): Call ix86_output_ssemov
31312 for TYPE_SSEMOV. Remove ext_sse_reg_operand and TARGET_AVX512VL
31313 check.
31314
31315 2020-03-14 Jakub Jelinek <jakub@redhat.com>
31316
31317 * gimple-fold.c (gimple_fold_builtin_strncpy): Change
31318 "a an" to "an" in a comment.
31319 * hsa-common.h (is_a_helper): Likewise.
31320 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Likewise.
31321 * config/arc/arc.c (arc600_corereg_hazard): Likewise.
31322 * config/s390/s390.c (s390_indirect_branch_via_thunk): Likewise.
31323
31324 2020-03-13 Aaron Sawdey <acsawdey@linux.ibm.com>
31325
31326 PR target/92379
31327 * config/rs6000/rs6000.c (num_insns_constant_multi): Don't shift a
31328 64-bit value by 64 bits (UB).
31329
31330 2020-03-13 Vladimir Makarov <vmakarov@redhat.com>
31331
31332 PR rtl-optimization/92303
31333 * lra-spills.c (remove_pseudos): Try to simplify memory subreg.
31334
31335 2020-03-13 Segher Boessenkool <segher@kernel.crashing.org>
31336
31337 PR rtl-optimization/94148
31338 PR rtl-optimization/94042
31339 * df-core.c (BB_LAST_CHANGE_AGE): Delete.
31340 (df_worklist_propagate_forward): New parameter last_change_age, use
31341 that instead of bb->aux.
31342 (df_worklist_propagate_backward): Ditto.
31343 (df_worklist_dataflow_doublequeue): Use a local array last_change_age.
31344
31345 2020-03-13 Richard Biener <rguenther@suse.de>
31346
31347 PR tree-optimization/94163
31348 * tree-ssa-pre.c (create_expression_by_pieces): Check
31349 whether alignment would be zero.
31350
31351 2020-03-13 Martin Liska <mliska@suse.cz>
31352
31353 PR lto/94157
31354 * lto-wrapper.c (run_gcc): Use concat for appending
31355 to collect_gcc_options.
31356
31357 2020-03-13 Jakub Jelinek <jakub@redhat.com>
31358
31359 PR target/94121
31360 * config/aarch64/aarch64.c (aarch64_add_offset_1): Use gen_int_mode
31361 instead of GEN_INT.
31362
31363 2020-03-13 H.J. Lu <hongjiu.lu@intel.com>
31364
31365 PR target/89229
31366 * config/i386/i386.c (ix86_output_ssemov): Handle MODE_DF.
31367 * config/i386/i386.md (*movdf_internal): Call ix86_output_ssemov
31368 for TYPE_SSEMOV. Remove TARGET_AVX512F, TARGET_PREFER_AVX256,
31369 TARGET_AVX512VL and ext_sse_reg_operand check.
31370
31371 2020-03-13 Bu Le <bule1@huawei.com>
31372
31373 PR target/94154
31374 * config/aarch64/aarch64.opt (-param=aarch64-float-recp-precision=)
31375 (-param=aarch64-double-recp-precision=): New options.
31376 * doc/invoke.texi: Document them.
31377 * config/aarch64/aarch64.c (aarch64_emit_approx_div): Use them
31378 instead of hard-coding the choice of 1 for float and 2 for double.
31379
31380 2020-03-13 Eric Botcazou <ebotcazou@adacore.com>
31381
31382 PR rtl-optimization/94119
31383 * resource.h (clear_hashed_info_until_next_barrier): Declare.
31384 * resource.c (clear_hashed_info_until_next_barrier): New function.
31385 * reorg.c (add_to_delay_list): Fix formatting.
31386 (relax_delay_slots): Call clear_hashed_info_until_next_barrier on
31387 the next instruction after removing a BARRIER.
31388
31389 2020-03-13 Eric Botcazou <ebotcazou@adacore.com>
31390
31391 PR middle-end/92071
31392 * expmed.c (store_integral_bit_field): For fields larger than a word,
31393 call extract_bit_field on the value if the mode is BLKmode. Remove
31394 specific path for big-endian targets and tidy things up a little bit.
31395
31396 2020-03-12 Richard Sandiford <richard.sandiford@arm.com>
31397
31398 PR rtl-optimization/90275
31399 * cse.c (cse_insn): Delete no-op register moves too.
31400
31401 2020-03-12 Darius Galis <darius.galis@cyberthorstudios.com>
31402
31403 * config/rx/rx.md (CTRLREG_CPEN): Remove.
31404 * config/rx/rx.c (rx_print_operand): Remove CTRLREG_CPEN support.
31405
31406 2020-03-12 Richard Biener <rguenther@suse.de>
31407
31408 PR tree-optimization/94103
31409 * tree-ssa-sccvn.c (visit_reference_op_load): Avoid type
31410 punning when the mode precision is not sufficient.
31411
31412 2020-03-12 H.J. Lu <hongjiu.lu@intel.com>
31413
31414 PR target/89229
31415 * config/i386/i386.c (ix86_output_ssemov): Handle MODE_DI,
31416 MODE_V1DF and MODE_V2SF.
31417 * config/i386/mmx.md (MMXMODE:*mov<mode>_internal): Call
31418 ix86_output_ssemov for TYPE_SSEMOV. Remove ext_sse_reg_operand
31419 check.
31420
31421 2020-03-12 Jakub Jelinek <jakub@redhat.com>
31422
31423 * doc/tm.texi.in (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Change
31424 ASM_OUTPUT_ALIGNED_DECL in description to ASM_OUTPUT_ALIGNED_LOCAL
31425 and ASM_OUTPUT_DECL to ASM_OUTPUT_LOCAL.
31426 * doc/tm.texi: Regenerated.
31427
31428 PR tree-optimization/94130
31429 * tree-ssa-dse.c: Include gimplify.h.
31430 (increment_start_addr): If stmt has lhs, drop the lhs from call and
31431 set it after the call to the original value of the first argument.
31432 Formatting fixes.
31433 (decrement_count): Formatting fix.
31434
31435 2020-03-11 Delia Burduv <delia.burduv@arm.com>
31436
31437 * config/arm/arm-builtins.c
31438 (arm_init_simd_builtin_scalar_types): New.
31439 * config/arm/arm_neon.h (vld2_bf16): Used new builtin type.
31440 (vld2q_bf16): Used new builtin type.
31441 (vld3_bf16): Used new builtin type.
31442 (vld3q_bf16): Used new builtin type.
31443 (vld4_bf16): Used new builtin type.
31444 (vld4q_bf16): Used new builtin type.
31445 (vld2_dup_bf16): Used new builtin type.
31446 (vld2q_dup_bf16): Used new builtin type.
31447 (vld3_dup_bf16): Used new builtin type.
31448 (vld3q_dup_bf16): Used new builtin type.
31449 (vld4_dup_bf16): Used new builtin type.
31450 (vld4q_dup_bf16): Used new builtin type.
31451
31452 2020-03-11 Jakub Jelinek <jakub@redhat.com>
31453
31454 PR target/94134
31455 * config/pdp11/pdp11.c (pdp11_asm_output_var): Call switch_to_section
31456 at the start to switch to data section. Don't print extra newline if
31457 .globl directive has not been emitted.
31458
31459 2020-03-11 Richard Biener <rguenther@suse.de>
31460
31461 * match.pd ((T *)(ptr - ptr-cst) -> &MEM[ptr + -ptr-cst]):
31462 New pattern.
31463
31464 2020-03-11 Eric Botcazou <ebotcazou@adacore.com>
31465
31466 PR middle-end/93961
31467 * tree.c (variably_modified_type_p) <RECORD_TYPE>: Recurse into fields
31468 whose type is a qualified union.
31469
31470 2020-03-11 Jakub Jelinek <jakub@redhat.com>
31471
31472 PR target/94121
31473 * config/aarch64/aarch64.c (aarch64_add_offset_1): Use absu_hwi
31474 instead of abs_hwi, change moffset type to unsigned HOST_WIDE_INT.
31475
31476 PR bootstrap/93962
31477 * value-prof.c (dump_histogram_value): Use abs_hwi instead of
31478 std::abs.
31479 (get_nth_most_common_value): Use abs_hwi instead of abs.
31480
31481 PR middle-end/94111
31482 * dfp.c (decimal_to_binary): Only use decimal128ToString if from->cl
31483 is rvc_normal, otherwise use real_to_decimal to print the number to
31484 string.
31485
31486 PR tree-optimization/94114
31487 * tree-loop-distribution.c (generate_memset_builtin): Call
31488 rewrite_to_non_trapping_overflow even on mem.
31489 (generate_memcpy_builtin): Call rewrite_to_non_trapping_overflow even
31490 on dest and src.
31491
31492 2020-03-10 Jeff Law <law@redhat.com>
31493
31494 * config/bfin/bfin.md (movsi_insv): Add length attribute.
31495
31496 2020-03-10 Jiufu Guo <guojiufu@linux.ibm.com>
31497
31498 PR target/93709
31499 * config/rs6000/rs6000.c (rs6000_emit_p9_fp_minmax): Check
31500 NAN and SIGNED_ZEROR for smax/smin.
31501
31502 2020-03-10 Will Schmidt <will_schmidt@vnet.ibm.com>
31503
31504 PR target/90763
31505 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
31506 clause to handle P9V_BUILTIN_VEC_LXVL with const arguments.
31507
31508 2020-03-10 Roman Zhuykov <zhroma@ispras.ru>
31509
31510 * loop-iv.c (find_simple_exit): Make it static.
31511 * cfgloop.h: Remove the corresponding prototype.
31512
31513 2020-03-10 Roman Zhuykov <zhroma@ispras.ru>
31514
31515 * ddg.c (create_ddg): Fix intendation.
31516 (set_recurrence_length): Likewise.
31517 (create_ddg_all_sccs): Likewise.
31518
31519 2020-03-10 Jakub Jelinek <jakub@redhat.com>
31520
31521 PR target/94088
31522 * config/i386/i386.md (*testqi_ext_3): Call ix86_match_ccmode with
31523 CCZmode instead of CCNOmode if operands[2] has DImode and pos + len
31524 is 32.
31525
31526 2020-03-09 Jason Merrill <jason@redhat.com>
31527
31528 * gdbinit.in (pgs): Fix typo in documentation.
31529
31530 2020-03-09 Vladimir Makarov <vmakarov@redhat.com>
31531
31532 Revert:
31533
31534 2020-02-28 Vladimir Makarov <vmakarov@redhat.com>
31535
31536 PR rtl-optimization/93564
31537 * ira-color.c (assign_hard_reg): Prefer smaller hard regno when we
31538 do not honor reg alloc order.
31539
31540 2020-03-09 Andrew Pinski <apinski@marvell.com>
31541
31542 PR inline-asm/94095
31543 * doc/extend.texi (x86 Operand Modifiers): Fix column
31544 for 'A' modifier.
31545
31546 2020-03-09 Martin Liska <mliska@suse.cz>
31547
31548 PR target/93800
31549 * config/rs6000/rs6000.c (rs6000_option_override_internal):
31550 Remove set of str_align_loops and str_align_jumps as these
31551 should be set in previous 2 conditions in the function.
31552
31553 2020-03-09 Jakub Jelinek <jakub@redhat.com>
31554
31555 PR rtl-optimization/94045
31556 * params.opt (-param=max-find-base-term-values=): New option.
31557 * alias.c (find_base_term): Add cut-off for number of visited VALUEs
31558 in a single toplevel find_base_term call.
31559
31560 2020-03-06 Wilco Dijkstra <wdijkstr@arm.com>
31561
31562 PR target/91598
31563 * config/aarch64/aarch64-builtins.c (TYPES_TERNOPU_LANE): Add define.
31564 * config/aarch64/aarch64-simd.md
31565 (aarch64_vec_<su>mult_lane<Qlane>): Add new insn for widening lane mul.
31566 (aarch64_vec_<su>mlal_lane<Qlane>): Likewise.
31567 * config/aarch64/aarch64-simd-builtins.def: Add intrinsics.
31568 * config/aarch64/arm_neon.h:
31569 (vmlal_lane_s16): Expand using intrinsics rather than inline asm.
31570 (vmlal_lane_u16): Likewise.
31571 (vmlal_lane_s32): Likewise.
31572 (vmlal_lane_u32): Likewise.
31573 (vmlal_laneq_s16): Likewise.
31574 (vmlal_laneq_u16): Likewise.
31575 (vmlal_laneq_s32): Likewise.
31576 (vmlal_laneq_u32): Likewise.
31577 (vmull_lane_s16): Likewise.
31578 (vmull_lane_u16): Likewise.
31579 (vmull_lane_s32): Likewise.
31580 (vmull_lane_u32): Likewise.
31581 (vmull_laneq_s16): Likewise.
31582 (vmull_laneq_u16): Likewise.
31583 (vmull_laneq_s32): Likewise.
31584 (vmull_laneq_u32): Likewise.
31585 * config/aarch64/iterators.md (Vcondtype): New iterator for lane mul.
31586 (Qlane): Likewise.
31587
31588 2020-03-06 Wilco Dijkstra <wdijkstr@arm.com>
31589
31590 * aarch64/aarch64-simd.md (aarch64_mla_elt<mode>): Correct lane syntax.
31591 (aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
31592 (aarch64_mls_elt<mode>): Likewise.
31593 (aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
31594 (aarch64_fma4_elt<mode>): Likewise.
31595 (aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
31596 (aarch64_fma4_elt_to_64v2df): Likewise.
31597 (aarch64_fnma4_elt<mode>): Likewise.
31598 (aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
31599 (aarch64_fnma4_elt_to_64v2df): Likewise.
31600
31601 2020-03-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
31602
31603 * config/aarch64/aarch64-sve2.md (@aarch64_sve_<sve_int_op><mode>:
31604 Specify movprfx attribute.
31605 (@aarch64_sve_<sve_int_op>_lane_<mode>): Likewise.
31606
31607 2020-03-06 David Edelsohn <dje.gcc@gmail.com>
31608
31609 PR target/94065
31610 * config/rs6000/aix61.h (TARGET_NO_SUM_IN_TOC): Set to 1 for
31611 cmodel=large.
31612 (TARGET_NO_FP_IN_TOC): Same.
31613 * config/rs6000/aix71.h: Same.
31614 * config/rs6000/aix72.h: Same.
31615
31616 2020-03-06 Andrew Pinski <apinski@marvell.com>
31617 Jeff Law <law@redhat.com>
31618
31619 PR rtl-optimization/93996
31620 * haifa-sched.c (remove_notes): Be more careful when adding
31621 REG_SAVE_NOTE.
31622
31623 2020-03-06 Delia Burduv <delia.burduv@arm.com>
31624
31625 * config/arm/arm_neon.h (vld2_bf16): New.
31626 (vld2q_bf16): New.
31627 (vld3_bf16): New.
31628 (vld3q_bf16): New.
31629 (vld4_bf16): New.
31630 (vld4q_bf16): New.
31631 (vld2_dup_bf16): New.
31632 (vld2q_dup_bf16): New.
31633 (vld3_dup_bf16): New.
31634 (vld3q_dup_bf16): New.
31635 (vld4_dup_bf16): New.
31636 (vld4q_dup_bf16): New.
31637 * config/arm/arm_neon_builtins.def
31638 (vld2): Changed to VAR13 and added v4bf, v8bf
31639 (vld2_dup): Changed to VAR8 and added v4bf, v8bf
31640 (vld3): Changed to VAR13 and added v4bf, v8bf
31641 (vld3_dup): Changed to VAR8 and added v4bf, v8bf
31642 (vld4): Changed to VAR13 and added v4bf, v8bf
31643 (vld4_dup): Changed to VAR8 and added v4bf, v8bf
31644 * config/arm/iterators.md (VDXBF2): New iterator.
31645 *config/arm/neon.md (neon_vld2): Use new iterators.
31646 (neon_vld2_dup<mode): Use new iterators.
31647 (neon_vld3<mode>): Likewise.
31648 (neon_vld3qa<mode>): Likewise.
31649 (neon_vld3qb<mode>): Likewise.
31650 (neon_vld3_dup<mode>): Likewise.
31651 (neon_vld4<mode>): Likewise.
31652 (neon_vld4qa<mode>): Likewise.
31653 (neon_vld4qb<mode>): Likewise.
31654 (neon_vld4_dup<mode>): Likewise.
31655 (neon_vld2_dupv8bf): New.
31656 (neon_vld3_dupv8bf): Likewise.
31657 (neon_vld4_dupv8bf): Likewise.
31658
31659 2020-03-06 Delia Burduv <delia.burduv@arm.com>
31660
31661 * config/arm/arm_neon.h (bfloat16x4x2_t): New typedef.
31662 (bfloat16x8x2_t): New typedef.
31663 (bfloat16x4x3_t): New typedef.
31664 (bfloat16x8x3_t): New typedef.
31665 (bfloat16x4x4_t): New typedef.
31666 (bfloat16x8x4_t): New typedef.
31667 (vst2_bf16): New.
31668 (vst2q_bf16): New.
31669 (vst3_bf16): New.
31670 (vst3q_bf16): New.
31671 (vst4_bf16): New.
31672 (vst4q_bf16): New.
31673 * config/arm/arm-builtins.c (v2bf_UP): Define.
31674 (VAR13): New.
31675 (arm_init_simd_builtin_types): Init Bfloat16x2_t eltype.
31676 * config/arm/arm-modes.def (V2BF): New mode.
31677 * config/arm/arm-simd-builtin-types.def
31678 (Bfloat16x2_t): New entry.
31679 * config/arm/arm_neon_builtins.def
31680 (vst2): Changed to VAR13 and added v4bf, v8bf
31681 (vst3): Changed to VAR13 and added v4bf, v8bf
31682 (vst4): Changed to VAR13 and added v4bf, v8bf
31683 * config/arm/iterators.md (VDXBF): New iterator.
31684 (VQ2BF): New iterator.
31685 *config/arm/neon.md (neon_vst2<mode>): Used new iterators.
31686 (neon_vst2<mode>): Used new iterators.
31687 (neon_vst3<mode>): Used new iterators.
31688 (neon_vst3<mode>): Used new iterators.
31689 (neon_vst3qa<mode>): Used new iterators.
31690 (neon_vst3qb<mode>): Used new iterators.
31691 (neon_vst4<mode>): Used new iterators.
31692 (neon_vst4<mode>): Used new iterators.
31693 (neon_vst4qa<mode>): Used new iterators.
31694 (neon_vst4qb<mode>): Used new iterators.
31695
31696 2020-03-06 Delia Burduv <delia.burduv@arm.com>
31697
31698 * config/aarch64/aarch64-simd-builtins.def
31699 (bfcvtn): New built-in function.
31700 (bfcvtn_q): New built-in function.
31701 (bfcvtn2): New built-in function.
31702 (bfcvt): New built-in function.
31703 * config/aarch64/aarch64-simd.md
31704 (aarch64_bfcvtn<q><mode>): New pattern.
31705 (aarch64_bfcvtn2v8bf): New pattern.
31706 (aarch64_bfcvtbf): New pattern.
31707 * config/aarch64/arm_bf16.h (float32_t): New typedef.
31708 (vcvth_bf16_f32): New intrinsic.
31709 * config/aarch64/arm_bf16.h (vcvt_bf16_f32): New intrinsic.
31710 (vcvtq_low_bf16_f32): New intrinsic.
31711 (vcvtq_high_bf16_f32): New intrinsic.
31712 * config/aarch64/iterators.md (V4SF_TO_BF): New mode iterator.
31713 (UNSPEC_BFCVTN): New UNSPEC.
31714 (UNSPEC_BFCVTN2): New UNSPEC.
31715 (UNSPEC_BFCVT): New UNSPEC.
31716 * config/arm/types.md (bf_cvt): New type.
31717
31718 2020-03-06 Andreas Krebbel <krebbel@linux.ibm.com>
31719
31720 * config/s390/s390.md ("tabort"): Get rid of two consecutive
31721 blanks in format string.
31722
31723 2020-03-05 H.J. Lu <hongjiu.lu@intel.com>
31724
31725 PR target/89229
31726 PR target/89346
31727 * config/i386/i386-protos.h (ix86_output_ssemov): New prototype.
31728 * config/i386/i386.c (ix86_get_ssemov): New function.
31729 (ix86_output_ssemov): Likewise.
31730 * config/i386/sse.md (VMOVE:mov<mode>_internal): Call
31731 ix86_output_ssemov for TYPE_SSEMOV. Remove TARGET_AVX512VL
31732 check.
31733 (*movxi_internal_avx512f): Call ix86_output_ssemov for TYPE_SSEMOV.
31734 (*movoi_internal_avx): Call ix86_output_ssemov for TYPE_SSEMOV.
31735 Remove ext_sse_reg_operand and TARGET_AVX512VL check.
31736 (*movti_internal): Likewise.
31737 (*movtf_internal): Call ix86_output_ssemov for TYPE_SSEMOV.
31738
31739 2020-03-05 Jeff Law <law@redhat.com>
31740
31741 PR tree-optimization/91890
31742 * gimple-ssa-warn-restrict.c (maybe_diag_overlap): Remove LOC argument.
31743 Use gimple_or_expr_nonartificial_location.
31744 (check_bounds_overlap): Drop LOC argument to maybe_diag_access_bounds.
31745 Use gimple_or_expr_nonartificial_location.
31746 * gimple.c (gimple_or_expr_nonartificial_location): New function.
31747 * gimple.h (gimple_or_expr_nonartificial_location): Declare it.
31748 * tree-ssa-strlen.c (maybe_warn_overflow): Use
31749 gimple_or_expr_nonartificial_location.
31750 (maybe_diag_stxncpy_trunc, handle_builtin_stxncpy_strncat): Likewise.
31751 (maybe_warn_pointless_strcmp): Likewise.
31752
31753 2020-03-05 Jakub Jelinek <jakub@redhat.com>
31754
31755 PR target/94046
31756 * config/i386/avx2intrin.h (_mm_mask_i32gather_ps): Fix first cast of
31757 SRC and MASK arguments to __m128 from __m128d.
31758 (_mm256_mask_i32gather_ps): Fix first cast of MASK argument to __m256
31759 from __m256d.
31760 (_mm_mask_i64gather_ps): Fix first cast of MASK argument to __m128
31761 from __m128d.
31762 * config/i386/xopintrin.h (_mm_permute2_pd): Fix first cast of C
31763 argument to __m128i from __m128d.
31764 (_mm256_permute2_pd): Fix first cast of C argument to __m256i from
31765 __m256d.
31766 (_mm_permute2_ps): Fix first cast of C argument to __m128i from __m128.
31767 (_mm256_permute2_ps): Fix first cast of C argument to __m256i from
31768 __m256.
31769
31770 2020-03-05 Delia Burduv <delia.burduv@arm.com>
31771
31772 * config/arm/arm_neon.h (vbfmmlaq_f32): New.
31773 (vbfmlalbq_f32): New.
31774 (vbfmlaltq_f32): New.
31775 (vbfmlalbq_lane_f32): New.
31776 (vbfmlaltq_lane_f32): New.
31777 (vbfmlalbq_laneq_f32): New.
31778 (vbfmlaltq_laneq_f32): New.
31779 * config/arm/arm_neon_builtins.def (vmmla): New.
31780 (vfmab): New.
31781 (vfmat): New.
31782 (vfmab_lane): New.
31783 (vfmat_lane): New.
31784 (vfmab_laneq): New.
31785 (vfmat_laneq): New.
31786 * config/arm/iterators.md (BF_MA): New int iterator.
31787 (bt): New int attribute.
31788 (VQXBF): Copy of VQX with V8BF.
31789 * config/arm/neon.md (neon_vmmlav8bf): New insn.
31790 (neon_vfma<bt>v8bf): New insn.
31791 (neon_vfma<bt>_lanev8bf): New insn.
31792 (neon_vfma<bt>_laneqv8bf): New expand.
31793 (neon_vget_high<mode>): Changed iterator to VQXBF.
31794 * config/arm/unspecs.md (UNSPEC_BFMMLA): New UNSPEC.
31795 (UNSPEC_BFMAB): New UNSPEC.
31796 (UNSPEC_BFMAT): New UNSPEC.
31797
31798 2020-03-05 Jakub Jelinek <jakub@redhat.com>
31799
31800 PR middle-end/93399
31801 * tree-pretty-print.h (pretty_print_string): Declare.
31802 * tree-pretty-print.c (pretty_print_string): Remove forward
31803 declaration, no longer static. Change nbytes parameter type
31804 from unsigned to size_t.
31805 * print-rtl.c (print_value) <case CONST_STRING>: Use
31806 pretty_print_string and for shrink way too long strings.
31807
31808 2020-03-05 Richard Biener <rguenther@suse.de>
31809 Jakub Jelinek <jakub@redhat.com>
31810
31811 PR tree-optimization/93582
31812 * tree-ssa-sccvn.c (vn_reference_lookup_3): Treat POINTER_PLUS_EXPR
31813 last operand as signed when looking for memset offset. Formatting
31814 fix.
31815
31816 2020-03-04 Andrew Pinski <apinski@marvell.com>
31817
31818 PR bootstrap/93962
31819 * value-prof.c (dump_histogram_value): Use std::abs.
31820
31821 2020-03-04 Martin Sebor <msebor@redhat.com>
31822
31823 PR tree-optimization/93986
31824 * tree-ssa-strlen.c (maybe_warn_overflow): Convert all wide_int
31825 operands to the same precision widest_int to avoid ICEs.
31826
31827 2020-03-04 Bill Schmidt <wschmidt@linux.ibm.com>
31828
31829 PR target/87560
31830 * rs6000-cpus.def (OTHER_ALTIVEC_MASKS): New #define.
31831 * rs6000.c (rs6000_disable_incompatible_switches): Add table entry
31832 for OPTION_MASK_ALTIVEC.
31833
31834 2020-03-04 Andreas Krebbel <krebbel@linux.ibm.com>
31835
31836 * config.gcc: Include the glibc-stdint.h header for zTPF.
31837
31838 2020-03-04 Andreas Krebbel <krebbel@linux.ibm.com>
31839
31840 * config/s390/s390.c (s390_secondary_memory_needed): Disallow
31841 direct FPR-GPR copies.
31842 (s390_register_info_gprtofpr): Disallow GPR content to be saved in
31843 FPRs.
31844
31845 2020-03-04 Andreas Krebbel <krebbel@linux.ibm.com>
31846
31847 * config/s390/s390.c (s390_emit_prologue): Specify the 2 new
31848 operands to the prologue_tpf expander.
31849 (s390_emit_epilogue): Likewise.
31850 (s390_option_override_internal): Do error checking and setup for
31851 the new options.
31852 * config/s390/tpf.h (TPF_TRACE_PROLOGUE_CHECK)
31853 (TPF_TRACE_EPILOGUE_CHECK, TPF_TRACE_PROLOGUE_TARGET)
31854 (TPF_TRACE_EPILOGUE_TARGET, TPF_TRACE_PROLOGUE_SKIP_TARGET)
31855 (TPF_TRACE_EPILOGUE_SKIP_TARGET): New macro definitions.
31856 * config/s390/tpf.md ("prologue_tpf", "epilogue_tpf"): Add two new
31857 operands for the check flag and the branch target.
31858 * config/s390/tpf.opt ("mtpf-trace-hook-prologue-check")
31859 ("mtpf-trace-hook-prologue-target")
31860 ("mtpf-trace-hook-epilogue-check")
31861 ("mtpf-trace-hook-epilogue-target", "mtpf-trace-skip"): New
31862 options.
31863 * doc/invoke.texi: Document -mtpf-trace-skip option. The other
31864 options are for debugging purposes and will not be documented
31865 here.
31866
31867 2020-03-04 Jakub Jelinek <jakub@redhat.com>
31868
31869 PR debug/93888
31870 * tree-inline.c (copy_decl_to_var): Copy DECL_BY_REFERENCE flag.
31871
31872 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Add offseti
31873 argument. Change pd argument so that it can be modified. Turn
31874 constant non-CONSTRUCTOR store into non-constant if it is too large.
31875 Adjust offset and size of CONSTRUCTOR or non-constant store to avoid
31876 overflows.
31877 (vn_walk_cb_data::vn_walk_cb_data, vn_reference_lookup_3): Adjust
31878 callers.
31879
31880 2020-02-04 Richard Biener <rguenther@suse.de>
31881
31882 PR tree-optimization/93964
31883 * graphite-isl-ast-to-gimple.c
31884 (gcc_expression_from_isl_ast_expr_id): Add intermediate
31885 conversion for pointer to integer converts.
31886 * graphite-scop-detection.c (assign_parameter_index_in_region):
31887 Relax assert.
31888
31889 2020-03-04 Martin Liska <mliska@suse.cz>
31890
31891 PR c/93886
31892 PR c/93887
31893 * doc/invoke.texi: Clarify --help=language and --help=common
31894 interaction.
31895
31896 2020-03-04 Jakub Jelinek <jakub@redhat.com>
31897
31898 PR tree-optimization/94001
31899 * tree-tailcall.c (process_assignment): Before comparing op1 to
31900 *ass_var, verify *ass_var is non-NULL.
31901
31902 2020-03-04 Kito Cheng <kito.cheng@sifive.com>
31903
31904 PR target/93995
31905 * config/riscv/riscv.c (riscv_emit_float_compare): Using NE to compare
31906 the result of IOR.
31907
31908 2020-03-03 Dennis Zhang <dennis.zhang@arm.com>
31909
31910 * config/arm/arm_bf16.h (vcvtah_f32_bf16, vcvth_bf16_f32): New.
31911 * config/arm/arm_neon.h (vcvt_f32_bf16, vcvtq_low_f32_bf16): New.
31912 (vcvtq_high_f32_bf16, vcvt_bf16_f32): New.
31913 (vcvtq_low_bf16_f32, vcvtq_high_bf16_f32): New.
31914 * config/arm/arm_neon_builtins.def (vbfcvt, vbfcvt_high): New entries.
31915 (vbfcvtv4sf, vbfcvtv4sf_high): Likewise.
31916 * config/arm/iterators.md (VBFCVT, VBFCVTM): New mode iterators.
31917 (V_bf_low, V_bf_cvt_m): New mode attributes.
31918 * config/arm/neon.md (neon_vbfcvtv4sf<VBFCVT:mode>): New.
31919 (neon_vbfcvtv4sf_highv8bf, neon_vbfcvtsf): New.
31920 (neon_vbfcvt<VBFCVT:mode>, neon_vbfcvt_highv8bf): New.
31921 (neon_vbfcvtbf_cvtmode<mode>, neon_vbfcvtbf): New
31922 * config/arm/unspecs.md (UNSPEC_BFCVT, UNSPEC_BFCVT_HIG): New.
31923
31924 2020-03-03 Jakub Jelinek <jakub@redhat.com>
31925
31926 PR tree-optimization/93582
31927 * tree-ssa-sccvn.h (vn_reference_lookup): Add mask argument.
31928 * tree-ssa-sccvn.c (struct vn_walk_cb_data): Add mask and masked_result
31929 members, initialize them in the constructor and if mask is non-NULL,
31930 artificially push_partial_def {} for the portions of the mask that
31931 contain zeros.
31932 (vn_walk_cb_data::finish): If mask is non-NULL, set masked_result to
31933 val and return (void *)-1. Formatting fix.
31934 (vn_reference_lookup_pieces): Adjust vn_walk_cb_data initialization.
31935 Formatting fix.
31936 (vn_reference_lookup): Add mask argument. If non-NULL, don't call
31937 fully_constant_vn_reference_p nor vn_reference_lookup_1 and return
31938 data.mask_result.
31939 (visit_nary_op): Handle BIT_AND_EXPR of a memory load and INTEGER_CST
31940 mask.
31941 (visit_stmt): Formatting fix.
31942
31943 2020-03-03 Richard Biener <rguenther@suse.de>
31944
31945 PR tree-optimization/93946
31946 * alias.h (refs_same_for_tbaa_p): Declare.
31947 * alias.c (refs_same_for_tbaa_p): New function.
31948 * tree-ssa-alias.c (ao_ref_alias_set): For a NULL ref return
31949 zero.
31950 * tree-ssa-scopedtables.h
31951 (avail_exprs_stack::lookup_avail_expr): Add output argument
31952 giving access to the hashtable entry.
31953 * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
31954 Likewise.
31955 * tree-ssa-dom.c: Include alias.h.
31956 (dom_opt_dom_walker::optimize_stmt): Validate TBAA state before
31957 removing redundant store.
31958 * tree-ssa-sccvn.h (vn_reference_s::base_set): New member.
31959 (ao_ref_init_from_vn_reference): Adjust prototype.
31960 (vn_reference_lookup_pieces): Likewise.
31961 (vn_reference_insert_pieces): Likewise.
31962 * tree-ssa-sccvn.c: Track base alias set in addition to alias
31963 set everywhere.
31964 (eliminate_dom_walker::eliminate_stmt): Also check base alias
31965 set when removing redundant stores.
31966 (visit_reference_op_store): Likewise.
31967 * dse.c (record_store): Adjust valdity check for redundant
31968 store removal.
31969
31970 2020-03-03 Jakub Jelinek <jakub@redhat.com>
31971
31972 PR target/26877
31973 * config/s390/s390.h (OPTION_DEFAULT_SPECS): Reorder.
31974
31975 PR rtl-optimization/94002
31976 * explow.c (plus_constant): Punt if cst has VOIDmode and
31977 get_pool_mode is different from mode.
31978
31979 2020-03-03 Claudiu Zissulescu <claziss@synopsys.com>
31980
31981 * config/arc/arc.c (leigitimate_small_data_address_p): Check if an
31982 address has an offset which fits the scalling constraint for a
31983 load/store operation.
31984 (legitimate_scaled_address_p): Update use
31985 leigitimate_small_data_address_p.
31986 (arc_print_operand): Likewise.
31987 (arc_legitimate_address_p): Likewise.
31988 (legitimate_small_data_address_p): Likewise.
31989
31990 2020-03-03 Claudiu Zissulescu <claziss@synopsys.com>
31991
31992 * config/arc/arc.md (fmasf4_fpu): Use accl_operand predicate.
31993 (fnmasf4_fpu): Likewise.
31994
31995 2020-03-03 Claudiu Zissulescu <claziss@synopsys.com>
31996
31997 * config/arc/arc.md (adddi3): Early expand the 64bit operation into
31998 32bit ops.
31999 (subdi3): Likewise.
32000 (adddi3_i): Remove pattern.
32001 (subdi3_i): Likewise.
32002
32003 2020-03-03 Claudiu Zissulescu <claziss@synopsys.com>
32004
32005 * config/arc/arc.md (eh_return): Add length info.
32006
32007 2020-03-02 David Malcolm <dmalcolm@redhat.com>
32008
32009 * doc/invoke.texi (-fanalyzer-show-duplicate-count): New.
32010
32011 2020-03-02 David Malcolm <dmalcolm@redhat.com>
32012
32013 * doc/invoke.texi (Static Analyzer Options): Add
32014 -Wanalyzer-stale-setjmp-buffer to the list of options enabled
32015 by -fanalyzer.
32016
32017 2020-03-02 Uroš Bizjak <ubizjak@gmail.com>
32018
32019 PR target/93997
32020 * config/i386/i386.md (movstrict<mode>): Allow only
32021 registers with VALID_INT_MODE_P modes.
32022
32023 2020-03-02 Andrew Stubbs <ams@codesourcery.com>
32024
32025 * config/gcn/gcn-valu.md (dpp_move<mode>): New.
32026 (reduc_insn): Use 'U' and 'B' operand codes.
32027 (reduc_<reduc_op>_scal_<mode>): Allow all types.
32028 (reduc_<reduc_op>_scal_v64di): Delete.
32029 (*<reduc_op>_dpp_shr_<mode>): Allow all 1reg types.
32030 (*plus_carry_dpp_shr_v64si): Change to ...
32031 (*plus_carry_dpp_shr_<mode>): ... this and allow all 1reg int types.
32032 (mov_from_lane63_v64di): Change to ...
32033 (mov_from_lane63_<mode>): ... this, and allow all 64-bit modes.
32034 * config/gcn/gcn.c (gcn_expand_dpp_shr_insn): Increase buffer size.
32035 Support UNSPEC_MOV_DPP_SHR output formats.
32036 (gcn_expand_reduc_scalar): Add "use_moves" reductions.
32037 Add "use_extends" reductions.
32038 (print_operand_address): Add 'I' and 'U' codes.
32039 * config/gcn/gcn.md (unspec): Add UNSPEC_MOV_DPP_SHR.
32040
32041 2020-03-02 Martin Liska <mliska@suse.cz>
32042
32043 * lto-wrapper.c: Fix typo in comment about
32044 C++ standard version.
32045
32046 2020-03-01 Martin Sebor <msebor@redhat.com>
32047
32048 PR c++/92721
32049 * calls.c (init_attr_rdwr_indices): Correctly handle attribute.
32050
32051 2020-03-01 Martin Sebor <msebor@redhat.com>
32052
32053 PR middle-end/93829
32054 * tree-ssa-strlen.c (count_nonzero_bytes): Set the size to that
32055 of a pointer in the outermost ADDR_EXPRs.
32056
32057 2020-02-28 Jeff Law <law@redhat.com>
32058
32059 * config/v850/v850.h (STATIC_CHAIN_REGNUM): Change to r19.
32060 * config/v850/v850.c (v850_asm_trampoline_template): Update
32061 accordingly.
32062
32063 2020-02-28 Michael Meissner <meissner@linux.ibm.com>
32064
32065 PR target/93937
32066 * config/rs6000/vsx.md (vsx_extract_<mode>_<VS_scalar>mode_var):
32067 Delete insn.
32068
32069 2020-02-28 Martin Liska <mliska@suse.cz>
32070
32071 PR other/93965
32072 * configure.ac: Improve detection of ld_date by requiring
32073 either two dashes or none.
32074 * configure: Regenerate.
32075
32076 2020-02-28 Vladimir Makarov <vmakarov@redhat.com>
32077
32078 PR rtl-optimization/93564
32079 * ira-color.c (assign_hard_reg): Prefer smaller hard regno when we
32080 do not honor reg alloc order.
32081
32082 2020-02-27 Joel Hutton <Joel.Hutton@arm.com>
32083
32084 PR target/87612
32085 * config/aarch64/aarch64.c (aarch64_override_options): Fix
32086 misleading warning string.
32087
32088 2020-02-27 Martin Sebor <msebor@redhat.com>
32089
32090 * doc/invoke.texi (-Wbuiltin-declaration-mismatch): Fix a typo.
32091
32092 2020-02-27 Michael Meissner <meissner@linux.ibm.com>
32093
32094 PR target/93932
32095 * config/rs6000/vsx.md (vsx_extract_<mode>_var, VSX_D iterator):
32096 Split the insn into two parts. This insn only does variable
32097 extract from a register.
32098 (vsx_extract_<mode>_var_load, VSX_D iterator): New insn, do
32099 variable extract from memory.
32100 (vsx_extract_v4sf_var): Split the insn into two parts. This insn
32101 only does variable extract from a register.
32102 (vsx_extract_v4sf_var_load): New insn, do variable extract from
32103 memory.
32104 (vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): Split the insn
32105 into two parts. This insn only does variable extract from a
32106 register.
32107 (vsx_extract_<mode>_var_load, VSX_EXTRACT_I iterator): New insn,
32108 do variable extract from memory.
32109
32110 2020-02-27 Martin Jambor <mjambor@suse.cz>
32111 Feng Xue <fxue@os.amperecomputing.com>
32112
32113 PR ipa/93707
32114 * ipa-cp.c (same_node_or_its_all_contexts_clone_p): Replaced with
32115 new function calls_same_node_or_its_all_contexts_clone_p.
32116 (cgraph_edge_brings_value_p): Use it.
32117 (cgraph_edge_brings_value_p): Likewise.
32118 (self_recursive_pass_through_p): Return false if caller is a clone.
32119 (self_recursive_agg_pass_through_p): Likewise.
32120
32121 2020-02-27 Jan Hubicka <hubicka@ucw.cz>
32122
32123 PR middle-end/92152
32124 * alias.c (ends_tbaa_access_path_p): Break out from ...
32125 (component_uses_parent_alias_set_from): ... here.
32126 * alias.h (ends_tbaa_access_path_p): Declare.
32127 * tree-ssa-alias.c (access_path_may_continue_p): Break out from ...;
32128 handle trailing arrays past end of tbaa access path.
32129 (aliasing_component_refs_p): ... here; likewise.
32130 (nonoverlapping_refs_since_match_p): Track TBAA segment of the access
32131 path; disambiguate also past end of it.
32132 (nonoverlapping_component_refs_p): Use only TBAA segment of the access
32133 path.
32134
32135 2020-02-27 Mihail Ionescu <mihail.ionescu@arm.com>
32136
32137 * (__ARM_NUM_LANES, __arm_lane, __arm_lane_q): Move to the
32138 beginning of the file.
32139 (vcreate_bf16, vcombine_bf16): New.
32140 (vdup_n_bf16, vdupq_n_bf16): New.
32141 (vdup_lane_bf16, vdup_laneq_bf16): New.
32142 (vdupq_lane_bf16, vdupq_laneq_bf16): New.
32143 (vduph_lane_bf16, vduph_laneq_bf16): New.
32144 (vset_lane_bf16, vsetq_lane_bf16): New.
32145 (vget_lane_bf16, vgetq_lane_bf16): New.
32146 (vget_high_bf16, vget_low_bf16): New.
32147 (vreinterpret_bf16_u8, vreinterpretq_bf16_u8): New.
32148 (vreinterpret_bf16_u16, vreinterpretq_bf16_u16): New.
32149 (vreinterpret_bf16_u32, vreinterpretq_bf16_u32): New.
32150 (vreinterpret_bf16_u64, vreinterpretq_bf16_u64): New.
32151 (vreinterpret_bf16_s8, vreinterpretq_bf16_s8): New.
32152 (vreinterpret_bf16_s16, vreinterpretq_bf16_s16): New.
32153 (vreinterpret_bf16_s32, vreinterpretq_bf16_s32): New.
32154 (vreinterpret_bf16_s64, vreinterpretq_bf16_s64): New.
32155 (vreinterpret_bf16_p8, vreinterpretq_bf16_p8): New.
32156 (vreinterpret_bf16_p16, vreinterpretq_bf16_p16): New.
32157 (vreinterpret_bf16_p64, vreinterpretq_bf16_p64): New.
32158 (vreinterpret_bf16_f32, vreinterpretq_bf16_f32): New.
32159 (vreinterpret_bf16_f64, vreinterpretq_bf16_f64): New.
32160 (vreinterpretq_bf16_p128): New.
32161 (vreinterpret_s8_bf16, vreinterpretq_s8_bf16): New.
32162 (vreinterpret_s16_bf16, vreinterpretq_s16_bf16): New.
32163 (vreinterpret_s32_bf16, vreinterpretq_s32_bf16): New.
32164 (vreinterpret_s64_bf16, vreinterpretq_s64_bf16): New.
32165 (vreinterpret_u8_bf16, vreinterpretq_u8_bf16): New.
32166 (vreinterpret_u16_bf16, vreinterpretq_u16_bf16): New.
32167 (vreinterpret_u32_bf16, vreinterpretq_u32_bf16): New.
32168 (vreinterpret_u64_bf16, vreinterpretq_u64_bf16): New.
32169 (vreinterpret_p8_bf16, vreinterpretq_p8_bf16): New.
32170 (vreinterpret_p16_bf16, vreinterpretq_p16_bf16): New.
32171 (vreinterpret_p64_bf16, vreinterpretq_p64_bf16): New.
32172 (vreinterpret_f32_bf16, vreinterpretq_f32_bf16): New.
32173 (vreinterpretq_p128_bf16): New.
32174 * config/arm/arm_neon_builtins.def (VDX): Add V4BF.
32175 (V_elem): Likewise.
32176 (V_elem_l): Likewise.
32177 (VD_LANE): Likewise.
32178 (VQX) Add V8BF.
32179 (V_DOUBLE): Likewise.
32180 (VDQX): Add V4BF and V8BF.
32181 (V_two_elem, V_three_elem, V_four_elem): Likewise.
32182 (V_reg): Likewise.
32183 (V_HALF): Likewise.
32184 (V_double_vector_mode): Likewise.
32185 (V_cmp_result): Likewise.
32186 (V_uf_sclr): Likewise.
32187 (V_sz_elem): Likewise.
32188 (Is_d_reg): Likewise.
32189 (V_mode_nunits): Likewise.
32190 * config/arm/neon.md (neon_vdup_lane): Enable for BFloat16.
32191
32192 2020-02-27 Andrew Stubbs <ams@codesourcery.com>
32193
32194 * config/gcn/gcn-valu.md (VEC_SUBDWORD_MODE): New mode iterator.
32195 (<expander><mode>2<exec>): Change modes to VEC_ALL1REG_INT_MODE.
32196 (<expander><mode>3<exec>): Likewise.
32197 (<expander><mode>3): New.
32198 (v<expander><mode>3): New.
32199 (<expander><mode>3): New.
32200 (<expander><mode>3<exec>): Rename to ...
32201 (<expander>v64si3<exec>): ... this, and change modes to V64SI.
32202 * config/gcn/gcn.md (mnemonic): Use '%B' for not.
32203
32204 2020-02-27 Alexandre Oliva <oliva@adacore.com>
32205
32206 * config/vx-common.h (NO_DOLLAR_IN_LABEL, NO_DOT_IN_LABEL): Leave
32207 them alone on vx7.
32208
32209 2020-02-27 Richard Biener <rguenther@suse.de>
32210
32211 PR tree-optimization/93508
32212 * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle _CHK like
32213 non-_CHK variants. Valueize their length arguments.
32214
32215 2020-02-27 Richard Biener <rguenther@suse.de>
32216
32217 PR tree-optimization/93953
32218 * tree-vect-slp.c (slp_copy_subtree): Avoid keeping a reference
32219 to the hash-map entry.
32220
32221 2020-02-27 Andrew Stubbs <ams@codesourcery.com>
32222
32223 * config/gcn/gcn.md (mov<mode>): Add transformations for BI subregs.
32224
32225 2020-02-27 Mark Williams <mwilliams@fb.com>
32226
32227 * dwarf2out.c (file_name_acquire): Call remap_debug_filename.
32228 * lto-opts.c (lto_write_options): Drop -fdebug-prefix-map,
32229 -ffile-prefix-map and -fmacro-prefix-map.
32230 * lto-streamer-out.c: Include file-prefix-map.h.
32231 (lto_output_location): Remap the file part of locations.
32232
32233 2020-02-27 Jakub Jelinek <jakub@redhat.com>
32234
32235 PR c/93949
32236 * gimplify.c (gimplify_init_constructor): Don't promote readonly
32237 DECL_REGISTER variables to TREE_STATIC.
32238
32239 PR tree-optimization/93582
32240 PR tree-optimization/93945
32241 * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle memset with
32242 non-zero INTEGER_CST second argument and ref->offset or ref->size
32243 not a multiple of BITS_PER_UNIT.
32244
32245 2020-02-27 Jonathan Wakely <jwakely@redhat.com>
32246
32247 * doc/install.texi (Binaries): Update description of BullFreeware.
32248
32249 2020-02-26 Sandra Loosemore <sandra@codesourcery.com>
32250
32251 PR c++/90467
32252
32253 * doc/invoke.texi (Option Summary): Re-alphabetize warnings in
32254 C++ Language Options, Warning Options, and Static Analyzer
32255 Options lists. Document negative form of options enabled by
32256 default. Move some things around to more accurately sort
32257 warnings by category.
32258 (C++ Dialect Options, Warning Options, Static Analyzer
32259 Options): Document negative form of options when enabled by
32260 default. Move some things around to more accurately sort
32261 warnings by category. Add some missing index entries.
32262 Light copy-editing.
32263
32264 2020-02-26 Carl Love <cel@us.ibm.com>
32265
32266 PR target/91276
32267 * doc/extend.texi (PowerPC AltiVec Built-in Functions available on
32268 ISA 2.07): The builtin-function name __builtin_crypto_vpmsumb is only
32269 for the vector unsigned short arguments. It is also listed as the
32270 name of the built-in for arguments vector unsigned short,
32271 vector unsigned int and vector unsigned long long built-ins. The
32272 name of the builtins for these arguments should be:
32273 __builtin_crypto_vpmsumh, __builtin_crypto_vpmsumw and
32274 __builtin_crypto_vpmsumd respectively.
32275
32276 2020-02-26 Richard Biener <rguenther@suse.de>
32277
32278 * tree-vect-slp.c (vect_print_slp_tree): Also dump ref count
32279 and load permutation.
32280
32281 2020-02-26 Richard Sandiford <richard.sandiford@arm.com>
32282
32283 PR middle-end/93843
32284 * optabs-tree.c (supportable_convert_operation): Reject types with
32285 scalar modes.
32286
32287 2020-02-26 David Malcolm <dmalcolm@redhat.com>
32288
32289 * Makefile.in (ANALYZER_OBJS): Add analyzer/bar-chart.o.
32290
32291 2020-02-26 Jakub Jelinek <jakub@redhat.com>
32292
32293 PR tree-optimization/93820
32294 * gimple-ssa-store-merging.c (check_no_overlap): Change RHS_CODE
32295 argument to ALL_INTEGER_CST_P boolean.
32296 (imm_store_chain_info::try_coalesce_bswap): Adjust caller.
32297 (imm_store_chain_info::coalesce_immediate_stores): Likewise. Handle
32298 adjacent INTEGER_CST store into merged_store->only_constants like
32299 overlapping one.
32300
32301 2020-02-25 Jakub Jelinek <jakub@redhat.com>
32302
32303 PR other/93912
32304 * config/sh/sh.c (expand_cbranchdi4): Fix comment typo, probablity
32305 -> probability.
32306 * cfghooks.c (verify_flow_info): Likewise.
32307 * predict.c (combine_predictions_for_bb): Likewise.
32308 * bb-reorder.c (connect_better_edge_p): Likewise. Fix comment typo,
32309 sucessor -> successor.
32310 (find_traces_1_round): Fix comment typo, destinarion -> destination.
32311 * omp-expand.c (expand_oacc_for): Fix comment typo, sucessors ->
32312 successors.
32313 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Fix dump
32314 message typo, sucessors -> successors.
32315
32316 2020-02-25 Martin Sebor <msebor@redhat.com>
32317
32318 * doc/extend.texi (attribute access): Correct an example.
32319
32320 2020-02-25 Mihail Ionescu <mihail.ionescu@arm.com>
32321
32322 * config/aarch64/aarch64-builtins.c (aarch64_scalar_builtin_types):
32323 Add simd_bf.
32324 (aarch64_init_simd_builtin_scalar_types): Register simd_bf.
32325 (VAR15, VAR16): New.
32326 * config/aarch64/iterators.md (VALLDIF): Enable for V4BF and V8BF.
32327 (VD): Enable for V4BF.
32328 (VDC): Likewise.
32329 (VQ): Enable for V8BF.
32330 (VQ2): Likewise.
32331 (VQ_NO2E): Likewise.
32332 (VDBL, Vdbl): Add V4BF.
32333 (V_INT_EQUIV, v_int_equiv): Add V4BF and V8BF.
32334 * config/aarch64/arm_neon.h (bfloat16x4x2_t): New typedef.
32335 (bfloat16x8x2_t): Likewise.
32336 (bfloat16x4x3_t): Likewise.
32337 (bfloat16x8x3_t): Likewise.
32338 (bfloat16x4x4_t): Likewise.
32339 (bfloat16x8x4_t): Likewise.
32340 (vcombine_bf16): New.
32341 (vld1_bf16, vld1_bf16_x2): New.
32342 (vld1_bf16_x3, vld1_bf16_x4): New.
32343 (vld1q_bf16, vld1q_bf16_x2): New.
32344 (vld1q_bf16_x3, vld1q_bf16_x4): New.
32345 (vld1_lane_bf16): New.
32346 (vld1q_lane_bf16): New.
32347 (vld1_dup_bf16): New.
32348 (vld1q_dup_bf16): New.
32349 (vld2_bf16): New.
32350 (vld2q_bf16): New.
32351 (vld2_dup_bf16): New.
32352 (vld2q_dup_bf16): New.
32353 (vld3_bf16): New.
32354 (vld3q_bf16): New.
32355 (vld3_dup_bf16): New.
32356 (vld3q_dup_bf16): New.
32357 (vld4_bf16): New.
32358 (vld4q_bf16): New.
32359 (vld4_dup_bf16): New.
32360 (vld4q_dup_bf16): New.
32361 (vst1_bf16, vst1_bf16_x2): New.
32362 (vst1_bf16_x3, vst1_bf16_x4): New.
32363 (vst1q_bf16, vst1q_bf16_x2): New.
32364 (vst1q_bf16_x3, vst1q_bf16_x4): New.
32365 (vst1_lane_bf16): New.
32366 (vst1q_lane_bf16): New.
32367 (vst2_bf16): New.
32368 (vst2q_bf16): New.
32369 (vst3_bf16): New.
32370 (vst3q_bf16): New.
32371 (vst4_bf16): New.
32372 (vst4q_bf16): New.
32373
32374 2020-02-25 Mihail Ionescu <mihail.ionescu@arm.com>
32375
32376 * config/aarch64/iterators.md (VDQF_F16) Add V4BF and V8BF.
32377 (VALL_F16): Likewise.
32378 (VALLDI_F16): Likewise.
32379 (Vtype): Likewise.
32380 (Vetype): Likewise.
32381 (vswap_width_name): Likewise.
32382 (VSWAP_WIDTH): Likewise.
32383 (Vel): Likewise.
32384 (VEL): Likewise.
32385 (q): Likewise.
32386 * config/aarch64/arm_neon.h (vset_lane_bf16, vsetq_lane_bf16): New.
32387 (vget_lane_bf16, vgetq_lane_bf16): New.
32388 (vcreate_bf16): New.
32389 (vdup_n_bf16, vdupq_n_bf16): New.
32390 (vdup_lane_bf16, vdup_laneq_bf16): New.
32391 (vdupq_lane_bf16, vdupq_laneq_bf16): New.
32392 (vduph_lane_bf16, vduph_laneq_bf16): New.
32393 (vreinterpret_bf16_u8, vreinterpretq_bf16_u8): New.
32394 (vreinterpret_bf16_u16, vreinterpretq_bf16_u16): New.
32395 (vreinterpret_bf16_u32, vreinterpretq_bf16_u32): New.
32396 (vreinterpret_bf16_u64, vreinterpretq_bf16_u64): New.
32397 (vreinterpret_bf16_s8, vreinterpretq_bf16_s8): New.
32398 (vreinterpret_bf16_s16, vreinterpretq_bf16_s16): New.
32399 (vreinterpret_bf16_s32, vreinterpretq_bf16_s32): New.
32400 (vreinterpret_bf16_s64, vreinterpretq_bf16_s64): New.
32401 (vreinterpret_bf16_p8, vreinterpretq_bf16_p8): New.
32402 (vreinterpret_bf16_p16, vreinterpretq_bf16_p16): New.
32403 (vreinterpret_bf16_p64, vreinterpretq_bf16_p64): New
32404 (vreinterpret_bf16_f16, vreinterpretq_bf16_f16): New
32405 (vreinterpret_bf16_f32, vreinterpretq_bf16_f32): New.
32406 (vreinterpret_bf16_f64, vreinterpretq_bf16_f64): New.
32407 (vreinterpretq_bf16_p128): New.
32408 (vreinterpret_s8_bf16, vreinterpretq_s8_bf16): New.
32409 (vreinterpret_s16_bf16, vreinterpretq_s16_bf16): New.
32410 (vreinterpret_s32_bf16, vreinterpretq_s32_bf16): New.
32411 (vreinterpret_s64_bf16, vreinterpretq_s64_bf16): New.
32412 (vreinterpret_u8_bf16, vreinterpretq_u8_bf16): New.
32413 (vreinterpret_u16_bf16, vreinterpretq_u16_bf16): New.
32414 (vreinterpret_u32_bf16, vreinterpretq_u32_bf16): New.
32415 (vreinterpret_u64_bf16, vreinterpretq_u64_bf16): New.
32416 (vreinterpret_p8_bf16, vreinterpretq_p8_bf16): New.
32417 (vreinterpret_p16_bf16, vreinterpretq_p16_bf16): New.
32418 (vreinterpret_p64_bf16, vreinterpretq_p64_bf16): New.
32419 (vreinterpret_f32_bf16, vreinterpretq_f32_bf16): New.
32420 (vreinterpret_f64_bf16,vreinterpretq_f64_bf16): New.
32421 (vreinterpret_f16_bf16,vreinterpretq_f16_bf16): New.
32422 (vreinterpretq_p128_bf16): New.
32423
32424 2020-02-25 Dennis Zhang <dennis.zhang@arm.com>
32425
32426 * config/arm/arm_neon.h (vbfdot_f32, vbfdotq_f32): New
32427 (vbfdot_lane_f32, vbfdotq_laneq_f32): New.
32428 (vbfdot_laneq_f32, vbfdotq_lane_f32): New.
32429 * config/arm/arm_neon_builtins.def (vbfdot): New entry.
32430 (vbfdot_lanev4bf, vbfdot_lanev8bf): Likewise.
32431 * config/arm/iterators.md (VSF2BF): New attribute.
32432 * config/arm/neon.md (neon_vbfdot<VCVTF:mode>): New entry.
32433 (neon_vbfdot_lanev4bf<VCVTF:mode>): Likewise.
32434 (neon_vbfdot_lanev8bf<VCVTF:mode>): Likewise.
32435
32436 2020-02-25 Christophe Lyon <christophe.lyon@linaro.org>
32437
32438 * config/arm/arm.md (required_for_purecode): New attribute.
32439 (enabled): Handle required_for_purecode.
32440 * config/arm/thumb1.md (thumb1_movsi_insn): Add alternative to
32441 work with -mpure-code.
32442
32443 2020-02-25 Jakub Jelinek <jakub@redhat.com>
32444
32445 PR rtl-optimization/93908
32446 * combine.c (find_split_point): For store into ZERO_EXTRACT, and src
32447 with mask.
32448
32449 2019-02-25 Eric Botcazou <ebotcazou@adacore.com>
32450
32451 * dwarf2out.c (dwarf2out_size_function): Run in early-DWARF mode.
32452
32453 2020-02-25 Roman Zhuykov <zhroma@ispras.ru>
32454
32455 * doc/install.texi (--enable-checking): Adjust wording.
32456
32457 2020-02-25 Richard Biener <rguenther@suse.de>
32458
32459 PR tree-optimization/93868
32460 * tree-vect-slp.c (slp_copy_subtree): New function.
32461 (vect_attempt_slp_rearrange_stmts): Copy the SLP tree before
32462 re-arranging stmts in it.
32463
32464 2020-02-25 Jakub Jelinek <jakub@redhat.com>
32465
32466 PR middle-end/93874
32467 * passes.c (pass_manager::dump_passes): Create a cgraph node for the
32468 dummy function and remove it at the end.
32469
32470 PR translation/93864
32471 * config/lm32/lm32.c (lm32_setup_incoming_varargs): Fix comment typo
32472 paramter -> parameter.
32473 * config/aarch64/aarch64.c (aarch64_is_extend_from_extract): Likewise.
32474 * ipa-prop.h (struct ipa_agg_replacement_value): Likewise.
32475
32476 2020-02-24 Roman Zhuykov <zhroma@ispras.ru>
32477
32478 * doc/install.texi (--enable-checking): Properly document current
32479 behavior.
32480 (--enable-stage1-checking): Minor clarification about bootstrap.
32481
32482 2020-02-24 David Malcolm <dmalcolm@redhat.com>
32483
32484 PR analyzer/93032
32485 * doc/invoke.texi (-Wnanalyzer-tainted-array-index): Note that
32486 -fanalyzer-checker=taint is also required.
32487 (-fanalyzer-checker=): Note that providing this option enables the
32488 given checker, and doing so may be required for checkers that are
32489 disabled by default.
32490
32491 2020-02-24 David Malcolm <dmalcolm@redhat.com>
32492
32493 * doc/invoke.texi (-fanalyzer-verbosity=): "2" only shows
32494 significant control flow events; add a "3" which shows all
32495 control flow events; the old "3" becomes "4".
32496
32497 2020-02-24 Jakub Jelinek <jakub@redhat.com>
32498
32499 PR tree-optimization/93582
32500 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Consider
32501 pd.offset and pd.size to be counted in bits rather than bytes, add
32502 support for maxsizei that is not a multiple of BITS_PER_UNIT and
32503 handle bitfield stores and loads.
32504 (vn_reference_lookup_3): Don't call ranges_known_overlap_p with
32505 uncomparable quantities - bytes vs. bits. Allow push_partial_def
32506 on offsets/sizes that aren't multiple of BITS_PER_UNIT and adjust
32507 pd.offset/pd.size to be counted in bits rather than bytes.
32508 Formatting fix. Rename shadowed len variable to buflen.
32509
32510 2020-02-24 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
32511 Kugan Vivekandarajah <kugan.vivekanandarajah@linaro.org>
32512
32513 PR driver/47785
32514 * gcc.c (putenv_COLLECT_AS_OPTIONS): New function.
32515 (driver::main): Call putenv_COLLECT_AS_OPTIONS.
32516 * opts-common.c (parse_options_from_collect_gcc_options): New function.
32517 (prepend_xassembler_to_collect_as_options): Likewise.
32518 * opts.h (parse_options_from_collect_gcc_options): Declare prototype.
32519 (prepend_xassembler_to_collect_as_options): Likewise.
32520 * lto-opts.c (lto_write_options): Stream assembler options
32521 in COLLECT_AS_OPTIONS.
32522 * lto-wrapper.c (xassembler_options_error): New static variable.
32523 (get_options_from_collect_gcc_options): Move parsing options code to
32524 parse_options_from_collect_gcc_options and call it.
32525 (merge_and_complain): Validate -Xassembler options.
32526 (append_compiler_options): Handle OPT_Xassembler.
32527 (run_gcc): Append command line -Xassembler options to
32528 collect_gcc_options.
32529 * doc/invoke.texi: Add documentation about using Xassembler
32530 options with LTO.
32531
32532 2020-02-24 Kito Cheng <kito.cheng@sifive.com>
32533
32534 * config/riscv/riscv.c (riscv_emit_float_compare): Change the code gen
32535 for LTGT.
32536 (riscv_rtx_costs): Update cost model for LTGT.
32537
32538 2020-02-23 Vladimir Makarov <vmakarov@redhat.com>
32539
32540 PR rtl-optimization/93564
32541 * ira-color.c (struct update_cost_queue_elem): New member start.
32542 (queue_update_cost, get_next_update_cost): Add new arg start.
32543 (allocnos_conflict_p): New function.
32544 (update_costs_from_allocno): Add new arg conflict_cost_update_p.
32545 Add checking conflicts with allocnos_conflict_p.
32546 (update_costs_from_prefs, restore_costs_from_copies): Adjust
32547 update_costs_from_allocno calls.
32548 (update_conflict_hard_regno_costs): Add checking conflicts with
32549 allocnos_conflict_p. Adjust calls of queue_update_cost and
32550 get_next_update_cost.
32551 (assign_hard_reg): Adjust calls of queue_update_cost. Add
32552 debugging print.
32553 (bucket_allocno_compare_func): Restore previous version.
32554
32555 2020-02-21 John David Anglin <danglin@gcc.gnu.org>
32556
32557 * config/pa/pa.c (pa_function_value): Fix check for word and
32558 double-word size when handling aggregate return values.
32559 * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Fix to indicate
32560 that homogeneous SFmode and DFmode aggregates are passed and returned
32561 in general registers.
32562
32563 2020-02-21 Jakub Jelinek <jakub@redhat.com>
32564
32565 PR translation/93759
32566 * opts.c (print_filtered_help): Translate help before appending
32567 messages to it rather than after that.
32568
32569 2020-02-19 Richard Sandiford <richard.sandiford@arm.com>
32570
32571 PR rtl-optimization/PR92989
32572 * lra-lives.c (process_bb_lives): Restore the original order
32573 of the bb liveness update. Call make_hard_regno_dead for each
32574 register clobbered at the start of an EH receiver.
32575
32576 2020-02-18 Feng Xue <fxue@os.amperecomputing.com>
32577
32578 PR ipa/93763
32579 * ipa-cp.c (self_recursively_generated_p): Mark self-dependent value as
32580 self-recursively generated.
32581
32582 2020-02-21 Iain Sandoe <iain@sandoe.co.uk>
32583
32584 PR target/93860
32585 * config/darwin-c.c (pop_field_alignment): Adjust quoting of
32586 error string.
32587
32588 2020-02-21 Mihail Ionescu <mihail.ionescu@arm.com>
32589
32590 * doc/sourcebuild.texi (arm_v8_1m_mve_ok):
32591 Document new target supports option.
32592
32593 2020-02-21 Dennis Zhang <dennis.zhang@arm.com>
32594
32595 * config/arm/arm_neon.h (vmmlaq_s32, vmmlaq_u32, vusmmlaq_s32): New.
32596 * config/arm/arm_neon_builtins.def (smmla, ummla, usmmla): New.
32597 * config/arm/iterators.md (MATMUL): New iterator.
32598 (sup): Add UNSPEC_MATMUL_S, UNSPEC_MATMUL_U, and UNSPEC_MATMUL_US.
32599 (mmla_sfx): New attribute.
32600 * config/arm/neon.md (neon_<sup>mmlav16qi): New.
32601 * config/arm/unspecs.md (UNSPEC_MATMUL_S, UNSPEC_MATMUL_U): New.
32602 (UNSPEC_MATMUL_US): New.
32603
32604 2020-02-21 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
32605
32606 * config/arm/arm.md: Prevent scalar shifts from being used when big
32607 endian is enabled.
32608
32609 2020-02-21 Jan Hubicka <hubicka@ucw.cz>
32610 Richard Biener <rguenther@suse.de>
32611
32612 PR tree-optimization/93586
32613 * tree-ssa-alias.c (nonoverlapping_array_refs_p): Finish array walk
32614 after mismatched array refs; do not sure type size information to
32615 recover from unmatched referneces with !flag_strict_aliasing_p.
32616
32617 2020-02-21 Andrew Stubbs <ams@codesourcery.com>
32618
32619 * config/gcn/gcn-valu.md (gather_load<mode>): Rename to ...
32620 (gather_load<mode>v64si): ... this and set operand 2 to V64SI.
32621 (scatter_store<mode>): Rename to ...
32622 (scatter_store<mode>v64si): ... this and set operand 1 to V64SI.
32623 (scatter<mode>_exec): Delete. Move contents ...
32624 (mask_scatter_store<mode>): ... here, and rename that to ...
32625 (mask_gather_load<mode>v64si): ... this. Set operand 2 to V64SI.
32626 Remove mode conversion.
32627 (mask_gather_load<mode>): Rename to ...
32628 (mask_scatter_store<mode>v64si): ... this. Set operand 1 to V64SI.
32629 Remove mode conversion.
32630 * config/gcn/gcn.c (gcn_expand_scaled_offsets): Remove mode conversion.
32631
32632 2020-02-21 Martin Jambor <mjambor@suse.cz>
32633
32634 PR tree-optimization/93845
32635 * tree-sra.c (verify_sra_access_forest): Only test access size of
32636 scalar types.
32637
32638 2020-02-21 Andrew Stubbs <ams@codesourcery.com>
32639
32640 * config/gcn/gcn.c (gcn_hard_regno_mode_ok): Align VGPR pairs.
32641 * config/gcn/gcn-valu.md (addv64di3): Remove early-clobber.
32642 (addv64di3_exec): Likewise.
32643 (subv64di3): Likewise.
32644 (subv64di3_exec): Likewise.
32645 (addv64di3_zext): Likewise.
32646 (addv64di3_zext_exec): Likewise.
32647 (addv64di3_zext_dup): Likewise.
32648 (addv64di3_zext_dup_exec): Likewise.
32649 (addv64di3_zext_dup2): Likewise.
32650 (addv64di3_zext_dup2_exec): Likewise.
32651 (addv64di3_sext_dup2): Likewise.
32652 (addv64di3_sext_dup2_exec): Likewise.
32653 (<expander>v64di3): Likewise.
32654 (<expander>v64di3_exec): Likewise.
32655 (*<reduc_op>_dpp_shr_v64di): Likewise.
32656 (*plus_carry_dpp_shr_v64di): Likewise.
32657 * config/gcn/gcn.md (adddi3): Likewise.
32658 (addptrdi3): Likewise.
32659 (<expander>di3): Likewise.
32660
32661 2020-02-21 Andrew Stubbs <ams@codesourcery.com>
32662
32663 * config/gcn/gcn-valu.md (vec_seriesv64di): Use gen_vec_duplicatev64di.
32664
32665 2020-02-21 Richard Sandiford <richard.sandiford@arm.com>
32666
32667 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Add SVE
32668 support. Use aarch64_emit_mult instead of emitting multiplication
32669 instructions directly.
32670 * config/aarch64/aarch64-sve.md (sqrt<mode>2, rsqrt<mode>2)
32671 (@aarch64_rsqrte<mode>, @aarch64_rsqrts<mode>): New expanders.
32672
32673 2020-02-21 Richard Sandiford <richard.sandiford@arm.com>
32674
32675 * config/aarch64/aarch64.c (aarch64_emit_mult): New function.
32676 (aarch64_emit_approx_div): Add SVE support. Use aarch64_emit_mult
32677 instead of emitting multiplication instructions directly.
32678 * config/aarch64/iterators.md (SVE_COND_FP_BINARY_OPTAB): New iterator.
32679 * config/aarch64/aarch64-sve.md (div<mode>3, @aarch64_frecpe<mode>)
32680 (@aarch64_frecps<mode>): New expanders.
32681
32682 2020-02-21 Richard Sandiford <richard.sandiford@arm.com>
32683
32684 * config/aarch64/aarch64-protos.h (AARCH64_APPROX_MODE): Operate
32685 on and produce uint64_ts rather than ints.
32686 (AARCH64_APPROX_NONE, AARCH64_APPROX_ALL): Change to uint64_ts.
32687 (cpu_approx_modes): Change the fields from unsigned int to uint64_t.
32688
32689 2020-02-21 Richard Sandiford <richard.sandiford@arm.com>
32690
32691 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Don't create
32692 an unused xmsk register when handling approximate rsqrt.
32693
32694 2020-02-21 Richard Sandiford <richard.sandiford@arm.com>
32695
32696 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Fix inverted
32697 flag_finite_math_only condition.
32698
32699 2020-02-20 Uroš Bizjak <ubizjak@gmail.com>
32700
32701 PR target/93828
32702 * config/i386/mmx.md (*vec_extractv2sf_1): Match source operand
32703 to destination operand for shufps alternative.
32704 (*vec_extractv2si_1): Ditto.
32705
32706 2020-02-20 Peter Bergner <bergner@linux.ibm.com>
32707
32708 PR target/93658
32709 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Handle VSX
32710 vector modes.
32711
32712 2020-02-20 Martin Liska <mliska@suse.cz>
32713
32714 PR translation/93831
32715 * config/darwin.c (darwin_override_options): Change 64b to 64-bit mode.
32716
32717 2020-02-20 Martin Liska <mliska@suse.cz>
32718
32719 PR translation/93830
32720 * common/config/avr/avr-common.c: Remote trailing "|".
32721
32722 2020-02-19 Bernd Edlinger <bernd.edlinger@hotmail.de>
32723
32724 * collect2.c (maybe_run_lto_and_relink): Fix typo in
32725 comment.
32726
32727 2020-02-19 Richard Sandiford <richard.sandiford@arm.com>
32728
32729 PR tree-optimization/93767
32730 * tree-vect-data-refs.c (vect_compile_time_alias): Remove the
32731 access-size bias from the offset calculations for negative strides.
32732
32733 2020-02-19 Bernd Edlinger <bernd.edlinger@hotmail.de>
32734
32735 * collect2.c (c_file, o_file): Make const again.
32736 (ldout,lderrout, dump_ld_file): Remove.
32737 (tool_cleanup): Avoid calling not signal-safe functions.
32738 (maybe_run_lto_and_relink): Avoid possible signal handler
32739 access to unintialzed memory (lto_o_files).
32740 (main): Avoid leaking temp files in $TMPDIR.
32741 Initialize c_file/o_file with concat, which avoids exposing
32742 uninitialized memory to signal handler, which calls unlink(!).
32743 Avoid calling maybe_unlink when the main function returns,
32744 since the atexit handler is already doing this.
32745 * collect2.h (dump_ld_file, ldout, lderrout): Remove.
32746
32747 2020-02-19 Martin Jambor <mjambor@suse.cz>
32748
32749 PR tree-optimization/93776
32750 * tree-sra.c (create_access): Do not create zero size accesses.
32751 (get_access_for_expr): Do not search for zero sized accesses.
32752
32753 2020-02-19 Martin Jambor <mjambor@suse.cz>
32754
32755 PR tree-optimization/93667
32756 * tree-sra.c (scalarizable_type_p): Return false if record fields
32757 do not follow wach other.
32758
32759 2020-01-21 Kito Cheng <kito.cheng@sifive.com>
32760
32761 * config/riscv/riscv.c (riscv_output_move) Using fmv.x.w/fmv.w.x
32762 rather than fmv.x.s/fmv.s.x.
32763
32764 2020-02-18 James Greenhalgh <james.greenhalgh@arm.com>
32765
32766 * config/aarch64/aarch64-simd-builtins.def
32767 (intrinsic_vec_smult_lo_): New.
32768 (intrinsic_vec_umult_lo_): Likewise.
32769 (vec_widen_smult_hi_): Likewise.
32770 (vec_widen_umult_hi_): Likewise.
32771 * config/aarch64/aarch64-simd.md
32772 (aarch64_intrinsic_vec_<su>mult_lo_<mode>): New.
32773 * config/aarch64/arm_neon.h (vmull_high_s8): Use intrinsics.
32774 (vmull_high_s16): Likewise.
32775 (vmull_high_s32): Likewise.
32776 (vmull_high_u8): Likewise.
32777 (vmull_high_u16): Likewise.
32778 (vmull_high_u32): Likewise.
32779 (vmull_s8): Likewise.
32780 (vmull_s16): Likewise.
32781 (vmull_s32): Likewise.
32782 (vmull_u8): Likewise.
32783 (vmull_u16): Likewise.
32784 (vmull_u32): Likewise.
32785
32786 2020-02-18 Martin Liska <mliska@suse.cz>
32787
32788 * value-prof.c (stream_out_histogram_value): Restore LTO PGO
32789 bootstrap by missing removal of invalid sanity check.
32790
32791 2020-02-18 Martin Liska <mliska@suse.cz>
32792
32793 PR ipa/92518
32794 * ipa-icf-gimple.c (func_checker::compare_gimple_assign):
32795 Always compare LHS of gimple_assign.
32796
32797 2020-02-18 Martin Liska <mliska@suse.cz>
32798
32799 PR ipa/93583
32800 * cgraph.c (cgraph_node::verify_node): Verify MALLOC attribute
32801 and return type of functions.
32802 * ipa-param-manipulation.c (ipa_param_adjustments::adjust_decl):
32803 Drop MALLOC attribute for void functions.
32804 * ipa-pure-const.c (funct_state_summary_t::duplicate): Drop
32805 malloc_state for a new VOID clone.
32806
32807 2020-02-18 Martin Liska <mliska@suse.cz>
32808
32809 PR ipa/92924
32810 * common.opt: Add -fprofile-reproducibility.
32811 * doc/invoke.texi: Document it.
32812 * value-prof.c (dump_histogram_value):
32813 Document and support behavior for counters[0]
32814 being a negative value.
32815 (get_nth_most_common_value): Handle negative
32816 counters[0] in respect to flag_profile_reproducible.
32817
32818 2020-02-18 Jakub Jelinek <jakub@redhat.com>
32819
32820 PR ipa/93797
32821 * cgraph.c (verify_speculative_call): Use speculative_id instead of
32822 speculative_uid in messages. Remove trailing whitespace from error
32823 message. Use num_speculative_call_targets instead of
32824 num_speculative_targets in a message.
32825 (cgraph_node::verify_node): Use call_stmt instead of cal_stmt in
32826 edge messages and stmt instead of cal_stmt in reference message.
32827
32828 PR tree-optimization/93780
32829 * tree-ssa.c (non_rewritable_lvalue_p): Check valid_vector_subparts_p
32830 before calling build_vector_type.
32831 (execute_update_addresses_taken): Likewise.
32832
32833 PR driver/93796
32834 * params.opt (-param=ipa-max-switch-predicate-bounds=): Fix help
32835 typo, functoin -> function.
32836 * tree.c (free_lang_data_in_decl): Fix comment typo,
32837 functoin -> function.
32838 * ipa-visibility.c (cgraph_externally_visible_p): Likewise.
32839
32840 2020-02-17 David Malcolm <dmalcolm@redhat.com>
32841
32842 * diagnostic.c (print_any_cwe): Don't call get_cwe_url if URLs
32843 won't be printed.
32844 (print_option_information): Don't call get_option_url if URLs
32845 won't be printed.
32846
32847 2020-02-17 Alexandre Oliva <oliva@adacore.com>
32848
32849 * tree-emutls.c (new_emutls_decl, emutls_common_1): Complete
32850 handling of register_common-less targets.
32851
32852 2020-02-17 Martin Liska <mliska@suse.cz>
32853
32854 PR ipa/93760
32855 * ipa-devirt.c (odr_types_equivalent_p): Fix grammar.
32856
32857 2020-02-17 Martin Liska <mliska@suse.cz>
32858
32859 PR translation/93755
32860 * config/rs6000/rs6000.c (rs6000_option_override_internal):
32861 Fix double quotes.
32862
32863 2020-02-17 Martin Liska <mliska@suse.cz>
32864
32865 PR other/93756
32866 * config/rx/elf.opt: Fix typo.
32867
32868 2020-02-17 Richard Biener <rguenther@suse.de>
32869
32870 PR c/86134
32871 * opts-global.c (print_ignored_options): Use inform and
32872 amend message.
32873
32874 2020-02-17 Jiufu Guo <guojiufu@linux.ibm.com>
32875
32876 PR target/93047
32877 * config/rs6000/rs6000.md (untyped_call): Add emit_clobber.
32878
32879 2020-02-16 Uroš Bizjak <ubizjak@gmail.com>
32880
32881 PR target/93743
32882 * config/i386/i386.md (atan2xf3): Swap operands 1 and 2.
32883 (atan2<mode>3): Update operand order in the call to gen_atan2xf3.
32884
32885 2020-02-15 Jason Merrill <jason@redhat.com>
32886
32887 * doc/invoke.texi (C Dialect Options): Add -std=c++20.
32888
32889 2020-02-15 Jakub Jelinek <jakub@redhat.com>
32890
32891 PR tree-optimization/93744
32892 * match.pd (((m1 >/</>=/<= m2) * d -> (m1 >/</>=/<= m2) ? d : 0,
32893 A - ((A - B) & -(C cmp D)) -> (C cmp D) ? B : A,
32894 A + ((B - A) & -(C cmp D)) -> (C cmp D) ? B : A): For GENERIC, make
32895 sure @2 in the first and @1 in the other patterns has no side-effects.
32896
32897 2020-02-15 David Malcolm <dmalcolm@redhat.com>
32898 Bernd Edlinger <bernd.edlinger@hotmail.de>
32899
32900 PR 87488
32901 PR other/93168
32902 * config.in (DIAGNOSTICS_URLS_DEFAULT): New define.
32903 * configure.ac (--with-diagnostics-urls): New configuration
32904 option, based on --with-diagnostics-color.
32905 (DIAGNOSTICS_URLS_DEFAULT): New define.
32906 * config.h: Regenerate.
32907 * configure: Regenerate.
32908 * diagnostic.c (diagnostic_urls_init): Handle -1 for
32909 DIAGNOSTICS_URLS_DEFAULT from configure-time
32910 --with-diagnostics-urls=auto-if-env by querying for a GCC_URLS
32911 and TERM_URLS environment variable.
32912 * diagnostic-url.h (diagnostic_url_format): New enum type.
32913 (diagnostic_urls_enabled_p): rename to...
32914 (determine_url_format): ... this, and change return type.
32915 * diagnostic-color.c (parse_env_vars_for_urls): New helper function.
32916 (auto_enable_urls): Disable URLs on xfce4-terminal, gnome-terminal,
32917 the linux console, and mingw.
32918 (diagnostic_urls_enabled_p): rename to...
32919 (determine_url_format): ... this, and adjust.
32920 * pretty-print.h (pretty_printer::show_urls): rename to...
32921 (pretty_printer::url_format): ... this, and change to enum.
32922 * pretty-print.c (pretty_printer::pretty_printer,
32923 pp_begin_url, pp_end_url, test_urls): Adjust.
32924 * doc/install.texi (--with-diagnostics-urls): Document the new
32925 configuration option.
32926 (--with-diagnostics-color): Document the existing interaction
32927 with GCC_COLORS better.
32928 * doc/invoke.texi (-fdiagnostics-urls): Add GCC_URLS and TERM_URLS
32929 vindex reference. Update description of defaults based on the above.
32930 (-fdiagnostics-color): Update description of how -fdiagnostics-color
32931 interacts with GCC_COLORS.
32932
32933 2020-02-14 Eric Botcazou <ebotcazou@adacore.com>
32934
32935 PR target/93704
32936 * config/sparc/sparc.c (eligible_for_call_delay): Test HAVE_GNU_LD in
32937 conjunction with TARGET_GNU_TLS in early return.
32938
32939 2020-02-14 Alexander Monakov <amonakov@ispras.ru>
32940
32941 * rtlanal.c (rtx_cost): Handle a SET up front. Avoid division if
32942 the mode is not wider than UNITS_PER_WORD.
32943
32944 2020-02-14 Martin Jambor <mjambor@suse.cz>
32945
32946 PR tree-optimization/93516
32947 * tree-sra.c (propagate_subaccesses_from_rhs): Do not create
32948 access of the same type as the parent.
32949 (propagate_subaccesses_from_lhs): Likewise.
32950
32951 2020-02-14 Hongtao Liu <hongtao.liu@intel.com>
32952
32953 PR target/93724
32954 * config/i386/avx512vbmi2intrin.h
32955 (_mm512_shrdi_epi16, _mm512_mask_shrdi_epi16,
32956 _mm512_maskz_shrdi_epi16, _mm512_shrdi_epi32,
32957 _mm512_mask_shrdi_epi32, _mm512_maskz_shrdi_epi32,
32958 _m512_shrdi_epi64, _m512_mask_shrdi_epi64,
32959 _m512_maskz_shrdi_epi64, _mm512_shldi_epi16,
32960 _mm512_mask_shldi_epi16, _mm512_maskz_shldi_epi16,
32961 _mm512_shldi_epi32, _mm512_mask_shldi_epi32,
32962 _mm512_maskz_shldi_epi32, _mm512_shldi_epi64,
32963 _mm512_mask_shldi_epi64, _mm512_maskz_shldi_epi64): Fix typo
32964 of lacking a closing parenthesis.
32965 * config/i386/avx512vbmi2vlintrin.h
32966 (_mm256_shrdi_epi16, _mm256_mask_shrdi_epi16,
32967 _mm256_maskz_shrdi_epi16, _mm256_shrdi_epi32,
32968 _mm256_mask_shrdi_epi32, _mm256_maskz_shrdi_epi32,
32969 _m256_shrdi_epi64, _m256_mask_shrdi_epi64,
32970 _m256_maskz_shrdi_epi64, _mm256_shldi_epi16,
32971 _mm256_mask_shldi_epi16, _mm256_maskz_shldi_epi16,
32972 _mm256_shldi_epi32, _mm256_mask_shldi_epi32,
32973 _mm256_maskz_shldi_epi32, _mm256_shldi_epi64,
32974 _mm256_mask_shldi_epi64, _mm256_maskz_shldi_epi64,
32975 _mm_shrdi_epi16, _mm_mask_shrdi_epi16,
32976 _mm_maskz_shrdi_epi16, _mm_shrdi_epi32,
32977 _mm_mask_shrdi_epi32, _mm_maskz_shrdi_epi32,
32978 _mm_shrdi_epi64, _mm_mask_shrdi_epi64,
32979 _m_maskz_shrdi_epi64, _mm_shldi_epi16,
32980 _mm_mask_shldi_epi16, _mm_maskz_shldi_epi16,
32981 _mm_shldi_epi32, _mm_mask_shldi_epi32,
32982 _mm_maskz_shldi_epi32, _mm_shldi_epi64,
32983 _mm_mask_shldi_epi64, _mm_maskz_shldi_epi64): Ditto.
32984
32985 2020-02-13 H.J. Lu <hongjiu.lu@intel.com>
32986
32987 PR target/93656
32988 * config/i386/i386.c (ix86_trampoline_init): Skip ENDBR32 at
32989 the target function entry.
32990
32991 2020-02-13 Claudiu Zissulescu <claziss@synopsys.com>
32992
32993 * common/config/arc/arc-common.c (arc_option_optimization_table):
32994 Disable if-conversion step when optimized for size.
32995
32996 2020-02-13 Claudiu Zissulescu <claziss@synopsys.com>
32997
32998 * config/arc/arc.c (arc_conditional_register_usage): R0-R3 and
32999 R12-R15 are always in ARCOMPACT16_REGS register class.
33000 * config/arc/arc.opt (mq-class): Deprecate.
33001 * config/arc/constraint.md ("q"): Remove dependency on mq-class
33002 option.
33003 * doc/invoke.texi (mq-class): Update text.
33004 * common/config/arc/arc-common.c (arc_option_optimization_table):
33005 Update list.
33006
33007 2020-02-13 Claudiu Zissulescu <claziss@synopsys.com>
33008
33009 * config/arc/arc.c (arc_insn_cost): New function.
33010 (TARGET_INSN_COST): Define.
33011 * config/arc/arc.md (cost): New attribute.
33012 (add_n): Use arc_nonmemory_operand.
33013 (ashlsi3_insn): Likewise, also update constraints.
33014 (ashrsi3_insn): Likewise.
33015 (rotrsi3): Likewise.
33016 (add_shift): Likewise.
33017 * config/arc/predicates.md (arc_nonmemory_operand): New predicate.
33018
33019 2020-02-13 Claudiu Zissulescu <claziss@synopsys.com>
33020
33021 * config/arc/arc.md (mulsidi_600): Correctly select mlo/mhi
33022 registers.
33023 (umulsidi_600): Likewise.
33024
33025 2020-02-13 Jakub Jelinek <jakub@redhat.com>
33026
33027 PR target/93696
33028 * config/i386/avx512bitalgintrin.h (_mm512_mask_popcnt_epi8,
33029 _mm512_mask_popcnt_epi16, _mm256_mask_popcnt_epi8,
33030 _mm256_mask_popcnt_epi16, _mm_mask_popcnt_epi8,
33031 _mm_mask_popcnt_epi16): Rename __B argument to __A and __A to __W,
33032 pass __A to the builtin followed by __W instead of __A followed by
33033 __B.
33034 * config/i386/avx512vpopcntdqintrin.h (_mm512_mask_popcnt_epi32,
33035 _mm512_mask_popcnt_epi64): Likewise.
33036 * config/i386/avx512vpopcntdqvlintrin.h (_mm_mask_popcnt_epi32,
33037 _mm256_mask_popcnt_epi32, _mm_mask_popcnt_epi64,
33038 _mm256_mask_popcnt_epi64): Likewise.
33039
33040 PR tree-optimization/93582
33041 * fold-const.h (shift_bytes_in_array_left,
33042 shift_bytes_in_array_right): Declare.
33043 * fold-const.c (shift_bytes_in_array_left,
33044 shift_bytes_in_array_right): New function, moved from
33045 gimple-ssa-store-merging.c, no longer static.
33046 * gimple-ssa-store-merging.c (shift_bytes_in_array): Move
33047 to gimple-ssa-store-merging.c and rename to shift_bytes_in_array_left.
33048 (shift_bytes_in_array_right): Move to gimple-ssa-store-merging.c.
33049 (encode_tree_to_bitpos): Use shift_bytes_in_array_left instead of
33050 shift_bytes_in_array.
33051 (verify_shift_bytes_in_array): Rename to ...
33052 (verify_shift_bytes_in_array_left): ... this. Use
33053 shift_bytes_in_array_left instead of shift_bytes_in_array.
33054 (store_merging_c_tests): Call verify_shift_bytes_in_array_left
33055 instead of verify_shift_bytes_in_array.
33056 * tree-ssa-sccvn.c (vn_reference_lookup_3): For native_encode_expr
33057 / native_interpret_expr where the store covers all needed bits,
33058 punt on PDP-endian, otherwise allow all involved offsets and sizes
33059 not to be byte-aligned.
33060
33061 PR target/93673
33062 * config/i386/sse.md (k<code><mode>): Drop mode from last operand and
33063 use const_0_to_255_operand predicate instead of immediate_operand.
33064 (avx512dq_fpclass<mode><mask_scalar_merge_name>,
33065 avx512dq_vmfpclass<mode><mask_scalar_merge_name>,
33066 vgf2p8affineinvqb_<mode><mask_name>,
33067 vgf2p8affineqb_<mode><mask_name>): Drop mode from
33068 const_0_to_255_operand predicated operands.
33069
33070 2020-02-12 Jeff Law <law@redhat.com>
33071
33072 * config/h8300/h8300.md (comparison shortening peepholes): Use
33073 a mode iterator to merge the HImode and SImode peepholes.
33074
33075 2020-02-12 Jakub Jelinek <jakub@redhat.com>
33076
33077 PR middle-end/93663
33078 * real.c (is_even): Make static. Function comment fix.
33079 (is_halfway_below): Make static, don't assert R is not inf/nan,
33080 instead return false for those. Small formatting fixes.
33081
33082 2020-02-12 Martin Sebor <msebor@redhat.com>
33083
33084 PR middle-end/93646
33085 * tree-ssa-strlen.c (handle_builtin_stxncpy): Rename...
33086 (handle_builtin_stxncpy_strncat): ...to this. Change first argument.
33087 Issue only -Wstringop-overflow strncat, never -Wstringop-truncation.
33088 (strlen_check_and_optimize_call): Adjust callee name.
33089
33090 2020-02-12 Jeff Law <law@redhat.com>
33091
33092 * config/h8300/h8300.md (comparison shortening peepholes): Drop
33093 (and (xor)) variant. Combine other two into single peephole.
33094
33095 2020-02-12 Wilco Dijkstra <wdijkstr@arm.com>
33096
33097 PR rtl-optimization/93565
33098 * config/aarch64/aarch64.c (aarch64_rtx_costs): Add CTZ costs.
33099
33100 2020-02-12 Wilco Dijkstra <wdijkstr@arm.com>
33101
33102 * config/aarch64/aarch64-simd.md
33103 (aarch64_zero_extend<GPI:mode>_reduc_plus_<VDQV_E:mode>): New pattern.
33104 * config/aarch64/aarch64.md (popcount<mode>2): Use it instead of
33105 generating separate ADDV and zero_extend patterns.
33106 * config/aarch64/iterators.md (VDQV_E): New iterator.
33107
33108 2020-02-12 Jeff Law <law@redhat.com>
33109
33110 * config/h8300/h8300.md (cpymemsi, movmd): Remove dead patterns,
33111 expanders, splits, etc.
33112 (movmd_internal_<mode>, movmd splitter, movstr, movsd): Likewise.
33113 (stpcpy_internal_<mode>, stpcpy splitter): Likewise.
33114 (peepholes to convert QI/HI mode pushes to SI mode pushes): Likewise.
33115 * config/h8300/h8300.c (h8300_swap_into_er6): Remove unused function.
33116 (h8300_swap_out_of_er6, h8sx_emit_movmd): Likewise
33117 * config/h8300/h8300-protos.h (h8300_swap_into_er6): Remove unused
33118 function prototype.
33119 (h8300_swap_out_of_er6, h8sx_emit_movmd): Likewise.
33120
33121 2020-02-12 Jakub Jelinek <jakub@redhat.com>
33122
33123 PR target/93670
33124 * config/i386/sse.md (VI48F_256_DQ): New mode iterator.
33125 (avx512vl_vextractf128<mode>): Use it instead of VI48F_256. Remove
33126 TARGET_AVX512DQ from condition.
33127 (vec_extract_lo_<mode><mask_name>): Use <mask_avx512dq_condition>
33128 instead of <mask_mode512bit_condition> in condition. If
33129 TARGET_AVX512DQ is false, emit vextract*64x4 instead of
33130 vextract*32x8.
33131 (vec_extract_lo_<mode><mask_name>): Drop <mask_avx512dq_condition>
33132 from condition.
33133
33134 2020-02-12 Kewen Lin <linkw@gcc.gnu.org>
33135
33136 PR target/91052
33137 * ira.c (combine_and_move_insns): Skip multiple_sets def_insn.
33138
33139 2020-02-12 Segher Boessenkool <segher@kernel.crashing.org>
33140
33141 * config/rs6000/rs6000.c (rs6000_debug_print_mode): Don't use sizeof
33142 where strlen is more legible.
33143 (rs6000_builtin_vectorized_libmass): Ditto.
33144 (rs6000_print_options_internal): Ditto.
33145
33146 2020-02-11 Martin Sebor <msebor@redhat.com>
33147
33148 PR tree-optimization/93683
33149 * tree-ssa-alias.c (stmt_kills_ref_p): Avoid using LHS when not set.
33150
33151 2020-02-11 Michael Meissner <meissner@linux.ibm.com>
33152
33153 * config/rs6000/predicates.md (cint34_operand): Rename the
33154 -mprefixed-addr option to be -mprefixed.
33155 * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Rename
33156 the -mprefixed-addr option to be -mprefixed.
33157 (OTHER_FUTURE_MASKS): Likewise.
33158 (POWERPC_MASKS): Likewise.
33159 * config/rs6000/rs6000.c (rs6000_option_override_internal): Rename
33160 the -mprefixed-addr option to be -mprefixed. Change error
33161 messages to refer to -mprefixed.
33162 (num_insns_constant_gpr): Rename the -mprefixed-addr option to be
33163 -mprefixed.
33164 (rs6000_legitimate_offset_address_p): Likewise.
33165 (rs6000_mode_dependent_address): Likewise.
33166 (rs6000_opt_masks): Change the spelling of "-mprefixed-addr" to be
33167 "-mprefixed" for target attributes and pragmas.
33168 (address_to_insn_form): Rename the -mprefixed-addr option to be
33169 -mprefixed.
33170 (rs6000_adjust_insn_length): Likewise.
33171 * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Rename the
33172 -mprefixed-addr option to be -mprefixed.
33173 (ASM_OUTPUT_OPCODE): Likewise.
33174 * config/rs6000/rs6000.md (prefixed insn attribute): Rename the
33175 -mprefixed-addr option to be -mprefixed.
33176 * config/rs6000/rs6000.opt (-mprefixed): Rename the
33177 -mprefixed-addr option to be prefixed. Change the option from
33178 being undocumented to being documented.
33179 * doc/invoke.texi (RS/6000 and PowerPC Options): Document the
33180 -mprefixed option. Update the -mpcrel documentation to mention
33181 -mprefixed.
33182
33183 2020-02-11 Hans-Peter Nilsson <hp@axis.com>
33184
33185 * ira-conflicts.c (print_hard_reg_set): Correct output for sets
33186 including FIRST_PSEUDO_REGISTER - 1.
33187 * ira-color.c (print_hard_reg_set): Ditto.
33188
33189 2020-02-11 Stam Markianos-Wright <stam.markianos-wright@arm.com>
33190
33191 * config/arm/arm-builtins.c (enum arm_type_qualifiers):
33192 (USTERNOP_QUALIFIERS): New define.
33193 (USMAC_LANE_QUADTUP_QUALIFIERS): New define.
33194 (SUMAC_LANE_QUADTUP_QUALIFIERS): New define.
33195 (arm_expand_builtin_args): Add case ARG_BUILTIN_LANE_QUADTUP_INDEX.
33196 (arm_expand_builtin_1): Add qualifier_lane_quadtup_index.
33197 * config/arm/arm_neon.h (vusdot_s32): New.
33198 (vusdot_lane_s32): New.
33199 (vusdotq_lane_s32): New.
33200 (vsudot_lane_s32): New.
33201 (vsudotq_lane_s32): New.
33202 * config/arm/arm_neon_builtins.def (usdot, usdot_lane,sudot_lane): New.
33203 * config/arm/iterators.md (DOTPROD_I8MM): New.
33204 (sup, opsuffix): Add <us/su>.
33205 * config/arm/neon.md (neon_usdot, <us/su>dot_lane: New.
33206 * config/arm/unspecs.md (UNSPEC_DOT_US, UNSPEC_DOT_SU): New.
33207
33208 2020-02-11 Richard Biener <rguenther@suse.de>
33209
33210 PR tree-optimization/93661
33211 PR tree-optimization/93662
33212 * tree-ssa-sccvn.c (vn_reference_lookup_3): Properly guard
33213 tree_to_poly_int64.
33214 * tree-sra.c (get_access_for_expr): Likewise.
33215
33216 2020-02-10 Jakub Jelinek <jakub@redhat.com>
33217
33218 PR target/93637
33219 * config/i386/sse.md (VI_256_AVX2): New mode iterator.
33220 (vcond_mask_<mode><sseintvecmodelower>): Use it instead of VI_256.
33221 Change condition from TARGET_AVX2 to TARGET_AVX.
33222
33223 2020-02-10 Iain Sandoe <iain@sandoe.co.uk>
33224
33225 PR other/93641
33226 * config/darwin-c.c (darwin_cfstring_ref_p): Fix up last
33227 argument of strncmp.
33228
33229 2020-02-10 Hans-Peter Nilsson <hp@axis.com>
33230
33231 Try to generate zero-based comparisons.
33232 * config/cris/cris.c (cris_reduce_compare): New function.
33233 * config/cris/cris-protos.h (cris_reduce_compare): Add prototype.
33234 * config/cris/cris.md ("cbranch<mode>4", "cbranchdi4", "cstoredi4")
33235 (cstore<mode>4"): Apply cris_reduce_compare in expanders.
33236
33237 2020-02-10 Richard Earnshaw <rearnsha@arm.com>
33238
33239 PR target/91913
33240 * config/arm/arm.md (movsi_compare0): Allow SP as a source register
33241 in Thumb state and also as a destination in Arm state. Add T16
33242 variants.
33243
33244 2020-02-10 Hans-Peter Nilsson <hp@axis.com>
33245
33246 * md.texi (Define Subst): Match closing paren in example.
33247
33248 2020-02-10 Jakub Jelinek <jakub@redhat.com>
33249
33250 PR target/58218
33251 PR other/93641
33252 * config/i386/i386.c (x86_64_elf_section_type_flags): Fix up last
33253 arguments of strncmp.
33254
33255 2020-02-10 Feng Xue <fxue@os.amperecomputing.com>
33256
33257 PR ipa/93203
33258 * ipa-cp.c (ipcp_lattice::add_value): Add source with same call edge
33259 but different source value.
33260 (adjust_callers_for_value_intersection): New function.
33261 (gather_edges_for_value): Adjust order of callers to let a
33262 non-self-recursive caller be the first element.
33263 (self_recursive_pass_through_p): Add a new parameter "simple", and
33264 check generalized self-recursive pass-through jump function.
33265 (self_recursive_agg_pass_through_p): Likewise.
33266 (find_more_scalar_values_for_callers_subset): Compute value from
33267 pass-through jump function for self-recursive.
33268 (intersect_with_plats): Cleanup previous implementation code for value
33269 itersection with self-recursive call edge.
33270 (intersect_with_agg_replacements): Likewise.
33271 (intersect_aggregates_with_edge): Deduce value from pass-through jump
33272 function for self-recursive call edge. Cleanup previous implementation
33273 code for value intersection with self-recursive call edge.
33274 (decide_whether_version_node): Remove dead callers and adjust order
33275 to let a non-self-recursive caller be the first element.
33276
33277 2020-02-09 Uroš Bizjak <ubizjak@gmail.com>
33278
33279 * recog.c: Move pass_split_before_sched2 code in front of
33280 pass_split_before_regstack.
33281 (pass_data_split_before_sched2): Rename pass to split3 from split4.
33282 (pass_data_split_before_regstack): Rename pass to split4 from split3.
33283 (rest_of_handle_split_before_sched2): Remove.
33284 (pass_split_before_sched2::execute): Unconditionally call
33285 split_all_insns.
33286 (enable_split_before_sched2): New function.
33287 (pass_split_before_sched2::gate): Use enable_split_before_sched2.
33288 (pass_split_before_regstack::gate): Ditto.
33289 * config/nds32/nds32.c (nds32_split_double_word_load_store_p):
33290 Update name check for renamed split4 pass.
33291 * config/sh/sh.c (register_sh_passes): Update pass insertion
33292 point for renamed split4 pass.
33293
33294 2020-02-09 Jakub Jelinek <jakub@redhat.com>
33295
33296 * gimplify.c (gimplify_adjust_omp_clauses_1): Promote
33297 DECL_IN_CONSTANT_POOL variables into "omp declare target" to avoid
33298 copying them around between host and target.
33299
33300 2020-02-08 Andrew Pinski <apinski@marvell.com>
33301
33302 PR target/91927
33303 * config/aarch64/aarch64-simd.md (movmisalign<mode>): Check
33304 STRICT_ALIGNMENT also.
33305
33306 2020-02-08 Jim Wilson <jimw@sifive.com>
33307
33308 PR target/93532
33309 * config/riscv/riscv.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
33310
33311 2020-02-08 Uroš Bizjak <ubizjak@gmail.com>
33312 Jakub Jelinek <jakub@redhat.com>
33313
33314 PR target/65782
33315 * config/i386/i386.h (CALL_USED_REGISTERS): Make
33316 xmm16-xmm31 call-used even in 64-bit ms-abi.
33317
33318 2020-02-07 Dennis Zhang <dennis.zhang@arm.com>
33319
33320 * config/aarch64/aarch64-simd-builtins.def (simd_smmla): New entry.
33321 (simd_ummla, simd_usmmla): Likewise.
33322 * config/aarch64/aarch64-simd.md (aarch64_simd_<sur>mmlav16qi): New.
33323 * config/aarch64/arm_neon.h (vmmlaq_s32, vmmlaq_u32): New.
33324 (vusmmlaq_s32): New.
33325
33326 2020-02-07 Richard Biener <rguenther@suse.de>
33327
33328 PR middle-end/93519
33329 * tree-inline.c (fold_marked_statements): Do a PRE walk,
33330 skipping unreachable regions.
33331 (optimize_inline_calls): Skip folding stmts when we didn't
33332 inline.
33333
33334 2020-02-07 H.J. Lu <hongjiu.lu@intel.com>
33335
33336 PR target/85667
33337 * config/i386/i386.c (function_arg_ms_64): Add a type argument.
33338 Don't return aggregates with only SFmode and DFmode in SSE
33339 register.
33340 (ix86_function_arg): Pass arg.type to function_arg_ms_64.
33341
33342 2020-02-07 Jakub Jelinek <jakub@redhat.com>
33343
33344 PR target/93122
33345 * config/rs6000/rs6000-logue.c
33346 (rs6000_emit_probe_stack_range_stack_clash): Always use gen_add3_insn,
33347 if it fails, move rs into end_addr and retry. Add
33348 REG_FRAME_RELATED_EXPR note whenever it returns more than one insn or
33349 the insn pattern doesn't describe well what exactly happens to
33350 dwarf2cfi.c.
33351
33352 PR target/93594
33353 * config/i386/predicates.md (avx_identity_operand): Remove.
33354 * config/i386/sse.md (*avx_vec_concat<mode>_1): Remove.
33355 (avx_<castmode><avxsizesuffix>_<castmode>,
33356 avx512f_<castmode><avxsizesuffix>_256<castmode>): Change patterns to
33357 a VEC_CONCAT of the operand and UNSPEC_CAST.
33358 (avx512f_<castmode><avxsizesuffix>_<castmode>): Change pattern to
33359 a VEC_CONCAT of VEC_CONCAT of the operand and UNSPEC_CAST with
33360 UNSPEC_CAST.
33361
33362 PR target/93611
33363 * config/i386/i386.c (ix86_lea_outperforms): Make sure to clear
33364 recog_data.insn if distance_non_agu_define changed it.
33365
33366 2020-02-06 Michael Meissner <meissner@linux.ibm.com>
33367
33368 PR target/93569
33369 * config/rs6000/rs6000.c (reg_to_non_prefixed): Before ISA 3.0
33370 we only had X-FORM (reg+reg) addressing for vectors. Also before
33371 ISA 3.0, we only had X-FORM addressing for scalars in the
33372 traditional Altivec registers.
33373
33374 2020-02-06 <zhongyunde@huawei.com>
33375 Vladimir Makarov <vmakarov@redhat.com>
33376
33377 PR rtl-optimization/93561
33378 * lra-assigns.c (spill_for): Check that tested hard regno is not out of
33379 hard register range.
33380
33381 2020-02-06 Richard Sandiford <richard.sandiford@arm.com>
33382
33383 * config/aarch64/aarch64.md (aarch64_movk<mode>): Add a type
33384 attribute.
33385
33386 2020-02-06 Segher Boessenkool <segher@kernel.crashing.org>
33387
33388 * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Handle the case
33389 where the low and the high 32 bits are equal to each other specially,
33390 with an rldimi instruction.
33391
33392 2020-02-06 Mihail Ionescu <mihail.ionescu@arm.com>
33393
33394 * config/arm/arm-cpus.in: Set profile M for armv8.1-m.main.
33395
33396 2020-02-06 Mihail Ionescu <mihail.ionescu@arm.com>
33397
33398 * config/arm/arm-tables.opt: Regenerate.
33399
33400 2020-02-06 Richard Sandiford <richard.sandiford@arm.com>
33401
33402 PR target/87763
33403 * config/aarch64/aarch64-protos.h (aarch64_movk_shift): Declare.
33404 * config/aarch64/aarch64.c (aarch64_movk_shift): New function.
33405 * config/aarch64/aarch64.md (aarch64_movk<mode>): New pattern.
33406
33407 2020-02-06 Richard Sandiford <richard.sandiford@arm.com>
33408
33409 PR rtl-optimization/87763
33410 * config/aarch64/aarch64.md (*ashiftsi_extvdi_bfiz): New pattern.
33411
33412 2020-02-06 Delia Burduv <delia.burduv@arm.com>
33413
33414 * config/aarch64/aarch64-simd-builtins.def
33415 (bfmlaq): New built-in function.
33416 (bfmlalb): New built-in function.
33417 (bfmlalt): New built-in function.
33418 (bfmlalb_lane): New built-in function.
33419 (bfmlalt_lane): New built-in function.
33420 * config/aarch64/aarch64-simd.md
33421 (aarch64_bfmmlaqv4sf): New pattern.
33422 (aarch64_bfmlal<bt>v4sf): New pattern.
33423 (aarch64_bfmlal<bt>_lane<q>v4sf): New pattern.
33424 * config/aarch64/arm_neon.h (vbfmmlaq_f32): New intrinsic.
33425 (vbfmlalbq_f32): New intrinsic.
33426 (vbfmlaltq_f32): New intrinsic.
33427 (vbfmlalbq_lane_f32): New intrinsic.
33428 (vbfmlaltq_lane_f32): New intrinsic.
33429 (vbfmlalbq_laneq_f32): New intrinsic.
33430 (vbfmlaltq_laneq_f32): New intrinsic.
33431 * config/aarch64/iterators.md (BF_MLA): New int iterator.
33432 (bt): New int attribute.
33433
33434 2020-02-06 Uroš Bizjak <ubizjak@gmail.com>
33435
33436 * config/i386/i386.md (*pushtf): Emit "#" instead of
33437 calling gcc_unreachable in insn output.
33438 (*pushxf): Ditto.
33439 (*pushdf): Ditto.
33440 (*pushsf_rex64): Ditto for alternatives other than 1.
33441 (*pushsf): Ditto for alternatives other than 1.
33442
33443 2020-02-06 Martin Liska <mliska@suse.cz>
33444
33445 PR gcov-profile/91971
33446 PR gcov-profile/93466
33447 * coverage.c (coverage_init): Revert mangling of
33448 path into filename. It can lead to huge filename length.
33449 Creation of subfolders seem more natural.
33450
33451 2020-02-06 Stam Markianos-Wright <stam.markianos-wright@arm.com>
33452
33453 PR target/93300
33454 * config/arm/arm.c (arm_block_arith_comp_libfuncs_for_mode): New.
33455 (arm_init_libfuncs): Add BFmode support to block spurious BF libfuncs.
33456 Use arm_block_arith_comp_libfuncs_for_mode for HFmode.
33457
33458 2020-02-06 Jakub Jelinek <jakub@redhat.com>
33459
33460 PR target/93594
33461 * config/i386/predicates.md (avx_identity_operand): New predicate.
33462 * config/i386/sse.md (*avx_vec_concat<mode>_1): New
33463 define_insn_and_split.
33464
33465 PR libgomp/93515
33466 * omp-low.c (use_pointer_for_field): For nested constructs, also
33467 look for map clauses on target construct.
33468 (scan_omp_1_stmt) <case GIMPLE_OMP_TARGET>: Bump temporarily
33469 taskreg_nesting_level.
33470
33471 PR libgomp/93515
33472 * gimplify.c (gimplify_scan_omp_clauses) <do_notice>: If adding
33473 shared clause, call omp_notice_variable on outer context if any.
33474
33475 2020-02-05 Jason Merrill <jason@redhat.com>
33476
33477 PR c++/92003
33478 * symtab.c (symtab_node::nonzero_address): A DECL_COMDAT decl has
33479 non-zero address even if weak and not yet defined.
33480
33481 2020-02-05 Martin Sebor <msebor@redhat.com>
33482
33483 PR tree-optimization/92765
33484 * gimple-fold.c (get_range_strlen_tree): Handle MEM_REF and PARM_DECL.
33485 * tree-ssa-strlen.c (compute_string_length): Remove.
33486 (determine_min_objsize): Remove.
33487 (get_len_or_size): Add an argument. Call get_range_strlen_dynamic.
33488 Avoid using type size as the upper bound on string length.
33489 (handle_builtin_string_cmp): Add an argument. Adjust.
33490 (strlen_check_and_optimize_call): Pass additional argument to
33491 handle_builtin_string_cmp.
33492
33493 2020-02-05 Uroš Bizjak <ubizjak@gmail.com>
33494
33495 * config/i386/i386.md (*pushdi2_rex64 peephole2): Remove.
33496 (*pushdi2_rex64 peephole2): Unconditionally split after
33497 epilogue_completed.
33498 (*ashl<mode>3_doubleword): Ditto.
33499 (*<shift_insn><mode>3_doubleword): Ditto.
33500
33501 2020-02-05 Michael Meissner <meissner@linux.ibm.com>
33502
33503 PR target/93568
33504 * config/rs6000/rs6000.c (get_vector_offset): Fix
33505
33506 2020-02-05 Andrew Stubbs <ams@codesourcery.com>
33507
33508 * config/gcn/t-gcn-hsa (MULTILIB_OPTIONS): Use / not space.
33509
33510 2020-02-05 David Malcolm <dmalcolm@redhat.com>
33511
33512 * doc/analyzer.texi
33513 (Special Functions for Debugging the Analyzer): Update description
33514 of __analyzer_dump_exploded_nodes.
33515
33516 2020-02-05 Jakub Jelinek <jakub@redhat.com>
33517
33518 PR target/92190
33519 * config/i386/i386-features.c (ix86_add_reg_usage_to_vzeroupper): Only
33520 include sets and not clobbers in the vzeroupper pattern.
33521 * config/i386/sse.md (*avx_vzeroupper): Require in insn condition that
33522 the parallel has 17 (64-bit) or 9 (32-bit) elts.
33523 (*avx_vzeroupper_1): New define_insn_and_split.
33524
33525 PR target/92190
33526 * recog.c (pass_split_after_reload::gate): For STACK_REGS targets,
33527 don't run when !optimize.
33528 (pass_split_before_regstack::gate): For STACK_REGS targets, run even
33529 when !optimize.
33530
33531 2020-02-05 Richard Biener <rguenther@suse.de>
33532
33533 PR middle-end/90648
33534 * genmatch.c (dt_node::gen_kids_1): Emit number of argument
33535 checks before matching calls.
33536
33537 2020-02-05 Jakub Jelinek <jakub@redhat.com>
33538
33539 * tree-ssa-alias.c (aliasing_matching_component_refs_p): Fix up
33540 function comment typo.
33541
33542 PR middle-end/93555
33543 * omp-simd-clone.c (expand_simd_clones): If simd_clone_mangle or
33544 simd_clone_create failed when i == 0, adjust clone->nargs by
33545 clone->inbranch.
33546
33547 2020-02-05 Martin Liska <mliska@suse.cz>
33548
33549 PR c++/92717
33550 * doc/invoke.texi: Document that one should
33551 not combine ASLR and -fpch.
33552
33553 2020-02-04 Richard Biener <rguenther@suse.de>
33554
33555 PR tree-optimization/93538
33556 * match.pd (addr EQ/NE ptr): Amend to handle &ptr->x EQ/NE ptr.
33557
33558 2020-02-04 Richard Biener <rguenther@suse.de>
33559
33560 PR tree-optimization/91123
33561 * tree-ssa-sccvn.c (vn_walk_cb_data::finish): New method.
33562 (vn_walk_cb_data::last_vuse): New member.
33563 (vn_walk_cb_data::saved_operands): Likewsie.
33564 (vn_walk_cb_data::~vn_walk_cb_data): Release saved_operands.
33565 (vn_walk_cb_data::push_partial_def): Use finish.
33566 (vn_reference_lookup_2): Update last_vuse and use finish if
33567 we've saved operands.
33568 (vn_reference_lookup_3): Use finish and update calls to
33569 push_partial_defs everywhere. When translating through
33570 memcpy or aggregate copies save off operands and alias-set.
33571 (eliminate_dom_walker::eliminate_stmt): Restore VN_WALKREWRITE
33572 operation for redundant store removal.
33573
33574 2020-02-04 Richard Biener <rguenther@suse.de>
33575
33576 PR tree-optimization/92819
33577 * tree-ssa-forwprop.c (simplify_vector_constructor): Avoid
33578 generating more stmts than before.
33579
33580 2020-02-04 Martin Liska <mliska@suse.cz>
33581
33582 * config/arm/arm.c (arm_gen_far_branch): Move the function
33583 outside of selftests.
33584
33585 2020-02-03 Michael Meissner <meissner@linux.ibm.com>
33586
33587 * config/rs6000/rs6000.c (adjust_vec_address_pcrel): New helper
33588 function to adjust PC-relative vector addresses.
33589 (rs6000_adjust_vec_address): Call adjust_vec_address_pcrel to
33590 handle vectors with PC-relative addresses.
33591
33592 2020-02-03 Michael Meissner <meissner@linux.ibm.com>
33593
33594 * config/rs6000/rs6000.c (reg_to_non_prefixed): Add forward
33595 reference.
33596 (hard_reg_and_mode_to_addr_mask): Delete.
33597 (rs6000_adjust_vec_address): If the original vector address
33598 was REG+REG or REG+OFFSET and the element is not zero, do the add
33599 of the elements in the original address before adding the offset
33600 for the vector element. Use address_to_insn_form to validate the
33601 address using the register being loaded, rather than guessing
33602 whether the address is a DS-FORM or DQ-FORM address.
33603
33604 2020-02-03 Michael Meissner <meissner@linux.ibm.com>
33605
33606 * config/rs6000/rs6000.c (get_vector_offset): New helper function
33607 to calculate the offset in memory from the start of a vector of a
33608 particular element. Add code to keep the element number in
33609 bounds if the element number is variable.
33610 (rs6000_adjust_vec_address): Move calculation of offset of the
33611 vector element to get_vector_offset.
33612 (rs6000_split_vec_extract_var): Do not do the initial AND of
33613 element here, move the code to get_vector_offset.
33614
33615 2020-02-03 Michael Meissner <meissner@linux.ibm.com>
33616
33617 * config/rs6000/rs6000.c (rs6000_adjust_vec_address): Add some
33618 gcc_asserts.
33619
33620 2020-02-03 Segher Boessenkool <segher@kernel.crashing.org>
33621
33622 * config/rs6000/constraints.md: Improve documentation.
33623
33624 2020-02-03 Richard Earnshaw <rearnsha@arm.com>
33625
33626 PR target/93548
33627 * config/arm/t-arm: ($(srcdir)/config/arm/arm-tune.md)
33628 ($(srcdir)/config/arm/arm-tables.opt): Use move-if-change.
33629
33630 2020-02-03 Andrew Stubbs <ams@codesourcery.com>
33631
33632 * config.gcc: Remove "carrizo" support.
33633 * config/gcn/gcn-opts.h (processor_type): Likewise.
33634 * config/gcn/gcn.c (gcn_omp_device_kind_arch_isa): Likewise.
33635 * config/gcn/gcn.opt (gpu_type): Likewise.
33636 * config/gcn/t-omp-device: Likewise.
33637
33638 2020-02-03 Stam Markianos-Wright <stam.markianos-wright@arm.com>
33639
33640 PR target/91816
33641 * config/arm/arm-protos.h: New function arm_gen_far_branch prototype.
33642 * config/arm/arm.c (arm_gen_far_branch): New function
33643 arm_gen_far_branch.
33644 * config/arm/arm.md: Update b<cond> for Thumb2 range checks.
33645
33646 2020-02-03 Julian Brown <julian@codesourcery.com>
33647 Tobias Burnus <tobias@codesourcery.com>
33648
33649 * doc/invoke.texi: Update mention of OpenACC version to 2.6.
33650
33651 2020-02-03 Jakub Jelinek <jakub@redhat.com>
33652
33653 PR target/93533
33654 * config/s390/s390.md (popcounthi2_z196): Fix up expander to emit
33655 valid RTL to sum up the lowest and second lowest bytes of the popcnt
33656 result.
33657
33658 2020-02-02 Vladimir Makarov <vmakarov@redhat.com>
33659
33660 PR rtl-optimization/91333
33661 * ira-color.c (struct allocno_color_data): Add member
33662 hard_reg_prefs.
33663 (init_allocno_threads): Set the member up.
33664 (bucket_allocno_compare_func): Add compare hard reg
33665 prefs.
33666
33667 2020-01-31 Sandra Loosemore <sandra@codesourcery.com>
33668
33669 nios2: Support for GOT-relative DW_EH_PE_datarel encoding.
33670
33671 * configure.ac [nios2-*-*]: Check HAVE_AS_NIOS2_GOTOFF_RELOCATION.
33672 * config.in: Regenerated.
33673 * configure: Regenerated.
33674 * config/nios2/nios2.h (ASM_PREFERRED_EH_DATA_FORMAT): Fix handling
33675 for PIC when HAVE_AS_NIOS2_GOTOFF_RELOCATION.
33676 (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): New.
33677
33678 2020-02-01 Andrew Burgess <andrew.burgess@embecosm.com>
33679
33680 * configure: Regenerate.
33681
33682 2020-01-31 Vladimir Makarov <vmakarov@redhat.com>
33683
33684 PR rtl-optimization/91333
33685 * ira-color.c (bucket_allocno_compare_func): Move conflict hard
33686 reg preferences comparison up.
33687
33688 2020-01-31 Richard Sandiford <richard.sandiford@arm.com>
33689
33690 * config/aarch64/aarch64.h (TARGET_SVE_BF16): New macro.
33691 * config/aarch64/aarch64-sve-builtins-sve2.h (svcvtnt): Move to
33692 aarch64-sve-builtins-base.h.
33693 * config/aarch64/aarch64-sve-builtins-sve2.cc (svcvtnt): Move to
33694 aarch64-sve-builtins-base.cc.
33695 * config/aarch64/aarch64-sve-builtins-base.h (svbfdot, svbfdot_lane)
33696 (svbfmlalb, svbfmlalb_lane, svbfmlalt, svbfmlalt_lane, svbfmmla)
33697 (svcvtnt): Declare.
33698 * config/aarch64/aarch64-sve-builtins-base.cc (svbfdot, svbfdot_lane)
33699 (svbfmlalb, svbfmlalb_lane, svbfmlalt, svbfmlalt_lane, svbfmmla)
33700 (svcvtnt): New functions.
33701 * config/aarch64/aarch64-sve-builtins-base.def (svbfdot, svbfdot_lane)
33702 (svbfmlalb, svbfmlalb_lane, svbfmlalt, svbfmlalt_lane, svbfmmla)
33703 (svcvtnt): New functions.
33704 (svcvt): Add a form that converts f32 to bf16.
33705 * config/aarch64/aarch64-sve-builtins-shapes.h (ternary_bfloat)
33706 (ternary_bfloat_lane, ternary_bfloat_lanex2, ternary_bfloat_opt_n):
33707 Declare.
33708 * config/aarch64/aarch64-sve-builtins-shapes.cc (parse_element_type):
33709 Treat B as bfloat16_t.
33710 (ternary_bfloat_lane_base): New class.
33711 (ternary_bfloat_def): Likewise.
33712 (ternary_bfloat): New shape.
33713 (ternary_bfloat_lane_def): New class.
33714 (ternary_bfloat_lane): New shape.
33715 (ternary_bfloat_lanex2_def): New class.
33716 (ternary_bfloat_lanex2): New shape.
33717 (ternary_bfloat_opt_n_def): New class.
33718 (ternary_bfloat_opt_n): New shape.
33719 * config/aarch64/aarch64-sve-builtins.cc (TYPES_cvt_bfloat): New macro.
33720 * config/aarch64/aarch64-sve.md (@aarch64_sve_<sve_fp_op>vnx4sf)
33721 (@aarch64_sve_<sve_fp_op>_lanevnx4sf): New patterns.
33722 (@aarch64_sve_<optab>_trunc<VNx4SF_ONLY:mode><VNx8BF_ONLY:mode>)
33723 (@cond_<optab>_trunc<VNx4SF_ONLY:mode><VNx8BF_ONLY:mode>): Likewise.
33724 (*cond_<optab>_trunc<VNx4SF_ONLY:mode><VNx8BF_ONLY:mode>): Likewise.
33725 (@aarch64_sve_cvtnt<VNx8BF_ONLY:mode>): Likewise.
33726 * config/aarch64/aarch64-sve2.md (@aarch64_sve2_cvtnt<mode>): Key
33727 the pattern off the narrow mode instead of the wider one.
33728 * config/aarch64/iterators.md (VNx8BF_ONLY): New mode iterator.
33729 (UNSPEC_BFMLALB, UNSPEC_BFMLALT, UNSPEC_BFMMLA): New unspecs.
33730 (sve_fp_op): Handle them.
33731 (SVE_BFLOAT_TERNARY_LONG): New int itertor.
33732 (SVE_BFLOAT_TERNARY_LONG_LANE): Likewise.
33733
33734 2020-01-31 Richard Sandiford <richard.sandiford@arm.com>
33735
33736 * config/aarch64/arm_sve.h: Include arm_bf16.h.
33737 * config/aarch64/aarch64-modes.def (BF): Move definition before
33738 VECTOR_MODES. Remove separate VECTOR_MODES for V4BF and V8BF.
33739 (SVE_MODES): Handle BF modes.
33740 * config/aarch64/aarch64.c (aarch64_classify_vector_mode): Handle
33741 BF modes.
33742 (aarch64_full_sve_mode): Likewise.
33743 * config/aarch64/iterators.md (SVE_STRUCT): Add VNx16BF, VNx24BF
33744 and VNx32BF.
33745 (SVE_FULL, SVE_FULL_HSD, SVE_ALL): Add VNx8BF.
33746 (Vetype, Vesize, Vctype, VEL, Vel, VEL_INT, V128, v128, vwcore)
33747 (V_INT_EQUIV, v_int_equiv, V_FP_EQUIV, v_fp_equiv, vector_count)
33748 (insn_length, VSINGLE, vsingle, VPRED, vpred, VDOUBLE): Handle the
33749 new SVE BF modes.
33750 * config/aarch64/aarch64-sve-builtins.h (TYPE_bfloat): New
33751 type_class_index.
33752 * config/aarch64/aarch64-sve-builtins.cc (TYPES_all_arith): New macro.
33753 (TYPES_all_data): Add bf16.
33754 (TYPES_reinterpret1, TYPES_reinterpret): Likewise.
33755 (register_tuple_type): Increase buffer size.
33756 * config/aarch64/aarch64-sve-builtins.def (svbfloat16_t): New type.
33757 (bf16): New type suffix.
33758 * config/aarch64/aarch64-sve-builtins-base.def (svabd, svadd, svaddv)
33759 (svcmpeq, svcmpge, svcmpgt, svcmple, svcmplt, svcmpne, svmad, svmax)
33760 (svmaxv, svmin, svminv, svmla, svmls, svmsb, svmul, svsub, svsubr):
33761 Change type from all_data to all_arith.
33762 * config/aarch64/aarch64-sve-builtins-sve2.def (svaddp, svmaxp)
33763 (svminp): Likewise.
33764
33765 2020-01-31 Dennis Zhang <dennis.zhang@arm.com>
33766 Matthew Malcomson <matthew.malcomson@arm.com>
33767 Richard Sandiford <richard.sandiford@arm.com>
33768
33769 * doc/invoke.texi (f32mm): Document new AArch64 -march= extension.
33770 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
33771 __ARM_FEATURE_SVE_MATMUL_INT8, __ARM_FEATURE_SVE_MATMUL_FP32 and
33772 __ARM_FEATURE_SVE_MATMUL_FP64 as appropriate. Don't define
33773 __ARM_FEATURE_MATMUL_FP64.
33774 * config/aarch64/aarch64-option-extensions.def (fp, simd, fp16)
33775 (sve): Add AARCH64_FL_F32MM to the list of extensions that should
33776 be disabled at the same time.
33777 (f32mm): New extension.
33778 * config/aarch64/aarch64.h (AARCH64_FL_F32MM): New macro.
33779 (AARCH64_FL_F64MM): Bump to the next bit up.
33780 (AARCH64_ISA_F32MM, TARGET_SVE_I8MM, TARGET_F32MM, TARGET_SVE_F32MM)
33781 (TARGET_SVE_F64MM): New macros.
33782 * config/aarch64/iterators.md (SVE_MATMULF): New mode iterator.
33783 (UNSPEC_FMMLA, UNSPEC_SMATMUL, UNSPEC_UMATMUL, UNSPEC_USMATMUL)
33784 (UNSPEC_TRN1Q, UNSPEC_TRN2Q, UNSPEC_UZP1Q, UNSPEC_UZP2Q, UNSPEC_ZIP1Q)
33785 (UNSPEC_ZIP2Q): New unspeccs.
33786 (DOTPROD_US_ONLY, PERMUTEQ, MATMUL, FMMLA): New int iterators.
33787 (optab, sur, perm_insn): Handle the new unspecs.
33788 (sve_fp_op): Handle UNSPEC_FMMLA. Resort.
33789 * config/aarch64/aarch64-sve.md (@aarch64_sve_ld1ro<mode>): Use
33790 TARGET_SVE_F64MM instead of separate tests.
33791 (@aarch64_<DOTPROD_US_ONLY:sur>dot_prod<vsi2qi>): New pattern.
33792 (@aarch64_<DOTPROD_US_ONLY:sur>dot_prod_lane<vsi2qi>): Likewise.
33793 (@aarch64_sve_add_<MATMUL:optab><vsi2qi>): Likewise.
33794 (@aarch64_sve_<FMMLA:sve_fp_op><mode>): Likewise.
33795 (@aarch64_sve_<PERMUTEQ:optab><mode>): Likewise.
33796 * config/aarch64/aarch64-sve-builtins.cc (TYPES_s_float): New macro.
33797 (TYPES_s_float_hsd_integer, TYPES_s_float_sd_integer): Use it.
33798 (TYPES_s_signed): New macro.
33799 (TYPES_s_integer): Use it.
33800 (TYPES_d_float): New macro.
33801 (TYPES_d_data): Use it.
33802 * config/aarch64/aarch64-sve-builtins-shapes.h (mmla): Declare.
33803 (ternary_intq_uintq_lane, ternary_intq_uintq_opt_n, ternary_uintq_intq)
33804 (ternary_uintq_intq_lane, ternary_uintq_intq_opt_n): Likewise.
33805 * config/aarch64/aarch64-sve-builtins-shapes.cc (mmla_def): New class.
33806 (svmmla): New shape.
33807 (ternary_resize2_opt_n_base): Add TYPE_CLASS2 and TYPE_CLASS3
33808 template parameters.
33809 (ternary_resize2_lane_base): Likewise.
33810 (ternary_resize2_base): New class.
33811 (ternary_qq_lane_base): Likewise.
33812 (ternary_intq_uintq_lane_def): Likewise.
33813 (ternary_intq_uintq_lane): New shape.
33814 (ternary_intq_uintq_opt_n_def): New class
33815 (ternary_intq_uintq_opt_n): New shape.
33816 (ternary_qq_lane_def): Inherit from ternary_qq_lane_base.
33817 (ternary_uintq_intq_def): New class.
33818 (ternary_uintq_intq): New shape.
33819 (ternary_uintq_intq_lane_def): New class.
33820 (ternary_uintq_intq_lane): New shape.
33821 (ternary_uintq_intq_opt_n_def): New class.
33822 (ternary_uintq_intq_opt_n): New shape.
33823 * config/aarch64/aarch64-sve-builtins-base.h (svmmla, svsudot)
33824 (svsudot_lane, svtrn1q, svtrn2q, svusdot, svusdot_lane, svusmmla)
33825 (svuzp1q, svuzp2q, svzip1q, svzip2q): Declare.
33826 * config/aarch64/aarch64-sve-builtins-base.cc (svdot_lane_impl):
33827 Generalize to...
33828 (svdotprod_lane_impl): ...this new class.
33829 (svmmla_impl, svusdot_impl): New classes.
33830 (svdot_lane): Update to use svdotprod_lane_impl.
33831 (svmmla, svsudot, svsudot_lane, svtrn1q, svtrn2q, svusdot)
33832 (svusdot_lane, svusmmla, svuzp1q, svuzp2q, svzip1q, svzip2q): New
33833 functions.
33834 * config/aarch64/aarch64-sve-builtins-base.def (svmmla): New base
33835 function, with no types defined.
33836 (svmmla, svusmmla, svsudot, svsudot_lane, svusdot, svusdot_lane): New
33837 AARCH64_FL_I8MM functions.
33838 (svmmla): New AARCH64_FL_F32MM function.
33839 (svld1ro): Depend only on AARCH64_FL_F64MM, not on AARCH64_FL_V8_6.
33840 (svmmla, svtrn1q, svtrn2q, svuz1q, svuz2q, svzip1q, svzip2q): New
33841 AARCH64_FL_F64MM function.
33842 (REQUIRED_EXTENSIONS):
33843
33844 2020-01-31 Andrew Stubbs <ams@codesourcery.com>
33845
33846 * config/gcn/gcn-valu.md (addv64di3_exec): Allow one '0' in each
33847 alternative only.
33848
33849 2020-01-31 Uroš Bizjak <ubizjak@gmail.com>
33850
33851 * config/i386/i386.md (*movoi_internal_avx): Do not check for
33852 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL. Remove MODE_V8SF handling.
33853 (*movti_internal): Do not check for
33854 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL.
33855 (*movtf_internal): Move check for TARGET_SSE2 and size optimization
33856 just after check for TARGET_AVX.
33857 (*movdf_internal): Ditto.
33858 * config/i386/mmx.md (*mov<mode>_internal): Do not check for
33859 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL.
33860 * config/i386/sse.md (mov<mode>_internal): Only check
33861 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL with V2DFmode. Move check
33862 for TARGET_SSE2 and size optimization just after check for TARGET_AVX.
33863 (<sse>_andnot<mode>3<mask_name>): Move check for
33864 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL after check for TARGET_AVX.
33865 (<code><mode>3<mask_name>): Ditto.
33866 (*andnot<mode>3): Ditto.
33867 (*andnottf3): Ditto.
33868 (*<code><mode>3): Ditto.
33869 (*<code>tf3): Ditto.
33870 (*andnot<VI:mode>3): Remove
33871 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL handling.
33872 (<mask_codefor><code><VI48_AVX_AVX512F:mode>3<mask_name>): Ditto.
33873 (*<code><VI12_AVX_AVX512F:mode>3): Ditto.
33874 (sse4_1_blendv<ssemodesuffix>): Ditto.
33875 * config/i386/x86-tune.def (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL):
33876 Explain that tune applies to 128bit instructions only.
33877
33878 2020-01-31 Kwok Cheung Yeung <kcy@codesourcery.com>
33879
33880 * config/gcn/mkoffload.c (process_asm): Add sgpr_count and vgpr_count
33881 to definition of hsa_kernel_description. Parse assembly to find SGPR
33882 and VGPR count of kernel and store in hsa_kernel_description.
33883
33884 2020-01-31 Tamar Christina <tamar.christina@arm.com>
33885
33886 PR rtl-optimization/91838
33887 * simplify-rtx.c (simplify_binary_operation_1): Update LSHIFTRT case
33888 to truncate if allowed or reject combination.
33889
33890 2020-01-31 Andrew Stubbs <ams@codesourcery.com>
33891
33892 * tree-ssa-loop-ivopts.c (get_iv): Use sizetype for zero-step.
33893 (find_inv_vars_cb): Likewise.
33894
33895 2020-01-31 David Malcolm <dmalcolm@redhat.com>
33896
33897 * calls.c (special_function_p): Split out the check for DECL_NAME
33898 being non-NULL and fndecl being extern at file scope into a
33899 new maybe_special_function_p and call it. Drop check for fndecl
33900 being non-NULL that was after a usage of DECL_NAME (fndecl).
33901 * tree.h (maybe_special_function_p): New inline function.
33902
33903 2020-01-30 Andrew Stubbs <ams@codesourcery.com>
33904
33905 * config/gcn/gcn-valu.md (gather<mode>_exec): Move contents ...
33906 (mask_gather_load<mode>): ... here, and zero-initialize the
33907 destination.
33908 (maskload<mode>di): Zero-initialize the destination.
33909 * config/gcn/gcn.c:
33910
33911 2020-01-30 David Malcolm <dmalcolm@redhat.com>
33912
33913 PR analyzer/93356
33914 * doc/analyzer.texi (Limitations): Note that constraints on
33915 floating-point values are currently ignored.
33916
33917 2020-01-30 Jakub Jelinek <jakub@redhat.com>
33918
33919 PR lto/93384
33920 * symtab.c (symtab_node::noninterposable_alias): If localalias
33921 already exists, but is not usable, append numbers after it until
33922 a unique name is found. Formatting fix.
33923
33924 PR middle-end/93505
33925 * combine.c (simplify_comparison) <case ROTATE>: Punt on out of range
33926 rotate counts.
33927
33928 2020-01-30 Andrew Stubbs <ams@codesourcery.com>
33929
33930 * config/gcn/gcn.c (print_operand): Handle LTGT.
33931 * config/gcn/predicates.md (gcn_fp_compare_operator): Allow ltgt.
33932
33933 2020-01-30 Richard Biener <rguenther@suse.de>
33934
33935 * tree-pretty-print.c (dump_generic_node): Wrap VECTOR_CST
33936 and CONSTRUCTOR in _Literal (type) with TDF_GIMPLE.
33937
33938 2020-01-30 John David Anglin <danglin@gcc.gnu.org>
33939
33940 * config/pa/pa.c (pa_elf_select_rtx_section): Place function pointers
33941 without a DECL in .data.rel.ro.local.
33942
33943 2020-01-30 Jakub Jelinek <jakub@redhat.com>
33944
33945 PR target/93494
33946 * config/arm/arm.md (uaddvdi4): Actually emit what gen_uaddvsi4
33947 returned.
33948
33949 PR target/91824
33950 * config/i386/sse.md
33951 (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_zext): Renamed to ...
33952 (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_<u>ext): ... this. Use
33953 any_extend code iterator instead of always zero_extend.
33954 (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_zext_lt): Renamed to ...
33955 (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_<u>ext_lt): ... this.
33956 Use any_extend code iterator instead of always zero_extend.
33957 (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_zext_shift): Renamed to ...
33958 (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_<u>ext_shift): ... this.
33959 Use any_extend code iterator instead of always zero_extend.
33960 (*sse2_pmovmskb_ext): New define_insn.
33961 (*sse2_pmovmskb_ext_lt): New define_insn_and_split.
33962
33963 PR target/91824
33964 * config/i386/i386.md (*popcountsi2_zext): New define_insn_and_split.
33965 (*popcountsi2_zext_falsedep): New define_insn.
33966
33967 2020-01-30 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
33968
33969 * config.in: Regenerated.
33970 * configure: Regenerated.
33971
33972 2020-01-29 Tobias Burnus <tobias@codesourcery.com>
33973
33974 PR bootstrap/93409
33975 * config/gcn/gcn-hsa.h (ASM_SPEC): Add -mattr=-code-object-v3 as
33976 LLVM's assembler changed the default in version 9.
33977
33978 2020-01-24 Jeff Law <law@redhat.com>
33979
33980 PR tree-optimization/89689
33981 * builtins.def (BUILT_IN_OBJECT_SIZE): Make it const rather than pure.
33982
33983 2020-01-29 Richard Sandiford <richard.sandiford@arm.com>
33984
33985 Revert:
33986
33987 2020-01-28 Richard Sandiford <richard.sandiford@arm.com>
33988
33989 PR rtl-optimization/87763
33990 * simplify-rtx.c (simplify_truncation): Extend sign/zero_extract
33991 simplification to handle subregs as well as bare regs.
33992 * config/i386/i386.md (*testqi_ext_3): Match QI extracts too.
33993
33994 2020-01-29 Joel Hutton <Joel.Hutton@arm.com>
33995
33996 PR target/93221
33997 * ira.c (ira): Revert use of simplified LRA algorithm.
33998
33999 2020-01-29 Martin Jambor <mjambor@suse.cz>
34000
34001 PR tree-optimization/92706
34002 * tree-sra.c (struct access): Fields first_link, last_link,
34003 next_queued and grp_queued renamed to first_rhs_link, last_rhs_link,
34004 next_rhs_queued and grp_rhs_queued respectively, new fields
34005 first_lhs_link, last_lhs_link, next_lhs_queued and grp_lhs_queued.
34006 (struct assign_link): Field next renamed to next_rhs, new field
34007 next_lhs. Updated comment.
34008 (work_queue_head): Renamed to rhs_work_queue_head.
34009 (lhs_work_queue_head): New variable.
34010 (add_link_to_lhs): New function.
34011 (relink_to_new_repr): Also relink LHS lists.
34012 (add_access_to_work_queue): Renamed to add_access_to_rhs_work_queue.
34013 (add_access_to_lhs_work_queue): New function.
34014 (pop_access_from_work_queue): Renamed to
34015 pop_access_from_rhs_work_queue.
34016 (pop_access_from_lhs_work_queue): New function.
34017 (build_accesses_from_assign): Also add links to LHS lists and to LHS
34018 work_queue.
34019 (child_would_conflict_in_lacc): Renamed to
34020 child_would_conflict_in_acc. Adjusted parameter names.
34021 (create_artificial_child_access): New parameter set_grp_read, use it.
34022 (subtree_mark_written_and_enqueue): Renamed to
34023 subtree_mark_written_and_rhs_enqueue.
34024 (propagate_subaccesses_across_link): Renamed to
34025 propagate_subaccesses_from_rhs.
34026 (propagate_subaccesses_from_lhs): New function.
34027 (propagate_all_subaccesses): Also propagate subaccesses from LHSs to
34028 RHSs.
34029
34030 2020-01-29 Martin Jambor <mjambor@suse.cz>
34031
34032 PR tree-optimization/92706
34033 * tree-sra.c (struct access): Adjust comment of
34034 grp_total_scalarization.
34035 (find_access_in_subtree): Look for single children spanning an entire
34036 access.
34037 (scalarizable_type_p): Allow register accesses, adjust callers.
34038 (completely_scalarize): Remove function.
34039 (scalarize_elem): Likewise.
34040 (create_total_scalarization_access): Likewise.
34041 (sort_and_splice_var_accesses): Do not track total scalarization
34042 flags.
34043 (analyze_access_subtree): New parameter totally, adjust to new meaning
34044 of grp_total_scalarization.
34045 (analyze_access_trees): Pass new parameter to analyze_access_subtree.
34046 (can_totally_scalarize_forest_p): New function.
34047 (create_total_scalarization_access): Likewise.
34048 (create_total_access_and_reshape): Likewise.
34049 (total_should_skip_creating_access): Likewise.
34050 (totally_scalarize_subtree): Likewise.
34051 (analyze_all_variable_accesses): Perform total scalarization after
34052 subaccess propagation using the new functions above.
34053 (initialize_constant_pool_replacements): Output initializers by
34054 traversing the access tree.
34055
34056 2020-01-29 Martin Jambor <mjambor@suse.cz>
34057
34058 * tree-sra.c (verify_sra_access_forest): New function.
34059 (verify_all_sra_access_forests): Likewise.
34060 (create_artificial_child_access): Set parent.
34061 (analyze_all_variable_accesses): Call the verifier.
34062
34063 2020-01-28 Jan Hubicka <hubicka@ucw.cz>
34064
34065 * cgraph.c (cgraph_edge::resolve_speculation): Only lookup direct edge
34066 if called on indirect edge.
34067 (cgraph_edge::redirect_call_stmt_to_callee): Lookup indirect edge of
34068 speculative call if needed.
34069
34070 2020-01-29 Richard Biener <rguenther@suse.de>
34071
34072 PR tree-optimization/93428
34073 * tree-vect-slp.c (vect_build_slp_tree_2): Compute the load
34074 permutation when the load node is created.
34075 (vect_analyze_slp_instance): Re-use it here.
34076
34077 2020-01-28 Jan Hubicka <hubicka@ucw.cz>
34078
34079 * ipa-prop.c (update_indirect_edges_after_inlining): Fix warning.
34080
34081 2020-01-28 Vladimir Makarov <vmakarov@redhat.com>
34082
34083 PR rtl-optimization/93272
34084 * ira-lives.c (process_out_of_region_eh_regs): New function.
34085 (process_bb_node_lives): Call it.
34086
34087 2020-01-28 Jan Hubicka <hubicka@ucw.cz>
34088
34089 * coverage.c (read_counts_file): Make error message lowercase.
34090
34091 2020-01-28 Jan Hubicka <hubicka@ucw.cz>
34092
34093 * profile-count.c (profile_quality_display_names): Fix ordering.
34094
34095 2020-01-28 Jan Hubicka <hubicka@ucw.cz>
34096
34097 PR lto/93318
34098 * cgraph.c (cgraph_add_edge_to_call_site_hash): Update call site
34099 hash only when edge is first within the sequence.
34100 (cgraph_edge::set_call_stmt): Update handling of speculative calls.
34101 (symbol_table::create_edge): Do not set target_prob.
34102 (cgraph_edge::remove_caller): Watch for speculative calls when updating
34103 the call site hash.
34104 (cgraph_edge::make_speculative): Drop target_prob parameter.
34105 (cgraph_edge::speculative_call_info): Remove.
34106 (cgraph_edge::first_speculative_call_target): New member function.
34107 (update_call_stmt_hash_for_removing_direct_edge): New function.
34108 (cgraph_edge::resolve_speculation): Rewrite to new API.
34109 (cgraph_edge::speculative_call_for_target): New member function.
34110 (cgraph_edge::make_direct): Rewrite to new API; fix handling of
34111 multiple speculation targets.
34112 (cgraph_edge::redirect_call_stmt_to_callee): Likewise; fix updating
34113 of profile.
34114 (verify_speculative_call): Verify that targets form an interval.
34115 * cgraph.h (cgraph_edge::speculative_call_info): Remove.
34116 (cgraph_edge::first_speculative_call_target): New member function.
34117 (cgraph_edge::next_speculative_call_target): New member function.
34118 (cgraph_edge::speculative_call_target_ref): New member function.
34119 (cgraph_edge;:speculative_call_indirect_edge): New member funtion.
34120 (cgraph_edge): Remove target_prob.
34121 * cgraphclones.c (cgraph_node::set_call_stmt_including_clones):
34122 Fix handling of speculative calls.
34123 * ipa-devirt.c (ipa_devirt): Fix handling of speculative cals.
34124 * ipa-fnsummary.c (analyze_function_body): Likewise.
34125 * ipa-inline.c (speculation_useful_p): Use new speculative call API.
34126 * ipa-profile.c (dump_histogram): Fix formating.
34127 (ipa_profile_generate_summary): Watch for overflows.
34128 (ipa_profile): Do not require probablity to be 1/2; update to new API.
34129 * ipa-prop.c (ipa_make_edge_direct_to_target): Update to new API.
34130 (update_indirect_edges_after_inlining): Update to new API.
34131 * ipa-utils.c (ipa_merge_profiles): Rewrite merging of speculative call
34132 profiles.
34133 * profile-count.h: (profile_probability::adjusted): New.
34134 * tree-inline.c (copy_bb): Update to new speculative call API; fix
34135 updating of profile.
34136 * value-prof.c (gimple_ic_transform): Rename to ...
34137 (dump_ic_profile): ... this one; update dumping.
34138 (stream_in_histogram_value): Fix formating.
34139 (gimple_value_profile_transformations): Update.
34140
34141 2020-01-28 H.J. Lu <hongjiu.lu@intel.com>
34142
34143 PR target/91461
34144 * config/i386/i386.md (*movoi_internal_avx): Remove
34145 TARGET_SSE_TYPELESS_STORES check.
34146 (*movti_internal): Prefer TARGET_AVX over
34147 TARGET_SSE_TYPELESS_STORES.
34148 (*movtf_internal): Likewise.
34149 * config/i386/sse.md (mov<mode>_internal): Prefer TARGET_AVX over
34150 TARGET_SSE_TYPELESS_STORES. Remove "<MODE_SIZE> == 16" check
34151 from TARGET_SSE_TYPELESS_STORES.
34152
34153 2020-01-28 David Malcolm <dmalcolm@redhat.com>
34154
34155 * diagnostic-core.h (warning_at): Rename overload to...
34156 (warning_meta): ...this.
34157 (emit_diagnostic_valist): Delete decl of overload taking
34158 diagnostic_metadata.
34159 * diagnostic.c (emit_diagnostic_valist): Likewise for defn.
34160 (warning_at): Rename overload taking diagnostic_metadata to...
34161 (warning_meta): ...this.
34162
34163 2020-01-28 Richard Biener <rguenther@suse.de>
34164
34165 PR tree-optimization/93439
34166 * tree-parloops.c (create_loop_fn): Move clique bookkeeping...
34167 * tree-cfg.c (move_sese_region_to_fn): ... here.
34168 (verify_types_in_gimple_reference): Verify used cliques are
34169 tracked.
34170
34171 2020-01-28 H.J. Lu <hongjiu.lu@intel.com>
34172
34173 PR target/91399
34174 * config/i386/i386-options.c (set_ix86_tune_features): Add an
34175 argument of a pointer to struct gcc_options and pass it to
34176 parse_mtune_ctrl_str.
34177 (ix86_function_specific_restore): Pass opts to
34178 set_ix86_tune_features.
34179 (ix86_option_override_internal): Likewise.
34180 (parse_mtune_ctrl_str): Add an argument of a pointer to struct
34181 gcc_options and use it for x_ix86_tune_ctrl_string.
34182
34183 2020-01-28 Richard Sandiford <richard.sandiford@arm.com>
34184
34185 PR rtl-optimization/87763
34186 * simplify-rtx.c (simplify_truncation): Extend sign/zero_extract
34187 simplification to handle subregs as well as bare regs.
34188 * config/i386/i386.md (*testqi_ext_3): Match QI extracts too.
34189
34190 2020-01-28 Richard Sandiford <richard.sandiford@arm.com>
34191
34192 * tree-vect-loop.c (vectorizable_reduction): Fail gracefully
34193 for reduction chains that (now) include a call.
34194
34195 2020-01-28 Richard Sandiford <richard.sandiford@arm.com>
34196
34197 PR tree-optimization/92822
34198 * tree-ssa-forwprop.c (simplify_vector_constructor): When filling
34199 out the don't-care elements of a vector whose significant elements
34200 are duplicates, make the don't-care elements duplicates too.
34201
34202 2020-01-28 Richard Sandiford <richard.sandiford@arm.com>
34203
34204 PR tree-optimization/93434
34205 * tree-predcom.c (split_data_refs_to_components): Record which
34206 components have had aliasing loads removed. Prevent store-store
34207 commoning for all such components.
34208
34209 2020-01-28 Jakub Jelinek <jakub@redhat.com>
34210
34211 PR target/93418
34212 * config/i386/i386.c (ix86_fold_builtin) <do_shift>: If mask is not
34213 -1 or is_vshift is true, use new_vector with number of elts npatterns
34214 rather than new_unary_operation.
34215
34216 PR tree-optimization/93454
34217 * gimple-fold.c (fold_array_ctor_reference): Perform
34218 elt_size.to_uhwi () just once, instead of calling it in every
34219 iteration. Punt if that value is above size of the temporary
34220 buffer. Decrease third native_encode_expr argument when
34221 bufoff + elt_sz is above size of buf.
34222
34223 2020-01-27 Joseph Myers <joseph@codesourcery.com>
34224
34225 * config/mips/mips.c (mips_declare_object_name)
34226 [USE_GNU_UNIQUE_OBJECT]: Support use of gnu_unique_object.
34227
34228 2020-01-27 Martin Liska <mliska@suse.cz>
34229
34230 PR gcov-profile/93403
34231 * tree-profile.c (gimple_init_gcov_profiler): Generate
34232 both __gcov_indirect_call_profiler_v4 and
34233 __gcov_indirect_call_profiler_v4_atomic.
34234
34235 2020-01-27 Richard Sandiford <richard.sandiford@arm.com>
34236
34237 PR target/92822
34238 * config/aarch64/aarch64-simd.md (aarch64_get_half<mode>): New
34239 expander.
34240 (@aarch64_split_simd_mov<mode>): Use it.
34241 (aarch64_simd_mov_from_<mode>low): Add a GPR alternative.
34242 Leave the vec_extract patterns to handle 2-element vectors.
34243 (aarch64_simd_mov_from_<mode>high): Likewise.
34244 (vec_extract<VQMOV_NO2E:mode><Vhalf>): New expander.
34245 (vec_extractv2dfv1df): Likewise.
34246
34247 2020-01-27 Richard Sandiford <richard.sandiford@arm.com>
34248
34249 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Match
34250 jump conditions for *compare_condjump<GPI:mode>.
34251
34252 2020-01-27 David Malcolm <dmalcolm@redhat.com>
34253
34254 PR analyzer/93276
34255 * digraph.cc (test_edge::test_edge): Specify template for base
34256 class initializer.
34257
34258 2020-01-27 Claudiu Zissulescu <claziss@synopsys.com>
34259
34260 * config/arc/arc.c (arc_rtx_costs): Update mul64 cost.
34261
34262 2020-01-27 Claudiu Zissulescu <claziss@synopsys.com>
34263
34264 * config/arc/arc-protos.h (gen_mlo): Remove.
34265 (gen_mhi): Likewise.
34266 * config/arc/arc.c (AUX_MULHI): Define.
34267 (arc_must_save_reister): Special handling for r58/59.
34268 (arc_compute_frame_size): Consider mlo/mhi registers.
34269 (arc_save_callee_saves): Emit fp/sp move only when emit_move
34270 paramter is true.
34271 (arc_conditional_register_usage): Remove TARGET_BIG_ENDIAN from
34272 mlo/mhi name selection.
34273 (arc_restore_callee_saves): Don't early restore blink when ISR.
34274 (arc_expand_prologue): Add mlo/mhi saving.
34275 (arc_expand_epilogue): Add mlo/mhi restoring.
34276 (gen_mlo): Remove.
34277 (gen_mhi): Remove.
34278 * config/arc/arc.h (DBX_REGISTER_NUMBER): Correct register
34279 numbering when MUL64 option is used.
34280 (DWARF2_FRAME_REG_OUT): Define.
34281 * config/arc/arc.md (arc600_stall): New pattern.
34282 (VUNSPEC_ARC_ARC600_STALL): Define.
34283 (mulsi64): Use correct mlo/mhi registers.
34284 (mulsi_600): Clean it up.
34285 * config/arc/predicates.md (mlo_operand): Remove any dependency on
34286 TARGET_BIG_ENDIAN.
34287 (mhi_operand): Likewise.
34288
34289 2020-01-27 Claudiu Zissulescu <claziss@synopsys.com>
34290 Petro Karashchenko <petro.karashchenko@ring.com>
34291
34292 * config/arc/arc.c (arc_is_uncached_mem_p): Check struct
34293 attributes if needed.
34294 (prepare_move_operands): Generate special unspec instruction for
34295 direct access.
34296 (arc_isuncached_mem_p): Propagate uncached attribute to each
34297 structure member.
34298 * config/arc/arc.md (VUNSPEC_ARC_LDDI): Define.
34299 (VUNSPEC_ARC_STDI): Likewise.
34300 (ALLI): New mode iterator.
34301 (mALLI): New mode attribute.
34302 (lddi): New instruction pattern.
34303 (stdi): Likewise.
34304 (stdidi_split): Split instruction for architectures which are not
34305 supporting ll64 option.
34306 (lddidi_split): Likewise.
34307
34308 2020-01-27 Richard Sandiford <richard.sandiford@arm.com>
34309
34310 PR rtl-optimization/92989
34311 * lra-lives.c (process_bb_lives): Update the live-in set before
34312 processing additional clobbers.
34313
34314 2020-01-27 Richard Sandiford <richard.sandiford@arm.com>
34315
34316 PR rtl-optimization/93170
34317 * cselib.c (cselib_invalidate_regno_val): New function, split out
34318 from...
34319 (cselib_invalidate_regno): ...here.
34320 (cselib_invalidated_by_call_p): New function.
34321 (cselib_process_insn): Iterate over all the hard-register entries in
34322 REG_VALUES and invalidate any that cross call-clobbered registers.
34323
34324 2020-01-27 Richard Sandiford <richard.sandiford@arm.com>
34325
34326 * dojump.c (split_comparison): Use HONOR_NANS rather than
34327 HONOR_SNANS when splitting LTGT.
34328
34329 2020-01-27 Martin Liska <mliska@suse.cz>
34330
34331 PR driver/91220
34332 * opts.c (print_filtered_help): Exclude language-specific
34333 options from --help=common unless enabled in all FEs.
34334
34335 2020-01-27 Martin Liska <mliska@suse.cz>
34336
34337 * opts.c (print_help): Exclude params from
34338 all except --help=param.
34339
34340 2020-01-27 Martin Liska <mliska@suse.cz>
34341
34342 PR target/93274
34343 * config/i386/i386-features.c (make_resolver_func):
34344 Align the code with ppc64 target implementation.
34345 Do not generate a unique name for resolver function.
34346
34347 2020-01-27 Richard Biener <rguenther@suse.de>
34348
34349 PR tree-optimization/93397
34350 * tree-vect-slp.c (vect_analyze_slp_instance): Delay
34351 converted reduction chain SLP graph adjustment.
34352
34353 2020-01-26 Marek Polacek <polacek@redhat.com>
34354
34355 PR sanitizer/93436
34356 * sanopt.c (sanitize_rewrite_addressable_params): Avoid crash on
34357 null DECL_NAME.
34358
34359 2020-01-26 Jason Merrill <jason@redhat.com>
34360
34361 PR c++/92601
34362 * tree.c (verify_type_variant): Only verify TYPE_NEEDS_CONSTRUCTING
34363 of complete types.
34364
34365 2020-01-26 Darius Galis <darius.galis@cyberthorstudios.com>
34366
34367 * config/rx/rx.md (setmemsi): Added rx_allow_string_insns constraint
34368 (rx_setmem): Likewise.
34369
34370 2020-01-26 Jakub Jelinek <jakub@redhat.com>
34371
34372 PR target/93412
34373 * config/i386/i386.md (*addv<dwi>4_doubleword, *subv<dwi>4_doubleword):
34374 Use nonimmediate_operand instead of x86_64_hilo_general_operand and
34375 drop <di> from constraint of last operand.
34376
34377 PR target/93430
34378 * config/i386/sse.md (*avx_vperm_broadcast_<mode>): Disallow for
34379 TARGET_AVX2 and V4DFmode not in the split condition, but in the
34380 pattern condition, though allow { 0, 0, 0, 0 } broadcast always.
34381
34382 2020-01-25 Feng Xue <fxue@os.amperecomputing.com>
34383
34384 PR ipa/93166
34385 * ipa-cp.c (get_info_about_necessary_edges): Remove value
34386 check assertion.
34387
34388 2020-01-24 Jeff Law <law@redhat.com>
34389
34390 PR tree-optimization/92788
34391 * tree-ssa-threadedge.c (thread_across_edge): Check EDGE_COMPLEX
34392 not EDGE_ABNORMAL.
34393
34394 2020-01-24 Jakub Jelinek <jakub@redhat.com>
34395
34396 PR target/93395
34397 * config/i386/sse.md (*avx_vperm_broadcast_v4sf,
34398 *avx_vperm_broadcast_<mode>,
34399 <sse2_avx_avx512f>_vpermil<mode><mask_name>,
34400 *<sse2_avx_avx512f>_vpermilp<mode><mask_name>):
34401 Move before avx2_perm<mode>/avx512f_perm<mode>.
34402
34403 PR target/93376
34404 * simplify-rtx.c (simplify_const_unary_operation,
34405 simplify_const_binary_operation): Punt for mode precision above
34406 MAX_BITSIZE_MODE_ANY_INT.
34407
34408 2020-01-24 Andrew Pinski <apinski@marvell.com>
34409
34410 * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): Change
34411 alu.shift_reg to 0.
34412
34413 2020-01-24 Jeff Law <law@redhat.com>
34414
34415 PR target/13721
34416 * config/h8300/h8300.c (h8300_print_operand): Only call byte_reg
34417 for REGs. Call output_operand_lossage to get more reasonable
34418 diagnostics.
34419
34420 2020-01-24 Andrew Stubbs <ams@codesourcery.com>
34421
34422 * config/gcn/gcn-valu.md (vec_cmp<mode>di): Use
34423 gcn_fp_compare_operator.
34424 (vec_cmpu<mode>di): Use gcn_compare_operator.
34425 (vec_cmp<u>v64qidi): Use gcn_compare_operator.
34426 (vec_cmp<mode>di_exec): Use gcn_fp_compare_operator.
34427 (vec_cmpu<mode>di_exec): Use gcn_compare_operator.
34428 (vec_cmp<u>v64qidi_exec): Use gcn_compare_operator.
34429 (vec_cmp<mode>di_dup): Use gcn_fp_compare_operator.
34430 (vec_cmp<mode>di_dup_exec): Use gcn_fp_compare_operator.
34431 (vcond<VEC_ALLREG_MODE:mode><VEC_ALLREG_ALT:mode>): Use
34432 gcn_fp_compare_operator.
34433 (vcond<VEC_ALLREG_MODE:mode><VEC_ALLREG_ALT:mode>_exec): Use
34434 gcn_fp_compare_operator.
34435 (vcondu<VEC_ALLREG_MODE:mode><VEC_ALLREG_INT_MODE:mode>): Use
34436 gcn_fp_compare_operator.
34437 (vcondu<VEC_ALLREG_MODE:mode><VEC_ALLREG_INT_MODE:mode>_exec): Use
34438 gcn_fp_compare_operator.
34439
34440 2020-01-24 Maciej W. Rozycki <macro@wdc.com>
34441
34442 * doc/install.texi (Cross-Compiler-Specific Options): Document
34443 `--with-toolexeclibdir' option.
34444
34445 2020-01-24 Hans-Peter Nilsson <hp@axis.com>
34446
34447 * target.def (flags_regnum): Also mention effect on delay slot filling.
34448 * doc/tm.texi: Regenerate.
34449
34450 2020-01-23 Jeff Law <law@redhat.com>
34451
34452 PR translation/90162
34453 * config/h8300/h8300.c (h8300_option_override): Fix diagnostic text.
34454
34455 2020-01-23 Mikael Tillenius <mti-1@tillenius.com>
34456
34457 PR target/92269
34458 * config/h8300/h8300.h (FUNCTION_PROFILER): Fix emission of
34459 profiling label
34460
34461 2020-01-23 Jakub Jelinek <jakub@redhat.com>
34462
34463 PR rtl-optimization/93402
34464 * postreload.c (reload_combine_recognize_pattern): Don't try to adjust
34465 USE insns.
34466
34467 2020-01-23 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
34468
34469 * config.in: Regenerated.
34470 * config/mips/linux.h (NEED_INDICATE_EXEC_STACK): Define to 1
34471 for TARGET_LIBC_GNUSTACK.
34472 * configure: Regenerated.
34473 * configure.ac: Define TARGET_LIBC_GNUSTACK if glibc version is
34474 found to be 2.31 or greater.
34475
34476 2020-01-23 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
34477
34478 * config/mips/linux.h (NEED_INDICATE_EXEC_STACK): Define to
34479 TARGET_SOFT_FLOAT.
34480 * config/mips/mips.c (TARGET_ASM_FILE_END): Define to ...
34481 (mips_asm_file_end): New function. Delegate to
34482 file_end_indicate_exec_stack if NEED_INDICATE_EXEC_STACK is true.
34483 * config/mips/mips.h (NEED_INDICATE_EXEC_STACK): Define to 0.
34484
34485 2020-01-23 Jakub Jelinek <jakub@redhat.com>
34486
34487 PR target/93376
34488 * config/i386/i386-modes.def (POImode): New mode.
34489 (MAX_BITSIZE_MODE_ANY_INT): Change from 128 to 160.
34490 * config/i386/i386.md (DPWI): New mode attribute.
34491 (addv<mode>4, subv<mode>4): Use <DPWI> instead of <DWI>.
34492 (QWI): Rename to...
34493 (QPWI): ... this. Use POI instead of OI for TImode.
34494 (*addv<dwi>4_doubleword, *addv<dwi>4_doubleword_1,
34495 *subv<dwi>4_doubleword, *subv<dwi>4_doubleword_1): Use <QPWI>
34496 instead of <QWI>.
34497
34498 2020-01-23 Richard Sandiford <richard.sandiford@arm.com>
34499
34500 PR target/93341
34501 * config/aarch64/aarch64.md (UNSPEC_SPECULATION_TRACKER_REV): New
34502 unspec.
34503 (speculation_tracker_rev): New pattern.
34504 * config/aarch64/aarch64-speculation.cc (aarch64_do_track_speculation):
34505 Use speculation_tracker_rev to track the inverse condition.
34506
34507 2020-01-23 Richard Biener <rguenther@suse.de>
34508
34509 PR tree-optimization/93381
34510 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Take
34511 alias-set of the def as argument and record the first one.
34512 (vn_walk_cb_data::first_set): New member.
34513 (vn_reference_lookup_3): Pass the alias-set of the current def
34514 to push_partial_def. Fix alias-set used in the aggregate copy
34515 case.
34516 (vn_reference_lookup): Consistently set *last_vuse_ptr.
34517 * real.c (clear_significand_below): Fix out-of-bound access.
34518
34519 2020-01-23 Jakub Jelinek <jakub@redhat.com>
34520
34521 PR target/93346
34522 * config/i386/i386.md (*bmi2_bzhi_<mode>3_2, *bmi2_bzhi_<mode>3_3):
34523 New define_insn patterns.
34524
34525 2020-01-23 Richard Sandiford <richard.sandiford@arm.com>
34526
34527 * doc/sourcebuild.texi (check-function-bodies): Add an
34528 optional target/xfail selector.
34529
34530 2020-01-23 Richard Sandiford <richard.sandiford@arm.com>
34531
34532 PR rtl-optimization/93124
34533 * auto-inc-dec.c (merge_in_block): Don't add auto inc/decs to
34534 bare USE and CLOBBER insns.
34535
34536 2020-01-22 Andrew Pinski <apinski@marvell.com>
34537
34538 * config/arc/arc.c (output_short_suffix): Check insn for nullness.
34539
34540 2020-01-22 David Malcolm <dmalcolm@redhat.com>
34541
34542 PR analyzer/93307
34543 * gdbinit.in (break-on-saved-diagnostic): Update for move of
34544 diagnostic_manager into "ana" namespace.
34545 * selftest-run-tests.c (selftest::run_tests): Update for move of
34546 selftest::run_analyzer_selftests to
34547 ana::selftest::run_analyzer_selftests.
34548
34549 2020-01-22 Richard Sandiford <richard.sandiford@arm.com>
34550
34551 * cfgexpand.c (union_stack_vars): Update the size.
34552
34553 2020-01-22 Richard Biener <rguenther@suse.de>
34554
34555 PR tree-optimization/93381
34556 * tree-ssa-structalias.c (find_func_aliases): Assume offsetting
34557 throughout, handle all conversions the same.
34558
34559 2020-01-22 Jakub Jelinek <jakub@redhat.com>
34560
34561 PR target/93335
34562 * config/aarch64/aarch64.c (aarch64_expand_subvti): Only use
34563 gen_subdi3_compare1_imm if low_in2 satisfies aarch64_plus_immediate
34564 predicate, not whenever it is CONST_INT. Otherwise, force_reg it.
34565 Call force_reg on high_in2 unconditionally.
34566
34567 2020-01-22 Martin Liska <mliska@suse.cz>
34568
34569 PR tree-optimization/92924
34570 * profile.c (compute_value_histograms): Divide
34571 all counter values.
34572
34573 2020-01-22 Jakub Jelinek <jakub@redhat.com>
34574
34575 PR target/91298
34576 * output.h (assemble_name_resolve): Declare.
34577 * varasm.c (assemble_name_resolve): New function.
34578 (assemble_name): Use it.
34579 * config/i386/i386.h (ASM_OUTPUT_SYMBOL_REF): Define.
34580
34581 2020-01-22 Joseph Myers <joseph@codesourcery.com>
34582
34583 * doc/sourcebuild.texi (Texinfo Manuals, Front End): Refer to
34584 update_web_docs_git instead of update_web_docs_svn.
34585
34586 2020-01-21 Andrew Pinski <apinski@marvell.com>
34587
34588 PR target/9311
34589 * config/aarch64/aarch64.md (tlsgd_small_<mode>): Have operand 0
34590 as PTR mode. Have operand 1 as being modeless, it can be P mode.
34591 (*tlsgd_small_<mode>): Likewise.
34592 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately)
34593 <case SYMBOL_SMALL_TLSGD>: Call gen_tlsgd_small_* with a ptr_mode
34594 register. Convert that register back to dest using convert_mode.
34595
34596 2020-01-21 Jim Wilson <jimw@sifive.com>
34597
34598 * config/riscv/riscv-sr.c (riscv_sr_match_prologue): Use INTVAL
34599 instead of XINT.
34600
34601 2020-01-21 H.J. Lu <hongjiu.lu@intel.com>
34602 Uros Bizjak <ubizjak@gmail.com>
34603
34604 PR target/93319
34605 * config/i386/i386.c (ix86_tls_module_base): Replace Pmode
34606 with ptr_mode.
34607 (legitimize_tls_address): Do GNU2 TLS address computation in
34608 ptr_mode and zero-extend result to Pmode.
34609 * config/i386/i386.md (@tls_dynamic_gnu2_64_<mode>): Replace
34610 :P with :PTR and Pmode with ptr_mode.
34611 (*tls_dynamic_gnu2_lea_64_<mode>): Likewise.
34612 (*tls_dynamic_gnu2_call_64_<mode>): Likewise.
34613 (*tls_dynamic_gnu2_combine_64_<mode>): Likewise.
34614
34615 2020-01-21 Jakub Jelinek <jakub@redhat.com>
34616
34617 PR target/93333
34618 * config/riscv/riscv.c (riscv_rtx_costs) <case ZERO_EXTRACT>: Verify
34619 the last two operands are CONST_INT_P before using them as such.
34620
34621 2020-01-21 Richard Sandiford <richard.sandiford@arm.com>
34622
34623 * config/aarch64/aarch64-sve-builtins.def: Use get_typenode_from_name
34624 to get the integer element types.
34625
34626 2020-01-21 Richard Sandiford <richard.sandiford@arm.com>
34627
34628 * config/aarch64/aarch64-sve-builtins.h
34629 (function_expander::convert_to_pmode): Declare.
34630 * config/aarch64/aarch64-sve-builtins.cc
34631 (function_expander::convert_to_pmode): New function.
34632 (function_expander::get_contiguous_base): Use it.
34633 (function_expander::prepare_gather_address_operands): Likewise.
34634 * config/aarch64/aarch64-sve-builtins-sve2.cc
34635 (svwhilerw_svwhilewr_impl::expand): Likewise.
34636
34637 2020-01-21 Szabolcs Nagy <szabolcs.nagy@arm.com>
34638
34639 PR target/92424
34640 * config/aarch64/aarch64.c (aarch64_declare_function_name): Set
34641 cfun->machine->label_is_assembled.
34642 (aarch64_print_patchable_function_entry): New.
34643 (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY): Define.
34644 * config/aarch64/aarch64.h (struct machine_function): New field,
34645 label_is_assembled.
34646
34647 2020-01-21 David Malcolm <dmalcolm@redhat.com>
34648
34649 PR ipa/93315
34650 * ipa-profile.c (ipa_profile): Delete call_sums and set it to
34651 NULL on exit.
34652
34653 2020-01-18 Jan Hubicka <hubicka@ucw.cz>
34654
34655 PR lto/93318
34656 * cgraph.c (cgraph_edge::resolve_speculation,
34657 cgraph_edge::redirect_call_stmt_to_callee): Fix update of
34658 call_stmt_site_hash.
34659
34660 2020-01-21 Martin Liska <mliska@suse.cz>
34661
34662 * config/rs6000/rs6000.c (common_mode_defined): Remove
34663 unused variable.
34664
34665 2020-01-21 Richard Biener <rguenther@suse.de>
34666
34667 PR tree-optimization/92328
34668 * tree-ssa-sccvn.c (vn_reference_lookup_3): Preserve
34669 type when value-numbering same-sized store by inserting a
34670 VIEW_CONVERT_EXPR.
34671 (eliminate_dom_walker::eliminate_stmt): When eliminating
34672 a redundant store handle bit-reinterpretation of the same value.
34673
34674 2020-01-21 Andrew Pinski <apinski@marvel.com>
34675
34676 PR tree-opt/93321
34677 * tree-into-ssa.c (prepare_block_for_update_1): Split out
34678 from ...
34679 (prepare_block_for_update): This. Use a worklist instead of
34680 recursing.
34681
34682 2020-01-21 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
34683
34684 * config/arm/arm.c (clear_operation_p):
34685 Initialise last_regno, skip first iteration
34686 based on the first_set value and use ints instead
34687 of the unnecessary HOST_WIDE_INTs.
34688
34689 2020-01-21 Jakub Jelinek <jakub@redhat.com>
34690
34691 PR target/93073
34692 * config/rs6000/rs6000.c (rs6000_emit_cmove): If using fsel, punt for
34693 compare_mode other than SFmode or DFmode.
34694
34695 2020-01-21 Kito Cheng <kito.cheng@sifive.com>
34696
34697 PR target/93304
34698 * config/riscv/riscv-protos.h (riscv_hard_regno_rename_ok): New.
34699 * config/riscv/riscv.c (riscv_hard_regno_rename_ok): New.
34700 * config/riscv/riscv.h (HARD_REGNO_RENAME_OK): Defined.
34701
34702 2020-01-20 Wilco Dijkstra <wdijkstr@arm.com>
34703
34704 * config/aarch64/aarch64.c (neoversen1_tunings): Set jump_align to 4.
34705
34706 2020-01-20 Andrew Pinski <apinski@marvell.com>
34707
34708 PR middle-end/93242
34709 * targhooks.c (default_print_patchable_function_entry): Use
34710 output_asm_insn to emit the nop instruction.
34711
34712 2020-01-20 Fangrui Song <maskray@google.com>
34713
34714 PR middle-end/93194
34715 * targhooks.c (default_print_patchable_function_entry): Align to
34716 POINTER_SIZE.
34717
34718 2020-01-20 H.J. Lu <hongjiu.lu@intel.com>
34719
34720 PR target/93319
34721 * config/i386/i386.c (legitimize_tls_address): Pass Pmode to
34722 gen_tls_dynamic_gnu2_64. Compute GNU2 TLS address in ptr_mode.
34723 * config/i386/i386.md (tls_dynamic_gnu2_64): Renamed to ...
34724 (@tls_dynamic_gnu2_64_<mode>): This. Replace DI with P.
34725 (*tls_dynamic_gnu2_lea_64): Renamed to ...
34726 (*tls_dynamic_gnu2_lea_64_<mode>): This. Replace DI with P.
34727 Remove the {q} suffix from lea.
34728 (*tls_dynamic_gnu2_call_64): Renamed to ...
34729 (*tls_dynamic_gnu2_call_64_<mode>): This. Replace DI with P.
34730 (*tls_dynamic_gnu2_combine_64): Renamed to ...
34731 (*tls_dynamic_gnu2_combine_64_<mode>): This. Replace DI with P.
34732 Pass Pmode to gen_tls_dynamic_gnu2_64.
34733
34734 2020-01-20 Wilco Dijkstra <wdijkstr@arm.com>
34735
34736 * config/aarch64/aarch64.h (SLOW_BYTE_ACCESS): Set to 1.
34737
34738 2020-01-20 Richard Sandiford <richard.sandiford@arm.com>
34739
34740 * config/aarch64/aarch64-sve-builtins-base.cc
34741 (svld1ro_impl::memory_vector_mode): Remove parameter name.
34742
34743 2020-01-20 Richard Biener <rguenther@suse.de>
34744
34745 PR debug/92763
34746 * dwarf2out.c (prune_unused_types): Unconditionally mark
34747 called function DIEs.
34748
34749 2020-01-20 Martin Liska <mliska@suse.cz>
34750
34751 PR tree-optimization/93199
34752 * tree-eh.c (struct leh_state): Add
34753 new field outer_non_cleanup.
34754 (cleanup_is_dead_in): Pass leh_state instead
34755 of eh_region. Add a checking that state->outer_non_cleanup
34756 points to outer non-clean up region.
34757 (lower_try_finally): Record outer_non_cleanup
34758 for this_state.
34759 (lower_catch): Likewise.
34760 (lower_eh_filter): Likewise.
34761 (lower_eh_must_not_throw): Likewise.
34762 (lower_cleanup): Likewise.
34763
34764 2020-01-20 Richard Biener <rguenther@suse.de>
34765
34766 PR tree-optimization/93094
34767 * tree-vectorizer.h (vect_loop_versioning): Adjust.
34768 (vect_transform_loop): Likewise.
34769 * tree-vectorizer.c (try_vectorize_loop_1): Pass down
34770 loop_vectorized_call to vect_transform_loop.
34771 * tree-vect-loop.c (vect_transform_loop): Pass down
34772 loop_vectorized_call to vect_loop_versioning.
34773 * tree-vect-loop-manip.c (vect_loop_versioning): Use
34774 the earlier discovered loop_vectorized_call.
34775
34776 2020-01-19 Eric S. Raymond <esr@thyrsus.com>
34777
34778 * doc/contribute.texi: Update for SVN -> Git transition.
34779 * doc/install.texi: Likewise.
34780
34781 2020-01-18 Jan Hubicka <hubicka@ucw.cz>
34782
34783 PR lto/93318
34784 * cgraph.c (cgraph_edge::make_speculative): Increase number of
34785 speculative targets.
34786 (verify_speculative_call): New function
34787 (cgraph_node::verify_node): Use it.
34788 * ipa-profile.c (ipa_profile): Fix formating; do not set number of
34789 speculations.
34790
34791 2020-01-18 Jan Hubicka <hubicka@ucw.cz>
34792
34793 PR lto/93318
34794 * cgraph.c (cgraph_edge::resolve_speculation): Fix foramting.
34795 (cgraph_edge::make_direct): Remove all indirect targets.
34796 (cgraph_edge::redirect_call_stmt_to_callee): Use make_direct..
34797 (cgraph_node::verify_node): Verify that only one call_stmt or
34798 lto_stmt_uid is set.
34799 * cgraphclones.c (cgraph_edge::clone): Set only one call_stmt or
34800 lto_stmt_uid.
34801 * lto-cgraph.c (lto_output_edge): Simplify streaming of stmt.
34802 (lto_output_ref): Simplify streaming of stmt.
34803 * lto-streamer-in.c (fixup_call_stmt_edges_1): Clear lto_stmt_uid.
34804
34805 2020-01-18 Tamar Christina <tamar.christina@arm.com>
34806
34807 * config/aarch64/aarch64-sve-builtins-base.cc (memory_vector_mode):
34808 Mark parameter unused.
34809
34810 2020-01-18 Hans-Peter Nilsson <hp@axis.com>
34811
34812 * config.gcc <obsolete targets>: Add crisv32-*-* and cris-*-linux*
34813
34814 2019-01-18 Gerald Pfeifer <gerald@pfeifer.com>
34815
34816 * varpool.c (ctor_useable_for_folding_p): Fix grammar.
34817
34818 2020-01-18 Iain Sandoe <iain@sandoe.co.uk>
34819
34820 * Makefile.in: Add coroutine-passes.o.
34821 * builtin-types.def (BT_CONST_SIZE): New.
34822 (BT_FN_BOOL_PTR): New.
34823 (BT_FN_PTR_PTR_CONST_SIZE_BOOL): New.
34824 * builtins.def (DEF_COROUTINE_BUILTIN): New.
34825 * coroutine-builtins.def: New file.
34826 * coroutine-passes.cc: New file.
34827 * function.h (struct GTY function): Add a bit to indicate that the
34828 function is a coroutine component.
34829 * internal-fn.c (expand_CO_FRAME): New.
34830 (expand_CO_YIELD): New.
34831 (expand_CO_SUSPN): New.
34832 (expand_CO_ACTOR): New.
34833 * internal-fn.def (CO_ACTOR): New.
34834 (CO_YIELD): New.
34835 (CO_SUSPN): New.
34836 (CO_FRAME): New.
34837 * passes.def: Add pass_coroutine_lower_builtins,
34838 pass_coroutine_early_expand_ifns.
34839 * tree-pass.h (make_pass_coroutine_lower_builtins): New.
34840 (make_pass_coroutine_early_expand_ifns): New.
34841 * doc/invoke.texi: Document the fcoroutines command line
34842 switch.
34843
34844 2020-01-18 Jakub Jelinek <jakub@redhat.com>
34845
34846 * config/arm/vfp.md (*clear_vfp_multiple): Remove unused variable.
34847
34848 PR target/93312
34849 * config/arm/arm.c (clear_operation_p): Don't use REGNO until
34850 after checking the argument is a REG. Don't use REGNO (reg)
34851 again to set last_regno, reuse regno variable instead.
34852
34853 2020-01-17 David Malcolm <dmalcolm@redhat.com>
34854
34855 * doc/analyzer.texi (Limitations): Add note about NaN.
34856
34857 2020-01-17 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
34858 Sudakshina Das <sudi.das@arm.com>
34859
34860 * config/arm/arm.md (ashldi3): Generate thumb2_lsll for both reg
34861 and valid immediate.
34862 (ashrdi3): Generate thumb2_asrl for both reg and valid immediate.
34863 (lshrdi3): Generate thumb2_lsrl for valid immediates.
34864 * config/arm/constraints.md (Pg): New.
34865 * config/arm/predicates.md (long_shift_imm): New.
34866 (arm_reg_or_long_shift_imm): Likewise.
34867 * config/arm/thumb2.md (thumb2_asrl): New immediate alternative.
34868 (thumb2_lsll): Likewise.
34869 (thumb2_lsrl): New.
34870
34871 2020-01-17 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
34872 Sudakshina Das <sudi.das@arm.com>
34873
34874 * config/arm/arm.md (ashldi3): Generate thumb2_lsll for TARGET_HAVE_MVE.
34875 (ashrdi3): Generate thumb2_asrl for TARGET_HAVE_MVE.
34876 * config/arm/arm.c (arm_hard_regno_mode_ok): Allocate even odd
34877 register pairs for doubleword quantities for ARMv8.1M-Mainline.
34878 * config/arm/thumb2.md (thumb2_asrl): New.
34879 (thumb2_lsll): Likewise.
34880
34881 2020-01-17 Jakub Jelinek <jakub@redhat.com>
34882
34883 * config/arm/arm.c (cmse_nonsecure_call_inline_register_clear): Remove
34884 unused variable.
34885
34886 2020-01-17 Alexander Monakov <amonakov@ispras.ru>
34887
34888 * gdbinit.in (help-gcc-hooks): New command.
34889 (pp, pr, prl, pt, pct, pgg, pgq, pgs, pge, pmz, ptc, pdn, ptn, pdd, prc,
34890 pi, pbm, pel, trt): Take $arg0 instead of $ if supplied. Update
34891 documentation.
34892
34893 2020-01-17 Matthew Malcomson <matthew.malcomson@arm.com>
34894
34895 * config/aarch64/aarch64-sve.md (@aarch64_sve_ld1ro<mode>): Use the
34896 correct target macro.
34897
34898 2020-01-17 Matthew Malcomson <matthew.malcomson@arm.com>
34899
34900 * config/aarch64/aarch64-protos.h
34901 (aarch64_sve_ld1ro_operand_p): New.
34902 * config/aarch64/aarch64-sve-builtins-base.cc
34903 (class load_replicate): New.
34904 (class svld1ro_impl): New.
34905 (class svld1rq_impl): Change to inherit from load_replicate.
34906 (svld1ro): New sve intrinsic function base.
34907 * config/aarch64/aarch64-sve-builtins-base.def (svld1ro):
34908 New DEF_SVE_FUNCTION.
34909 * config/aarch64/aarch64-sve-builtins-base.h
34910 (svld1ro): New decl.
34911 * config/aarch64/aarch64-sve-builtins.cc
34912 (function_expander::add_mem_operand): Modify assert to allow
34913 OImode.
34914 * config/aarch64/aarch64-sve.md (@aarch64_sve_ld1ro<mode>): New
34915 pattern.
34916 * config/aarch64/aarch64.c
34917 (aarch64_sve_ld1rq_operand_p): Implement in terms of ...
34918 (aarch64_sve_ld1rq_ld1ro_operand_p): This.
34919 (aarch64_sve_ld1ro_operand_p): New.
34920 * config/aarch64/aarch64.md (UNSPEC_LD1RO): New unspec.
34921 * config/aarch64/constraints.md (UOb,UOh,UOw,UOd): New.
34922 * config/aarch64/predicates.md
34923 (aarch64_sve_ld1ro_operand_{b,h,w,d}): New.
34924
34925 2020-01-17 Matthew Malcomson <matthew.malcomson@arm.com>
34926
34927 * config/aarch64/aarch64-c.c (_ARM_FEATURE_MATMUL_FLOAT64):
34928 Introduce this ACLE specified predefined macro.
34929 * config/aarch64/aarch64-option-extensions.def (f64mm): New.
34930 (fp): Disabling this disables f64mm.
34931 (simd): Disabling this disables f64mm.
34932 (fp16): Disabling this disables f64mm.
34933 (sve): Disabling this disables f64mm.
34934 * config/aarch64/aarch64.h (AARCH64_FL_F64MM): New.
34935 (AARCH64_ISA_F64MM): New.
34936 (TARGET_F64MM): New.
34937 * doc/invoke.texi (f64mm): Document new option.
34938
34939 2020-01-17 Wilco Dijkstra <wdijkstr@arm.com>
34940
34941 * config/aarch64/aarch64.c (generic_tunings): Add branch fusion.
34942 (neoversen1_tunings): Likewise.
34943
34944 2020-01-17 Wilco Dijkstra <wdijkstr@arm.com>
34945
34946 PR target/92692
34947 * config/aarch64/aarch64.c (aarch64_split_compare_and_swap)
34948 Add assert to ensure prolog has been emitted.
34949 (aarch64_split_atomic_op): Likewise.
34950 * config/aarch64/atomics.md (aarch64_compare_and_swap<mode>)
34951 Use epilogue_completed rather than reload_completed.
34952 (aarch64_atomic_exchange<mode>): Likewise.
34953 (aarch64_atomic_<atomic_optab><mode>): Likewise.
34954 (atomic_nand<mode>): Likewise.
34955 (aarch64_atomic_fetch_<atomic_optab><mode>): Likewise.
34956 (atomic_fetch_nand<mode>): Likewise.
34957 (aarch64_atomic_<atomic_optab>_fetch<mode>): Likewise.
34958 (atomic_nand_fetch<mode>): Likewise.
34959
34960 2020-01-17 Richard Sandiford <richard.sandiford@arm.com>
34961
34962 PR target/93133
34963 * config/aarch64/aarch64.h (REVERSIBLE_CC_MODE): Return false
34964 for FP modes.
34965 (REVERSE_CONDITION): Delete.
34966 * config/aarch64/iterators.md (CC_ONLY): New mode iterator.
34967 (CCFP_CCFPE): Likewise.
34968 (e): New mode attribute.
34969 * config/aarch64/aarch64.md (ccmp<GPI:mode>): Rename to...
34970 (@ccmp<CC_ONLY:mode><GPI:mode>): ...this, using CC_ONLY instead of CC.
34971 (fccmp<GPF:mode>, fccmpe<GPF:mode>): Merge into...
34972 (@ccmp<CCFP_CCFPE:mode><GPF:mode>): ...this combined pattern.
34973 (@ccmp<CC_ONLY:mode><GPI:mode>_rev): New pattern.
34974 (@ccmp<CCFP_CCFPE:mode><GPF:mode>_rev): Likewise.
34975 * config/aarch64/aarch64.c (aarch64_gen_compare_reg): Update
34976 name of generator from gen_ccmpdi to gen_ccmpccdi.
34977 (aarch64_gen_ccmp_next): Use code_for_ccmp. If we want to reverse
34978 the previous comparison but aren't able to, use the new ccmp_rev
34979 patterns instead.
34980
34981 2020-01-17 Richard Sandiford <richard.sandiford@arm.com>
34982
34983 * gimplify.c (gimplify_return_expr): Use poly_int_tree_p rather
34984 than testing directly for INTEGER_CST.
34985 (gimplify_target_expr, gimplify_omp_depend): Likewise.
34986
34987 2020-01-17 Jakub Jelinek <jakub@redhat.com>
34988
34989 PR tree-optimization/93292
34990 * tree-vect-stmts.c (vectorizable_comparison): Punt also if
34991 get_vectype_for_scalar_type returns NULL.
34992
34993 2020-01-16 Jan Hubicka <hubicka@ucw.cz>
34994
34995 * params.opt (-param=max-predicted-iterations): Increase range from 0.
34996 * predict.c (estimate_loops): Add 1 to param_max_predicted_iterations.
34997
34998 2020-01-16 Jan Hubicka <hubicka@ucw.cz>
34999
35000 * ipa-fnsummary.c (estimate_calls_size_and_time): Fix formating of
35001 dump.
35002 * params.opt: (max-predicted-iterations): Set bounds.
35003 * predict.c (real_almost_one, real_br_prob_base,
35004 real_inv_br_prob_base, real_one_half, real_bb_freq_max): Remove.
35005 (propagate_freq): Add max_cyclic_prob parameter; cap cyclic
35006 probabilities; do not truncate to reg_br_prob_bases.
35007 (estimate_loops_at_level): Pass max_cyclic_prob.
35008 (estimate_loops): Compute max_cyclic_prob.
35009 (estimate_bb_frequencies): Do not initialize real_*; update calculation
35010 of back edge prob.
35011 * profile-count.c (profile_probability::to_sreal): New.
35012 * profile-count.h (class sreal): Move up in file.
35013 (profile_probability::to_sreal): Declare.
35014
35015 2020-01-16 Stam Markianos-Wright <stam.markianos-wright@arm.com>
35016
35017 * config/arm/arm.c
35018 (arm_invalid_conversion): New function for target hook.
35019 (arm_invalid_unary_op): New function for target hook.
35020 (arm_invalid_binary_op): New function for target hook.
35021
35022 2020-01-16 Stam Markianos-Wright <stam.markianos-wright@arm.com>
35023
35024 * config.gcc: Add arm_bf16.h.
35025 * config/arm/arm-builtins.c (arm_mangle_builtin_type): Fix comment.
35026 (arm_simd_builtin_std_type): Add BFmode.
35027 (arm_init_simd_builtin_types): Define element types for vector types.
35028 (arm_init_bf16_types): New function.
35029 (arm_init_builtins): Add arm_init_bf16_types function call.
35030 * config/arm/arm-modes.def: Add BFmode and V4BF, V8BF vector modes.
35031 * config/arm/arm-simd-builtin-types.def: Add V4BF, V8BF.
35032 * config/arm/arm.c (aapcs_vfp_sub_candidate): Add BFmode.
35033 (arm_hard_regno_mode_ok): Add BFmode and tidy up statements.
35034 (arm_vector_mode_supported_p): Add V4BF, V8BF.
35035 (arm_mangle_type): Add __bf16.
35036 * config/arm/arm.h: Add V4BF, V8BF to VALID_NEON_DREG_MODE,
35037 VALID_NEON_QREG_MODE respectively. Add export arm_bf16_type_node,
35038 arm_bf16_ptr_type_node.
35039 * config/arm/arm.md: Add BFmode to movhf expand, mov pattern and
35040 define_split between ARM registers.
35041 * config/arm/arm_bf16.h: New file.
35042 * config/arm/arm_neon.h: Add arm_bf16.h and Bfloat vector types.
35043 * config/arm/iterators.md: (ANY64_BF, VDXMOV, VHFBF, HFBF, fporbf): New.
35044 (VQXMOV): Add V8BF.
35045 * config/arm/neon.md: Add BF vector types to movhf NEON move patterns.
35046 * config/arm/vfp.md: Add BFmode to movhf patterns.
35047
35048 2020-01-16 Mihail Ionescu <mihail.ionescu@arm.com>
35049 Andre Vieira <andre.simoesdiasvieira@arm.com>
35050
35051 * config/arm/arm-cpus.in (mve, mve_float): New features.
35052 (dsp, mve, mve.fp): New options.
35053 * config/arm/arm.h (TARGET_HAVE_MVE, TARGET_HAVE_MVE_FLOAT): Define.
35054 * config/arm/t-rmprofile: Map v8.1-M multilibs to v8-M.
35055 * doc/invoke.texi: Document the armv8.1-m mve and dps options.
35056
35057 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
35058 Thomas Preud'homme <thomas.preudhomme@arm.com>
35059
35060 * config/arm/arm-cpus.in (ARMv8_1m_main): Redefine as an extension to
35061 Armv8-M Mainline.
35062 * config/arm/arm.c (arm_options_perform_arch_sanity_checks): Remove
35063 error for using -mcmse when targeting Armv8.1-M Mainline.
35064
35065 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
35066 Thomas Preud'homme <thomas.preudhomme@arm.com>
35067
35068 * config/arm/arm.md (nonsecure_call_internal): Do not force memory
35069 address in r4 when targeting Armv8.1-M Mainline.
35070 (nonsecure_call_value_internal): Likewise.
35071 * config/arm/thumb2.md (nonsecure_call_reg_thumb2): Make memory address
35072 a register match_operand again. Emit BLXNS when targeting
35073 Armv8.1-M Mainline.
35074 (nonsecure_call_value_reg_thumb2): Likewise.
35075
35076 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
35077 Thomas Preud'homme <thomas.preudhomme@arm.com>
35078
35079 * config/arm/arm.c (arm_add_cfa_adjust_cfa_note): Declare early.
35080 (cmse_nonsecure_call_inline_register_clear): Define new lazy_fpclear
35081 variable as true when floating-point ABI is not hard. Replace
35082 check against TARGET_HARD_FLOAT_ABI by checks against lazy_fpclear.
35083 Generate VLSTM and VLLDM instruction respectively before and
35084 after a function call to cmse_nonsecure_call function.
35085 * config/arm/unspecs.md (VUNSPEC_VLSTM): Define unspec.
35086 (VUNSPEC_VLLDM): Likewise.
35087 * config/arm/vfp.md (lazy_store_multiple_insn): New define_insn.
35088 (lazy_load_multiple_insn): Likewise.
35089
35090 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
35091 Thomas Preud'homme <thomas.preudhomme@arm.com>
35092
35093 * config/arm/arm.c (vfp_emit_fstmd): Declare early.
35094 (arm_emit_vfp_multi_reg_pop): Likewise.
35095 (cmse_nonsecure_call_inline_register_clear): Abstract number of VFP
35096 registers to clear in max_fp_regno. Emit VPUSH and VPOP to save and
35097 restore callee-saved VFP registers.
35098
35099 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
35100 Thomas Preud'homme <thomas.preudhomme@arm.com>
35101
35102 * config/arm/arm.c (arm_emit_multi_reg_pop): Declare early.
35103 (cmse_nonsecure_call_clear_caller_saved): Rename into ...
35104 (cmse_nonsecure_call_inline_register_clear): This. Save and clear
35105 callee-saved GPRs as well as clear ip register before doing a nonsecure
35106 call then restore callee-saved GPRs after it when targeting
35107 Armv8.1-M Mainline.
35108 (arm_reorg): Adapt to function rename.
35109
35110 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
35111 Thomas Preud'homme <thomas.preudhomme@arm.com>
35112
35113 * config/arm/arm-protos.h (clear_operation_p): Adapt prototype.
35114 * config/arm/arm.c (clear_operation_p): Extend to be able to check a
35115 clear_vfp_multiple pattern based on a new vfp parameter.
35116 (cmse_clear_registers): Generate VSCCLRM to clear VFP registers when
35117 targeting Armv8.1-M Mainline.
35118 (cmse_nonsecure_entry_clear_before_return): Clear VFP registers
35119 unconditionally when targeting Armv8.1-M Mainline architecture. Check
35120 whether VFP registers are available before looking call_used_regs for a
35121 VFP register.
35122 * config/arm/predicates.md (clear_multiple_operation): Adapt to change
35123 of prototype of clear_operation_p.
35124 (clear_vfp_multiple_operation): New predicate.
35125 * config/arm/unspecs.md (VUNSPEC_VSCCLRM_VPR): New volatile unspec.
35126 * config/arm/vfp.md (clear_vfp_multiple): New define_insn.
35127
35128 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
35129 Thomas Preud'homme <thomas.preudhomme@arm.com>
35130
35131 * config/arm/arm-protos.h (clear_operation_p): Declare.
35132 * config/arm/arm.c (clear_operation_p): New function.
35133 (cmse_clear_registers): Generate clear_multiple instruction pattern if
35134 targeting Armv8.1-M Mainline or successor.
35135 (output_return_instruction): Only output APSR register clearing if
35136 Armv8.1-M Mainline instructions not available.
35137 (thumb_exit): Likewise.
35138 * config/arm/predicates.md (clear_multiple_operation): New predicate.
35139 * config/arm/thumb2.md (clear_apsr): New define_insn.
35140 (clear_multiple): Likewise.
35141 * config/arm/unspecs.md (VUNSPEC_CLRM_APSR): New volatile unspec.
35142
35143 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
35144 Thomas Preud'homme <thomas.preudhomme@arm.com>
35145
35146 * config/arm/arm.c (fp_sysreg_names): Declare and define.
35147 (use_return_insn): Also return false for Armv8.1-M Mainline.
35148 (output_return_instruction): Skip FPSCR clearing if Armv8.1-M
35149 Mainline instructions are available.
35150 (arm_compute_frame_layout): Allocate space in frame for FPCXTNS
35151 when targeting Armv8.1-M Mainline Security Extensions.
35152 (arm_expand_prologue): Save FPCXTNS if this is an Armv8.1-M
35153 Mainline entry function.
35154 (cmse_nonsecure_entry_clear_before_return): Clear IP and r4 if
35155 targeting Armv8.1-M Mainline or successor.
35156 (arm_expand_epilogue): Fix indentation of caller-saved register
35157 clearing. Restore FPCXTNS if this is an Armv8.1-M Mainline
35158 entry function.
35159 * config/arm/arm.h (TARGET_HAVE_FP_CMSE): New macro.
35160 (FP_SYSREGS): Likewise.
35161 (enum vfp_sysregs_encoding): Define enum.
35162 (fp_sysreg_names): Declare.
35163 * config/arm/unspecs.md (VUNSPEC_VSTR_VLDR): New volatile unspec.
35164 * config/arm/vfp.md (push_fpsysreg_insn): New define_insn.
35165 (pop_fpsysreg_insn): Likewise.
35166
35167 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
35168 Thomas Preud'homme <thomas.preudhomme@arm.com>
35169
35170 * config/arm/arm-cpus.in (armv8_1m_main): New feature.
35171 (ARMv4, ARMv4t, ARMv5t, ARMv5te, ARMv5tej, ARMv6, ARMv6j, ARMv6k,
35172 ARMv6z, ARMv6kz, ARMv6zk, ARMv6t2, ARMv6m, ARMv7, ARMv7a, ARMv7ve,
35173 ARMv7r, ARMv7m, ARMv7em, ARMv8a, ARMv8_1a, ARMv8_2a, ARMv8_3a,
35174 ARMv8_4a, ARMv8_5a, ARMv8m_base, ARMv8m_main, ARMv8r): Reindent.
35175 (ARMv8_1m_main): New feature group.
35176 (armv8.1-m.main): New architecture.
35177 * config/arm/arm-tables.opt: Regenerate.
35178 * config/arm/arm.c (arm_arch8_1m_main): Define and default initialize.
35179 (arm_option_reconfigure_globals): Initialize arm_arch8_1m_main.
35180 (arm_options_perform_arch_sanity_checks): Error out when targeting
35181 Armv8.1-M Mainline Security Extensions.
35182 * config/arm/arm.h (arm_arch8_1m_main): Declare.
35183
35184 2020-01-16 Stam Markianos-Wright <stam.markianos-wright@arm.com>
35185
35186 * config/aarch64/aarch64-simd-builtins.def (aarch64_bfdot,
35187 aarch64_bfdot_lane, aarch64_bfdot_laneq): New.
35188 * config/aarch64/aarch64-simd.md (aarch64_bfdot, aarch64_bfdot_lane,
35189 aarch64_bfdot_laneq): New.
35190 * config/aarch64/arm_bf16.h (vbfdot_f32, vbfdotq_f32,
35191 vbfdot_lane_f32, vbfdotq_lane_f32, vbfdot_laneq_f32,
35192 vbfdotq_laneq_f32): New.
35193 * config/aarch64/iterators.md (UNSPEC_BFDOT, Vbfdottype,
35194 VBFMLA_W, VBF): New.
35195 (isquadop): Add V4BF, V8BF.
35196
35197 2020-01-16 Stam Markianos-Wright <stam.markianos-wright@arm.com>
35198
35199 * config/aarch64/aarch64-builtins.c: (enum aarch64_type_qualifiers):
35200 New qualifier_lane_quadtup_index, TYPES_TERNOP_SSUS,
35201 TYPES_QUADOPSSUS_LANE_QUADTUP, TYPES_QUADOPSSSU_LANE_QUADTUP.
35202 (aarch64_simd_expand_args): Add case SIMD_ARG_LANE_QUADTUP_INDEX.
35203 (aarch64_simd_expand_builtin): Add qualifier_lane_quadtup_index.
35204 * config/aarch64/aarch64-simd-builtins.def (usdot, usdot_lane,
35205 usdot_laneq, sudot_lane,sudot_laneq): New.
35206 * config/aarch64/aarch64-simd.md (aarch64_usdot): New.
35207 (aarch64_<sur>dot_lane): New.
35208 * config/aarch64/arm_neon.h (vusdot_s32): New.
35209 (vusdotq_s32): New.
35210 (vusdot_lane_s32): New.
35211 (vsudot_lane_s32): New.
35212 * config/aarch64/iterators.md (DOTPROD_I8MM): New iterator.
35213 (UNSPEC_USDOT, UNSPEC_SUDOT): New unspecs.
35214
35215 2020-01-16 Martin Liska <mliska@suse.cz>
35216
35217 * value-prof.c (dump_histogram_value): Fix
35218 obvious spacing issue.
35219
35220 2020-01-16 Andrew Pinski <apinski@marvell.com>
35221
35222 * tree-ssa-sccvn.c(vn_reference_lookup_3): Check lhs for
35223 !storage_order_barrier_p.
35224
35225 2020-01-16 Andrew Pinski <apinski@marvell.com>
35226
35227 * sched-int.h (_dep): Add unused bit-field field for the padding.
35228 * sched-deps.c (init_dep_1): Init unused field.
35229
35230 2020-01-16 Andrew Pinski <apinski@marvell.com>
35231
35232 * optabs.h (create_expand_operand): Initialize target field also.
35233
35234 2020-01-16 Andre Vieira <andre.simoesdiasvieira@arm.com>
35235
35236 PR tree-optimization/92429
35237 * tree-ssa-loop-niter.h (simplify_replace_tree): Add parameter.
35238 * tree-ssa-loop-niter.c (simplify_replace_tree): Add parameter to
35239 control folding.
35240 * tree-vect-loop.c (update_epilogue_vinfo): Do not fold when replacing
35241 tree.
35242
35243 2020-01-16 Richard Sandiford <richard.sandiford@arm.com>
35244
35245 * config/aarch64/aarch64.c (aarch64_split_sve_subreg_move): Apply
35246 aarch64_sve_int_mode to each mode.
35247
35248 2020-01-15 David Malcolm <dmalcolm@redhat.com>
35249
35250 * doc/analyzer.texi (Overview): Add note about
35251 -fdump-ipa-analyzer.
35252
35253 2020-01-15 Wilco Dijkstra <wdijkstr@arm.com>
35254
35255 PR tree-optimization/93231
35256 * tree-ssa-forwprop.c (optimize_count_trailing_zeroes): Check
35257 input_type is unsigned. Use tree_to_shwi for shift constant.
35258 Check CST_STRING element size is CHAR_TYPE_SIZE bits.
35259 (simplify_count_trailing_zeroes): Add test to handle known non-zero
35260 inputs more efficiently.
35261
35262 2020-01-15 Uroš Bizjak <ubizjak@gmail.com>
35263
35264 * config/i386/i386.md (*movsf_internal): Do not require
35265 SSE2 ISA for alternatives 14 and 15.
35266
35267 2020-01-15 Richard Biener <rguenther@suse.de>
35268
35269 PR middle-end/93273
35270 * tree-eh.c (sink_clobbers): If we already visited the destination
35271 block do not defer insertion.
35272 (pass_lower_eh_dispatch::execute): Maintain BB_VISITED for
35273 the purpose of defered insertion.
35274
35275 2020-01-15 Jakub Jelinek <jakub@redhat.com>
35276
35277 * BASE-VER: Bump to 10.0.1.
35278
35279 2020-01-15 Richard Sandiford <richard.sandiford@arm.com>
35280
35281 PR tree-optimization/93247
35282 * tree-vect-loop.c (update_epilogue_loop_vinfo): Check the access
35283 type of the stmt that we're going to vectorize.
35284
35285 2020-01-15 Richard Sandiford <richard.sandiford@arm.com>
35286
35287 * tree-vect-slp.c (vectorize_slp_instance_root_stmt): Use a
35288 VIEW_CONVERT_EXPR if the vectorized constructor has a diffeent
35289 type from the lhs.
35290
35291 2020-01-15 Martin Liska <mliska@suse.cz>
35292
35293 * ipa-profile.c (ipa_profile_read_edge_summary): Do not allow
35294 2 calls of streamer_read_hwi in a function call.
35295
35296 2020-01-15 Richard Biener <rguenther@suse.de>
35297
35298 * alias.c (record_alias_subset): Avoid redundant work when
35299 subset is already recorded.
35300
35301 2020-01-14 David Malcolm <dmalcolm@redhat.com>
35302
35303 * doc/invoke.texi (-fdiagnostics-show-cwe): Add note that some of
35304 the analyzer options provide CWE identifiers.
35305
35306 2020-01-14 David Malcolm <dmalcolm@redhat.com>
35307
35308 * tree-diagnostic-path.cc (path_summary::event_range::print):
35309 When testing for UNKNOWN_LOCATION, look through ad-hoc wrappers
35310 using get_pure_location.
35311
35312 2020-01-15 Jakub Jelinek <jakub@redhat.com>
35313
35314 PR tree-optimization/93262
35315 * tree-ssa-dse.c (maybe_trim_memstar_call): For *_chk builtins,
35316 perform head trimming only if the last argument is constant,
35317 either all ones, or larger or equal to head trim, in the latter
35318 case decrease the last argument by head_trim.
35319
35320 PR tree-optimization/93249
35321 * tree-ssa-dse.c: Include builtins.h and gimple-fold.h.
35322 (maybe_trim_memstar_call): Move head_trim and tail_trim vars to
35323 function body scope, reindent. For BUILTIN_IN_STRNCPY*, don't
35324 perform head trim unless we can prove there are no '\0' chars
35325 from the source among the first head_trim chars.
35326
35327 2020-01-14 David Malcolm <dmalcolm@redhat.com>
35328
35329 * Makefile.in (ANALYZER_OBJS): Add analyzer/function-set.o.
35330
35331 2020-01-15 Jakub Jelinek <jakub@redhat.com>
35332
35333 PR target/93009
35334 * config/i386/sse.md
35335 (*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_1,
35336 *<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_1,
35337 *<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_1,
35338 *<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_1): Use
35339 just a single alternative instead of two, make operands 1 and 2
35340 commutative.
35341
35342 2020-01-14 Jan Hubicka <hubicka@ucw.cz>
35343
35344 PR lto/91576
35345 * ipa-devirt.c (odr_types_equivalent_p): Compare TREE_ADDRESSABLE and
35346 TYPE_MODE.
35347
35348 2020-01-14 David Malcolm <dmalcolm@redhat.com>
35349
35350 * Makefile.in (lang_opt_files): Add analyzer.opt.
35351 (ANALYZER_OBJS): New.
35352 (OBJS): Add digraph.o, graphviz.o, ordered-hash-map-tests.o,
35353 tristate.o and ANALYZER_OBJS.
35354 (TEXI_GCCINT_FILES): Add analyzer.texi.
35355 * common.opt (-fanalyzer): New driver option.
35356 * config.in: Regenerate.
35357 * configure: Regenerate.
35358 * configure.ac (--disable-analyzer, ENABLE_ANALYZER): New option.
35359 (gccdepdir): Also create depdir for "analyzer" subdir.
35360 * digraph.cc: New file.
35361 * digraph.h: New file.
35362 * doc/analyzer.texi: New file.
35363 * doc/gccint.texi ("Static Analyzer") New menu item.
35364 (analyzer.texi): Include it.
35365 * doc/invoke.texi ("Static Analyzer Options"): New list and new section.
35366 ("Warning Options"): Add static analysis warnings to the list.
35367 (-Wno-analyzer-double-fclose): New option.
35368 (-Wno-analyzer-double-free): New option.
35369 (-Wno-analyzer-exposure-through-output-file): New option.
35370 (-Wno-analyzer-file-leak): New option.
35371 (-Wno-analyzer-free-of-non-heap): New option.
35372 (-Wno-analyzer-malloc-leak): New option.
35373 (-Wno-analyzer-possible-null-argument): New option.
35374 (-Wno-analyzer-possible-null-dereference): New option.
35375 (-Wno-analyzer-null-argument): New option.
35376 (-Wno-analyzer-null-dereference): New option.
35377 (-Wno-analyzer-stale-setjmp-buffer): New option.
35378 (-Wno-analyzer-tainted-array-index): New option.
35379 (-Wno-analyzer-use-after-free): New option.
35380 (-Wno-analyzer-use-of-pointer-in-stale-stack-frame): New option.
35381 (-Wno-analyzer-use-of-uninitialized-value): New option.
35382 (-Wanalyzer-too-complex): New option.
35383 (-fanalyzer-call-summaries): New warning.
35384 (-fanalyzer-checker=): New warning.
35385 (-fanalyzer-fine-grained): New warning.
35386 (-fno-analyzer-state-merge): New warning.
35387 (-fno-analyzer-state-purge): New warning.
35388 (-fanalyzer-transitivity): New warning.
35389 (-fanalyzer-verbose-edges): New warning.
35390 (-fanalyzer-verbose-state-changes): New warning.
35391 (-fanalyzer-verbosity=): New warning.
35392 (-fdump-analyzer): New warning.
35393 (-fdump-analyzer-callgraph): New warning.
35394 (-fdump-analyzer-exploded-graph): New warning.
35395 (-fdump-analyzer-exploded-nodes): New warning.
35396 (-fdump-analyzer-exploded-nodes-2): New warning.
35397 (-fdump-analyzer-exploded-nodes-3): New warning.
35398 (-fdump-analyzer-supergraph): New warning.
35399 * doc/sourcebuild.texi (dg-require-dot): New.
35400 (dg-check-dot): New.
35401 * gdbinit.in (break-on-saved-diagnostic): New command.
35402 * graphviz.cc: New file.
35403 * graphviz.h: New file.
35404 * ordered-hash-map-tests.cc: New file.
35405 * ordered-hash-map.h: New file.
35406 * passes.def (pass_analyzer): Add before
35407 pass_ipa_whole_program_visibility.
35408 * selftest-run-tests.c (selftest::run_tests): Call
35409 selftest::ordered_hash_map_tests_cc_tests.
35410 * selftest.h (selftest::ordered_hash_map_tests_cc_tests): New
35411 decl.
35412 * shortest-paths.h: New file.
35413 * timevar.def (TV_ANALYZER): New timevar.
35414 (TV_ANALYZER_SUPERGRAPH): Likewise.
35415 (TV_ANALYZER_STATE_PURGE): Likewise.
35416 (TV_ANALYZER_PLAN): Likewise.
35417 (TV_ANALYZER_SCC): Likewise.
35418 (TV_ANALYZER_WORKLIST): Likewise.
35419 (TV_ANALYZER_DUMP): Likewise.
35420 (TV_ANALYZER_DIAGNOSTICS): Likewise.
35421 (TV_ANALYZER_SHORTEST_PATHS): Likewise.
35422 * tree-pass.h (make_pass_analyzer): New decl.
35423 * tristate.cc: New file.
35424 * tristate.h: New file.
35425
35426 2020-01-14 Uroš Bizjak <ubizjak@gmail.com>
35427
35428 PR target/93254
35429 * config/i386/i386.md (*movsf_internal): Require SSE2 ISA for
35430 alternatives 9 and 10.
35431
35432 2020-01-14 David Malcolm <dmalcolm@redhat.com>
35433
35434 * attribs.c (excl_hash_traits::empty_zero_p): New static constant.
35435 * gcov.c (function_start_pair_hash::empty_zero_p): Likewise.
35436 * graphite.c (struct sese_scev_hash::empty_zero_p): Likewise.
35437 * hash-map-tests.c (selftest::test_nonzero_empty_key): New selftest.
35438 (selftest::hash_map_tests_c_tests): Call it.
35439 * hash-map-traits.h (simple_hashmap_traits::empty_zero_p):
35440 New static constant, using the value of = H::empty_zero_p.
35441 (unbounded_hashmap_traits::empty_zero_p): Likewise, using the value
35442 from default_hash_traits <Value>.
35443 * hash-map.h (hash_map::empty_zero_p): Likewise, using the value
35444 from Traits.
35445 * hash-set-tests.c (value_hash_traits::empty_zero_p): Likewise.
35446 * hash-table.h (hash_table::alloc_entries): Guard the loop of
35447 calls to mark_empty with !Descriptor::empty_zero_p.
35448 (hash_table::empty_slow): Conditionalize the memset call with a
35449 check that Descriptor::empty_zero_p; otherwise, loop through the
35450 entries calling mark_empty on them.
35451 * hash-traits.h (int_hash::empty_zero_p): New static constant.
35452 (pointer_hash::empty_zero_p): Likewise.
35453 (pair_hash::empty_zero_p): Likewise.
35454 * ipa-devirt.c (default_hash_traits <type_pair>::empty_zero_p):
35455 Likewise.
35456 * ipa-prop.c (ipa_bit_ggc_hash_traits::empty_zero_p): Likewise.
35457 (ipa_vr_ggc_hash_traits::empty_zero_p): Likewise.
35458 * profile.c (location_triplet_hash::empty_zero_p): Likewise.
35459 * sanopt.c (sanopt_tree_triplet_hash::empty_zero_p): Likewise.
35460 (sanopt_tree_couple_hash::empty_zero_p): Likewise.
35461 * tree-hasher.h (int_tree_hasher::empty_zero_p): Likewise.
35462 * tree-ssa-sccvn.c (vn_ssa_aux_hasher::empty_zero_p): Likewise.
35463 * tree-vect-slp.c (bst_traits::empty_zero_p): Likewise.
35464 * tree-vectorizer.h
35465 (default_hash_traits<scalar_cond_masked_key>::empty_zero_p):
35466 Likewise.
35467
35468 2020-01-14 Kewen Lin <linkw@gcc.gnu.org>
35469
35470 * cfgloopanal.c (average_num_loop_insns): Free bbs when early return,
35471 fix typo on return value.
35472
35473 2020-01-14 Xiong Hu Luo <luoxhu@linux.ibm.com>
35474
35475 PR ipa/69678
35476 * cgraph.c (symbol_table::create_edge): Init speculative_id and
35477 target_prob.
35478 (cgraph_edge::make_speculative): Add param for setting speculative_id
35479 and target_prob.
35480 (cgraph_edge::speculative_call_info): Update comments and find reference
35481 by speculative_id for multiple indirect targets.
35482 (cgraph_edge::resolve_speculation): Decrease the speculations
35483 for indirect edge, drop it's speculative if not direct target
35484 left. Update comments.
35485 (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
35486 (cgraph_node::dump): Print num_speculative_call_targets.
35487 (cgraph_node::verify_node): Don't report error if speculative
35488 edge not include statement.
35489 (cgraph_edge::num_speculative_call_targets_p): New function.
35490 * cgraph.h (int common_target_id): Remove.
35491 (int common_target_probability): Remove.
35492 (num_speculative_call_targets): New variable.
35493 (make_speculative): Add param for setting speculative_id.
35494 (cgraph_edge::num_speculative_call_targets_p): New declare.
35495 (target_prob): New variable.
35496 (speculative_id): New variable.
35497 * ipa-fnsummary.c (analyze_function_body): Create and duplicate
35498 call summaries for multiple speculative call targets.
35499 * cgraphclones.c (cgraph_node::create_clone): Clone speculative_id.
35500 * ipa-profile.c (struct speculative_call_target): New struct.
35501 (class speculative_call_summary): New class.
35502 (class speculative_call_summaries): New class.
35503 (call_sums): New variable.
35504 (ipa_profile_generate_summary): Generate indirect multiple targets summaries.
35505 (ipa_profile_write_edge_summary): New function.
35506 (ipa_profile_write_summary): Stream out indirect multiple targets summaries.
35507 (ipa_profile_dump_all_summaries): New function.
35508 (ipa_profile_read_edge_summary): New function.
35509 (ipa_profile_read_summary_section): New function.
35510 (ipa_profile_read_summary): Stream in indirect multiple targets summaries.
35511 (ipa_profile): Generate num_speculative_call_targets from
35512 profile summaries.
35513 * ipa-ref.h (speculative_id): New variable.
35514 * ipa-utils.c (ipa_merge_profiles): Update with target_prob.
35515 * lto-cgraph.c (lto_output_edge): Remove indirect common_target_id and
35516 common_target_probability. Stream out speculative_id and
35517 num_speculative_call_targets.
35518 (input_edge): Likewise.
35519 * predict.c (dump_prediction): Remove edges count assert to be
35520 precise.
35521 * symtab.c (symtab_node::create_reference): Init speculative_id.
35522 (symtab_node::clone_references): Clone speculative_id.
35523 (symtab_node::clone_referring): Clone speculative_id.
35524 (symtab_node::clone_reference): Clone speculative_id.
35525 (symtab_node::clear_stmts_in_references): Clear speculative_id.
35526 * tree-inline.c (copy_bb): Duplicate all the speculative edges
35527 if indirect call contains multiple speculative targets.
35528 * value-prof.h (check_ic_target): Remove.
35529 * value-prof.c (gimple_value_profile_transformations):
35530 Use void function gimple_ic_transform.
35531 * value-prof.c (gimple_ic_transform): Handle topn case.
35532 Fix comment typos. Change it to a void function.
35533
35534 2020-01-13 Andrew Pinski <apinski@marvell.com>
35535
35536 * config/aarch64/aarch64-cores.def (octeontx2): New define.
35537 (octeontx2t98): New define.
35538 (octeontx2t96): New define.
35539 (octeontx2t93): New define.
35540 (octeontx2f95): New define.
35541 (octeontx2f95n): New define.
35542 (octeontx2f95mm): New define.
35543 * config/aarch64/aarch64-tune.md: Regenerate.
35544 * doc/invoke.texi (-mcpu=): Document the new cpu types.
35545
35546 2020-01-13 Jason Merrill <jason@redhat.com>
35547
35548 PR c++/33799 - destroy return value if local cleanup throws.
35549 * gimplify.c (gimplify_return_expr): Handle COMPOUND_EXPR.
35550
35551 2020-01-13 Martin Liska <mliska@suse.cz>
35552
35553 * ipa-cp.c (get_max_overall_size): Use newly
35554 renamed param param_ipa_cp_unit_growth.
35555 * params.opt: Remove legacy param name.
35556
35557 2020-01-13 Martin Sebor <msebor@redhat.com>
35558
35559 PR tree-optimization/93213
35560 * tree-ssa-strlen.c (handle_store): Only allow single-byte nul-over-nul
35561 stores to be eliminated.
35562
35563 2020-01-13 Martin Liska <mliska@suse.cz>
35564
35565 * opts.c (print_help): Do not print CL_PARAM
35566 and CL_WARNING for CL_OPTIMIZATION.
35567
35568 2020-01-13 Jonathan Wakely <jwakely@redhat.com>
35569
35570 PR driver/92757
35571 * doc/invoke.texi (Warning Options): Add caveat about some warnings
35572 depending on optimization settings.
35573
35574 2020-01-13 Jakub Jelinek <jakub@redhat.com>
35575
35576 PR tree-optimization/90838
35577 * tree-ssa-forwprop.c (simplify_count_trailing_zeroes): Use
35578 SCALAR_INT_TYPE_MODE directly in CTZ_DEFINED_VALUE_AT_ZERO macro
35579 argument rather than to initialize temporary for targets that
35580 don't use the mode argument at all. Initialize ctzval to avoid
35581 warning at -O0.
35582
35583 2020-01-10 Thomas Schwinge <thomas@codesourcery.com>
35584
35585 * tree.h (OMP_CLAUSE_USE_DEVICE_PTR_IF_PRESENT): New definition.
35586 * tree-core.h: Document it.
35587 * gimplify.c (gimplify_omp_workshare): Set it.
35588 * omp-low.c (lower_omp_target): Use it.
35589 * tree-pretty-print.c (dump_omp_clause): Print it.
35590
35591 * omp-low.c (lower_omp_target) <OMP_CLAUSE_USE_DEVICE_PTR etc.>:
35592 Assert that for OpenACC we always have 'GOMP_MAP_USE_DEVICE_PTR'.
35593
35594 2020-01-10 David Malcolm <dmalcolm@redhat.com>
35595
35596 * Makefile.in (OBJS): Add tree-diagnostic-path.o.
35597 * common.opt (fdiagnostics-path-format=): New option.
35598 (diagnostic_path_format): New enum.
35599 (fdiagnostics-show-path-depths): New option.
35600 * coretypes.h (diagnostic_event_id_t): New forward decl.
35601 * diagnostic-color.c (color_dict): Add "path".
35602 * diagnostic-event-id.h: New file.
35603 * diagnostic-format-json.cc (json_from_expanded_location): Make
35604 non-static.
35605 (json_end_diagnostic): Call context->make_json_for_path if it
35606 exists and the diagnostic has a path.
35607 (diagnostic_output_format_init): Clear context->print_path.
35608 * diagnostic-path.h: New file.
35609 * diagnostic-show-locus.c (colorizer::set_range): Special-case
35610 when printing a run of events in a diagnostic_path so that they
35611 all get the same color.
35612 (layout::m_diagnostic_path_p): New field.
35613 (layout::layout): Initialize it.
35614 (layout::print_any_labels): Don't colorize the label text for an
35615 event in a diagnostic_path.
35616 (gcc_rich_location::add_location_if_nearby): Add
35617 "restrict_to_current_line_spans" and "label" params. Pass the
35618 former to layout.maybe_add_location_range; pass the latter
35619 when calling add_range.
35620 * diagnostic.c: Include "diagnostic-path.h".
35621 (diagnostic_initialize): Initialize context->path_format and
35622 context->show_path_depths.
35623 (diagnostic_show_any_path): New function.
35624 (diagnostic_path::interprocedural_p): New function.
35625 (diagnostic_report_diagnostic): Call diagnostic_show_any_path.
35626 (simple_diagnostic_path::num_events): New function.
35627 (simple_diagnostic_path::get_event): New function.
35628 (simple_diagnostic_path::add_event): New function.
35629 (simple_diagnostic_event::simple_diagnostic_event): New ctor.
35630 (simple_diagnostic_event::~simple_diagnostic_event): New dtor.
35631 (debug): New overload taking a diagnostic_path *.
35632 * diagnostic.def (DK_DIAGNOSTIC_PATH): New.
35633 * diagnostic.h (enum diagnostic_path_format): New enum.
35634 (json::value): New forward decl.
35635 (diagnostic_context::path_format): New field.
35636 (diagnostic_context::show_path_depths): New field.
35637 (diagnostic_context::print_path): New callback field.
35638 (diagnostic_context::make_json_for_path): New callback field.
35639 (diagnostic_show_any_path): New decl.
35640 (json_from_expanded_location): New decl.
35641 * doc/invoke.texi (-fdiagnostics-path-format=): New option.
35642 (-fdiagnostics-show-path-depths): New option.
35643 (-fdiagnostics-color): Add "path" to description of default
35644 GCC_COLORS; describe it.
35645 (-fdiagnostics-format=json): Document how diagnostic paths are
35646 represented in the JSON output format.
35647 * gcc-rich-location.h (gcc_rich_location::add_location_if_nearby):
35648 Add optional params "restrict_to_current_line_spans" and "label".
35649 * opts.c (common_handle_option): Handle
35650 OPT_fdiagnostics_path_format_ and
35651 OPT_fdiagnostics_show_path_depths.
35652 * pretty-print.c: Include "diagnostic-event-id.h".
35653 (pp_format): Implement "%@" format code for printing
35654 diagnostic_event_id_t *.
35655 (selftest::test_pp_format): Add tests for "%@".
35656 * selftest-run-tests.c (selftest::run_tests): Call
35657 selftest::tree_diagnostic_path_cc_tests.
35658 * selftest.h (selftest::tree_diagnostic_path_cc_tests): New decl.
35659 * toplev.c (general_init): Initialize global_dc->path_format and
35660 global_dc->show_path_depths.
35661 * tree-diagnostic-path.cc: New file.
35662 * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Make
35663 non-static. Drop "diagnostic" param in favor of storing the
35664 original value of "where" and re-using it.
35665 (virt_loc_aware_diagnostic_finalizer): Update for dropped param of
35666 maybe_unwind_expanded_macro_loc.
35667 (tree_diagnostics_defaults): Initialize context->print_path and
35668 context->make_json_for_path.
35669 * tree-diagnostic.h (default_tree_diagnostic_path_printer): New
35670 decl.
35671 (default_tree_make_json_for_path): New decl.
35672 (maybe_unwind_expanded_macro_loc): New decl.
35673
35674 2020-01-10 Jakub Jelinek <jakub@redhat.com>
35675
35676 PR tree-optimization/93210
35677 * fold-const.h (native_encode_initializer,
35678 can_native_interpret_type_p): Declare.
35679 * fold-const.c (native_encode_string): Fix up handling with off != -1,
35680 simplify.
35681 (native_encode_initializer): New function, moved from dwarf2out.c.
35682 Adjust to native_encode_expr compatible arguments, including dry-run
35683 and partial extraction modes. Don't handle STRING_CST.
35684 (can_native_interpret_type_p): No longer static.
35685 * gimple-fold.c (fold_ctor_reference): For native_encode_expr, verify
35686 offset / BITS_PER_UNIT fits into int and don't call it if
35687 can_native_interpret_type_p fails. If suboff is NULL and for
35688 CONSTRUCTOR fold_{,non}array_ctor_reference returns NULL, retry with
35689 native_encode_initializer.
35690 (fold_const_aggregate_ref_1): Formatting fix.
35691 * dwarf2out.c (native_encode_initializer): Moved to fold-const.c.
35692 (tree_add_const_value_attribute): Adjust caller.
35693
35694 PR tree-optimization/90838
35695 * tree-ssa-forwprop.c (simplify_count_trailing_zeroes): Use
35696 SCALAR_INT_TYPE_MODE instead of TYPE_MODE as operand of
35697 CTZ_DEFINED_VALUE_AT_ZERO.
35698
35699 2020-01-10 Vladimir Makarov <vmakarov@redhat.com>
35700
35701 PR inline-asm/93027
35702 * lra-constraints.c (match_reload): Permit input operands have the
35703 same mode as output while other input operands have a different
35704 mode.
35705
35706 2020-01-10 Wilco Dijkstra <wdijkstr@arm.com>
35707
35708 PR tree-optimization/90838
35709 * tree-ssa-forwprop.c (check_ctz_array): Add new function.
35710 (check_ctz_string): Likewise.
35711 (optimize_count_trailing_zeroes): Likewise.
35712 (simplify_count_trailing_zeroes): Likewise.
35713 (pass_forwprop::execute): Try ctz simplification.
35714 * match.pd: Add matching for ctz idioms.
35715
35716 2020-01-10 Stam Markianos-Wright <stam.markianos-wright@arm.com>
35717
35718 * config/aarch64/aarch64.c (aarch64_invalid_conversion): New function
35719 for target hook.
35720 (aarch64_invalid_unary_op): New function for target hook.
35721 (aarch64_invalid_binary_op): New function for target hook.
35722
35723 2020-01-10 Stam Markianos-Wright <stam.markianos-wright@arm.com>
35724
35725 * config.gcc: Add arm_bf16.h.
35726 * config/aarch64/aarch64-builtins.c
35727 (aarch64_simd_builtin_std_type): Add BFmode.
35728 (aarch64_init_simd_builtin_types): Define element types for vector
35729 types.
35730 (aarch64_init_bf16_types): New function.
35731 (aarch64_general_init_builtins): Add arm_init_bf16_types function call.
35732 * config/aarch64/aarch64-modes.def: Add BFmode and V4BF, V8BF vector
35733 modes.
35734 * config/aarch64/aarch64-simd-builtin-types.def: Add BF SIMD types.
35735 * config/aarch64/aarch64-simd.md: Add BF vector types to NEON move
35736 patterns.
35737 * config/aarch64/aarch64.h (AARCH64_VALID_SIMD_DREG_MODE): Add V4BF.
35738 (AARCH64_VALID_SIMD_QREG_MODE): Add V8BF.
35739 * config/aarch64/aarch64.c
35740 (aarch64_classify_vector_mode): Add support for BF types.
35741 (aarch64_gimplify_va_arg_expr): Add support for BF types.
35742 (aarch64_vq_mode): Add support for BF types.
35743 (aarch64_simd_container_mode): Add support for BF types.
35744 (aarch64_mangle_type): Add support for BF scalar type.
35745 * config/aarch64/aarch64.md: Add BFmode to movhf pattern.
35746 * config/aarch64/arm_bf16.h: New file.
35747 * config/aarch64/arm_neon.h: Add arm_bf16.h and Bfloat vector types.
35748 * config/aarch64/iterators.md: Add BF types to mode attributes.
35749 (HFBF, GPF_TF_F16_MOV, VDMOV, VQMOV, VQMOV_NO2Em VALL_F16MOV): New.
35750
35751 2020-01-10 Jason Merrill <jason@redhat.com>
35752
35753 PR c++/93173 - incorrect tree sharing.
35754 * gimplify.c (copy_if_shared): No longer static.
35755 * gimplify.h: Declare it.
35756
35757 2020-01-10 Richard Sandiford <richard.sandiford@arm.com>
35758
35759 * doc/invoke.texi (-msve-vector-bits=): Document that
35760 -msve-vector-bits=128 now generates VL-specific code for
35761 little-endian targets.
35762 * config/aarch64/aarch64-sve-builtins.cc (register_builtin_types): Use
35763 build_vector_type_for_mode to construct the data vector types.
35764 * config/aarch64/aarch64.c (aarch64_convert_sve_vector_bits): Generate
35765 VL-specific code for -msve-vector-bits=128 on little-endian targets.
35766 (aarch64_simd_container_mode): Always prefer Advanced SIMD modes
35767 for 128-bit vectors.
35768
35769 2020-01-10 Richard Sandiford <richard.sandiford@arm.com>
35770
35771 * config/aarch64/aarch64.c (aarch64_evpc_sel): Fix gen_vcond_mask
35772 invocation.
35773
35774 2020-01-10 Richard Sandiford <richard.sandiford@arm.com>
35775
35776 * config/aarch64/aarch64-builtins.c
35777 (aarch64_builtin_vectorized_function): Check for specific vector modes,
35778 rather than checking the number of elements and the element mode.
35779
35780 2020-01-10 Richard Sandiford <richard.sandiford@arm.com>
35781
35782 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
35783 get_related_vectype_for_scalar_type rather than build_vector_type
35784 to create the index type for a conditional reduction.
35785
35786 2020-01-10 Richard Sandiford <richard.sandiford@arm.com>
35787
35788 * tree-vect-loop.c (update_epilogue_loop_vinfo): Update DR_REF
35789 for any type of gather or scatter, including strided accesses.
35790
35791 2020-01-10 Andre Vieira <andre.simoesdiasvieira@arm.com>
35792
35793 * tree-vectorizer.h (get_dr_vinfo_offset): Add missing function
35794 comment.
35795
35796 2020-01-10 Andre Vieira <andre.simoesdiasvieira@arm.com>
35797
35798 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Use
35799 get_dr_vinfo_offset
35800 * tree-vect-loop.c (update_epilogue_loop_vinfo): Remove orig_drs_init
35801 parameter and its use to reset DR_OFFSET's.
35802 (vect_transform_loop): Remove orig_drs_init argument.
35803 * tree-vect-loop-manip.c (vect_update_init_of_dr): Update the offset
35804 member of dr_vec_info rather than the offset of the associated
35805 data_reference's innermost_loop_behavior.
35806 (vect_update_init_of_dr): Pass dr_vec_info instead of data_reference.
35807 (vect_do_peeling): Remove orig_drs_init parameter and its construction.
35808 * tree-vect-stmts.c (check_scan_store): Replace use of DR_OFFSET with
35809 get_dr_vinfo_offset.
35810 (vectorizable_store): Likewise.
35811 (vectorizable_load): Likewise.
35812
35813 2020-01-10 Richard Biener <rguenther@suse.de>
35814
35815 * gimple-ssa-store-merging
35816 (pass_store_merging::terminate_all_aliasing_chains): Cache alias info.
35817
35818 2020-01-10 Martin Liska <mliska@suse.cz>
35819
35820 PR ipa/93217
35821 * ipa-inline-analysis.c (offline_size): Make proper parenthesis
35822 encapsulation that was there before r280040.
35823
35824 2020-01-10 Richard Biener <rguenther@suse.de>
35825
35826 PR middle-end/93199
35827 * tree-eh.c (sink_clobbers): Move clobbers to out-of-IL
35828 sequences to avoid walking them again for secondary opportunities.
35829 (pass_lower_eh_dispatch::execute): Instead actually insert
35830 them here.
35831
35832 2020-01-10 Richard Biener <rguenther@suse.de>
35833
35834 PR middle-end/93199
35835 * tree-eh.c (redirect_eh_edge_1): Avoid some work if possible.
35836 (cleanup_all_empty_eh): Walk landing pads in reverse order to
35837 avoid quadraticness.
35838
35839 2020-01-10 Martin Jambor <mjambor@suse.cz>
35840
35841 * params.opt (param_ipa_sra_max_replacements): Mark as Optimization.
35842 * ipa-sra.c (pull_accesses_from_callee): New parameter caller, use it
35843 to get param_ipa_sra_max_replacements.
35844 (param_splitting_across_edge): Pass the caller to
35845 pull_accesses_from_callee.
35846
35847 2020-01-10 Martin Jambor <mjambor@suse.cz>
35848
35849 * params.opt (param_ipcp_unit_growth): Mark as Optimization.
35850 * ipa-cp.c (max_new_size): Removed.
35851 (orig_overall_size): New variable.
35852 (get_max_overall_size): New function.
35853 (estimate_local_effects): Use it. Adjust dump.
35854 (decide_about_value): Likewise.
35855 (ipcp_propagate_stage): Do not calculate max_new_size, just store
35856 orig_overall_size. Adjust dump.
35857 (ipa_cp_c_finalize): Clear orig_overall_size instead of max_new_size.
35858
35859 2020-01-10 Martin Jambor <mjambor@suse.cz>
35860
35861 * params.opt (param_ipa_max_agg_items): Mark as Optimization
35862 * ipa-cp.c (merge_agg_lats_step): New parameter max_agg_items, use
35863 instead of param_ipa_max_agg_items.
35864 (merge_aggregate_lattices): Extract param_ipa_max_agg_items from
35865 optimization info for the callee.
35866
35867 2020-01-09 Kwok Cheung Yeung <kcy@codesourcery.com>
35868
35869 * lto-streamer-in.c (input_function): Remove streamed-in inline debug
35870 markers if debug_inline_points is false.
35871
35872 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
35873
35874 * config.gcc (aarch64*-*-*): Add aarch64-sve-builtins-sve2.o to
35875 extra_objs.
35876 * config/aarch64/t-aarch64 (aarch64-sve-builtins.o): Depend on
35877 aarch64-sve-builtins-base.def, aarch64-sve-builtins-sve2.def and
35878 aarch64-sve-builtins-sve2.h.
35879 (aarch64-sve-builtins-sve2.o): New rule.
35880 * config/aarch64/aarch64.h (AARCH64_ISA_SVE2_AES): New macro.
35881 (AARCH64_ISA_SVE2_BITPERM, AARCH64_ISA_SVE2_SHA3): Likewise.
35882 (AARCH64_ISA_SVE2_SM4, TARGET_SVE2_AES, TARGET_SVE2_BITPERM): Likewise.
35883 (TARGET_SVE2_SHA, TARGET_SVE2_SM4): Likewise.
35884 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Handle
35885 TARGET_SVE2_AES, TARGET_SVE2_BITPERM, TARGET_SVE2_SHA3 and
35886 TARGET_SVE2_SM4.
35887 * config/aarch64/aarch64-sve.md: Update comments with SVE2
35888 instructions that are handled here.
35889 (@cond_asrd<mode>): Generalize to...
35890 (@cond_<SVE_INT_SHIFT_IMM:sve_int_op><mode>): ...this.
35891 (*cond_asrd<mode>_2): Generalize to...
35892 (*cond_<SVE_INT_SHIFT_IMM:sve_int_op><mode>_2): ...this.
35893 (*cond_asrd<mode>_z): Generalize to...
35894 (*cond_<SVE_INT_SHIFT_IMM:sve_int_op><mode>_z): ...this.
35895 * config/aarch64/aarch64.md (UNSPEC_LDNT1_GATHER): New unspec.
35896 (UNSPEC_STNT1_SCATTER, UNSPEC_WHILEGE, UNSPEC_WHILEGT): Likewise.
35897 (UNSPEC_WHILEHI, UNSPEC_WHILEHS): Likewise.
35898 * config/aarch64/aarch64-sve2.md (@aarch64_gather_ldnt<mode>): New
35899 pattern.
35900 (@aarch64_gather_ldnt_<ANY_EXTEND:optab><SVE_FULL_SDI:mode><SVE_PARTIAL_I:mode>)
35901 (@aarch64_scatter_stnt<mode>): Likewise.
35902 (@aarch64_scatter_stnt_<SVE_FULL_SDI:mode><SVE_PARTIAL_I:mode>)
35903 (@aarch64_mul_lane_<mode>): Likewise.
35904 (@aarch64_sve_suqadd<mode>_const): Likewise.
35905 (*<sur>h<addsub><mode>): Generalize to...
35906 (@aarch64_pred_<SVE2_COND_INT_BINARY_REV:sve_int_op><mode>): ...this
35907 new pattern.
35908 (@cond_<SVE2_COND_INT_BINARY:sve_int_op><mode>): New expander.
35909 (*cond_<SVE2_COND_INT_BINARY:sve_int_op><mode>_2): New pattern.
35910 (*cond_<SVE2_COND_INT_BINARY:sve_int_op><mode>_3): Likewise.
35911 (*cond_<SVE2_COND_INT_BINARY:sve_int_op><mode>_any): Likewise.
35912 (*cond_<SVE2_COND_INT_BINARY_NOREV:sve_int_op><mode>_z): Likewise.
35913 (@aarch64_sve_<SVE2_INT_BINARY:sve_int_op><mode>):: Likewise.
35914 (@aarch64_sve_<SVE2_INT_BINARY:sve_int_op>_lane_<mode>): Likewise.
35915 (@aarch64_pred_<SVE2_COND_INT_SHIFT:sve_int_op><mode>): Likewise.
35916 (@cond_<SVE2_COND_INT_SHIFT:sve_int_op><mode>): New expander.
35917 (*cond_<SVE2_COND_INT_SHIFT:sve_int_op><mode>_2): New pattern.
35918 (*cond_<SVE2_COND_INT_SHIFT:sve_int_op><mode>_3): Likewise.
35919 (*cond_<SVE2_COND_INT_SHIFT:sve_int_op><mode>_any): Likewise.
35920 (@aarch64_sve_<SVE2_INT_TERNARY:sve_int_op><mode>): Likewise.
35921 (@aarch64_sve_<SVE2_INT_TERNARY_LANE:sve_int_op>_lane_<mode>)
35922 (@aarch64_sve_add_mul_lane_<mode>): Likewise.
35923 (@aarch64_sve_sub_mul_lane_<mode>): Likewise.
35924 (@aarch64_sve2_xar<mode>): Likewise.
35925 (@aarch64_sve2_bcax<mode>): Likewise.
35926 (*aarch64_sve2_eor3<mode>): Rename to...
35927 (@aarch64_sve2_eor3<mode>): ...this.
35928 (@aarch64_sve2_bsl<mode>): New expander.
35929 (@aarch64_sve2_nbsl<mode>): Likewise.
35930 (@aarch64_sve2_bsl1n<mode>): Likewise.
35931 (@aarch64_sve2_bsl2n<mode>): Likewise.
35932 (@aarch64_sve_add_<SHIFTRT:sve_int_op><mode>): Likewise.
35933 (*aarch64_sve2_sra<mode>): Add MOVPRFX support.
35934 (@aarch64_sve_add_<VRSHR_N:sve_int_op><mode>): New pattern.
35935 (@aarch64_sve_<SVE2_INT_SHIFT_INSERT:sve_int_op><mode>): Likewise.
35936 (@aarch64_sve2_<USMAX:su>aba<mode>): New expander.
35937 (*aarch64_sve2_<USMAX:su>aba<mode>): New pattern.
35938 (@aarch64_sve_<SVE2_INT_BINARY_WIDE:sve_int_op><mode>): Likewise.
35939 (<su>mull<bt><Vwide>): Generalize to...
35940 (@aarch64_sve_<SVE2_INT_BINARY_LONG:sve_int_op><mode>): ...this new
35941 pattern.
35942 (@aarch64_sve_<SVE2_INT_BINARY_LONG_lANE:sve_int_op>_lane_<mode>)
35943 (@aarch64_sve_<SVE2_INT_SHIFT_IMM_LONG:sve_int_op><mode>)
35944 (@aarch64_sve_add_<SVE2_INT_ADD_BINARY_LONG:sve_int_op><mode>)
35945 (@aarch64_sve_add_<SVE2_INT_ADD_BINARY_LONG_LANE:sve_int_op>_lane_<mode>)
35946 (@aarch64_sve_qadd_<SVE2_INT_QADD_BINARY_LONG:sve_int_op><mode>)
35947 (@aarch64_sve_qadd_<SVE2_INT_QADD_BINARY_LONG_LANE:sve_int_op>_lane_<mode>)
35948 (@aarch64_sve_sub_<SVE2_INT_SUB_BINARY_LONG:sve_int_op><mode>)
35949 (@aarch64_sve_sub_<SVE2_INT_SUB_BINARY_LONG_LANE:sve_int_op>_lane_<mode>)
35950 (@aarch64_sve_qsub_<SVE2_INT_QSUB_BINARY_LONG:sve_int_op><mode>)
35951 (@aarch64_sve_qsub_<SVE2_INT_QSUB_BINARY_LONG_LANE:sve_int_op>_lane_<mode>)
35952 (@aarch64_sve_<SVE2_FP_TERNARY_LONG:sve_fp_op><mode>): New patterns.
35953 (@aarch64_<SVE2_FP_TERNARY_LONG_LANE:sve_fp_op>_lane_<mode>)
35954 (@aarch64_sve_<SVE2_INT_UNARY_NARROWB:sve_int_op><mode>): Likewise.
35955 (@aarch64_sve_<SVE2_INT_UNARY_NARROWT:sve_int_op><mode>): Likewise.
35956 (@aarch64_sve_<SVE2_INT_BINARY_NARROWB:sve_int_op><mode>): Likewise.
35957 (@aarch64_sve_<SVE2_INT_BINARY_NARROWT:sve_int_op><mode>): Likewise.
35958 (<SHRNB:r>shrnb<mode>): Generalize to...
35959 (@aarch64_sve_<SVE2_INT_SHIFT_IMM_NARROWB:sve_int_op><mode>): ...this
35960 new pattern.
35961 (<SHRNT:r>shrnt<mode>): Generalize to...
35962 (@aarch64_sve_<SVE2_INT_SHIFT_IMM_NARROWT:sve_int_op><mode>): ...this
35963 new pattern.
35964 (@aarch64_pred_<SVE2_INT_BINARY_PAIR:sve_int_op><mode>): New pattern.
35965 (@aarch64_pred_<SVE2_FP_BINARY_PAIR:sve_fp_op><mode>): Likewise.
35966 (@cond_<SVE2_INT_BINARY_PAIR_LONG:sve_int_op><mode>): New expander.
35967 (*cond_<SVE2_INT_BINARY_PAIR_LONG:sve_int_op><mode>_2): New pattern.
35968 (*cond_<SVE2_INT_BINARY_PAIR_LONG:sve_int_op><mode>_z): Likewise.
35969 (@aarch64_sve_<SVE2_INT_CADD:optab><mode>): Likewise.
35970 (@aarch64_sve_<SVE2_INT_CMLA:optab><mode>): Likewise.
35971 (@aarch64_<SVE2_INT_CMLA:optab>_lane_<mode>): Likewise.
35972 (@aarch64_sve_<SVE2_INT_CDOT:optab><mode>): Likewise.
35973 (@aarch64_<SVE2_INT_CDOT:optab>_lane_<mode>): Likewise.
35974 (@aarch64_pred_<SVE2_COND_FP_UNARY_LONG:sve_fp_op><mode>): Likewise.
35975 (@cond_<SVE2_COND_FP_UNARY_LONG:sve_fp_op><mode>): New expander.
35976 (*cond_<SVE2_COND_FP_UNARY_LONG:sve_fp_op><mode>): New pattern.
35977 (@aarch64_sve2_cvtnt<mode>): Likewise.
35978 (@aarch64_pred_<SVE2_COND_FP_UNARY_NARROWB:sve_fp_op><mode>): Likewise.
35979 (@cond_<SVE2_COND_FP_UNARY_NARROWB:sve_fp_op><mode>): New expander.
35980 (*cond_<SVE2_COND_FP_UNARY_NARROWB:sve_fp_op><mode>_any): New pattern.
35981 (@aarch64_sve2_cvtxnt<mode>): Likewise.
35982 (@aarch64_pred_<SVE2_U32_UNARY:sve_int_op><mode>): Likewise.
35983 (@cond_<SVE2_U32_UNARY:sve_int_op><mode>): New expander.
35984 (*cond_<SVE2_U32_UNARY:sve_int_op><mode>): New pattern.
35985 (@aarch64_pred_<SVE2_COND_INT_UNARY_FP:sve_fp_op><mode>): Likewise.
35986 (@cond_<SVE2_COND_INT_UNARY_FP:sve_fp_op><mode>): New expander.
35987 (*cond_<SVE2_COND_INT_UNARY_FP:sve_fp_op><mode>): New pattern.
35988 (@aarch64_sve2_pmul<mode>): Likewise.
35989 (@aarch64_sve_<SVE2_PMULL:optab><mode>): Likewise.
35990 (@aarch64_sve_<SVE2_PMULL_PAIR:optab><mode>): Likewise.
35991 (@aarch64_sve2_tbl2<mode>): Likewise.
35992 (@aarch64_sve2_tbx<mode>): Likewise.
35993 (@aarch64_sve_<SVE2_INT_BITPERM:sve_int_op><mode>): Likewise.
35994 (@aarch64_sve2_histcnt<mode>): Likewise.
35995 (@aarch64_sve2_histseg<mode>): Likewise.
35996 (@aarch64_pred_<SVE2_MATCH:sve_int_op><mode>): Likewise.
35997 (*aarch64_pred_<SVE2_MATCH:sve_int_op><mode>_cc): Likewise.
35998 (*aarch64_pred_<SVE2_MATCH:sve_int_op><mode>_ptest): Likewise.
35999 (aarch64_sve2_aes<CRYPTO_AES:aes_op>): Likewise.
36000 (aarch64_sve2_aes<CRYPTO_AESMC:aesmc_op>): Likewise.
36001 (*aarch64_sve2_aese_fused, *aarch64_sve2_aesd_fused): Likewise.
36002 (aarch64_sve2_rax1, aarch64_sve2_sm4e, aarch64_sve2_sm4ekey): Likewise.
36003 (<su>mulh<r>s<mode>3): Update after above pattern name changes.
36004 * config/aarch64/iterators.md (VNx16QI_ONLY, VNx4SF_ONLY)
36005 (SVE_STRUCT2, SVE_FULL_BHI, SVE_FULL_HSI, SVE_FULL_HDI)
36006 (SVE2_PMULL_PAIR_I): New mode iterators.
36007 (UNSPEC_ADCLB, UNSPEC_ADCLT, UNSPEC_ADDHNB, UNSPEC_ADDHNT, UNSPEC_BDEP)
36008 (UNSPEC_BEXT, UNSPEC_BGRP, UNSPEC_CADD90, UNSPEC_CADD270, UNSPEC_CDOT)
36009 (UNSPEC_CDOT90, UNSPEC_CDOT180, UNSPEC_CDOT270, UNSPEC_CMLA)
36010 (UNSPEC_CMLA90, UNSPEC_CMLA180, UNSPEC_CMLA270, UNSPEC_COND_FCVTLT)
36011 (UNSPEC_COND_FCVTNT, UNSPEC_COND_FCVTX, UNSPEC_COND_FCVTXNT)
36012 (UNSPEC_COND_FLOGB, UNSPEC_EORBT, UNSPEC_EORTB, UNSPEC_FADDP)
36013 (UNSPEC_FMAXP, UNSPEC_FMAXNMP, UNSPEC_FMLALB, UNSPEC_FMLALT)
36014 (UNSPEC_FMLSLB, UNSPEC_FMLSLT, UNSPEC_FMINP, UNSPEC_FMINNMP)
36015 (UNSPEC_HISTCNT, UNSPEC_HISTSEG, UNSPEC_MATCH, UNSPEC_NMATCH)
36016 (UNSPEC_PMULLB, UNSPEC_PMULLB_PAIR, UNSPEC_PMULLT, UNSPEC_PMULLT_PAIR)
36017 (UNSPEC_RADDHNB, UNSPEC_RADDHNT, UNSPEC_RSUBHNB, UNSPEC_RSUBHNT)
36018 (UNSPEC_SLI, UNSPEC_SRI, UNSPEC_SABDLB, UNSPEC_SABDLT, UNSPEC_SADDLB)
36019 (UNSPEC_SADDLBT, UNSPEC_SADDLT, UNSPEC_SADDWB, UNSPEC_SADDWT)
36020 (UNSPEC_SBCLB, UNSPEC_SBCLT, UNSPEC_SMAXP, UNSPEC_SMINP)
36021 (UNSPEC_SQCADD90, UNSPEC_SQCADD270, UNSPEC_SQDMULLB, UNSPEC_SQDMULLBT)
36022 (UNSPEC_SQDMULLT, UNSPEC_SQRDCMLAH, UNSPEC_SQRDCMLAH90)
36023 (UNSPEC_SQRDCMLAH180, UNSPEC_SQRDCMLAH270, UNSPEC_SQRSHRNB)
36024 (UNSPEC_SQRSHRNT, UNSPEC_SQRSHRUNB, UNSPEC_SQRSHRUNT, UNSPEC_SQSHRNB)
36025 (UNSPEC_SQSHRNT, UNSPEC_SQSHRUNB, UNSPEC_SQSHRUNT, UNSPEC_SQXTNB)
36026 (UNSPEC_SQXTNT, UNSPEC_SQXTUNB, UNSPEC_SQXTUNT, UNSPEC_SSHLLB)
36027 (UNSPEC_SSHLLT, UNSPEC_SSUBLB, UNSPEC_SSUBLBT, UNSPEC_SSUBLT)
36028 (UNSPEC_SSUBLTB, UNSPEC_SSUBWB, UNSPEC_SSUBWT, UNSPEC_SUBHNB)
36029 (UNSPEC_SUBHNT, UNSPEC_TBL2, UNSPEC_UABDLB, UNSPEC_UABDLT)
36030 (UNSPEC_UADDLB, UNSPEC_UADDLT, UNSPEC_UADDWB, UNSPEC_UADDWT)
36031 (UNSPEC_UMAXP, UNSPEC_UMINP, UNSPEC_UQRSHRNB, UNSPEC_UQRSHRNT)
36032 (UNSPEC_UQSHRNB, UNSPEC_UQSHRNT, UNSPEC_UQXTNB, UNSPEC_UQXTNT)
36033 (UNSPEC_USHLLB, UNSPEC_USHLLT, UNSPEC_USUBLB, UNSPEC_USUBLT)
36034 (UNSPEC_USUBWB, UNSPEC_USUBWT): New unspecs.
36035 (UNSPEC_SMULLB, UNSPEC_SMULLT, UNSPEC_UMULLB, UNSPEC_UMULLT)
36036 (UNSPEC_SMULHS, UNSPEC_SMULHRS, UNSPEC_UMULHS, UNSPEC_UMULHRS)
36037 (UNSPEC_RSHRNB, UNSPEC_RSHRNT, UNSPEC_SHRNB, UNSPEC_SHRNT): Move
36038 further down file.
36039 (VNARROW, Ventype): New mode attributes.
36040 (Vewtype): Handle VNx2DI. Fix typo in comment.
36041 (VDOUBLE): New mode attribute.
36042 (sve_lane_con): Handle VNx8HI.
36043 (SVE_INT_UNARY): Include ss_abs and ss_neg for TARGET_SVE2.
36044 (SVE_INT_BINARY): Likewise ss_plus, us_plus, ss_minus and us_minus.
36045 (sve_int_op, sve_int_op_rev): Handle the above codes.
36046 (sve_pred_int_rhs2_operand): Likewise.
36047 (MULLBT, SHRNB, SHRNT): Delete.
36048 (SVE_INT_SHIFT_IMM): New int iterator.
36049 (SVE_WHILE): Add UNSPEC_WHILEGE, UNSPEC_WHILEGT, UNSPEC_WHILEHI
36050 and UNSPEC_WHILEHS for TARGET_SVE2.
36051 (SVE2_U32_UNARY, SVE2_INT_UNARY_NARROWB, SVE2_INT_UNARY_NARROWT)
36052 (SVE2_INT_BINARY, SVE2_INT_BINARY_LANE, SVE2_INT_BINARY_LONG)
36053 (SVE2_INT_BINARY_LONG_LANE, SVE2_INT_BINARY_NARROWB)
36054 (SVE2_INT_BINARY_NARROWT, SVE2_INT_BINARY_PAIR, SVE2_FP_BINARY_PAIR)
36055 (SVE2_INT_BINARY_PAIR_LONG, SVE2_INT_BINARY_WIDE): New int iterators.
36056 (SVE2_INT_SHIFT_IMM_LONG, SVE2_INT_SHIFT_IMM_NARROWB): Likewise.
36057 (SVE2_INT_SHIFT_IMM_NARROWT, SVE2_INT_SHIFT_INSERT, SVE2_INT_CADD)
36058 (SVE2_INT_BITPERM, SVE2_INT_TERNARY, SVE2_INT_TERNARY_LANE): Likewise.
36059 (SVE2_FP_TERNARY_LONG, SVE2_FP_TERNARY_LONG_LANE, SVE2_INT_CMLA)
36060 (SVE2_INT_CDOT, SVE2_INT_ADD_BINARY_LONG, SVE2_INT_QADD_BINARY_LONG)
36061 (SVE2_INT_SUB_BINARY_LONG, SVE2_INT_QSUB_BINARY_LONG): Likewise.
36062 (SVE2_INT_ADD_BINARY_LONG_LANE, SVE2_INT_QADD_BINARY_LONG_LANE)
36063 (SVE2_INT_SUB_BINARY_LONG_LANE, SVE2_INT_QSUB_BINARY_LONG_LANE)
36064 (SVE2_COND_INT_UNARY_FP, SVE2_COND_FP_UNARY_LONG): Likewise.
36065 (SVE2_COND_FP_UNARY_NARROWB, SVE2_COND_INT_BINARY): Likewise.
36066 (SVE2_COND_INT_BINARY_NOREV, SVE2_COND_INT_BINARY_REV): Likewise.
36067 (SVE2_COND_INT_SHIFT, SVE2_MATCH, SVE2_PMULL): Likewise.
36068 (optab): Handle the new unspecs.
36069 (su, r): Remove entries for UNSPEC_SHRNB, UNSPEC_SHRNT, UNSPEC_RSHRNB
36070 and UNSPEC_RSHRNT.
36071 (lr): Handle the new unspecs.
36072 (bt): Delete.
36073 (cmp_op, while_optab_cmp, sve_int_op): Handle the new unspecs.
36074 (sve_int_op_rev, sve_int_add_op, sve_int_qadd_op, sve_int_sub_op)
36075 (sve_int_qsub_op): New int attributes.
36076 (sve_fp_op, rot): Handle the new unspecs.
36077 * config/aarch64/aarch64-sve-builtins.h
36078 (function_resolver::require_matching_pointer_type): Declare.
36079 (function_resolver::resolve_unary): Add an optional boolean argument.
36080 (function_resolver::finish_opt_n_resolution): Add an optional
36081 type_suffix_index argument.
36082 (gimple_folder::redirect_call): Declare.
36083 (gimple_expander::prepare_gather_address_operands): Add an optional
36084 bool parameter.
36085 * config/aarch64/aarch64-sve-builtins.cc: Include
36086 aarch64-sve-builtins-sve2.h.
36087 (TYPES_b_unsigned, TYPES_b_integer, TYPES_bh_integer): New macros.
36088 (TYPES_bs_unsigned, TYPES_hs_signed, TYPES_hs_integer): Likewise.
36089 (TYPES_hd_unsigned, TYPES_hsd_signed): Likewise.
36090 (TYPES_hsd_integer): Use TYPES_hsd_signed.
36091 (TYPES_s_float_hsd_integer, TYPES_s_float_sd_integer): New macros.
36092 (TYPES_s_unsigned): Likewise.
36093 (TYPES_s_integer): Use TYPES_s_unsigned.
36094 (TYPES_sd_signed, TYPES_sd_unsigned): New macros.
36095 (TYPES_sd_integer): Use them.
36096 (TYPES_d_unsigned): New macro.
36097 (TYPES_d_integer): Use it.
36098 (TYPES_d_data, TYPES_cvt_long, TYPES_cvt_narrow_s): New macros.
36099 (TYPES_cvt_narrow): Likewise.
36100 (DEF_SVE_TYPES_ARRAY): Include the new types macros above.
36101 (preds_mx): New variable.
36102 (function_builder::add_overloaded_function): Allow the new feature
36103 set to be more restrictive than the original one.
36104 (function_resolver::infer_pointer_type): Remove qualifiers from
36105 the pointer type before printing it.
36106 (function_resolver::require_matching_pointer_type): New function.
36107 (function_resolver::resolve_sv_displacement): Handle functions
36108 that don't support 32-bit vector indices or svint32_t vector offsets.
36109 (function_resolver::finish_opt_n_resolution): Take the inferred type
36110 as a separate argument.
36111 (function_resolver::resolve_unary): Optionally treat all forms in
36112 the same way as normal merging functions.
36113 (gimple_folder::redirect_call): New function.
36114 (function_expander::prepare_gather_address_operands): Add an argument
36115 that says whether scaled forms are available. If they aren't,
36116 handle scaling of vector indices and don't add the extension and
36117 scaling operands.
36118 (function_expander::map_to_unspecs): If aarch64_sve isn't available,
36119 fall back to using cond_* instead.
36120 * config/aarch64/aarch64-sve-builtins-functions.h (rtx_code_function):
36121 Split out the member variables into...
36122 (rtx_code_function_base): ...this new base class.
36123 (rtx_code_function_rotated): Inherit rtx_code_function_base.
36124 (unspec_based_function): Split out the member variables into...
36125 (unspec_based_function_base): ...this new base class.
36126 (unspec_based_function_rotated): Inherit unspec_based_function_base.
36127 (unspec_based_function_exact_insn): New class.
36128 (unspec_based_add_function, unspec_based_add_lane_function)
36129 (unspec_based_lane_function, unspec_based_pred_function)
36130 (unspec_based_qadd_function, unspec_based_qadd_lane_function)
36131 (unspec_based_qsub_function, unspec_based_qsub_lane_function)
36132 (unspec_based_sub_function, unspec_based_sub_lane_function): New
36133 typedefs.
36134 (unspec_based_fused_function): New class.
36135 (unspec_based_mla_function, unspec_based_mls_function): New typedefs.
36136 (unspec_based_fused_lane_function): New class.
36137 (unspec_based_mla_lane_function, unspec_based_mls_lane_function): New
36138 typedefs.
36139 (CODE_FOR_MODE1): New macro.
36140 (fixed_insn_function): New class.
36141 (while_comparison): Likewise.
36142 * config/aarch64/aarch64-sve-builtins-shapes.h (binary_long_lane)
36143 (binary_long_opt_n, binary_narrowb_opt_n, binary_narrowt_opt_n)
36144 (binary_to_uint, binary_wide, binary_wide_opt_n, compare, compare_ptr)
36145 (load_ext_gather_index_restricted, load_ext_gather_offset_restricted)
36146 (load_gather_sv_restricted, shift_left_imm_long): Declare.
36147 (shift_left_imm_to_uint, shift_right_imm_narrowb): Likewise.
36148 (shift_right_imm_narrowt, shift_right_imm_narrowb_to_uint): Likewise.
36149 (shift_right_imm_narrowt_to_uint, store_scatter_index_restricted)
36150 (store_scatter_offset_restricted, tbl_tuple, ternary_long_lane)
36151 (ternary_long_opt_n, ternary_qq_lane_rotate, ternary_qq_rotate)
36152 (ternary_shift_left_imm, ternary_shift_right_imm, ternary_uint)
36153 (unary_convert_narrowt, unary_long, unary_narrowb, unary_narrowt)
36154 (unary_narrowb_to_uint, unary_narrowt_to_uint, unary_to_int): Likewise.
36155 * config/aarch64/aarch64-sve-builtins-shapes.cc (apply_predication):
36156 Also add an initial argument for unary_convert_narrowt, regardless
36157 of the predication type.
36158 (build_32_64): Allow loads and stores to specify MODE_none.
36159 (build_sv_index64, build_sv_uint_offset): New functions.
36160 (long_type_suffix): New function.
36161 (binary_imm_narrowb_base, binary_imm_narrowt_base): New classes.
36162 (binary_imm_long_base, load_gather_sv_base): Likewise.
36163 (shift_right_imm_narrow_wrapper, ternary_shift_imm_base): Likewise.
36164 (ternary_resize2_opt_n_base, ternary_resize2_lane_base): Likewise.
36165 (unary_narrowb_base, unary_narrowt_base): Likewise.
36166 (binary_long_lane_def, binary_long_lane): New shape.
36167 (binary_long_opt_n_def, binary_long_opt_n): Likewise.
36168 (binary_narrowb_opt_n_def, binary_narrowb_opt_n): Likewise.
36169 (binary_narrowt_opt_n_def, binary_narrowt_opt_n): Likewise.
36170 (binary_to_uint_def, binary_to_uint): Likewise.
36171 (binary_wide_def, binary_wide): Likewise.
36172 (binary_wide_opt_n_def, binary_wide_opt_n): Likewise.
36173 (compare_def, compare): Likewise.
36174 (compare_ptr_def, compare_ptr): Likewise.
36175 (load_ext_gather_index_restricted_def,
36176 load_ext_gather_index_restricted): Likewise.
36177 (load_ext_gather_offset_restricted_def,
36178 load_ext_gather_offset_restricted): Likewise.
36179 (load_gather_sv_def): Inherit from load_gather_sv_base.
36180 (load_gather_sv_restricted_def, load_gather_sv_restricted): New shape.
36181 (shift_left_imm_def, shift_left_imm): Likewise.
36182 (shift_left_imm_long_def, shift_left_imm_long): Likewise.
36183 (shift_left_imm_to_uint_def, shift_left_imm_to_uint): Likewise.
36184 (store_scatter_index_restricted_def,
36185 store_scatter_index_restricted): Likewise.
36186 (store_scatter_offset_restricted_def,
36187 store_scatter_offset_restricted): Likewise.
36188 (tbl_tuple_def, tbl_tuple): Likewise.
36189 (ternary_long_lane_def, ternary_long_lane): Likewise.
36190 (ternary_long_opt_n_def, ternary_long_opt_n): Likewise.
36191 (ternary_qq_lane_def): Inherit from ternary_resize2_lane_base.
36192 (ternary_qq_lane_rotate_def, ternary_qq_lane_rotate): New shape
36193 (ternary_qq_opt_n_def): Inherit from ternary_resize2_opt_n_base.
36194 (ternary_qq_rotate_def, ternary_qq_rotate): New shape.
36195 (ternary_shift_left_imm_def, ternary_shift_left_imm): Likewise.
36196 (ternary_shift_right_imm_def, ternary_shift_right_imm): Likewise.
36197 (ternary_uint_def, ternary_uint): Likewise.
36198 (unary_convert): Fix typo in comment.
36199 (unary_convert_narrowt_def, unary_convert_narrowt): New shape.
36200 (unary_long_def, unary_long): Likewise.
36201 (unary_narrowb_def, unary_narrowb): Likewise.
36202 (unary_narrowt_def, unary_narrowt): Likewise.
36203 (unary_narrowb_to_uint_def, unary_narrowb_to_uint): Likewise.
36204 (unary_narrowt_to_uint_def, unary_narrowt_to_uint): Likewise.
36205 (unary_to_int_def, unary_to_int): Likewise.
36206 * config/aarch64/aarch64-sve-builtins-base.cc (unspec_cmla)
36207 (unspec_fcmla, unspec_cond_fcmla, expand_mla_mls_lane): New functions.
36208 (svasrd_impl): Delete.
36209 (svcadd_impl::expand): Handle integer operations too.
36210 (svcmla_impl::expand, svcmla_lane::expand): Likewise, using the
36211 new functions to derive the unspec numbers.
36212 (svmla_svmls_lane_impl): Replace with...
36213 (svmla_lane_impl, svmls_lane_impl): ...these new classes. Handle
36214 integer operations too.
36215 (svwhile_impl): Rename to...
36216 (svwhilelx_impl): ...this and inherit from while_comparison.
36217 (svasrd): Use unspec_based_function.
36218 (svmla_lane): Use svmla_lane_impl.
36219 (svmls_lane): Use svmls_lane_impl.
36220 (svrecpe, svrsqrte): Handle unsigned integer operations too.
36221 (svwhilele, svwhilelt): Use svwhilelx_impl.
36222 * config/aarch64/aarch64-sve-builtins-sve2.h: New file.
36223 * config/aarch64/aarch64-sve-builtins-sve2.cc: Likewise.
36224 * config/aarch64/aarch64-sve-builtins-sve2.def: Likewise.
36225 * config/aarch64/aarch64-sve-builtins.def: Include
36226 aarch64-sve-builtins-sve2.def.
36227
36228 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
36229
36230 * config/aarch64/aarch64-protos.h (aarch64_sve_arith_immediate_p)
36231 (aarch64_sve_sqadd_sqsub_immediate_p): Add a machine_mode argument.
36232 * config/aarch64/aarch64.c (aarch64_sve_arith_immediate_p)
36233 (aarch64_sve_sqadd_sqsub_immediate_p): Likewise. Handle scalar
36234 immediates as well as vector ones.
36235 * config/aarch64/predicates.md (aarch64_sve_arith_immediate)
36236 (aarch64_sve_sub_arith_immediate, aarch64_sve_qadd_immediate)
36237 (aarch64_sve_qsub_immediate): Update calls accordingly.
36238
36239 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
36240
36241 * config/aarch64/aarch64-sve2.md: Add banner comments.
36242 (<su>mulh<r>s<mode>3): Move further up file.
36243 (<su>mull<bt><Vwide>, <r>shrnb<mode>, <r>shrnt<mode>)
36244 (*aarch64_sve2_sra<mode>): Move further down file.
36245 * config/aarch64/t-aarch64 (s-check-sve-md): Check aarch64-sve2.md too.
36246
36247 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
36248
36249 * config/aarch64/iterators.md (SVE_WHILE): Add UNSPEC_WHILERW
36250 and UNSPEC_WHILEWR.
36251 (while_optab_cmp): Handle them.
36252 * config/aarch64/aarch64-sve.md
36253 (*while_<while_optab_cmp><GPI:mode><PRED_ALL:mode>_ptest): Make public
36254 and add a "@" marker.
36255 * config/aarch64/aarch64-sve2.md (check_<raw_war>_ptrs<mode>): Use it
36256 instead of gen_aarch64_sve2_while_ptest.
36257 (@aarch64_sve2_while<cmp_op><GPI:mode><PRED_ALL:mode>_ptest): Delete.
36258
36259 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
36260
36261 * config/aarch64/aarch64.md (UNSPEC_WHILE_LE): Rename to...
36262 (UNSPEC_WHILELE): ...this.
36263 (UNSPEC_WHILE_LO): Rename to...
36264 (UNSPEC_WHILELO): ...this.
36265 (UNSPEC_WHILE_LS): Rename to...
36266 (UNSPEC_WHILELS): ...this.
36267 (UNSPEC_WHILE_LT): Rename to...
36268 (UNSPEC_WHILELT): ...this.
36269 * config/aarch64/iterators.md (SVE_WHILE): Update accordingly.
36270 (cmp_op, while_optab_cmp): Likewise.
36271 * config/aarch64/aarch64.c (aarch64_sve_move_pred_via_while): Likewise.
36272 * config/aarch64/aarch64-sve-builtins-base.cc (svwhilele): Likewise.
36273 (svwhilelt): Likewise.
36274
36275 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
36276
36277 * config/aarch64/aarch64-sve-builtins-shapes.h (unary_count): Delete.
36278 (unary_to_uint): Define.
36279 * config/aarch64/aarch64-sve-builtins-shapes.cc (unary_count_def)
36280 (unary_count): Rename to...
36281 (unary_to_uint_def, unary_to_uint): ...this.
36282 * config/aarch64/aarch64-sve-builtins-base.def: Update accordingly.
36283
36284 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
36285
36286 * config/aarch64/aarch64-sve-builtins-functions.h
36287 (code_for_mode_function): New class.
36288 (CODE_FOR_MODE0, QUIET_CODE_FOR_MODE0): New macros.
36289 * config/aarch64/aarch64-sve-builtins-base.cc (svcompact_impl)
36290 (svext_impl, svmul_lane_impl, svsplice_impl, svtmad_impl): Delete.
36291 (svcompact, svext, svsplice): Use QUIET_CODE_FOR_MODE0.
36292 (svmul_lane, svtmad): Use CODE_FOR_MODE0.
36293
36294 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
36295
36296 * config/aarch64/iterators.md (addsub): New code attribute.
36297 * config/aarch64/aarch64-simd.md (aarch64_<su_optab><optab><mode>):
36298 Re-express as...
36299 (aarch64_<su_optab>q<addsub><mode>): ...this, making the same change
36300 in the asm string and attributes. Fix indentation.
36301 * config/aarch64/aarch64-sve.md (@aarch64_<su_optab><optab><mode>):
36302 Re-express as...
36303 (@aarch64_sve_<optab><mode>): ...this.
36304 * config/aarch64/aarch64-sve-builtins.h
36305 (function_expander::expand_signed_unpred_op): Delete.
36306 * config/aarch64/aarch64-sve-builtins.cc
36307 (function_expander::expand_signed_unpred_op): Likewise.
36308 (function_expander::map_to_rtx_codes): If the optab isn't defined,
36309 try using code_for_aarch64_sve instead.
36310 * config/aarch64/aarch64-sve-builtins-base.cc (svqadd_impl): Delete.
36311 (svqsub_impl): Likewise.
36312 (svqadd, svqsub): Use rtx_code_function instead.
36313
36314 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
36315
36316 * config/aarch64/iterators.md (SRHSUB, URHSUB): Delete.
36317 (HADDSUB, sur, addsub): Remove them.
36318
36319 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
36320
36321 * tree-nrv.c (pass_return_slot::execute): Handle all internal
36322 functions the same way, rather than singling out those that
36323 aren't mapped directly to optabs.
36324
36325 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
36326
36327 * target.def (compatible_vector_types_p): New target hook.
36328 * hooks.h (hook_bool_const_tree_const_tree_true): Declare.
36329 * hooks.c (hook_bool_const_tree_const_tree_true): New function.
36330 * doc/tm.texi.in (TARGET_COMPATIBLE_VECTOR_TYPES_P): New hook.
36331 * doc/tm.texi: Regenerate.
36332 * gimple-expr.c: Include target.h.
36333 (useless_type_conversion_p): Use targetm.compatible_vector_types_p.
36334 * config/aarch64/aarch64.c (aarch64_compatible_vector_types_p): New
36335 function.
36336 (TARGET_COMPATIBLE_VECTOR_TYPES_P): Define.
36337 * config/aarch64/aarch64-sve-builtins.cc (gimple_folder::convert_pred):
36338 Use the original predicate if it already has a suitable type.
36339
36340 2020-01-09 Martin Jambor <mjambor@suse.cz>
36341
36342 * cgraph.h (cgraph_edge): Make remove, set_call_stmt, make_direct,
36343 resolve_speculation and redirect_call_stmt_to_callee static. Change
36344 return type of set_call_stmt to cgraph_edge *.
36345 * auto-profile.c (afdo_indirect_call): Adjust call to
36346 redirect_call_stmt_to_callee.
36347 * cgraph.c (cgraph_edge::set_call_stmt): Make return cgraph-edge *,
36348 make the this pointer explicit, adjust self-recursive calls and the
36349 call top make_direct. Return the resulting edge.
36350 (cgraph_edge::remove): Make this pointer explicit.
36351 (cgraph_edge::resolve_speculation): Likewise, adjust call to remove.
36352 (cgraph_edge::make_direct): Likewise, adjust call to
36353 resolve_speculation.
36354 (cgraph_edge::redirect_call_stmt_to_callee): Likewise, also adjust
36355 call to set_call_stmt.
36356 (cgraph_update_edges_for_call_stmt_node): Update call to
36357 set_call_stmt and remove.
36358 * cgraphclones.c (cgraph_node::set_call_stmt_including_clones):
36359 Renamed edge to master_edge. Adjusted calls to set_call_stmt.
36360 (cgraph_node::create_edge_including_clones): Moved "first" definition
36361 of edge to the block where it was used. Adjusted calls to
36362 set_call_stmt.
36363 (cgraph_node::remove_symbol_and_inline_clones): Adjust call to
36364 cgraph_edge::remove.
36365 * cgraphunit.c (walk_polymorphic_call_targets): Adjusted calls to
36366 make_direct and redirect_call_stmt_to_callee.
36367 * ipa-fnsummary.c (redirect_to_unreachable): Adjust calls to
36368 resolve_speculation and make_direct.
36369 * ipa-inline-transform.c (inline_transform): Adjust call to
36370 redirect_call_stmt_to_callee.
36371 (check_speculations_1):: Adjust call to resolve_speculation.
36372 * ipa-inline.c (resolve_noninline_speculation): Adjust call to
36373 resolve-speculation.
36374 (inline_small_functions): Adjust call to resolve_speculation.
36375 (ipa_inline): Likewise.
36376 * ipa-prop.c (ipa_make_edge_direct_to_target): Adjust call to
36377 make_direct.
36378 * ipa-visibility.c (function_and_variable_visibility): Make iteration
36379 safe with regards to edge removal, adjust calls to
36380 redirect_call_stmt_to_callee.
36381 * ipa.c (walk_polymorphic_call_targets): Adjust calls to make_direct
36382 and redirect_call_stmt_to_callee.
36383 * multiple_target.c (create_dispatcher_calls): Adjust call to
36384 redirect_call_stmt_to_callee
36385 (redirect_to_specific_clone): Likewise.
36386 * tree-cfgcleanup.c (delete_unreachable_blocks_update_callgraph):
36387 Adjust calls to cgraph_edge::remove.
36388 * tree-inline.c (copy_bb): Adjust call to set_call_stmt.
36389 (redirect_all_calls): Adjust call to redirect_call_stmt_to_callee.
36390 (expand_call_inline): Adjust call to cgraph_edge::remove.
36391
36392 2020-01-09 Martin Liska <mliska@suse.cz>
36393
36394 * params.opt: Set Optimization for
36395 param_max_speculative_devirt_maydefs.
36396
36397 2020-01-09 Martin Sebor <msebor@redhat.com>
36398
36399 PR middle-end/93200
36400 PR fortran/92956
36401 * builtins.c (compute_objsize): Avoid handling MEM_REFs of vector type.
36402
36403 2020-01-09 Martin Liska <mliska@suse.cz>
36404
36405 * auto-profile.c (auto_profile): Use opt_for_fn
36406 for a parameter.
36407 * ipa-cp.c (ipcp_lattice::add_value): Likewise.
36408 (propagate_vals_across_arith_jfunc): Likewise.
36409 (hint_time_bonus): Likewise.
36410 (incorporate_penalties): Likewise.
36411 (good_cloning_opportunity_p): Likewise.
36412 (perform_estimation_of_a_value): Likewise.
36413 (estimate_local_effects): Likewise.
36414 (ipcp_propagate_stage): Likewise.
36415 * ipa-fnsummary.c (decompose_param_expr): Likewise.
36416 (set_switch_stmt_execution_predicate): Likewise.
36417 (analyze_function_body): Likewise.
36418 * ipa-inline-analysis.c (offline_size): Likewise.
36419 * ipa-inline.c (early_inliner): Likewise.
36420 * ipa-prop.c (ipa_analyze_node): Likewise.
36421 (ipcp_transform_function): Likewise.
36422 * ipa-sra.c (process_scan_results): Likewise.
36423 (ipa_sra_summarize_function): Likewise.
36424 * params.opt: Rename ipcp-unit-growth to
36425 ipa-cp-unit-growth. Add Optimization for various
36426 IPA-related parameters.
36427
36428 2020-01-09 Richard Biener <rguenther@suse.de>
36429
36430 PR middle-end/93054
36431 * gimplify.c (gimplify_expr): Deal with NOP definitions.
36432
36433 2020-01-09 Richard Biener <rguenther@suse.de>
36434
36435 PR tree-optimization/93040
36436 * gimple-ssa-store-merging.c (find_bswap_or_nop): Raise search limit.
36437
36438 2020-01-09 Georg-Johann Lay <avr@gjlay.de>
36439
36440 * common/config/avr/avr-common.c (avr_option_optimization_table)
36441 [OPT_LEVELS_1_PLUS]: Set -fsplit-wide-types-early.
36442
36443 2020-01-09 Martin Liska <mliska@suse.cz>
36444
36445 * cgraphclones.c (symbol_table::materialize_all_clones):
36446 Use cgraph_node::dump_name.
36447
36448 2020-01-09 Jakub Jelinek <jakub@redhat.com>
36449
36450 PR inline-asm/93202
36451 * config/riscv/riscv.c (riscv_print_operand_reloc): Use
36452 output_operand_lossage instead of gcc_unreachable.
36453 * doc/md.texi (riscv f constraint): Fix typo.
36454
36455 PR target/93141
36456 * config/i386/i386.md (subv<mode>4): Use SWIDWI iterator instead of
36457 SWI. Use <general_hilo_operand> instead of <general_operand>. Use
36458 CONST_SCALAR_INT_P instead of CONST_INT_P.
36459 (*subv<mode>4_1): Rename to ...
36460 (subv<mode>4_1): ... this.
36461 (*subv<dwi>4_doubleword, *addv<dwi>4_doubleword_1): New
36462 define_insn_and_split patterns.
36463 (*subv<mode>4_overflow_1, *addv<mode>4_overflow_2): New define_insn
36464 patterns.
36465
36466 2020-01-08 David Malcolm <dmalcolm@redhat.com>
36467
36468 * vec.c (class selftest::count_dtor): New class.
36469 (selftest::test_auto_delete_vec): New test.
36470 (selftest::vec_c_tests): Call it.
36471 * vec.h (class auto_delete_vec): New class template.
36472 (auto_delete_vec<T>::~auto_delete_vec): New dtor.
36473
36474 2020-01-08 David Malcolm <dmalcolm@redhat.com>
36475
36476 * sbitmap.h (auto_sbitmap): Add operator const_sbitmap.
36477
36478 2020-01-08 Jim Wilson <jimw@sifive.com>
36479
36480 * config/riscv/riscv.c (riscv_legitimize_tls_address): Ifdef out
36481 use of TLS_MODEL_LOCAL_EXEC when not pic.
36482
36483 2020-01-08 David Malcolm <dmalcolm@redhat.com>
36484
36485 * hash-map-tests.c (selftest::test_map_of_strings_to_int): Fix
36486 memory leak.
36487
36488 2020-01-08 Jakub Jelinek <jakub@redhat.com>
36489
36490 PR target/93187
36491 * config/i386/i386.md (*stack_protect_set_2_<mode> peephole2,
36492 *stack_protect_set_3 peephole2): Also check that the second
36493 insns source is general_operand.
36494
36495 PR target/93174
36496 * config/i386/i386.md (addcarry<mode>_0): Use nonimmediate_operand
36497 predicate for output operand instead of register_operand.
36498 (addcarry<mode>, addcarry<mode>_1): Likewise. Add alternative with
36499 memory destination and non-memory operands[2].
36500
36501 2020-01-08 Martin Liska <mliska@suse.cz>
36502
36503 * cgraph.c (cgraph_node::dump): Use ::dump_name or
36504 ::dump_asm_name instead of (::name or ::asm_name).
36505 * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
36506 * cgraphunit.c (walk_polymorphic_call_targets): Likewise.
36507 (analyze_functions): Likewise.
36508 (expand_all_functions): Likewise.
36509 * ipa-cp.c (ipcp_cloning_candidate_p): Likewise.
36510 (propagate_bits_across_jump_function): Likewise.
36511 (dump_profile_updates): Likewise.
36512 (ipcp_store_bits_results): Likewise.
36513 (ipcp_store_vr_results): Likewise.
36514 * ipa-devirt.c (dump_targets): Likewise.
36515 * ipa-fnsummary.c (analyze_function_body): Likewise.
36516 * ipa-hsa.c (check_warn_node_versionable): Likewise.
36517 (process_hsa_functions): Likewise.
36518 * ipa-icf.c (sem_item_optimizer::merge_classes): Likewise.
36519 (set_alias_uids): Likewise.
36520 * ipa-inline-transform.c (save_inline_function_body): Likewise.
36521 * ipa-inline.c (recursive_inlining): Likewise.
36522 (inline_to_all_callers_1): Likewise.
36523 (ipa_inline): Likewise.
36524 * ipa-profile.c (ipa_propagate_frequency_1): Likewise.
36525 (ipa_propagate_frequency): Likewise.
36526 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
36527 (remove_described_reference): Likewise.
36528 * ipa-pure-const.c (worse_state): Likewise.
36529 (check_retval_uses): Likewise.
36530 (analyze_function): Likewise.
36531 (propagate_pure_const): Likewise.
36532 (propagate_nothrow): Likewise.
36533 (dump_malloc_lattice): Likewise.
36534 (propagate_malloc): Likewise.
36535 (pass_local_pure_const::execute): Likewise.
36536 * ipa-visibility.c (optimize_weakref): Likewise.
36537 (function_and_variable_visibility): Likewise.
36538 * ipa.c (symbol_table::remove_unreachable_nodes): Likewise.
36539 (ipa_discover_variable_flags): Likewise.
36540 * lto-streamer-out.c (output_function): Likewise.
36541 (output_constructor): Likewise.
36542 * tree-inline.c (copy_bb): Likewise.
36543 * tree-ssa-structalias.c (ipa_pta_execute): Likewise.
36544 * varpool.c (symbol_table::remove_unreferenced_decls): Likewise.
36545
36546 2020-01-08 Richard Biener <rguenther@suse.de>
36547
36548 PR middle-end/93199
36549 * tree-eh.c (sink_clobbers): Update virtual operands for
36550 the first and last stmt only. Add a dry-run capability.
36551 (pass_lower_eh_dispatch::execute): Perform clobber sinking
36552 after CFG manipulations and in RPO order to catch all
36553 secondary opportunities reliably.
36554
36555 2020-01-08 Georg-Johann Lay <avr@gjlay.de>
36556
36557 PR target/93182
36558 * doc/invoke.texi (AVR Options) <-nodevicespecs>: Document.
36559
36560 2019-01-08 Richard Biener <rguenther@suse.de>
36561
36562 PR middle-end/93199
36563 * gimple-fold.c (rewrite_to_defined_overflow): Mark stmt modified.
36564 * tree-ssa-loop-im.c (move_computations_worker): Properly adjust
36565 virtual operand, also updating SSA use.
36566 * gimple-loop-interchange.cc (loop_cand::undo_simple_reduction):
36567 Update stmt after resetting virtual operand.
36568 (tree_loop_interchange::move_code_to_inner_loop): Likewise.
36569 * gimple-iterator.c (gsi_remove): When not removing the stmt
36570 permanently do not delink immediate uses or mark the stmt modified.
36571
36572 2020-01-08 Martin Liska <mliska@suse.cz>
36573
36574 * ipa-fnsummary.c (dump_ipa_call_summary): Use symtab_node::dump_name.
36575 (ipa_call_context::estimate_size_and_time): Likewise.
36576 (inline_analyze_function): Likewise.
36577
36578 2020-01-08 Martin Liska <mliska@suse.cz>
36579
36580 * cgraph.c (cgraph_node::dump): Use systematically
36581 dump_asm_name.
36582
36583 2020-01-08 Georg-Johann Lay <avr@gjlay.de>
36584
36585 Add -nodevicespecs option for avr.
36586
36587 PR target/93182
36588 * config/avr/avr.opt (-nodevicespecs): New driver option.
36589 * config/avr/driver-avr.c (avr_devicespecs_file): Only issue
36590 "-specs=device-specs/..." if that option is not set.
36591 * doc/invoke.texi (AVR Options) <-nodevicespecs>: Document.
36592
36593 2020-01-08 Georg-Johann Lay <avr@gjlay.de>
36594
36595 Implement 64-bit double functions for avr.
36596
36597 PR target/92055
36598 * config.gcc (tm_defines) [target=avr]: Support --with-libf7,
36599 --with-double-comparison.
36600 * doc/install.texi: Document them.
36601 * config/avr/avr-c.c (avr_cpu_cpp_builtins)
36602 <WITH_LIBF7_LIBGCC, WITH_LIBF7_MATH, WITH_LIBF7_MATH_SYMBOLS>
36603 <WITH_DOUBLE_COMPARISON>: New built-in defines.
36604 * doc/invoke.texi (AVR Built-in Macros): Document them.
36605 * config/avr/avr-protos.h (avr_float_lib_compare_returns_bool): New.
36606 * config/avr/avr.c (avr_float_lib_compare_returns_bool): New function.
36607 * config/avr/avr.h (FLOAT_LIB_COMPARE_RETURNS_BOOL): New macro.
36608
36609 2020-01-08 Richard Earnshaw <rearnsha@arm.com>
36610
36611 PR target/93188
36612 * config/arm/t-multilib (MULTILIB_MATCHES): Add rules to match
36613 armv7-a{+mp,+sec,+mp+sec} to appropriate armv7 multilib variants
36614 when only building rm-profile multilibs.
36615
36616 2020-01-08 Feng Xue <fxue@os.amperecomputing.com>
36617
36618 PR ipa/93084
36619 * ipa-cp.c (self_recursively_generated_p): Find matched aggregate
36620 lattice for a value to check.
36621 (propagate_vals_across_arith_jfunc): Add an assertion to ensure
36622 finite propagation in self-recursive scc.
36623
36624 2020-01-08 Luo Xiong Hu <luoxhu@linux.ibm.com>
36625
36626 * ipa-inline.c (caller_growth_limits): Restore the AND.
36627
36628 2020-01-07 Andrew Stubbs <ams@codesourcery.com>
36629
36630 * config/gcn/gcn-valu.md (VEC_1REG_INT_ALT): Delete iterator.
36631 (VEC_ALLREG_ALT): New iterator.
36632 (VEC_ALLREG_INT_MODE): New iterator.
36633 (VCMP_MODE): New iterator.
36634 (VCMP_MODE_INT): New iterator.
36635 (vec_cmpu<mode>di): Use VCMP_MODE_INT.
36636 (vec_cmp<u>v64qidi): New define_expand.
36637 (vec_cmp<mode>di_exec): Use VCMP_MODE.
36638 (vec_cmpu<mode>di_exec): New define_expand.
36639 (vec_cmp<u>v64qidi_exec): New define_expand.
36640 (vec_cmp<mode>di_dup): Use VCMP_MODE.
36641 (vec_cmp<mode>di_dup_exec): Use VCMP_MODE.
36642 (vcond<VEC_ALL1REG_MODE:mode><VEC_1REG_ALT:mode>): Rename ...
36643 (vcond<VEC_ALLREG_MODE:mode><VEC_ALLREG_ALT:mode>): ... to this.
36644 (vcond<VEC_ALL1REG_MODE:mode><VEC_1REG_ALT:mode>_exec): Rename ...
36645 (vcond<VEC_ALLREG_MODE:mode><VEC_ALLREG_ALT:mode>_exec): ... to this.
36646 (vcondu<VEC_ALL1REG_MODE:mode><VEC_1REG_INT_ALT:mode>): Rename ...
36647 (vcondu<VEC_ALLREG_MODE:mode><VEC_ALLREG_INT_MODE:mode>): ... to this.
36648 (vcondu<VEC_ALL1REG_MODE:mode><VEC_1REG_INT_ALT:mode>_exec): Rename ...
36649 (vcondu<VEC_ALLREG_MODE:mode><VEC_ALLREG_INT_MODE:mode>_exec): ... to
36650 this.
36651 * config/gcn/gcn.c (print_operand): Fix 8 and 16 bit suffixes.
36652 * config/gcn/gcn.md (expander): Add sign_extend and zero_extend.
36653
36654 2020-01-07 Andrew Stubbs <ams@codesourcery.com>
36655
36656 * config/gcn/constraints.md (DA): Update description and match.
36657 (DB): Likewise.
36658 (Db): New constraint.
36659 * config/gcn/gcn-protos.h (gcn_inline_constant64_p): Add second
36660 parameter.
36661 * config/gcn/gcn.c (gcn_inline_constant64_p): Add 'mixed' parameter.
36662 Implement 'Db' mixed immediate type.
36663 * config/gcn/gcn-valu.md (addcv64si3<exec_vcc>): Rework constraints.
36664 (addcv64si3_dup<exec_vcc>): Delete.
36665 (subcv64si3<exec_vcc>): Rework constraints.
36666 (addv64di3): Rework constraints.
36667 (addv64di3_exec): Rework constraints.
36668 (subv64di3): Rework constraints.
36669 (addv64di3_dup): Delete.
36670 (addv64di3_dup_exec): Delete.
36671 (addv64di3_zext): Rework constraints.
36672 (addv64di3_zext_exec): Rework constraints.
36673 (addv64di3_zext_dup): Rework constraints.
36674 (addv64di3_zext_dup_exec): Rework constraints.
36675 (addv64di3_zext_dup2): Rework constraints.
36676 (addv64di3_zext_dup2_exec): Rework constraints.
36677 (addv64di3_sext_dup2): Rework constraints.
36678 (addv64di3_sext_dup2_exec): Rework constraints.
36679
36680 2020-01-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
36681
36682 * doc/sourcebuild.texi (arm_little_endian, arm_nothumb): Documented
36683 existing target checks.
36684
36685 2020-01-07 Richard Biener <rguenther@suse.de>
36686
36687 * doc/install.texi: Bump minimal supported MPC version.
36688
36689 2020-01-07 Richard Sandiford <richard.sandiford@arm.com>
36690
36691 * langhooks-def.h (lhd_simulate_enum_decl): Declare.
36692 (LANG_HOOKS_SIMULATE_ENUM_DECL): Use it.
36693 * langhooks.c: Include stor-layout.h.
36694 (lhd_simulate_enum_decl): New function.
36695 * config/aarch64/aarch64-sve-builtins.cc (init_builtins): Call
36696 handle_arm_sve_h for the LTO frontend.
36697 (register_vector_type): Cope with null returns from pushdecl.
36698
36699 2020-01-07 Richard Sandiford <richard.sandiford@arm.com>
36700
36701 * config/aarch64/aarch64-protos.h (aarch64_sve::svbool_type_p)
36702 (aarch64_sve::nvectors_if_data_type): Replace with...
36703 (aarch64_sve::builtin_type_p): ...this.
36704 * config/aarch64/aarch64-sve-builtins.cc: Include attribs.h.
36705 (find_vector_type): Delete.
36706 (add_sve_type_attribute): New function.
36707 (lookup_sve_type_attribute): Likewise.
36708 (register_builtin_types): Add an "SVE type" attribute to each type.
36709 (register_tuple_type): Likewise.
36710 (svbool_type_p, nvectors_if_data_type): Delete.
36711 (mangle_builtin_type): Use lookup_sve_type_attribute.
36712 (builtin_type_p): Likewise. Add an overload that returns the
36713 number of constituent vector and predicate registers.
36714 * config/aarch64/aarch64.c (aarch64_sve_argument_p): Delete.
36715 (aarch64_returns_value_in_sve_regs_p): Use aarch64_sve::builtin_type_p
36716 instead of aarch64_sve_argument_p.
36717 (aarch64_takes_arguments_in_sve_regs_p): Likewise.
36718 (aarch64_pass_by_reference): Likewise.
36719 (aarch64_function_value_1): Likewise.
36720 (aarch64_return_in_memory): Likewise.
36721 (aarch64_layout_arg): Likewise.
36722
36723 2020-01-07 Jakub Jelinek <jakub@redhat.com>
36724
36725 PR tree-optimization/93156
36726 * tree-ssa-ccp.c (bit_value_binop): For x * x note that the second
36727 least significant bit is always clear.
36728
36729 PR tree-optimization/93118
36730 * match.pd ((x >> c) << c -> x & (-1<<c)): Add nop_convert?. Add new
36731 simplifier with two intermediate conversions.
36732
36733 2020-01-07 Martin Liska <mliska@suse.cz>
36734
36735 * params.opt: Add Optimization for various parameters.
36736
36737 2020-01-07 Martin Liska <mliska@suse.cz>
36738
36739 PR ipa/83411
36740 * doc/extend.texi: Explain cloning for target_clone
36741 attribute.
36742
36743 2020-01-07 Martin Liska <mliska@suse.cz>
36744
36745 PR tree-optimization/92860
36746 * common.opt: Make in Optimization option
36747 as it is affected by -O0, which is an Optimization
36748 option.
36749 * tree-inline.c (tree_inlinable_function_p):
36750 Use opt_for_fn for warn_inline.
36751 (expand_call_inline): Likewise.
36752
36753 2020-01-07 Martin Liska <mliska@suse.cz>
36754
36755 PR tree-optimization/92860
36756 * common.opt: Make flag_ree as optimization
36757 attribute.
36758
36759 2020-01-07 Martin Liska <mliska@suse.cz>
36760
36761 PR optimization/92860
36762 * params.opt: Mark param_min_crossjump_insns with Optimization
36763 keyword.
36764
36765 2020-01-07 Luo Xiong Hu <luoxhu@linux.ibm.com>
36766
36767 * ipa-inline-analysis.c (estimate_growth): Fix typo.
36768 * ipa-inline.c (caller_growth_limits): Use OR instead of AND.
36769
36770 2020-01-06 Michael Meissner <meissner@linux.ibm.com>
36771
36772 * config/rs6000/rs6000.c (hard_reg_and_mode_to_addr_mask): New
36773 helper function to return the valid addressing formats for a given
36774 hard register and mode.
36775 (rs6000_adjust_vec_address): Call hard_reg_and_mode_to_addr_mask.
36776
36777 * config/rs6000/constraints.md (Q constraint): Update
36778 documentation.
36779 * doc/md.texi (RS/6000 constraints): Update 'Q' cosntraint
36780 documentation.
36781
36782 * config/rs6000/vsx.md (vsx_extract_<mode>_var, VSX_D iterator):
36783 Use 'Q' for doing vector extract from memory.
36784 (vsx_extract_v4sf_var): Use 'Q' for doing vector extract from
36785 memory.
36786 (vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): Use 'Q' for
36787 doing vector extract from memory.
36788 (vsx_extract_<mode>_<VS_scalar>mode_var): Use 'Q' for doing vector
36789 extract from memory.
36790
36791 * config/rs6000/rs6000.c (rs6000_adjust_vec_address): Add support
36792 for the offset being 34-bits when -mcpu=future is used.
36793
36794 2020-01-06 John David Anglin <danglin@gcc.gnu.org>
36795
36796 * config/pa/pa.md: Revert change to use ordered_comparison_operator
36797 instead of cmpib_comparison_operator in cmpib patterns.
36798 * config/pa/predicates.md (cmpib_comparison_operator): Revert removal
36799 of cmpib_comparison_operator. Revise comment.
36800
36801 2020-01-06 Richard Sandiford <richard.sandiford@arm.com>
36802
36803 * tree-vect-slp.c (vect_build_slp_tree_1): Require all shifts
36804 in an IFN_DIV_POW2 node to be equal.
36805
36806 2020-01-06 Richard Sandiford <richard.sandiford@arm.com>
36807
36808 * tree-vect-stmts.c (vect_check_load_store_mask): Rename to...
36809 (vect_check_scalar_mask): ...this.
36810 (vectorizable_store, vectorizable_load): Update call accordingly.
36811 (vectorizable_call): Use vect_check_scalar_mask to check the mask
36812 argument in calls to conditional internal functions.
36813
36814 2020-01-06 Andrew Stubbs <ams@codesourcery.com>
36815
36816 * config/gcn/gcn-valu.md (subv64di3): Use separate alternatives for
36817 '0' matching inputs.
36818 (subv64di3_exec): Likewise.
36819
36820 2020-01-06 Bryan Stenson <bryan@siliconvortex.com>
36821
36822 * config/mips/mips.c (vr4130_align_insns): Fix typo.
36823 * doc/md.texi (movstr): Likewise.
36824
36825 2020-01-06 Andrew Stubbs <ams@codesourcery.com>
36826
36827 * config/gcn/gcn-valu.md (vec_extract<mode><scalar_mode>): Add early
36828 clobber.
36829
36830 2020-01-06 Richard Sandiford <richard.sandiford@arm.com>
36831
36832 * config/aarch64/t-aarch64 ($(srcdir)/config/aarch64/aarch64-tune.md):
36833 Depend on...
36834 (s-aarch64-tune-md): ...this new stamp file. Pipe the new contents
36835 to a temporary file and use move-if-change to update the real
36836 file where necessary.
36837
36838 2020-01-06 Richard Sandiford <richard.sandiford@arm.com>
36839
36840 * config/aarch64/aarch64-sve.md (@aarch64_sel_dup<mode>): Use Upl
36841 rather than Upa for CPY /M.
36842
36843 2020-01-06 Andrew Stubbs <ams@codesourcery.com>
36844
36845 * config/gcn/gcn.c (gcn_inline_constant_p): Allow 64 as an inline
36846 immediate.
36847
36848 2020-01-06 Martin Liska <mliska@suse.cz>
36849
36850 PR tree-optimization/92860
36851 * params.opt: Mark param_max_combine_insns with Optimization
36852 keyword.
36853
36854 2020-01-05 Jakub Jelinek <jakub@redhat.com>
36855
36856 PR target/93141
36857 * config/i386/i386.md (SWIDWI): New mode iterator.
36858 (DWI, dwi): Add TImode variants.
36859 (addv<mode>4): Use SWIDWI iterator instead of SWI. Use
36860 <general_hilo_operand> instead of <general_operand>. Use
36861 CONST_SCALAR_INT_P instead of CONST_INT_P.
36862 (*addv<mode>4_1): Rename to ...
36863 (addv<mode>4_1): ... this.
36864 (QWI): New mode attribute.
36865 (*addv<dwi>4_doubleword, *addv<dwi>4_doubleword_1): New
36866 define_insn_and_split patterns.
36867 (*addv<mode>4_overflow_1, *addv<mode>4_overflow_2): New define_insn
36868 patterns.
36869 (uaddv<mode>4): Use SWIDWI iterator instead of SWI. Use
36870 <general_hilo_operand> instead of <general_operand>.
36871 (*addcarry<mode>_1): New define_insn.
36872 (*add<dwi>3_doubleword_cc_overflow_1): New define_insn_and_split.
36873
36874 2020-01-03 Konstantin Kharlamov <Hi-Angel@yandex.ru>
36875
36876 * gdbinit.in (pr, prl, pt, pct, pgg, pgq, pgs, pge, pmz, pdd, pbs, pbm):
36877 Use "call" instead of "set".
36878
36879 2020-01-03 Martin Jambor <mjambor@suse.cz>
36880
36881 PR ipa/92917
36882 * ipa-cp.c (print_all_lattices): Skip functions without info.
36883
36884 2020-01-03 Jakub Jelinek <jakub@redhat.com>
36885
36886 PR target/93089
36887 * config/i386/i386-options.c (ix86_simd_clone_adjust): If
36888 TARGET_PREFER_AVX128, use prefer-vector-width=256 for 'c' and 'd'
36889 simd clones. If TARGET_PREFER_AVX256, use prefer-vector-width=512
36890 for 'e' simd clones.
36891
36892 PR target/93089
36893 * config/i386/i386.opt (x_prefer_vector_width_type): Remove TargetSave
36894 entry.
36895 (mprefer-vector-width=): Add Save.
36896 * config/i386/i386-options.c (ix86_target_string): Add PVW argument, print
36897 -mprefer-vector-width= if non-zero. Fix up -mfpmath= comment.
36898 (ix86_debug_options, ix86_function_specific_print): Adjust
36899 ix86_target_string callers.
36900 (ix86_valid_target_attribute_inner_p): Handle prefer-vector-width=.
36901 (ix86_valid_target_attribute_tree): Likewise.
36902 * config/i386/i386-options.h (ix86_target_string): Add PVW argument.
36903 * config/i386/i386-expand.c (ix86_expand_builtin): Adjust
36904 ix86_target_string caller.
36905
36906 PR target/93110
36907 * config/i386/i386.md (abs<mode>2): Use expand_simple_binop instead of
36908 emitting ASHIFTRT, XOR and MINUS by hand. Use gen_int_mode with QImode
36909 instead of gen_int_shift_amount + convert_modes.
36910
36911 PR rtl-optimization/93088
36912 * loop-iv.c (find_single_def_src): Punt after looking through
36913 128 reg copies for regs with single definitions. Move definitions
36914 to first uses.
36915
36916 2020-01-02 Dennis Zhang <dennis.zhang@arm.com>
36917
36918 * config/arm/arm-c.c (arm_cpu_builtins): Define
36919 __ARM_FEATURE_MATMUL_INT8, __ARM_FEATURE_BF16_VECTOR_ARITHMETIC,
36920 __ARM_FEATURE_BF16_SCALAR_ARITHMETIC, and
36921 __ARM_BF16_FORMAT_ALTERNATIVE when enabled.
36922 * config/arm/arm-cpus.in (armv8_6, i8mm, bf16): New features.
36923 * config/arm/arm-tables.opt: Regenerated.
36924 * config/arm/arm.c (arm_option_reconfigure_globals): Initialize
36925 arm_arch_i8mm and arm_arch_bf16 when enabled.
36926 * config/arm/arm.h (TARGET_I8MM): New macro.
36927 (TARGET_BF16_FP, TARGET_BF16_SIMD): Likewise.
36928 * config/arm/t-aprofile: Add matching rules for -march=armv8.6-a.
36929 * config/arm/t-arm-elf (all_v8_archs): Add armv8.6-a.
36930 * config/arm/t-multilib: Add matching rules for -march=armv8.6-a.
36931 (v8_6_a_simd_variants): New.
36932 (v8_*_a_simd_variants): Add i8mm and bf16.
36933 * doc/invoke.texi (armv8.6-a, i8mm, bf16): Document new options.
36934
36935 2020-01-02 Jakub Jelinek <jakub@redhat.com>
36936
36937 PR ipa/93087
36938 * predict.c (compute_function_frequency): Don't call
36939 warn_function_cold on functions that already have cold attribute.
36940
36941 2020-01-01 John David Anglin <danglin@gcc.gnu.org>
36942
36943 PR target/67834
36944 * config/pa/pa.c (pa_elf_select_rtx_section): New. Put references to
36945 COMDAT group function labels in .data.rel.ro.local section.
36946 * config/pa/pa32-linux.h (TARGET_ASM_SELECT_RTX_SECTION): Define.
36947
36948 PR target/93111
36949 * config/pa/pa.md (scc): Use ordered_comparison_operator instead of
36950 comparison_operator in B and S integer comparisons. Likewise, use
36951 ordered_comparison_operator instead of cmpib_comparison_operator in
36952 cmpib patterns.
36953 * config/pa/predicates.md (cmpib_comparison_operator): Remove.
36954
36955 2020-01-01 Jakub Jelinek <jakub@redhat.com>
36956
36957 Update copyright years.
36958
36959 * gcc.c (process_command): Update copyright notice dates.
36960 * gcov-dump.c (print_version): Ditto.
36961 * gcov.c (print_version): Ditto.
36962 * gcov-tool.c (print_version): Ditto.
36963 * gengtype.c (create_file): Ditto.
36964 * doc/cpp.texi: Bump @copying's copyright year.
36965 * doc/cppinternals.texi: Ditto.
36966 * doc/gcc.texi: Ditto.
36967 * doc/gccint.texi: Ditto.
36968 * doc/gcov.texi: Ditto.
36969 * doc/install.texi: Ditto.
36970 * doc/invoke.texi: Ditto.
36971
36972 2020-01-01 Jan Hubicka <hubicka@ucw.cz>
36973
36974 * ipa.c (walk_polymorphic_call_targets): Fix updating of overall
36975 summary.
36976
36977 2020-01-01 Jakub Jelinek <jakub@redhat.com>
36978
36979 PR tree-optimization/93098
36980 * match.pd (popcount): For shift amounts, use integer_onep
36981 or wi::to_widest () == cst instead of tree_to_uhwi () == cst
36982 tests. Make sure that precision is power of two larger than or equal
36983 to 16. Ensure shift is never negative. Use HOST_WIDE_INT_UC macro
36984 instead of ULL suffixed constants. Formatting fixes.
36985 \f
36986 Copyright (C) 2020 Free Software Foundation, Inc.
36987
36988 Copying and distribution of this file, with or without modification,
36989 are permitted in any medium without royalty provided the copyright
36990 notice and this notice are preserved.