Daily bump.
[gcc.git] / gcc / ChangeLog
1 2020-12-20 Max Filippov <jcmvbkbc@gmail.com>
2
3 * config/xtensa/xtensa.md (bswapsi2, bswapdi2): New patterns.
4
5 2020-12-20 Jakub Jelinek <jakub@redhat.com>
6
7 PR other/98400
8 * doc/invoke.texi (-mbackchain): Fix a typo - -mmo-backchain ->
9 -mno-backchain.
10
11 2020-12-19 Jakub Jelinek <jakub@redhat.com>
12
13 PR middle-end/98366
14 * fold-const.c (native_encode_initializer): Don't try to
15 memset more than total_bytes with off == -1 even if len is large.
16 Handle flexible array member initializers if off == -1 and mask is
17 NULL.
18 * expr.c (convert_to_bytes): Remove.
19 (constant_byte_string): Use native_encode_initializer instead of
20 convert_to_bytes. Remove extraneous semicolon. Punt on various
21 corner-cases the APIs don't handle, like sizes > INT_MAX,
22 BITS_PER_UNIT != 8, CHAR_BIT != 8.
23
24 2020-12-19 Iain Buclaw <ibuclaw@gdcproject.org>
25
26 PR d/98067
27 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Handle
28 CONST_DECL only if is_fortran, is_ada, or is_dlang.
29
30 2020-12-19 Jakub Jelinek <jakub@redhat.com>
31
32 PR tree-optimization/98378
33 * gimple-ssa-store-merging.c (find_bswap_or_nop): Punt if CONSTRUCTOR
34 has no elements.
35
36 2020-12-18 Jakub Jelinek <jakub@redhat.com>
37
38 * gimplify.c (struct gimplify_omp_ctx): Add has_depend member.
39 (gimplify_scan_omp_clauses): Set it to true if OMP_CLAUSE_DEPEND
40 appears on OMP_TASK.
41 (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Force
42 GOVD_WRITTEN on shared variables if task construct has depend clause.
43
44 2020-12-18 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
45
46 PR target/98177
47 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
48 get_same_sized_vectype to obtain index type.
49 (vectorizable_reduction): Likewise.
50
51 2020-12-18 Kwok Cheung Yeung <kcy@codesourcery.com>
52
53 * langhooks-def.h (lhd_get_decl_init): New.
54 (lhd_finish_decl_inits): New.
55 (LANG_HOOKS_GET_DECL_INIT): New.
56 (LANG_HOOKS_OMP_FINISH_DECL_INITS): New.
57 (LANG_HOOKS_DECLS): Add LANG_HOOKS_GET_DECL_INIT and
58 LANG_HOOKS_OMP_FINISH_DECL_INITS.
59 * langhooks.c (lhd_omp_get_decl_init): New.
60 (lhd_omp_finish_decl_inits): New.
61 * langhooks.h (struct lang_hooks_for_decls): Add omp_get_decl_init
62 and omp_finish_decl_inits.
63 * omp-offload.c (omp_discover_declare_target_var_r): Use
64 get_decl_init langhook in place of DECL_INITIAL. Call
65 omp_finish_decl_inits langhook at end of function.
66
67 2020-12-18 Richard Sandiford <richard.sandiford@arm.com>
68
69 * config/aarch64/aarch64.c (aarch64_preferred_simd_mode): Use
70 aarch64_full_sve_mode and aarch64_vq_mode directly, instead of
71 going via aarch64_simd_container_mode.
72
73 2020-12-18 Tamar Christina <tamar.christina@arm.com>
74
75 * config/arm/iterators.md (rot): Add UNSPEC_VCMUL, UNSPEC_VCMUL90,
76 UNSPEC_VCMUL180, UNSPEC_VCMUL270.
77
78 2020-12-17 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
79
80 * config/arm/arm-cpus.in: Add Cortex-A78C core.
81 * config/arm/arm-tables.opt: Regenerate.
82 * config/arm/arm-tune.md: Regenerate.
83 * doc/invoke.texi: Update docs.
84
85 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
86
87 PR rtl-optimization/98347
88 * rtl-ssa/access-utils.h (full_register): Use regno_reg_rtx
89 instead of reg_raw_mode.
90
91 2020-12-17 H.J. Lu <hjl.tools@gmail.com>
92
93 * targhooks.h (default_estimated_poly_value): Updated.
94
95 2020-12-17 Nathan Sidwell <nathan@acm.org>
96
97 * doc/invoke.texi (C++ Modules): Document lack of std
98 library header units.
99
100 2020-12-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
101
102 * target.h (enum poly_value_estimate_kind): Define.
103 (estimated_poly_value): Take an estimate kind argument.
104 * target.def (estimated_poly_value): Update definition for the
105 above.
106 * doc/tm.texi: Regenerate.
107 * targhooks.c (estimated_poly_value): Update prototype.
108 * tree-vect-loop.c (vect_better_loop_vinfo_p): Use min, max and
109 likely estimates of VF to pick between vinfos.
110 * config/aarch64/aarch64.c (aarch64_cmp_autovec_modes): Use
111 estimated_poly_value instead of aarch64_estimated_poly_value.
112 (aarch64_estimated_poly_value): Take a kind argument and handle
113 it.
114
115 2020-12-17 Andrea Corallo <andrea.corallo@arm.com>
116
117 * config/arm/arm_neon.h (vcreate_p64): Remove call to
118 '__builtin_neon_vcreatedi'.
119
120 2020-12-17 Andrew MacLeod <amacleod@redhat.com>
121
122 PR tree-optimization/97750
123 * range-op.cc (operator_cast::op1_range): Handle pointers better.
124
125 2020-12-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
126
127 * rtl-ssa.h: Include memmodel.h before tm_p.h.
128
129 2020-12-17 Jakub Jelinek <jakub@redhat.com>
130
131 PR rtl-optimization/98289
132 * shrink-wrap.c (can_get_prologue): Don't punt on EDGE_CROSSING
133 incoming edges.
134
135 2020-12-17 Marius Hillenbrand <mhillen@linux.ibm.com>
136
137 * configure.ac: Change --enable-s390-excess-float-precision
138 default behavior for cross compiles with target headers.
139 * configure: Regenerate.
140 * doc/install.texi: Adjust documentation.
141
142 2020-12-17 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
143
144 * config/xtensa/xtensa.md (*ashlsi3_1, *ashlsi3_3x, *ashrsi3_3x)
145 (*lshrsi3_3x): New patterns.
146
147 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
148
149 * fwprop.c: Rewrite to use the RTL SSA framework.
150
151 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
152
153 * configure.ac: Add rtl-ssa to the list of dependence directories.
154 * configure: Regenerate.
155 * Makefile.in (rtl-ssa-warn): New variable.
156 (OBJS): Add the rtl-ssa object files.
157 * emit-rtl.h (rtl_data::ssa): New field.
158 * rtl-ssa.h: New file.
159 * system.h: Include <functional> when INCLUDE_FUNCTIONAL is defined.
160 * rtl-ssa/access-utils.h: Likewise.
161 * rtl-ssa/accesses.h: New file.
162 * rtl-ssa/accesses.cc: Likewise.
163 * rtl-ssa/blocks.h: New file.
164 * rtl-ssa/blocks.cc: Likewise.
165 * rtl-ssa/change-utils.h: Likewise.
166 * rtl-ssa/changes.h: New file.
167 * rtl-ssa/changes.cc: Likewise.
168 * rtl-ssa/functions.h: New file.
169 * rtl-ssa/functions.cc: Likewise.
170 * rtl-ssa/insn-utils.h: Likewise.
171 * rtl-ssa/insns.h: New file.
172 * rtl-ssa/insns.cc: Likewise.
173 * rtl-ssa/internals.inl: Likewise.
174 * rtl-ssa/is-a.inl: Likewise.
175 * rtl-ssa/member-fns.inl: Likewise.
176 * rtl-ssa/movement.h: Likewise.
177
178 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
179
180 * doc/rtl.texi (RTL SSA): New node.
181
182 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
183
184 * rtl.h (simple_regno_set): Declare.
185 * rtlanal.c (simple_regno_set): New function.
186
187 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
188
189 * rtlanal.h: New file.
190 (MEM_REGNO): New constant.
191 (rtx_obj_flags): New namespace.
192 (rtx_obj_reference, rtx_properties): New classes.
193 (growing_rtx_properties, vec_rtx_properties_base): Likewise.
194 (vec_rtx_properties): New alias.
195 * rtlanal.c: Include it.
196 (rtx_properties::try_to_add_reg): New function.
197 (rtx_properties::try_to_add_dest): Likewise.
198 (rtx_properties::try_to_add_src): Likewise.
199 (rtx_properties::try_to_add_pattern): Likewise.
200 (rtx_properties::try_to_add_insn): Likewise.
201 (vec_rtx_properties_base::grow): Likewise.
202
203 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
204
205 * recog.h (insn_change_watermark): New class.
206
207 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
208
209 * recog.h (insn_propagation): New class.
210 * recog.c (insn_propagation::apply_to_mem_1): New function.
211 (insn_propagation::apply_to_rvalue_1): Likewise.
212 (insn_propagation::apply_to_lvalue_1): Likewise.
213 (insn_propagation::apply_to_pattern_1): Likewise.
214 (insn_propagation::apply_to_pattern): Likewise.
215 (insn_propagation::apply_to_rvalue): Likewise.
216
217 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
218
219 * recog.h (temporarily_undo_changes, redo_changes): Declare.
220 * recog.c (temporarily_undone_changes): New variable.
221 (validate_change_1, confirm_change_group): Check that it's zero.
222 (cancel_changes): Likewise.
223 (swap_change, temporarily_undo_changes): New functions.
224 (redo_changes): Likewise.
225
226 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
227
228 * recog.h (validate_change_xveclen): Declare.
229 * recog.c (change_t::old_len): New field.
230 (validate_change_1): Add a new_len parameter. Conditionally
231 replace the XVECLEN of an rtx, avoiding single-element PARALLELs.
232 (validate_change_xveclen): New function.
233 (cancel_changes): Undo changes made by validate_change_xveclen.
234
235 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
236
237 * rtl.h (simplify_context): New class.
238 (simplify_unary_operation, simplify_binary_operation): Use it.
239 (simplify_ternary_operation, simplify_relational_operation): Likewise.
240 (simplify_subreg, simplify_gen_unary, simplify_gen_binary): Likewise.
241 (simplify_gen_ternary, simplify_gen_relational): Likewise.
242 (simplify_gen_subreg, lowpart_subreg): Likewise.
243 * simplify-rtx.c (simplify_gen_binary): Turn into a member function
244 of simplify_context.
245 (simplify_gen_unary, simplify_gen_ternary, simplify_gen_relational)
246 (simplify_truncation, simplify_unary_operation): Likewise.
247 (simplify_unary_operation_1, simplify_byte_swapping_operation)
248 (simplify_associative_operation, simplify_logical_relational_operation)
249 (simplify_binary_operation, simplify_binary_operation_series)
250 (simplify_distributive_operation, simplify_plus_minus): Likewise.
251 (simplify_relational_operation, simplify_relational_operation_1)
252 (simplify_cond_clz_ctz, simplify_merge_mask): Likewise.
253 (simplify_ternary_operation, simplify_subreg, simplify_gen_subreg)
254 (lowpart_subreg): Likewise.
255 (simplify_binary_operation_1): Likewise. Test mem_depth when
256 deciding whether the ASHIFT or MULT form is canonical.
257 (simplify_merge_mask): Use simplify_context.
258
259 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
260
261 * rtl.h (register_asm_p): Declare.
262 * recog.c (verify_changes): Split out the test for whether
263 a hard register is a register asm to...
264 * rtlanal.c (register_asm_p): ...this new function.
265
266 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
267
268 * print-rtl.h (print_insn_with_notes): Declare.
269 * print-rtl.c (print_insn_with_notes): Make non-static
270
271 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
272
273 * cfgrtl.h (update_cfg_for_uncondjump): Declare.
274 * combine.c (update_cfg_for_uncondjump): Move to...
275 * cfgrtl.c: ...here.
276
277 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
278
279 * vec.h (array_slice): New class.
280
281 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
282
283 * Makefile.in (OBJS): Add splay-tree-utils.o.
284 * system.h: Include <array> when INCLUDE_ARRAY is defined.
285 * selftest.h (splay_tree_cc_tests): Declare.
286 * selftest-run-tests.c (selftest::run_tests): Run splay_tree_cc_tests.
287 * splay-tree-utils.h: New file.
288 * splay-tree-utils.tcc: Likewise.
289 * splay-tree-utils.cc: Likewise.
290
291 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
292
293 * mux-utils.h: New file.
294
295 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
296
297 * obstack-utils.h: New file.
298
299 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
300
301 * iterator-utils.h (derived_iterator): New class.
302 (const_derived_container, wrapper_iterator): Likewise.
303 (list_iterator): Likewise.
304
305 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
306
307 * hard-reg-set.h (global_reg_set): Declare.
308 * reginfo.c (global_reg_set): New variable.
309 (init_reg_sets_1, globalize_reg): Update it when globalizing
310 registers.
311
312 2020-12-16 Piotr Kubaj <pkubaj@FreeBSD.org>
313
314 * config.gcc (powerpc*le-*-freebsd*): Add.
315 * configure.ac (powerpc*le-*-freebsd*): Ditto.
316 * configure: Regenerate.
317 * config/rs6000/freebsd64.h (ASM_SPEC_COMMON): Use ENDIAN_SELECT.
318 (DEFAULT_ASM_ENDIAN): Add little endian support.
319 (LINK_OS_FREEBSD_SPEC64): Ditto.
320
321 2020-12-16 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
322
323 * config/xtensa/xtensa.c (xtensa_emit_move_sequence): Try to
324 replace 'l32r' with 'movi' + 'slli' when optimizing for size.
325 * config/xtensa/xtensa.md (movdi): Split loading DI mode constant
326 into register pair into two loads of SI mode constants.
327
328 2020-12-16 Tamar Christina <tamar.christina@arm.com>
329
330 * config/arm/arm_mve.h (__arm_vcmulq_rot90_f16):
331 (__arm_vcmulq_rot270_f16, _arm_vcmulq_rot180_f16, __arm_vcmulq_f16,
332 __arm_vcmulq_rot90_f32, __arm_vcmulq_rot270_f32,
333 __arm_vcmulq_rot180_f32, __arm_vcmulq_f32, __arm_vcmlaq_f16,
334 __arm_vcmlaq_rot180_f16, __arm_vcmlaq_rot270_f16,
335 __arm_vcmlaq_rot90_f16, __arm_vcmlaq_f32, __arm_vcmlaq_rot180_f32,
336 __arm_vcmlaq_rot270_f32, __arm_vcmlaq_rot90_f32): Update builtin calls.
337 * config/arm/arm_mve_builtins.def (vcmulq_f, vcmulq_rot90_f,
338 vcmulq_rot180_f, vcmulq_rot270_f, vcmlaq_f, vcmlaq_rot90_f,
339 vcmlaq_rot180_f, vcmlaq_rot270_f): Removed.
340 (vcmulq, vcmulq_rot90, vcmulq_rot180, vcmulq_rot270, vcmlaq,
341 vcmlaq_rot90, vcmlaq_rot180, vcmlaq_rot270): New.
342 * config/arm/iterators.md (mve_rot): Add UNSPEC_VCMLA, UNSPEC_VCMLA90,
343 UNSPEC_VCMLA180, UNSPEC_VCMLA270, UNSPEC_VCMUL, UNSPEC_VCMUL90,
344 UNSPEC_VCMUL180, UNSPEC_VCMUL270.
345 (VCMUL): New.
346 * config/arm/mve.md (mve_vcmulq_f<mode, mve_vcmulq_rot180_f<mode>,
347 mve_vcmulq_rot270_f<mode>, mve_vcmulq_rot90_f<mode>, mve_vcmlaq_f<mode>,
348 mve_vcmlaq_rot180_f<mode>, mve_vcmlaq_rot270_f<mode>,
349 mve_vcmlaq_rot90_f<mode>): Removed.
350 (mve_vcmlaq<mve_rot><mode>, mve_vcmulq<mve_rot><mode>,
351 mve_vcaddq<mve_rot><mode>, cadd<rot><mode>3, mve_vcaddq<mve_rot><mode>):
352 New.
353 * config/arm/unspecs.md (UNSPEC_VCMUL90, UNSPEC_VCMUL270, UNSPEC_VCMUL,
354 UNSPEC_VCMUL180): New.
355 (VCMULQ_F, VCMULQ_ROT180_F, VCMULQ_ROT270_F, VCMULQ_ROT90_F,
356 VCMLAQ_F, VCMLAQ_ROT180_F, VCMLAQ_ROT90_F, VCMLAQ_ROT270_F): Removed.
357
358 2020-12-16 Tamar Christina <tamar.christina@arm.com>
359
360 * config/arm/arm_mve.h (__arm_vcaddq_rot90_u8, __arm_vcaddq_rot270_u8,
361 __arm_vcaddq_rot90_s8, __arm_vcaddq_rot270_s8,
362 __arm_vcaddq_rot90_u16, __arm_vcaddq_rot270_u16,
363 __arm_vcaddq_rot90_s16, __arm_vcaddq_rot270_s16,
364 __arm_vcaddq_rot90_u32, __arm_vcaddq_rot270_u32,
365 __arm_vcaddq_rot90_s32, __arm_vcaddq_rot270_s32,
366 __arm_vcaddq_rot90_f16, __arm_vcaddq_rot270_f16,
367 __arm_vcaddq_rot90_f32, __arm_vcaddq_rot270_f32): Update builtin calls.
368 * config/arm/arm_mve_builtins.def (vcaddq_rot90_u, vcaddq_rot270_u,
369 vcaddq_rot90_s, vcaddq_rot270_s, vcaddq_rot90_f, vcaddq_rot270_f):
370 Removed.
371 (vcaddq_rot90, vcaddq_rot270): New.
372 * config/arm/constraints.md (Dz): Include MVE.
373 * config/arm/iterators.md (mve_rot): New.
374 (supf): Remove VCADDQ_ROT270_S, VCADDQ_ROT270_U, VCADDQ_ROT90_S,
375 VCADDQ_ROT90_U.
376 (VCADDQ_ROT270, VCADDQ_ROT90): Removed.
377 * config/arm/mve.md (mve_vcaddq_rot270_<supf><mode,
378 mve_vcaddq_rot90_<supf><mode>, mve_vcaddq_rot270_f<mode>,
379 mve_vcaddq_rot90_f<mode>): Removed.
380 (mve_vcaddq<mve_rot><mode>, mve_vcaddq<mve_rot><mode>): New.
381 * config/arm/unspecs.md (VCADDQ_ROT270_S, VCADDQ_ROT90_S,
382 VCADDQ_ROT270_U, VCADDQ_ROT90_U, VCADDQ_ROT270_F,
383 VCADDQ_ROT90_F): Removed.
384 * config/arm/vec-common.md (cadd<rot><mode>3): New.
385
386 2020-12-16 Tamar Christina <tamar.christina@arm.com>
387
388 * config/aarch64/aarch64-simd.md (cadd<rot><mode>3): New.
389 * config/aarch64/iterators.md (SVE2_INT_CADD_OP): New.
390 * config/aarch64/aarch64-sve.md (cadd<rot><mode>3): New.
391 * config/aarch64/aarch64-sve2.md (cadd<rot><mode>3): New.
392
393 2020-12-16 Pat Haugen <pthaugen@linux.ibm.com>
394
395 * config/rs6000/mma.md (*movxo, mma_<vvi4i4i8>, mma_<avvi4i4i8>,
396 mma_<vvi4i4i2>, mma_<avvi4i4i2>, mma_<vvi4i4>, mma_<avvi4i4>,
397 mma_<pvi4i2>, mma_<apvi4i2>, mma_<vvi4i4i4>, mma_<avvi4i4i4>):
398 Remove explicit setting of length attribute.
399
400 2020-12-16 Jakub Jelinek <jakub@redhat.com>
401
402 * varasm.c (default_elf_asm_named_section): Always force
403 section flags even for sections with SECTION_LINK_ORDER flag.
404
405 2020-12-16 H.J. Lu <hjl.tools@gmail.com>
406
407 PR target/98146
408 * defaults.h (SUPPORTS_SHF_GNU_RETAIN): New.
409 * varasm.c (get_section): Replace HAVE_GAS_SHF_GNU_RETAIN with
410 SUPPORTS_SHF_GNU_RETAIN.
411 (resolve_unique_section): Likewise.
412 (get_variable_section): Likewise.
413 (switch_to_section): Likewise.
414
415 2020-12-16 H.J. Lu <hjl.tools@gmail.com>
416
417 PR target/98146
418 * varasm.c (switch_to_section): Warn when a symbol without used
419 attribute and a symbol with used attribute are placed in the
420 section with the same name.
421
422 2020-12-16 H.J. Lu <hjl.tools@gmail.com>
423
424 PR target/98146
425 * output.h (switch_to_section): Add a tree argument, default to
426 nullptr.
427 * varasm.c (get_section): If the SECTION_RETAIN bit doesn't match,
428 return and switch to a new section later.
429 (assemble_start_function): Pass decl to switch_to_section.
430 (assemble_variable): Likewise.
431 (switch_to_section): If the SECTION_RETAIN bit doesn't match,
432 switch to a new section.
433
434 2020-12-16 Jakub Jelinek <jakub@redhat.com>
435
436 PR tree-optimization/96239
437 * gimple-ssa-store-merging.c (find_bswap_or_nop): Handle a vector
438 CONSTRUCTOR.
439 (bswap_replace): Likewise.
440
441 2020-12-16 Martin Liska <mliska@suse.cz>
442
443 * common.opt: Remove usage of Report.
444 * config/aarch64/aarch64.opt: Ditto.
445 * config/alpha/alpha.opt: Ditto.
446 * config/arc/arc.opt: Ditto.
447 * config/arm/arm.opt: Ditto.
448 * config/avr/avr.opt: Ditto.
449 * config/bfin/bfin.opt: Ditto.
450 * config/bpf/bpf.opt: Ditto.
451 * config/c6x/c6x.opt: Ditto.
452 * config/cr16/cr16.opt: Ditto.
453 * config/cris/cris.opt: Ditto.
454 * config/cris/elf.opt: Ditto.
455 * config/csky/csky.opt: Ditto.
456 * config/darwin.opt: Ditto.
457 * config/fr30/fr30.opt: Ditto.
458 * config/frv/frv.opt: Ditto.
459 * config/ft32/ft32.opt: Ditto.
460 * config/gcn/gcn.opt: Ditto.
461 * config/i386/cygming.opt: Ditto.
462 * config/i386/i386.opt: Ditto.
463 * config/ia64/ia64.opt: Ditto.
464 * config/ia64/ilp32.opt: Ditto.
465 * config/linux-android.opt: Ditto.
466 * config/linux.opt: Ditto.
467 * config/lm32/lm32.opt: Ditto.
468 * config/m32r/m32r.opt: Ditto.
469 * config/m68k/m68k.opt: Ditto.
470 * config/mcore/mcore.opt: Ditto.
471 * config/microblaze/microblaze.opt: Ditto.
472 * config/mips/mips.opt: Ditto.
473 * config/mmix/mmix.opt: Ditto.
474 * config/mn10300/mn10300.opt: Ditto.
475 * config/moxie/moxie.opt: Ditto.
476 * config/msp430/msp430.opt: Ditto.
477 * config/nds32/nds32.opt: Ditto.
478 * config/nios2/elf.opt: Ditto.
479 * config/nios2/nios2.opt: Ditto.
480 * config/nvptx/nvptx.opt: Ditto.
481 * config/pa/pa.opt: Ditto.
482 * config/pdp11/pdp11.opt: Ditto.
483 * config/pru/pru.opt: Ditto.
484 * config/riscv/riscv.opt: Ditto.
485 * config/rl78/rl78.opt: Ditto.
486 * config/rs6000/aix64.opt: Ditto.
487 * config/rs6000/linux64.opt: Ditto.
488 * config/rs6000/rs6000.opt: Ditto.
489 * config/rs6000/sysv4.opt: Ditto.
490 * config/rx/elf.opt: Ditto.
491 * config/rx/rx.opt: Ditto.
492 * config/s390/s390.opt: Ditto.
493 * config/s390/tpf.opt: Ditto.
494 * config/sh/sh.opt: Ditto.
495 * config/sol2.opt: Ditto.
496 * config/sparc/long-double-switch.opt: Ditto.
497 * config/sparc/sparc.opt: Ditto.
498 * config/tilegx/tilegx.opt: Ditto.
499 * config/tilepro/tilepro.opt: Ditto.
500 * config/v850/v850.opt: Ditto.
501 * config/visium/visium.opt: Ditto.
502 * config/vms/vms.opt: Ditto.
503 * config/vxworks.opt: Ditto.
504 * config/xtensa/xtensa.opt: Ditto.
505
506 2020-12-16 Martin Liska <mliska@suse.cz>
507
508 * doc/options.texi: Remove Report keyword.
509 * opt-functions.awk: Print error when Report keyword
510 is used.
511 * optc-gen.awk: Do not handle Report keyword.
512 * opts.h (struct cl_option): Remove cl_report bitfield flag.
513
514 2020-12-16 Martin Liska <mliska@suse.cz>
515
516 PR sanitizer/97868
517 * common.opt: Add new warning -Wtsan.
518 * doc/invoke.texi: Likewise.
519 * tsan.c (instrument_builtin_call): Warn users about unsupported
520 std::atomic_thread_fence.
521
522 2020-12-16 Martin Liska <mliska@suse.cz>
523
524 PR rtl-optimization/98271
525 PR rtl-optimization/98276
526 PR tree-optimization/98279
527 * opts-common.c (set_option): Do not allow overflow for integer
528 arguments.
529
530 2020-12-16 Eric Botcazou <ebotcazou@adacore.com>
531
532 PR tree-optimization/98272
533 * tree-switch-conversion.c (bit_test_cluster::emit): When finding
534 out whether the entry test can be merged in the bit test, do the
535 computation using the type of the index expression.
536
537 2020-12-16 Kewen Lin <linkw@linux.ibm.com>
538
539 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
540 paradoxical subreg instead of zero_extend for QI/HI promotion.
541
542 2020-12-16 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
543
544 PR target/66791
545 * config/arm/arm_neon.h: Replace calls to __builtin_vcgt* by
546 <, > operators in vclt and vcgt intrinsics respectively.
547 * config/arm/arm_neon_builtins.def: Remove entry for
548 vcgt and vcgtu.
549
550 2020-12-16 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
551
552 PR target/66791
553 * config/arm/arm_neon.h: Replace calls to __builtin_vneg* by - operator
554 in vneg intrinsics.
555 * config/arm/arm_neon_builtins.def: Remove entry for vneg.
556
557 2020-12-16 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
558
559 PR target/66791
560 * config/arm/arm_neon.h: Replace calls to __builtin_vcreate*
561 in vcreate intrinsics.
562 * config/arm/arm_neon_builtins.def: Remove entry for vcreate.
563
564 2020-12-15 Jakub Jelinek <jakub@redhat.com>
565
566 PR tree-optimization/96094
567 * match.pd (X / bool_range_Y -> X): New simplification.
568
569 2020-12-15 Nathan Sidwell <nathan@acm.org>
570
571 * doc/cppopts.texi: Document new cpp opt.
572 * doc/invoke.texi: Add C++20 module option & documentation.
573
574 2020-12-15 Nathan Sidwell <nathan@acm.org>
575
576 * Makefile.in (CODYINC, CODYLIB, CODYLIB_H): New. Use them.
577
578 2020-12-15 Jakub Jelinek <jakub@redhat.com>
579
580 PR target/98274
581 * config/i386/i386-options.c (ix86_option_override_internal): Set
582 ix86_tune_string to "generic" even when it wasn't specified and
583 ix86_arch_string is "x86-64-v2", "x86-64-v3" or "x86-64-v4".
584 Remove useless {}s around a single statement.
585
586 2020-12-15 Martin Liska <mliska@suse.cz>
587
588 PR lto/98275
589 * lto-wrapper.c: Do not use -j0 when we are unable to detect
590 number of cores.
591
592 2020-12-15 Jakub Jelinek <jakub@redhat.com>
593
594 * config/i386/i386-options.c (ix86_option_override_internal): Don't
595 error on -march=x86-64-v[234] with -m32 or -mabi=ms.
596 * config.gcc: Don't reject --with-arch=x86-64-v[234] or
597 --with-arch_32=x86-64-v[234].
598 * doc/invoke.texi (-march=x86-64-v[234]): Document what the option
599 does for other ABIs.
600
601 2020-12-15 Martin Liska <mliska@suse.cz>
602
603 PR gcov-profile/98273
604 * gcov.c (output_json_intermediate_file): Use stack of nested
605 functions for lines in a source file. Pop when a function ends.
606
607 2020-12-15 Gerald Pfeifer <gerald@pfeifer.com>
608
609 * doc/invoke.texi (Instrumentation Options): Update link to
610 KernelAddressSanitizer.
611
612 2020-12-15 Max Filippov <jcmvbkbc@gmail.com>
613
614 * config/xtensa/predicates.md (addsubx_operand): Change accepted
615 values from 2/4/8 to 1..3.
616 * config/xtensa/xtensa.md (*addx, *subx): Change RTL pattern
617 to use 'ashift' instead of 'mult'. Update operands[3] value.
618
619 2020-12-14 Piotr Kubaj <pkubaj@FreeBSD.org>
620 Gerald Pfeifer <gerald@pfeifer.com>
621
622 * config/rs6000/freebsd64.h (PROCESSOR_DEFAULT): Update
623 to PROCESSOR_PPC7450.
624 (PROCESSOR_DEFAULT64): Update to PROCESSOR_POWER8.
625
626 2020-12-14 Martin Sebor <msebor@redhat.com>
627
628 PR middle-end/98166
629 PR c++/57111
630 PR middle-end/98160
631 * builtins.c (check_access): Call tree_inlined_location
632 fndecl_alloc_p): Handle BUILT_IN_ALIGNED_ALLOC and
633 BUILT_IN_GOMP_ALLOC.
634 call_dealloc_p): Remove unused function.
635 (new_delete_mismatch_p): Call valid_new_delete_pair_p and rework.
636 (matching_alloc_calls_p): Handle built-in deallocation functions.
637 (warn_dealloc_offset): Corrct the handling of user-defined operators
638 delete.
639 (maybe_emit_free_warning): Avoid assuming expression is a decl.
640 Simplify.
641 * doc/extend.texi (attribute malloc): Update.
642 * tree-ssa-dce.c (valid_new_delete_pair_p): Factor code out into
643 valid_new_delete_pair_p in tree.c.
644 * tree.c (tree_inlined_location): Define new function.
645 (valid_new_delete_pair_p): Define.
646 * tree.h (tree_inlined_location): Declare.
647 (valid_new_delete_pair_p): Declare.
648
649 2020-12-14 Sebastian Pop <spop@amazon.com>
650
651 * config.gcc (aarch64*-*-*): Remove --with-{cpu,arch,tune}-32 flags.
652
653 2020-12-14 Wilco Dijkstra <wdijkstr@arm.com>
654
655 * config.gcc (aarch64*-*-*): Add --with-tune. Support --with-cpu=native.
656 * config/aarch64/aarch64.h (OPTION_DEFAULT_SPECS): Add --with-tune.
657
658 2020-12-14 Martin Liska <mliska@suse.cz>
659
660 * gcov.c (output_json_intermediate_file): Update comments.
661
662 2020-12-14 Tamar Christina <tamar.christina@arm.com>
663
664 PR middle-end/98264
665 * tree-vect-slp-patterns.c (linear_loads_p): Exclude TOP permute.
666
667 2020-12-14 Christophe Lyon <christophe.lyon@linaro.org>
668
669 * config/arm/mve.md (mve_vnegq_f): Use 'neg' instead of unspec.
670 (mve_vnegq_s): Likewise.
671 * config/arm/neon.md (neg<mode>2): Rename into neon_neg<mode>2.
672 (<absneg_str><mode>2): Rename into neon_<absneg_str><mode>2.
673 (neon_v<absneg_str><mode>): Call gen_neon_<absneg_str><mode>2.
674 (vashr<mode>3): Call gen_neon_neg<mode>2.
675 (vlshr<mode>3): Call gen_neon_neg<mode>2.
676 (neon_vneg<mode>): Call gen_neon_neg<mode>2.
677 * config/arm/unspecs.md (VNEGQ_F, VNEGQ_S): Remove.
678 * config/arm/vec-common.md (neg<mode>2): New expander.
679
680 2020-12-14 Christophe Lyon <christophe.lyon@linaro.org>
681
682 * config/arm/iterators.md (VDQNOTM2): New mode iterator.
683 (supf): Remove VMVNQ_S and VMVNQ_U.
684 (VMVNQ): Remove.
685 * config/arm/mve.md (mve_vmvnq_u<mode>): New entry for vmvn
686 instruction using expression not.
687 (mve_vmvnq_s<mode>): New expander.
688 * config/arm/neon.md (one_cmpl<mode>2): Renamed into
689 one_cmpl<mode>2_neon.
690 * config/arm/unspecs.md (VMVNQ_S, VMVNQ_U): Remove.
691 * config/arm/vec-common.md (one_cmpl<mode>2): New expander.
692
693 2020-12-14 Christophe Lyon <christophe.lyon@linaro.org>
694
695 * config/arm/iterators.md (supf): Remove VBICQ_S and VBICQ_U.
696 (VBICQ): Remove.
697 * config/arm/mve.md (mve_vbicq_u<mode>): New entry for vbic
698 instruction using expression and not.
699 (mve_vbicq_s<mode>): New expander.
700 (mve_vbicq_f<mode>): Replace use of unspec by 'and not'.
701 * config/arm/unspecs.md (VBICQ_S, VBICQ_U, VBICQ_F): Remove.
702
703 2020-12-14 Christophe Lyon <christophe.lyon@linaro.org>
704
705 * config/arm/iterators.md (supf): Remove VEORQ_S and VEORQ_U.
706 (VEORQ): Remove.
707 * config/arm/mve.md (mve_veorq_u<mode>): New entry for veor
708 instruction using expression xor.
709 (mve_veorq_s<mode>): New expander.
710 (mve_veorq_f<mode>): Use 'xor' code instead of unspec.
711 * config/arm/neon.md (xor<mode>3): Renamed into xor<mode>3_neon.
712 * config/arm/unspecs.md (VEORQ_S, VEORQ_U, VEORQ_F): Remove.
713 * config/arm/vec-common.md (xor<mode>3): New expander.
714
715 2020-12-14 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
716
717 * config/aarch64/aarch64-cores.def (AARCH64_CORE): Add Cortex-A78C core.
718 * config/aarch64/aarch64-tune.md: Regenerate.
719 * doc/invoke.texi: Update docs.
720
721 2020-12-14 Nikhil Benesch <nikhil.benesch@gmail.com>
722
723 * godump.c (go_output_typedef): Suppress typedefs whose name
724 matches the tag of the underlying struct, union, or enum.
725 Output declarations for enums that do not appear in typedefs.
726
727 2020-12-13 Maciej W. Rozycki <macro@linux-mips.org>
728
729 * config/vax/vax.c (vax_output_int_move): Unify push operation
730 selection.
731
732 2020-12-13 Maciej W. Rozycki <macro@linux-mips.org>
733
734 * config/vax/vax.c (vax_output_int_move): Check the correct
735 operand for constant 0 push operation.
736
737 2020-12-13 Maciej W. Rozycki <macro@linux-mips.org>
738
739 * config/vax/vax.c (vax_expand_addsub_di_operands): Handle equal
740 input operands with subtraction.
741
742 2020-12-13 Maciej W. Rozycki <macro@linux-mips.org>
743
744 * config/vax/vax.c (vax_expand_addsub_di_operands): Handle the
745 addition or subtraction of 0.
746
747 2020-12-13 Maciej W. Rozycki <macro@linux-mips.org>
748
749 * config/vax/vax.c (vax_expand_addsub_di_operands): Remove
750 unused register allocation.
751
752 2020-12-13 Maciej W. Rozycki <macro@linux-mips.org>
753
754 * config/vax/vax.md (casesi): Use `gen_int_mode' rather than
755 `GEN_INT' for the immediate used for lower bound adjustment.
756
757 2020-12-13 Jakub Jelinek <jakub@redhat.com>
758
759 PR tree-optimization/98256
760 * tree-ssa-math-opts.c (match_uaddsub_overflow): For BIT_NOT_EXPR,
761 only handle a single use, and insert .ADD_OVERFLOW before the
762 comparison rather than after the BIT_NOT_EXPR. Return true iff
763 it is BIT_NOT_EXPR and it has been removed.
764 (math_opts_dom_walker::after_dom_children) <case BIT_NOT_EXPR>:
765 If match_uaddsub_overflow returned true, continue instead of break.
766
767 2020-12-13 Tamar Christina <tamar.christina@arm.com>
768
769 Revert:
770 2020-12-13 Tamar Christina <tamar.christina@arm.com>
771
772 * config/arm/arm_mve.h (__arm_vcaddq_rot90_u8, __arm_vcaddq_rot270_u8,
773 , __arm_vcaddq_rot90_s8, __arm_vcaddq_rot270_s8,
774 __arm_vcaddq_rot90_u16, __arm_vcaddq_rot270_u16, __arm_vcaddq_rot90_s16,
775 __arm_vcaddq_rot270_s16, __arm_vcaddq_rot90_u32,
776 __arm_vcaddq_rot270_u32, __arm_vcaddq_rot90_s32,
777 __arm_vcaddq_rot270_s32, __arm_vcmulq_rot90_f16,
778 __arm_vcmulq_rot270_f16, __arm_vcmulq_rot180_f16,
779 __arm_vcmulq_f16, __arm_vcaddq_rot90_f16, __arm_vcaddq_rot270_f16,
780 __arm_vcmulq_rot90_f32, __arm_vcmulq_rot270_f32,
781 __arm_vcmulq_rot180_f32, __arm_vcmulq_f32, __arm_vcaddq_rot90_f32,
782 __arm_vcaddq_rot270_f32, __arm_vcmlaq_f16, __arm_vcmlaq_rot180_f16,
783 __arm_vcmlaq_rot270_f16, __arm_vcmlaq_rot90_f16, __arm_vcmlaq_f32,
784 __arm_vcmlaq_rot180_f32, __arm_vcmlaq_rot270_f32,
785 __arm_vcmlaq_rot90_f32): Update builtin calls.
786 * config/arm/arm_mve_builtins.def (vcaddq_rot90_u, vcaddq_rot270_u,
787 vcaddq_rot90_s, vcaddq_rot270_s, vcaddq_rot90_f, vcaddq_rot270_f,
788 vcmulq_f, vcmulq_rot90_f, vcmulq_rot180_f, vcmulq_rot270_f,
789 vcmlaq_f, vcmlaq_rot90_f, vcmlaq_rot180_f, vcmlaq_rot270_f): Removed.
790 (vcaddq_rot90, vcaddq_rot270, vcmulq, vcmulq_rot90, vcmulq_rot180,
791 vcmulq_rot270, vcmlaq, vcmlaq_rot90, vcmlaq_rot180, vcmlaq_rot270):
792 New.
793 * config/arm/constraints.md (Dz): Include MVE.
794 * config/arm/iterators.md (mve_rotsplit1, mve_rotsplit2): New.
795 (rot): Add UNSPEC_VCMLS, UNSPEC_VCMUL and UNSPEC_VCMUL180.
796 (rot_op, rotsplit1, rotsplit2, fcmac1, VCMLA_OP, VCMUL_OP): New.
797 * config/arm/mve.md (VCADDQ_ROT270_S, VCADDQ_ROT90_S, VCADDQ_ROT270_U,
798 VCADDQ_ROT90_U, VCADDQ_ROT270_F, VCADDQ_ROT90_F, VCMULQ_F,
799 VCMULQ_ROT180_F, VCMULQ_ROT270_F, VCMULQ_ROT90_F, VCMLAQ_F,
800 VCMLAQ_ROT180_F, VCMLAQ_ROT90_F, VCMLAQ_ROT270_F, VCADDQ_ROT270_S,
801 VCADDQ_ROT270, VCADDQ_ROT90): Removed.
802 (mve_rot, VCMUL): New.
803 (mve_vcaddq_rot270_<supf><mode, mve_vcaddq_rot90_<supf><mode>,
804 mve_vcaddq_rot270_f<mode>, mve_vcaddq_rot90_f<mode>, mve_vcmulq_f<mode,
805 mve_vcmulq_rot180_f<mode>, mve_vcmulq_rot270_f<mode>,
806 mve_vcmulq_rot90_f<mode>, mve_vcmlaq_f<mode>, mve_vcmlaq_rot180_f<mode>,
807 mve_vcmlaq_rot270_f<mode>, mve_vcmlaq_rot90_f<mode>): Removed.
808 (mve_vcmlaq<mve_rot><mode>, mve_vcmulq<mve_rot><mode>,
809 mve_vcaddq<mve_rot><mode>, cadd<rot><mode>3, mve_vcaddq<mve_rot><mode>):
810 New.
811 (cmul<rot_op><mode>3): Exclude MVE types.
812 * config/arm/unspecs.md (UNSPEC_VCMUL90, UNSPEC_VCMUL270): New.
813 * config/arm/vec-common.md (cadd<rot><mode>3, cmul<rot_op><mode>3,
814 arm_vcmla<rot><mode>, cml<fcmac1><rot_op><mode>4): New.
815 * config/arm/unspecs.md (UNSPEC_VCMUL, UNSPEC_VCMUL180, UNSPEC_VCMLS,
816 UNSPEC_VCMLS180): New.
817 * config/arm/neon.md (cmul<rot_op><mode>3): New.
818
819 2020-12-13 Jakub Jelinek <jakub@redhat.com>
820
821 PR target/92469
822 * varasm.c (eliminable_regno_p): New function.
823 (make_decl_rtl): Reject asm vars for frame and argp
824 if they are different from hard frame pointer.
825
826 2020-12-13 Tamar Christina <tamar.christina@arm.com>
827
828 * config/arm/arm_mve.h (__arm_vcaddq_rot90_u8, __arm_vcaddq_rot270_u8,
829 , __arm_vcaddq_rot90_s8, __arm_vcaddq_rot270_s8,
830 __arm_vcaddq_rot90_u16, __arm_vcaddq_rot270_u16, __arm_vcaddq_rot90_s16,
831 __arm_vcaddq_rot270_s16, __arm_vcaddq_rot90_u32,
832 __arm_vcaddq_rot270_u32, __arm_vcaddq_rot90_s32,
833 __arm_vcaddq_rot270_s32, __arm_vcmulq_rot90_f16,
834 __arm_vcmulq_rot270_f16, __arm_vcmulq_rot180_f16,
835 __arm_vcmulq_f16, __arm_vcaddq_rot90_f16, __arm_vcaddq_rot270_f16,
836 __arm_vcmulq_rot90_f32, __arm_vcmulq_rot270_f32,
837 __arm_vcmulq_rot180_f32, __arm_vcmulq_f32, __arm_vcaddq_rot90_f32,
838 __arm_vcaddq_rot270_f32, __arm_vcmlaq_f16, __arm_vcmlaq_rot180_f16,
839 __arm_vcmlaq_rot270_f16, __arm_vcmlaq_rot90_f16, __arm_vcmlaq_f32,
840 __arm_vcmlaq_rot180_f32, __arm_vcmlaq_rot270_f32,
841 __arm_vcmlaq_rot90_f32): Update builtin calls.
842 * config/arm/arm_mve_builtins.def (vcaddq_rot90_u, vcaddq_rot270_u,
843 vcaddq_rot90_s, vcaddq_rot270_s, vcaddq_rot90_f, vcaddq_rot270_f,
844 vcmulq_f, vcmulq_rot90_f, vcmulq_rot180_f, vcmulq_rot270_f,
845 vcmlaq_f, vcmlaq_rot90_f, vcmlaq_rot180_f, vcmlaq_rot270_f): Removed.
846 (vcaddq_rot90, vcaddq_rot270, vcmulq, vcmulq_rot90, vcmulq_rot180,
847 vcmulq_rot270, vcmlaq, vcmlaq_rot90, vcmlaq_rot180, vcmlaq_rot270):
848 New.
849 * config/arm/constraints.md (Dz): Include MVE.
850 * config/arm/iterators.md (mve_rotsplit1, mve_rotsplit2): New.
851 (rot): Add UNSPEC_VCMLS, UNSPEC_VCMUL and UNSPEC_VCMUL180.
852 (rot_op, rotsplit1, rotsplit2, fcmac1, VCMLA_OP, VCMUL_OP): New.
853 * config/arm/mve.md (VCADDQ_ROT270_S, VCADDQ_ROT90_S, VCADDQ_ROT270_U,
854 VCADDQ_ROT90_U, VCADDQ_ROT270_F, VCADDQ_ROT90_F, VCMULQ_F,
855 VCMULQ_ROT180_F, VCMULQ_ROT270_F, VCMULQ_ROT90_F, VCMLAQ_F,
856 VCMLAQ_ROT180_F, VCMLAQ_ROT90_F, VCMLAQ_ROT270_F, VCADDQ_ROT270_S,
857 VCADDQ_ROT270, VCADDQ_ROT90): Removed.
858 (mve_rot, VCMUL): New.
859 (mve_vcaddq_rot270_<supf><mode, mve_vcaddq_rot90_<supf><mode>,
860 mve_vcaddq_rot270_f<mode>, mve_vcaddq_rot90_f<mode>, mve_vcmulq_f<mode,
861 mve_vcmulq_rot180_f<mode>, mve_vcmulq_rot270_f<mode>,
862 mve_vcmulq_rot90_f<mode>, mve_vcmlaq_f<mode>, mve_vcmlaq_rot180_f<mode>,
863 mve_vcmlaq_rot270_f<mode>, mve_vcmlaq_rot90_f<mode>): Removed.
864 (mve_vcmlaq<mve_rot><mode>, mve_vcmulq<mve_rot><mode>,
865 mve_vcaddq<mve_rot><mode>, cadd<rot><mode>3, mve_vcaddq<mve_rot><mode>):
866 New.
867 (cmul<rot_op><mode>3): Exclude MVE types.
868 * config/arm/unspecs.md (UNSPEC_VCMUL90, UNSPEC_VCMUL270): New.
869 * config/arm/vec-common.md (cadd<rot><mode>3, cmul<rot_op><mode>3,
870 arm_vcmla<rot><mode>, cml<fcmac1><rot_op><mode>4): New.
871 * config/arm/unspecs.md (UNSPEC_VCMUL, UNSPEC_VCMUL180, UNSPEC_VCMLS,
872 UNSPEC_VCMLS180): New.
873 * config/arm/neon.md (cmul<rot_op><mode>3): New.
874
875 2020-12-13 Tamar Christina <tamar.christina@arm.com>
876
877 * config/arm/arm.c (arm_preferred_simd_mode): Add E_HFmode.
878
879 2020-12-13 Tamar Christina <tamar.christina@arm.com>
880
881 * tree-vect-slp-patterns.c: New file.
882 * Makefile.in: Add it.
883 * doc/passes.texi: Document it.
884 * internal-fn.def (COMPLEX_ADD_ROT90, COMPLEX_ADD_ROT270): New.
885 * optabs.def (cadd90_optab, cadd270_optab): New.
886 * doc/md.texi: Document them.
887 * tree-vect-loop.c (vect_analyze_loop_2): Add dissolve code.
888 * tree-vect-slp.c:
889 (vect_free_slp_instance, vect_create_new_slp_node): Export.
890 (vect_match_slp_patterns_2, vect_match_slp_patterns): New.
891 (vect_analyze_slp): Use it.
892 * tree-vectorizer.h (vect_free_slp_tree): Export.
893 (enum _complex_operation): Forward declare.
894 (class vect_pattern): New
895
896 2020-12-13 Tamar Christina <tamar.christina@arm.com>
897
898 * tree-vect-patterns.c (vect_mark_pattern_stmts): Remove static inline.
899 * tree-vect-slp.c (vect_create_new_slp_node): Remove static and only
900 set smts if valid.
901 * tree-vectorizer.c (vec_info::add_pattern_stmt): New.
902 (vec_info::set_vinfo_for_stmt): Optionally enforce read-only.
903 * tree-vectorizer.h (struct _slp_tree): Use new types.
904 (lane_permutation_t, lane_permutation_t): New.
905 (vect_create_new_slp_node, vect_mark_pattern_stmts): New.
906
907 2020-12-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
908
909 * doc/sourcebuild.texi (Commands for use in dg-final, Scan the
910 assembly output, scan-assembler-symbol-section): Document.
911 (scan-symbol-section): Document.
912
913 2020-12-13 Richard Sandiford <richard.sandiford@arm.com>
914
915 * is-a.h (reinterpret_is_a_helper): New class.
916 (static_is_a_helper): Likewise.
917 (is_a_helper): Inherit from reinterpret_is_a_helper.
918 (is_a_helper<const T *>): New specialization.
919
920 2020-12-13 Richard Sandiford <richard.sandiford@arm.com>
921
922 * coretypes.h (iterator_range): Move to...
923 * iterator-utils.h: ...this new file.
924
925 2020-12-13 Richard Sandiford <richard.sandiford@arm.com>
926
927 * rtlanal.c (noop_move_p): Don't check for REG_EQUAL notes.
928
929 2020-12-13 Richard Sandiford <richard.sandiford@arm.com>
930
931 * vec.h (vnull::operator vec<T, A, L>): Make const.
932
933 2020-12-12 Jakub Jelinek <jakub@redhat.com>
934
935 PR tree-optimization/96685
936 * match.pd (~(X - Y) -> ~X + Y): New optimization.
937 (~X + Y -> (Y - X) - 1): Likewise.
938
939 2020-12-12 Jakub Jelinek <jakub@redhat.com>
940
941 PR tree-optimization/96272
942 * tree-ssa-math-opts.c (uaddsub_overflow_check_p): Add OTHER argument.
943 Handle BIT_NOT_EXPR.
944 (match_uaddsub_overflow): Optimize unsigned a > ~b into
945 __imag__ .ADD_OVERFLOW (a, b).
946 (math_opts_dom_walker::after_dom_children): Call match_uaddsub_overflow
947 even for BIT_NOT_EXPR.
948
949 2020-12-12 Jakub Jelinek <jakub@redhat.com>
950
951 PR middle-end/98183
952 * omp-low.c (lower_omp_target): Don't add OMP_RETURN for
953 data regions.
954 * omp-expand.c (expand_omp_target): Don't try to remove
955 OMP_RETURN for data regions.
956 (build_omp_regions_1, omp_make_gimple_edges): Don't expect
957 OMP_RETURN for data regions.
958
959 2020-12-11 Nathan Sidwell <nathan@acm.org>
960
961 * gcc.c (cpp_unique_options): Add Mmodules, Mno-modules.
962 * tree-core.h (enum tree_index): Add TI_MODULE_HWM.
963
964 2020-12-11 Jim Wilson <jimw@sifive.com>
965
966 * varasm.c (get_section): Add DECL_P check before DECL_PRESERVE_P.
967
968 2020-12-11 Christophe Lyon <christophe.lyon@linaro.org>
969
970 * config/arm/iterators.md (VDQ): Remove TARGET_HAVE_MVE
971 conditions.
972 * config/arm/vec-common.md (and<mode>3): Use
973 ARM_HAVE_<MODE>_ARITH.
974 (ior<mode>3): Likewise.
975
976 2020-12-11 Claudiu Zissulescu <claziss@synopsys.com>
977
978 * config/arc/arc.c (arc_active_insn): Ignore all non essential
979 instructions when getting the next active instruction.
980 (check_store_cacheline_hazard): Update.
981 (workaround_arc_anomaly): Remove obsolete cache hazard code.
982
983 2020-12-11 Claudiu Zissulescu <claziss@synopsys.com>
984
985 * config/arc/arc.c (arc_reorg): Avoid limm in BRcc.
986
987 2020-12-11 Claudiu Zissulescu <claziss@synopsys.com>
988
989 * config/arc/arc-protos.h (arc_scheduling_not_expected): Remove
990 it.
991 (arc_sets_cc_p): Likewise.
992 (arc_need_delay): Likewise.
993 * config/arc/arc.c (arc_sets_cc_p): Likewise.
994 (arc_need_delay): Likewise.
995 (arc_scheduling_not_expected): Likewise.
996 * config/arc/arc.md: Convert adc/sbc patterns to simple
997 instruction definitions.
998
999 2020-12-11 Christophe Lyon <christophe.lyon@linaro.org>
1000
1001 * config/arm/iterators.md (supf): Remove VORRQ_S and VORRQ_U.
1002 (VORRQ): Remove.
1003 * config/arm/mve.md (mve_vorrq_s<mode>): New entry for vorr
1004 instruction using expression ior.
1005 (mve_vorrq_u<mode>): New expander.
1006 (mve_vorrq_f<mode>): Use ior code instead of unspec.
1007 * config/arm/neon.md (ior<mode>3): Renamed into ior<mode>3_neon.
1008 * config/arm/predicates.md (imm_for_neon_logic_operand): Enable
1009 for MVE.
1010 * config/arm/unspecs.md (VORRQ_S, VORRQ_U, VORRQ_F): Remove.
1011 * config/arm/vec-common.md (ior<mode>3): New expander.
1012
1013 2020-12-11 Claudiu Zissulescu <claziss@synopsys.com>
1014
1015 * config/arc/arc.md (mpyd<su_optab>_arcv2hs): New template
1016 pattern.
1017 (*pmpyd<su_optab>_arcv2hs): Likewise.
1018 (*pmpyd<su_optab>_imm_arcv2hs): Likewise.
1019 (mpyd_arcv2hs): Moved into above template.
1020 (mpyd_imm_arcv2hs): Moved into above template.
1021 (mpydu_arcv2hs): Likewise.
1022 (mpydu_imm_arcv2hs): Likewise.
1023 (su_optab): New optab prefix for sign/zero-extending operations.
1024
1025 2020-12-11 H.J. Lu <hjl.tools@gmail.com>
1026
1027 PR target/98219
1028 * config/i386/uintrintrin.h (__uintr_frame): Remove uirrv.
1029
1030 2020-12-11 Andrea Corallo <andrea.corallo@arm.com>
1031
1032 * doc/sourcebuild.texi (arm_softfloat): Improve documentation.
1033
1034 2020-12-11 Jakub Jelinek <jakub@redhat.com>
1035
1036 PR rtl-optimization/98229
1037 * optabs.c (expand_doubleword_mod): Canonicalize op1 and
1038 1 - INTVAL (op1) as word_mode constants when used in
1039 word_mode arithmetics.
1040
1041 2020-12-11 Richard Biener <rguenther@suse.de>
1042
1043 PR tree-optimization/98235
1044 * tree-vect-slp.c (vect_build_slp_tree): Exchange npermutes
1045 for limit. Decrement that for each cache miss and fail
1046 discovery when it reaches zero.
1047 (vect_build_slp_tree_2): Remove npermutes handling and
1048 simply pass down limit.
1049 (vect_build_slp_instance): Use pass down limit.
1050 (vect_analyze_slp_instance): Likewise.
1051 (vect_analyze_slp): Base the SLP discovery limit on
1052 max_tree_size and pass it down.
1053
1054 2020-12-11 Jakub Jelinek <jakub@redhat.com>
1055
1056 PR middle-end/98190
1057 * expr.c (expand_assignment): If to_rtx is a promoted SUBREG,
1058 ensure sign or zero extension either through use of store_expr
1059 or by extending manually.
1060
1061 2020-12-11 Andrea Corallo <andrea.corallo@arm.com>
1062
1063 PR rtl-optimization/97092
1064 * ira-color.c (update_costs_from_allocno): Do not carry over mode
1065 between subsequent iterations.
1066
1067 2020-12-11 Richard Biener <rguenther@suse.de>
1068
1069 PR tree-optimization/95582
1070 * tree-vect-patterns.c (vect_recog_bool_pattern): Check
1071 for VECT_SCALAR_BOOLEAN_TYPE_P, not just precision one.
1072
1073 2020-12-11 Hongyu <hongyu.wang@intel.com>
1074
1075 * common/config/i386/cpuinfo.h (get_available_features):
1076 Move check for HRESET/AVX_VNNI/UINTR out of avx512_usable.
1077
1078 2020-12-10 Jakub Jelinek <jakub@redhat.com>
1079
1080 PR rtl-optimization/98212
1081 * dojump.c (do_compare_rtx_and_jump): Change computation of
1082 first_prob for and_them. Add comment explaining and_them case.
1083
1084 2020-12-10 Andrew MacLeod <amacleod@redhat.com>
1085
1086 PR tree-optimization/98174
1087 * gimple-range-cache.cc (ranger_cache::ssa_range_in_bb): Only push
1088 poor values to be examined if it isn't a pure global.
1089 (ranger_cache::block_range): Don't process pure globals.
1090 (ranger_cache::fill_block_cache): Adjust has_edge_range call.
1091 * gimple-range-gori.cc (gori_map::all_outgoing): New bitmap.
1092 (gori_map::gori_map): Allocate all_outgoing.
1093 (gori_map::is_export_p): No specified BB returns global context.
1094 (gori_map::calculate_gori): Accumulate each block into global.
1095 (gori_compute::gori_compute): Preprocess each block for exports.
1096 (gori_compute::has_edge_range_p): No edge returns global context.
1097 * gimple-range-gori.h (has_edge_range_p): Provide default parameter.
1098
1099 2020-12-10 Eric Botcazou <ebotcazou@adacore.com>
1100
1101 * dwarf2out.c (loc_list_from_tree_1) <PLACEHOLDER_EXPR>: Deal with
1102 a nested context type
1103
1104 2020-12-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
1105
1106 * cfgexpand.c (expand_gimple_basic_block): Remove special handling
1107 of debug_inline_entries without block info.
1108 * tree-inline.c (remap_gimple_stmt): Drop debug_nonbind_markers when
1109 the call statement has no block info.
1110 (copy_debug_stmt): Remove debug_nonbind_markers when inlining
1111 and the block info is mapped to NULL.
1112 * tree-ssa-live.c (clear_unused_block_pointer): Remove
1113 debug_nonbind_markers originating from removed inline functions.
1114
1115 2020-12-10 Richard Biener <rguenther@suse.de>
1116
1117 * tree-vect-stmts.c (vectorizable_assignment): Remove special
1118 allowance of VECTOR_BOOLEAN_TYPE_P conversions.
1119
1120 2020-12-10 Christophe Lyon <christophe.lyon@linaro.org>
1121
1122 * config/arm/iterators.md (supf): Remove VANDQ_S and VANDQ_U.
1123 (VANQ): Remove.
1124 (VDQ): Add TARGET_HAVE_MVE condition where relevant.
1125 * config/arm/mve.md (mve_vandq_u<mode>): New entry for vand
1126 instruction using expression 'and'.
1127 (mve_vandq_s<mode>): New expander.
1128 (mve_vaddq_n_f<mode>): Use 'and' code instead of unspec.
1129 * config/arm/neon.md (and<mode>3): Rename into and<mode>3_neon.
1130 * config/arm/predicates.md (imm_for_neon_inv_logic_operand):
1131 Enable for MVE.
1132 * config/arm/unspecs.md (VANDQ_S, VANDQ_U, VANDQ_F): Remove.
1133 * config/arm/vec-common.md (and<mode>3): New expander.
1134
1135 2020-12-10 Richard Sandiford <richard.sandiford@arm.com>
1136
1137 PR tree-optimization/98069
1138 * tree-data-ref.c (compute_distributive_range): New function.
1139 (nop_conversion_for_offset_p): Likewise.
1140 (split_constant_offset): In the internal overload, treat integer
1141 expressions as having an implicit cast to sizetype and express
1142 them accordingly. Pass back the range of the original (uncast)
1143 expression in a new range parameter.
1144 (split_constant_offset_1): Likewise. Rework the handling of
1145 conversions to account for the implicit sizetype casts.
1146
1147 2020-12-10 Joel Hutton <joel.hutton@arm.com>
1148
1149 PR tree-optimization/97929
1150 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Add
1151 WIDEN_PLUS/WIDEN_MINUS case.
1152
1153 2020-12-10 Joel Hutton <joel.hutton@arm.com>
1154
1155 * tree-pretty-print.c (dump_generic_node): Add case for
1156 VEC_WIDEN_(PLUS/MINUS)_(HI/LO)_EXPR and WIDEN_(PLUS/MINUS)_EXPR.
1157
1158 2020-12-10 Richard Biener <rguenther@suse.de>
1159
1160 PR tree-optimization/98211
1161 * tree-vect-stmts.c (vectorizable_assignment): Disallow
1162 invalid conversions to bool vector types.
1163
1164 2020-12-10 Alexandre Oliva <oliva@adacore.com>
1165
1166 * tree.c (build_common_builtin_nodes): Drop __builtin_ from
1167 __clear_cache libname.
1168
1169 2020-12-10 Jakub Jelinek <jakub@redhat.com>
1170
1171 PR rtl-optimization/98212
1172 * dojump.c (do_compare_rtx_and_jump): When splitting NE and backend
1173 can do UNEQ, prefer splitting x != y into x unord y || !(x uneq y)
1174 instead of into x unord y || x ltgt y.
1175
1176 2020-12-10 Jakub Jelinek <jakub@redhat.com>
1177
1178 PR tree-optimization/98169
1179 * dojump.c (do_compare_rtx_and_jump): Don't split self-EQ/NE
1180 comparisons, just use ORDERED or UNORDERED.
1181
1182 2020-12-10 Jakub Jelinek <jakub@redhat.com>
1183
1184 PR middle-end/98205
1185 * omp-expand.c (expand_omp_for_generic): Fix up broken_loop handling.
1186
1187 2020-12-10 Richard Biener <rguenther@suse.de>
1188
1189 * tree-vect-slp.c (vect_get_and_check_slp_defs): Do
1190 not mark the defs to occur in a pattern if it is the
1191 pattern root and record the original stmt defs in that
1192 case.
1193
1194 2020-12-10 Simon Cook <simon.cook@embecosm.com>
1195
1196 * config/riscv/multilib-generator (arch_canonicalize): Invoke
1197 python interpreter when calling arch-canonicalize script.
1198
1199 2020-12-10 Nikhil Benesch <nikhil.benesch@gmail.com>
1200
1201 * godump.c (go_format_type): Don't consider whether a type has
1202 been seen when determining whether to output a type by name.
1203 Consider only the use_type_name parameter.
1204 (go_output_typedef): When outputting a typedef, format the
1205 declaration's original type, which contains the name of the
1206 underlying type rather than the name of the typedef.
1207
1208 2020-12-09 Jakub Jelinek <jakub@redhat.com>
1209
1210 PR bootstrap/98188
1211 * tree-ssa-phiopt.c (two_value_replacement): Don't special case
1212 BOOLEAN_TYPEs for ranges, instead if get_range_info doesn't return
1213 VR_RANGE, set min/max to wi::min/max_value.
1214
1215 2020-12-09 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
1216
1217 * config/aarch64/aarch64-option-extensions.def
1218 (AARCH64_OPT_EXTENSION): New +pauth option in -march for AArch64.
1219 * config/aarch64/aarch64.h (AARCH64_FL_PAUTH): New pauth extension bitmask.
1220 (AARCH64_ISA_PUATH): New ISA bitmask for PAUTH.
1221 (AARCH64_FL_FOR_ARCH8_3): Add PAUTH to Armv8.3-A.
1222 (TARGET_PAUTH): New target mask to isolate PAUTH instructions.
1223 * config/aarch64/aarch64.md (do_return): Condition set to TARGET_PAUTH.
1224 * doc/invoke.texi: Update docs for +flagm and +pauth.
1225
1226 2020-12-09 Uroš Bizjak <ubizjak@gmail.com>
1227
1228 * config/i386/i386.h (REG_ALLOC_ORDER): Remove
1229
1230 2020-12-09 Richard Biener <rguenther@suse.de>
1231
1232 PR tree-optimization/98213
1233 * tree-ssa-loop-im.c (sm_seq_valid_bb): Cache successfully
1234 processed PHIs.
1235 (hoist_memory_references): Adjust.
1236
1237 2020-12-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1238
1239 * config/aarch64/aarch64-protos.h (cpu_vector_cost): Move simd
1240 fields to...
1241 (simd_vec_cost): ... Here. Define.
1242 (advsimd_vec_cost): Define.
1243 (sve_vec_cost): Define.
1244 * config/aarch64/aarch64.c (generic_advsimd_vector_cost):
1245 Define.
1246 (generic_sve_vector_cost): Likewise.
1247 (generic_vector_cost): Update.
1248 (qdf24xx_advsimd_vector_cost): Define.
1249 (qdf24xx_vector_cost): Update.
1250 (thunderx_advsimd_vector_cost): Define.
1251 (thunderx_vector_cost): Update.
1252 (tsv110_advsimd_vector_cost): Define.
1253 (tsv110_vector_cost): Likewise.
1254 (cortexa57_advsimd_vector_cost): Define.
1255 (cortexa57_vector_cost): Update.
1256 (exynosm1_advsimd_vector_cost): Define.
1257 (exynosm1_vector_cost): Update.
1258 (xgene1_advsimd_vector_cost): Define.
1259 (xgene1_vector_cost): Update.
1260 (thunderx2t99_advsimd_vector_cost): Define.
1261 (thunderx2t99_vector_cost): Update.
1262 (thunderx3t110_advsimd_vector_cost): Define.
1263 (thunderx3t110_vector_cost): Update.
1264 (aarch64_builtin_vectorization_cost): Handle sve and advsimd
1265 vector cost fields.
1266
1267 2020-12-09 Jakub Jelinek <jakub@redhat.com>
1268
1269 PR tree-optimization/98199
1270 * fold-const.c (native_encode_initializer): Fix handling bit-fields
1271 when off > 0.
1272
1273 2020-12-09 Jakub Jelinek <jakub@redhat.com>
1274
1275 PR c++/98193
1276 * fold-const.c (native_encode_initializer): Set pos to field's
1277 byte position if iterating over a field with missing initializer.
1278
1279 2020-12-08 Martin Liska <mliska@suse.cz>
1280
1281 PR tree-optimization/98182
1282 * gimple-if-to-switch.cc (pass_if_to_switch::execute): Request
1283 chain linkage through false edges only.
1284
1285 2020-12-08 Nathan Sidwell <nathan@acm.org>
1286
1287 * tree.h (DECL_ALIGN_RAW): New.
1288 (DECL_ALIGN): Use it.
1289 (DECL_WARN_IF_NOT_ALIGN_RAW): New.
1290 (DECL_WARN_IF_NOT_ALIGN): Use it.
1291 (SET_DECL_WARN_IF_NOT_ALIGN): Likewise.
1292
1293 2020-12-08 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1294
1295 PR target/66791
1296 * config/arm/arm_neon.h: Replace calls to __builtin_vmvn* by ~
1297 in vmvn intrinsics.
1298 * config/arm/arm_neon_builtins.def: Remove entry for vmvn.
1299
1300 2020-12-08 Jakub Jelinek <jakub@redhat.com>
1301
1302 PR target/94440
1303 * config/i386/i386.opt (ix86_excess_precision,
1304 ix86_unsafe_math_optimizations): New TargetVariables.
1305 * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): Use
1306 ix86_unsafe_math_optimizations instead of
1307 flag_unsafe_math_optimizations and ix86_excess_precision instead of
1308 flag_excess_precision.
1309 * config/i386/i386.c (ix86_excess_precision): Rename to ...
1310 (ix86_get_excess_precision): ... this.
1311 (TARGET_C_EXCESS_PRECISION): Define to ix86_get_excess_precision.
1312 * config/i386/i386-options.c (ix86_valid_target_attribute_tree,
1313 ix86_option_override_internal): Update ix86_unsafe_math_optimization
1314 from flag_unsafe_math_optimizations and ix86_excess_precision
1315 from flag_excess_precision when constructing target option nodes.
1316 (ix86_set_current_function): If flag_unsafe_math_optimizations
1317 or flag_excess_precision is different from the one recorded
1318 in TARGET_OPTION_NODE, create a new target option node for the
1319 current function and switch to that.
1320
1321 2020-12-08 Richard Biener <rguenther@suse.de>
1322
1323 PR tree-optimization/98192
1324 * tree-vect-slp.c (vect_build_slp_instance): Get scalar_stmts
1325 by reference.
1326
1327 2020-12-08 Richard Biener <rguenther@suse.de>
1328
1329 PR tree-optimization/98191
1330 * tree-vect-slp.c (vect_slp_check_for_constructors): Do not
1331 follow a non-SSA def chain.
1332
1333 2020-12-08 Richard Biener <rguenther@suse.de>
1334
1335 PR tree-optimization/97559
1336 * tree-ssa-sink.c (statement_sink_location): Never ignore
1337 PHIs on sink paths in irreducible regions.
1338
1339 2020-12-08 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1340
1341 PR target/97872
1342 * gimple-isel.cc (gimple_expand_vec_cond_expr): Try to fold
1343 x CMP y ? -1 : 0 to x CMP y.
1344
1345 2020-12-08 Richard Biener <rguenther@suse.de>
1346
1347 PR tree-optimization/98180
1348 * tree-vect-slp.c (vect_slp_check_for_constructors): Check the
1349 first inserted value has a def.
1350
1351 2020-12-08 Eric Botcazou <ebotcazou@adacore.com>
1352
1353 PR tree-optimization/96344
1354 * tree-switch-conversion.c (bit_test_cluster::emit): Compute the
1355 range only if an entry test is necessary. Merge the entry test in
1356 the bit test when possible. Use PREC local variable consistently.
1357 When there is only one test, do a single gimplification at the end.
1358
1359 2020-12-08 Kito Cheng <kito.cheng@sifive.com>
1360
1361 PR target/98152
1362 * config.gcc (riscv*-*-*): Checking python, python3 or python2
1363 is available, and skip doing with_arch canonicalize if no python
1364 available.
1365
1366 2020-12-07 Jakub Jelinek <jakub@redhat.com>
1367
1368 PR target/98147
1369 * builtins.c (default_emit_call_builtin___clear_cache): Call
1370 convert_memory_address to ptr_mode on both begin and end.
1371
1372 2020-12-07 Bernd Edlinger <bernd.edlinger@hotmail.de>
1373
1374 * ipa-param-manipulation.c
1375 (ipa_param_body_adjustments::modify_call_stmt): Set location info.
1376
1377 2020-12-07 Jozef Lawrynowicz <jozef.l@mittosystems.com>
1378
1379 * doc/extend.texi (used function attribute): Document saving
1380 the declaration from linker garbage collection.
1381 (used variable attribute): Likewise.
1382
1383 2020-12-07 Richard Biener <rguenther@suse.de>
1384
1385 PR tree-optimization/98113
1386 * tree-vectorizer.h (struct slp_root): New.
1387 (_bb_vec_info::roots): New member.
1388 * tree-vect-slp.c (vect_analyze_slp): Also walk BB info
1389 roots.
1390 (_bb_vec_info::_bb_vec_info): Adjust.
1391 (_bb_vec_info::~_bb_vec_info): Likewise.
1392 (vld_cmp): New.
1393 (vect_slp_is_lane_insert): Likewise.
1394 (vect_slp_check_for_constructors): Match a series of
1395 BIT_INSERT_EXPRs as vector constructor.
1396 (vect_slp_analyze_bb_1): Continue if BB info roots is
1397 not empty.
1398 (vect_slp_analyze_bb_1): Mark the whole BIT_INSERT_EXPR root
1399 sequence as pure_slp.
1400
1401 2020-12-07 Richard Biener <rguenther@suse.de>
1402
1403 PR tree-optimization/98117
1404 * tree-vect-loop-manip.c (vect_gen_vector_loop_niters):
1405 Properly handle degenerate niter when setting the vector
1406 loop IV range.
1407
1408 2020-12-07 Andreas Krebbel <krebbel@linux.ibm.com>
1409
1410 * config/s390/s390.c (s390_emit_stack_probe): Change Pmode to
1411 word_mode.
1412
1413 2020-12-07 Martin Jambor <mjambor@suse.cz>
1414
1415 PR ipa/97816
1416 * ipa-cp.c (safe_add): Removed.
1417 (good_cloning_opportunity_p): Remove special handling of INT_MAX.
1418 (value_topo_info<valtype>::propagate_effects): Take care not to
1419 propagate from size one value to another through more sources. Scale
1420 propagated times with edge frequencies. Include local time and size
1421 in propagates ones here. Take care not to overflow size.
1422 (decide_about_value): Do not add local and propagated effects when
1423 passing them to good_cloning_opportunity_p.
1424
1425 2020-12-07 Matthias Klose <doko@ubuntu.com>
1426
1427 * genextract.c (print_header): Undefine ENABLE_RTL_CHECKING
1428 and ENABLE_RTL_FLAG_CHECKING.
1429
1430 2020-12-07 Richard Biener <rguenther@suse.de>
1431
1432 PR tree-optimization/98137
1433 * tree-data-ref.c (split_constant_offset_1): Use
1434 determine_value_range instead of get_range_info to handle
1435 arbitrary expressions.
1436
1437 2020-12-06 H.J. Lu <hjl.tools@gmail.com>
1438
1439 PR target/98162
1440 * doc/extend.texi: Remove -mcet.
1441
1442 2020-12-06 H.J. Lu <hjl.tools@gmail.com>
1443
1444 PR target/98161
1445 * config/i386/i386-features.c (pseudo_reg_set): Check mode of
1446 pseudo register push.
1447
1448 2020-12-06 Jakub Jelinek <jakub@redhat.com>
1449
1450 PR tree-optimization/96232
1451 * tree-ssa-phiopt.c (two_value_replacement): Optimize even boolean lhs
1452 cases as long as arg0 has wider precision and conditional_replacement
1453 doesn't handle that case.
1454 (tree_ssa_phiopt_worker): Don't call two_value_replacement during
1455 early phiopt.
1456
1457 2020-12-06 Jakub Jelinek <jakub@redhat.com>
1458
1459 PR tree-optimization/96232
1460 * match.pd (-(type)!A -> (type)A - 1): New optimization.
1461
1462 2020-12-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1463 David Edelsohn <dje.gcc@gmail.com>
1464
1465 * config/rs6000/xcoff.h (ASM_OUTPUT_DEF): Reference macro arguments.
1466
1467 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1468
1469 PR target/95294
1470 * config/vax/elf.h (REGISTER_NAMES): Append `%psl'.
1471 * config/vax/vax-modes.def (CCN, CCNZ, CCZ): New modes.
1472 * config/vax/vax-protos.h (vax_select_cc_mode): New prototype.
1473 (vax_maybe_split_dimode_move): Likewise.
1474 (vax_notice_update_cc): Remove prototype.
1475 * config/vax/vax.c (TARGET_FLAGS_REGNUM): New macro.
1476 (TARGET_CC_MODES_COMPATIBLE): Likewise.
1477 (TARGET_MD_ASM_ADJUST): Likewise.
1478 (vax_select_cc_mode): New function
1479 (vax_cc_modes_compatible): Likewise.
1480 (vax_md_asm_adjust): Likewise.
1481 (vax_notice_update_cc): Remove function.
1482 (vax_output_int_move): Factor out code checking if a DImode move
1483 may have to be split...
1484 (vax_maybe_split_dimode_move): ... into this new function.
1485 * config/vax/vax.h (FIRST_PSEUDO_REGISTER): Bump up.
1486 (FIXED_REGISTERS): Append an entry for PSL.
1487 (CALL_USED_REGISTERS): Likewise.
1488 (NOTICE_UPDATE_CC, OUTPUT_JUMP): Remove macros.
1489 (SELECT_CC_MODE): New macro.
1490 (REGISTER_NAMES): Append `psl'.
1491 * config/vax/predicates.md (const_zero_operand)
1492 (vax_cc_comparison_operator, vax_ccn_comparison_operator)
1493 (vax_ccnz_comparison_operator, vax_ccz_comparison_operator):
1494 New predicates.
1495 * config/vax/builtins.md: Rewrite for MODE_CC representation.
1496 * config/vax/vax.md: Likewise.
1497
1498 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1499
1500 * config/vax/elf.h (VAX_CC1_SPEC, VAX_CC1PLUS_SPEC): New macros.
1501 * config/vax/netbsd-elf.h (CC1_SPEC): Use VAX_CC1_SPEC rather
1502 than VAX_CC1_AND_CC1PLUS_SPEC.
1503 (CC1PLUS_SPEC): Use VAX_CC1PLUS_SPEC rather than
1504 VAX_CC1_AND_CC1PLUS_SPEC.
1505
1506 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1507
1508 * config/pdp11/pdp11.md (fcc_cc, fcc_ccnz): Use
1509 `const_double_zero' to express double zero constant.
1510
1511 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1512
1513 * read-rtl.c (rtx_reader::read_rtx_code): Handle syntactic
1514 `const_double_zero' rtx.
1515 * doc/rtl.texi (Constant Expression Types): Document it.
1516
1517 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1518
1519 * config/vax/vax.md (divmoddisi4, *amulsi4): Make the comment
1520 notation consistent with the rest of the file.
1521
1522 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1523
1524 * config/vax/vax.md (movti): Fix output predicate. Emit `movo'
1525 rather than `movh'.
1526 (divmoddisi4): Fix output predicates, correct RTL.
1527 (*amulsi4): Name insn. Fix output predicate.
1528
1529 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1530
1531 * config/vax/vax.md (mulsidi3): Fix the multiplicand predicates.
1532 (*maddsidi4, *maddsidi4_const): Likewise. Name insns.
1533
1534 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1535
1536 * config/vax/vax.md (*cmpv_2): Name insn.
1537 (*cmpv, *cmpzv, *cmpzv_2): Likewise. Fix location predicate and
1538 constraint.
1539
1540 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1541
1542 * config/vax/vax.md (extv): Rename insn to...
1543 (*extv): ... this.
1544 (extv): New expander.
1545
1546 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1547
1548 * config/vax/vax.md (*insv_aligned, *extzv_aligned)
1549 (*extv_aligned): Also make sure the memory address of a bit-field
1550 location can be adjusted in the PIC mode.
1551
1552 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1553
1554 * config/vax/vax.md (*insv_aligned, *extzv_aligned)
1555 (*extv_aligned): Reject register bit-field locations that are not
1556 aligned to the least significant bit; update output statement
1557 accordingly.
1558
1559 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1560
1561 * config/vax/vax.md (*insv_aligned, *extzv_aligned)
1562 (*extv_aligned, *extv_non_const, *extzv_non_const): Name insns.
1563 Fix location predicate.
1564 (*extzv): Name insn.
1565 (*insv): Likewise. Fix location constraint.
1566 (*insv_2): Likewise, and the predicate.
1567
1568 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1569
1570 * config/vax/vax.md (cpymemhi1): Rename insn to...
1571 (movmemhi1): ... this.
1572 (cpymemhi): Update accordingly. Remove constraints.
1573 (movmemhi): New expander.
1574
1575 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1576
1577 * config/vax/builtins.md: Add a peephole2 for QImode and HImode
1578 `ctz' operations.
1579 (any_extend): New code iterator.
1580
1581 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1582
1583 * config/vax/builtins.md (width): New mode attribute.
1584 (ffssi2): Rework expander into...
1585 (ffs<mode>2): ... this.
1586 (ctzsi2): Rework insn into...
1587 (ctz<mode>2): ... this.
1588
1589 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1590
1591 * config/vax/builtins.md (ffssi2_internal): Rename insn to...
1592 (ctzsi2): ... this. Update the RTL operation.
1593 (ffssi2): Update accordingly.
1594 * config/vax/vax.c (vax_notice_update_cc): Handle CTZ.
1595 * config/vax/vax.h (CTZ_DEFINED_VALUE_AT_ZERO): New macro.
1596
1597 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1598
1599 * config/vax/vax.md: Include `builtins.md'.
1600
1601 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1602
1603 * config/vax/predicates.md (volatile_mem_operand)
1604 (any_memory_operand): New predicates.
1605 * config/vax/builtins.md (VUNSPEC_UNLOCK): Remove constant.
1606 (sync_lock_test_and_set<mode>): Remove `set' and `unspec'
1607 operations, match operands only. Reformat.
1608 (sync_lock_release<mode>): Likewise. Remove cruft.
1609 (jbb<ccss>i<mode>): Wrap into `unspec_volatile', use
1610 `any_memory_operand' predicate.
1611
1612 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1613
1614 * config/vax/builtins.md (bit): New int iterator.
1615 (ccss): New int attribute.
1616 (jbbssi<mode>, jbbcci<mode>): Fold insns into...
1617 (jbb<ccss>i<mode>): ... this.
1618
1619 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1620
1621 * config/vax/builtins.md (bb_mem): New mode attribute.
1622 (jbbssiqi, jbbssihi, jbbssisi): Fold insns into...
1623 (jbbssi<mode>): ... this.
1624 (jbbcciqi, jbbccihi, jbbccisi): Likewise...
1625 (jbbcci<mode>): ... this.
1626
1627 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1628
1629 * jump.c (pc_set): Also accept a jump wrapped in UNSPEC or
1630 UNSPEC_VOLATILE.
1631 (any_uncondjump_p, any_condjump_p): Update comment accordingly.
1632
1633 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1634
1635 * loop-doloop.c (add_test): Only remove the jump if `onlyjump_p'.
1636
1637 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1638
1639 * cfgrtl.c (rtl_block_empty_p): Return false if `!onlyjump_p'
1640 too.
1641
1642 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1643
1644 * sel-sched-ir.c (maybe_tidy_empty_bb): Only try to remove a
1645 conditional jump if `onlyjump_p'.
1646
1647 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1648
1649 * loop-iv.c (simplify_using_initial_values): Only process jumps
1650 that match `onlyjump_p'.
1651 (check_simple_exit): Likewise.
1652
1653 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1654
1655 * ifcvt.c (dead_or_predicable) [!IFCVT_MODIFY_TESTS]: Bail out
1656 if `!onlyjump_p'.
1657
1658 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1659
1660 * read-rtl.c: Add a page-feed separator at the start of iterator
1661 code.
1662 (struct iterator_group): Change the return type to HOST_WIDE_INT
1663 for the `find_builtin' member. Likewise the second parameter
1664 type for the `apply_iterator' member.
1665 (atoll) [!HAVE_ATOQ]: Reorder.
1666 (find_mode, find_code): Change the return type to HOST_WIDE_INT.
1667 (apply_mode_iterator, apply_code_iterator)
1668 (apply_subst_iterator): Change the second parameter type to
1669 HOST_WIDE_INT.
1670 (find_int): Handle input suitable for HOST_WIDE_INT output.
1671 (apply_int_iterator): Rewrite in terms of explicit format
1672 interpretation.
1673 (rtx_reader::read_rtx_operand) <'w'>: Fold into...
1674 <'i', 'n', 'p'>: ... this.
1675 * doc/md.texi (Int Iterators): Document 'w' rtx format support.
1676
1677 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1678
1679 * config/vax/builtins.md (ffssi2): Make preparation statements
1680 actually buildable.
1681 (ffssi2_internal): Fix input constraints; make the RTL pattern
1682 match reality for `cc0'.
1683
1684 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1685
1686 * config/vax/vax.c (vax_address_cost): Express the cost in terms
1687 of COSTS_N_INSNS.
1688 (vax_rtx_costs): Likewise.
1689
1690 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1691
1692 * config/vax/constraints.md (A): New constraint.
1693 * config/vax/predicates.md (external_symbolic_operand)
1694 (external_const_operand): Remove predicates.
1695 (local_symbolic_operand): Rename to...
1696 (pic_symbolic_operand): ... this, and rework.
1697 (external_memory_operand): Rename to...
1698 (non_pic_external_memory_operand): ... this, and rework.
1699 (illegal_blk_memory_operand, illegal_addsub_di_memory_operand):
1700 Update accordingly.
1701 * config/vax/vax-protos.h (vax_acceptable_pic_operand_p): New
1702 prototype.
1703 * config/vax/vax.c (vax_acceptable_pic_operand_p): New function.
1704 (vax_output_int_add): Update according to predicate rework.
1705 * config/vax/vax.h (LEGITIMATE_PIC_OPERAND_P): New macro.
1706 * config/vax/vax.md (pushlclsymreg, pushextsymreg): Fold
1707 together, and rename to...
1708 (*pushsymreg): ... this. Use the `pic_symbolic_operand'
1709 predicate and the `A' constraint for the displacement operand.
1710 (movlclsymreg, movextsymreg): Fold together, and rename to...
1711 (*movsymreg): ... this. Use the `pic_symbolic_operand'
1712 predicate and the `A' constraint for the displacement operand.
1713 (pushextsym, pushlclsym): Fold together, and rename to...
1714 (*pushsym): ... this. Use the `pic_symbolic_operand' predicate
1715 and the `A' constraint for the displacement operand.
1716 (movextsym, movlclsym): Fold together, and rename to...
1717 (*movsym): ... this. Use the `pic_symbolic_operand' predicate
1718 and the `A' constraint for the displacement operand.
1719
1720 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1721
1722 * config/vax/vax.c (print_operand): Replace `c' and `C' with
1723 `k' and `K' respectively.
1724 * config/vax/vax.md (*branch, *branch_reversed): Update
1725 accordingly.
1726
1727 2020-12-05 Matt Thomas <matt@3am-software.com>
1728 Maciej W. Rozycki <macro@linux-mips.org>
1729
1730 PR target/58901
1731 * reload.c (push_reload): Also reload the inner expression of a
1732 SUBREG for pseudos associated with a mode-dependent memory
1733 reference.
1734 (find_reloads): Force a reload likewise.
1735
1736 2020-12-05 Roman Zhuykov <zhroma@ispras.ru>
1737
1738 PR rtl-optimization/97421
1739 * modulo-sched.c (generate_prolog_epilog): Remove forward
1740 declaration, adjust last argument name and type.
1741 (const_iteration_count): Add bool pointer parameter to return
1742 whether count register is read in pre-header after its
1743 initialization.
1744 (sms_schedule): Fix count register initialization adjustment
1745 procedure according to what const_iteration_count said.
1746
1747 2020-12-05 Iain Sandoe <iain@sandoe.co.uk>
1748
1749 PR target/97865
1750 * configure: Regenerate.
1751
1752 2020-12-05 Venkataramanan Kumar <Venkataramanan.Kumar@amd.com>
1753 Sharavan Kumar <Shravan.Kumar@amd.com>
1754
1755 * common/config/i386/cpuinfo.h (get_amd_cpu) recognize znver3.
1756 * common/config/i386/i386-common.c (processor_names): Add
1757 znver3.
1758 (processor_alias_table): Add znver3 and AMDFAM19H entry.
1759 * common/config/i386/i386-cpuinfo.h (processor_types): Add
1760 AMDFAM19H.
1761 (processor_subtypes): AMDFAM19H_ZNVER3.
1762 * config.gcc (i[34567]86-*-linux* | ...): Likewise.
1763 * config/i386/driver-i386.c: (host_detect_local_cpu): Let
1764 -march=native recognize znver3 processors.
1765 * config/i386/i386-c.c (ix86_target_macros_internal): Add
1766 znver3.
1767 * config/i386/i386-options.c (m_znver3): New definition.
1768 (m_ZNVER): Include m_znver3.
1769 (processor_cost_table): Add znver3.
1770 * config/i386/i386.c (ix86_reassociation_width): Likewise.
1771 * config/i386/i386.h (TARGET_znver3): New definition.
1772 (enum processor_type): Add PROCESSOR_ZNVER3.
1773 * config/i386/i386.md (define_attr "cpu"): Add znver3.
1774 * config/i386/x86-tune-sched.c: (ix86_issue_rate): Likewise.
1775 (ix86_adjust_cost): Likewise.
1776 * config/i386/x86-tune.def (X86_TUNE_AVOID_256FMA_CHAINS:
1777 Likewise.
1778 * config/i386/znver1.md: Add new reservations for znver3.
1779 * doc/extend.texi: Add details about znver3.
1780 * doc/invoke.texi: Likewise.
1781
1782 2020-12-05 Jakub Jelinek <jakub@redhat.com>
1783
1784 PR target/96226
1785 * config/i386/i386.md (splitter after *<rotate_insn><mode>3_mask,
1786 splitter after *<rotate_insn><mode>3_mask_1): Drop the masking from
1787 the patterns to split into.
1788
1789 2020-12-04 Jason Merrill <jason@redhat.com>
1790
1791 * vec.h (begin, end): Add overloads for vec*.
1792 * tree.c (build_constructor_from_vec): Remove *.
1793
1794 2020-12-04 David Edelsohn <dje.gcc@gmail.com>
1795
1796 * config/rs6000/rs6000.c (rs6000_option_override_internal):
1797 Change PTR_SIZE to POINTER_SIZE_UNITS.
1798
1799 2020-12-04 Hans-Peter Nilsson <hp@axis.com>
1800 Martin Sebor <msebor@redhat.com>
1801
1802 PR middle-end/94600
1803 * doc/implement-c.texi (Qualifiers implementation): Add blurb
1804 about access to the whole of a volatile aggregate object, only for
1805 same-size as a scalar object.
1806
1807 2020-12-04 Jakub Jelinek <jakub@redhat.com>
1808
1809 PR c++/98130
1810 * gimple.c (gimple_call_fnspec): Only return ".co " for replaceable
1811 operator delete or ".mC" for replaceable operator new called from
1812 new/delete.
1813
1814 2020-12-04 Jakub Jelinek <jakub@redhat.com>
1815
1816 PR target/96226
1817 * config/i386/i386.md (splitter after *<rotate_insn><mode>3_mask,
1818 splitter after *<rotate_insn><mode>3_mask_1): New combine splitters.
1819
1820 2020-12-04 Jakub Jelinek <jakub@redhat.com>
1821
1822 PR libstdc++/93121
1823 * fold-const.c (native_encode_initializer): Use build_zero_cst
1824 instead of build_constructor.
1825
1826 2020-12-04 Jakub Jelinek <jakub@redhat.com>
1827
1828 PR target/98100
1829 * cfgexpand.c (expand_gimple_basic_block): For vars with
1830 vector type, use TYPE_MODE rather than DECL_MODE.
1831
1832 2020-12-04 Jakub Jelinek <jakub@redhat.com>
1833
1834 * common.opt (-gdwarf32, -gdwarf64): New options.
1835 * config/rs6000/rs6000.c (rs6000_option_override_internal): Default
1836 dwarf_offset_size to 8 if not overridden from the command line.
1837 * dwarf2out.c: Change all occurrences of DWARF_OFFSET_SIZE to
1838 dwarf_offset_size.
1839 * doc/invoke.texi (-gdwarf32, -gdwarf64): Document.
1840
1841 2020-12-04 Martin Liska <mliska@suse.cz>
1842
1843 * doc/tm.texi: Change argument of the record_gcc_switches
1844 hook and remove SWITCH_TYPE_* enum values.
1845 * dwarf2out.c (gen_producer_string): Move to opts.c and remove
1846 handling of the dwarf_record_gcc_switches option.
1847 (dwarf2out_early_finish): Use moved gen_producer_string
1848 function.
1849 * opts.c (gen_producer_string): New.
1850 * opts.h (gen_producer_string): New.
1851 * target.def: Change type of record_gcc_switches.
1852 * target.h (enum print_switch_type): Remove.
1853 (elf_record_gcc_switches): Change first argument.
1854 * toplev.c (MAX_LINE): Remove.
1855 (print_to_asm_out_file): Likewise.
1856 (print_to_stderr): Likewise.
1857 (print_single_switch): Likewise.
1858 (print_switch_values): Likewise.
1859 (init_asm_output): Use new gen_producer_string function.
1860 (process_options): Likewise.
1861 * varasm.c (elf_record_gcc_switches): Just save the string argument
1862 to the ELF container.
1863
1864 2020-12-04 Eric Botcazou <ebotcazou@adacore.com>
1865
1866 * ipa-sra.c (verify_access_tree_1): Relax assertion on the size.
1867
1868 2020-12-04 Martin Liska <mliska@suse.cz>
1869
1870 * doc/invoke.texi: Add missing params.
1871
1872 2020-12-03 Martin Sebor <msebor@redhat.com>
1873
1874 PR c++/90629
1875 PR middle-end/94527
1876 * builtins.c (access_ref::access_ref): Initialize new member.
1877 (compute_objsize): Use access_ref::deref. Handle simple pointer
1878 assignment.
1879 (expand_builtin): Remove handling of the free built-in.
1880 (call_dealloc_argno): Same.
1881 (find_assignment_location): New function.
1882 (fndecl_alloc_p): Same.
1883 (gimple_call_alloc_p): Same.
1884 (call_dealloc_p): Same.
1885 (matching_alloc_calls_p): Same.
1886 (warn_dealloc_offset): Same.
1887 (maybe_emit_free_warning): Same.
1888 * builtins.h (struct access_ref): Declare new member.
1889 (maybe_emit_free_warning): Make extern. Make use of access_ref.
1890 Handle -Wmismatched-new-delete.
1891 * calls.c (initialize_argument_information): Call
1892 maybe_emit_free_warning.
1893 * doc/extend.texi (attribute malloc): Update.
1894 * doc/invoke.texi (-Wfree-nonheap-object): Expand documentation.
1895 (-Wmismatched-new-delete): Document new option.
1896 (-Wmismatched-dealloc): Document new option.
1897
1898 2020-12-03 Alexandre Oliva <oliva@adacore.com>
1899
1900 * tree.c (build_common_builtin_nodes): Declare
1901 __builtin___clear_cache for all languages.
1902 * builtins.c (maybe_emit_call_builtin___clear_cache): Accept
1903 Pmode arguments.
1904
1905 2020-12-03 Sebastian Huber <sebastian.huber@embedded-brains.de>
1906
1907 * config/arm/t-rtems: Add "-mthumb -mcpu=cortex-r52
1908 -mfloat-abi=hard" multilib.
1909
1910 2020-12-03 Uroš Bizjak <ubizjak@gmail.com>
1911 Jakub Jelinek <jakub@redhat.com>
1912
1913 PR target/98086
1914 * config/i386/i386.c (ix86_md_asm_adjustmd): Rewrite
1915 zero-extension part to use convert_to_mode.
1916
1917 2020-12-03 Andreas Krebbel <krebbel@linux.ibm.com>
1918
1919 * config/s390/s390.md ("@probe_stack2<mode>"): Change mode
1920 iterator to W.
1921
1922 2020-12-03 Richard Sandiford <richard.sandiford@arm.com>
1923
1924 * config/aarch64/aarch64-sve-builtins-base.cc (svundef_impl::fold):
1925 Delete.
1926
1927 2020-12-03 Eric Botcazou <ebotcazou@adacore.com>
1928
1929 PR middle-end/98099
1930 * expmed.c (flip_storage_order): In the case of a non-integer mode,
1931 sorry out if the integer mode to be used instead is not supported.
1932
1933 2020-12-03 Eric Botcazou <ebotcazou@adacore.com>
1934
1935 PR middle-end/98082
1936 * function.c (use_register_for_decl): Also return true for a result
1937 if cfun->tail_call_marked is true.
1938
1939 2020-12-03 Jakub Jelinek <jakub@redhat.com>
1940
1941 PR libstdc++/93121
1942 * fold-const.h (native_encode_initializer): Add mask argument
1943 defaulted to nullptr.
1944 (find_bitfield_repr_type): Declare.
1945 (native_interpret_aggregate): Declare.
1946 * fold-const.c (find_bitfield_repr_type): New function.
1947 (native_encode_initializer): Add mask argument and support for
1948 filling it. Handle also some bitfields without integral
1949 DECL_BIT_FIELD_REPRESENTATIVE.
1950 (native_interpret_aggregate): New function.
1951 * gimple-fold.h (clear_type_padding_in_mask): Declare.
1952 * gimple-fold.c (struct clear_padding_struct): Add clear_in_mask
1953 member.
1954 (clear_padding_flush): Handle buf->clear_in_mask.
1955 (clear_padding_union): Copy clear_in_mask. Don't error if
1956 buf->clear_in_mask is set.
1957 (clear_padding_type): Don't error if buf->clear_in_mask is set.
1958 (clear_type_padding_in_mask): New function.
1959 (gimple_fold_builtin_clear_padding): Set buf.clear_in_mask to false.
1960 * doc/extend.texi (__builtin_bit_cast): Document.
1961
1962 2020-12-03 Ilya Leoshkevich <iii@linux.ibm.com>
1963
1964 * tree-ssa-threadedge.c (record_temporary_equivalences_from_stmts_at_dest):
1965 Do not allow __builtin_constant_p on a threading path.
1966
1967 2020-12-03 Ilya Leoshkevich <iii@linux.ibm.com>
1968
1969 * tree-ssa-strlen.c (printf_strlen_execute): Avoid division by
1970 0.
1971
1972 2020-12-03 Kito Cheng <kito.cheng@sifive.com>
1973
1974 * config/riscv/multilib-generator (arch_canonicalize): Move
1975 code to arch-canonicalize, and call that script to canonicalize arch
1976 string.
1977 (canonical_order): Move code to arch-canonicalize.
1978 (LONG_EXT_PREFIXES): Ditto.
1979 (IMPLIED_EXT): Ditto.
1980 * config/riscv/arch-canonicalize: New.
1981 * config.gcc (riscv*-*-*): Canonicalize --with-arch.
1982
1983 2020-12-03 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
1984
1985 * config/aarch64/aarch64-option-extensions.def
1986 (AARCH64_OPT_EXTENSION): New +flagm option in -march for AArch64.
1987 * config/aarch64/aarch64.h (AARCH64_FL_FLAGM): Add new flagm extension bit
1988 mask.
1989 (AARCH64_FL_FOR_ARCH8_4): Add flagm to Armv8.4-A.
1990 * doc/invoke.texi: Update docs with +flagm.
1991
1992 2020-12-03 liuhongt <hongtao.liu@intel.com>
1993
1994 PR target/96906
1995 * config/i386/sse.md
1996 (<avx512>_ucmp<mode>3<mask_scalar_merge_name>): Add a new
1997 define_split after this insn.
1998
1999 2020-12-03 liuhongt <hongtao.liu@intel.com>
2000
2001 PR target/97642
2002 * config/i386/i386-expand.c
2003 (ix86_expand_special_args_builtin): Don't move all-ones mask
2004 operands into register.
2005 * config/i386/sse.md (UNSPEC_MASKLOAD): New unspec.
2006 (*<avx512>_load<mode>_mask): New define_insns for masked load
2007 instructions.
2008 (<avx512>_load<mode>_mask): Changed to define_expands which
2009 specifically handle memory or all-ones mask operands.
2010 (<avx512>_blendm<mode>): Changed to define_insns which are same
2011 as original <avx512>_load<mode>_mask with adjustment of
2012 operands order.
2013 (*<avx512>_load<mode>): New define_insn_and_split which is
2014 used to optimize for masked load with all one mask.
2015
2016 2020-12-03 Hongyu Wang <hongyu.wang@intel.com>
2017
2018 PR target/97770
2019 * config/i386/sse.md (popcount<mode>2): New expander
2020 for SI/DI vector modes.
2021 (popcount<mode>2): Likewise for QI/HI vector modes.
2022
2023 2020-12-03 Alexandre Oliva <oliva@adacore.com>
2024
2025 * builtins.c (default_emit_call_builtin___clear_cache): New.
2026 (maybe_emit_call_builtin___clear_cache): New.
2027 (expand_builtin___clear_cache): Split into the above.
2028 (expand_builtin): Do not issue clear_cache call any more.
2029 * builtins.h (maybe_emit_call_builtin___clear_cache): Declare.
2030 * config/aarch64/aarch64.c (aarch64_trampoline_init): Use
2031 maybe_emit_call_builtin___clear_cache.
2032 * config/arc/arc.c (arc_trampoline_init): Likewise.
2033 * config/arm/arm.c (arm_trampoline_init): Likewise.
2034 * config/c6x/c6x.c (c6x_initialize_trampoline): Likewise.
2035 * config/csky/csky.c (csky_trampoline_init): Likewise.
2036 * config/m68k/linux.h (FInALIZE_TRAMPOLINE): Likewise.
2037 * config/tilegx/tilegx.c (tilegx_trampoline_init): Likewise.
2038 * config/tilepro/tilepro.c (tilepro_trampoline_init): Ditto.
2039 * config/vxworks.c: Include rtl.h, memmodel.h, and optabs.h.
2040 (vxworks_emit_call_builtin___clear_cache): New.
2041 * config/vxworks.h (CLEAR_INSN_CACHE): Drop.
2042 (TARGET_EMIT_CALL_BUILTIN___CLEAR_CACHE): Define.
2043 * target.def (trampoline_init): In the documentation, refer to
2044 maybe_emit_call_builtin___clear_cache.
2045 (emit_call_builtin___clear_cache): New.
2046 * doc/tm.texi.in: Add new hook point.
2047 (CLEAR_CACHE_INSN): Remove duplicate 'both'.
2048 * doc/tm.texi: Rebuilt.
2049 * targhooks.h (default_meit_call_builtin___clear_cache):
2050 Declare.
2051 * tree.h (BUILTIN_ASM_NAME_PTR): New.
2052
2053 2020-12-03 Ilya Leoshkevich <iii@linux.ibm.com>
2054
2055 * tree-ssa-threadbackward.c (thread_jumps::profitable_jump_thread_path):
2056 Do not allow __builtin_constant_p on a threading path.
2057
2058 2020-12-02 Jakub Jelinek <jakub@redhat.com>
2059
2060 * dwarf2out.c (add_scalar_info): Only use add_AT_wide for 128-bit
2061 constants and only in dwarf-5 or later, where DW_FORM_data16 is
2062 available. Otherwise use DW_FORM_block*/DW_FORM_exprloc with
2063 DW_OP_implicit_value to describe the constant.
2064
2065 2020-12-02 qing zhao <qinzhao@gcc.gnu.org>
2066
2067 PR rtl-optimization/97777
2068 * reg-stack.c (rest_of_handle_stack_regs): call
2069 df_insn_rescan_all if reg_to_stack return true.
2070
2071 2020-12-02 Ilya Leoshkevich <iii@linux.ibm.com>
2072
2073 * config/s390/s390-protos.h (s390_const_int_pool_entry_p): New
2074 function.
2075 * config/s390/s390.c (s390_const_int_pool_entry_p): New
2076 function.
2077 * config/s390/s390.md: Add define_peephole2 that produces llihf
2078 and oilf.
2079
2080 2020-12-02 Richard Biener <rguenther@suse.de>
2081
2082 PR tree-optimization/97630
2083 * tree-vectorizer.h (_slp_tree::next_node,
2084 _slp_tree::prev_node): New.
2085 (vect_slp_init): Declare.
2086 (vect_slp_fini): Likewise.
2087 * tree-vectorizer.c (vectorize_loops): Call vect_slp_init/fini.
2088 (pass_slp_vectorize::execute): Likewise.
2089 * tree-vect-slp.c (vect_slp_init): New.
2090 (vect_slp_fini): Likewise.
2091 (slp_first_node): New global.
2092 (_slp_tree::_slp_tree): Link node into the SLP tree list.
2093 (_slp_tree::~_slp_tree): Delink node from the SLP tree list.
2094
2095 2020-12-02 Scott Snyder <sss@li-snyder.org>
2096
2097 PR plugins/98059
2098 * vec.h (auto_delete_vec): Use
2099 DISABLE_COPY_AND_ASSIGN(auto_delete_vec) instead of
2100 DISABLE_COPY_AND_ASSIGN(auto_delete_vec<T>) to make it valid C++20
2101 after DR2237.
2102
2103 2020-12-02 Martin Liska <mliska@suse.cz>
2104
2105 PR ipa/98075
2106 * cgraph.c (cgraph_node::dump): Dump decl_is_malloc flag.
2107 * ipa-pure-const.c (propagate_malloc): Do not set malloc
2108 attribute for void functions.
2109
2110 2020-12-02 H.J. Lu <hjl.tools@gmail.com>
2111
2112 PR middle-end/93195
2113 PR middle-end/93197
2114 * configure.ac (HAVE_GAS_SECTION_LINK_ORDER): New. Define 1 if
2115 the assembler supports the section flag 'o' for specifying
2116 section with link-order.
2117 * output.h (SECTION_LINK_ORDER): New. Defined to 0x8000000.
2118 (SECTION_MACH_DEP): Changed from 0x8000000 to 0x10000000.
2119 * targhooks.c (default_print_patchable_function_entry): Pass
2120 SECTION_LINK_ORDER to switch_to_section if the section flag 'o'
2121 works. Pass current_function_decl to switch_to_section.
2122 * varasm.c (default_elf_asm_named_section): Use 'o' flag for
2123 SECTION_LINK_ORDER if assembler supports it.
2124 * config.in: Regenerated.
2125 * configure: Likewise.
2126 * doc/sourcebuild.texi: Document o_flag_in_section.
2127
2128 2020-12-02 H.J. Lu <hjl.tools@gmail.com>
2129
2130 * config/i386/i386.opt: Add the missing '.' for -mneeded.
2131
2132 2020-12-02 Richard Biener <rguenther@suse.de>
2133
2134 * tree-vect-loop.c (vect_transform_loop_stmt): Return whether
2135 we vectorized a stmt.
2136 (vect_transform_loop): Only call maybe_set_vectorized_backedge_value
2137 when we vectorized the stmt.
2138
2139 2020-12-02 Jakub Jelinek <jakub@redhat.com>
2140
2141 * expmed.h (expand_divmod): Only declare if GCC_OPTABS_H is defined.
2142 Add enum optabs_method argument defaulted to OPTAB_LIB_WIDEN.
2143 * expmed.c: Include expmed.h after optabs.h.
2144 (expand_divmod): Add methods argument, if it is not OPTAB_{,LIB_}WIDEN,
2145 don't choose a wider mode, and pass it to other calls instead of
2146 hardcoded OPTAB_LIB_WIDEN. Avoid emitting libcalls if not
2147 OPTAB_LIB or OPTAB_LIB_WIDEN.
2148 * optabs.c: Include expmed.h after optabs.h.
2149 (expand_doubleword_mod, expand_doubleword_divmod): Pass OPTAB_DIRECT
2150 as last argument to expand_divmod.
2151 (expand_binop): Punt if {s,u}divmod_optab has handler for double-word
2152 int_mode.
2153 * expr.c: Include expmed.h after optabs.h.
2154 * explow.c: Include expmed.h after optabs.h.
2155
2156 2020-12-02 Jakub Jelinek <jakub@redhat.com>
2157
2158 PR rtl-optimization/97459
2159 * optabs.h (expand_doubleword_divmod): Declare.
2160 * optabs.c (expand_doubleword_divmod): New function.
2161 (expand_binop): Use it.
2162 * internal-fn.c (expand_DIVMOD): Likewise.
2163
2164 2020-12-02 Martin Liska <mliska@suse.cz>
2165
2166 PR c/98087
2167 * gimple-fold.c (clear_padding_type): Do not divide by zero.
2168
2169 2020-12-02 Martin Liska <mliska@suse.cz>
2170
2171 * gdbinit.in: Write what each command calls
2172 for a debugging function.
2173
2174 2020-12-02 Kewen Lin <linkw@linux.ibm.com>
2175
2176 * config/rs6000/rs6000.c (rs6000_option_override_internal):
2177 Use OPTION_MASK_DIRECT_MOVE for Power8 target_enable instead
2178 of OPTION_MASK_HTM.
2179 * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER):
2180 Remove OPTION_MASK_HTM.
2181 (RS6000_CPU): Add OPTION_MASK_HTM to power8, power9 and
2182 powerpc64le entries.
2183
2184 2020-12-02 Uroš Bizjak <ubizjak@gmail.com>
2185
2186 PR target/98079
2187 * config/i386/i386.md (abs<mode>2): Enable QImode
2188 only for !TARGET_PARTIAL_REG_STALL.
2189 (*abs<mode>2_1): Ditto.
2190 (<maxmin:code><mode>3): Ditto.
2191 (*<maxmin:code><mode>3_1): Ditto.
2192
2193 2020-12-02 Martin Liska <mliska@suse.cz>
2194
2195 * diagnostic.c (diagnostic_report_diagnostic): ICE causes to
2196 terminate compiler immediately, so I guess it should be printed
2197 always.
2198
2199 2020-12-02 Martin Liska <mliska@suse.cz>
2200
2201 PR tree-optimization/88702
2202 * gimple-if-to-switch.cc (pass_if_to_switch::execute):
2203 Require at least 2 BBs.
2204 * gimple-if-to-switch.cc (find_conditions): Require
2205 equal precision for low and high of a range.
2206
2207 2020-12-02 Martin Liska <mliska@suse.cz>
2208
2209 PR tree-optimization/98084
2210 * gimple-if-to-switch.cc (find_conditions): Consider only
2211 integral types.
2212
2213 2020-12-02 Jeff Law <law@redhat.com>
2214
2215 * config/h8300/addsub.md (addqi3_clobber_flags): Rename to
2216 addqi3_flags and annotate with a <cczn> for define_subst.
2217 (addhi3_h8sx_clobber_flags): Likewise.
2218 (subqi3_clobber_flags, sub<mode>3_clobber_flags): Likewise.
2219 (neg<mode2>_clobber_flags): Similarly.
2220 (addsi3_clobber_flags): Similarly. Update last argument to
2221 output_plussi to distinguish when we need flags or do not need
2222 flags.
2223 (addhi3_clobber_flags): Similarly. Twiddle code for cases
2224 +-1, +-2 and +-4.
2225 * config/h8300/h8300.md: Define iterators, mode attributes and
2226 substitutions for use in compare/test elimination.
2227 * config/h8300/jumpcall.md (branch, branch_1): Use H8cc mode
2228 iterator to cover the different modes for the CC register.
2229 (branch_1_false): Likewise.
2230
2231 2020-12-02 Maciej W. Rozycki <macro@linux-mips.org>
2232
2233 * loop-iv.c: Fix a typo, s/bu/by/, in the `iv_analyze_expr'
2234 description in the introduction.
2235
2236 2020-12-02 H.J. Lu <hjl.tools@gmail.com>
2237
2238 * configure.ac (HAVE_GAS_SHF_GNU_RETAIN): New. Define 1 if
2239 the assembler supports marking sections with SHF_GNU_RETAIN flag.
2240 * output.h (SECTION_RETAIN): New. Defined as 0x4000000.
2241 (SECTION_MACH_DEP): Changed from 0x4000000 to 0x8000000.
2242 (default_unique_section): Add a bool argument.
2243 * varasm.c (get_section): Set SECTION_RETAIN for the preserved
2244 symbol with HAVE_GAS_SHF_GNU_RETAIN.
2245 (resolve_unique_section): Used named section for the preserved
2246 symbol if assembler supports SHF_GNU_RETAIN.
2247 (get_variable_section): Handle the preserved common symbol with
2248 HAVE_GAS_SHF_GNU_RETAIN.
2249 (default_elf_asm_named_section): Require the full declaration and
2250 use the 'R' flag for SECTION_RETAIN.
2251 * config.in: Regenerated.
2252 * configure: Likewise.
2253 * doc/sourcebuild.texi: Document R_flag_in_section.
2254
2255 2020-12-02 H.J. Lu <hjl.tools@gmail.com>
2256
2257 * config.gcc: Replace cet.o with gnu-property.o. Replace
2258 i386/t-cet with i386/t-gnu-property.
2259 * config/i386/cet.c: Renamed to ...
2260 * config/i386/gnu-property.c: This.
2261 (emit_gnu_property): New function.
2262 (file_end_indicate_exec_stack_and_cet): Renamed to ...
2263 (file_end_indicate_exec_stack_and_gnu_property): This. Call
2264 emit_gnu_property to generate GNU_PROPERTY_X86_FEATURE_1_AND and
2265 GNU_PROPERTY_X86_ISA_1_NEEDED properties.
2266 * config/i386/i386.opt (mneeded): New.
2267 * config/i386/linux-common.h (file_end_indicate_exec_stack_and_cet):
2268 Renamed to ...
2269 (file_end_indicate_exec_stack_and_gnu_property): This.
2270 (TARGET_ASM_FILE_END): Updated.
2271 * config/i386/t-cet: Renamed to ...
2272 * config/i386/t-gnu-property: This.
2273 (cet.o): Renamed to ...
2274 (gnu-property.o): This.
2275 * doc/invoke.texi: Document -mneeded.
2276
2277 2020-12-01 Eugene Rozenfeld <Eugene.Rozenfeld@microsoft.com>
2278
2279 PR tree-optimization/96708
2280 * match.pd: New pattern for comparing X with MAX (X, Y)
2281 or MIN (X, y).
2282
2283 2020-12-01 Jeff Law <law@redhat.com>
2284
2285 * config/mcore/t-mcore (MULTILIB_EXCEPTIONS): Define.
2286
2287 2020-12-01 Martin Sebor <msebor@redhat.com>
2288
2289 PR middle-end/97595
2290 * tree.c (component_ref_size): Fail when DECL_SIZE != TYPE_SIZE.
2291 * tree.h (DECL_SIZE, TYPE_SIZE): Update comment.
2292
2293 2020-12-01 JeanHeyd Meneide <phdofthehouse@gmail.com>
2294
2295 * doc/cpp.texi: Document new macros.
2296
2297 2020-12-01 Martin Sebor <msebor@redhat.com>
2298
2299 PR middle-end/97373
2300 * builtins.c (compute_objsize): Rename...
2301 (compute_objsize_r): to this. Change order and types of arguments.
2302 Use new argument. Adjust calls to self.
2303 (access_ref::get_ref): New member function.
2304 (pointer_query::pointer_query): New member function.
2305 (pointer_query::get_ref): Same.
2306 (pointer_query::put_ref): Same.
2307 (handle_min_max_size): Change order and types of arguments.
2308 (maybe_emit_free_warning): Add a test.
2309 * builtins.h (class pointer_query): New class.
2310 (compute_objsize): Declare an overload.
2311 * gimple-ssa-sprintf.c (get_destination_size): Add argument.
2312 (handle_printf_call): Change argument type.
2313 * tree-ssa-strlen.c (adjust_last_stmt): Add an argument and use it.
2314 (maybe_warn_overflow): Same.
2315 (handle_builtin_strcpy): Same.
2316 (maybe_diag_stxncpy_trunc): Same.
2317 (handle_builtin_memcpy): Change argument type. Adjust calls.
2318 (handle_builtin_strcat): Same.
2319 (handle_builtin_memset): Same.
2320 (handle_store): Same.
2321 (strlen_check_and_optimize_call): Same.
2322 (check_and_optimize_stmt): Same.
2323 (strlen_dom_walker): Add new data members.
2324 (strlen_dom_walker::before_dom_children): Use new member.
2325 (printf_strlen_execute): Dump cache performance counters. Remove
2326 objsize pass cleanup.
2327 * tree-ssa-strlen.h (maybe_diag_stxncpy_trunc): Add argument.
2328 (handle_printf_call): Change argument type.
2329
2330 2020-12-01 Eric Botcazou <ebotcazou@adacore.com>
2331
2332 * function.c (gen_call_used_regs_seq): In a function subject to the
2333 leaf register optimization, skip registers that are not present.
2334 * config/sparc/sparc.c (TARGET_ZERO_CALL_USED_REGS): Define to...
2335 (sparc_zero_call_used_regs): ...this. New function.
2336
2337 2020-12-01 Iain Sandoe <iain@sandoe.co.uk>
2338
2339 * config/darwin.h: Remove unused 'X' specs in the link spec
2340 rather than driver self-specs.
2341
2342 2020-12-01 Nathan Sidwell <nathan@acm.org>
2343
2344 * params.opt (lazy-modules): New.
2345 * timevar.def (TV_MODULE_IMPORT, TV_MODULE_EXPORT)
2346 (TV_MODULE_MAPPER): New.
2347
2348 2020-12-01 Jakub Jelinek <jakub@redhat.com>
2349
2350 PR rtl-optimization/97459
2351 * optabs.c (expand_doubleword_mod): Punt early for even op1.
2352 (expand_binop): Don't require lshr_optab double-word handler.
2353
2354 2020-12-01 Jakub Jelinek <jakub@redhat.com>
2355
2356 PR rtl-optimization/97954
2357 * loop-invariant.c (find_invariant_insn): Punt on JUMP_P insns.
2358
2359 2020-12-01 Iain Sandoe <iain@sandoe.co.uk>
2360
2361 * configure.ac (check leb128 support): Check that assemblers both
2362 accept the LEB128 directives and also give the expected output.
2363 Add a test for uleb128 with the MSB set for a 64 bit value.
2364 * configure: Regenerated.
2365
2366 2020-12-01 Iain Sandoe <iain@sandoe.co.uk>
2367
2368 * configure: Regnerated.
2369
2370 2020-12-01 Ilya Leoshkevich <iii@linux.ibm.com>
2371
2372 * optabs-tree.c (vec_cmp_icode_p): New function.
2373 (vec_cmp_eq_icode_p): New function.
2374 (expand_vec_cmp_expr_p): Use vec_cmp_icode_p and
2375 vec_cmp_eq_icode_p.
2376 (vcond_icode_p): Use get_rtx_code_1, just to be uniform with
2377 vec_cmp_icode_p.
2378 * optabs.c (unsigned_optab_p): New function.
2379 (insn_predicate_matches_p): New function.
2380 (can_vec_cmp_compare_p): New function.
2381 (can_vcond_compare_p): Use unsigned_optab_p and
2382 insn_predicate_matches_p.
2383 (get_rtx_code): Use get_rtx_code_1.
2384 (get_rtx_code_1): Version of get_rtx_code that returns UNKNOWN
2385 instead of asserting.
2386 * optabs.h (can_vec_cmp_compare_p): New function.
2387 (get_rtx_code_1): New function.
2388
2389 2020-12-01 Martin Liska <mliska@suse.cz>
2390
2391 PR tree-optimization/14799
2392 PR ipa/88702
2393 * Makefile.in: Add gimple-if-to-switch.o.
2394 * dbgcnt.def (DEBUG_COUNTER): Add new debug counter.
2395 * passes.def: Include new pass_if_to_switch pass.
2396 * timevar.def (TV_TREE_IF_TO_SWITCH): New timevar.
2397 * tree-pass.h (make_pass_if_to_switch): New.
2398 * tree-ssa-reassoc.c (struct operand_entry): Move to the header.
2399 (dump_range_entry): Move to header file.
2400 (debug_range_entry): Likewise.
2401 (no_side_effect_bb): Make it global.
2402 * tree-switch-conversion.h (simple_cluster::simple_cluster):
2403 Add inline for couple of functions in order to prevent error
2404 about multiple defined symbols.
2405 * gimple-if-to-switch.cc: New file.
2406 * tree-ssa-reassoc.h: New file.
2407
2408 2020-12-01 Marius Hillenbrand <mhillen@linux.ibm.com>
2409
2410 * configure.ac: Add configure option
2411 --enable-s390-excess-float-precision and check to derive default
2412 from glibc.
2413 * config/s390/s390.c: Guard s390_excess_precision with an ifdef
2414 for ENABLE_S390_EXCESS_FLOAT_PRECISION.
2415 * doc/install.texi: Document --enable-s390-excess-float-precision.
2416 * configure: Regenerate.
2417 * config.in: Regenerate.
2418
2419 2020-12-01 Martin Liska <mliska@suse.cz>
2420
2421 PR ipa/98057
2422 * symtab.c (symtab_node::set_section_for_node): Drop
2423 implicit_section if x_section is NULL.
2424
2425 2020-12-01 Jakub Jelinek <jakub@redhat.com>
2426
2427 PR target/98063
2428 * config/i386/i386-expand.c (ix86_expand_call): Handle non-plt
2429 CM_LARGE_PIC calls.
2430
2431 2020-12-01 Richard Biener <rguenther@suse.de>
2432
2433 PR middle-end/98070
2434 * builtins.c (builtin_fnspec): realloc is ".Cw ".
2435
2436 2020-12-01 Jakub Jelinek <jakub@redhat.com>
2437
2438 * dwarf2out.c (gen_compile_unit_die): Treat GNU C++20
2439 like C++14 for -gdwarf-5.
2440
2441 2020-12-01 Jakub Jelinek <jakub@redhat.com>
2442
2443 PR debug/97989
2444 * gcc.c (cpp_unique_options): Add -dD if %:debug-level-gt(2)
2445 rather than g3|ggdb3|gstabs3|gxcoff3|gvms3.
2446
2447 2020-12-01 Kito Cheng <kito.cheng@sifive.com>
2448
2449 * config.gcc (riscv*-*-*): Drop some commited accidentally code.
2450
2451 2020-11-30 Jeff Law <law@redhat.com>
2452
2453 * symtab.c (set_section_for_node): Add function comment.
2454 (set_section_from_node): Likewise.
2455
2456 2020-11-30 David Malcolm <dmalcolm@redhat.com>
2457
2458 * doc/plugins.texi (Plugin callbacks): Add PLUGIN_ANALYZER_INIT.
2459 * plugin.c (register_callback): Likewise.
2460 (invoke_plugin_callbacks_full): Likewise.
2461 * plugin.def (PLUGIN_ANALYZER_INIT): New event.
2462
2463 2020-11-30 Jeff Law <law@redhat.com>
2464
2465 * config/h8300/bitfield.md: Remove "cc" attribute on any
2466 insns where it remained.
2467 * config/h8300/combiner.md: Likewise.
2468 * config/h8300/jumpcall.md: Likewise.
2469 * config/h8300/logical.md: Likewise.
2470 * config/h8300/testcompare.md: Likewise.
2471 * config/h8300/h8300.md (old_cc attr): Renamed from cc attr.
2472 * config/h8300/h8300.c (notice_update_cc): Remove.
2473 (compute_plussi_cc): Change references to CC_* to OLD_CC_.
2474 (compute_logical_op_cc): Likewise.
2475 (shift_one, shift_two): Likewise.
2476 (compute_a_shift_cc): Likewise.
2477 (get_shift_alg): Likewise.
2478 (struct shift_insn): Change type of cc_valid field.
2479 (struct shift_info): Likewise.
2480 * config/h8300/save.md: Remove accidentially created file.
2481
2482 2020-11-30 Richard Sandiford <richard.sandiford@arm.com>
2483
2484 PR rtl-optimization/98037
2485 * dse.c (find_shift_sequence): Iterate over all integers and
2486 skip modes that are too small.
2487
2488 2020-11-30 Eugene Rozenfeld <Eugene.Rozenfeld@microsoft.com>
2489
2490 PR tree-optimization/96679
2491 * match.pd (((b | c) & a) | b -> (a & c) | b): New pattern.
2492
2493 2020-11-30 Martin Liska <mliska@suse.cz>
2494
2495 * passes.c (emergency_dump_function): Dump symtab when
2496 we are in an IPA pass.
2497
2498 2020-11-30 Richard Biener <rguenther@suse.de>
2499
2500 PR tree-optimization/98064
2501 * tree-vect-loop.c (vectorizable_live_operation): Avoid
2502 breaking LC SSA for BB vectorization.
2503
2504 2020-11-30 Jonathan Wakely <jwakely@redhat.com>
2505
2506 * doc/sourcebuild.texi (Directives): Fix description of
2507 dg-require-effective-target to include "target" in selector.
2508
2509 2020-11-30 Richard Biener <rguenther@suse.de>
2510
2511 PR tree-optimization/98048
2512 * tree-vect-generic.c (expand_vector_operations_1): Use the
2513 correct type for the scalar LHS replacement.
2514
2515 2020-11-30 Martin Liska <mliska@suse.cz>
2516
2517 PR tree-optimization/98066
2518 * gimple-isel.cc (gimple_expand_vec_exprs): Return when
2519 gimple_expand_vec_exprs replaces last stmt.
2520
2521 2020-11-30 Ilya Leoshkevich <iii@linux.ibm.com>
2522
2523 * cfgrtl.c (rtl_bb_info_initialized_p): New function.
2524 (rtl_dump_bb): Use rtl_bb_info_initialized_p before accessing bb
2525 insns.
2526
2527 2020-11-30 Iain Buclaw <ibuclaw@gdcproject.org>
2528
2529 PR d/87818
2530 * config.gcc (*-*-freebsd*): Add freebsd-d.o and t-freebsd.
2531 * config/freebsd-d.c: New file.
2532 * config/t-freebsd: New file.
2533
2534 2020-11-30 Jakub Jelinek <jakub@redhat.com>
2535
2536 PR rtl-optimization/97459
2537 * internal-fn.h (expand_addsub_overflow): Declare.
2538 * internal-fn.c (expand_addsub_overflow): No longer static.
2539 * optabs.c (expand_doubleword_mod): New function.
2540 (expand_binop): Optimize double-word mod with constant divisor.
2541
2542 2020-11-30 Kito Cheng <kito.cheng@sifive.com>
2543
2544 * config.gcc (riscv*-*-*): Add TARGET_RISCV_DEFAULT_ABI and
2545 TARGET_RISCV_DEFAULT_ARCH to tm_defines.
2546 Remove including riscv/withmultilib.h for --with-multilib-list.
2547 * config/riscv/riscv.h (STRINGIZING): New.
2548 (__STRINGIZING): Ditto.
2549 (MULTILIB_DEFAULTS): Ditto.
2550 * config/riscv/withmultilib.h: Remove.
2551
2552 2020-11-30 Kito Cheng <kito.cheng@sifive.com>
2553
2554 * gcc.c (print_multilib_info): Check default arguments not
2555 appeared in multi-lib option list with '!'
2556
2557 2020-11-30 Jeff Law <law@redhat.com>
2558
2559 * config/ft32/ft32.md (umulsidi3): Do not allow constants as
2560 arguments.
2561
2562 2020-11-29 Jan Hubicka <jh@suse.cz>
2563
2564 * ipa-modref.c (ipa_merge_modref_summary_after_inlining): Fix
2565 handling of ignore_stores.
2566
2567 2020-11-29 Jan Hubicka <jh@suse.cz>
2568
2569 PR jit/97867
2570 * symtab-thunks.h (thunk_info::release): Use ggc_delete.
2571
2572 2020-11-29 Martin Sebor <msebor@redhat.com>
2573
2574 PR middle-end/92936
2575 PR middle-end/92940
2576 PR middle-end/89428
2577 * builtins.c (access_ref::access_ref): Initialize member.
2578 (access_ref::phi): New function.
2579 (access_ref::get_ref): New function.
2580 (access_ref::add_offset): Remove duplicate assignment.
2581 (maybe_warn_for_bound): Add "maybe" kind of warning messages.
2582 (warn_for_access): Same.
2583 (inform_access): Rename...
2584 (access_ref::inform_access): ...to this. Print PHI arguments. Format
2585 offset the same as size and simplify. Improve printing of allocation
2586 functions and VLAs.
2587 (check_access): Adjust to the above.
2588 (gimple_parm_array_size): Change argument.
2589 (handle_min_max_size): New function.
2590 * builtins.h (class ssa_name_limit_t): Move class here from
2591 tree-ssa-strlen.c.
2592 (struct access_ref): Declare new members.
2593 (gimple_parm_array_size): Change argument.
2594 * tree-ssa-strlen.c (maybe_warn_overflow): Use access_ref and simplify.
2595 (handle_builtin_memcpy): Correct argument passed to maybe_warn_overflow.
2596 (handle_builtin_memset): Same.
2597 (class ssa_name_limit_t): Move class to builtins.{h,c}.
2598
2599 2020-11-29 Iain Buclaw <ibuclaw@gdcproject.org>
2600
2601 * config.gcc (*-*-darwin*): Set d_target_objs and target_has_targetdm.
2602 * config/elfos.h (TARGET_D_MINFO_SECTION): New macro.
2603 (TARGET_D_MINFO_START_NAME): New macro.
2604 (TARGET_D_MINFO_END_NAME): New macro.
2605 * config/t-darwin: Add darwin-d.o.
2606 * doc/tm.texi: Regenerate.
2607 * doc/tm.texi.in (D language and ABI): Add @hook for
2608 TARGET_D_MINFO_SECTION, TARGET_D_MINFO_START_NAME, and
2609 TARGET_D_MINFO_END_NAME.
2610 * config/darwin-d.c: New file.
2611
2612 2020-11-29 Jan Hubicka <jh@suse.cz>
2613
2614 * tree-ssa-structalias.c (handle_pure_call): Skip EAF_UNUSED
2615 parameters.
2616
2617 2020-11-29 Jan Hubicka <jh@suse.cz>
2618
2619 * ipa-modref.c (modref_lattice::merge): Do nothing if F is EAF_UNUSED.
2620 (analyze_parms): Detect unused params.
2621 (modref_merge_call_site_flags): Merge correct EAF_UNUSED.
2622
2623 2020-11-28 Eric Botcazou <ebotcazou@adacore.com>
2624
2625 PR target/97939
2626 * config/sparc/predicates.md (arith_double_add_operand): Comment.
2627 * config/sparc/sparc.md (uaddvdi4): Use arith_double_operand.
2628 (addvdi4): Use arith_double_add_operand.
2629 (addsi3): Remove useless attributes.
2630 (addvsi4): Use arith_add_operand.
2631 (*cmp_ccv_plus): Likewise and add second alternative accordingly.
2632 (*cmp_ccxv_plus): Likewise.
2633 (*cmp_ccv_plus_set): Likewise.
2634 (*cmp_ccxv_plus_set): Likewise.
2635 (*cmp_ccv_plus_sltu_set): Likewise.
2636 (usubvdi4): Use arith_double_operand.
2637 (subvdi4): Use arith_double_add_operand.
2638 (subsi3): Remove useless attributes.
2639 (subvsi4): Use arith_add_operand.
2640 (*cmp_ccv_minus): Likewise and add second alternative accordingly.
2641 (*cmp_ccxv_minus): Likewise.
2642 (*cmp_ccv_minus_set): Likewise.
2643 (*cmp_ccxv_minus_set): Likewise.
2644 (*cmp_ccv_minus_sltu_set): Likewise.
2645 (negsi2): Use register_operand.
2646 (unegvsi3): Likewise.
2647 (negvsi3) Likewise.
2648 (*cmp_ccnz_neg): Likewise.
2649 (*cmp_ccxnz_neg): Likewise.
2650 (*cmp_ccnz_neg_set): Likewise.
2651 (*cmp_ccxnz_neg_set): Likewise.
2652 (*cmp_ccc_neg_set): Likewise.
2653 (*cmp_ccxc_neg_set): Likewise.
2654 (*cmp_ccc_neg_sltu_set): Likewise.
2655 (*cmp_ccv_neg): Likewise.
2656 (*cmp_ccxv_neg): Likewise.
2657 (*cmp_ccv_neg_set): Likewise.
2658 (*cmp_ccxv_neg_set): Likewise.
2659 (*cmp_ccv_neg_sltu_set): Likewise.
2660
2661 2020-11-27 H.J. Lu <hjl.tools@gmail.com>
2662
2663 PR other/98027
2664 * doc/install.texi: Default to --enable-cet=auto.
2665
2666 2020-11-27 Thomas Schwinge <thomas@codesourcery.com>
2667
2668 * omp-oacc-kernels-decompose.cc (flatten_binds): Don't choke on
2669 empty GIMPLE sequence, and examine all statements contained in
2670 inner 'GIMPLE_BIND'.
2671
2672 2020-11-27 Richard Biener <rguenther@suse.de>
2673
2674 PR tree-optimization/98024
2675 * tree-ssa-pre.c (insert): Fix successor RPO order check.
2676 (do_pre_regular_insertion): When inserting an assignment
2677 in place of an all-same-value PHI still record that into
2678 PHI_GEN.
2679
2680 2020-11-27 Jakub Jelinek <jakub@redhat.com>
2681
2682 * tree-ssanames.c (get_range_info): Handle INTEGER_CST by returning
2683 VR_RANGE with both *min and *max set to the wide_int value of the
2684 INTEGER_CST. Return VR_VARYING for non-SSA_NAMEs.
2685 * match.pd ((t * 2) / 2) -> t): Handle also @0 being INTEGER_CST.
2686 Simplify by calling get_range_info on everything.
2687 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Simplify by calling
2688 get_range_info on everything.
2689 * tree-scalar-evolution.c (iv_can_overflow_p): Likewise.
2690
2691 2020-11-27 Jakub Jelinek <jakub@redhat.com>
2692
2693 PR libstdc++/88101
2694 * gimple-fold.c (clear_padding_type): Ignore fields with is_empty_type
2695 types.
2696
2697 2020-11-27 Tobias Burnus <tobias@codesourcery.com>
2698
2699 PR c/97880
2700 * omp-expand.c (expand_oacc_collapse_init, expand_oacc_collapse_vars):
2701 Use now passed diff_type.
2702 (expand_oacc_for): Take largest type for diff_type, taking tiling
2703 and collapsing into account.
2704
2705 2020-11-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2706
2707 * config/aarch64/aarch64.opt
2708 (-param=aarch64-autovec-preference): Define.
2709 * config/aarch64/aarch64.c (aarch64_override_options_internal):
2710 Set aarch64_sve_compare_costs to 0 when preferring only Advanced
2711 SIMD.
2712 (aarch64_cmp_autovec_modes): Define.
2713 (aarch64_preferred_simd_mode): Adjust to use the above.
2714 (aarch64_autovectorize_vector_modes): Likewise.
2715 * doc/invoke.texi: Document aarch64-autovec-preference param.
2716
2717 2020-11-27 Xionghu Luo <luoxhu@linux.ibm.com>
2718
2719 * config/rs6000/rs6000-call.c (altivec_expand_vec_set_builtin):
2720 Change call param 2 from type int to rtx.
2721 * config/rs6000/rs6000-protos.h (rs6000_expand_vector_set):
2722 Likewise.
2723 * config/rs6000/rs6000.c (rs6000_expand_vector_init):
2724 Change call param 2 from type int to rtx.
2725 (rs6000_expand_vector_set): Likewise.
2726 * config/rs6000/vector.md (vec_set<mode>): Support both constant
2727 and variable index vec_set.
2728
2729 2020-11-27 Haochen Gui <guihaoc@gcc.gnu.org>
2730
2731 * config/rs6000/rs6000-protos.h (rs6000_output_addr_vec_elt): Declare.
2732 * config/rs6000/rs6000.c (TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC):
2733 Define.
2734 (rs6000_gen_pic_addr_diff_vec, rs6000_output_addr_vec_elt): Implement.
2735 * config/rs6000/rs6000.h (CASE_VECTOR_PC_RELATIVE,
2736 CASE_VECTOR_MODE, ASM_OUTPUT_ADDR_VEC_ELT): Define.
2737 * config/rs6000/rs6000.md (tablejump<mode>_absolute,
2738 tablejump<mode>_absolute_nospec): New expanders.
2739 * config/rs6000/rs6000.opt (mrelative-jumptables): New.
2740
2741 2020-11-26 Eric Botcazou <ebotcazou@adacore.com>
2742
2743 PR target/96607
2744 * config/sparc/sparc-protos.h (eligible_for_call_delay): Delete.
2745 * config/sparc/sparc.c (eligible_for_call_delay): Likewise.
2746 * config/sparc/sparc.md (in_call_delay): Likewise.
2747 (tls_delay_slot): New attribute.
2748 (define_delay [call]): Use in_branch_delay.
2749 (tgd_call<P:mode>): Set type to call_no_delay_slot when
2750 tls_delay_slot is false.
2751 (tldm_call<P:mode>): Likewise.
2752
2753 2020-11-26 Jakub Jelinek <jakub@redhat.com>
2754
2755 PR tree-optimization/97997
2756 * match.pd ((t * 2) / 2) -> t): Optimize even for defined
2757 overflow if ranges prove there is no overflow.
2758
2759 2020-11-26 Richard Biener <rguenther@suse.de>
2760
2761 PR tree-optimization/97953
2762 * gimple-ssa-evrp-analyze.c
2763 (evrp_range_analyzer::record_ranges_from_incoming_edge): Make
2764 sure the condition post-dominates the SSA definition before
2765 recording into SSA_NAME_RANGE_INFO.
2766
2767 2020-11-26 Richard Biener <rguenther@suse.de>
2768
2769 * gimple-isel.cc (gimple_expand_vec_cond_expr): Only
2770 lower VECTOR_BOOLEAN_TYPE_P VEC_COND_EXPRs.
2771
2772 2020-11-26 Andrew Stubbs <ams@codesourcery.com>
2773
2774 * config/gcn/mkoffload.c (copy_early_debug_info): Don't wipe
2775 relocation symbols.
2776
2777 2020-11-26 Uroš Bizjak <ubizjak@gmail.com>
2778
2779 * config/i386/i386-expand.c (ix86_expand_multi_arg_builtin):
2780 Remove args array of structs, declare rtx xops array instead.
2781 Update all uses.
2782 (ix86_expand_args_builtin): Ditto.
2783 (ix86_expand_round_builtin): Ditto.
2784 (ix86_expand_special_args_builtin): Ditto.
2785
2786 2020-11-26 Martin Liska <mliska@suse.cz>
2787
2788 * dwarf2out.c (gen_compile_unit_die): Fix missing == 0 in a
2789 strcmp.
2790
2791 2020-11-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2792
2793 * config/sol2.h (TIME_LIBRARY): Remove.
2794
2795 2020-11-26 Kewen Lin <linkw@linux.ibm.com>
2796
2797 * config/rs6000/rs6000.c (rs6000_option_override_internal):
2798 Set param_vect_partial_vector_usage as 1 for Power10 and up
2799 by default.
2800
2801 2020-11-26 Jakub Jelinek <jakub@redhat.com>
2802
2803 * gimple-fold.c (clear_padding_union): Ignore DECL_PADDING_P
2804 fields.
2805 (clear_padding_type): Ignore DECL_PADDING_P fields, rather than
2806 DECL_BIT_FIELD with NULL DECL_NAME.
2807
2808 2020-11-26 Jakub Jelinek <jakub@redhat.com>
2809
2810 PR tree-optimization/97979
2811 * match.pd ((X {&,^,|} C2) << C1 into (X << C1) {&,^,|} (C2 << C1)):
2812 Only optimize if int_const_binop returned non-NULL.
2813
2814 2020-11-26 liuhongt <hongtao.liu@intel.com>
2815
2816 * config/i386/i386-expand.c
2817 (ix86_expand_special_args_builtin): Delete last_arg_constant
2818 and match.
2819
2820 2020-11-26 Uroš Bizjak <ubizjak@gmail.com>
2821
2822 PR target/97873
2823 * config/i386/i386.md (abs<mode>2): Use SDWIM mode iterator.
2824 (*abs<mode>2_1): Use SWI mode iterator.
2825 (<maxmin:code><mode>3): Use SDWIM mode iterator.
2826 (*<maxmin:code><mode>3_1): Use SWI mode iterator.
2827
2828 2020-11-26 Jakub Jelinek <jakub@redhat.com>
2829
2830 PR target/96906
2831 * config/i386/sse.md (VI12_AVX2): Remove V64QI/V32HI modes.
2832 (VI12_AVX2_AVX512BW): New mode iterator.
2833 (<sse2_avx2>_<plusminus_insn><mode>3<mask_name>,
2834 uavg<mode>3_ceil, <sse2_avx2>_uavg<mode>3<mask_name>): Use
2835 VI12_AVX2_AVX512BW iterator instead of VI12_AVX2.
2836 (*<sse2_avx2>_<plusminus_insn><mode>3<mask_name>): Likewise.
2837 (*<sse2_avx2>_uavg<mode>3<mask_name>): Likewise.
2838 (*<sse2_avx2>_<plusminus_insn><mode>3<mask_name>): Add a new
2839 define_split after this insn.
2840
2841 2020-11-26 Martin Uecker <muecker@gwdg.de>
2842
2843 PR c/65455
2844 PR c/92935
2845 * ginclude/stdatomic.h: Use comma operator to drop qualifiers.
2846
2847 2020-11-26 Vladimir Makarov <vmakarov@redhat.com>
2848
2849 PR bootstrap/97983
2850 * lra.c (lra_process_new_insns): Use emit_insn_before_noloc or
2851 emit_insn_after_noloc with the destination BB.
2852
2853 2020-11-25 Martin Sebor <msebor@redhat.com>
2854
2855 PR bootstrap/97622
2856 PR bootstrap/94982
2857 * config/i386/i386-options.c (ix86_valid_target_attribute_inner_p):
2858 Avoid -Wformat-diag.
2859 * digraph.cc (struct test_edge): Same.
2860 * dumpfile.c (dump_loc): Same.
2861 (dump_context::begin_scope): Same.
2862 * edit-context.c (edited_file::print_diff): Same.
2863 (edited_file::print_diff_hunk): Same.
2864 * json.cc (object::print): Same.
2865 * lto-wrapper.c (merge_and_complain): Same.
2866 * reload.c (find_reloads): Same.
2867 * tree-diagnostic-path.cc (print_path_summary_as_text): Same.
2868 * ubsan.c (ubsan_type_descriptor): Same.
2869
2870 2020-11-25 Jan Hubicka <jh@suse.cz>
2871
2872 * gimple.c (gimple_call_arg_flags): Also imply EAF_NODIRECTESCAPE.
2873 * tree-core.h (EAF_NODRECTESCAPE): New flag.
2874 * tree-ssa-structalias.c (make_indirect_escape_constraint): New
2875 function.
2876 (handle_rhs_call): Hanlde EAF_NODIRECTESCAPE.
2877 * ipa-modref.c (dump_eaf_flags): Print EAF_NODIRECTESCAPE.
2878 (deref_flags): Dereference is always EAF_NODIRECTESCAPE.
2879 (modref_lattice::init): Also set EAF_NODIRECTESCAPE.
2880 (analyze_ssa_name_flags): Pure functions do not affect
2881 EAF_NODIRECTESCAPE.
2882 (analyze_params): Likewise.
2883 (ipa_merge_modref_summary_after_inlining): Likewise.
2884 (modref_merge_call_site_flags): Likewise.
2885
2886 2020-11-25 Jan Hubicka <jh@suse.cz>
2887
2888 * ipa-modref.c (modref_summaries::duplicate,
2889 modref_summaries_lto::duplicate): Copy arg_flags.
2890 (remap_arg_flags): Fix remapping of arg_flags.
2891
2892 2020-11-25 Martin Sebor <msebor@redhat.com>
2893
2894 PR middle-end/97956
2895 * gimple-fold.c (gimple_fold_builtin_memchr): Use sizetype for pointer
2896 offsets.
2897
2898 2020-11-25 Matthew Malcomson <matthew.malcomson@arm.com>
2899
2900 * asan.c (asan_instrument_reads): New.
2901 (asan_instrument_writes): New.
2902 (asan_memintrin): New.
2903 (handle_builtin_stack_restore): Account for HWASAN.
2904 (handle_builtin_alloca): Account for HWASAN.
2905 (get_mem_refs_of_builtin_call): Special case strlen for HWASAN.
2906 (hwasan_instrument_reads): New.
2907 (hwasan_instrument_writes): New.
2908 (hwasan_memintrin): New.
2909 (report_error_func): Assert not HWASAN.
2910 (build_check_stmt): Make HWASAN_CHECK instead of ASAN_CHECK.
2911 (instrument_derefs): HWASAN does not tag globals.
2912 (instrument_builtin_call): Use new helper functions.
2913 (maybe_instrument_call): Don't instrument `noreturn` functions.
2914 (initialize_sanitizer_builtins): Add new type.
2915 (asan_expand_mark_ifn): Account for HWASAN.
2916 (asan_expand_check_ifn): Assert never called by HWASAN.
2917 (asan_expand_poison_ifn): Account for HWASAN.
2918 (asan_instrument): Branch based on whether using HWASAN or ASAN.
2919 (pass_asan::gate): Return true if sanitizing HWASAN.
2920 (pass_asan_O0::gate): Return true if sanitizing HWASAN.
2921 (hwasan_check_func): New.
2922 (hwasan_expand_check_ifn): New.
2923 (hwasan_expand_mark_ifn): New.
2924 (gate_hwasan): New.
2925 * asan.h (hwasan_expand_check_ifn): New decl.
2926 (hwasan_expand_mark_ifn): New decl.
2927 (gate_hwasan): New decl.
2928 (asan_intercepted_p): Always false for hwasan.
2929 (asan_sanitize_use_after_scope): Account for HWASAN.
2930 * builtin-types.def (BT_FN_PTR_CONST_PTR_UINT8): New.
2931 * gimple-fold.c (gimple_build): New overload for building function
2932 calls without arguments.
2933 (gimple_build_round_up): New.
2934 * gimple-fold.h (gimple_build): New decl.
2935 (gimple_build): New inline function.
2936 (gimple_build_round_up): New decl.
2937 (gimple_build_round_up): New inline function.
2938 * gimple-pretty-print.c (dump_gimple_call_args): Account for
2939 HWASAN.
2940 * gimplify.c (asan_poison_variable): Account for HWASAN.
2941 (gimplify_function_tree): Remove requirement of
2942 SANITIZE_ADDRESS, requiring asan or hwasan is accounted for in
2943 `asan_sanitize_use_after_scope`.
2944 * internal-fn.c (expand_HWASAN_CHECK): New.
2945 (expand_HWASAN_ALLOCA_UNPOISON): New.
2946 (expand_HWASAN_CHOOSE_TAG): New.
2947 (expand_HWASAN_MARK): New.
2948 (expand_HWASAN_SET_TAG): New.
2949 * internal-fn.def (HWASAN_ALLOCA_UNPOISON): New.
2950 (HWASAN_CHOOSE_TAG): New.
2951 (HWASAN_CHECK): New.
2952 (HWASAN_MARK): New.
2953 (HWASAN_SET_TAG): New.
2954 * sanitizer.def (BUILT_IN_HWASAN_LOAD1): New.
2955 (BUILT_IN_HWASAN_LOAD2): New.
2956 (BUILT_IN_HWASAN_LOAD4): New.
2957 (BUILT_IN_HWASAN_LOAD8): New.
2958 (BUILT_IN_HWASAN_LOAD16): New.
2959 (BUILT_IN_HWASAN_LOADN): New.
2960 (BUILT_IN_HWASAN_STORE1): New.
2961 (BUILT_IN_HWASAN_STORE2): New.
2962 (BUILT_IN_HWASAN_STORE4): New.
2963 (BUILT_IN_HWASAN_STORE8): New.
2964 (BUILT_IN_HWASAN_STORE16): New.
2965 (BUILT_IN_HWASAN_STOREN): New.
2966 (BUILT_IN_HWASAN_LOAD1_NOABORT): New.
2967 (BUILT_IN_HWASAN_LOAD2_NOABORT): New.
2968 (BUILT_IN_HWASAN_LOAD4_NOABORT): New.
2969 (BUILT_IN_HWASAN_LOAD8_NOABORT): New.
2970 (BUILT_IN_HWASAN_LOAD16_NOABORT): New.
2971 (BUILT_IN_HWASAN_LOADN_NOABORT): New.
2972 (BUILT_IN_HWASAN_STORE1_NOABORT): New.
2973 (BUILT_IN_HWASAN_STORE2_NOABORT): New.
2974 (BUILT_IN_HWASAN_STORE4_NOABORT): New.
2975 (BUILT_IN_HWASAN_STORE8_NOABORT): New.
2976 (BUILT_IN_HWASAN_STORE16_NOABORT): New.
2977 (BUILT_IN_HWASAN_STOREN_NOABORT): New.
2978 (BUILT_IN_HWASAN_TAG_MISMATCH4): New.
2979 (BUILT_IN_HWASAN_HANDLE_LONGJMP): New.
2980 (BUILT_IN_HWASAN_TAG_PTR): New.
2981 * sanopt.c (sanopt_optimize_walker): Act for hwasan.
2982 (pass_sanopt::execute): Act for hwasan.
2983 * toplev.c (compile_file): Use `gate_hwasan` function.
2984
2985 2020-11-25 Matthew Malcomson <matthew.malcomson@arm.com>
2986
2987 * asan.c (struct hwasan_stack_var): New.
2988 (hwasan_sanitize_p): New.
2989 (hwasan_sanitize_stack_p): New.
2990 (hwasan_sanitize_allocas_p): New.
2991 (initialize_sanitizer_builtins): Define new builtins.
2992 (ATTR_NOTHROW_LIST): New macro.
2993 (hwasan_current_frame_tag): New.
2994 (hwasan_frame_base): New.
2995 (stack_vars_base_reg_p): New.
2996 (hwasan_maybe_init_frame_base_init): New.
2997 (hwasan_record_stack_var): New.
2998 (hwasan_get_frame_extent): New.
2999 (hwasan_increment_frame_tag): New.
3000 (hwasan_record_frame_init): New.
3001 (hwasan_emit_prologue): New.
3002 (hwasan_emit_untag_frame): New.
3003 (hwasan_finish_file): New.
3004 (hwasan_truncate_to_tag_size): New.
3005 * asan.h (hwasan_record_frame_init): New declaration.
3006 (hwasan_record_stack_var): New declaration.
3007 (hwasan_emit_prologue): New declaration.
3008 (hwasan_emit_untag_frame): New declaration.
3009 (hwasan_get_frame_extent): New declaration.
3010 (hwasan_maybe_enit_frame_base_init): New declaration.
3011 (hwasan_frame_base): New declaration.
3012 (stack_vars_base_reg_p): New declaration.
3013 (hwasan_current_frame_tag): New declaration.
3014 (hwasan_increment_frame_tag): New declaration.
3015 (hwasan_truncate_to_tag_size): New declaration.
3016 (hwasan_finish_file): New declaration.
3017 (hwasan_sanitize_p): New declaration.
3018 (hwasan_sanitize_stack_p): New declaration.
3019 (hwasan_sanitize_allocas_p): New declaration.
3020 (HWASAN_TAG_SIZE): New macro.
3021 (HWASAN_TAG_GRANULE_SIZE): New macro.
3022 (HWASAN_STACK_BACKGROUND): New macro.
3023 * builtin-types.def (BT_FN_VOID_PTR_UINT8_PTRMODE): New.
3024 * builtins.def (DEF_SANITIZER_BUILTIN): Enable for HWASAN.
3025 * cfgexpand.c (align_local_variable): When using hwasan ensure
3026 alignment to tag granule.
3027 (align_frame_offset): New.
3028 (expand_one_stack_var_at): For hwasan use tag offset.
3029 (expand_stack_vars): Record stack objects for hwasan.
3030 (expand_one_stack_var_1): Record stack objects for hwasan.
3031 (init_vars_expansion): Initialise hwasan state.
3032 (expand_used_vars): Emit hwasan prologue and generate hwasan epilogue.
3033 (pass_expand::execute): Emit hwasan base initialization if needed.
3034 * doc/tm.texi (TARGET_MEMTAG_TAG_SIZE,TARGET_MEMTAG_GRANULE_SIZE,
3035 TARGET_MEMTAG_INSERT_RANDOM_TAG,TARGET_MEMTAG_ADD_TAG,
3036 TARGET_MEMTAG_SET_TAG,TARGET_MEMTAG_EXTRACT_TAG,
3037 TARGET_MEMTAG_UNTAGGED_POINTER): Document new hooks.
3038 * doc/tm.texi.in (TARGET_MEMTAG_TAG_SIZE,TARGET_MEMTAG_GRANULE_SIZE,
3039 TARGET_MEMTAG_INSERT_RANDOM_TAG,TARGET_MEMTAG_ADD_TAG,
3040 TARGET_MEMTAG_SET_TAG,TARGET_MEMTAG_EXTRACT_TAG,
3041 TARGET_MEMTAG_UNTAGGED_POINTER): Document new hooks.
3042 * explow.c (get_dynamic_stack_base): Take new `base` argument.
3043 * explow.h (get_dynamic_stack_base): Take new `base` argument.
3044 * sanitizer.def (BUILT_IN_HWASAN_INIT): New.
3045 (BUILT_IN_HWASAN_TAG_MEM): New.
3046 * target.def (target_memtag_tag_size,target_memtag_granule_size,
3047 target_memtag_insert_random_tag,target_memtag_add_tag,
3048 target_memtag_set_tag,target_memtag_extract_tag,
3049 target_memtag_untagged_pointer): New hooks.
3050 * targhooks.c (HWASAN_SHIFT): New.
3051 (HWASAN_SHIFT_RTX): New.
3052 (default_memtag_tag_size): New default hook.
3053 (default_memtag_granule_size): New default hook.
3054 (default_memtag_insert_random_tag): New default hook.
3055 (default_memtag_add_tag): New default hook.
3056 (default_memtag_set_tag): New default hook.
3057 (default_memtag_extract_tag): New default hook.
3058 (default_memtag_untagged_pointer): New default hook.
3059 * targhooks.h (default_memtag_tag_size): New default hook.
3060 (default_memtag_granule_size): New default hook.
3061 (default_memtag_insert_random_tag): New default hook.
3062 (default_memtag_add_tag): New default hook.
3063 (default_memtag_set_tag): New default hook.
3064 (default_memtag_extract_tag): New default hook.
3065 (default_memtag_untagged_pointer): New default hook.
3066 * toplev.c (compile_file): Call hwasan_finish_file when finished.
3067
3068 2020-11-25 Matthew Malcomson <matthew.malcomson@arm.com>
3069
3070 * common.opt (flag_sanitize_recover): Default for kernel
3071 hwaddress.
3072 (static-libhwasan): New cli option.
3073 * config/aarch64/aarch64.c (aarch64_can_tag_addresses): New.
3074 (TARGET_MEMTAG_CAN_TAG_ADDRESSES): New.
3075 * config/gnu-user.h (LIBHWASAN_EARLY_SPEC): hwasan equivalent of
3076 asan command line flags.
3077 * cppbuiltin.c (define_builtin_macros_for_compilation_flags):
3078 Add hwasan equivalent of __SANITIZE_ADDRESS__.
3079 * doc/invoke.texi: Document hwasan command line flags.
3080 * doc/tm.texi: Document new hook.
3081 * doc/tm.texi.in: Document new hook.
3082 * flag-types.h (enum sanitize_code): New sanitizer values.
3083 * gcc.c (STATIC_LIBHWASAN_LIBS): New macro.
3084 (LIBHWASAN_SPEC): New macro.
3085 (LIBHWASAN_EARLY_SPEC): New macro.
3086 (SANITIZER_EARLY_SPEC): Update to include hwasan.
3087 (SANITIZER_SPEC): Update to include hwasan.
3088 (sanitize_spec_function): Use hwasan options.
3089 * opts.c (finish_options): Describe conflicts between address
3090 sanitizers.
3091 (find_sanitizer_argument): New.
3092 (report_conflicting_sanitizer_options): New.
3093 (sanitizer_opts): Introduce new sanitizer flags.
3094 (common_handle_option): Add defaults for kernel sanitizer.
3095 * params.opt (hwasan--instrument-stack): New
3096 (hwasan-random-frame-tag): New
3097 (hwasan-instrument-allocas): New
3098 (hwasan-instrument-reads): New
3099 (hwasan-instrument-writes): New
3100 (hwasan-instrument-mem-intrinsics): New
3101 * target.def (HOOK_PREFIX): Add new hook.
3102 (can_tag_addresses): Add new hook under memtag prefix.
3103 * targhooks.c (default_memtag_can_tag_addresses): New.
3104 * targhooks.h (default_memtag_can_tag_addresses): New decl.
3105 * toplev.c (process_options): Ensure hwasan only on
3106 architectures that advertise the possibility.
3107
3108 2020-11-25 Matthew Malcomson <matthew.malcomson@arm.com>
3109
3110 * doc/install.texi: Document new option.
3111
3112 2020-11-25 Richard Sandiford <richard.sandiford@arm.com>
3113
3114 * config/aarch64/aarch64.c (aarch64_maybe_expand_sve_subreg_move):
3115 Do not optimize LRA subregs.
3116 * config/aarch64/aarch64-sve.md
3117 (@aarch64_pred_<SVE_INT_UNARY:optab><mode>): Tie the input to the
3118 output.
3119 (@aarch64_sve_revbhw_<SVE_ALL:mode><PRED_HSD:mode>): Likewise.
3120 (*<ANY_EXTEND:optab><SVE_PARTIAL_I:mode><SVE_HSDI:mode>2): Likewise.
3121 (@aarch64_pred_sxt<SVE_FULL_HSDI:mode><SVE_PARTIAL_I:mode>): Likewise.
3122 (*cnot<mode>): Likewise.
3123 (@aarch64_pred_<SVE_COND_FP_UNARY:optab><mode>): Likewise.
3124 (@aarch64_sve_<optab>_nontrunc<SVE_FULL_F:mode><SVE_FULL_HSDI:mode>):
3125 Likewise.
3126 (@aarch64_sve_<optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>):
3127 Likewise.
3128 (@aarch64_sve_<optab>_nonextend<SVE_FULL_HSDI:mode><SVE_FULL_F:mode>):
3129 Likewise.
3130 (@aarch64_sve_<optab>_extend<VNx4SI_ONLY:mode><VNx2DF_ONLY:mode>):
3131 Likewise.
3132 (@aarch64_sve_<optab>_trunc<SVE_FULL_SDF:mode><SVE_FULL_HSF:mode>):
3133 Likewise.
3134 (@aarch64_sve_<optab>_trunc<VNx4SF_ONLY:mode><VNx8BF_ONLY:mode>):
3135 Likewise.
3136 (@aarch64_sve_<optab>_nontrunc<SVE_FULL_HSF:mode><SVE_FULL_SDF:mode>):
3137 Likewise.
3138 * config/aarch64/aarch64-sve2.md
3139 (@aarch64_pred_<SVE2_COND_FP_UNARY_LONG:sve_fp_op><mode>): Likewise.
3140 (@aarch64_pred_<SVE2_COND_FP_UNARY_NARROWB:sve_fp_op><mode>): Likewise.
3141 (@aarch64_pred_<SVE2_U32_UNARY:sve_int_op><mode>): Likewise.
3142 (@aarch64_pred_<SVE2_COND_INT_UNARY_FP:sve_fp_op><mode>): Likewise.
3143
3144 2020-11-25 Jakub Jelinek <jakub@redhat.com>
3145
3146 PR rtl-optimization/95862
3147 * internal-fn.c (get_min_precision): For narrowing conversion, recurse
3148 on the operand and if the operand precision is smaller than the
3149 current one, return that smaller precision.
3150 (expand_mul_overflow): For s1 * u2 -> ur and s1 * s2 -> ur cases
3151 if the sum of minimum precisions of both operands is smaller or equal
3152 to the result precision, just perform normal multiplication and
3153 set overflow to the sign bit of the multiplication result. For
3154 u1 * u2 -> sr if both arguments have the MSB known zero, use
3155 normal s1 * s2 -> sr expansion.
3156
3157 2020-11-25 Jan Hubicka <jh@suse.cz>
3158
3159 * cfg.c (free_block): New function.
3160 (clear_edges): Rename to ....
3161 (free_cfg): ... this one; also free BBs and vectors.
3162 (expunge_block): Update comment.
3163 * cfg.h (clear_edges): Rename to ...
3164 (free_cfg): ... this one.
3165 * cgraph.c (release_function_body): Use free_cfg.
3166
3167 2020-11-25 Richard Biener <rguenther@suse.de>
3168
3169 PR middle-end/97579
3170 * gimple-isel.cc (gimple_expand_vec_cond_expr): Lower
3171 VECTOR_BOOLEAN_TYPE_P, non-vector mode VEC_COND_EXPRs.
3172
3173 2020-11-25 Jakub Jelinek <jakub@redhat.com>
3174
3175 PR middle-end/97943
3176 * gimple-fold.c (clear_padding_union, clear_padding_type): Error on and
3177 ignore flexible array member fields. Ignore fields with
3178 error_mark_node type.
3179
3180 2020-11-24 Ulrich Weigand <ulrich.weigand@de.ibm.com>
3181
3182 Revert:
3183 2020-11-24 Ulrich Weigand <uweigand@de.ibm.com>
3184
3185 * doc/invoke.texi (-ffast-math): Remove mention of -fno-signaling-nans.
3186 Clarify conditions when __FAST_MATH__ preprocessor macro is defined.
3187 * opts.c (common_handle_option): Pass OPTS_SET to set_fast_math_flags
3188 and set_unsafe_math_optimizations_flags.
3189 (set_fast_math_flags): Add OPTS_SET argument, and use it to avoid
3190 setting flags already explicitly set on the command line. In the !set
3191 case, also reset x_flag_cx_limited_range and x_flag_excess_precision.
3192 Never reset x_flag_signaling_nans or x_flag_rounding_math.
3193 (set_unsafe_math_optimizations_flags): Add OPTS_SET argument, and use
3194 it to avoid setting flags already explicitly set on the command line.
3195 (fast_math_flags_set_p): Also test x_flag_cx_limited_range,
3196 x_flag_associative_math, x_flag_reciprocal_math, and
3197 x_flag_rounding_math.
3198
3199 2020-11-24 Vladimir Makarov <vmakarov@redhat.com>
3200
3201 PR bootstrap/97933
3202 * lra.c (lra_process_new_insns): Stop on the first real insn after
3203 head of e->dest.
3204
3205 2020-11-24 Richard Earnshaw <rearnsha@arm.com>
3206
3207 PR target/97534
3208 * config/arm/arm.c (arm_split_atomic_op): Use gen_int_mode when
3209 negating a const_int.
3210
3211 2020-11-24 Ilya Leoshkevich <iii@linux.ibm.com>
3212
3213 * config/s390/vector.md: Use vcond_comparison_operator
3214 predicate.
3215
3216 2020-11-24 Ulrich Weigand <uweigand@de.ibm.com>
3217
3218 * doc/invoke.texi (-ffast-math): Remove mention of -fno-signaling-nans.
3219 Clarify conditions when __FAST_MATH__ preprocessor macro is defined.
3220 * opts.c (common_handle_option): Pass OPTS_SET to set_fast_math_flags
3221 and set_unsafe_math_optimizations_flags.
3222 (set_fast_math_flags): Add OPTS_SET argument, and use it to avoid
3223 setting flags already explicitly set on the command line. In the !set
3224 case, also reset x_flag_cx_limited_range and x_flag_excess_precision.
3225 Never reset x_flag_signaling_nans or x_flag_rounding_math.
3226 (set_unsafe_math_optimizations_flags): Add OPTS_SET argument, and use
3227 it to avoid setting flags already explicitly set on the command line.
3228 (fast_math_flags_set_p): Also test x_flag_cx_limited_range,
3229 x_flag_associative_math, x_flag_reciprocal_math, and
3230 x_flag_rounding_math.
3231
3232 2020-11-24 Jakub Jelinek <jakub@redhat.com>
3233
3234 PR target/97950
3235 * config/i386/i386.md (*setcc_si_1_and): Macroize into...
3236 (*setcc_<mode>_1_and): New define_insn_and_split with SWI24 iterator.
3237 (*setcc_si_1_movzbl): Macroize into...
3238 (*setcc_<mode>_1_movzbl): New define_insn_and_split with SWI24
3239 iterator.
3240
3241 2020-11-24 Jakub Jelinek <jakub@redhat.com>
3242
3243 * gimple-fold.c (clear_padding_flush): If a word contains only 0
3244 or 0xff bytes of padding other than all set, all clear, all set
3245 followed by all clear or all clear followed by all set, don't emit
3246 a RMW operation on the whole word or parts of it, but instead
3247 clear the individual bytes of padding. For paddings of one byte
3248 size, don't use char[1] and {}, but instead just char and 0.
3249
3250 2020-11-24 Thomas Schwinge <thomas@codesourcery.com>
3251
3252 * omp-expand.c (expand_oacc_for): More explicit checking of which
3253 OMP constructs we're expecting.
3254
3255 2020-11-24 Thomas Schwinge <thomas@codesourcery.com>
3256
3257 * doc/install.texi (Prerequisites) <Tcl>: Add comment.
3258
3259 2020-11-24 Jakub Jelinek <jakub@redhat.com>
3260
3261 PR tree-optimization/96929
3262 * fold-const.c (wide_int_binop) <case LSHIFT_EXPR, case RSHIFT_EXPR>:
3263 Return false on negative second argument rather than trying to handle
3264 it as shift in the other direction.
3265 * tree-ssa-ccp.c (bit_value_binop) <case LSHIFT_EXPR,
3266 case RSHIFT_EXPR>: Punt on negative shift count rather than trying
3267 to handle it as shift in the other direction.
3268 * match.pd (-1 >> x to -1): Remove tree_expr_nonnegative_p check.
3269
3270 2020-11-24 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3271
3272 PR tree-optimization/97849
3273 * tree-if-conv.c (tree_if_conversion): Move ssa_name
3274 replacement code from ifcvt_local_dce to this function
3275 before calling do_rpo_vn.
3276
3277 2020-11-24 Martin Sebor <msebor@redhat.com>
3278
3279 * tree-cfg.c (dump_function_to_file): Print type attributes
3280 and return type.
3281
3282 2020-11-23 Martin Jambor <mjambor@suse.cz>
3283
3284 * ipa-prop.h (ipa_pass_through_data): Expand comment describing
3285 operation.
3286 * ipa-prop.c (analyze_agg_content_value): Detect new special case and
3287 encode it as ASSERT_EXPR.
3288 * ipa-cp.c (values_equal_for_ipcp_p): Move before
3289 ipa_get_jf_arith_result.
3290 (ipa_get_jf_arith_result): Special case ASSERT_EXPR.
3291
3292 2020-11-23 Jeff Law <law@redhat.com>
3293
3294 * config/h8300/h8300.c (h8300_rtx_costs): Handle the various
3295 comparison rtx codes too.
3296
3297 2020-11-23 Jan Hubicka <jh@suse.cz>
3298
3299 * ipa-prop.c (build_agg_jump_func_from_list,
3300 ipa_read_jump_function): Reserve agg.items precisely.
3301 * ipa-prop.h (ipa_node_params::~ipa_node_params): Release descriptors
3302 (ipa_edge_args::~ipa_edge_args): Release agg.items.
3303
3304 2020-11-23 Jan Hubicka <jh@suse.cz>
3305
3306 * lto-streamer-in.c (input_cfg): Do not init ssa operands.
3307 (input_function): Do not init tree_ssa and set in_ssa_p.
3308 (input_ssa_names): Do it here.
3309 * tree-ssa.c (init_tree_ssa): Add additional SIZE parameter, default
3310 to 0
3311 * tree-ssanames.c (init_ssanames): Do not round size up to 50, allocate
3312 precisely.
3313 * tree-ssa.h (init_tree_ssa): Update prototype.
3314
3315 2020-11-23 Nathan Sidwell <nathan@acm.org>
3316
3317 * diagnostic.c (diagnostic_report_current_module): Adjust for C++
3318 module importation.
3319
3320 2020-11-23 Jozef Lawrynowicz <jozef.l@mittosystems.com>
3321
3322 * config/msp430/msp430.c (msp430_section_attr): Don't warn for "lower"
3323 attribute used with "noinit" or "persistent" attributes.
3324 (msp430_persist_attr): Remove.
3325 (attr_lower_exclusions): Remove ATTR_PERSIST exclusion.
3326 (attr_upper_exclusions): Likewise.
3327 (attr_either_exclusions): Likewise.
3328 (attr_persist_exclusions): Remove.
3329 (msp430_attribute_table): Remove ATTR_PERSIST handling.
3330 (msp430_handle_generic_attribute): Remove ATTR_PERSIST section conflict
3331 handling.
3332 (TARGET_ASM_INIT_SECTIONS): Remove.
3333 (msp430_init_sections): Remove.
3334 (msp430_select_section): Use default_elf_select_section for decls with
3335 the "persistent" attribute.
3336 (msp430_section_type_flags): Remove ".persistent" section handling.
3337 * doc/extend.texi (MSP430 Variable Attributes): Remove "noinit" and
3338 "persistent" documentation.
3339
3340 2020-11-23 Richard Biener <rguenther@suse.de>
3341
3342 * tree-vect-slp.c (maybe_push_to_hybrid_worklist): Skip
3343 debug stmts.
3344
3345 2020-11-23 Jozef Lawrynowicz <jozef.l@mittosystems.com>
3346
3347 * doc/extend.texi (Common Variable Attributes): Document the
3348 "persistent" variable attribute.
3349 * doc/sourcebuild.texi (Effective-Target Keywords): Document
3350 the "persistent" effective target keyword.
3351 * tree.h (DECL_PERSISTENT_P): Define.
3352 * varasm.c (bss_initializer_p): Return false for a
3353 DECL_PERSISTENT_P decl initialized to zero.
3354 (default_section_type_flags): Handle the ".persistent" section.
3355 (default_elf_select_section): Likewise.
3356 (default_unique_section): Likewise.
3357
3358 2020-11-23 Jozef Lawrynowicz <jozef.l@mittosystems.com>
3359
3360 * tree.h (DECL_NOINIT_P): Define.
3361 * varasm.c (DECL_NOINIT_P): Check DECL_NOINIT_P before using
3362 unnamed bss/lcomm sections for bss_initializer variables.
3363 (default_elf_select_section): Use DECL_NOINIT_P instead of
3364 looking up attribute for .noinit section selection.
3365 (default_unique_section): Check DECL_NOINIT_P for .noinit
3366 section selection.
3367
3368 2020-11-23 Matthew Malcomson <matthew.malcomson@arm.com>
3369
3370 * doc/install.texi: Document bootstrap-asan option.
3371
3372 2020-11-22 Uroš Bizjak <ubizjak@gmail.com>
3373
3374 PR target/97873
3375 * config/i386/i386.md (abs<mode>2): Use SWI48DWI mode iterator.
3376 (*abs<dwi>2_doubleword): Use DWIH mode iterator.
3377 (<maxmin:code><mode>3): Use SWI48DWI mode iterator.
3378 (*<maxmin:code><dwi>3_doubleword): Use DWIH mode iterator.
3379
3380 2020-11-22 Austin Law <austinklaw@gmail.com>
3381
3382 * config/h8300/addsub.md: Turn existing patterns into
3383 define_insn_and_split style patterns where the splitter
3384 adds a clobber of the condition code register. Drop "cc"
3385 attribute. Add _clobber_flags patterns to match output of
3386 the splitters.
3387 (add<mod>3_incdec): Remove pattern
3388 (adds/subs splitter): Only run before reload.
3389 * config/h8300/bitfield.md: Turn existing patterns into
3390 define_insn_and_split style patterns where the splitter
3391 adds a clobber of the condition code register. Drop "cc"
3392 attribute. Add _clobber_flags patterns to match output
3393 of the splitters.
3394 (cstoreqi4, cstorehi4, cstoresi4): Comment out
3395 (*bstzhireg, *cmpstz, *bstz, *bistz, *cmpcondset): Likewise
3396 (*condbset, *cmpcondbclr, *condbclr): Likewise.
3397 (*cmpcondbsetreg, *condbsetreg, *cmpcondbclrreg): Likewise.
3398 (*condbclrreg): Likewise.
3399 * config/h8300/combiner.md: Turn existing patterns into
3400 define_insn_and_split style patterns where the splitter
3401 adds a clobber of the condition code register. Drop "cc"
3402 attribute. Add _clobber_flags patterns to match output of
3403 the splitters. Add appropriate CC register clobbers to
3404 existing splitters.
3405 (*addsi3_and_r_1): Disable for now.
3406 (*addsi3_and_not_r_1, bit-test branches): Likewise.
3407 * config/h8300/divmod.md: Turn existing patterns into
3408 define_insn_and_split style patterns where the splitter
3409 adds a clobber of the condition code register. Drop "cc"
3410 attribute. Add _clobber_flags patterns to match output of
3411 the splitters.
3412 * config/h8300/extensions.md: Turn existing patterns into
3413 define_insn_and_split style patterns where the splitter
3414 adds a clobber of the condition code register. Drop "cc"
3415 attribute. Add _clobber_flags patterns to match output of
3416 the splitters.
3417 * config/h8300/genmova.sh: Drop "cc" attribute from patterns.
3418 * config/h8300/mova.md: Drop "cc" attribute from patterns.
3419 * config/h8300/h8300-modes.def: Add CCZN and CCZNV modes.
3420 * config/h8300/h8300-protos.h (output_plussi): Update prototype.
3421 (compute_plussi_length): Likewise.
3422 (h8300_select_cc_mode): Add prototype.
3423 (compute_a_shift_cc): Remove prototype
3424 (cmpute_logical_op_cc): Likewise.
3425 * config/h8300/h8300.c (names_big): Add "cc" register.
3426 (names_extended, names_upper_extended): Likewise.
3427 (h8300_emit_stack_adjustment): Be more selective about setting
3428 RTX_FRAME_RELATED_P.
3429 (h8300_print_operand): Handle CCZN mode
3430 (h8300_select_cc_mode): New function.
3431 (notice_update_cc): if-0 out. Only kept for reference purposes.
3432 (h8300_expand_store): Likewise.
3433 (h8300_binary_length): Handle new insn forms.
3434 (output_plussi): Add argument for NEED_FLAGS and handle that case.
3435 (compute_plussi_length): Likewise.
3436 (compute_logical_op_cc): Return integer.
3437 (TARGET_FLAGS_REGNUM): Define.
3438 * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Bump for cc register.
3439 (FIXED_REGISTERS, CALL_USED_REGISTERS): Handle cc register.
3440 (REG_ALLOC_ORDER, REGISTER_NAMES): Likewise.
3441 (SELECT_CC_MODE): Define.
3442 * config/h8300/h8300.md: Add CC_REG.
3443 Do not include peepholes.md for now.
3444 * config/h8300/jumpcall.md (cbranchqi4): Consolidate into
3445 cbranch<mode>4.
3446 (cbranchhi4, cbranchsi4): Likewise.
3447 (cbranch<mode>4): New expander.
3448 (branch): New define_insn_and_split for use before reload.
3449 (branch_1, branch_1_false): New patterns to match splitter output.
3450 Remove code to manage cc_status.flags.
3451 * config/h8300/logical.md: Turn existing patterns into
3452 define_insn_and_split style patterns where the splitter
3453 adds a clobber of the condition code register. Drop "cc"
3454 attribute. Add _clobber_flags patterns to match output of
3455 the splitters. Move various peepholes into this file.
3456 * config/h8300/movepush.md: Turn existing patterns into
3457 define_insn_and_split style patterns where the splitter
3458 adds a clobber of the condition code register. Drop "cc"
3459 attribute. Add _clobber_flags patterns to match output of
3460 the splitters.
3461 * config/h8300/multiply.md: Turn existing patterns into
3462 define_insn_and_split style patterns where the splitter
3463 adds a clobber of the condition code register. Drop "cc"
3464 attribute. Add _clobber_flags patterns to match output of
3465 the splitters.
3466 * config/h8300/other.md: Turn existing patterns into
3467 define_insn_and_split style patterns where the splitter
3468 adds a clobber of the condition code register. Drop "cc"
3469 attribute. Add _clobber_flags patterns to match output of
3470 the splitters.
3471 * config/h8300/peepholes.md: Remove peepholes that were moved
3472 elsewhere.
3473 * config/h8300/predicates.md (simple_memory_operand): New.
3474 * config/h8300/proepi.md: Drop "cc" attribute setting.
3475 * config/h8300/shiftrotate.md: Turn existing patterns into
3476 define_insn_and_split style patterns where the splitter
3477 adds a clobber of the condition code register. Drop "cc"
3478 attribute. Add _clobber_flags patterns to match output of
3479 the splitters.
3480 * config/h8300/testcompare.md: Turn existing patterns into
3481 define_insn_and_split style patterns where the splitter
3482 adds a clobber of the condition code register. Drop "cc"
3483 attribute. Add _clobber_flags patterns to match output of
3484 the splitters. Disable various patterns for now.
3485 Move some peepholes that were previously in peepholes.md here.
3486 * config/h8300/save.md: New file.
3487
3488 2020-11-22 Jakub Jelinek <jakub@redhat.com>
3489
3490 PR tree-optimization/95853
3491 * tree-ssa-math-opts.c (uaddsub_overflow_check_p): Add maxval
3492 argument, if non-NULL, instead look for r > maxval or r <= maxval
3493 comparisons.
3494 (match_uaddsub_overflow): Pattern recognize even other forms of
3495 __builtin_add_overflow, in particular when addition is performed
3496 in a wider type and result compared to maximum of the narrower
3497 type.
3498
3499 2020-11-22 Jeff Law <law@redhat.com>
3500
3501 * config/h8300/jumpcall.md (branch_true, branch_false): Revert
3502 recent change. Ensure operand[0] is always the target label.
3503
3504 2020-11-22 Iain Sandoe <iain@sandoe.co.uk>
3505
3506 * config/darwin-c.c (struct f_align_stack): Rename
3507 to type from align_stack to f_align_stack.
3508 (push_field_alignment): Likewise.
3509 (pop_field_alignment): Likewise.
3510
3511 2020-11-21 Marek Polacek <polacek@redhat.com>
3512
3513 PR c++/94695
3514 * doc/invoke.texi: Update the -Wrange-loop-construct description.
3515
3516 2020-11-21 Jan Hubicka <jh@suse.cz>
3517
3518 * tree-ssa-alias.c (ao_compare::compare_ao_refs,
3519 ao_compare::hash_ao_ref): Use OEP_MATCH_SIDE_EFFECTS.
3520
3521 2020-11-21 Jan Hubicka <jh@suse.cz>
3522
3523 * ipa-icf.c (sem_function::equals_wpa): Do not compare ODR type with
3524 -fno-devirtualize.
3525 (sem_item_optimizer::update_hash_by_addr_refs): Hash anonymous ODR
3526 types by TYPE_UID of their main variant.
3527
3528 2020-11-21 Aaron Sawdey <acsawdey@linux.ibm.com>
3529
3530 * config/rs6000/rs6000.c (rs6000_option_override_internal):
3531 Enable vector pair memcpy/memmove expansion.
3532
3533 2020-11-21 Aaron Sawdey <acsawdey@linux.ibm.com>
3534
3535 * config/rs6000/mma.md (unspec): Add assemble/extract UNSPECs.
3536 (movoi): Change to movoo.
3537 (*movpoi): Change to *movoo.
3538 (movxi): Change to movxo.
3539 (*movpxi): Change to *movxo.
3540 (mma_assemble_pair): Change to OO mode.
3541 (*mma_assemble_pair): New define_insn_and_split.
3542 (mma_disassemble_pair): New define_expand.
3543 (*mma_disassemble_pair): New define_insn_and_split.
3544 (mma_assemble_acc): Change to XO mode.
3545 (*mma_assemble_acc): Change to XO mode.
3546 (mma_disassemble_acc): New define_expand.
3547 (*mma_disassemble_acc): New define_insn_and_split.
3548 (mma_<acc>): Change to XO mode.
3549 (mma_<vv>): Change to XO mode.
3550 (mma_<avv>): Change to XO mode.
3551 (mma_<pv>): Change to OO mode.
3552 (mma_<apv>): Change to XO/OO mode.
3553 (mma_<vvi4i4i8>): Change to XO mode.
3554 (mma_<avvi4i4i8>): Change to XO mode.
3555 (mma_<vvi4i4i2>): Change to XO mode.
3556 (mma_<avvi4i4i2>): Change to XO mode.
3557 (mma_<vvi4i4>): Change to XO mode.
3558 (mma_<avvi4i4>): Change to XO mode.
3559 (mma_<pvi4i2>): Change to XO/OO mode.
3560 (mma_<apvi4i2>): Change to XO/OO mode.
3561 (mma_<vvi4i4i4>): Change to XO mode.
3562 (mma_<avvi4i4i4>): Change to XO mode.
3563 * config/rs6000/predicates.md (input_operand): Allow opaque.
3564 (mma_disassemble_output_operand): New predicate.
3565 * config/rs6000/rs6000-builtin.def:
3566 Changes to disassemble builtins.
3567 * config/rs6000/rs6000-call.c (rs6000_return_in_memory):
3568 Disallow __vector_pair/__vector_quad as return types.
3569 (rs6000_promote_function_mode): Remove function return type
3570 check because we can't test it here any more.
3571 (rs6000_function_arg): Do not allow __vector_pair/__vector_quad
3572 as as function arguments.
3573 (rs6000_gimple_fold_mma_builtin):
3574 Handle mma_disassemble_* builtins.
3575 (rs6000_init_builtins): Create types for XO/OO modes.
3576 * config/rs6000/rs6000-modes.def: DElete OI, XI,
3577 POI, and PXI modes, and create XO and OO modes.
3578 * config/rs6000/rs6000-string.c (expand_block_move):
3579 Update to OO mode.
3580 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_uncached):
3581 Update for XO/OO modes.
3582 (rs6000_rtx_costs): Make UNSPEC_MMA_XXSETACCZ cost 0.
3583 (rs6000_modes_tieable_p): Update for XO/OO modes.
3584 (rs6000_debug_reg_global): Update for XO/OO modes.
3585 (rs6000_setup_reg_addr_masks): Update for XO/OO modes.
3586 (rs6000_init_hard_regno_mode_ok): Update for XO/OO modes.
3587 (reg_offset_addressing_ok_p): Update for XO/OO modes.
3588 (rs6000_emit_move): Update for XO/OO modes.
3589 (rs6000_preferred_reload_class): Update for XO/OO modes.
3590 (rs6000_split_multireg_move): Update for XO/OO modes.
3591 (rs6000_mangle_type): Update for opaque types.
3592 (rs6000_invalid_conversion): Update for XO/OO modes.
3593 * config/rs6000/rs6000.h (VECTOR_ALIGNMENT_P):
3594 Update for XO/OO modes.
3595 * config/rs6000/rs6000.md (RELOAD): Update for XO/OO modes.
3596
3597 2020-11-21 Aaron Sawdey <acsawdey@linux.ibm.com>
3598
3599 * typeclass.h: Add opaque_type_class.
3600 * builtins.c (type_to_class): Identify opaque type class.
3601 * dwarf2out.c (is_base_type): Handle opaque types.
3602 (gen_type_die_with_usage): Handle opaque types.
3603 * expr.c (count_type_elements): Opaque types should
3604 never have initializers.
3605 * ipa-devirt.c (odr_types_equivalent_p): No type-specific handling
3606 for opaque types is needed as it eventually checks the underlying
3607 mode which is what is important.
3608 * tree-streamer.c (record_common_node): Handle opaque types.
3609 * tree.c (type_contains_placeholder_1): Handle opaque types.
3610 (type_cache_hasher::equal): No additional comparison needed for
3611 opaque types.
3612
3613 2020-11-20 Michael Meissner <meissner@linux.ibm.com>
3614
3615 * config/rs6000/rs6000-call.c (rs6000_expand_builtin): Add missing
3616 XSCMP* cases for IEEE 128-bit long double.
3617
3618 2020-11-20 Jason Merrill <jason@redhat.com>
3619
3620 PR c++/97918
3621 * dwarf2out.c (dwarf2out_early_finish): flush_limbo_die_list
3622 after gen_scheduled_generic_parms_dies.
3623
3624 2020-11-20 Martin Sebor <msebor@redhat.com>
3625
3626 PR middle-end/97879
3627 * tree-core.h (enum attribute_flags): Add ATTR_FLAG_INTERNAL.
3628
3629 2020-11-20 Jan Hubicka <jh@suse.cz>
3630
3631 * ipa-icf-gimple.c (func_checker::hash_operand): Improve hashing of
3632 decls.
3633
3634 2020-11-20 Jan Hubicka <jh@suse.cz>
3635
3636 * ipa-icf-gimple.c (func_checker::compare_decl): Do not compare types
3637 of local variables.
3638
3639 2020-11-20 Nathan Sidwell <nathan@acm.org>
3640
3641 * doc/invoke.texi: Replace a couple of @code with @command
3642
3643 2020-11-20 Tamar Christina <tamar.christina@arm.com>
3644
3645 * tree-vect-slp.c (vectorizable_slp_permutation): Update types on nodes
3646 when needed.
3647
3648 2020-11-20 Richard Biener <rguenther@suse.de>
3649
3650 * tree-vect-slp.c (maybe_push_to_hybrid_worklist): New function.
3651 (vect_detect_hybrid_slp): Use it. Perform a backward walk
3652 over the IL.
3653
3654 2020-11-20 Richard Biener <rguenther@suse.de>
3655
3656 * tree-vect-slp.c (vect_print_slp_tree): Also dump
3657 SLP_TREE_REPRESENTATIVE.
3658
3659 2020-11-20 Jakub Jelinek <jakub@redhat.com>
3660
3661 PR libstdc++/88101
3662 * builtins.def (BUILT_IN_CLEAR_PADDING): New built-in function.
3663 * gimplify.c (gimplify_call_expr): Rewrite single argument
3664 BUILT_IN_CLEAR_PADDING into two-argument variant.
3665 * gimple-fold.c (clear_padding_unit, clear_padding_buf_size): New
3666 const variables.
3667 (struct clear_padding_struct): New type.
3668 (clear_padding_flush, clear_padding_add_padding,
3669 clear_padding_emit_loop, clear_padding_type,
3670 clear_padding_union, clear_padding_real_needs_padding_p,
3671 clear_padding_type_may_have_padding_p,
3672 gimple_fold_builtin_clear_padding): New functions.
3673 (gimple_fold_builtin): Handle BUILT_IN_CLEAR_PADDING.
3674 * doc/extend.texi (__builtin_clear_padding): Document.
3675
3676 2020-11-20 Jakub Jelinek <jakub@redhat.com>
3677
3678 PR target/97528
3679 * config/arm/arm.c (neon_vector_mem_operand): For POST_MODIFY, require
3680 first POST_MODIFY operand is a REG and is equal to the first operand
3681 of PLUS.
3682
3683 2020-11-20 Eric Botcazou <ebotcazou@adacore.com>
3684
3685 * gimple-ssa-store-merging.c (struct merged_store_group): Add
3686 new 'consecutive' field.
3687 (merged_store_group): Set it to true.
3688 (do_merge): Set it to false if the store is not consecutive and
3689 set string_concatenation to false in this case.
3690 (merge_into): Call do_merge on entry.
3691 (merge_overlapping): Likewise.
3692
3693 2020-11-20 Jan Hubicka <jh@suse.cz>
3694
3695 * ipa-icf-gimple.c (func_checker::operand_equal_p): Fix comment.
3696
3697 2020-11-20 Jan Hubicka <jh@suse.cz>
3698
3699 * ipa-icf-gimple.c (func_checker::hash_operand): Hash gimple clobber.
3700 (func_checker::operand_equal_p): Special case gimple clobber.
3701
3702 2020-11-20 Uroš Bizjak <ubizjak@gmail.com>
3703
3704 PR target/97873
3705 * config/i386/i386.md (*neg<mode>2_2): Rename from
3706 "*neg<mode>2_cmpz". Use CCGOCmode instead of CCZmode.
3707 (*negsi2_zext): Rename from *negsi2_cmpz_zext.
3708 Use CCGOCmode instead of CCZmode.
3709 (*neg<mode>_ccc_1): New insn pattern.
3710 (*neg<dwi>2_doubleword): Use *neg<mode>_ccc_1.
3711 (abs<mode>2): Add FLAGS_REG clobber.
3712 Use TARGET_CMOVE insn predicate.
3713 (*abs<mode>2_1): New insn_and_split pattern.
3714 (*absdi2_doubleword): Ditto.
3715 (<maxmin:code><mode>3): Use SWI48x mode iterator.
3716 (*<maxmin:code><mode>3): Use SWI48 mode iterator.
3717 * config/i386/i386-features.c
3718 (general_scalar_chain::compute_convert_gain): Handle ABS code.
3719 (general_scalar_chain::convert_insn): Ditto.
3720 (general_scalar_to_vector_candidate_p): Ditto.
3721
3722 2020-11-20 Jakub Jelinek <jakub@redhat.com>
3723
3724 PR other/97911
3725 * configure.ac: In SERIAL_LIST use lang words without .serial
3726 suffix. Change $lang.prev from a target to variable and instead
3727 of depending on *.serial expand to the *.serial variable if
3728 the word is in the SERIAL_LIST at all, otherwise to nothing.
3729 * configure: Regenerated.
3730
3731 2020-11-20 Kewen Lin <linkw@linux.ibm.com>
3732
3733 * config/rs6000/rs6000.md (p8_mtvsrd_df): Fix insn type.
3734
3735 2020-11-20 Martin Uecker <muecker@gwdg.de>
3736
3737 * gimplify.c (gimplify_modify_expr_rhs): Optimizie
3738 NOP_EXPRs that contain compound literals.
3739
3740 2020-11-19 Jakub Jelinek <jakub@redhat.com>
3741
3742 PR tree-optimization/91029
3743 * range-op.cc (operator_trunc_mod::op1_range): Don't require signed
3744 types, nor require that op2 >= 0. Implement (a % b) >= x && x > 0
3745 implies a >= x and (a % b) <= x && x < 0 implies a <= x.
3746 (operator_trunc_mod::op2_range): New method.
3747
3748 2020-11-19 Andrew MacLeod <amacleod@redhat.com>
3749
3750 PR tree-optimization/93781
3751 * range-op.cc (get_shift_range): Rename from
3752 undefined_shift_range_check and now return valid shift ranges.
3753 (operator_lshift::fold_range): Use result from get_shift_range.
3754 (operator_rshift::fold_range): Ditto.
3755
3756 2020-11-19 Jan Hubicka <jh@suse.cz>
3757
3758 * fold-const.c (operand_compare::operand_equal_p): Fix thinko in
3759 COMPONENT_REF handling and guard types_same_for_odr by
3760 virtual_method_call_p.
3761 (operand_compare::hash_operand): Likewise.
3762
3763 2020-11-19 Jakub Jelinek <jakub@redhat.com>
3764
3765 PR c/97860
3766 * tree.c (array_type_nelts): For complete arrays with zero min
3767 and NULL max and zero size return -1.
3768
3769 2020-11-19 Nathan Sidwell <nathan@acm.org>
3770
3771 * configure.ac: Add tests for fstatat, sighandler_t, O_CLOEXEC,
3772 unix-domain and ipv6 sockets.
3773 * config.in: Rebuilt.
3774 * configure: Rebuilt.
3775
3776 2020-11-19 Dimitar Dimitrov <dimitar@dinux.eu>
3777
3778 * config/pru/alu-zext.md: Add lmbd patterns for zero_extend
3779 variants.
3780 * config/pru/pru.c (enum pru_builtin): Add HALT and LMBD.
3781 (pru_init_builtins): Ditto.
3782 (pru_builtin_decl): Ditto.
3783 (pru_expand_builtin): Ditto.
3784 * config/pru/pru.h (CLZ_DEFINED_VALUE_AT_ZERO): Define PRU
3785 value for CLZ with zero value parameter.
3786 * config/pru/pru.md: Add halt, lmbd and clz patterns.
3787 * doc/extend.texi: Document PRU builtins.
3788
3789 2020-11-19 Richard Sandiford <richard.sandiford@arm.com>
3790
3791 * doc/invoke.texi (-fvect-cost-model): Add a very-cheap model.
3792 * common.opt (fvect-cost-model=): Add very-cheap as a possible option.
3793 (fsimd-cost-model=): Likewise.
3794 (vect_cost_model): Add very-cheap.
3795 * flag-types.h (vect_cost_model): Add VECT_COST_MODEL_VERY_CHEAP.
3796 Put the values in order of increasing aggressiveness.
3797 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Use
3798 range checks when comparing against VECT_COST_MODEL_CHEAP.
3799 (vect_prune_runtime_alias_test_list): Do not allow any alias
3800 checks for the very-cheap cost model.
3801 * tree-vect-loop.c (vect_analyze_loop_costing): Do not allow
3802 any peeling for the very-cheap cost model. Also require one
3803 iteration of the vector loop to pay for itself.
3804
3805 2020-11-19 Wilco Dijkstra <wdijkstr@arm.com>
3806
3807 * config/aarch64/aarch64.c (neoversen1_tunings): Use new
3808 cortexa76_extra_costs.
3809 (neoversev1_tunings): Likewise.
3810 (neoversen2_tunines): Likewise.
3811 * config/arm/aarch-cost-tables.h (cortexa76_extra_costs):
3812 add new costs.
3813
3814 2020-11-19 Wilco Dijkstra <wdijkstr@arm.com>
3815
3816 * config/aarch64/aarch64.c (aarch64_expand_cpymem): Cleanup code and
3817 comments, tweak expansion decisions and improve tail expansion.
3818
3819 2020-11-19 Richard Biener <rguenther@suse.de>
3820
3821 * fold-const.c (operand_compare::hash_operand): Fix typo.
3822
3823 2020-11-19 Richard Biener <rguenther@suse.de>
3824
3825 * tree-ssa-reassoc.c (get_rank): Refactor to consistently
3826 use the cache and dump ranks assigned.
3827
3828 2020-11-19 Jan Hubicka <jh@suse.cz>
3829
3830 * fold-const.c (operand_compare::operand_equal_p): More OBJ_TYPE_REF
3831 matching to correct place; drop OEP_ADDRESS_OF for TOKEN, OBJECT and
3832 class.
3833 (operand_compare::hash_operand): Hash ODR type for OBJ_TYPE_REF.
3834
3835 2020-11-19 Joel Hutton <joel.hutton@arm.com>
3836
3837 * config/aarch64/aarch64-simd.md: Add vec_widen_lshift_hi/lo<mode>
3838 patterns.
3839 * tree-vect-stmts.c (vectorizable_conversion): Fix for widen_lshift
3840 case.
3841
3842 2020-11-19 Joel Hutton <joel.hutton@arm.com>
3843
3844 * doc/generic.texi: Document new widen_plus/minus_lo/hi tree codes.
3845 * doc/md.texi: Document new widenening add/subtract hi/lo optabs.
3846 * expr.c (expand_expr_real_2): Add widen_add, widen_subtract cases.
3847 * optabs-tree.c (optab_for_tree_code): Add case for widening optabs.
3848 * optabs.def (OPTAB_D): Define vectorized widen add, subtracts.
3849 * tree-cfg.c (verify_gimple_assign_binary): Add case for widening adds,
3850 subtracts.
3851 * tree-inline.c (estimate_operator_cost): Add case for widening adds,
3852 subtracts.
3853 * tree-vect-generic.c (expand_vector_operations_1): Add case for
3854 widening adds, subtracts
3855 * tree-vect-patterns.c (vect_recog_widen_add_pattern): New recog
3856 pattern.
3857 (vect_recog_widen_sub_pattern): New recog pattern.
3858 (vect_recog_average_pattern): Update widened add code.
3859 (vect_recog_average_pattern): Update widened add code.
3860 * tree-vect-stmts.c (vectorizable_conversion): Add case for widened add,
3861 subtract.
3862 (supportable_widening_operation): Add case for widened add, subtract.
3863 * tree.def
3864 (WIDEN_PLUS_EXPR): New tree code.
3865 (WIDEN_MINUS_EXPR): New tree code.
3866 (VEC_WIDEN_ADD_HI_EXPR): New tree code.
3867 (VEC_WIDEN_PLUS_LO_EXPR): New tree code.
3868 (VEC_WIDEN_MINUS_HI_EXPR): New tree code.
3869 (VEC_WIDEN_MINUS_LO_EXPR): New tree code.
3870
3871 2020-11-19 Joel Hutton <joel.hutton@arm.com>
3872
3873 * config/aarch64/aarch64-simd.md: New patterns
3874 vec_widen_saddl_lo/hi_<mode>.
3875
3876 2020-11-19 Richard Biener <rguenther@suse.de>
3877
3878 PR tree-optimization/97901
3879 * tree-ssa-propagate.c (clean_up_loop_closed_phi): Compute
3880 dominators and use replace_uses_by.
3881
3882 2020-11-19 Eric Botcazou <ebotcazou@adacore.com>
3883
3884 * dwarf2out.h (struct fixed_point_type_info) <scale_factor>: Turn
3885 numerator and denominator into a tree.
3886 * dwarf2out.c (base_type_die): In the case of a fixed-point type
3887 with arbitrary scale factor, call add_scalar_info on numerator and
3888 denominator to emit the appropriate attributes.
3889
3890 2020-11-19 Richard Biener <rguenther@suse.de>
3891
3892 PR tree-optimization/97897
3893 * tree-complex.c (complex_propagate::visit_stmt): Make sure
3894 abnormally used SSA names are VARYING.
3895 (complex_propagate::visit_phi): Likewise.
3896 * tree-ssa.c (verify_phi_args): Verify PHI arguments on abnormal
3897 edges are SSA names.
3898
3899 2020-11-19 Uroš Bizjak <ubizjak@gmail.com>
3900
3901 * config/i386/i386.md (*<absneg:code><mode>2_i387_1):
3902 Disable for TARGET_SSE_MATH modes.
3903
3904 2020-11-19 Jeff Law <law@redhat.com>
3905
3906 * config/h8300/constraints.md (R constraint): Add argument to call
3907 to h8300_shift_needs_scratch_p.
3908 (S and T constraints): Similary.
3909 * config/h8300/h8300-protos.h: Update h8300_shift_needs_scratch_p
3910 prototype.
3911 * config/h8300/h8300.c (expand_a_shift): Emit a different pattern
3912 if the shift does not require a scratch register.
3913 (h8300_shift_needs_scratch_p): Refine to be more accurate.
3914 * config/h8300/shiftrotate.md (shiftqi_noscratch): New pattern.
3915 (shifthi_noscratch, shiftsi_noscratch): Similarly.
3916
3917 2020-11-18 Roger Sayle <roger@nextmovesoftware.com>
3918
3919 PR middle-end/85811
3920 * fold-const.c (tree_expr_finite_p): New function to test whether
3921 a tree expression must be finite, i.e. not a FP NaN or infinity.
3922 (tree_expr_infinite_p): New function to test whether a tree
3923 expression must be infinite, i.e. a FP infinity.
3924 (tree_expr_maybe_infinite_p): New function to test whether a tree
3925 expression may be infinite, i.e. a FP infinity.
3926 (tree_expr_signaling_nan_p): New function to test whether a tree
3927 expression must evaluate to a signaling NaN (sNaN).
3928 (tree_expr_maybe_signaling_nan_p): New function to test whether a
3929 tree expression may be a signaling NaN (sNaN).
3930 (tree_expr_nan_p): New function to test whether a tree expression
3931 must evaluate to a (quiet or signaling) NaN.
3932 (tree_expr_maybe_nan_p): New function to test whether a tree
3933 expression me be a (quiet or signaling) NaN.
3934 (tree_binary_nonnegative_warnv_p) [MAX_EXPR]: In the presence
3935 of NaNs, MAX_EXPR is only guaranteed to be non-negative, if both
3936 operands are non-negative.
3937 (tree_call_nonnegative_warnv_p) [CASE_CFN_FMAX,CASE_CFN_FMAX_FN]:
3938 In the presence of signaling NaNs, fmax is only guaranteed to be
3939 non-negative if both operands are negative. In the presence of
3940 quiet NaNs, fmax is non-negative if either operand is non-negative
3941 and not a qNaN, or both operands are non-negative.
3942 * fold-const.h (tree_expr_finite_p, tree_expr_infinite_p,
3943 tree_expr_maybe_infinite_p, tree_expr_signaling_nan_p,
3944 tree_expr_maybe_signaling_nan_p, tree_expr_nan_p,
3945 tree_expr_maybe_nan_p): Prototype new functions here.
3946 * builtins.c (fold_builtin_classify) [BUILT_IN_ISINF]: Fold to
3947 a constant if argument is known to be (or not to be) an Infinity.
3948 [BUILT_IN_ISFINITE]: Fold to a constant if argument is known to
3949 be (or not to be) finite.
3950 [BUILT_IN_ISNAN]: Fold to a constant if argument is known to be
3951 (or not to be) a NaN.
3952 (fold_builtin_fpclassify): Check tree_expr_maybe_infinite_p and
3953 tree_expr_maybe_nan_p instead of HONOR_INFINITIES and HONOR_NANS
3954 respectively.
3955 (fold_builtin_unordered_cmp): Fold UNORDERED_EXPR to a constant
3956 when its arguments are known to be (or not be) NaNs. Check
3957 tree_expr_maybe_nan_p instead of HONOR_NANS when choosing between
3958 unordered and regular forms of comparison operators.
3959 * match.pd (ordered(x,y)->true/false): Constant fold ORDERED_EXPR
3960 if its operands are known to be (or not to be) NaNs.
3961 (unordered(x,y)->true/false): Constant fold UNORDERED_EXPR if its
3962 operands are known to be (or not to be) NaNs.
3963 (sqrt(x)*sqrt(x)->x): Check tree_expr_maybe_signaling_nan_p instead
3964 of HONOR_SNANS.
3965
3966 2020-11-18 Jakub Jelinek <jakub@redhat.com>
3967
3968 PR tree-optimization/91029
3969 PR tree-optimization/97888
3970 * range-op.cc (operator_trunc_mod::op1_range): Only set op1
3971 range to >= 0 if lhs is > 0, rather than >= 0. Fix up comments.
3972
3973 2020-11-18 Jakub Jelinek <jakub@redhat.com>
3974
3975 * opts.h (struct cl_var): New type.
3976 (cl_vars): Declare.
3977 * optc-gen.awk: Generate cl_vars array.
3978
3979 2020-11-18 Eugene Rozenfeld <Eugene.Rozenfeld@microsoft.com>
3980
3981 PR tree-optimization/96671
3982 * match.pd (three xor patterns): New patterns.
3983
3984 2020-11-18 Jakub Jelinek <jakub@redhat.com>
3985
3986 * optc-save-gen.awk: Initialize var_opt_init. In
3987 cl_optimization_stream_out for params with default values larger than
3988 10, xor the default value with the actual parameter value. In
3989 cl_optimization_stream_in repeat the above xor.
3990
3991 2020-11-18 Jakub Jelinek <jakub@redhat.com>
3992
3993 * configure.ac: Add $lang.prev rules, INDEX.$lang and SERIAL_LIST and
3994 SERIAL_COUNT variables to Make-hooks.
3995 (--enable-link-serialization): New configure option.
3996 * Makefile.in (DO_LINK_SERIALIZATION, LINK_PROGRESS): New variables.
3997 * doc/install.texi (--enable-link-serialization): Document.
3998 * configure: Regenerated.
3999
4000 2020-11-18 Vladimir Makarov <vmakarov@redhat.com>
4001
4002 PR target/97870
4003 * lra-constraints.c (curr_insn_transform): Do not delete asm goto
4004 with wrong constraints. Nullify it saving CFG.
4005
4006 2020-11-18 Jozef Lawrynowicz <jozef.l@mittosystems.com>
4007
4008 * config/msp430/msp430.md (mulhi3): New.
4009 (mulsi3): New.
4010 (mulsidi3): Rename to *mulsidi3_inline.
4011 (umulsidi3): Rename to *umulsidi3_inline.
4012 (mulsidi3): New define_expand.
4013 (umulsidi3): New define_expand.
4014
4015 2020-11-18 Richard Biener <rguenther@suse.de>
4016
4017 PR tree-optimization/97886
4018 * tree-vect-loop.c (vectorizable_lc_phi): Properly assign
4019 vector types to invariants for SLP.
4020
4021 2020-11-18 Iain Buclaw <ibuclaw@gdcproject.org>
4022
4023 * config.gcc (*-*-dragonfly*): Add dragonfly-d.o and t-dragonfly.
4024 * config/dragonfly-d.c: New file.
4025 * config/t-dragonfly: New file.
4026
4027 2020-11-18 Jakub Jelinek <jakub@redhat.com>
4028
4029 PR middle-end/97862
4030 * omp-expand.c (expand_omp_for_init_vars): Don't use the sqrt path
4031 if number of iterations is constant 0.
4032
4033 2020-11-18 Kito Cheng <kito.cheng@sifive.com>
4034
4035 * common/config/riscv/riscv-common.c (riscv_ext_version): New.
4036 (riscv_ext_version_table): Ditto.
4037 (get_default_version): Ditto.
4038 (riscv_subset_t::implied_p): New field.
4039 (riscv_subset_t::riscv_subset_t): Init implied_p.
4040 (riscv_subset_list::add): New.
4041 (riscv_subset_list::handle_implied_ext): Pass riscv_subset_t
4042 instead of separated argument.
4043 (riscv_subset_list::to_string): Handle zifencei and zicsr, and
4044 omit version if version is unknown.
4045 (riscv_subset_list::parsing_subset_version): New argument `ext`,
4046 remove default_major_version and default_minor_version, get
4047 default version info via get_default_version.
4048 (riscv_subset_list::parse_std_ext): Update argument for
4049 parsing_subset_version calls.
4050 Handle 2.2 ISA spec, always enable zicsr and zifencei, they are
4051 included in baseline ISA in that time.
4052 (riscv_subset_list::parse_multiletter_ext): Update argument for
4053 `parsing_subset_version` and `add` calls.
4054 (riscv_subset_list::parse): Adjust argument for
4055 riscv_subset_list::handle_implied_ext call.
4056 * config.gcc (riscv*-*-*): Handle --with-isa-spec=.
4057 * config.in (HAVE_AS_MISA_SPEC): New.
4058 (HAVE_AS_MARCH_ZIFENCEI): Ditto.
4059 * config/riscv/riscv-opts.h (riscv_isa_spec_class): New.
4060 (riscv_isa_spec): Ditto.
4061 * config/riscv/riscv.h (HAVE_AS_MISA_SPEC): New.
4062 (ASM_SPEC): Pass -misa-spec if gas supported.
4063 * config/riscv/riscv.opt (riscv_isa_spec_class) New.
4064 * configure.ac (HAVE_AS_MARCH_ZIFENCEI): New test.
4065 (HAVE_AS_MISA_SPEC): Ditto.
4066 * configure: Regen.
4067
4068 2020-11-18 Kito Cheng <kito.cheng@sifive.com>
4069
4070 * common/config/riscv/riscv-common.c (riscv_implied_info):
4071 d and f implied zicsr.
4072 (riscv_ext_flag_table): Handle zicsr and zifencei.
4073 * config/riscv/riscv-opts.h (MASK_ZICSR): New.
4074 (MASK_ZIFENCEI): Ditto.
4075 (TARGET_ZICSR): Ditto.
4076 (TARGET_ZIFENCEI): Ditto.
4077 * config/riscv/riscv.md (clear_cache): Check TARGET_ZIFENCEI.
4078 (fence_i): Ditto.
4079 * config/riscv/riscv.opt (riscv_zi_subext): New.
4080
4081 2020-11-18 Kito Cheng <kito.cheng@sifive.com>
4082
4083 * common/config/riscv/riscv-common.c (single_letter_subset_rank): New.
4084 (multi_letter_subset_rank): Ditto.
4085 (subset_cmp): Ditto.
4086 (riscv_subset_list::add): Insert subext in canonical ordering.
4087 (riscv_subset_list::parse_std_ext): Move handle_implied_ext to ...
4088 (riscv_subset_list::parse): ... here.
4089
4090 2020-11-18 Jiufu Guo <guojiufu@linux.ibm.com>
4091
4092 * cfgloop.h (loop_optimizer_finalize): Add flag argument.
4093 * loop-init.c (loop_optimizer_finalize): Call clean_up_loop_closed_phi.
4094 * tree-cfgcleanup.h (clean_up_loop_closed_phi): New declare.
4095 * tree-ssa-loop.c (tree_ssa_loop_done): Call loop_optimizer_finalize
4096 with flag argument.
4097 * tree-ssa-propagate.c (clean_up_loop_closed_phi): New function.
4098
4099 2020-11-17 Sebastian Pop <spop@amazon.com>
4100
4101 * config.gcc: add configure flags --with-{cpu,arch,tune}-{32,64}
4102 as alias flags for --with-{cpu,arch,tune} on AArch64.
4103 * doc/install.texi: Document new flags for aarch64.
4104
4105 2020-11-17 Sebastian Pop <spop@amazon.com>
4106
4107 * config.gcc: Add --with-tune to AArch64 configure flags.
4108
4109 2020-11-17 Andrew MacLeod <amacleod@redhat.com>
4110
4111 PR tree-optimization/91029
4112 * range-op.cc (operator_trunc_mod::op1_range): New.
4113
4114 2020-11-17 Jan Hubicka <jh@suse.cz>
4115
4116 * ipa-icf.c (sem_function::hash_stmt): Fix conditional on
4117 variably_modified_type_p.
4118
4119 2020-11-17 Nathan Sidwell <nathan@acm.org>
4120
4121 * tree.h (cache_integer_cst): Add defaulted might_duplicate parm.
4122 * tree.c (cache_integer_cst): Return the integer cst, add
4123 might_duplicate parm to permit finding a small duplicate.
4124
4125 2020-11-17 Andrew MacLeod <amacleod@redhat.com>
4126
4127 PR tree-optimization/83072
4128 * range-op.cc (wi_optimize_and_or): Remove zero from IOR range when
4129 mask is non-zero.
4130
4131 2020-11-17 Joseph Myers <joseph@codesourcery.com>
4132
4133 * ginclude/float.h (CR_DECIMAL_DIG): Also define for
4134 [__STDC_WANT_IEC_60559_EXT__].
4135
4136 2020-11-17 Joseph Myers <joseph@codesourcery.com>
4137
4138 * ginclude/float.h [__STDC_VERSION__ > 201710L] (FLT_IS_IEC_60559,
4139 DBL_IS_IEC_60559, LDBL_IS_IEC_60559): New macros.
4140
4141 2020-11-17 Aaron Sawdey <acsawdey@linux.ibm.com>
4142
4143 PR target/96791
4144 * mode-classes.def: Add MODE_OPAQUE.
4145 * machmode.def: Add OPAQUE_MODE.
4146 * tree.def: Add OPAQUE_TYPE for types that will use
4147 MODE_OPAQUE.
4148 * doc/generic.texi: Document OPAQUE_TYPE.
4149 * doc/rtl.texi: Document MODE_OPAQUE.
4150 * machmode.h: Add OPAQUE_MODE_P().
4151 * genmodes.c (complete_mode): Add MODE_OPAQUE.
4152 (opaque_mode): New function.
4153 * tree.c (tree_code_size): Add OPAQUE_TYPE.
4154 * tree.h: Add OPAQUE_TYPE_P().
4155 * stor-layout.c (int_mode_for_mode): Treat MODE_OPAQUE modes
4156 like BLKmode.
4157 * ira.c (find_moveable_pseudos): Treat MODE_OPAQUE modes more
4158 like integer/float modes here.
4159 * dbxout.c (dbxout_type): Treat OPAQUE_TYPE like VOID_TYPE.
4160 * tree-pretty-print.c (dump_generic_node): Treat OPAQUE_TYPE
4161 like like other types.
4162
4163 2020-11-17 Jan Hubicka <hubicka@ucw.cz>
4164 Martin Liska <mliska@suse.cz>
4165
4166 * ipa-icf.c: Include data-streamer.h and alias.h.
4167 (sem_function::sem_function): Initialize memory_access_types
4168 and m_alias_sets_hash.
4169 (sem_function::hash_stmt): For memory accesses and when going to
4170 do lto streaming add base and ref types into memory_access_types.
4171 (sem_item_optimizer::write_summary): Stream memory access types.
4172 (sem_item_optimizer::read_section): Likewise and also iniitalize
4173 m_alias_sets_hash.
4174 (sem_item_optimizer::execute): Call
4175 sem_item_optimizer::update_hash_by_memory_access_type.
4176 (sem_item_optimizer::update_hash_by_memory_access_type): Updat.
4177 * ipa-icf.h (sem_function): Add memory_access_types and
4178 m_alias_sets_hash.
4179
4180 2020-11-17 Jan Hubicka <jh@suse.cz>
4181
4182 PR bootstrap/97857
4183 * ipa-devirt.c (odr_based_tbaa_p): Do not ICE when
4184 odr_hash is not initialized
4185 * ipa-utils.h (type_with_linkage_p): Do not sanity check
4186 CXX_ODR_P.
4187 * tree-streamer-out.c (pack_ts_type_common_value_fields): Set
4188 CXX_ODR_P according to the canonical type.
4189
4190 2020-11-17 Nathan Sidwell <nathan@acm.org>
4191
4192 * langhooks-def.h (LANG_HOOKS_PREPROCESS_MAIN_FILE)
4193 (LANG_HOOKS_PREPROCESS_OPTIONS, LANG_HOOKS_PREPROCESS_UNDEF)
4194 (LANG_HOOKS_PREPROCESS_TOKEN): New.
4195 (LANG_HOOKS_INITIALIZER): Add them.
4196 * langhooks.h (struct lang_hooks): Add preprocess_main_file,
4197 preprocess_options, preprocess_undef, preprocess_token hooks. Add
4198 enum PT_flags.
4199
4200 2020-11-17 Richard Sandiford <richard.sandiford@arm.com>
4201
4202 PR tree-optimization/97693
4203 * tree-vect-stmts.c (vectorizable_call): Pass the required vectype
4204 to vect_get_vec_defs_for_operand.
4205
4206 2020-11-17 Liu Hao <lh_mouse@126.com>
4207
4208 * config/i386/msformat-c.c: Add more length modifiers.
4209
4210 2020-11-17 Tamar Christina <tamar.christina@arm.com>
4211
4212 PR driver/97574
4213 * gcc.c (convert_filename): Don't add suffix to things that are
4214 not files.
4215 (not_actual_file_p): Use supplied argument.
4216
4217 2020-11-17 Haochen Gui <guihaoc@gcc.gnu.org>
4218
4219 * final.c (final_scan_insn_1): Set jump table relocatable as the
4220 second argument of targetm.asm_out.function_rodata_section.
4221 * output.h (default_function_rodata_section,
4222 default_no_function_rodata_section): Add the second argument to the
4223 declarations.
4224 * target.def (function_rodata_section): Change the doc and add
4225 the second argument.
4226 * doc/tm.texi: Regenerate.
4227 * varasm.c (jumptable_relocatable): Implement.
4228 (default_function_rodata_section): Add the second argument
4229 and the support for relocatable read only sections.
4230 (default_no_function_rodata_section): Add the second argument.
4231 (function_mergeable_rodata_prefix): Set the second argument to false.
4232 * config/mips/mips.c (mips_function_rodata_section): Add the second
4233 arugment and set it to false.
4234 * config/s390/s390.c (targetm.asm_out.function_rodata_section): Set
4235 the second argument to false.
4236 * config/s390/s390.md: Likewise.
4237
4238 2020-11-17 liuhongt <hongtao.liu@intel.com>
4239
4240 PR target/97194
4241 * config/i386/i386-expand.c (ix86_expand_vector_set_var): New function.
4242 * config/i386/i386-protos.h (ix86_expand_vector_set_var): New Decl.
4243 * config/i386/predicates.md (vec_setm_operand): New predicate,
4244 true for const_int_operand or register_operand under TARGET_AVX2.
4245 * config/i386/sse.md (vec_set<mode>): Support both constant
4246 and variable index vec_set.
4247
4248 2020-11-17 Martin Sebor <msebor@redhat.com>
4249
4250 * tree-ssa-uninit.c (maybe_warn_operand): Call is_empty_type.
4251 * tree.c (default_is_empty_type): Rename...
4252 (is_empty_type): ...to this.
4253 * tree.h (is_empty_type): Declare.
4254
4255 2020-11-17 Martin Sebor <msebor@redhat.com>
4256
4257 PR middle-end/95673
4258 * tree-ssa-strlen.c (used_only_for_zero_equality): Rename...
4259 (use_in_zero_equality): ...to this. Add a default argument.
4260 (handle_builtin_memcmp): Adjust to the name change above.
4261 (handle_builtin_string_cmp): Same.
4262 (maybe_warn_pointless_strcmp): Same. Pass in an explicit argument.
4263
4264 2020-11-17 Joseph Myers <joseph@codesourcery.com>
4265
4266 * ginclude/float.h (DEC32_SNAN, DEC64_SNAN, DEC128_SNAN): New C2x
4267 macros.
4268
4269 2020-11-17 Joseph Myers <joseph@codesourcery.com>
4270
4271 * ginclude/float.h (INFINITY, NAN, FLT_SNAN, DBL_SNAN, LDBL_SNAN)
4272 (FLT16_SNAN, FLT32_SNAN, FLT64_SNAN, FLT128_SNAN, FLT32X_SNAN)
4273 (FLT64X_SNAN, FLT128X_SNAN, DEC_INFINITY, DEC_NAN): New C2x
4274 macros.
4275 * doc/sourcebuild.texi (Effective-Target Keywords): Document inff.
4276
4277 2020-11-17 Armin Brauns via Gcc-patches <gcc-patches@gcc.gnu.org>
4278
4279 * gcc.c: Document %T spec file directive.
4280 * doc/invoke.texi: Remove %p, %P spec file directives.
4281 Add %M, %R, %V, %nSTR, %>S, %<S*, %{%:function(args):X}, %@{...} spec
4282 file directives add sanitize, version-compare, include, gt and
4283 debug-level-gt spec functions.
4284
4285 2020-11-16 Roger Sayle <roger@nextmovesoftware.com>
4286
4287 PR rtl-optimization/92180
4288 * config/i386/i386.c (ix86_hardreg_mov_ok): New function to
4289 determine whether (set DST SRC) should be allowed at this point.
4290 * config/i386/i386-protos.h (ix86_hardreg_mov_ok): Prototype here.
4291 * config/i386/i386-expand.c (ix86_expand_move): Check whether
4292 this is a complex set of a likely spilled hard register, and if
4293 so place the value in a pseudo, and load the hard reg from it.
4294 * config/i386/i386.md (*movdi_internal, *movsi_internal)
4295 (*movhi_internal, *movqi_internal): Make these instructions
4296 conditional on ix86_hardreg_mov_ok.
4297 (*lea<mode>): Make this define_insn_and_split conditional on
4298 ix86_hardreg_mov_ok.
4299
4300 2020-11-16 Martin Liska <mliska@suse.cz>
4301
4302 * params.opt: Add missing dot.
4303
4304 2020-11-16 Jan Hubicka <jh@suse.cz>
4305
4306 * ipa-modref.c (escape_point): New type.
4307 (modref_lattice): New type.
4308 (escape_entry): New type.
4309 (escape_summary): New type.
4310 (escape_summaries_t): New type.
4311 (escape_summaries): New static variable.
4312 (eaf_flags_useful_p): New function.
4313 (modref_summary::useful_p): Add new check_flags
4314 attribute; check eaf_flags for usefulness.
4315 (modref_summary_lto): Add arg_flags.
4316 (modref_summary_lto::useful_p): Add new check_flags
4317 attribute; check eaf_flags for usefulness.
4318 (dump_modref_edge_summaries): New function.
4319 (remove_modref_edge_summaries): New function.
4320 (ignore_retval_p): New predicate.
4321 (ignore_stores_p): Also ignore for const.
4322 (remove_summary): Call remove_modref_edge_summaries.
4323 (modref_lattice::init): New member function.
4324 (modref_lattice::release): New member unction.
4325 (modref_lattice::dump): New member function.
4326 (modref_lattice::add_escape_point): New member function.
4327 (modref_lattice::merge): Two new member functions.
4328 (modref_lattice::merge_deref): New member functions.
4329 (modref_lattice::merge_direct_load): New member function.
4330 (modref_lattice::merge_direct_store): New member function.
4331 (call_lhs_flags): Rename to ...
4332 (merge_call_lhs_flags): ... this one; reimplement using
4333 modreflattice.
4334 (analyze_ssa_name_flags): Replace KNOWN_FLAGS param by LATTICE;
4335 add IPA parametr; use modref_lattice.
4336 (analyze_parms): New parameter IPA and SUMMARY_LTO; update for
4337 modref_lattice; initialize escape_summary.
4338 (analyze_function): Allocate escape_summaries; update uses of useful_p.
4339 (modref_write_escape_summary): New function.
4340 (modref_read_escape_summary): New function.
4341 (modref_write): Write escape summary.
4342 (read_section): Read escape summary.
4343 (modref_read): Initialie escape_summaries.
4344 (remap_arg_flags): New function.
4345 (update_signature): Use it.
4346 (escape_map): New structure.
4347 (update_escape_summary_1, update_escape_summary): New functions.
4348 (ipa_merge_modref_summary_after_inlining): Merge escape summaries.
4349 (propagate_unknown_call): Do not remove useless summaries.
4350 (remove_useless_summaries): Remove them here.
4351 (modref_propagate_in_scc): Update; do not dump scc.
4352 (modref_propagate_dump_scc): New function.
4353 (modref_merge_call_site_flags): New function.
4354 (modref_propagate_flags_in_scc): New function.
4355 (pass_ipa_modref::execute): Use modref_propagate_flags_in_scc
4356 and modref_propagate_dump_scc; delete escape_summaries.
4357 (ipa_modref_c_finalize): Remove escape_summaries.
4358 * ipa-modref.h (modref_summary): Update prototype of useful_p.
4359 * params.opt (param=modref-max-escape-points): New param.
4360 * doc/invoke.texi (modref-max-escape-points): Document.
4361
4362 2020-11-16 Jan Hubicka <jh@suse.cz>
4363
4364 PR middle-end/97840
4365 * ipa-modref.c (analyze_ssa_name_flags): Skip clobbers if inlining
4366 is done.
4367 * tree-ssa-uninit.c (maybe_warn_pass_by_reference): Make stmt gcall;
4368 skip const calls and unused arguments.
4369 (warn_uninitialized_vars): Update prototype.
4370
4371 2020-11-16 Richard Biener <rguenther@suse.de>
4372
4373 * tree-vectorizer.h (vect_gather_slp_loads): Declare.
4374 * tree-vect-loop.c (vect_analyze_loop_2): Call
4375 vect_gather_slp_loads.
4376 * tree-vect-slp.c (vect_build_slp_instance): Do not gather
4377 SLP loads here.
4378 (vect_gather_slp_loads): Remove wrapper, new function.
4379 (vect_slp_analyze_bb_1): Call it.
4380
4381 2020-11-16 Richard Biener <rguenther@suse.de>
4382
4383 * tree-ssa-loop-im.c (analyze_memory_references): Add
4384 store_motion parameter and elide unnecessary work.
4385 (tree_ssa_lim_initialize): Likewise.
4386 (loop_invariant_motion_in_fun): Pass down store_motion.
4387
4388 2020-11-16 Martin Liska <mliska@suse.cz>
4389
4390 * params.opt: All modref parameters miss Optimization and Param
4391 keyword as seen in testsuite failure.
4392
4393 2020-11-16 Jan Hubicka <jh@suse.cz>
4394
4395 * params.opt (-param=modref-max-depth=): Add missing full stop.
4396
4397 2020-11-16 Sebastian Huber <sebastian.huber@embedded-brains.de>
4398
4399 * common.opt (fprofile-info-section): New.
4400 * coverage.c (build_gcov_info_var_registration): New.
4401 (coverage_obj_init): Evaluate profile_info_section and use
4402 build_gcov_info_var_registration().
4403 * doc/invoke.texi (fprofile-info-section): Document.
4404 * opts.c (common_handle_option): Process fprofile-info-section
4405 option.
4406
4407 2020-11-16 Richard Biener <rguenther@suse.de>
4408
4409 PR tree-optimization/97838
4410 * tree-vect-slp.c (vect_slp_build_vertices): Properly handle
4411 not backwards reachable cycles.
4412 (vect_optimize_slp): Check a node is leaf before marking it
4413 visited.
4414
4415 2020-11-16 Martin Liska <mliska@suse.cz>
4416
4417 PR tree-optimization/97736
4418 * tree-switch-conversion.c (switch_decision_tree::analyze_switch_statement):
4419 Prefer bit tests.
4420
4421 2020-11-16 Richard Biener <rguenther@suse.de>
4422
4423 PR tree-optimization/97835
4424 * tree-vect-loop.c (vectorizable_induction): Convert step
4425 scalars rather than step vector.
4426
4427 2020-11-16 Richard Biener <rguenther@suse.de>
4428
4429 PR tree-optimization/97830
4430 * tree-ssa-sccvn.c (vn_reference_eq): Check for incomplete
4431 types before comparing TYPE_SIZE.
4432
4433 2020-11-16 Cui,Lili <lili.cui@intel.com>
4434
4435 * config/i386/i386.h: Add PREFETCHW to march=broadwell.
4436 * doc/invoke.texi: Put PREFETCHW back to relation arch.
4437
4438 2020-11-15 Jozef Lawrynowicz <jozef.l@mittosystems.com>
4439
4440 * config/msp430/msp430.c (msp430_output_labelref): Don't process mspabi
4441 hwmult library function names into GCC-style names.
4442
4443 2020-11-15 Jozef Lawrynowicz <jozef.l@mittosystems.com>
4444
4445 * config/msp430/msp430.c (msp430_use_16bit_hwmult): New.
4446 (use_32bit_hwmult): Rename to..
4447 (msp430_use_32bit_hwmult): ..this.
4448 (msp430_muldiv_costs): Use msp430_use_16bit_hwmult and
4449 msp430_use_32bit_hwmult.
4450 (msp430_expand_helper): Use msp430_use_16bit_hwmult and
4451 msp430_use_32bit_hwmult.
4452 (msp430_output_labelref): Use msp430_use_32bit_hwmult.
4453
4454 2020-11-15 Maciej W. Rozycki <macro@linux-mips.org>
4455
4456 * config/vax/vax.c (vax_rtx_costs): Use `rtx_code' rather than
4457 `int' for `code'.
4458
4459 2020-11-15 Maciej W. Rozycki <macro@linux-mips.org>
4460
4461 * config/vax/vax.c (vax_output_int_add) <E_DImode>: Fix a typo
4462 in NO_EXTERNAL_INDIRECT_ADDRESS.
4463
4464 2020-11-15 Maciej W. Rozycki <macro@linux-mips.org>
4465
4466 * config/vax/vax.c (vax_output_int_add) <E_SImode>: Also check
4467 `operands[2]' for being symbolic with PIC rather than checking
4468 `operands[1]' twice.
4469
4470 2020-11-15 Aldy Hernandez <aldyh@redhat.com>
4471
4472 * vr-values.c (vr_values::extract_range_builtin): Rename to...
4473 (vr_values::extract_range_from_ubsan_builtin): ...this.
4474 Remove everything but UBSAN code.
4475 (vr_values::extract_range_basic): Call ranger version for
4476 everything except UBSAN built-ins.
4477 * vr-values.h (class vr_values): Rename extract_range_builtin to
4478 extract_range_from_ubsan_builtin.
4479
4480 2020-11-15 Vladimir N. Makarov <vmakarov@redhat.com>
4481
4482 * lra.c (lra_process_new_insns): Don't put reload insns in the
4483 last empty BB.
4484
4485 2020-11-15 Jan Hubicka <jh@suse.cz>
4486
4487 * ipa-modref.c (analyze_ssa_name_flags): Make return to clear
4488 EAF_UNUSED flag.
4489
4490 2020-11-14 Jan Hubicka <jh@suse.cz>
4491
4492 * gimple.c: Include ipa-modref-tree.h and ipa-modref.h.
4493 (gimple_call_arg_flags): Use modref to determine flags.
4494 * ipa-modref.c: Include gimple-ssa.h, tree-phinodes.h,
4495 tree-ssa-operands.h, stringpool.h and tree-ssanames.h.
4496 (analyze_ssa_name_flags): Declare.
4497 (modref_summary::useful_p): Summary is also useful if arg flags are
4498 known.
4499 (dump_eaf_flags): New function.
4500 (modref_summary::dump): Use it.
4501 (get_modref_function_summary): Be read for current_function_decl
4502 being NULL.
4503 (memory_access_to): New function.
4504 (deref_flags): New function.
4505 (call_lhs_flags): New function.
4506 (analyze_parms): New function.
4507 (analyze_function): Use it.
4508 * ipa-modref.h (struct modref_summary): Add arg_flags.
4509 * doc/invoke.texi (ipa-modref-max-depth): Document.
4510 * params.opt (ipa-modref-max-depth): New param.
4511
4512 2020-11-14 Jakub Jelinek <jakub@redhat.com>
4513
4514 PR debug/97599
4515 * dwarf2out.c (gen_subprogram_die): Call
4516 gen_unspecified_parameters_die even if not early dwarf, but only
4517 if subr_die is a newly created DIE.
4518
4519 2020-11-14 Monk Chiang <monk.chiang@sifive.com>
4520
4521 PR target/97682
4522 * config/riscv/riscv.h (RISCV_PROLOGUE_TEMP_REGNUM): Change register
4523 to t0.
4524 (RISCV_CALL_ADDRESS_TEMP_REGNUM): New Marco, define t1 register.
4525 (RISCV_CALL_ADDRESS_TEMP): Use it for call instructions.
4526 * config/riscv/riscv.c (riscv_legitimize_call_address): Use
4527 RISCV_CALL_ADDRESS_TEMP.
4528 (riscv_compute_frame_info): Change temporary register to t0 form t1.
4529 (riscv_trampoline_init): Adjust comment.
4530
4531 2020-11-14 Jim Wilson <jimw@sifive.com>
4532 cooper.joshua <cooper.joshua@linux.alibaba.com>
4533
4534 * config/riscv/riscv.c (riscv_asan_shadow_offset): New.
4535 (TARGET_ASAN_SHADOW_OFFSET): New.
4536 * doc/tm.texi: Regenerated.
4537 * target.def (asan_shadow_offset); Mention that it can return zero.
4538 * toplev.c (process_options): Check for and handle zero return from
4539 targetm.asan_shadow_offset call.
4540
4541 2020-11-14 Jakub Jelinek <jakub@redhat.com>
4542
4543 * gimplify.c (gimplify_omp_for): Add OMP_CLAUSE_ALLOCATE_ALLOCATOR
4544 decls as firstprivate on task clauses even when allocate clause
4545 decl is not lastprivate.
4546 * omp-low.c (install_var_field): Don't dereference omp_is_reference
4547 types if mask is 33 rather than 1.
4548 (scan_sharing_clauses): Populate allocate_map even for task
4549 constructs. For now remove it back for variables mentioned in
4550 reduction and in_reduction clauses on task/taskloop constructs
4551 or on VLA task firstprivates. For firstprivate on task construct,
4552 install the var field into field_map with by_ref and 33 instead
4553 of false and 1 if mentioned in allocate clause.
4554 (lower_private_allocate): Set TREE_THIS_NOTRAP on the created
4555 MEM_REF.
4556 (lower_rec_input_clauses): Handle allocate for task firstprivatized
4557 non-VLA variables.
4558 (create_task_copyfn): Likewise.
4559
4560 2020-11-13 Jan Hubicka <jh@suse.cz>
4561
4562 * tree-ssa-alias.c (ao_ref_base_alias_ptr_type): Remove accidental
4563 commit.
4564 (ao_ref_alias_ptr_type): Remove accidental commit.
4565
4566 2020-11-13 Kwok Cheung Yeung <kcy@codesourcery.com>
4567
4568 * omp-oacc-kernels-decompose.cc (maybe_build_inner_data_region):
4569 Use langhook instead of accessing language-specific decl
4570 information.
4571
4572 2020-11-13 Gergö Barany <gergo@codesourcery.com>
4573 Thomas Schwinge <thomas@codesourcery.com>
4574
4575 * omp-oacc-kernels-decompose.cc: New.
4576 * Makefile.in (OBJS): Add it.
4577 * passes.def: Instantiate it.
4578 * tree-pass.h (make_pass_omp_oacc_kernels_decompose): Declare.
4579 * flag-types.h (enum openacc_kernels): Add.
4580 * doc/invoke.texi (-fopenacc-kernels): Document.
4581 * gimple.h (enum gf_mask): Add
4582 'GF_OMP_TARGET_KIND_OACC_PARALLEL_KERNELS_PARALLELIZED',
4583 'GF_OMP_TARGET_KIND_OACC_PARALLEL_KERNELS_GANG_SINGLE',
4584 'GF_OMP_TARGET_KIND_OACC_DATA_KERNELS'.
4585 (is_gimple_omp_oacc, is_gimple_omp_offloaded): Handle these.
4586 * gimple-pretty-print.c (dump_gimple_omp_target): Likewise.
4587 * omp-expand.c (expand_omp_target, build_omp_regions_1)
4588 (omp_make_gimple_edges): Likewise.
4589 * omp-low.c (scan_sharing_clauses, scan_omp_for)
4590 (check_omp_nesting_restrictions, lower_oacc_reductions)
4591 (lower_oacc_head_mark, lower_omp_target): Likewise.
4592 * omp-offload.c (execute_oacc_device_lower): Likewise.
4593
4594 2020-11-13 Thomas Schwinge <thomas@codesourcery.com>
4595
4596 * omp-low.c (scan_sharing_clauses, scan_omp_for)
4597 (lower_oacc_reductions, lower_omp_target): More explicit checking
4598 of which OMP constructs we're expecting.
4599
4600 2020-11-13 Thomas Schwinge <thomas@codesourcery.com>
4601
4602 * omp-expand.c (expand_omp_target): Attach an attribute to all
4603 outlined OpenACC compute regions.
4604 * omp-offload.c (execute_oacc_device_lower): Adjust.
4605
4606 2020-11-13 Jan Hubicka <jh@suse.cz>
4607
4608 * ipa-modref.c (modref_summaries::insert,
4609 modref_summaries_lto::insert): Remove summary if ipa-modref is disabled.
4610
4611 2020-11-13 Jan Hubicka <jh@suse.cz>
4612
4613 * attr-fnspec.h (attr_fnspec::arg_readonly_p): Accept '1'...'9'.
4614
4615 2020-11-13 Peter Jones <pjones@redhat.com>
4616
4617 * doc/extend.texi: Clarify the documentation for the ms_abi
4618 function attribute.
4619
4620 2020-11-13 Andrew MacLeod <amacleod@redhat.com>
4621
4622 * gimple-range.h (gimple_range_handler): Cast to gimple stmt
4623 kinds before asking for code and type.
4624 * gimple.h (gimple_expr_code): Call gassign and gcond routines
4625 to get their expr_code.
4626
4627 2020-11-13 Jason Merrill <jason@redhat.com>
4628
4629 * dwarf2out.c (gen_enumeration_type_die): Call
4630 equate_decl_number_to_die for enumerators.
4631 (gen_member_die): Don't move enumerators to their
4632 enclosing class.
4633 (dwarf2out_imported_module_or_decl_1): Allow importing
4634 individual enumerators.
4635 (force_decl_die): Handle CONST_DECL.
4636
4637 2020-11-13 Vladimir N. Makarov <vmakarov@redhat.com>
4638
4639 * cfgexpand.c (expand_asm_stmt): Output asm goto with outputs too.
4640 Place insns after asm goto on edges.
4641 * doc/extend.texi: Reflect the changes in asm goto documentation.
4642 * gimple.c (gimple_build_asm_1): Remove an assert checking output
4643 absence for asm goto.
4644 * gimple.h (gimple_asm_label_op, gimple_asm_set_label_op): Take
4645 possible asm goto outputs into account.
4646 * ira.c (ira): Remove critical edges for potential asm goto output
4647 reloads.
4648 (ira_nullify_asm_goto): New function.
4649 * ira.h (ira_nullify_asm_goto): New prototype.
4650 * lra-assigns.c (lra_split_hard_reg_for): Use ira_nullify_asm_goto.
4651 Check that splitting is done inside a basic block.
4652 * lra-constraints.c (curr_insn_transform): Permit output reloads
4653 for any jump insn.
4654 * lra-spills.c (lra_final_code_change): Remove USEs added in ira
4655 for asm gotos.
4656 * lra.c (lra_process_new_insns): Place output reload insns after
4657 jumps in the beginning of destination BBs.
4658 * reload.c (find_reloads): Report error for asm gotos with
4659 outputs. Modify them to keep CFG consistency to avoid crashes.
4660 * tree-into-ssa.c (rewrite_stmt): Don't put debug stmt after asm
4661 goto.
4662
4663 2020-11-13 Jakub Jelinek <jakub@redhat.com>
4664
4665 * omp-low.c (scan_sharing_clauses): For now remove for reduction
4666 clauses with inscan or task modifiers decl from allocate_map.
4667 (lower_private_allocate): Handle TYPE_P (new_var).
4668 (lower_rec_input_clauses): Handle allocate clause for C/C++ array
4669 reductions.
4670
4671 2020-11-13 Martin Jambor <mjambor@suse.cz>
4672
4673 PR ipa/97816
4674 * ipa-cp.c (value_topo_info<valtype>::propagate_effects): Use
4675 safe_add instead of a simple addition.
4676
4677 2020-11-13 Jozef Lawrynowicz <jozef.l@mittosystems.com>
4678
4679 * config/msp430/msp430.c (TARGET_INSN_COST): Define.
4680 (msp430_insn_cost): New function.
4681 * config/msp430/msp430.h (BRANCH_COST): Define.
4682 (LOGICAL_OP_NON_SHORT_CIRCUIT): Define.
4683
4684 2020-11-13 Jozef Lawrynowicz <jozef.l@mittosystems.com>
4685
4686 * config/msp430/msp430-protos.h (msp430x_extendhisi): Return int
4687 instead of char *.
4688 (msp430_output_asm_shift_insns): Likewise.
4689 Add new return_length argument.
4690 (msp430x_insn_required): Add prototype.
4691 * config/msp430/msp430.c (msp430_output_asm_shift_insns): Return the
4692 total length, in bytes, of the emitted instructions.
4693 (msp430x_insn_required): New function.
4694 (msp430x_extendhisi): Return the total length, in bytes, of the
4695 emitted instructions.
4696 * config/msp430/msp430.h (ADJUST_INSN_LENGTH): Define.
4697 * config/msp430/msp430.md: New define_attr "type".
4698 New define_attr "extension".
4699 New define_attr "length_multiplier".
4700 New define_attr "extra_length".
4701 Rewrite define_attr "length".
4702 Set type, extension, length, length_multiplier or extra_length insn
4703 attributes on all insns, as appropriate.
4704 (andneghi3): Rewrite using constraints instead of C code to decide
4705 output insns.
4706 * config/msp430/predicates.md (msp430_cheap_operand): New predicate.
4707 (msp430_high_memory_operand): New predicate.
4708
4709 2020-11-13 Jozef Lawrynowicz <jozef.l@mittosystems.com>
4710
4711 * config/msp430/msp430.c (use_helper_for_const_shift): Add forward
4712 declaration.
4713 Remove unused argument.
4714 (struct msp430_multlib_costs): New struct.
4715 (msp430_is_mem_indirect): New function.
4716 (msp430_costs): Likewise.
4717 (msp430_shift_costs): Likewise.
4718 (msp430_muldiv_costs): Likewise.
4719 (msp430_get_inner_dest_code): Likewise.
4720 (msp430_single_op_cost): Likewise.
4721 (msp430_rtx_costs): Rewrite from scratch.
4722 (msp430_expand_shift): Adjust use_helper_for_const_shift call.
4723
4724 2020-11-13 Jozef Lawrynowicz <jozef.l@mittosystems.com>
4725
4726 * config/msp430/msp430.c (struct single_op_cost): New struct.
4727 (struct double_op_cost): Likewise.
4728 (TARGET_REGISTER_MOVE_COST): Don't define but add comment.
4729 (TARGET_MEMORY_MOVE_COST): Define to...
4730 (msp430_memory_move_cost): New function.
4731 (BRANCH_COST): Don't define but add comment.
4732
4733 2020-11-13 Jan Hubicka <jh@suse.cz>
4734
4735 * ipa-icf-gimple.c: Include tree-ssa-alias-compare.h.
4736 (find_checker::func_checker): Initialize m_tbaa.
4737 (func_checker::hash_operand): Use hash_ao_ref for memory accesses.
4738 (func_checker::compare_operand): Use compare_ao_refs for memory
4739 accesses.
4740 (func_checker::cmopare_gimple_assign): Do not check LHS types
4741 of memory stores.
4742 * ipa-icf-gimple.h (func_checker): Derive from ao_compare;
4743 add m_tbaa.
4744 * ipa-icf.c: Include tree-ssa-alias-compare.h.
4745 (sem_function::equals_private): Update call of
4746 func_checker::func_checker.
4747 * ipa-utils.h (lto_streaming_expected_p): New inline
4748 predicate.
4749 * tree-ssa-alias-compare.h: New file.
4750 * tree-ssa-alias.c: Include tree-ssa-alias-compare.h
4751 and bultins.h
4752 (view_converted_memref_p): New function.
4753 (types_equal_for_same_type_for_tbaa_p): New function.
4754 (ao_ref_alias_ptr_type, ao_ref_base_alias_ptr_type): New functions.
4755 (ao_compare::compare_ao_refs): New member function.
4756 (ao_compare::hash_ao_ref): New function
4757 * tree-ssa-alias.h (ao_ref_base_alias_ptr_type,
4758 ao_ref_alias_ptr_type): Declare.
4759
4760 2020-11-13 Jan Hubicka <jh@suse.cz>
4761
4762 * ipa-icf-gimple.c: Include gimple-walk.h.
4763 (func_checker::compare_ssa_name): Update call of compare_operand.
4764 (func_checker::hash_operand): Fix comment and add variant taking
4765 operand_access_type parameter.
4766 (func_checker::compare_operand): Add operand_access_type parameter.
4767 (func_checker::compare_asm_inputs_outputs): Add
4768 operand_access_type_map parameter; update use of
4769 func_checker::compare_operand.
4770 (func_checker::compare_gimple_call): Update use of
4771 func_checker::compare_operand.
4772 (func_checker::compare_gimple_assign): Likewise.
4773 (func_checker::compare_gimple_cond): Likewise.
4774 (func_checker::compare_gimple_switch): Likewise.
4775 (func_checker::compare_gimple_return): Likewise.
4776 (func_checker::compare_gimple_goto): Likewise.
4777 (func_checker::compare_gimple_asm): Likewise.
4778 (visit_load_store): New static functio.
4779 (func_checker::classify_operands): New member function.
4780 (func_checker::get_operand_access_type): New member function.
4781 * ipa-icf-gimple.h (func_checker::operand_access_type): New enum
4782 (func_checker::operand_access_type_map): New typedef.
4783 (func_checker::compare_operand): Update prototype.
4784 (func_checker::compare_asm_inputs_outputs): Likewise.
4785 (func_checker::cleassify_operands): Declare.
4786 (func_checker::get_operand_access_type): Declare.
4787 (func_checker::hash_operand): New variant with operand_access_type.
4788 * ipa-icf.c (sem_function::hash_stmt): Update uses of hash_operand.
4789 (sem_function::compare_phi_node): Update use of compare_operand.
4790
4791 2020-11-13 Andrea Corallo <andrea.corallo@arm.com>
4792
4793 * config/arm/aarch-common.c (aarch_accumulator_forwarding): Use
4794 RTL predicates where possible.
4795 * config/arm/arm.c (legitimate_pic_operand_p)
4796 (legitimize_pic_address, arm_is_segment_info_known)
4797 (can_avoid_literal_pool_for_label_p)
4798 (thumb1_legitimate_address_p, arm_legitimize_address)
4799 (arm_tls_referenced_p, thumb_legitimate_constant_p)
4800 (REG_OR_SUBREG_REG, thumb1_rtx_costs, thumb1_size_rtx_costs)
4801 (arm_adjust_cost, arm_coproc_mem_operand_wb)
4802 (neon_vector_mem_operand, neon_struct_mem_operand)
4803 (symbol_mentioned_p, label_mentioned_p, )
4804 (load_multiple_sequence, store_multiple_sequence)
4805 (arm_select_cc_mode, arm_reload_in_hi, arm_reload_out_hi)
4806 (mem_ok_for_ldrd_strd, arm_emit_call_insn, output_move_neon)
4807 (arm_attr_length_move_neon, arm_assemble_integer)
4808 (arm_emit_coreregs_64bit_shift, arm_valid_symbolic_address_p)
4809 (extract_base_offset_in_addr, fusion_load_store): Likewise.
4810
4811 2020-11-13 Andrew MacLeod <amacleod@redhat.com>
4812
4813 * gimple-range.cc: (gimple_ranger::range_of_range_op): Check for
4814 ADDR_EXPR and call range_of_address.
4815 (gimple_ranger::range_of_address): Rename from
4816 range_of_non_trivial_assignment and match vrp_stmt_computes_nonzero.
4817 * gimple-range.h: (range_of_address): Renamed.
4818 * range-op.cc: (pointer_table): Add INTEGER_CST handler.
4819
4820 2020-11-13 Martin Jambor <mjambor@suse.cz>
4821
4822 PR tree-optimization/94406
4823 * tree-ssa-loop-im.c (tree_ssa_lim): Renamed to
4824 loop_invariant_motion_in_fun, added a parameter to control store
4825 motion.
4826 (pass_lim::execute): Adjust call to tree_ssa_lim, now
4827 loop_invariant_motion_in_fun.
4828 * tree-ssa-loop-manip.h (loop_invariant_motion_in_fun): Declare.
4829 * gimple-loop-interchange.cc (pass_linterchange::execute): Call
4830 loop_invariant_motion_in_fun if any interchange has been done.
4831
4832 2020-11-13 Richard Biener <rguenther@suse.de>
4833
4834 * tree-ssa-sccvn.c (vn_phi_compute_hash): Always hash the
4835 number of predecessors. Hash the block number also for
4836 loop header PHIs.
4837 (expressions_equal_p): Short-cut SSA name compares, remove
4838 test for NULL operands.
4839 (vn_phi_eq): Cache number of predecessors, change inlined
4840 test from expressions_equal_p.
4841
4842 2020-11-13 Iain Sandoe <iain@sandoe.co.uk>
4843
4844 * doc/extend.texi: Don't try to line-wrap an @r command.
4845
4846 2020-11-13 Richard Biener <rguenther@suse.de>
4847
4848 PR tree-optimization/97812
4849 * tree-vrp.c (register_edge_assert_for_2): Extend the range
4850 according to its sign before seeing whether it fits.
4851
4852 2020-11-13 Andrea Corallo <andrea.corallo@arm.com>
4853
4854 * config/aarch64/aarch64.c (tls_symbolic_operand_type)
4855 (aarch64_load_symref_appropriately, aarch64_mov128_immediate)
4856 (aarch64_expand_mov_immediate)
4857 (aarch64_maybe_expand_sve_subreg_move)
4858 (aarch64_tls_referenced_p, aarch64_cannot_force_const_mem)
4859 (aarch64_base_register_rtx_p, aarch64_classify_index)
4860 (aarch64_classify_address, aarch64_symbolic_address_p)
4861 (aarch64_reinterpret_float_as_int, aarch64_float_const_rtx_p)
4862 (aarch64_can_const_movi_rtx_p, aarch64_select_cc_mode)
4863 (aarch64_print_operand, aarch64_label_mentioned_p)
4864 (aarch64_secondary_reload, aarch64_preferred_reload_class)
4865 (aarch64_address_cost, aarch64_tls_symbol_p)
4866 (aarch64_classify_symbol, aarch64_legitimate_pic_operand_p)
4867 (aarch64_legitimate_constant_p)
4868 (aarch64_sve_float_arith_immediate_p)
4869 (aarch64_sve_float_mul_immediate_p, aarch64_mov_operand_p)
4870 (fusion_load_store): Use RTL operands where possible.
4871
4872 2020-11-13 Sudakshina Das <sudi.das@arm.com>
4873
4874 * config/aarch64/aarch64-protos.h (aarch64_expand_setmem): New
4875 declaration.
4876 * config/aarch64/aarch64.c (aarch64_gen_store_pair): Add case for
4877 E_V16QImode.
4878 (aarch64_set_one_block_and_progress_pointer): New helper for
4879 aarch64_expand_setmem.
4880 (aarch64_expand_setmem): Define the expansion for memset.
4881 * config/aarch64/aarch64.h (CLEAR_RATIO): Tweak to favor
4882 aarch64_expand_setmem when allowed and profitable.
4883 (SET_RATIO): Likewise.
4884 * config/aarch64/aarch64.md: Define pattern for setmemdi.
4885
4886 2020-11-13 Iain Sandoe <iain@sandoe.co.uk>
4887
4888 PR objc/90707
4889 * doc/extend.texi: Document the objc_nullability attribute.
4890
4891 2020-11-13 Iain Sandoe <iain@sandoe.co.uk>
4892
4893 PR objc/77404
4894 * doc/extend.texi: Document the objc_root_class attribute.
4895 * doc/invoke.texi: Document -Wobjc-root-class.
4896
4897 2020-11-13 Richard Biener <rguenther@suse.de>
4898
4899 * cfgexpand.c (gimple_assign_rhs_to_tree): Use
4900 gimple_assign_rhs_class.
4901 (expand_gimple_stmt_1): Likewise.
4902 * gimplify-me.c (gimple_regimplify_operands): Use
4903 gimple_assign_single_p.
4904 * ipa-icf-gimple.c (func_checker::compare_gimple_assign):
4905 Remove redundant compare.
4906 (func_checker::compare_gimple_cond): Use gimple_cond_code.
4907 * tree-ssa-tail-merge.c (gimple_equal_p): Likewise.
4908 * predict.c (predict_loops): Use gimple_assign_rhs_code.
4909
4910 2020-11-13 Aldy Hernandez <aldyh@redhat.com>
4911
4912 * tree-vrp.c (class vrp_folder): Make visit_stmt, visit_phi,
4913 and m_vr_values private.
4914 (vrp_folder::vrp_evaluate_conditional): Remove.
4915 (vrp_folder::vrp_simplify_stmt_using_ranges): Remove.
4916 (vrp_folder::fold_predicate_in): Inline
4917 vrp_evaluate_conditional and vrp_simplify_stmt_using_ranges.
4918 (vrp_folder::fold_stmt): Same.
4919
4920 2020-11-13 Aldy Hernandez <aldyh@redhat.com>
4921
4922 * tree-vrp.c (class vrp_prop): Rename vr_values to m_vr_values.
4923 (vrp_prop::vrp_prop): New.
4924 (vrp_prop::initialize): Rename vr_values to m_vr_values.
4925 (vrp_prop::visit_stmt): Same.
4926 (vrp_prop::visit_phi): Same.
4927 (vrp_prop::finalize): Same.
4928 (execute_vrp): Instantiate vrp_vr_values and pass it to folder
4929 and propagator.
4930
4931 2020-11-13 Aldy Hernandez <aldyh@redhat.com>
4932
4933 * tree-vrp.c (class vrp_prop): Move entire class...
4934 (class vrp_folder): ...before here.
4935
4936 2020-11-13 Aldy Hernandez <aldyh@redhat.com>
4937
4938 * tree-vrp.c (identify_jump_threads): Refactor to..
4939 (vrp_jump_threader::vrp_jump_threader): ...here
4940 (vrp_jump_threader::~vrp_jump_threader): ...and here.
4941 (vrp_jump_threader::after_dom_children): Rename vr_values to
4942 m_vr_values.
4943 (execute_vrp): Use vrp_jump_threader.
4944
4945 2020-11-13 Aldy Hernandez <aldyh@redhat.com>
4946
4947 * tree-vrp.c (struct assert_locus): Move.
4948 (class vrp_insert): Rename to vrp_asserts.
4949 (vrp_insert::build_assert_expr_for): Move to vrp_asserts.
4950 (fp_predicate): Same.
4951 (vrp_insert::dump): Same.
4952 (vrp_insert::register_new_assert_for): Same.
4953 (extract_code_and_val_from_cond_with_ops): Move.
4954 (vrp_insert::finish_register_edge_assert_for): Move to vrp_asserts.
4955 (maybe_set_nonzero_bits): Move.
4956 (vrp_insert::find_conditional_asserts): Move to vrp_asserts.
4957 (stmt_interesting_for_vrp): Move.
4958 (struct case_info): Move.
4959 (compare_case_labels): Move.
4960 (lhs_of_dominating_assert): Move.
4961 (find_case_label_index): Move.
4962 (find_case_label_range): Move.
4963 (class vrp_asserts): New.
4964 (vrp_asserts::build_assert_expr_for): Rename from vrp_insert.
4965 (vrp_asserts::dump): Same.
4966 (vrp_asserts::register_new_assert_for): Same.
4967 (vrp_asserts::finish_register_edge_assert_for): Same.
4968 (vrp_asserts::find_conditional_asserts): Same.
4969 (vrp_asserts::compare_case_labels): Same.
4970 (vrp_asserts::find_switch_asserts): Same.
4971 (vrp_asserts::find_assert_locations_in_bb): Same.
4972 (vrp_asserts::find_assert_locations): Same.
4973 (vrp_asserts::process_assert_insertions_for): Same.
4974 (vrp_asserts::compare_assert_loc): Same.
4975 (vrp_asserts::process_assert_insertions): Same.
4976 (vrp_asserts::insert_range_assertions): Same.
4977 (vrp_asserts::all_imm_uses_in_stmt_or_feed_cond): Same.
4978 (vrp_asserts::remove_range_assertions): Same.
4979 (class vrp_prop): Move.
4980 (all_imm_uses_in_stmt_or_feed_cond): Move.
4981 (vrp_prop::vrp_initialize): Move.
4982 (class vrp_folder): Move.
4983 (vrp_folder::fold_predicate_in): Move.
4984 (vrp_folder::fold_stmt): Move.
4985 (vrp_prop::initialize): Move.
4986 (vrp_prop::visit_stmt): Move.
4987 (enum ssa_prop_result): Move.
4988 (vrp_prop::visit_phi): Move.
4989 (vrp_prop::finalize): Move.
4990 (class vrp_dom_walker): Rename to...
4991 (class vrp_jump_threader): ...this.
4992 (vrp_jump_threader::before_dom_children): Rename from
4993 vrp_dom_walker.
4994 (simplify_stmt_for_jump_threading): Rename to...
4995 (vrp_jump_threader::simplify_stmt): ...here.
4996 (vrp_jump_threader::after_dom_children): Same.
4997 (identify_jump_threads): Move.
4998 (vrp_prop::vrp_finalize): Move array bounds setup code to...
4999 (execute_vrp): ...here.
5000
5001 2020-11-13 Andrew MacLeod <amacleod@redhat.com>
5002
5003 * gimple-range.h (gimple_range_handler): Use gimple_assign and
5004 gimple_cond routines to get type and code.
5005 * range-op.cc (range_op_handler): Check for integral types.
5006
5007 2020-11-12 Nelson Chu <nelson.chu@sifive.com>
5008
5009 * configure: Regenerated.
5010 * configure.ac: If ifunc was supported in the binutils for
5011 linux toolchain, then set enable_gnu_indirect_function to yes.
5012
5013 2020-11-12 Joseph Myers <joseph@codesourcery.com>
5014
5015 * doc/cpp.texi (__has_attribute): Document when scopes are allowed
5016 for C.
5017 (__has_c_attribute): New.
5018
5019 2020-11-12 Jakub Jelinek <jakub@redhat.com>
5020
5021 * builtin-types.def (BT_FN_PTR_SIZE_SIZE_PTRMODE): New function type.
5022 * omp-builtins.def (BUILT_IN_GOACC_DECLARE): Move earlier.
5023 (BUILT_IN_GOMP_ALLOC, BUILT_IN_GOMP_FREE): New builtins.
5024 * gimplify.c (gimplify_scan_omp_clauses): Force allocator into a
5025 decl if it is not NULL, INTEGER_CST or decl.
5026 (gimplify_adjust_omp_clauses): Clear GOVD_EXPLICIT on explicit clauses
5027 which are being removed. Remove allocate clauses for variables not seen
5028 if they are private, firstprivate or linear too. Call
5029 omp_notice_variable on the allocator otherwise.
5030 (gimplify_omp_for): Handle iterator vars mentioned in allocate clauses
5031 similarly to non-is_gimple_reg iterators.
5032 * omp-low.c (struct omp_context): Add allocate_map field.
5033 (delete_omp_context): Delete it.
5034 (scan_sharing_clauses): Fill it from allocate clauses. Remove it
5035 if mentioned also in shared clause.
5036 (lower_private_allocate): New function.
5037 (lower_rec_input_clauses): Handle allocate clause for privatized
5038 variables, except for task/taskloop, C/C++ array reductions for now
5039 and task/inscan variables.
5040 (lower_send_shared_vars): Don't consider variables in allocate_map
5041 as shared.
5042 * omp-expand.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
5043 expand_omp_for_static_chunk): Use expand_omp_build_assign instead of
5044 gimple_build_assign + gsi_insert_after.
5045 * builtins.c (builtin_fnspec): Handle BUILTIN_GOMP_ALLOC and
5046 BUILTIN_GOMP_FREE.
5047 * tree-ssa-ccp.c (evaluate_stmt): Handle BUILTIN_GOMP_ALLOC.
5048 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Handle
5049 BUILTIN_GOMP_ALLOC.
5050 (mark_all_reaching_defs_necessary_1): Handle BUILTIN_GOMP_ALLOC
5051 and BUILTIN_GOMP_FREE.
5052 (propagate_necessity): Likewise.
5053
5054 2020-11-12 Martin Jambor <mjambor@suse.cz>
5055
5056 * cgraphclones.c (cgraph_node::materialize_clone): Check that clone
5057 info is not NULL before attempting to dump it.
5058
5059 2020-11-12 Martin Jambor <mjambor@suse.cz>
5060
5061 * ipa-cp.c (class ipcp_value_base): Change the type of
5062 local_time_benefit and prop_time_benefit to sreal. Adjust the
5063 constructor initializer.
5064 (ipcp_lattice::print): Dump sreals.
5065 (struct caller_statistics): Change the type of freq_sum to sreal.
5066 (gather_caller_stats): Work with sreal freq_sum.
5067 (incorporate_penalties): Work with sreal evaluation.
5068 (good_cloning_opportunity_p): Adjusted for sreal sreal time_benefit
5069 and freq_sum. Bail out if size_cost is INT_MAX.
5070 (perform_estimation_of_a_value): Work with sreal time_benefit. Avoid
5071 unnecessary capping.
5072 (estimate_local_effects): Pass sreal time benefit to
5073 good_cloning_opportunity_p without capping it. Adjust dumping.
5074 (safe_add): If there can be overflow, return INT_MAX.
5075 (propagate_effects): Work with sreal times.
5076 (get_info_about_necessary_edges): Work with sreal frequencies.
5077 (decide_about_value): Likewise and with sreal time benefits.
5078
5079 2020-11-12 Marek Polacek <polacek@redhat.com>
5080
5081 * system.h (WARN_UNUSED_RESULT): Define for GCC >= 3.4.
5082 * tree.h (maybe_wrap_with_location): Add WARN_UNUSED_RESULT.
5083
5084 2020-11-12 Jan Hubicka <jh@suse.cz>
5085
5086 * fold-const.c (operand_compare::operand_equal_p): Compare field
5087 offsets in operand_equal_p and OEP_ADDRESS_OF.
5088 (operand_compare::hash_operand): Update.
5089
5090 2020-11-12 Richard Biener <rguenther@suse.de>
5091
5092 * bitmap.c (bitmap_list_view): Restore head->current.
5093 * tree-ssa-pre.c (pre_expr_DFS): Elide expr_visited bitmap.
5094 Special-case value expression bitmaps with one element.
5095 (bitmap_find_leader): Likewise.
5096 (sorted_array_from_bitmap_set): Elide expr_visited bitmap.
5097
5098 2020-11-12 Jan Hubicka <jh@suse.cz>
5099
5100 * attr-fnspec.h: Update topleve comment.
5101 (attr_fnspec::arg_direct_p): Accept 1...9.
5102 (attr_fnspec::arg_maybe_written_p): Reject 1...9.
5103 (attr_fnspec::arg_copied_to_arg_p): New member function.
5104 * builtins.c (builtin_fnspec): Update fnspec of block copy.
5105 * tree-ssa-alias.c (attr_fnspec::verify): Update.
5106
5107 2020-11-12 Richard Biener <rguenther@suse.de>
5108
5109 * tree-ssa-pre.c (bitmap_value_replace_in_set): Return
5110 whether we have changed anything.
5111 (do_pre_regular_insertion): Get topologically sorted array
5112 of expressions from caller.
5113 (do_pre_partial_partial_insertion): Likewise.
5114 (insert): Compute topologically sorted arrays of expressions
5115 here and locally iterate actual insertion. Iterate only
5116 when AVAIL_OUT of an already visited block source changed.
5117
5118 2020-11-12 Alex Coplan <alex.coplan@arm.com>
5119
5120 PR target/97730
5121 * config/aarch64/aarch64-sve2.md (@aarch64_sve2_bcax<mode>):
5122 Change to define_expand, add missing (trivially-predicated) not
5123 rtx to fix wrong code bug.
5124 (*aarch64_sve2_bcax<mode>): New.
5125
5126 2020-11-12 Richard Biener <rguenther@suse.de>
5127
5128 PR tree-optimization/97806
5129 * tree-ssa-pre.c (pre_expr_DFS): New overload for visiting
5130 values, visiting all leaders for a value. Use a bitmap
5131 for visited values.
5132 (sorted_array_from_bitmap_set): Walk over values and adjust.
5133
5134 2020-11-12 Andreas Krebbel <krebbel@linux.ibm.com>
5135
5136 PR target/97326
5137 * config/s390/vector.md: Support vector floating point modes in
5138 vec_cmp.
5139
5140 2020-11-12 Andreas Krebbel <krebbel@linux.ibm.com>
5141
5142 * config/s390/vector.md: Rename tointvec to TOINTVEC.
5143 * config/s390/vx-builtins.md: Likewise.
5144
5145 2020-11-12 Jason Merrill <jason@redhat.com>
5146
5147 PR debug/97060
5148 * dwarf2out.c (gen_subprogram_die): It's a declaration
5149 if DECL_INITIAL isn't set.
5150
5151 2020-11-12 David Malcolm <dmalcolm@redhat.com>
5152
5153 PR tree-optimization/97424
5154 * doc/invoke.texi (Static Analyzer Options): Add
5155 -Wno-analyzer-shift-count-negative and
5156 -Wno-analyzer-shift-count-overflow.
5157 (-Wno-analyzer-shift-count-negative): New.
5158 (-Wno-analyzer-shift-count-overflow): New.
5159
5160 2020-11-11 Iain Sandoe <iain@sandoe.co.uk>
5161
5162 * config/darwin-protos.h (darwin_make_eh_symbol_indirect): New.
5163 * config/darwin.c (darwin_make_eh_symbol_indirect): New. Use
5164 Mach-O semantics for personality and ldsa indirections.
5165 * config/darwin.h (TARGET_ASM_MAKE_EH_SYMBOL_INDIRECT): New.
5166 * doc/tm.texi: Regenerate.
5167 * doc/tm.texi.in: Add TARGET_ASM_MAKE_EH_SYMBOL_INDIRECT hook.
5168 * dwarf2out.c (dwarf2out_do_cfi_startproc): If the target defines
5169 a hook for indirecting personality and ldsa references, use that
5170 otherwise default to ELF semantics.
5171 * target.def (make_eh_symbol_indirect): New target hook.
5172
5173 2020-11-11 Patrick Palka <ppalka@redhat.com>
5174
5175 PR c++/88115
5176 * common.opt (-fabi-version): Document =15.
5177 * doc/invoke.texi (C++ Dialect Options): Likewise.
5178
5179 2020-11-11 Marek Polacek <polacek@redhat.com>
5180
5181 PR c++/97518
5182 * tree.c (maybe_wrap_with_location): Don't add a location
5183 wrapper around an artificial and ignored decl.
5184
5185 2020-11-11 Richard Biener <rguenther@suse.de>
5186
5187 PR tree-optimization/97623
5188 * tree-ssa-pre.c (create_expression_by_pieces): Guard
5189 NEW_SETS access.
5190 (insert_into_preds_of_block): Likewise.
5191
5192 2020-11-11 Richard Biener <rguenther@suse.de>
5193
5194 * tree-ssa-pre.c (pre_expr_DFS): New function.
5195 (sorted_array_from_bitmap_set): Use it to properly
5196 topologically sort the expression set.
5197 (clean): Verify we've cleaned everything we should.
5198
5199 2020-11-11 Richard Biener <rguenther@suse.de>
5200
5201 PR tree-optimization/97623
5202 * params.opt (-param=max-pre-hoist-insert-iterations): Remove
5203 again.
5204 * doc/invoke.texi (max-pre-hoist-insert-iterations): Likewise.
5205 * tree-ssa-pre.c (insert): Move hoist insertion after PRE
5206 insertion iteration and do not iterate it.
5207
5208 2020-11-11 Richard Sandiford <richard.sandiford@arm.com>
5209
5210 * config/aarch64/aarch64-sve.md (@vcond_mask_<mode><vpred>): Extend
5211 from SVE_FULL to SVE_ALL.
5212 (*vcond_mask_<mode><vpred>): Likewise.
5213 (@aarch64_sel_dup<mode>): Likewise.
5214 (vcond<SVE_FULL:mode><v_int_equiv>): Extend to...
5215 (vcond<SVE_ALL:mode><SVE_I:mode>): ...this, but requiring the
5216 sizes of the container modes to match.
5217 (vcondu<SVE_FULL:mode><v_int_equiv>): Extend to...
5218 (vcondu<SVE_ALL:mode><SVE_I:mode>): ...this.
5219 (vec_cmp<SVE_FULL_I:mode><vpred>): Extend to...
5220 (vec_cmp<SVE_I:mode><vpred>): ...this.
5221 (vec_cmpu<SVE_FULL_I:mode><vpred>): Extend to...
5222 (vec_cmpu<SVE_I:mode><vpred>): ...this.
5223 (@aarch64_pred_cmp<cmp_op><SVE_FULL_I:mode>): Extend to...
5224 (@aarch64_pred_cmp<cmp_op><SVE_I:mode>): ...this.
5225 (*cmp<cmp_op><SVE_FULL_I:mode>_cc): Extend to...
5226 (*cmp<cmp_op><SVE_I:mode>_cc): ...this.
5227 (*cmp<cmp_op><SVE_FULL_I:mode>_ptest): Extend to...
5228 (*cmp<cmp_op><SVE_I:mode>_ptest): ...this.
5229 (*cmp<cmp_op><SVE_FULL_I:mode>_and): Extend to...
5230 (*cmp<cmp_op><SVE_I:mode>_and): ...this.
5231
5232 2020-11-11 Richard Sandiford <richard.sandiford@arm.com>
5233
5234 * optabs-tree.c (expand_vec_cond_expr_p): Allow the compared values
5235 and the selected values to have different mode sizes.
5236 * gimple-isel.cc (gimple_expand_vec_cond_expr): Likewise.
5237
5238 2020-11-11 Hongtao Liu <hongtao.liu@intel.com>
5239 Hongyu Wang <hongyu.wang@intel.com>
5240
5241 * common/config/i386/cpuinfo.h (get_available_features):
5242 Detect AVXVNNI.
5243 * common/config/i386/i386-common.c
5244 (OPTION_MASK_ISA2_AVXVNNI_SET,
5245 OPTION_MASK_ISA2_AVXVNNI_UNSET): New.
5246 (OPTION_MASK_ISA2_AVX2_UNSET): Add AVXVNNI.
5247 (ix86_hanlde_option): Handle -mavxvnni, unset avxvnni when
5248 avx2 is disabled.
5249 * common/config/i386/i386-cpuinfo.h (enum processor_features):
5250 Add FEATURE_AVXVNNI.
5251 * common/config/i386/i386-isas.h: Add ISA_NAMES_TABLE_ENTRY
5252 for avxvnni.
5253 * config.gcc: Add avxvnniintrin.h.
5254 * config/i386/avx512vnnivlintrin.h: Reimplement 128/256 bit non-mask
5255 intrinsics with macros to support unified interface.
5256 * config/i386/avxvnniintrin.h: New header file.
5257 * config/i386/cpuid.h (bit_AVXVNNI): New.
5258 * config/i386/i386-builtins.c (def_builtin): Handle AVXVNNI mask
5259 for unified builtin.
5260 * config/i386/i386-builtin.def (BDESC): Adjust AVX512VNNI
5261 builtins for AVXVNNI.
5262 * config/i386/i386-c.c (ix86_target_macros_internal): Define
5263 __AVXVNNI__.
5264 * config/i386/i386-expand.c (ix86_expand_builtin): Handle bisa
5265 for AVXVNNI to support unified intrinsic name, since there is no
5266 dependency between AVX512VNNI and AVXVNNI.
5267 * config/i386/i386-options.c (isa2_opts): Add -mavxvnni.
5268 (ix86_valid_target_attribute_inner_p): Handle avxnnni.
5269 (ix86_option_override_internal): Ditto.
5270 * config/i386/i386.h (TARGET_AVXVNNI, TARGET_AVXVNNI_P,
5271 TARGET_AVXVNNI_P, PTA_AVXVNNI): New.
5272 (PTA_SAPPHIRERAPIDS): Add AVX_VNNI.
5273 (PTA_ALDERLAKE): Likewise.
5274 * config/i386/i386.md ("isa"): Add avxvnni, avx512vnnivl.
5275 ("enabled"): Adjust for avxvnni and avx512vnnivl.
5276 * config/i386/i386.opt: Add option -mavxvnni.
5277 * config/i386/immintrin.h: Include avxvnniintrin.h.
5278 * config/i386/sse.md (vpdpbusd_<mode>): Adjust for AVXVNNI.
5279 (vpdpbusds_<mode>): Likewise.
5280 (vpdpwssd_<mode>): Likewise.
5281 (vpdpwssds_<mode>): Likewise.
5282 (vpdpbusd_v16si): New.
5283 (vpdpbusds_v16si): Likewise.
5284 (vpdpwssd_v16si): Likewise.
5285 (vpdpwssds_v16si): Likewise.
5286 * doc/invoke.texi: Document -mavxvnni.
5287 * doc/extend.texi: Document avxvnni.
5288 * doc/sourcebuild.texi: Document target avxvnni.
5289
5290 2020-11-11 Martin Liska <mliska@suse.cz>
5291
5292 * tree.c (copy_node): Fix spelling.
5293
5294 2020-11-11 Richard Biener <rguenther@suse.de>
5295
5296 * tree-ssa-pre.c (phi_translate_set): Do not sort the
5297 expression set topologically.
5298
5299 2020-11-11 Aldy Hernandez <aldyh@redhat.com>
5300
5301 * value-range.cc (irange::set): Early exit on VR_VARYING.
5302
5303 2020-11-11 Zhiheng Xie <xiezhiheng@huawei.com>
5304 Nannan Zheng <zhengnannan@huawei.com>
5305
5306 * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG
5307 for arithmetic operation intrinsics.
5308
5309 2020-11-11 Strager Neds <strager.nds@gmail.com>
5310
5311 * cgraph.h (symtab_node::set_section_for_node): Declare new
5312 overload.
5313 (symtab_node::set_section_from_string): Rename from set_section.
5314 (symtab_node::set_section_from_node): Declare.
5315 * symtab.c (symtab_node::set_section_for_node): Define new
5316 overload.
5317 (symtab_node::set_section_from_string): Rename from set_section.
5318 (symtab_node::set_section_from_node): Define.
5319 (symtab_node::set_section): Call renamed set_section_from_string.
5320 (symtab_node::set_section): Call new set_section_from_node.
5321
5322 2020-11-11 Strager Neds <strager.nds@gmail.com>
5323
5324 * symtab.c (symtab_node::set_section_for_node): Extract reference
5325 counting logic into ...
5326 (retain_section_hash_entry): ... here (new function) and ...
5327 (release_section_hash_entry): ... here (new function).
5328
5329 2020-11-11 liuhongt <hongtao.liu@intel.com>
5330
5331 * config/i386/i386.h (PTA_MOVDIRI, PTA_MOVDIR64B,
5332 PTA_AMX_TILE, PTA_AMX_INT8, PTA_AMX_BF16, PTA_HRESET):
5333 Formatting.
5334
5335 2020-11-11 Ilya Leoshkevich <iii@linux.ibm.com>
5336
5337 * config/s390/s390.h (HAVE_TF): Use opaque value when
5338 GENERATOR_FILE is defined.
5339
5340 2020-11-10 Strager Neds <strager.nds@gmail.com>
5341
5342 * cgraph.h (symtab_node::get_section): Constify.
5343 (symtab_node::set_section): Declare new overload.
5344 * symtab.c (symtab_node::set_section): Define new overload.
5345 (symtab_node::copy_visibility_from): Use new overload of
5346 symtab_node::set_section.
5347 (symtab_node::resolve_alias): Same.
5348 * tree.h (set_decl_section_name): Declare new overload.
5349 * tree.c (set_decl_section_name): Define new overload.
5350 * tree-emutls.c (get_emutls_init_templ_addr): Same.
5351 * cgraphclones.c (cgraph_node::create_virtual_clone): Use new
5352 overload of symtab_node::set_section.
5353 (cgraph_node::create_version_clone_with_body): Same.
5354 * trans-mem.c (ipa_tm_create_version): Same.
5355
5356 2020-11-10 Aldy Hernandez <aldyh@redhat.com>
5357
5358 * value-range.cc (irange::set): Early exit for poly ints.
5359
5360 2020-11-10 Tobias Burnus <tobias@codesourcery.com>
5361
5362 * gimplify.c (gimplify_scan_omp_clauses, gimplify_omp_loop): Use 'do'
5363 instead of 'for' in error messages for Fortran.
5364 * omp-low.c (check_omp_nesting_restrictions): Likewise
5365
5366 2020-11-10 Matthew Malcomson <matthew.malcomson@arm.com>
5367
5368 * opts.c (control_options_for_live_patching): Reform 'is incompatible
5369 with' error messages to use a standard message with differing format
5370 arguments.
5371 (finish_options): Likewise.
5372
5373 2020-11-10 Richard Biener <rguenther@suse.de>
5374
5375 PR tree-optimization/97769
5376 * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
5377 Remove assert.
5378
5379 2020-11-10 Richard Biener <rguenther@suse.de>
5380
5381 PR tree-optimization/97780
5382 * tree-ssa-pre.c (fini_pre): Deal with added basic blocks
5383 when freeing PHI_TRANS_TABLE.
5384
5385 2020-11-10 Zhiheng Xie <xiezhiheng@huawei.com>
5386 Nannan Zheng <zhengnannan@huawei.com>
5387
5388 * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG
5389 for tbl/tbx intrinsics.
5390
5391 2020-11-10 Chung-Lin Tang <cltang@codesourcery.com>
5392
5393 * gimplify.c (is_or_contains_p): New static helper function.
5394 (omp_target_reorder_clauses): New function.
5395 (gimplify_scan_omp_clauses): Add use of omp_target_reorder_clauses to
5396 reorder clause list according to OpenMP 5.0 rules. Add handling of
5397 GOMP_MAP_ATTACH_DETACH for OpenMP cases.
5398 * omp-low.c (is_omp_target): New static helper function.
5399 (scan_sharing_clauses): Add scan phase handling of GOMP_MAP_ATTACH/DETACH
5400 for OpenMP cases.
5401 (lower_omp_target): Add lowering handling of GOMP_MAP_ATTACH/DETACH for
5402 OpenMP cases.
5403
5404 2020-11-10 Ilya Leoshkevich <iii@linux.ibm.com>
5405
5406 * config/s390/s390-modes.def (FPRX2): New mode.
5407 * config/s390/s390-protos.h (s390_fma_allowed_p): New function.
5408 * config/s390/s390.c (s390_fma_allowed_p): Likewise.
5409 (s390_build_signbit_mask): Support 128-bit masks.
5410 (print_operand): Support printing the second word of a TFmode
5411 operand as vector register.
5412 (constant_modes): Add FPRX2mode.
5413 (s390_class_max_nregs): Return 1 for TFmode on z14+.
5414 (s390_is_fpr128): New function.
5415 (s390_is_vr128): Likewise.
5416 (s390_can_change_mode_class): Use s390_is_fpr128 and
5417 s390_is_vr128 in order to determine whether mode refers to a FPR
5418 pair or to a VR.
5419 (s390_emit_compare): Force TFmode operands into registers on
5420 z14+.
5421 * config/s390/s390.h (HAVE_TF): New macro.
5422 (EXPAND_MOVTF): New macro.
5423 (EXPAND_TF): Likewise.
5424 * config/s390/s390.md (PFPO_OP_TYPE_FPRX2): PFPO_OP_TYPE_TF
5425 alias.
5426 (ALL): Add FPRX2.
5427 (FP_ALL): Add FPRX2 for z14+, restrict TFmode to z13-.
5428 (FP): Likewise.
5429 (FP_ANYTF): New mode iterator.
5430 (BFP): Add FPRX2 for z14+, restrict TFmode to z13-.
5431 (TD_TF): Likewise.
5432 (xde): Add FPRX2.
5433 (nBFP): Likewise.
5434 (nDFP): Likewise.
5435 (DSF): Likewise.
5436 (DFDI): Likewise.
5437 (SFSI): Likewise.
5438 (DF): Likewise.
5439 (SF): Likewise.
5440 (fT0): Likewise.
5441 (bt): Likewise.
5442 (_d): Likewise.
5443 (HALF_TMODE): Likewise.
5444 (tf_fpr): New mode_attr.
5445 (type): New mode_attr.
5446 (*cmp<mode>_ccz_0): Use type instead of mode with fsimp.
5447 (*cmp<mode>_ccs_0_fastmath): Likewise.
5448 (*cmptf_ccs): New pattern for wfcxb.
5449 (*cmptf_ccsfps): New pattern for wfkxb.
5450 (mov<mode>): Rename to mov<mode><tf_fpr>.
5451 (signbit<mode>2): Rename to signbit<mode>2<tf_fpr>.
5452 (isinf<mode>2): Renamed to isinf<mode>2<tf_fpr>.
5453 (*TDC_insn_<mode>): Use type instead of mode with fsimp.
5454 (fixuns_trunc<FP:mode><GPR:mode>2): Rename to
5455 fixuns_trunc<FP:mode><GPR:mode>2<FP:tf_fpr>.
5456 (fix_trunctf<mode>2): Rename to fix_trunctf<mode>2_fpr.
5457 (floatdi<mode>2): Rename to floatdi<mode>2<tf_fpr>, use type
5458 instead of mode with itof.
5459 (floatsi<mode>2): Rename to floatsi<mode>2<tf_fpr>, use type
5460 instead of mode with itof.
5461 (*floatuns<GPR:mode><FP:mode>2): Use type instead of mode for
5462 itof.
5463 (floatuns<GPR:mode><FP:mode>2): Rename to
5464 floatuns<GPR:mode><FP:mode>2<tf_fpr>.
5465 (trunctf<mode>2): Rename to trunctf<mode>2_fpr, use type instead
5466 of mode with fsimp.
5467 (extend<DSF:mode><BFP:mode>2): Rename to
5468 extend<DSF:mode><BFP:mode>2<BFP:tf_fpr>.
5469 (<FPINT:fpint_name><BFP:mode>2): Rename to
5470 <FPINT:fpint_name><BFP:mode>2<BFP:tf_fpr>, use type instead of
5471 mode with fsimp.
5472 (rint<BFP:mode>2): Rename to rint<BFP:mode>2<BFP:tf_fpr>, use
5473 type instead of mode with fsimp.
5474 (<FPINT:fpint_name><DFP:mode>2): Use type instead of mode for
5475 fsimp.
5476 (rint<DFP:mode>2): Likewise.
5477 (trunc<BFP:mode><DFP_ALL:mode>2): Rename to
5478 trunc<BFP:mode><DFP_ALL:mode>2<BFP:tf_fpr>.
5479 (trunc<DFP_ALL:mode><BFP:mode>2): Rename to
5480 trunc<DFP_ALL:mode><BFP:mode>2<BFP:tf_fpr>.
5481 (extend<BFP:mode><DFP_ALL:mode>2): Rename to
5482 extend<BFP:mode><DFP_ALL:mode>2<BFP:tf_fpr>.
5483 (extend<DFP_ALL:mode><BFP:mode>2): Rename to
5484 extend<DFP_ALL:mode><BFP:mode>2<BFP:tf_fpr>.
5485 (add<mode>3): Rename to add<mode>3<tf_fpr>, use type instead of
5486 mode with fsimp.
5487 (*add<mode>3_cc): Use type instead of mode with fsimp.
5488 (*add<mode>3_cconly): Likewise.
5489 (sub<mode>3): Rename to sub<mode>3<tf_fpr>, use type instead of
5490 mode with fsimp.
5491 (*sub<mode>3_cc): Use type instead of mode with fsimp.
5492 (*sub<mode>3_cconly): Likewise.
5493 (mul<mode>3): Rename to mul<mode>3<tf_fpr>, use type instead of
5494 mode with fsimp.
5495 (fma<mode>4): Restrict using s390_fma_allowed_p.
5496 (fms<mode>4): Restrict using s390_fma_allowed_p.
5497 (div<mode>3): Rename to div<mode>3<tf_fpr>, use type instead of
5498 mode with fdiv.
5499 (neg<mode>2): Rename to neg<mode>2<tf_fpr>.
5500 (*neg<mode>2_cc): Use type instead of mode with fsimp.
5501 (*neg<mode>2_cconly): Likewise.
5502 (*neg<mode>2_nocc): Likewise.
5503 (*neg<mode>2): Likeiwse.
5504 (abs<mode>2): Rename to abs<mode>2<tf_fpr>, use type instead of
5505 mode with fdiv.
5506 (*abs<mode>2_cc): Use type instead of mode with fsimp.
5507 (*abs<mode>2_cconly): Likewise.
5508 (*abs<mode>2_nocc): Likewise.
5509 (*abs<mode>2): Likewise.
5510 (*negabs<mode>2_cc): Likewise.
5511 (*negabs<mode>2_cconly): Likewise.
5512 (*negabs<mode>2_nocc): Likewise.
5513 (*negabs<mode>2): Likewise.
5514 (sqrt<mode>2): Rename to sqrt<mode>2<tf_fpr>, use type instead
5515 of mode with fsqrt.
5516 (cbranch<mode>4): Use FP_ANYTF instead of FP.
5517 (copysign<mode>3): Rename to copysign<mode>3<tf_fpr>, use type
5518 instead of mode with fsimp.
5519 * config/s390/s390.opt (flag_vx_long_double_fma): New
5520 undocumented option.
5521 * config/s390/vector.md (V_HW): Add TF for z14+.
5522 (V_HW2): Likewise.
5523 (VFT): Likewise.
5524 (VF_HW): Likewise.
5525 (V_128): Likewise.
5526 (tf_vr): New mode_attr.
5527 (tointvec): Add TF.
5528 (mov<mode>): Rename to mov<mode><tf_vr>.
5529 (movetf): New dispatcher.
5530 (*vec_tf_to_v1tf): Rename to *vec_tf_to_v1tf_fpr, restrict to
5531 z13-.
5532 (*vec_tf_to_v1tf_vr): New pattern for z14+.
5533 (*fprx2_to_tf): Likewise.
5534 (*mov_tf_to_fprx2_0): Likewise.
5535 (*mov_tf_to_fprx2_1): Likewise.
5536 (add<mode>3): Rename to add<mode>3<tf_vr>.
5537 (addtf3): New dispatcher.
5538 (sub<mode>3): Rename to sub<mode>3<tf_vr>.
5539 (subtf3): New dispatcher.
5540 (mul<mode>3): Rename to mul<mode>3<tf_vr>.
5541 (multf3): New dispatcher.
5542 (div<mode>3): Rename to div<mode>3<tf_vr>.
5543 (divtf3): New dispatcher.
5544 (sqrt<mode>2): Rename to sqrt<mode>2<tf_vr>.
5545 (sqrttf2): New dispatcher.
5546 (fma<mode>4): Restrict using s390_fma_allowed_p.
5547 (fms<mode>4): Likewise.
5548 (neg_fma<mode>4): Likewise.
5549 (neg_fms<mode>4): Likewise.
5550 (neg<mode>2): Rename to neg<mode>2<tf_vr>.
5551 (negtf2): New dispatcher.
5552 (abs<mode>2): Rename to abs<mode>2<tf_vr>.
5553 (abstf2): New dispatcher.
5554 (float<mode>tf2_vr): New forwarder.
5555 (float<mode>tf2): New dispatcher.
5556 (floatuns<mode>tf2_vr): New forwarder.
5557 (floatuns<mode>tf2): New dispatcher.
5558 (fix_trunctf<mode>2_vr): New forwarder.
5559 (fix_trunctf<mode>2): New dispatcher.
5560 (fixuns_trunctf<mode>2_vr): New forwarder.
5561 (fixuns_trunctf<mode>2): New dispatcher.
5562 (<FPINT:fpint_name><VF_HW:mode>2<VF_HW:tf_vr>): New pattern.
5563 (<FPINT:fpint_name>tf2): New forwarder.
5564 (rint<mode>2<tf_vr>): New pattern.
5565 (rinttf2): New forwarder.
5566 (*trunctfdf2_vr): New pattern.
5567 (trunctfdf2_vr): New forwarder.
5568 (trunctfdf2): New dispatcher.
5569 (trunctfsf2_vr): New forwarder.
5570 (trunctfsf2): New dispatcher.
5571 (extenddftf2_vr): New pattern.
5572 (extenddftf2): New dispatcher.
5573 (extendsftf2_vr): New forwarder.
5574 (extendsftf2): New dispatcher.
5575 (signbittf2_vr): New forwarder.
5576 (signbittf2): New dispatchers.
5577 (isinftf2_vr): New forwarder.
5578 (isinftf2): New dispatcher.
5579 * config/s390/vx-builtins.md (*vftci<mode>_cconly): Use VF_HW
5580 instead of VECF_HW, add missing constraint, add vw support.
5581 (vftci<mode>_intcconly): Use VF_HW instead of VECF_HW.
5582 (*vftci<mode>): Rename to vftci<mode>, use VF_HW instead of
5583 VECF_HW, and vw support.
5584 (vftci<mode>_intcc): Use VF_HW instead of VECF_HW.
5585
5586 2020-11-10 Eric Botcazou <ebotcazou@adacore.com>
5587
5588 * range-op.cc (operator_logical_not::fold_range): Tidy up.
5589 (operator_logical_not::op1_range): Call above method.
5590 (operator_bitwise_not::fold_range): If the type is compatible
5591 with boolean, call op_logical_not.fold_range.
5592 (operator_bitwise_not::op1_range): If the type is compatible
5593 with boolean, call op_logical_not.op1_range.
5594
5595 2020-11-10 Richard Biener <rguenther@suse.de>
5596
5597 * tree-ssa-pre.c (pre_expr_d::value_id): Add.
5598 (constant_value_expressions): Turn into an array of pre_expr.
5599 (get_or_alloc_expr_for_nary): New function.
5600 (get_or_alloc_expr_for_reference): Likewise.
5601 (add_to_value): For constant values only ever add a single
5602 CONSTANT.
5603 (get_expr_value_id): Return the new value_id member.
5604 (vn_valnum_from_value_id): Split out and simplify constant
5605 value id handling.
5606 (get_or_alloc_expr_for_constant): Set the value_id member.
5607 (phi_translate_1): Use get_or_alloc_expr_for_*.
5608 (compute_avail): Likewise.
5609 (bitmap_find_leader): Simplify constant value id handling.
5610
5611 2020-11-10 Alex Coplan <alex.coplan@arm.com>
5612
5613 * doc/md.texi (Modifiers): Fix grammar in description of
5614 earlyclobber constraint modifier.
5615
5616 2020-11-10 Jakub Jelinek <jakub@redhat.com>
5617
5618 PR tree-optimization/97764
5619 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): For
5620 little-endian stores with negative pd.offset, subtract
5621 BITS_PER_UNIT - amnt from size if amnt is non-zero.
5622
5623 2020-11-10 Richard Biener <rguenther@suse.de>
5624
5625 PR tree-optimization/97760
5626 * tree-vect-loop.c (check_reduction_path): Reject
5627 reduction paths we do not handle in epilogue generation.
5628
5629 2020-11-10 Aldy Hernandez <aldyh@redhat.com>
5630
5631 PR tree-optimization/97767
5632 * value-range.cc (dump_bound_with_infinite_markers): Use
5633 wi::min_value and wi::max_value.
5634 (range_tests_strict_enum): New.
5635 (range_tests): Call range_tests_strict_enum.
5636 * value-range.h (irange::varying_p): Use wi::min_value
5637 and wi::max_value.
5638 (irange::set_varying): Same.
5639 (irange::normalize_min_max): Remove comment.
5640
5641 2020-11-10 Andrew MacLeod <amacleod@redhat.com>
5642
5643 PR tree-optimization/97567
5644 * gimple-range-gori.cc: (gori_compute::logical_combine): False
5645 OR operations should intersect the 2 results.
5646 (gori_compute::compute_logical_operands_in_chain): If def chains
5647 are outside the current basic block, don't follow them.
5648
5649 2020-11-09 Claudiu Zissulescu <claziss@synopsys.com>
5650
5651 * config/arc/arc.c (arc_split_move): Recognize vadd2 instructions.
5652 * config/arc/arc.md (movdi_insn): Update pattern to use vadd2
5653 instructions.
5654 (movdf_insn): Likewise.
5655 (maddhisi4): New pattern.
5656 (umaddhisi4): Likewise.
5657 * config/arc/simdext.md (mov<mode>_int): Update pattern to use
5658 vadd2.
5659 (sdot_prodv4hi): New pattern.
5660 (udot_prodv4hi): Likewise.
5661 (arc_vec_<V_US>mac_hi_v4hi): Update/renamed to
5662 arc_vec_<V_US>mac_v2hiv2si.
5663 (arc_vec_<V_US>mac_v2hiv2si_zero): New pattern.
5664 * config/arc/constraints.md (Ral): Accumulator register
5665 constraint.
5666
5667 2020-11-09 Aldy Hernandez <aldyh@redhat.com>
5668
5669 * function-tests.c (test_ranges): Call range_op_tests.
5670 * range-op.cc (build_range3): Move to value-range.cc.
5671 (range3_tests): Same.
5672 (int_range_max_tests): Same.
5673 (multi_precision_range_tests): Same.
5674 (range_tests): Same.
5675 (operator_tests): Split up...
5676 (range_op_tests): Split up...
5677 (range_op_cast_tests): ...here.
5678 (range_op_lshift_tests): ...here.
5679 (range_op_rshift_tests): ...here.
5680 (range_op_bitwise_and_tests): ...here.
5681 * selftest.h (range_op_tests): New.
5682 * value-range.cc (build_range3): New.
5683 (range_tests_irange3): New.
5684 (range_tests_int_range_max): New.
5685 (range_tests_legacy): New.
5686 (range_tests_misc): New.
5687 (range_tests): New.
5688
5689 2020-11-09 Richard Biener <rguenther@suse.de>
5690
5691 PR tree-optimization/97761
5692 * tree-vect-slp.c (vect_bb_slp_mark_live_stmts): Remove
5693 premature end of DFS walk.
5694
5695 2020-11-09 Aldy Hernandez <aldyh@redhat.com>
5696
5697 * value-range.cc (irange::swap_out_of_order_endpoints): Rewrite
5698 into static function.
5699 (irange::set): Cleanup redundant manipulations.
5700 * value-range.h (irange::normalize_min_max): Modify object
5701 in-place instead of modifying arguments.
5702
5703 2020-11-09 Andrea Corallo <andrea.corallo@arm.com>
5704
5705 * config/aarch64/aarch64-builtins.c
5706 (aarch64_expand_fcmla_builtin): Do not alter force_reg returned
5707 register.
5708
5709 2020-11-09 Richard Biener <rguenther@suse.de>
5710
5711 PR tree-optimization/97753
5712 * tree-vect-loop.c (vectorizable_induction): Fill vec_steps
5713 when CSEing inside the group.
5714
5715 2020-11-09 Richard Biener <rguenther@suse.de>
5716
5717 PR tree-optimization/97746
5718 * tree-vect-patterns.c (vect_determine_precisions): First walk PHIs.
5719
5720 2020-11-09 Richard Biener <rguenther@suse.de>
5721
5722 * tree-ssa-pre.c (get_representative_for): CSE VN_INFO calls.
5723 (create_expression_by_pieces): Likewise.
5724 (insert_into_preds_of_block): Likewsie.
5725 (do_pre_regular_insertion): Likewsie.
5726 * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_insert):
5727 Likewise.
5728 (eliminate_dom_walker::eliminate_stmt): Likewise.
5729
5730 2020-11-09 Richard Biener <rguenther@suse.de>
5731
5732 PR tree-optimization/97765
5733 * tree-ssa-pre.c (bb_bitmap_sets::phi_translate_table): Add.
5734 (PHI_TRANS_TABLE): New macro.
5735 (phi_translate_table): Remove.
5736 (expr_pred_trans_d::pred): Remove.
5737 (expr_pred_trans_d::hash): Simplify.
5738 (expr_pred_trans_d::equal): Likewise.
5739 (phi_trans_add): Adjust.
5740 (phi_translate): Likewise. Remove hash-table expansion
5741 detection and optimization.
5742 (phi_translate_set): Allocate PHI_TRANS_TABLE here.
5743 (init_pre): Adjsust.
5744 (fini_pre): Free PHI_TRANS_TABLE.
5745
5746 2020-11-09 Lili Cui <lili.cui@intel.com>
5747
5748 PR target/97685
5749 * config/i386/i386.h:
5750 (PTA_BROADWELL): Delete PTA_PRFCHW.
5751 (PTA_SILVERMONT): Add PTA_PRFCHW.
5752 (PTA_KNL): Add PTA_PREFETCHWT1.
5753 (PTA_TREMONT): Add PTA_MOVDIRI, PTA_MOVDIR64B, PTA_CLDEMOTE and PTA_WAITPKG.
5754 * doc/invoke.texi: Delete PREFETCHW for broadwell, skylake, knl, knm,
5755 skylake-avx512, cannonlake, icelake-client, icelake-server, cascadelake,
5756 cooperlake, tigerlake and sapphirerapids.
5757 Add PREFETCHW for silvermont, goldmont, goldmont-plus and tremont.
5758 Add XSAVEC and XSAVES for goldmont, goldmont-plus and tremont.
5759 Add MOVDIRI, MOVDIR64B, CLDEMOTE and WAITPKG for tremont.
5760 Add KEYLOCKER and HREST for alderlake.
5761 Add AMX-BF16, AMX-TILE, AMX-INT8 and UINTR for sapphirerapids.
5762 Add KEYLOCKER for tigerlake.
5763
5764 2020-11-09 Kewen Lin <linkw@linux.ibm.com>
5765
5766 PR rtl-optimization/97705
5767 * ira.c (ira): Refactor some regstat free/init/compute invocation
5768 into lambda function regstat_recompute_for_max_regno, and call it
5769 when max_regno increases as remove_scratches succeeds.
5770
5771 2020-11-08 David Edelsohn <dje.gcc@gmail.com>
5772
5773 * config/rs6000/rs6000.c (rs6000_mangle_decl_assembler_name): Change
5774 DECL_IS_BUILTIN -> DECL_IS_UNDECLARED_BUILTIN.
5775
5776 2020-11-07 Martin Uecker <muecker@gwdg.de>
5777
5778 * doc/extend.texi: Document mixing labels and code.
5779 * doc/invoke.texi: Likewise.
5780
5781 2020-11-06 Segher Boessenkool <segher@kernel.crashing.org>
5782
5783 * config/rs6000/rs6000.md (@tablejump<mode>_normal): Don't abuse
5784 operands[].
5785 (@tablejump<mode>_nospec): Ditto.
5786
5787 2020-11-06 Peter Bergner <bergner@linux.ibm.com>
5788
5789 * config/rs6000/rs6000.h (BIGGEST_ALIGNMENT): Revert previous commit
5790 so as not to break the ABI.
5791 * config/rs6000/rs6000-call.c (rs6000_init_builtins): Set the ABI
5792 mandated alignment for __vector_pair and __vector_quad types.
5793
5794 2020-11-06 Jeff Law <law@torsion.usersys.redhat.com>
5795
5796 PR target/91489
5797 * config/i386/i386.md (simple_return): Also check
5798 for ms_hook_prologue function attribute.
5799 * config/i386/i386.c (ix86_can_use_return_insn_p):
5800 Also check for ms_hook_prologue function attribute.
5801 * config/i386/i386-protos.h (ix86_function_ms_hook_prologue): Declare.
5802
5803 2020-11-06 Segher Boessenkool <segher@kernel.crashing.org>
5804
5805 PR target/96933
5806 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
5807 TARGET_POWERPC64 instead of TARGET_64BIT.
5808
5809 2020-11-06 Joseph Myers <joseph@codesourcery.com>
5810
5811 * builtins.def (BUILT_IN_NANSD32, BUILT_IN_NANSD64)
5812 (BUILT_IN_NANSD128): New built-in functions.
5813 * fold-const-call.c (fold_const_call): Handle the new built-in
5814 functions.
5815 * doc/extend.texi (__builtin_nansd32, __builtin_nansd64)
5816 (__builtin_nansd128): Document.
5817 * doc/sourcebuild.texi (Effective-Target Keywords): Document
5818 fenv_exceptions_dfp.
5819
5820 2020-11-06 Bin Cheng <bin.cheng@linux.alibaba.com>
5821
5822 * tree-ssa-uninit.c (find_var_cmp_const): New function.
5823 (use_pred_not_overlap_with_undef_path_pred): Call above.
5824
5825 2020-11-06 Iain Sandoe <iain@sandoe.co.uk>
5826
5827 * config/darwin-c.c: Allow for Darwin20 to correspond to macOS 11.
5828 * config/darwin-driver.c: Likewise.
5829
5830 2020-11-06 Richard Biener <rguenther@suse.de>
5831
5832 * tree-ssa-pre.c (expr_pred_trans_d): Modify so elements
5833 are embedded rather than allocated. Remove hashval member,
5834 make all members integers.
5835 (phi_trans_add): Adjust accordingly.
5836 (phi_translate): Likewise. Deal with re-allocation
5837 of the table.
5838
5839 2020-11-06 Andrew MacLeod <amacleod@redhat.com>
5840
5841 PR tree-optimization/97737
5842 PR tree-optimization/97741
5843 * gimple-range.cc: (gimple_ranger::range_of_stmt): Intersect newly
5844 calculated ranges with the existing known global range.
5845
5846 2020-11-06 Darius Galis <darius.galis@cyberthorstudios.com>
5847
5848 * config/rx/rx.md (CTRLREG_PC): Add.
5849 * config/rx/rx.c (CTRLREG_PC): Add
5850 (rx_expand_builtin_mvtc): Add warning: PC register cannot
5851 be used as dest.
5852
5853 2020-11-06 Nathan Sidwell <nathan@acm.org>
5854
5855 * tree.h (DECL_IS_BUILTIN): Rename to ...
5856 (DECL_IS_UNDECLARED_BUILTIN): ... here. No need to use SOURCE_LOCUS.
5857 * calls.c (maybe_warn_alloc_args_overflow): Adjust for rename.
5858 * cfgexpand.c (pass_expand::execute): Likewise.
5859 * dwarf2out.c (base_type_die, is_naming_typedef_decl): Likewise.
5860 * godump.c (go_decl, go_type_decl): Likewise.
5861 * print-tree.c (print_decl_identifier): Likewise.
5862 * tree-pretty-print.c (dump_generic_node): Likewise.
5863 * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Likewise.
5864 * xcoffout.c (xcoff_assign_fundamental_type_number): Likewise.
5865
5866 2020-11-06 David Candler <david.candler@arm.com>
5867
5868 * config/aarch64/aarch64-builtins.c
5869 (TYPES_SHIFT2IMM): Add define.
5870 (TYPES_SHIFT2IMM_UUSS): Add define.
5871 (TYPES_USHIFT2IMM): Add define.
5872 * config/aarch64/aarch64-simd.md
5873 (aarch64_<sur>q<r>shr<u>n2_n<mode>): Add new insn for upper saturating shift right.
5874 * config/aarch64/aarch64-simd-builtins.def: Add intrinsics.
5875 * config/aarch64/arm_neon.h:
5876 (vqrshrn_high_n_s16): Expand using intrinsic rather than inline asm.
5877 (vqrshrn_high_n_s32): Likewise.
5878 (vqrshrn_high_n_s64): Likewise.
5879 (vqrshrn_high_n_u16): Likewise.
5880 (vqrshrn_high_n_u32): Likewise.
5881 (vqrshrn_high_n_u64): Likewise.
5882 (vqrshrun_high_n_s16): Likewise.
5883 (vqrshrun_high_n_s32): Likewise.
5884 (vqrshrun_high_n_s64): Likewise.
5885 (vqshrn_high_n_s16): Likewise.
5886 (vqshrn_high_n_s32): Likewise.
5887 (vqshrn_high_n_s64): Likewise.
5888 (vqshrn_high_n_u16): Likewise.
5889 (vqshrn_high_n_u32): Likewise.
5890 (vqshrn_high_n_u64): Likewise.
5891 (vqshrun_high_n_s16): Likewise.
5892 (vqshrun_high_n_s32): Likewise.
5893 (vqshrun_high_n_s64): Likewise.
5894
5895 2020-11-06 Richard Sandiford <richard.sandiford@arm.com>
5896
5897 * config/aarch64/aarch64-modes.def (VNx2BF, VNx4BF): Adjust nunits
5898 and alignment based on the current VG.
5899 * config/aarch64/iterators.md (SVE_ALL, SVE_24, SVE_2, SVE_4): Add
5900 partial SVE BF modes.
5901 (UNSPEC_REVBHW): New unspec.
5902 (Vetype, Vesize, Vctype, VEL, Vel, vwcore, V_INT_CONTAINER)
5903 (v_int_container, VPRED, vpred): Handle partial SVE BF modes.
5904 (container_bits, Vcwtype): New mode attributes.
5905 * config/aarch64/aarch64-sve.md
5906 (@aarch64_sve_revbhw_<SVE_ALL:mode><PRED_HSD:mode>): New pattern.
5907 (@aarch64_sve_dup_lane<mode>): Extended from SVE_FULL to SVE_ALL.
5908 (@aarch64_sve_rev<mode>, @aarch64_sve_<perm_insn><mode>): Likewise.
5909 (@aarch64_sve_ext<mode>): Likewise.
5910 * config/aarch64/aarch64.c (aarch64_classify_vector_mode): Handle
5911 E_VNx2BFmode and E_VNx4BFmode.
5912 (aarch64_evpc_rev_local): Base the analysis on the container size
5913 instead of the element size. Use the new aarch64_sve_revbhw
5914 patterns for SVE.
5915 (aarch64_evpc_dup): Handle partial SVE data modes. Use the
5916 container size instead of the element size when applying the
5917 SVE immediate limit. Fix a previously incorrect bounds check.
5918 (aarch64_expand_vec_perm_const_1): Handle partial SVE data modes.
5919
5920 2020-11-06 Martin Liska <mliska@suse.cz>
5921
5922 * common.opt: Add new -fbit-tests option.
5923 * doc/invoke.texi: Document the option.
5924 * tree-switch-conversion.c (bit_test_cluster::find_bit_tests):
5925 Use the option.
5926 * tree-switch-conversion.h (is_enabled): New function.
5927
5928 2020-11-06 Richard Biener <rguenther@suse.de>
5929
5930 * tree-ssa-sccvn.h (get_max_constant_value_id): Declare.
5931 (get_next_constant_value_id): Likewise.
5932 (value_id_constant_p): Inline and simplify.
5933 * tree-ssa-sccvn.c (constant_value_ids): Remove.
5934 (next_constant_value_id): Add.
5935 (get_or_alloc_constant_value_id): Adjust.
5936 (value_id_constant_p): Remove definition.
5937 (get_max_constant_value_id): Define.
5938 (get_next_value_id): Add assert for overflow.
5939 (get_next_constant_value_id): Define.
5940 (run_rpo_vn): Adjust.
5941 (free_rpo_vn): Likewise.
5942 (do_rpo_vn): Initialize next_constant_value_id.
5943 * tree-ssa-pre.c (constant_value_expressions): New.
5944 (add_to_value): Split into constant/non-constant value
5945 handling. Avoid exact re-allocation.
5946 (vn_valnum_from_value_id): Adjust.
5947 (phi_translate_1): Remove spurious exact re-allocation.
5948 (bitmap_find_leader): Adjust. Make sure we return
5949 a CONSTANT value for a constant value id.
5950 (do_pre_regular_insertion): Use 2 auto-elements for avail.
5951 (do_pre_partial_partial_insertion): Likewise.
5952 (init_pre): Allocate constant_value_expressions.
5953 (fini_pre): Release constant_value_expressions.
5954
5955 2020-11-06 Richard Biener <rguenther@suse.de>
5956
5957 PR tree-optimization/97706
5958 * tree-vect-patterns.c (possible_vector_mask_operation_p):
5959 PHIs are possible mask operations.
5960 (vect_determine_mask_precision): Handle PHIs.
5961 (vect_determine_precisions): Walk PHIs in BB analysis.
5962
5963 2020-11-06 Richard Biener <rguenther@suse.de>
5964
5965 * tree-vect-slp.c (vect_analyze_slp): Pass down the
5966 SLP graph entry kind.
5967 (vect_analyze_slp_instance): Simplify.
5968 (vect_build_slp_instance): Adjust.
5969 (vect_slp_check_for_constructors): Perform more
5970 eligibility checks here.
5971
5972 2020-11-06 Jan Hubicka <jh@suse.cz>
5973
5974 * ipa-ref.h (enum ipa_ref_use): Remove GTY marker.
5975 (struct ipa_ref): Remove GTY marker; reorder for better packing.
5976 (struct ipa_ref_list): Remove GTY marker; turn references
5977 nad referring to va_heap, vl_ptr vectors; update accesors.
5978 * cgraph.h (symtab_node::iterate_reference): Update.
5979 * ipa-ref.c (ipa_ref::remove_reference): Update.
5980 * symtab.c (symtab_node::create_reference): Update.
5981 (symtab_node::remove_all_references): Update.
5982 (symtab_node::resolve_alias): Update.
5983
5984 2020-11-06 Jakub Jelinek <jakub@redhat.com>
5985
5986 * ipa-modref-tree.h: Fix comment typos.
5987 * ipa-modref.c: Likewise.
5988
5989 2020-11-06 Andreas Krebbel <krebbel@linux.ibm.com>
5990
5991 * config/s390/s390.c (s390_option_override_internal): Remove
5992 override of inline params.
5993
5994 2020-11-06 Richard Biener <rguenther@suse.de>
5995
5996 PR tree-optimization/97706
5997 * tree-vect-patterns.c (vect_determine_mask_precision):
5998 Remove worklist operation.
5999 (vect_determine_stmt_precisions): Do not call
6000 vect_determine_mask_precision here.
6001 (vect_determine_precisions): Compute mask precision
6002 in a forward walk.
6003
6004 2020-11-06 Richard Biener <rguenther@suse.de>
6005
6006 PR tree-optimization/97732
6007 * tree-vect-loop.c (vectorizable_induction): Convert the
6008 init elements to the vector component type.
6009 * gimple-fold.c (gimple_build_vector): Use CONSTANT_CLASS_P
6010 rather than TREE_CONSTANT to determine if elements are
6011 eligible for VECTOR_CSTs.
6012
6013 2020-11-06 Jan Hubicka <jh@suse.cz>
6014
6015 * attr-fnspec.h (attr_fnspec::get_str): New accessor
6016 * ipa-fnsummary.c (read_ipa_call_summary): Store also parm info
6017 for builtins.
6018 * ipa-modref.c (class fnspec_summary): New type.
6019 (class fnspec_summaries_t): New type.
6020 (modref_summary::modref_summary): Initialize writes_errno.
6021 (struct modref_summary_lto): Add writes_errno.
6022 (modref_summary_lto::modref_summary_lto): Initialize writes_errno.
6023 (modref_summary::dump): Check for NULL pointers.
6024 (modref_summary_lto::dump): Dump writes_errno.
6025 (collapse_loads): Move up in source file.
6026 (collapse_stores): New function.
6027 (process_fnspec): Handle also internal calls.
6028 (analyze_call): Likewise.
6029 (analyze_stmt): Store fnspec string if needed.
6030 (analyze_function): Initialize fnspec_sumarries.
6031 (modref_summaries_lto::duplicate): Copy writes_errno.
6032 (modref_write): Store writes_errno and fnspec summaries.
6033 (read_section): Read writes_errno and fnspec summaries.
6034 (modref_read): Initialize fnspec summaries.
6035 (update_signature): Fix formating.
6036 (compute_parm_map): Return true if sucessful.
6037 (get_parm_type): New function.
6038 (get_access_for_fnspec): New function.
6039 (propagate_unknown_call): New function.
6040 (modref_propagate_in_scc): Use it.
6041 (pass_ipa_modref::execute): Delete fnspec_summaries.
6042 (ipa_modref_c_finalize): Delete fnspec_summaries.
6043 * ipa-prop.c: Include attr-fnspec.h.
6044 (ipa_compute_jump_functions_for_bb): Also compute jump functions
6045 for functions with fnspecs.
6046 (ipa_read_edge_info): Read jump functions for builtins.
6047
6048 2020-11-06 Jan Hubicka <jh@suse.cz>
6049
6050 * ipa-fnsummary.h (class size_time_entry): Do not GTY annotate.
6051 (class ipa_fnsummary): Turn size_time_table to auto_vec and
6052 call_size_time_table to effecient vec; update constructors.
6053 * ipa-fnsummary.c (ipa_fn_summary::account_size_time): Update.
6054 (ipa_fn_summary::~ipa_fn_summary): Update.
6055 (ipa_fn_summary_t::duplicate): Update.
6056 (ipa_dump_fn_summary): Update.
6057 (set_switch_stmt_execution_predicate): Update.
6058 (analyze_function_body): Update.
6059 (estimate_calls_size_and_time): Update.
6060 (ipa_call_context::estimate_size_and_time): Update.
6061 (ipa_merge_fn_summary_after_inlining): Update.
6062 (ipa_update_overall_fn_summary): Update.
6063 (inline_read_section): Update.
6064 (ipa_fn_summary_write): Update.
6065
6066 2020-11-06 Richard Biener <rguenther@suse.de>
6067
6068 PR tree-optimization/97733
6069 * tree-vect-slp.c (vect_analyze_slp_instance): If less
6070 than two reductions were relevant or live do nothing.
6071
6072 2020-11-06 Jeff Law <law@redhat.com>
6073
6074 PR tree-optimization/97223
6075 * match.pd (overflow detection and optimization): Handle conversions.
6076
6077 2020-11-06 Eugene Rozenfeld <erozen@microsoft.com>
6078
6079 * match.pd (x >> x): New pattern.
6080
6081 2020-11-06 Kito Cheng <kito.cheng@sifive.com>
6082
6083 * common/config/riscv/riscv-common.c (riscv_implied_info):
6084 Add static and const.
6085 (riscv_subset_list::handle_implied_ext): Add const due to
6086 riscv_implied_info changed to const.
6087
6088 2020-11-06 Kito Cheng <kito.cheng@sifive.com>
6089
6090 PR target/96307
6091 * toplev.c (process_options): Remove param_asan_stack checking for kasan
6092 option checking.
6093
6094 2020-11-05 Marek Polacek <polacek@redhat.com>
6095
6096 PR c++/97675
6097 * doc/invoke.texi: Document -Wexceptions.
6098
6099 2020-11-05 Marek Polacek <polacek@redhat.com>
6100
6101 PR c++/25814
6102 * doc/invoke.texi: Document -Wvexing-parse.
6103
6104 2020-11-05 Andrew MacLeod <amacleod@redhat.com>
6105
6106 PR tree-optimization/97725
6107 * range-op.cc (operator_equal::fold_range): Use new tmp value.
6108 (operator_not_equal::fold_range): Ditto.
6109 * value-query.cc (range_query::value_of_expr): Use int_range_max
6110 not a value_range.
6111 (range_query::value_on_edge): Ditto.
6112 (range_query::value_of_stmt): Ditto.
6113
6114 2020-11-05 Olivier Hainque <hainque@adacore.com>
6115
6116 * config/aarch64/aarch64-vxworks.h (TARGET_OS_USES_R18):
6117 Remove definition.
6118 (STATIC_CHAIN_REGNUM): Redefine to 9.
6119
6120 2020-11-05 Olivier Hainque <hainque@adacore.com>
6121
6122 * config/aarch64/aarch64.md: Define PROBE_STACK_FIRST_REGNUM
6123 and PROBE_STACK_SECOND_REGNUM constants, designating r10/r11.
6124 Replacements for the PROBE_STACK_FIRST/SECOND_REG constants in
6125 aarch64.c.
6126 * config/aarch64/aarch64.c (PROBE_STACK_FIRST_REG): Remove.
6127 (PROBE_STACK_SECOND_REG): Remove.
6128 (aarch64_emit_probe_stack_range): Adjust to the _REG -> _REGNUM
6129 suffix update for PROBE_STACK register numbers.
6130
6131 2020-11-05 Jan Hubicka <jh@suse.cz>
6132
6133 * gimple.c (gimple_call_fnspec): Handle C++ new and delete.
6134 * gimple.h (gimple_call_from_new_or_delete): Constify parameter.
6135
6136 2020-11-05 Aldy Hernandez <aldyh@redhat.com>
6137
6138 PR tree-optimization/97721
6139 * gimple-range.cc (get_tree_range): Drop overflow from constants.
6140
6141 2020-11-05 David Malcolm <dmalcolm@redhat.com>
6142
6143 * tree-diagnostic-path.cc (struct path_summary::event_range): Move
6144 out of path_summary to...
6145 (struct event_range): ...here.
6146 (class path_summary): Convert to...
6147 (struct path_summary): ...this.
6148 (path_summary::m_ranges): Drop "private".
6149 (path_summary::print): Convert to...
6150 (print_path_summary_as_text): ...this, passing in the path_summary
6151 explicitly.
6152 (default_tree_diagnostic_path_printer): Update for above change.
6153 (selftest::test_empty_path): Likewise.
6154 (selftest::test_intraprocedural_path): Likewise.
6155 (selftest::test_interprocedural_path_1): Likewise.
6156 (selftest::test_interprocedural_path_2): Likewise.
6157 (selftest::test_recursion): Likewise.
6158
6159 2020-11-05 qing zhao <qinzhao@gcc.gnu.org>
6160
6161 PR target/97715
6162 * config/i386/i386.c (zero_all_st_registers): Return
6163 earlier when the FPU is disabled.
6164
6165 2020-11-05 Jan Hubicka <jh@suse.cz>
6166
6167 * ipa-modref.c (parm_map_for_arg): Initialize parm_offset and
6168 parm_offset_knonw.
6169 (read_section): Set writes_errno to false.
6170
6171 2020-11-05 Richard Biener <rguenther@suse.de>
6172
6173 * tree-vect-data-refs.c (vect_slp_analyze_node_dependences):
6174 Use the original stmts.
6175 (vect_slp_analyze_node_alignment): Use the pattern stmt.
6176 * tree-vect-slp.c (vect_fixup_store_groups_with_patterns):
6177 New function.
6178 (vect_slp_analyze_bb_1): Call it.
6179
6180 2020-11-05 Tamar Christina <tamar.christina@arm.com>
6181
6182 * tree-vect-slp.c (vect_slp_tree_permute_noop_p): New.
6183 (vect_optimize_slp): Optimize permutes.
6184 (vectorizable_slp_permutation): Fix typo.
6185
6186 2020-11-05 Richard Biener <rguenther@suse.de>
6187
6188 PR debug/97718
6189 * dwarf2out.c (add_abstract_origin_attribute): Make sure to
6190 point to the abstract instance.
6191
6192 2020-11-05 Tamar Christina <tamar.christina@arm.com>
6193
6194 * tree-vect-loop.c (vect_analyze_loop_2): Check kind.
6195 * tree-vect-slp.c (vect_build_slp_instance): New.
6196 (enum slp_instance_kind): Move to...
6197 * tree-vectorizer.h (enum slp_instance_kind): .. Here
6198 (SLP_INSTANCE_KIND): New.
6199
6200 2020-11-05 Kewen Lin <linkw@linux.ibm.com>
6201
6202 PR target/96933
6203 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Use direct move
6204 instructions for vector construction with char/short types.
6205 * config/rs6000/rs6000.md (p8_mtvsrwz_v16qisi2): New define_insn.
6206 (p8_mtvsrd_v16qidi2): Likewise.
6207
6208 2020-11-04 Tamar Christina <tamar.christina@arm.com>
6209
6210 * tree-vect-slp.c (vect_analyze_slp_instance): Moved load/store lanes
6211 check to ...
6212 * tree-vect-loop.c (vect_analyze_loop_2): ..Here
6213
6214 2020-11-04 Ilya Leoshkevich <iii@linux.ibm.com>
6215
6216 * config/s390/s390.c (NR_C_MODES): Unhardcode.
6217 (s390_alloc_pool): Use size_t for iterating from 0 to
6218 NR_C_MODES.
6219 (s390_add_constant): Likewise.
6220 (s390_find_constant): Likewise.
6221 (s390_dump_pool): Likewise.
6222 (s390_free_pool): Likewise.
6223
6224 2020-11-04 Ilya Leoshkevich <iii@linux.ibm.com>
6225
6226 * config/s390/s390.md (RRe): Remove.
6227 (RXe): Remove.
6228
6229 2020-11-04 Andrew MacLeod <amacleod@redhat.com>
6230
6231 PR tree-optimization/97515
6232 * gimple-range-cache.h (class ranger_cache): New prototypes plus
6233 temporal cache pointer.
6234 * gimple-range-cache.cc (struct range_timestamp): New.
6235 (class temporal_cache): New.
6236 (temporal_cache::temporal_cache): New.
6237 (temporal_cache::~temporal_cache): New.
6238 (temporal_cache::get_timestamp): New.
6239 (temporal_cache::set_dependency): New.
6240 (temporal_cache::temporal_value): New.
6241 (temporal_cache::current_p): New.
6242 (temporal_cache::set_timestamp): New.
6243 (temporal_cache::set_always_current): New.
6244 (ranger_cache::ranger_cache): Allocate the temporal cache.
6245 (ranger_cache::~ranger_cache): Free temporal cache.
6246 (ranger_cache::get_non_stale_global_range): New.
6247 (ranger_cache::set_global_range): Add a timestamp.
6248 (ranger_cache::register_dependency): New. Add timestamp dependency.
6249 * gimple-range.cc (gimple_ranger::range_of_range_op): Add operand
6250 dependencies.
6251 (gimple_ranger::range_of_phi): Ditto.
6252 (gimple_ranger::range_of_stmt): Check if global range is stale, and
6253 recalculate if so.
6254
6255 2020-11-04 Tobias Burnus <tobias@codesourcery.com>
6256
6257 * targhooks.c (default_zero_call_used_regs): Fix flag-name typo
6258 in sorry.
6259
6260 2020-11-04 Richard Biener <rguenther@suse.de>
6261
6262 * tree-vectorizer.h (vectorizable_phi): Adjust prototype.
6263 * tree-vect-stmts.c (vect_transform_stmt): Adjust.
6264 (vect_analyze_stmt): Pass cost_vec to vectorizable_phi.
6265 * tree-vect-loop.c (vectorizable_phi): Do costing.
6266
6267 2020-11-04 Richard Biener <rguenther@suse.de>
6268
6269 PR tree-optimization/97709
6270 * tree-vect-loop.c (vectorizable_live_operation): Set
6271 SSA_NAME_OCCURS_IN_ABNORMAL_PHI when necessary.
6272
6273 2020-11-04 Jakub Jelinek <jakub@redhat.com>
6274
6275 PR tree-optimization/97690
6276 * tree-ssa-phiopt.c (conditional_replacement): Also optimize
6277 cond ? pow2p_cst : 0 as ((type) cond) << cst.
6278
6279 2020-11-04 Richard Biener <rguenther@suse.de>
6280
6281 * tree-vect-loop.c (vectorizable_induction): Re-instantiate
6282 previously removed CSE of SLP IVs.
6283
6284 2020-11-04 Uroš Bizjak <ubizjak@gmail.com>
6285
6286 * config/i386/i386-options.c (ix86_recompute_optlev_based_flags):
6287 Fix Intel MCU psABI comment w.r.t DEFAULT_PCC_STRUCT_RETURN.
6288
6289 2020-11-04 Richard Biener <rguenther@suse.de>
6290
6291 PR bootstrap/97666
6292 * tree-vect-slp.c (vect_build_slp_tree_2): Revert previous
6293 fix and instead adjust the memset.
6294
6295 2020-11-04 Pat Bernardi <bernardi@adacore.com>
6296
6297 * config/i386/i386elf.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
6298 (ASM_OUTPUT_ASCII): Likewise.
6299 (DEFAULT_PCC_STRUCT_RETURN): Define.
6300 * config/i386/i386.c (ix86_return_in_memory): Remove
6301 SUBTARGET_RETURN_IN_MEMORY.
6302
6303 2020-11-04 liuhongt <hongtao.liu@intel.com>
6304
6305 PR target/97540
6306 * ira.c: (ira_setup_alts): Extract memory from operand only
6307 for special memory constraint.
6308 * recog.c (asm_operand_ok): Ditto.
6309 * lra-constraints.c (process_alt_operands): MEM_P is
6310 required for normal memory constraint.
6311
6312 2020-11-04 liuhongt <hongtao.liu@intel.com>
6313
6314 PR target/97532
6315 * lra-constraints.c (valid_address_p): Handle operand of
6316 special memory constraint.
6317 (process_address_1): Ditto.
6318
6319 2020-11-03 Jan Hubicka <hubicka@ucw.cz>
6320
6321 PR ipa/97695
6322 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Fix ICE with
6323 in dumping code.
6324 (cgraph_node::remove): Save clone info before releasing it and pass it
6325 to unregister.
6326 * cgraph.h (symtab_node::unregister): Add clone_info parameter.
6327 (cgraph_clone::unregister): Likewise.
6328 * cgraphclones.c (cgraph_node::find_replacement): Copy clone info
6329 * symtab-clones.cc (clone_infos_t::duplicate): Remove.
6330 (clone_info::get_create): Simplify.
6331 * symtab.c (symtab_node::unregister): Pass around clone info.
6332 * varpool.c (varpool_node::remove): Update.
6333
6334 2020-11-03 Thomas Schwinge <thomas@codesourcery.com>
6335
6336 * omp-low.c (scan_omp_for) <OpenACC>: Use proper location to
6337 'inform' of enclosing parent compute construct.
6338
6339 2020-11-03 Jan Hubicka <hubicka@ucw.cz>
6340
6341 PR ipa/97698
6342 * cgraphclones.c (duplicate_thunk_for_node): Check that info is
6343 non-NULL.
6344
6345 2020-11-03 Uroš Bizjak <ubizjak@gmail.com>
6346
6347 * config/i386/i386.c (ix86_function_arg_regno_p): Use up to
6348 SSE_REGPARM_MAX registers to pass function parameters
6349 for 32bit Mach-O targets.
6350 * config/i386/i386.h (X86_32_MMX_REGPARM_MAX): New macro.
6351 (MMX_REGPARM_MAX): Use it.
6352
6353 2020-11-03 Dennis Zhang <dennis.zhang@arm.com>
6354
6355 * config/aarch64/aarch64-simd-builtins.def (vget_lo_half): New entry.
6356 (vget_hi_half): Likewise.
6357 * config/aarch64/aarch64-simd.md (aarch64_vget_lo_halfv8bf): New entry.
6358 (aarch64_vget_hi_halfv8bf): Likewise.
6359 * config/aarch64/arm_neon.h (vget_low_bf16): New intrinsic.
6360 (vget_high_bf16): Likewise.
6361
6362 2020-11-03 Yang Yang <yangyang305@huawei.com>
6363
6364 * cgraph.h (struct cgraph_simd_clone): Change field "simdlen" of
6365 struct cgraph_simd_clone from unsigned int to poly_uint64.
6366 * config/aarch64/aarch64.c
6367 (aarch64_simd_clone_compute_vecsize_and_simdlen): adaptation of
6368 operations on "simdlen".
6369 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
6370 Printf formats update.
6371 * gengtype.c (main): Handle poly_uint64.
6372 * omp-simd-clone.c (simd_clone_mangle): Likewise.Re
6373 (simd_clone_adjust_return_type): Likewise.
6374 (create_tmp_simd_array): Likewise.
6375 (simd_clone_adjust_argument_types): Likewise.
6376 (simd_clone_init_simd_arrays): Likewise.
6377 (ipa_simd_modify_function_body): Likewise.
6378 (simd_clone_adjust): Likewise.
6379 (expand_simd_clones): Likewise.
6380 * poly-int-types.h (vector_unroll_factor): New macro.
6381 * poly-int.h (constant_multiple_p): Add two-argument versions.
6382 * tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise.
6383
6384 2020-11-03 Richard Biener <rguenther@suse.de>
6385
6386 PR tree-optimization/97623
6387 * params.opt (-param=max-pre-hoist-insert-iterations): New.
6388 * doc/invoke.texi (max-pre-hoist-insert-iterations): Document.
6389 * tree-ssa-pre.c (insert): Do at most max-pre-hoist-insert-iterations
6390 hoist insert iterations.
6391
6392 2020-11-03 Richard Biener <rguenther@suse.de>
6393
6394 PR middle-end/97579
6395 * gimple-isel.cc (gimple_expand_vec_cond_expr): Use
6396 the correct types for the vcond_mask/vec_cmp optab queries.
6397
6398 2020-11-03 Andrew MacLeod <amacleod@redhat.com>
6399
6400 * gimple-range-cache.cc (ssa_global_cache::get_global_range): Return
6401 true if there was a previous range set.
6402 (ranger_cache::ranger_cache): Take a gimple_ranger parameter.
6403 (ranger_cache::set_global_range): Propagate the value if updating.
6404 (ranger_cache::propagate_cache): Renamed from iterative_cache_update.
6405 (ranger_cache::propagate_updated_value): New. Split from:
6406 (ranger_cache::fill_block_cache): Split out value propagator.
6407 * gimple-range-cache.h (ssa_global_cache): Update prototypes.
6408 (ranger_cache): Update prototypes.
6409
6410 2020-11-03 Andrew MacLeod <amacleod@redhat.com>
6411
6412 * gimple-range-cache.h (block_range_cache): Add new entry point.
6413 (ranger_cache): Privatize global abnd block cache members.
6414 * gimple-range-cache.cc (ssa_block_ranges::set_bb_range): Add bounds
6415 check.
6416 (ssa_block_ranges::set_bb_varying): Ditto.
6417 (ssa_block_ranges::get_bb_range): Ditto.
6418 (ssa_block_ranges::bb_range_p): Ditto.
6419 (block_range_cache::get_block_ranges): Fix formatting.
6420 (block_range_cache::query_block_ranges): New.
6421 (block_range_cache::get_bb_range): Use Query_block_ranges.
6422 (block_range_cache::bb_range_p): Ditto.
6423 (ranger_cache::dump): New.
6424 (ranger_cache::get_global_range): New.
6425 (ranger_cache::set_global_range): New.
6426 * gimple-range.cc (gimple_ranger::range_of_expr): Use new API.
6427 (gimple_ranger::range_of_stmt): Ditto.
6428 (gimple_ranger::export_global_ranges): Ditto.
6429 (gimple_ranger::dump): Ditto.
6430
6431 2020-11-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
6432
6433 * fold-const.c (getbyterep): Remove duplicated statement.
6434
6435 2020-11-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
6436
6437 PR target/97205
6438 * cfgexpand.c (align_local_variable): Make SSA_NAMEs
6439 at least MODE_ALIGNED.
6440 (expand_one_stack_var_at): Increase MEM_ALIGN for SSA_NAMEs.
6441
6442 2020-11-03 Zhiheng Xie <xiezhiheng@huawei.com>
6443 Nannan Zheng <zhengnannan@huawei.com>
6444
6445 * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG
6446 for AES/SHA/SM3/SM4 intrinsics.
6447
6448 2020-11-03 Zhiheng Xie <xiezhiheng@huawei.com>
6449 Nannan Zheng <zhengnannan@huawei.com>
6450
6451 * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG
6452 for compare intrinsics.
6453
6454 2020-11-03 Richard Biener <rguenther@suse.de>
6455
6456 * dwarf2out.c (maybe_create_die_with_external_ref): Remove
6457 hashtable entry.
6458
6459 2020-11-03 Andrea Corallo <andrea.corallo@arm.com>
6460
6461 * config/arm/arm_neon.h (vst2_lane_bf16, vst2q_lane_bf16)
6462 (vst3_lane_bf16, vst3q_lane_bf16, vst4_lane_bf16)
6463 (vst4q_lane_bf16): New intrinsics.
6464 * config/arm/arm_neon_builtins.def: Touch it for:
6465 __builtin_neon_vst2_lanev4bf, __builtin_neon_vst2_lanev8bf,
6466 __builtin_neon_vst3_lanev4bf, __builtin_neon_vst3_lanev8bf,
6467 __builtin_neon_vst4_lanev4bf,__builtin_neon_vst4_lanev8bf.
6468
6469 2020-11-03 Andrea Corallo <andrea.corallo@arm.com>
6470
6471 * config/arm/arm_neon.h (vld2_lane_bf16, vld2q_lane_bf16)
6472 (vld3_lane_bf16, vld3q_lane_bf16, vld4_lane_bf16)
6473 (vld4q_lane_bf16): Add intrinsics.
6474 * config/arm/arm_neon_builtins.def: Touch for:
6475 __builtin_neon_vld2_lanev4bf, __builtin_neon_vld2_lanev8bf,
6476 __builtin_neon_vld3_lanev4bf, __builtin_neon_vld3_lanev8bf,
6477 __builtin_neon_vld4_lanev4bf, __builtin_neon_vld4_lanev8bf.
6478 * config/arm/iterators.md (VQ_HS): Add V8BF to the iterator.
6479
6480 2020-11-03 Andrea Corallo <andrea.corallo@arm.com>
6481
6482 * config/arm/arm_neon.h (vst1_bf16, vst1q_bf16): Add intrinsics.
6483 * config/arm/arm_neon_builtins.def : Touch for:
6484 __builtin_neon_vst1v4bf, __builtin_neon_vst1v8bf.
6485
6486 2020-11-03 Andrea Corallo <andrea.corallo@arm.com>
6487
6488 * config/arm/arm-builtins.c (VAR14): Define macro.
6489 * config/arm/arm_neon_builtins.def: Touch for:
6490 __builtin_neon_vld1v4bf, __builtin_neon_vld1v8bf.
6491 * config/arm/arm_neon.h (vld1_bf16, vld1q_bf16): Add intrinsics.
6492
6493 2020-11-03 Andrea Corallo <andrea.corallo@arm.com>
6494
6495 * config/arm/arm_neon.h (vst1_lane_bf16, vst1q_lane_bf16): Add
6496 intrinsics.
6497 * config/arm/arm_neon_builtins.def (STORE1LANE): Add v4bf, v8bf.
6498
6499 2020-11-03 Andrea Corallo <andrea.corallo@arm.com>
6500
6501 * config/arm/arm_neon_builtins.def: Add to LOAD1LANE v4bf, v8bf.
6502 * config/arm/arm_neon.h (vld1_lane_bf16, vld1q_lane_bf16): Add
6503 intrinsics.
6504
6505 2020-11-03 Richard Biener <rguenther@suse.de>
6506
6507 PR bootstrap/97666
6508 * tree-vect-slp.c (vect_build_slp_tree_2): Scale
6509 allocation of skip_args by sizeof (bool).
6510
6511 2020-11-03 Richard Biener <rguenther@suse.de>
6512
6513 PR tree-optimization/80928
6514 * tree-vect-loop.c (vectorizable_induction): SLP vectorize
6515 nested inductions.
6516
6517 2020-11-03 Jan Hubicka <hubicka@ucw.cz>
6518
6519 PR ipa/97578
6520 * ipa-inline-transform.c (maybe_materialize_called_clones): New
6521 function.
6522 (inline_transform): Use it.
6523
6524 2020-11-03 Richard Biener <rguenther@suse.de>
6525
6526 PR tree-optimization/97678
6527 * tree-vect-slp.c (vect_build_slp_tree_2): Do not track
6528 the initial values of inductions when not nested.
6529 * tree-vect-loop.c (vectorizable_induction): Look at
6530 PHI node initial values again for SLP and not nested
6531 inductions. Handle LOOP_VINFO_MASK_SKIP_NITERS and cost
6532 invariants.
6533
6534 2020-11-03 Uroš Bizjak <ubizjak@gmail.com>
6535
6536 * config/i386/sse.md (aes<aeswideklvariant>u8):
6537 Do not use xmm_regs array. Fix whitespace.
6538
6539 2020-11-03 Uroš Bizjak <ubizjak@gmail.com>
6540
6541 * config/i386/i386-expand.c (ix86_expand_builtin): Fix comment.
6542
6543 2020-11-03 Thomas Schwinge <thomas@codesourcery.com>
6544
6545 * omp-low.c (scan_omp_for) <OpenACC>: Move earlier inconsistent
6546 nested 'reduction' clauses checking.
6547
6548 2020-11-03 Thomas Schwinge <thomas@codesourcery.com>
6549
6550 * omp-low.c (scan_omp_for) <OpenACC>: More precise diagnostics for
6551 'gang', 'worker', 'vector' clauses with arguments only allowed in
6552 'kernels' regions.
6553
6554 2020-11-03 Kewen Lin <linkw@gcc.gnu.org>
6555
6556 PR tree-optimization/96789
6557 * function.h (struct function): New member unsigned pending_TODOs.
6558 * passes.c (class pass_pre_slp_scalar_cleanup): New class.
6559 (make_pass_pre_slp_scalar_cleanup): New function.
6560 (pass_data_pre_slp_scalar_cleanup): New pass data.
6561 * passes.def: (pass_pre_slp_scalar_cleanup): New pass, add
6562 pass_fre and pass_dse as its children.
6563 * timevar.def (TV_SCALAR_CLEANUP): New timevar.
6564 * tree-pass.h (PENDING_TODO_force_next_scalar_cleanup): New
6565 pending TODO flag.
6566 (make_pass_pre_slp_scalar_cleanup): New declare.
6567 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1):
6568 Once any outermost loop gets unrolled, flag cfun pending_TODOs
6569 PENDING_TODO_force_next_scalar_cleanup on.
6570
6571 2020-11-02 Alan Modra <amodra@gmail.com>
6572
6573 PR middle-end/97267
6574 * calls.h (maybe_complain_about_tail_call): Declare.
6575 * calls.c (maybe_complain_about_tail_call): Make global.
6576 (can_implement_as_sibling_call_p): Delete reg_parm_stack_space
6577 param. Adjust caller. Move REG_PARM_STACK_SPACE check to..
6578 * config/i386/i386.c (ix86_function_ok_for_sibcall): ..here.
6579
6580 2020-11-02 Vladimir N. Makarov <vmakarov@redhat.com>
6581
6582 * ira.c (ira_remove_scratches): Rename to remove_scratches. Make
6583 it static and returning flag of any change.
6584 (ira.c): Call ira_expand_reg_equiv in case of removing scratches.
6585
6586 2020-11-02 H.J. Lu <hjl.tools@gmail.com>
6587
6588 PR target/97140
6589 * config/i386/i386-expand.c (ix86_expand_builtin): Require MMX
6590 for __builtin_ia32_maskmovq.
6591
6592 2020-11-02 Martin Sebor <msebor@redhat.com>
6593
6594 * doc/invoke.texi (-Wstringop-overflow): Correct default setting.
6595 (-Wstringop-overread): Move past -Wstringop-overflow.
6596
6597 2020-11-02 François-Xavier Coudert <fxcoudert@gcc.gnu.org>
6598
6599 PR bootstrap/57076
6600 * Makefile.in (gcc-vers.texi): Quote @, { and }.
6601
6602 2020-11-02 Carl Love <cel@us.ibm.com>
6603
6604 PR target/93449
6605 * config/rs6000/altivec.h (__builtin_bcdadd, __builtin_bcdadd_lt,
6606 __builtin_bcdadd_eq, __builtin_bcdadd_gt, __builtin_bcdadd_ofl,
6607 __builtin_bcdadd_ov, __builtin_bcdsub, __builtin_bcdsub_lt,
6608 __builtin_bcdsub_eq, __builtin_bcdsub_gt, __builtin_bcdsub_ofl,
6609 __builtin_bcdsub_ov, __builtin_bcdinvalid, __builtin_bcdmul10,
6610 __builtin_bcddiv10, __builtin_bcd2dfp, __builtin_bcdcmpeq,
6611 __builtin_bcdcmpgt, __builtin_bcdcmplt, __builtin_bcdcmpge,
6612 __builtin_bcdcmple): Add defines.
6613 * config/rs6000/altivec.md: Add UNSPEC_BCDSHIFT.
6614 (BCD_TEST): Add le, ge to code iterator.
6615 Add VBCD mode iterator.
6616 (bcd<bcd_add_sub>_test, *bcd<bcd_add_sub>_test2,
6617 bcd<bcd_add_sub>_<code>, bcd<bcd_add_sub>_<code>): Add mode to name.
6618 Change iterator from V1TI to VBCD.
6619 (*bcdinvalid_<mode>, bcdshift_v16qi): New define_insn.
6620 (bcdinvalid_<mode>, bcdmul10_v16qi, bcddiv10_v16qi): New define.
6621 * config/rs6000/dfp.md (dfp_denbcd_v16qi_inst): New define_insn.
6622 (dfp_denbcd_v16qi): New define_expand.
6623 * config/rs6000/rs6000-builtin.def (BU_P8V_MISC_1): New define.
6624 (BCDADD): Replaced with BCDADD_V1TI and BCDADD_V16QI.
6625 (BCDADD_LT): Replaced with BCDADD_LT_V1TI and BCDADD_LT_V16QI.
6626 (BCDADD_EQ): Replaced with BCDADD_EQ_V1TI and BCDADD_EQ_V16QI.
6627 (BCDADD_GT): Replaced with BCDADD_GT_V1TI and BCDADD_GT_V16QI.
6628 (BCDADD_OV): Replaced with BCDADD_OV_V1TI and BCDADD_OV_V16QI.
6629 (BCDSUB_V1TI, BCDSUB_V16QI, BCDSUB_LT_V1TI, BCDSUB_LT_V16QI,
6630 BCDSUB_LE_V1TI, BCDSUB_LE_V16QI, BCDSUB_EQ_V1TI, BCDSUB_EQ_V16QI,
6631 BCDSUB_GT_V1TI, BCDSUB_GT_V16QI, BCDSUB_GE_V1TI, BCDSUB_GE_V16QI,
6632 BCDSUB_OV_V1TI, BCDSUB_OV_V16QI, BCDINVALID_V1TI, BCDINVALID_V16QI,
6633 BCDMUL10_V16QI, BCDDIV10_V16QI, DENBCD_V16QI): New builtin definitions.
6634 (BCDADD, BCDADD_LT, BCDADD_EQ, BCDADD_GT, BCDADD_OV, BCDSUB, BCDSUB_LT,
6635 BCDSUB_LE, BCDSUB_EQ, BCDSUB_GT, BCDSUB_GE, BCDSUB_OV, BCDINVALID,
6636 BCDMUL10, BCDDIV10, DENBCD): New overload definitions.
6637 * config/rs6000/rs6000-call.c (P8V_BUILTIN_VEC_BCDADD, P8V_BUILTIN_VEC_BCDADD_LT,
6638 P8V_BUILTIN_VEC_BCDADD_EQ, P8V_BUILTIN_VEC_BCDADD_GT, P8V_BUILTIN_VEC_BCDADD_OV,
6639 P8V_BUILTIN_VEC_BCDINVALID, P9V_BUILTIN_VEC_BCDMUL10, P8V_BUILTIN_VEC_DENBCD.
6640 P8V_BUILTIN_VEC_BCDSUB, P8V_BUILTIN_VEC_BCDSUB_LT, P8V_BUILTIN_VEC_BCDSUB_LE,
6641 P8V_BUILTIN_VEC_BCDSUB_EQ, P8V_BUILTIN_VEC_BCDSUB_GT, P8V_BUILTIN_VEC_BCDSUB_GE,
6642 P8V_BUILTIN_VEC_BCDSUB_OV): New overloaded specifications.
6643 (CODE_FOR_bcdadd): Replaced with CODE_FOR_bcdadd_v16qi and CODE_FOR_bcdadd_v1ti.
6644 (CODE_FOR_bcdadd_lt): Replaced with CODE_FOR_bcdadd_lt_v16qi and CODE_FOR_bcdadd_lt_v1ti.
6645 (CODE_FOR_bcdadd_eq): Replaced with CODE_FOR_bcdadd_eq_v16qi and CODE_FOR_bcdadd_eq_v1ti.
6646 (CODE_FOR_bcdadd_gt): Replaced with CODE_FOR_bcdadd_gt_v16qi and CODE_FOR_bcdadd_gt_v1ti.
6647 (CODE_FOR_bcdsub): Replaced with CODE_FOR_bcdsub_v16qi and CODE_FOR_bcdsub_v1ti.
6648 (CODE_FOR_bcdsub_lt): Replaced with CODE_FOR_bcdsub_lt_v16qi and CODE_FOR_bcdsub_lt_v1ti.
6649 (CODE_FOR_bcdsub_eq): Replaced with CODE_FOR_bcdsub_eq_v16qi and CODE_FOR_bcdsub_eq_v1ti.
6650 (CODE_FOR_bcdsub_gt): Replaced with CODE_FOR_bcdsub_gt_v16qi and CODE_FOR_bcdsub_gt_v1ti.
6651 (rs6000_expand_ternop_builtin): Add CODE_FOR_dfp_denbcd_v16qi to else if.
6652 * doc/extend.texi: Add documentation for new builtins.
6653
6654 2020-11-02 Nathan Sidwell <nathan@acm.org>
6655
6656 * tree.c (cache_integer_cst): Fixup pointer caching to match
6657 wide_int_to_type_1's expectations. Add comment.
6658
6659 2020-11-02 Nathan Sidwell <nathan@acm.org>
6660
6661 * tree.h (id_equal): Call the symetric predicate with swapped
6662 arguments.
6663
6664 2020-11-02 Nathan Sidwell <nathan@acm.org>
6665
6666 * print-tree.c (print_node): Display all the operands of a call
6667 expr.
6668
6669 2020-11-02 Vladimir N. Makarov <vmakarov@redhat.com>
6670
6671 * config/rs6000/vsx.md (*vsx_extract_<mode>_store_p9): Add hint *
6672 to 2nd alternative of the 1st scratch.
6673
6674 2020-11-02 Sudakshina Das <sudi.das@arm.com>
6675
6676 PR target/97638
6677 * config/aarch64/aarch64-bti-insert.c (aarch64_pac_insn_p): Update
6678 return value on INSN_P check.
6679
6680 2020-11-02 Richard Biener <rguenther@suse.de>
6681
6682 * tree.h (build_real_from_wide): Declare.
6683 * tree.c (build_real_from_wide): New function.
6684 * tree-vect-slp.c (vect_build_slp_tree_2): Remove
6685 restriction on induction vectorization, represent
6686 the initial value.
6687 * tree-vect-loop.c (vect_model_induction_cost): Inline ...
6688 (vectorizable_induction): ... here. Rewrite SLP
6689 code generation.
6690
6691 2020-11-02 Martin Jambor <mjambor@suse.cz>
6692
6693 * dbgcnt.def (ipa_cp_values): New counter.
6694 (ipa_cp_vr): Likewise.
6695 * ipa-cp.c (decide_about_value): Check and bump ipa_cp_values debug
6696 counter.
6697 (decide_whether_version_node): Likewise.
6698 (ipcp_store_vr_results):Check and bump ipa_cp_vr debug counter.
6699
6700 2020-11-02 Christophe Lyon <christophe.lyon@linaro.org>
6701
6702 * config/arm/arm.c (arm_thumb1_mi_thunk): Build mi_delta in r3 and
6703 do not emit function address and delta when -mpure-code is used.
6704
6705 2020-11-02 Christophe Lyon <christophe.lyon@linaro.org>
6706
6707 * config/arm/thumb1.md (thumb1_movsi_insn): Call
6708 thumb1_gen_const_int_print.
6709 * config/arm/arm-protos.h (thumb1_gen_const_int_print): Add
6710 prototype.
6711 * config/arm/arm.c (thumb1_gen_const_int_print): New.
6712
6713 2020-11-02 Christophe Lyon <christophe.lyon@linaro.org>
6714
6715 * config/arm/arm.c (thumb1_const_rtl, thumb1_const_print): New
6716 classes.
6717 (thumb1_gen_const_int): Rename to ...
6718 (thumb1_gen_const_int_1): ... New helper function. Add capability
6719 to emit either RTL or asm, improve generated code.
6720 (thumb1_gen_const_int_rtl): New function.
6721 * config/arm/arm-protos.h (thumb1_gen_const_int): Rename to
6722 thumb1_gen_const_int_rtl.
6723 * config/arm/thumb1.md: Call thumb1_gen_const_int_rtl instead
6724 of thumb1_gen_const_int.
6725
6726 2020-11-02 Richard Biener <rguenther@suse.de>
6727
6728 PR tree-optimization/97558
6729 * tree-vect-loop.c (vectorizable_reduction): For nested SLP
6730 cycles compute invariant operands vector type.
6731
6732 2020-11-02 Richard Biener <rguenther@suse.de>
6733
6734 PR tree-optimization/97558
6735 * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns):
6736 Check for any mismatch in pattern vs. non-pattern and dissolve
6737 the group if there is one.
6738 * tree-vect-slp.c (vect_analyze_slp_instance): Avoid
6739 analyzing not relevant reductions.
6740 (vect_analyze_slp): Avoid analyzing not relevant reduction
6741 groups.
6742
6743 2020-11-02 Richard Biener <rguenther@suse.de>
6744
6745 PR tree-optimization/97650
6746 * tree-vect-slp.c (vect_get_and_check_slp_defs): Check
6747 for SSA_NAME before checking SSA_NAME_IS_DEFAULT_DEF.
6748
6749 2020-11-02 Kito Cheng <kito.cheng@sifive.com>
6750
6751 * common/config/riscv/riscv-common.c
6752 (riscv_subset_list::parse_multiletter_ext): Checking multiletter
6753 extension has more than 1 letter.
6754
6755 2020-11-02 Kito Cheng <kito.cheng@sifive.com>
6756
6757 * config.gcc (riscv*-*-*): Handle --with-multilib-generator.
6758 * configure: Regen.
6759 * configure.ac: Add --with-multilib-generator.
6760 * config/riscv/multilib-generator: Exit when parsing arch string error.
6761 * config/riscv/t-withmultilib-generator: New.
6762 * doc/install.texi: Document --with-multilib-generator.
6763
6764 2020-11-02 Christophe Lyon <christophe.lyon@linaro.org>
6765
6766 PR target/96770
6767 * config/arm/arm.c (thumb_legitimate_constant_p): Accept
6768 (symbol_ref + addend) when literal pool is disabled.
6769 (arm_valid_symbolic_address_p): Add support for thumb-1 without
6770 MOVT/MOVW.
6771 * config/arm/thumb1.md (*thumb1_movsi_insn): Accept (symbol_ref +
6772 addend) in the pure-code alternative.
6773
6774 2020-11-02 Christophe Lyon <christophe.lyon@linaro.org>
6775
6776 PR target/96967
6777 * config/arm/arm.c (thumb_legitimate_constant_p): Add support for
6778 disabled literal pool in thumb-1.
6779 * config/arm/thumb1.md (thumb1_movsi_symbol_ref): Remove.
6780 (*thumb1_movsi_insn): Add support for SYMBOL_REF with -mpure-code.
6781
6782 2020-11-01 Iain Sandoe <iain@sandoe.co.uk>
6783
6784 * config/host-darwin.c: Align pch_address_space to 16384.
6785
6786 2020-11-01 Pat Bernardi <bernardi@adacore.com>
6787
6788 * config/i386/i386.c (ix86_expand_prologue): Set the stack usage to 0
6789 for naked functions.
6790
6791 2020-11-01 Iain Buclaw <ibuclaw@gdcproject.org>
6792
6793 PR ipa/97660
6794 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Don't call
6795 clone_info::get when cgraph_node::get returns NULL.
6796
6797 2020-10-31 Jan Hubicka <jh@suse.cz>
6798
6799 * Makefile.in: (OBJS): Add symtab-clones.o
6800 (GTFILES): Add symtab-clones.h
6801 * cgraph.c: Include symtab-clones.h.
6802 (cgraph_edge::resolve_speculation): Fix formating
6803 (cgraph_edge::redirect_call_stmt_to_callee): Update.
6804 (cgraph_update_edges_for_call_stmt): Update
6805 (release_function_body): Fix formating.
6806 (cgraph_node::remove): Fix formating.
6807 (cgraph_node::dump): Fix formating.
6808 (cgraph_node::get_availability): Fix formating.
6809 (cgraph_node::call_for_symbol_thunks_and_aliases): Fix formating.
6810 (set_const_flag_1): Fix formating.
6811 (set_pure_flag_1): Fix formating.
6812 (cgraph_node::can_remove_if_no_direct_calls_p): Fix formating.
6813 (collect_callers_of_node_1): Fix formating.
6814 (clone_of_p): Update.
6815 (cgraph_node::verify_node): Update.
6816 (cgraph_c_finalize): Call clone_info::release ().
6817 * cgraph.h (struct cgraph_clone_info): Move to symtab-clones.h.
6818 (cgraph_node): Remove clone_info.
6819 (symbol_table): Add m_clones.
6820 * cgraphclones.c: Include symtab-clone.h.
6821 (duplicate_thunk_for_node): Update.
6822 (cgraph_node::create_clone): Update.
6823 (cgraph_node::create_virtual_clone): Update.
6824 (cgraph_node::find_replacement): Update.
6825 (cgraph_node::materialize_clone): Update.
6826 * gengtype.c (open_base_files): Include symtab-clones.h.
6827 * ipa-cp.c: Include symtab-clones.h.
6828 (initialize_node_lattices): Update.
6829 (want_remove_some_param_p): Update.
6830 (create_specialized_node): Update.
6831 * ipa-fnsummary.c: Include symtab-clones.h.
6832 (ipa_fn_summary_t::duplicate): Update.
6833 * ipa-modref.c: Include symtab-clones.h.
6834 (update_signature): Update.
6835 * ipa-param-manipulation.c: Include symtab-clones.h.
6836 (ipa_param_body_adjustments::common_initialization): Update.
6837 * ipa-prop.c: Include symtab-clones.h.
6838 (adjust_agg_replacement_values): Update.
6839 (ipcp_get_parm_bits): Update.
6840 (ipcp_update_bits): Update.
6841 (ipcp_update_vr): Update.
6842 * ipa-sra.c: Include symtab-clones.h.
6843 (process_isra_node_results): Update.
6844 (disable_unavailable_parameters): Update.
6845 * lto-cgraph.c: Include symtab-clone.h.
6846 (output_cgraph_opt_summary_p): Update.
6847 (output_node_opt_summary): Update.
6848 (input_node_opt_summary): Update.
6849 * symtab-clones.cc: New file.
6850 * symtab-clones.h: New file.
6851 * tree-inline.c (expand_call_inline): Update.
6852 (update_clone_info): Update.
6853 (tree_function_versioning): Update.
6854
6855 2020-10-31 Jan Hubicka <jh@suse.cz>
6856
6857 * ipa-modref.c (modref_summary::dump): Dump writes_errno.
6858 (parm_map_for_arg): Break out from ...
6859 (merge_call_side_effects): ... here.
6860 (get_access_for_fnspec): New function.
6861 (process_fnspec): New function.
6862 (analyze_call): Use it.
6863 (analyze_stmt): Update.
6864 (analyze_function): Initialize writes_errno.
6865 (modref_summaries::duplicate): Duplicate writes_errno.
6866 * ipa-modref.h (struct modref_summary): Add writes_errno.
6867 * tree-ssa-alias.c (call_may_clobber_ref_p_1): Check errno.
6868
6869 2020-10-30 Michael Meissner <meissner@linux.ibm.com>
6870
6871 * config/rs6000/rs6000.c (glibc_supports_ieee_128bit): New helper
6872 function.
6873 (rs6000_option_override_internal): Call it.
6874
6875 2020-10-30 Qing Zhao <qing.zhao@oracle.com>
6876 H.J.Lu <hjl.tools@gmail.com>
6877
6878 * common.opt: Add new option -fzero-call-used-regs
6879 * config/i386/i386.c (zero_call_used_regno_p): New function.
6880 (zero_call_used_regno_mode): Likewise.
6881 (zero_all_vector_registers): Likewise.
6882 (zero_all_st_registers): Likewise.
6883 (zero_all_mm_registers): Likewise.
6884 (ix86_zero_call_used_regs): Likewise.
6885 (TARGET_ZERO_CALL_USED_REGS): Define.
6886 * df-scan.c (df_epilogue_uses_p): New function.
6887 (df_get_exit_block_use_set): Replace EPILOGUE_USES with
6888 df_epilogue_uses_p.
6889 * df.h (df_epilogue_uses_p): Declare.
6890 * doc/extend.texi: Document the new zero_call_used_regs attribute.
6891 * doc/invoke.texi: Document the new -fzero-call-used-regs option.
6892 * doc/tm.texi: Regenerate.
6893 * doc/tm.texi.in (TARGET_ZERO_CALL_USED_REGS): New hook.
6894 * emit-rtl.h (struct rtl_data): New field must_be_zero_on_return.
6895 * flag-types.h (namespace zero_regs_flags): New namespace.
6896 * function.c (gen_call_used_regs_seq): New function.
6897 (class pass_zero_call_used_regs): New class.
6898 (pass_zero_call_used_regs::execute): New function.
6899 (make_pass_zero_call_used_regs): New function.
6900 * optabs.c (expand_asm_reg_clobber_mem_blockage): New function.
6901 * optabs.h (expand_asm_reg_clobber_mem_blockage): Declare.
6902 * opts.c (zero_call_used_regs_opts): New structure array
6903 initialization.
6904 (parse_zero_call_used_regs_options): New function.
6905 (common_handle_option): Handle -fzero-call-used-regs.
6906 * opts.h (zero_call_used_regs_opts): New structure array.
6907 * passes.def: Add new pass pass_zero_call_used_regs.
6908 * recog.c (valid_insn_p): New function.
6909 * recog.h (valid_insn_p): Declare.
6910 * resource.c (init_resource_info): Replace EPILOGUE_USES with
6911 df_epilogue_uses_p.
6912 * target.def (zero_call_used_regs): New hook.
6913 * targhooks.c (default_zero_call_used_regs): New function.
6914 * targhooks.h (default_zero_call_used_regs): Declare.
6915 * tree-pass.h (make_pass_zero_call_used_regs): Declare.
6916
6917 2020-10-30 Vladimir N. Makarov <vmakarov@redhat.com>
6918
6919 * lra.c (get_scratch_reg): New function.
6920 (remove_scratches_1): Rename remove_insn_scratches. Use
6921 ira_remove_insn_scratches and get_scratch_reg.
6922 (remove_scratches): Do not
6923 initialize scratches, scratch_bitmap, and scratch_operand_bitmap.
6924 (lra): Call ira_restore_scratches instead of restore_scratches.
6925 (struct sloc, sloc_t, scratches, scratch_bitmap)
6926 (scratch_operand_bitmap, lra_former_scratch_p)
6927 (lra_former_scratch_operand_p, lra_register_new_scratch_op)
6928 (restore_scratches): Move them to ...
6929 * ira.c: ... here.
6930 (former_scratch_p, former_scratch_operand_p): Rename to
6931 ira_former_scratch_p and ira_former_scratch_operand_p.
6932 (contains_X_constraint_p): New function.
6933 (register_new_scratch_op): Rename to ira_register_new_scratch_op.
6934 Change it to work for IRA and LRA.
6935 (restore_scratches): Rename to ira_restore_scratches.
6936 (get_scratch_reg, ira_remove_insn_scratches): New functions.
6937 (ira): Call ira_remove_scratches if we use LRA.
6938 * ira.h (ira_former_scratch_p, ira_former_scratch_operand_p): New
6939 prototypes.
6940 (ira_register_new_scratch_op, ira_restore_scratches): New prototypes.
6941 (ira_remove_insn_scratches): New prototype.
6942 * lra-int.h (lra_former_scratch_p, lra_former_scratch_operand_p):
6943 Remove prototypes.
6944 (lra_register_new_scratch_op): Ditto.
6945 * lra-constraints.c: Rename lra_former_scratch_p and
6946 lra_former_scratch_p to ira_former_scratch_p and to
6947 ira_former_scratch_p.
6948 * lra-remat.c: Ditto.
6949 * lra-spills.c: Rename lra_former_scratch_p to ira_former_scratch_p.
6950
6951 2020-10-30 Martin Sebor <msebor@redhat.com>
6952
6953 PR middle-end/97556
6954 * builtins.c (access_ref::add_offset): Cap offset lower bound
6955 to at most the the upper bound.
6956
6957 2020-10-30 Jan Hubicka <jh@suse.cz>
6958
6959 PR pch/97593
6960 * cgraph.c (cgraph_node::create_thunk): Register thunk as early during
6961 parsing.
6962 * cgraphunit.c (analyze_functions): Call
6963 thunk_info::process_early_thunks.
6964 * symtab-thunks.cc (struct unprocessed_thunk): New struct.
6965 (thunks): New static variable.
6966 (thunk_info::register_early): New member function.
6967 (thunk_info::process_early_thunks): New member function.
6968 * symtab-thunks.h (thunk_info::register_early): Declare.
6969 (thunk_info::process_early_thunks): Declare.
6970
6971 2020-10-30 Richard Biener <rguenther@suse.de>
6972
6973 PR tree-optimization/97623
6974 * tree-ssa-pre.c (insert): First do hoist insertion in
6975 a backward walk.
6976
6977 2020-10-30 Richard Biener <rguenther@suse.de>
6978
6979 PR tree-optimization/97626
6980 * tree-vect-slp.c (vect_slp_analyze_node_operations):
6981 Exchange the lvisited hash-set for a vector, roll back
6982 recursive adds to visited when analysis failed.
6983 (vect_slp_analyze_operations): Likewise.
6984
6985 2020-10-30 Zhiheng Xie <xiezhiheng@huawei.com>
6986 Nannan Zheng <zhengnannan@huawei.com>
6987
6988 * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG
6989 for conversion intrinsics.
6990
6991 2020-10-30 Richard Biener <rguenther@suse.de>
6992
6993 PR tree-optimization/97633
6994 * tree-vect-slp.c (): Update backedges in single-node cycles.
6995 Optimize processing of externals.
6996
6997 2020-10-30 Alex Coplan <alex.coplan@arm.com>
6998
6999 PR target/96998
7000 * combine.c (make_extraction): Also handle shifts written as
7001 (mult x 2^n), avoid creating an extract rtx for these.
7002 * config/aarch64/aarch64.c (aarch64_is_extend_from_extract): Delete.
7003 (aarch64_classify_index): Remove extract-based address handling.
7004 (aarch64_strip_extend): Likewise.
7005 (aarch64_rtx_arith_op_extract_p): Likewise, remove now-unused parameter.
7006 Update callers...
7007 (aarch64_rtx_costs): ... here.
7008
7009 2020-10-30 Olivier Hainque <hainque@adacore.com>
7010
7011 * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Also
7012 builtin_define __ppc and __ppc__ for VxWorks 7.
7013
7014 2020-10-30 Olivier Hainque <hainque@adacore.com>
7015 Douglas Rupp <rupp@adacore.com>
7016 Pat Bernardi <bernardi@adacore.com>
7017
7018 * config.gcc: Adjust the ix86/x86_64-wrs-vxworks filters
7019 to apply to VxWorks 7 as well.
7020 * config/i386/t-vxworks (MULTILIB_OPTIONS, MULTILIB_DIRNAMES):
7021 Remove the fPIC multilib and add one for the large code model
7022 on x86_64.
7023 * config/i386/vxworks.h: Separate sections for TARGET_VXWORKS7,
7024 other variants and common bits.
7025 (TARGET_OS_CPP_BUILTINS): Augment to support a range of CPU
7026 families. Leverage VX_CPU_PREFIX.
7027 (CC1_SPEC): Add definition.
7028 (STACK_CHECK_PROTECT): Use conditional expression instead of
7029 heavier to read conditioned macro definitions.
7030
7031 2020-10-30 Jakub Jelinek <jakub@redhat.com>
7032
7033 * gimplify.c (gimplify_scan_omp_clauses): Force
7034 OMP_CLAUSE_ALLOCATE_ALLOCATOR into a temporary if it is non-NULL and
7035 non-constant.
7036 (gimplify_omp_for): Only put allocate on inner taskloop if lastprivate
7037 for the same variable is going to be put there, and in that case
7038 if the OMP_CLAUSE_ALLOCATE_ALLOCATOR is non-NULL non-constant, make
7039 the allocator firstprivate on task.
7040
7041 2020-10-30 Michael Meissner <meissner@linux.ibm.com>
7042
7043 * config/rs6000/rs6000.c (rs6000_option_override_internal): Allow
7044 long double type to be changed for C/C++ if glibc 2.32 or newer.
7045 (rs6000_invalid_binary_op): Update error messages about mixing IBM
7046 long double and IEEE 128-bit.
7047
7048 2020-10-29 Richard Biener <rguenther@suse.de>
7049
7050 * tree-ssa-pre.c (compute_avail): Free operands consistently.
7051 * tree-vect-loop.c (vectorizable_phi): Make sure all operand
7052 defs vectors are released.
7053
7054 2020-10-29 Jan Hubicka <jh@suse.cz>
7055
7056 * vec.h (vec<T, va_heap, vl_ptr>::copy): Pass mem stat info.
7057
7058 2020-10-29 Jan Hubicka <jh@suse.cz>
7059
7060 * wide-int.h (trailing_wide_ints <N>): Turn len to array of structures
7061 so it does not imply typeless storage.
7062 (trailing_wide_ints <N>::operator): update
7063 (trailing_wide_ints <N>::operator []): Update.
7064
7065 2020-10-29 Joseph Myers <joseph@codesourcery.com>
7066
7067 * ginclude/stdbool.h [__STDC_VERSION__ > 201710L] (true, false):
7068 Define with type _Bool.
7069
7070 2020-10-29 Aldy Hernandez <aldyh@redhat.com>
7071
7072 PR tree-optimization/97505
7073 * vr-values.c (vr_values::extract_range_basic): Enable
7074 trap again for everything except UBSAN builtins.
7075
7076 2020-10-29 Richard Sandiford <richard.sandiford@arm.com>
7077
7078 * tree-vectorizer.h (vect_transform_slp_perm_load): Take an
7079 optional extra parameter.
7080 * tree-vect-slp.c (vect_transform_slp_perm_load): Calculate
7081 the number of loads as well as the number of permutes, taking
7082 the counting loop from...
7083 * tree-vect-stmts.c (vect_model_load_cost): ...here. Use the
7084 value computed by vect_transform_slp_perm_load for ncopies.
7085
7086 2020-10-29 Martin Liska <mliska@suse.cz>
7087
7088 PR lto/97508
7089 * langhooks.c (lhd_begin_section): Call get_section with
7090 not_existing = true.
7091 * output.h (get_section): Add new argument.
7092 * varasm.c (get_section): Fail when NOT_EXISTING is true
7093 and a section already exists.
7094 * ipa-cp.c (ipcp_write_summary): Remove.
7095 (ipcp_read_summary): Likewise.
7096 * ipa-fnsummary.c (ipa_fn_summary_read): Always read jump
7097 functions summary.
7098 (ipa_fn_summary_write): Always stream it.
7099
7100 2020-10-29 Richard Biener <rguenther@suse.de>
7101
7102 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Pass
7103 SLP_TREE_VECTYPE to record_stmt_cost.
7104
7105 2020-10-29 Martin Liska <mliska@suse.cz>
7106
7107 * optc-gen.awk: Check that params start with -param=.
7108 * params.opt: Fix ipa-jump-function-lookups.
7109
7110 2020-10-29 Alexandre Oliva <oliva@adacore.com>
7111
7112 * tree-ssa-math-opts.c (sincos_stats): Add conv_removed.
7113 (execute_cse_conv_1): New.
7114 (execute_cse_sincos_1): Call it. Fix return within
7115 FOR_EACH_IMM_USE_STMT.
7116 (pass_cse_sincos::execute): Report conv_inserted.
7117
7118 2020-10-29 Xuepeng Guo <xuepeng.guo@intel.com>
7119 Hongyu Wang <hongyu.wang@intel.com>
7120 Hongtao Liu <hongtao.liu@intel.com>
7121
7122 * common/config/i386/cpuinfo.h (get_available_features):
7123 Detect KL, AESKLE and WIDEKL features.
7124 * common/config/i386/i386-common.c
7125 (OPTION_MASK_ISA_KL_SET): New.
7126 (OPTION_MASK_ISA_WIDEKL_SET): Likewise.
7127 (OPTION_MASK_ISA_KL_UNSET): Likewise.
7128 (OPTION_MASK_ISA_WIDEKL_UNSET): Likewise.
7129 (OPTION_MASK_ISA2_AVX2_UNSET): Likewise.
7130 (OPTION_MASK_ISA2_AVX_UNSET): Likewise.
7131 (OPTION_MASK_ISA2_SSE4_2_UNSET): Likewise.
7132 (OPTION_MASK_ISA2_SSE4_1_UNSET): Likewise.
7133 (OPTION_MASK_ISA2_SSE4_UNSET): Likewise.
7134 (OPTION_MASK_ISA2_SSSE3_UNSET): Likewise.
7135 (OPTION_MASK_ISA2_SSE3_UNSET): Likewise.
7136 (OPTION_MASK_ISA2_SSE2_UNSET): Likewise.
7137 (OPTION_MASK_ISA2_SSE_UNSET): Likewise.
7138 (ix86_handle_option): Handle kl and widekl, add dependency chain
7139 for KL and SSE2.
7140 * common/config/i386/i386-cpuinfo.h (enum processor_features):
7141 (FEATURE_KL, FEATURE_AESKLE, FEATURE_WIDEKL): New.
7142 * common/config/i386/i386-isas.h: Add ISA_NAMES_TABLE_ENTRY
7143 for KL, AESKLE and WIDEKL.
7144 * config.gcc: Add keylockerintrin.h.
7145 * doc/invoke.texi: Document new option -mkl and -mwidekl.
7146 * doc/extend.texi: Document kl and widekl.
7147 * config/i386/cpuid.h (bit_KL, bit_AESKLE, bit_WIDEKL): New.
7148 * config/i386/i386-builtin-types.def ((UINT, UINT, V2DI, V2DI, PVOID),
7149 (UINT, UINT, V2DI, PVOID), (VOID, V2DI, V2DI, V2DI, UINT),
7150 (UINT8, PV2DI, V2DI, PCVOID), (UINT8, PV2DI, PCV2DI, PCVOID)): New
7151 function types.
7152 * config/i386/i386-builtin.def: Add
7153 __builtin_ia32_loadiwkey,
7154 __builtin_ia32_aesdec128kl_u8,
7155 __builtin_ia32_aesdec256kl_u8,
7156 __builtin_ia32_aesenc128kl_u8,
7157 __builtin_ia32_aesenc256kl_u8,
7158 __builtin_ia32_aesdecwide128kl_u8,
7159 __builtin_ia32_aesdecwide256kl_u8,
7160 __builtin_ia32_aesencwide128kl_u8,
7161 __builtin_ia32_aesencwide256kl_u8,
7162 __builtin_ia32_encodekey128_u32,
7163 __builtin_ia32_encodekey256_u32.
7164 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
7165 kl and widekl.
7166 * config/i386/i386-options.c (isa2_opts): Add -mkl and -mwidekl.
7167 (ix86_option_override_internal): Handle KL and WIDEKL.
7168 (ix86_valid_target_attribute_inner_p): Add attribute for kl and widekl.
7169 * config/i386/i386-expand.c
7170 (ix86_expand_builtin): Expand Keylocker Builtins.
7171 * config/i386/i386.h (TARGET_KL): New.
7172 (TARGET_KL_P): Likewise.
7173 (TARGET_WIDEKL): Likewise.
7174 (TARGET_WIDEKL_P): Likewise.
7175 (PTA_KL): Likewise.
7176 (PTA_WIDEKL): Likewise.
7177 (PTA_TIGERLAKE): Add PTA_KL, PTA_WIDEKL.
7178 (PTA_ALDERLAKE): Likewise.
7179 * config/i386/i386.opt: Add new option mkl and mwidekl.
7180 * config/i386/keylockerintrin.h: New header file for Keylocker.
7181 * config/i386/immintrin.h: Include keylockerintrin.h.
7182 * config/i386/predicates.md (encodekey128_operation): New
7183 predicate.
7184 (encodekey256_operation): Likewise.
7185 (aeswidekl_operation): Likewise.
7186 * config/i386/sse.md (UNSPECV_LOADIWKEY): New.
7187 (UNSPECV_AESDEC128KLU8): Likewise.
7188 (UNSPECV_AESENC128KLU8): Likewise.
7189 (UNSPECV_AESDEC256KLU8): Likewise.
7190 (UNSPECV_AESENC256KLU8): Likewise.
7191 (UNSPECV_AESDECWIDE128KLU8): Likewise.
7192 (UNSPECV_AESENCWIDE128KLU8): Likewise.
7193 (UNSPECV_AESDECWIDE256KLU8): Likewise.
7194 (UNSPECV_AESENCWIDE256KLU8): Likewise.
7195 (UNSPECV_ENCODEKEY128U32): Likewise.
7196 (UNSPECV_ENCODEKEY256U32): Likewise.
7197 (encodekey128u32): New expander.
7198 (encodekey256u32): Likewise.
7199 (aes<aeswideklvariant>u8): Likewise.
7200 (loadiwkey): New insn pattern.
7201 (*encodekey128u32): Likewise.
7202 (*encodekey256u32): Likewise.
7203 (aes<aesklvariant>u8): Likewise.
7204 (*aes<aeswideklvariant>u8): Likewise.
7205
7206 2020-10-29 Richard Biener <rguenther@suse.de>
7207
7208 * tree-vect-slp.c (vect_build_slp_tree_2): Allow splatting
7209 not vectorizable loads.
7210 (vect_build_slp_instance): Amend dumping with address.
7211 (vect_slp_convert_to_external): Likewise.
7212
7213 2020-10-29 Andrew MacLeod <amacleod@redhat.com>
7214
7215 PR tree-optimization/97609
7216 * gimple-range-cache.cc (non_null_ref::process_name): Call
7217 infer_nonnull_range directly instead of infer_value_range.
7218
7219 2020-10-29 David Malcolm <dmalcolm@redhat.com>
7220
7221 * Makefile.in (ANALYZER_OBJS): Add analyzer/complexity.o.
7222
7223 2020-10-28 Marek Polacek <polacek@redhat.com>
7224
7225 PR c++/97573
7226 * doc/invoke.texi: Document -Wdeprecated-enum-enum-conversion
7227 and -Wdeprecated-enum-float-conversion. -Wenum-conversion is
7228 no longer C/ObjC only.
7229
7230 2020-10-28 Richard Sandiford <richard.sandiford@arm.com>
7231
7232 PR tree-optimization/97457
7233 * value-range.cc (irange::set): Don't decay POLY_INT_CST ranges
7234 to integer ranges.
7235
7236 2020-10-28 Carl Love <cel@us.ibm.com>
7237
7238 * config/rs6000/vsx.md(xxgenpcvm_<mode>_internal): Remove TARGET_64BIT.
7239
7240 2020-10-28 Richard Biener <rguenther@suse.de>
7241
7242 * tree-vect-slp.c (vect_slp_analyze_node_operations_1): Dump
7243 when shared vectype update fails.
7244
7245 2020-10-28 Richard Biener <rguenther@suse.de>
7246
7247 * tree-vect-slp.c (vect_get_and_check_slp_defs): For skipped
7248 args just push NULLs and vect_uninitialized_def.
7249 (vect_build_slp_tree_2): Allocate skip_args for all ops
7250 and pass it down to vect_get_and_check_slp_defs.
7251
7252 2020-10-28 Richard Biener <rguenther@suse.de>
7253
7254 PR tree-optimization/97615
7255 * tree-vect-slp.c (vect_build_slp_tree_2): Do not build
7256 an external from pattern defs.
7257
7258 2020-10-28 Richard Biener <rguenther@suse.de>
7259
7260 * tree-vect-slp.c (vect_optimize_slp): Fix iteration over
7261 all loads.
7262
7263 2020-10-28 Richard Biener <rguenther@suse.de>
7264
7265 * tree-vect-slp.c (vect_build_slp_instance): Split the store
7266 group at the failure boundary and also re-analyze a large enough
7267 matching rest.
7268
7269 2020-10-28 Richard Biener <rguenther@suse.de>
7270
7271 * tree-vect-data-refs.c (vect_slp_analyze_node_alignment):
7272 Dump when vect_update_shared_vectype fails.
7273
7274 2020-10-28 Andrea Corallo <andrea.corallo@arm.com>
7275
7276 * config/aarch64/arm_neon.h (__ST2_LANE_FUNC, __ST3_LANE_FUNC)
7277 (__ST4_LANE_FUNC): Rename the macro generating the 'q' variants
7278 into __ST2Q_LANE_FUNC, __ST2Q_LANE_FUNC, __ST2Q_LANE_FUNC so they
7279 all can be undefed at the and of the file.
7280 (vst2_lane_bf16, vst2q_lane_bf16, vst3_lane_bf16, vst3q_lane_bf16)
7281 (vst4_lane_bf16, vst4q_lane_bf16): Add new intrinsics.
7282
7283 2020-10-28 Andrea Corallo <andrea.corallo@arm.com>
7284
7285 * config/aarch64/arm_neon.h (__LD2_LANE_FUNC, __LD3_LANE_FUNC)
7286 (__LD4_LANE_FUNC): Rename the macro generating the 'q' variants
7287 into __LD2Q_LANE_FUNC, __LD2Q_LANE_FUNC, __LD2Q_LANE_FUNC so they
7288 all can be undefed at the and of the file.
7289 (vld2_lane_bf16, vld2q_lane_bf16, vld3_lane_bf16, vld3q_lane_bf16)
7290 (vld4_lane_bf16, vld4q_lane_bf16): Add new intrinsics.
7291
7292 2020-10-28 Jakub Jelinek <jakub@redhat.com>
7293
7294 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_ALLOCATE.
7295 * tree.h (OMP_CLAUSE_ALLOCATE_ALLOCATOR,
7296 OMP_CLAUSE_ALLOCATE_COMBINED): Define.
7297 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add allocate
7298 clause.
7299 (walk_tree_1): Handle OMP_CLAUSE_ALLOCATE.
7300 * tree-pretty-print.c (dump_omp_clause): Likewise.
7301 * gimplify.c (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses,
7302 gimplify_omp_for): Likewise.
7303 * tree-nested.c (convert_nonlocal_omp_clauses,
7304 convert_local_omp_clauses): Likewise.
7305 * omp-low.c (scan_sharing_clauses): Likewise.
7306
7307 2020-10-28 Jakub Jelinek <jakub@redhat.com>
7308
7309 * omp-offload.c (omp_declare_target_tgt_fn_r): Handle direct calls to
7310 declare variant base functions.
7311
7312 2020-10-28 Jakub Jelinek <jakub@redhat.com>
7313
7314 PR lto/96680
7315 * lto-streamer.h (omp_lto_output_declare_variant_alt,
7316 omp_lto_input_declare_variant_alt): Declare variant.
7317 * symtab.c (symtab_node::get_partitioning_class): Return
7318 SYMBOL_DUPLICATE for declare_variant_alt nodes.
7319 * passes.c (ipa_write_summaries): Add declare_variant_alt to
7320 partition.
7321 * lto-cgraph.c (output_refs): Call omp_lto_output_declare_variant_alt
7322 on declare_variant_alt nodes.
7323 (input_refs): Call omp_lto_input_declare_variant_alt on
7324 declare_variant_alt nodes.
7325 * lto-streamer-out.c (output_function): Don't call
7326 collect_block_tree_leafs if DECL_INITIAL is error_mark_node.
7327 (lto_output): Call output_function even for declare_variant_alt
7328 nodes.
7329 * omp-general.c (omp_lto_output_declare_variant_alt,
7330 omp_lto_input_declare_variant_alt): New functions.
7331
7332 2020-10-28 Jakub Jelinek <jakub@redhat.com>
7333
7334 * wide-int.cc (wi::set_bit_large): Call canonize unless setting
7335 msb bit and clearing bits above it.
7336
7337 2020-10-28 Andrew MacLeod <amacleod@redhat.com>
7338
7339 * gimple-range-gori.cc (gori_compute_cache::cache_stmt): Accumulate
7340 return values and only set cache when everything returned true.
7341 * gimple-range.cc (get_tree_range): Set the return range to UNDEFINED
7342 when the range isn't supported.
7343 (gimple_ranger::calc_stmt): Return varying if the type is supported,
7344 even if the stmt processing failed. False otherwise.
7345 (range_of_builtin_ubsan_call): Don't use gcc_assert.
7346 (range_of_builtin_call): Ditto.
7347 (gimple_ranger::range_of_cond_expr): Ditto.
7348 (gimple_ranger::range_of_expr): Ditto
7349 (gimple_ranger::range_on_entry): Ditto.
7350 (gimple_ranger::range_on_exit): Ditto.
7351 (gimple_ranger::range_on_edge): DItto.
7352 (gimple_ranger::range_of_stmt): Don't use gcc_assert, and initialize
7353 return value to UNDEFINED.
7354
7355 2020-10-27 Andreas Krebbel <krebbel@linux.ibm.com>
7356
7357 PR rtl-optimization/97497
7358 * config/s390/s390.c (s390_hard_regno_call_part_clobbered): Do not
7359 return true for r12 when -fpic is used.
7360
7361 2020-10-27 Tamar Christina <tamar.christina@arm.com>
7362
7363 PR target/97535
7364 * config/aarch64/aarch64.c (aarch64_expand_cpymem): Use unsigned
7365 arithmetic in check.
7366
7367 2020-10-27 Andrea Corallo <andrea.corallo@arm.com>
7368
7369 * config/aarch64/arm_neon.h (vcopy_lane_bf16, vcopyq_lane_bf16)
7370 (vcopyq_laneq_bf16, vcopy_laneq_bf16): New intrinsics.
7371
7372 2020-10-27 Olivier Hainque <hainque@adacore.com>
7373
7374 * config/vxworks.h (VX_CPU_PREFIX): #define here.
7375 * config/rs6000/vxworks.h: Remove #definition.
7376
7377 2020-10-27 Olivier Hainque <hainque@adacore.com>
7378
7379 * config/rs6000/vxworks.h (CPP_SPEC): Fix macro definition
7380 for -mcpu=e6500.
7381
7382 2020-10-27 Richard Biener <rguenther@suse.de>
7383
7384 * tree-vect-slp.c (vect_build_slp_instance): Use ceil_log2
7385 to compute maximum group-size.
7386
7387 2020-10-27 Jan Hubicka <jh@suse.cz>
7388
7389 PR ipa/97586
7390 * ipa-modref-tree.h (modref_tree::remap_params): New member function.
7391 * ipa-modref.c (modref_summaries_lto::duplicate): Check that
7392 optimization summaries are not duplicated.
7393 (remap_arguments): Remove.
7394 (modref_transform): Rename to ...
7395 (update_signature): ... this one; handle also lto summary.
7396 (pass_ipa_modref::execute): Update signatures here rather
7397 than in transform hook.
7398
7399 2020-10-27 Richard Biener <rguenther@suse.de>
7400
7401 * tree-vect-slp.c (vect_slp_bbs): Remove no-op
7402 slp-max-insns-in-bb check.
7403 (vect_slp_function): Dump when splitting the function.
7404 Adjust the split condition for control altering stmts.
7405 * params.opt (-param=slp-max-insns-in-bb): Remove.
7406 * doc/invoke.texi (-param=slp-max-insns-in-bb): Likewise.
7407
7408 2020-10-27 Richard Biener <rguenther@suse.de>
7409
7410 * gimple.h (gimple_expr_type): For PHIs return the type
7411 of the result.
7412 * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg):
7413 Make sure edge order into copied loop headers line up with the
7414 originals.
7415 * tree-vect-loop.c (vect_transform_cycle_phi): Handle nested
7416 loops with SLP.
7417 (vectorizable_phi): New function.
7418 (vectorizable_live_operation): For BB vectorization compute insert
7419 location here.
7420 * tree-vect-slp.c (vect_free_slp_tree): Deal with NULL
7421 SLP_TREE_CHILDREN entries.
7422 (vect_create_new_slp_node): Add overloads with pre-existing node
7423 argument.
7424 (vect_print_slp_graph): Likewise.
7425 (vect_mark_slp_stmts): Likewise.
7426 (vect_mark_slp_stmts_relevant): Likewise.
7427 (vect_gather_slp_loads): Likewise.
7428 (vect_optimize_slp): Likewise.
7429 (vect_slp_analyze_node_operations): Likewise.
7430 (vect_bb_slp_scalar_cost): Likewise.
7431 (vect_remove_slp_scalar_calls): Likewise.
7432 (vect_get_and_check_slp_defs): Handle PHIs.
7433 (vect_build_slp_tree_1): Handle PHIs.
7434 (vect_build_slp_tree_2): Continue SLP build, following PHI
7435 arguments. Fix memory leak.
7436 (vect_build_slp_tree): Put stub node into the hash-map so
7437 we can discover cycles directly.
7438 (vect_build_slp_instance): Set the backedge SLP def for
7439 reduction chains.
7440 (vect_analyze_slp_backedges): Remove.
7441 (vect_analyze_slp): Do not call it.
7442 (vect_slp_convert_to_external): Release SLP_TREE_LOAD_PERMUTATION.
7443 (vect_slp_analyze_node_operations): Handle stray failed
7444 backedge defs by failing.
7445 (vect_slp_build_vertices): Adjust leaf condition.
7446 (vect_bb_slp_mark_live_stmts): Handle PHIs, use visited
7447 hash-set to handle cycles.
7448 (vect_slp_analyze_operations): Adjust.
7449 (vect_bb_partition_graph_r): Likewise.
7450 (vect_slp_function): Adjust split condition to allow CFG
7451 merges.
7452 (vect_schedule_slp_instance): Rename to ...
7453 (vect_schedule_slp_node): ... this. Move DFS walk to ...
7454 (vect_schedule_scc): ... this new function.
7455 (vect_schedule_slp): Call it. Remove ad-hoc vectorized
7456 backedge fill code.
7457 * tree-vect-stmts.c (vect_analyze_stmt): Call
7458 vectorizable_phi.
7459 (vect_transform_stmt): Likewise.
7460 (vect_is_simple_use): Handle vect_backedge_def.
7461 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Only
7462 set loop header PHIs to vect_unknown_def_type for loop
7463 vectorization.
7464 * tree-vectorizer.h (enum vect_def_type): Add vect_backedge_def.
7465 (enum stmt_vec_info_type): Add phi_info_type.
7466 (vectorizable_phi): Declare.
7467
7468 2020-10-27 Richard Biener <rguenther@suse.de>
7469
7470 * tree-vect-slp.c (vect_build_slp_tree_2): When vectorizing
7471 BBs splat uniform operands and stop SLP discovery.
7472
7473 2020-10-27 Iain Buclaw <ibuclaw@gdcproject.org>
7474
7475 * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_D_CRITSEC_SIZE):
7476 Remove.
7477 * config/glibc-d.c (glibc_d_critsec_size): Likewise.
7478 (TARGET_D_CRITSEC_SIZE): Likewise.
7479 * config/i386/linux-common.h (GNU_USER_TARGET_D_CRITSEC_SIZE):
7480 Likewise.
7481 * config/sol2-d.c (solaris_d_critsec_size): Likewise.
7482 (TARGET_D_CRITSEC_SIZE): Likewise.
7483 * doc/tm.texi.in (TARGET_D_CRITSEC_SIZE): Likewise.
7484 * doc/tm.texi: Regenerate.
7485
7486 2020-10-27 Martin Liska <mliska@suse.cz>
7487
7488 PR gcov-profile/97461
7489 * gcov-io.h (GCOV_PREALLOCATED_KVP): Pre-allocate 64
7490 static counters.
7491
7492 2020-10-27 Jan Hubicka <jh@suse.cz>
7493
7494 * tree-ssa-alias.c (attr_fnspec::verify): Re-enabl checking.
7495
7496 2020-10-27 Jan Hubicka <jh@suse.cz>
7497
7498 * builtin-attrs.def (STRERRNOC): New macro.
7499 (STRERRNOP): New macro.
7500 (ATTR_ERRNOCONST_NOTHROW_LEAF_LIST): New attr list.
7501 (ATTR_ERRNOPURE_NOTHROW_LEAF_LIST): New attr list.
7502 * builtins.def (ATTR_MATHFN_ERRNO): Use
7503 ATTR_ERRNOCONST_NOTHROW_LEAF_LIST.
7504 (ATTR_MATHFN_FPROUNDING_ERRNO): Use ATTR_ERRNOCONST_NOTHROW_LEAF_LIST
7505 or ATTR_ERRNOPURE_NOTHROW_LEAF_LIST.
7506
7507 2020-10-27 Kito Cheng <kito.cheng@sifive.com>
7508
7509 * common/config/riscv/riscv-common.c (opt_var_ref_t): New.
7510 (riscv_ext_flag_table_t): New.
7511 (riscv_ext_flag_table): New.
7512 (riscv_parse_arch_string): Pass gcc_options* instead of
7513 &opts->x_target_flags only, and using riscv_arch_option_table to
7514 setup flags.
7515 (riscv_handle_option): Update argument for riscv_parse_arch_string.
7516 (riscv_expand_arch): Ditto.
7517 (riscv_expand_arch_from_cpu): Ditto.
7518
7519 2020-10-27 Jan Hubicka <jh@suse.cz>
7520
7521 * tree-ssa-ccp.c (evaluate_stmt): Use EAF_RETURN_ARG; do not handle
7522 string buitings specially.
7523
7524 2020-10-27 Jan Hubicka <jh@suse.cz>
7525
7526 * tree.c (set_call_expr_flags): Fix string for ECF_RET1.
7527 (build_common_builtin_nodes): Do not set ECF_RET1 for memcpy, memmove,
7528 and memset. They are handled by builtin_fnspec.
7529
7530 2020-10-27 Jan Hubicka <jh@suse.cz>
7531
7532 * builtins.c (builtin_fnspec): Add bzero, memcmp, memcmp_eq, bcmp,
7533 strncmp, strncmp_eq, strncasecmp, rindex, strlen, strlnen, strcasecmp,
7534 strcspn, strspn, strcmp, strcmp_eq.
7535
7536 2020-10-27 Richard Biener <rguenther@suse.de>
7537
7538 * tree-vectorizer.h (slp_tree_pool): Declare.
7539 (_slp_tree::operator new): Likewise.
7540 (_slp_tree::operator delete): Likewise.
7541 * tree-vectorizer.c (vectorize_loops): Allocate and free the
7542 slp_tree_pool.
7543 (pass_slp_vectorize::execute): Likewise.
7544 * tree-vect-slp.c (slp_tree_pool): Define.
7545 (_slp_tree::operator new): Likewise.
7546 (_slp_tree::operator delete): Likewise.
7547
7548 2020-10-27 Martin Liska <mliska@suse.cz>
7549
7550 * lto-wrapper.c (run_gcc): Do not use sub-make when jobserver is
7551 not detected properly.
7552
7553 2020-10-27 Martin Liska <mliska@suse.cz>
7554
7555 * symbol-summary.h (call_summary_base): Pass symtab hooks to
7556 base and register (or unregister) hooks directly.
7557
7558 2020-10-27 Martin Liska <mliska@suse.cz>
7559
7560 * symbol-summary.h (function_summary_base::unregister_hooks):
7561 Call disable_insertion_hook and disable_duplication_hook.
7562 (function_summary_base::symtab_insertion): New field.
7563 (function_summary_base::symtab_removal): Likewise.
7564 (function_summary_base::symtab_duplication): Likewise.
7565 Register hooks in function_summary_base and directly register
7566 (or unregister) hooks.
7567
7568 2020-10-26 Andrew MacLeod <amacleod@redhat.com>
7569
7570 PR tree-optimization/97567
7571 * gimple-range-gori.cc (gori_compute::logical_combine): Union the
7572 ranges of operand1 and operand2, not intersect.
7573
7574 2020-10-26 Jan Hubicka <jh@suse.cz>
7575
7576 * attr-fnspec.h: Update toplevel comment.
7577 (attr_fnspec::attr_fnspec): New constructor.
7578 (attr_fnspec::arg_read_p,
7579 attr_fnspec::arg_written_p,
7580 attr_fnspec::arg_access_size_given_by_arg_p,
7581 attr_fnspec::arg_single_access_p
7582 attr_fnspec::loads_known_p
7583 attr_fnspec::stores_known_p,
7584 attr_fnspec::clobbers_errno_p): New member functions.
7585 (gimple_call_fnspec): Declare.
7586 (builtin_fnspec): Declare.
7587 * builtins.c: Include attr-fnspec.h
7588 (builtin_fnspec): New function.
7589 * builtins.def (BUILT_IN_MEMCPY): Do not specify RET1 fnspec.
7590 (BUILT_IN_MEMMOVE): Do not specify RET1 fnspec.
7591 (BUILT_IN_MEMSET): Do not specify RET1 fnspec.
7592 (BUILT_IN_STRCAT): Do not specify RET1 fnspec.
7593 (BUILT_IN_STRCPY): Do not specify RET1 fnspec.
7594 (BUILT_IN_STRNCAT): Do not specify RET1 fnspec.
7595 (BUILT_IN_STRNCPY): Do not specify RET1 fnspec.
7596 (BUILT_IN_MEMCPY_CHK): Do not specify RET1 fnspec.
7597 (BUILT_IN_MEMMOVE_CHK): Do not specify RET1 fnspec.
7598 (BUILT_IN_MEMSET_CHK): Do not specify RET1 fnspec.
7599 (BUILT_IN_STRCAT_CHK): Do not specify RET1 fnspec.
7600 (BUILT_IN_STRCPY_CHK): Do not specify RET1 fnspec.
7601 (BUILT_IN_STRNCAT_CHK): Do not specify RET1 fnspec.
7602 (BUILT_IN_STRNCPY_CHK): Do not specify RET1 fnspec.
7603 * gimple.c (gimple_call_fnspec): Return attr_fnspec.
7604 (gimple_call_arg_flags): Update.
7605 (gimple_call_return_flags): Update.
7606 * tree-ssa-alias.c (check_fnspec): New function.
7607 (ref_maybe_used_by_call_p_1): Use fnspec for builtin handling.
7608 (call_may_clobber_ref_p_1): Likewise.
7609 (attr_fnspec::verify): Update verifier.
7610 * calls.c (decl_fnspec): New function.
7611 (decl_return_flags): Use it.
7612
7613 2020-10-26 Aldy Hernandez <aldyh@redhat.com>
7614
7615 PR tree-optimization/97555
7616 * range-op.cc (range_tests): Test 1-bit signed invert.
7617 * value-range.cc (subtract_one): Adjust comment.
7618 (add_one): New.
7619 (irange::invert): Call add_one.
7620
7621 2020-10-26 Jan Hubicka <jh@suse.cz>
7622
7623 * cgraph.h (cgraph_node::optimize_for_size_p): Return
7624 optimize_size_level.
7625 (cgraph_node::optimize_for_size_p): Update.
7626 * coretypes.h (enum optimize_size_level): New enum.
7627 * predict.c (unlikely_executed_edge_p): Microoptimize.
7628 (optimize_function_for_size_p): Return optimize_size_level.
7629 (optimize_bb_for_size_p): Likewise.
7630 (optimize_edge_for_size_p): Likewise.
7631 (optimize_insn_for_size_p): Likewise.
7632 (optimize_loop_nest_for_size_p): Likewise.
7633 * predict.h (optimize_function_for_size_p): Update declaration.
7634 (optimize_bb_for_size_p): Update declaration.
7635 (optimize_edge_for_size_p): Update declaration.
7636 (optimize_insn_for_size_p): Update declaration.
7637 (optimize_loop_for_size_p): Update declaration.
7638 (optimize_loop_nest_for_size_p): Update declaration.
7639
7640 2020-10-26 Richard Biener <rguenther@suse.de>
7641
7642 * tree-vect-slp.c (enum slp_instance_kind): New.
7643 (vect_build_slp_instance): Split out from...
7644 (vect_analyze_slp_instance): ... this.
7645
7646 2020-10-26 Andrew MacLeod <amacleod@redhat.com>
7647
7648 * gimple-range.cc (range_of_builtin_call): Initialize zerov to 0.
7649
7650 2020-10-26 Jan Hubicka <jh@suse.cz>
7651
7652 PR ipa/97576
7653 * cgraphclones.c (cgraph_node::materialize_clone): Clear stmt
7654 references.
7655 * cgraphunit.c (mark_functions_to_output): Do not clear them here.
7656 * ipa-inline-transform.c (inline_transform): Clear stmt references.
7657 * symtab.c (symtab_node::clear_stmts_in_references): Make recursive
7658 for clones.
7659 * tree-ssa-structalias.c (ipa_pta_execute): Do not clear references.
7660
7661 2020-10-26 Zhiheng Xie <xiezhiheng@huawei.com>
7662 Nannan Zheng <zhengnannan@huawei.com>
7663
7664 * config/aarch64/aarch64-builtins.c: Add FLAG STORE.
7665 * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG
7666 for store intrinsics.
7667
7668 2020-10-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7669
7670 PR tree-optimization/97546
7671 * gimple-ssa-store-merging.c (find_bswap_or_nop): Return NULL if
7672 type is not INTEGER_CST.
7673
7674 2020-10-26 Richard Biener <rguenther@suse.de>
7675
7676 PR middle-end/97521
7677 * expr.c (const_scalar_mask_from_tree): Remove.
7678 (expand_expr_real_1): Always VIEW_CONVERT integer mode
7679 vector constants to an integer type.
7680 * tree.c (build_truth_vector_type_for_mode): Use a single-bit
7681 boolean component type for non-vector-mode mask_mode.
7682
7683 2020-10-26 H.J. Lu <hjl.tools@gmail.com>
7684
7685 PR target/95458
7686 * config/i386/i386-expand.c (ix86_expand_cmpstrn_or_cmpmem):
7687 Return false for -mno-inline-all-stringops.
7688
7689 2020-10-26 H.J. Lu <hjl.tools@gmail.com>
7690
7691 PR target/95151
7692 * config/i386/i386-expand.c (ix86_expand_cmpstrn_or_cmpmem): New
7693 function.
7694 * config/i386/i386-protos.h (ix86_expand_cmpstrn_or_cmpmem): New
7695 prototype.
7696 * config/i386/i386.md (cmpmemsi): New pattern.
7697
7698 2020-10-26 Andreas Krebbel <krebbel@linux.ibm.com>
7699
7700 * config/s390/vector.md ("vcond_mask_<mode><mode>"): New expander.
7701
7702 2020-10-26 Richard Biener <rguenther@suse.de>
7703
7704 * sbitmap.c (sbitmap_vector_alloc): Use size_t for byte
7705 quantities to avoid overflow.
7706
7707 2020-10-26 Richard Biener <rguenther@suse.de>
7708
7709 PR tree-optimization/97539
7710 * tree-vect-loop-manip.c (vect_do_peeling): Reset out-of-loop
7711 debug uses before peeling.
7712
7713 2020-10-26 Jan Hubicka <hubicka@ucw.cz>
7714
7715 * cgraph.h (struct cgraph_node): Make ipa_transforms_to_apply vl_ptr.
7716 * ipa-inline-analysis.c (initialize_growth_caches): Disable insertion
7717 and duplication hooks.
7718 * ipa-inline-transform.c (clone_inlined_nodes): Clear
7719 ipa_transforms_to_apply.
7720 (save_inline_function_body): Disable insertion hoook for
7721 ipa_saved_clone_sources.
7722 * ipa-prop.c (ipcp_transformation_initialize): Disable insertion hook.
7723 * ipa-prop.h (ipa_node_params_t): Disable insertion hook.
7724 * ipa-reference.c (propagate): Disable insertion hoook.
7725 * ipa-sra.c (ipa_sra_summarize_function): Move out of anonymous
7726 namespace.
7727 (ipa_sra_function_summaries::insert): New virtual function.
7728 * passes.c (execute_one_pass): Do not add transforms to inline clones.
7729 * symbol-summary.h (function_summary_base): Make insert and duplicate
7730 hooks fail instead of silently producing empty summaries; add way to
7731 disable duplication hooks
7732 (call_summary_base): Likewise.
7733 * tree-nested.c (nested_function_info::get_create): Disable insertion
7734 hooks
7735 (maybe_record_nested_function): Likewise.
7736
7737 2020-10-26 Xionghu Luo <luoxhu@linux.ibm.com>
7738
7739 * cfg.c (debug_bb): New overloaded function.
7740 (debug_bb_n): New overloaded function.
7741 * cfg.h (debug_bb): New declaration.
7742 (debug_bb_n): New declaration.
7743 * print-rtl.c (debug_bb_slim): Call debug_bb with flags.
7744
7745 2020-10-24 H.J. Lu <hjl.tools@gmail.com>
7746
7747 PR bootstrap/97451
7748 * configure.ac (HAVE_AS_WORKING_DWARF_4_FLAG): Renamed to ...
7749 (HAVE_AS_WORKING_DWARF_N_FLAG): This. Don't define if there is
7750 an extra assembly input file in debug info. Replace success
7751 with dwarf4_success in the 32-bit --gdwarf-4 check.
7752 * dwarf2out.c (asm_outputs_debug_line_str): Check
7753 HAVE_AS_WORKING_DWARF_N_FLAG instead of
7754 HAVE_AS_WORKING_DWARF_4_FLAG.
7755 * gcc.c (ASM_DEBUG_SPEC): Likewise.
7756 (ASM_DEBUG_OPTION_SPEC): Likewise.
7757 * config.in: Regenerated.
7758 * configure: Likewise.
7759
7760 2020-10-24 Aldy Hernandez <aldyh@redhat.com>
7761
7762 PR tree-optimization/97538
7763 * calls.c (get_size_range): Handle undefined ranges.
7764
7765 2020-10-24 Martin Liska <mliska@suse.cz>
7766
7767 * cgraph.c (cgraph_node::former_thunk_p): Move out of CHECKING_P
7768 macro.
7769
7770 2020-10-24 Alan Modra <amodra@gmail.com>
7771
7772 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Limit
7773 AND addressing to just lvx/stvx style addresses.
7774
7775 2020-10-24 Alan Modra <amodra@gmail.com>
7776
7777 * config/rs6000/rs6000.md (cstore<mode>4): Don't call
7778 rs6000_emit_int_cmove for power10 when -mno-isel.
7779
7780 2020-10-23 Jan Hubicka <hubicka@ucw.cz>
7781
7782 * Makefile.in: Add symtab-thunks.o
7783 (GTFILES): Add symtab-thunks.h and symtab-thunks.cc; remove cgraphunit.c
7784 * cgraph.c: Include symtab-thunks.h.
7785 (cgraph_node::create_thunk): Update
7786 (symbol_table::create_edge): Update
7787 (cgraph_node::dump): Update
7788 (cgraph_node::call_for_symbol_thunks_and_aliases): Update
7789 (set_nothrow_flag_1): Update
7790 (set_malloc_flag_1): Update
7791 (set_const_flag_1): Update
7792 (collect_callers_of_node_1): Update
7793 (clone_of_p): Update
7794 (cgraph_node::verify_node): Update
7795 (cgraph_node::function_symbol): Update
7796 (cgraph_c_finalize): Call thunk_info::release.
7797 (cgraph_node::has_thunk_p): Update
7798 (cgraph_node::former_thunk_p): Move here from cgraph.h; reimplement.
7799 * cgraph.h (struct cgraph_thunk_info): Rename to symtab-thunks.h.
7800 (cgraph_node): Remove thunk field; add thunk bitfield.
7801 (cgraph_node::expand_thunk): Move to symtab-thunks.h
7802 (symtab_thunks_cc_finalize): Declare.
7803 (cgraph_node::has_gimple_body_p): Update.
7804 (cgraph_node::former_thunk_p): Update.
7805 * cgraphclones.c: Include symtab-thunks.h.
7806 (duplicate_thunk_for_node): Update.
7807 (cgraph_edge::redirect_callee_duplicating_thunks): Update.
7808 (cgraph_node::expand_all_artificial_thunks): Update.
7809 (cgraph_node::create_edge_including_clones): Update.
7810 * cgraphunit.c: Include symtab-thunks.h.
7811 (vtable_entry_type): Move to symtab-thunks.c.
7812 (cgraph_node::analyze): Update.
7813 (analyze_functions): Update.
7814 (mark_functions_to_output): Update.
7815 (thunk_adjust): Move to symtab-thunks.c
7816 (cgraph_node::expand_thunk): Move to symtab-thunks.c
7817 (cgraph_node::assemble_thunks_and_aliases): Update.
7818 (output_in_order): Update.
7819 (cgraphunit_c_finalize): Do not clear vtable_entry_type.
7820 (cgraph_node::create_wrapper): Update.
7821 * gengtype.c (open_base_files): Add symtab-thunks.h
7822 * ipa-comdats.c (propagate_comdat_group): UPdate.
7823 (ipa_comdats): Update.
7824 * ipa-cp.c (determine_versionability): UPdate.
7825 (gather_caller_stats): Update.
7826 (count_callers): Update
7827 (set_single_call_flag): Update
7828 (initialize_node_lattices): Update
7829 (call_passes_through_thunk_p): Update
7830 (call_passes_through_thunk): Update
7831 (propagate_constants_across_call): Update
7832 (find_more_scalar_values_for_callers_subset): Update
7833 (has_undead_caller_from_outside_scc_p): Update
7834 * ipa-fnsummary.c (evaluate_properties_for_edge): Update.
7835 (compute_fn_summary): Update.
7836 (inline_analyze_function): Update.
7837 * ipa-icf.c: Include symtab-thunks.h.
7838 (sem_function::equals_wpa): Update.
7839 (redirect_all_callers): Update.
7840 (sem_function::init): Update.
7841 (sem_function::parse): Update.
7842 * ipa-inline-transform.c: Include symtab-thunks.h.
7843 (inline_call): Update.
7844 (save_inline_function_body): Update.
7845 (preserve_function_body_p): Update.
7846 * ipa-inline.c (inline_small_functions): Update.
7847 * ipa-polymorphic-call.c: Include alloc-pool.h, symbol-summary.h,
7848 symtab-thunks.h
7849 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Update.
7850 * ipa-pure-const.c: Include symtab-thunks.h.
7851 (analyze_function): Update.
7852 * ipa-sra.c (check_for_caller_issues): Update.
7853 * ipa-utils.c (ipa_reverse_postorder): Update.
7854 (ipa_merge_profiles): Update.
7855 * ipa-visibility.c (non_local_p): Update.
7856 (cgraph_node::local_p): Update.
7857 (function_and_variable_visibility): Update.
7858 * ipa.c (symbol_table::remove_unreachable_nodes): Update.
7859 * lto-cgraph.c: Include alloc-pool.h, symbol-summary.h and
7860 symtab-thunks.h
7861 (lto_output_edge): Update.
7862 (lto_output_node): Update.
7863 (compute_ltrans_boundary): Update.
7864 (output_symtab): Update.
7865 (verify_node_partition): Update.
7866 (input_overwrite_node): Update.
7867 (input_node): Update.
7868 * lto-streamer-in.c (fixup_call_stmt_edges): Update.
7869 * symtab-thunks.cc: New file.
7870 * symtab-thunks.h: New file.
7871 * toplev.c (toplev::finalize): Call symtab_thunks_cc_finalize.
7872 * trans-mem.c (ipa_tm_mayenterirr_function): Update.
7873 (ipa_tm_execute): Update.
7874 * tree-inline.c (expand_call_inline): Update.
7875 * tree-nested.c (create_nesting_tree): Update.
7876 (convert_all_function_calls): Update.
7877 (gimplify_all_functions): Update.
7878 * tree-profile.c (tree_profiling): Update.
7879 * tree-ssa-structalias.c (associate_varinfo_to_alias): Update.
7880 * tree.c (free_lang_data_in_decl): Update.
7881 * value-prof.c (init_node_map): Update.
7882
7883 2020-10-23 Marek Polacek <polacek@redhat.com>
7884
7885 PR c++/91741
7886 * doc/invoke.texi: Document -Wsizeof-array-div.
7887
7888 2020-10-23 Martin Sebor <msebor@redhat.com>
7889
7890 PR middle-end/97552
7891 * attribs.c (init_attr_rdwr_indices): Handle static VLA parameters.
7892
7893 2020-10-23 Douglas Rupp <rupp@adacore.com>
7894
7895 * config/vxworks.h (VXWORKS_NET_LIBS_RTP): Use -lrtnet if
7896 rtnetStackLib.h is available,fallback to -lnet otherwise.
7897
7898 2020-10-23 Douglas Rupp <rupp@adacore.com>
7899
7900 * gcc.c (if-exists-then-else): New built-in spec function.
7901 * doc/invoke.texi: Document it.
7902
7903 2020-10-23 Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
7904
7905 * doc/extend.texi (PowerPC Built-in Functions): Replace
7906 extraneous characters with whitespace.
7907
7908 2020-10-23 Martin Liska <mliska@suse.cz>
7909
7910 * gcov.c (read_count_file): Never call gcov_sync with a negative
7911 value.
7912
7913 2020-10-23 Jakub Jelinek <jakub@redhat.com>
7914
7915 * Makefile.in (PLUGIN_HEADERS): Add gomp-constants.h and $(EXPR_H).
7916 (s-header-vars): Accept not just spaces but also tabs between *_H name
7917 and =. Handle common/config/ headers similarly to config. Don't
7918 throw away everything from first ... to last / on the remaining
7919 string, instead skip just ... to corresponding last / without
7920 intervening spaces and tabs.
7921 (install-plugin): Treat common/config headers like config headers.
7922 * config/i386/t-i386 (TM_H): Add
7923 $(srcdir)/common/config/i386/i386-cpuinfo.h.
7924
7925 2020-10-23 Jakub Jelinek <jakub@redhat.com>
7926
7927 PR tree-optimization/97164
7928 * stor-layout.c (layout_type): Also reject arrays where element size
7929 is constant, but not a multiple of element alignment.
7930
7931 2020-10-23 Eric Botcazou <ebotcazou@adacore.com>
7932
7933 * tree-ssa-loop-ivopts.c (analyze_and_mark_doloop_use): Bail out if
7934 the loop is subject to a pragma Unroll with no specific count.
7935
7936 2020-10-23 Dennis Zhang <dennis.zhang@arm.com>
7937
7938 * config/arm/mve.md (mve_vsubq<mode>): New entry for vsub instruction
7939 using expression 'minus'.
7940 (mve_vsubq_f<mode>): Use minus instead of VSUBQ_F unspec.
7941 * config/arm/neon.md (sub<mode>3, sub<mode>3_fp16): Removed.
7942 (neon_vsub<mode>): Use gen_sub<mode>3 instead of gen_sub<mode>3_fp16.
7943 * config/arm/vec-common.md (sub<mode>3): Use the new mode macros
7944 ARM_HAVE_<MODE>_ARITH. Use iterator VDQ instead of VALL.
7945
7946 2020-10-23 Martin Liska <mliska@suse.cz>
7947
7948 PR lto/97524
7949 * lto-wrapper.c (make_exists): New function.
7950 (run_gcc): Use it to check that make is present and working
7951 for parallel execution.
7952
7953 2020-10-23 Richard Biener <rguenther@suse.de>
7954
7955 Revert:
7956 2020-10-22 Richard Biener <rguenther@suse.de>
7957
7958 PR middle-end/97521
7959 * expr.c (expand_expr_real_1): Be more careful when
7960 expanding a VECTOR_BOOLEAN_TYPE_P VECTOR_CSTs.
7961
7962 2020-10-23 Kewen Lin <linkw@linux.ibm.com>
7963
7964 * tree-vect-loop.c (vect_transform_loop): Remove the redundant
7965 LOOP_VINFO_FULLY_MASKED_P check.
7966
7967 2020-10-23 Dennis Zhang <dennis.zhang@arm.com>
7968
7969 * config/arm/mve.md (mve_vsubq<mode>): New entry for vsub instruction
7970 using expression 'minus'.
7971 (mve_vsubq_f<mode>): Use minus instead of VSUBQ_F unspec.
7972 * config/arm/neon.md (sub<mode>3, sub<mode>3_fp16): Removed.
7973 (neon_vsub<mode>): Use gen_sub<mode>3 instead of gen_sub<mode>3_fp16.
7974 * config/arm/vec-common.md (sub<mode>3): Use the new mode macros
7975 ARM_HAVE_<MODE>_ARITH. Use iterator VDQ instead of VALL.
7976
7977 2020-10-22 Alan Modra <amodra@gmail.com>
7978
7979 * config/rs6000/rs6000.c (rs6000_emit_xxspltidp_v2df): Delete
7980 debug printf. Remove trailing ".\n" from inform message.
7981 Break long line.
7982
7983 2020-10-22 Andrew MacLeod <amacleod@redhat.com>
7984
7985 * gimple-range-gori.cc (is_gimple_logical_p): Use types_compatible_p
7986 for logical compatibility.
7987 (logical_stmt_cache::cacheable_p): Ditto.
7988
7989 2020-10-22 Jan Hubicka <hubicka@ucw.cz>
7990
7991 * cgraph.c (cgraph_node::get_untransformed_body): Perform lazy
7992 clone materialization.
7993 * cgraph.h (cgraph_node::materialize_clone): Declare.
7994 (symbol_table::materialize_all_clones): Remove.
7995 * cgraphclones.c (cgraph_materialize_clone): Turn to ...
7996 (cgraph_node::materialize_clone): .. this one; move here
7997 dumping from symbol_table::materialize_all_clones.
7998 (symbol_table::materialize_all_clones): Remove.
7999 * cgraphunit.c (mark_functions_to_output): Clear stmt references.
8000 (cgraph_node::expand): Initialize bitmaps early;
8001 do not call execute_all_ipa_transforms if there are no transforms.
8002 * ipa-inline-transform.c (save_inline_function_body): Fix formating.
8003 (inline_transform): Materialize all clones before function is modified.
8004 * ipa-param-manipulation.c (ipa_param_adjustments::modify_call):
8005 Materialize clone if needed.
8006 * ipa.c (class pass_materialize_all_clones): Remove.
8007 (make_pass_materialize_all_clones): Remove.
8008 * passes.c (execute_all_ipa_transforms): Materialize all clones.
8009 * passes.def: Remove pass_materialize_all_clones.
8010 * tree-pass.h (make_pass_materialize_all_clones): Remove.
8011 * tree-ssa-structalias.c (ipa_pta_execute): Clear refs.
8012
8013 2020-10-22 Will Schmidt <will_schmidt@vnet.ibm.com>
8014
8015 * config/rs6000/altivec.h (vec_xl_zext, vec_xl_sext, vec_xst_trunc):
8016 New defines.
8017 * config/rs6000/rs6000-builtin.def (BU_P10V_OVERLOAD_X): New builtin
8018 macro.
8019 (BU_P10V_AV_X): New builtin macro.
8020 (se_lxvrhbx, se_lxrbhx, se_lxvrwx, se_lxvrdx): Define internal names
8021 for load and sign extend vector element.
8022 (ze_lxvrbx, ze_lxvrhx, ze_lxvrwx, ze_lxvrdx): Define internal names
8023 for load and zero extend vector element.
8024 (tr_stxvrbx, tr_stxvrhx, tr_stxvrwx, tr_stxvrdx): Define internal names
8025 for truncate and store vector element.
8026 (se_lxvrx, ze_lxvrx, tr_stxvrx): Define internal names for overloaded
8027 load/store rightmost element.
8028 * config/rs6000/rs6000-call.c (altivec_builtin_types): Define the
8029 internal monomorphs P10_BUILTIN_SE_LXVRBX, P10_BUILTIN_SE_LXVRHX,
8030 P10_BUILTIN_SE_LXVRWX, P10_BUILTIN_SE_LXVRDX,
8031 P10_BUILTIN_ZE_LXVRBX, P10_BUILTIN_ZE_LXVRHX, P10_BUILTIN_ZE_LXVRWX,
8032 P10_BUILTIN_ZE_LXVRDX,
8033 P10_BUILTIN_TR_STXVRBX, P10_BUILTIN_TR_STXVRHX, P10_BUILTIN_TR_STXVRWX,
8034 P10_BUILTIN_TR_STXVRDX,
8035 (altivec_expand_lxvr_builtin): New expansion for load element builtins.
8036 (altivec_expand_stv_builtin): Update to for truncate and store builtins.
8037 (altivec_expand_builtin): Add clases for load/store rightmost builtins.
8038 (altivec_init_builtins): Add def_builtin entries for
8039 __builtin_altivec_se_lxvrbx, __builtin_altivec_se_lxvrhx,
8040 __builtin_altivec_se_lxvrwx, __builtin_altivec_se_lxvrdx,
8041 __builtin_altivec_ze_lxvrbx, __builtin_altivec_ze_lxvrhx,
8042 __builtin_altivec_ze_lxvrwx, __builtin_altivec_ze_lxvrdx,
8043 __builtin_altivec_tr_stxvrbx, __builtin_altivec_tr_stxvrhx,
8044 __builtin_altivec_tr_stxvrwx, __builtin_altivec_tr_stxvrdx,
8045 __builtin_vec_se_lxvrx, __builtin_vec_ze_lxvrx, __builtin_vec_tr_stxvrx.
8046 * config/rs6000/vsx.md (vsx_lxvr<wd>x, vsx_stxvr<wd>x, vsx_stxvr<wd>x):
8047 New define_insn entries.
8048 * doc/extend.texi: Add documentation for vsx_xl_sext, vsx_xl_zext,
8049 and vec_xst_trunc.
8050
8051 2020-10-22 Will Schmidt <will_schmidt@vnet.ibm.com>
8052
8053 * config/rs6000/vsx.md (enum unspec): Add
8054 UNSPEC_EXTENDDITI2 and UNSPEC_MTVSRD_DITI_W1 entries.
8055 (mtvsrdd_diti_w1, extendditi2_vector): New define_insns.
8056 (extendditi2): New define_expand.
8057
8058 2020-10-22 Alexandre Oliva <oliva@adacore.com>
8059
8060 * config/i386/mingw-w64.h (TARGET_LIBC_HAS_FUNCTION): Enable
8061 sincos optimization.
8062
8063 2020-10-22 Alan Modra <amodra@gmail.com>
8064
8065 * config/rs6000/vsx.md (vec_cntmb_<mode>, vec_extract_<mode>),
8066 (vec_expand_<mode>): Replace <VSX_MM_SUFFIX> with <wd>.
8067
8068 2020-10-22 Richard Biener <rguenther@suse.de>
8069
8070 * tree-vect-slp.c (vect_analyze_slp_instance): Refactor so
8071 computing a vector type early is not needed, for store group
8072 splitting compute a new vector type based on the desired
8073 group size.
8074
8075 2020-10-22 Richard Biener <rguenther@suse.de>
8076
8077 PR middle-end/97521
8078 * expr.c (expand_expr_real_1): Be more careful when
8079 expanding a VECTOR_BOOLEAN_TYPE_P VECTOR_CSTs.
8080
8081 2020-10-22 David Malcolm <dmalcolm@redhat.com>
8082
8083 * ipa-modref-tree.c (selftest::test_insert_search_collapse): Fix
8084 leak.
8085 (selftest::test_merge): Fix leaks.
8086
8087 2020-10-22 Andreas Krebbel <krebbel@linux.ibm.com>
8088
8089 PR target/97502
8090 * config/s390/vector.md ("vec_cmp<VI_HW:mode><VI_HW:mode>")
8091 ("vec_cmpu<VI_HW:mode><VI_HW:mode>"): New expanders.
8092
8093 2020-10-22 Andreas Krebbel <krebbel@linux.ibm.com>
8094
8095 PR rtl-optimization/97439
8096 * dfp.c (decimal_real_maxval): Set the sign flag in the
8097 generated number.
8098
8099 2020-10-22 Martin Liska <mliska@suse.cz>
8100
8101 PR c/94722
8102 * cfgexpand.c (stack_protect_decl_phase):
8103 Guard with lookup_attribute("no_stack_protector") at
8104 various places.
8105 (expand_used_vars): Likewise here.
8106 * doc/extend.texi: Document no_stack_protector attribute.
8107
8108 2020-10-22 Martin Liska <mliska@suse.cz>
8109
8110 * cfgexpand.c: Move the enum to ...
8111 * coretypes.h (enum stack_protector): ... here.
8112 * function.c (assign_parm_adjust_stack_rtl): Use the stack_protector
8113 enum.
8114
8115 2020-10-22 Kito Cheng <kito.cheng@sifive.com>
8116
8117 * config/riscv/multilib-generator: Add TODO, import itertools
8118 and functools.reduce.
8119 Handle expantion operator.
8120 (LONG_EXT_PREFIXES): New.
8121 (arch_canonicalize): Update comment and improve python3
8122 debuggability/compatibility.
8123 (add_underline_prefix): New.
8124 (_expand_combination): Ditto.
8125 (unique): Ditto.
8126 (expand_combination): Ditto.
8127
8128 2020-10-22 Jakub Jelinek <jakub@redhat.com>
8129
8130 * tree-ssa-phiopt.c (cond_removal_in_popcount_clz_ctz_pattern):
8131 For CLZ and CTZ tests, use type temporary instead of mode.
8132
8133 2020-10-22 Jakub Jelinek <jakub@redhat.com>
8134
8135 * config.gcc (x86_archs): Add samuel-2, nehemiah, c7 and esther.
8136 (x86_64_archs): Add eden-x2, nano, nano-1000, nano-2000, nano-3000,
8137 nano-x2, eden-x4, nano-x4, x86-64-v2, x86-64-v3 and x86-64-v4.
8138 (i[34567]86-*-* | x86_64-*-*): Only allow x86-64-v* as argument
8139 to --with-arch_64=.
8140
8141 2020-10-22 Jan Hubicka <jh@suse.cz>
8142
8143 * ipa-pure-const.c (funct_state_summary_t::insert): Free stale
8144 summaries.
8145
8146 2020-10-22 Jan Hubicka <hubicka@ucw.cz>
8147
8148 * cgraph.c: Include tree-nested.h
8149 (cgraph_node::create): Call maybe_record_nested_function.
8150 (cgraph_node::remove): Do not remove function from nested function
8151 infos.
8152 (cgraph_node::dump): Update.
8153 (cgraph_node::unnest): Move to tree-nested.c
8154 (cgraph_node::verify_node): Update.
8155 (cgraph_c_finalize): Call nested_function_info::release.
8156 * cgraph.h (struct symtab_node): Remove nested function info.
8157 * cgraphclones.c (cgraph_node::create_clone): Do not clone nested
8158 function info.
8159 * cgraphunit.c (cgraph_node::analyze): Update.
8160 (cgraph_node::expand): Do not worry about nested functions; they are
8161 lowered.
8162 (symbol_table::finalize_compilation_unit): Call
8163 nested_function_info::release.
8164 * gimplify.c: Include tree-nested.h
8165 (unshare_body): Update.
8166 (unvisit_body): Update.
8167 * omp-offload.c (omp_discover_implicit_declare_target): Update.
8168 * tree-nested.c: Include alloc-pool.h, tree-nested.h, symbol-summary.h
8169 (nested_function_sum): New static variable.
8170 (nested_function_info::get): New member function.
8171 (nested_function_info::get_create): New member function.
8172 (unnest_function): New function.
8173 (nested_function_info::~nested_function_info): New member function.
8174 (nested_function_info::release): New function.
8175 (maybe_record_nested_function): New function.
8176 (lookup_element_for_decl): Update.
8177 (check_for_nested_with_variably_modified): Update.
8178 (create_nesting_tree): Update.
8179 (unnest_nesting_tree_1): Update.
8180 (gimplify_all_functions): Update.
8181 (lower_nested_functions): Update.
8182 * tree-nested.h (class nested_function_info): New class.
8183 (maybe_record_nested_function): Declare.
8184 (unnest_function): Declare.
8185 (first_nested_function): New inline function.
8186 (next_nested_function): New inline function.
8187 (nested_function_origin): New inline function.
8188
8189 2020-10-22 liuhongt <hongtao.liu@intel.com>
8190
8191 PR rtl-optimization/97249
8192 * simplify-rtx.c (simplify_binary_operation_1): Simplify
8193 vec_select of a subreg of X to a vec_select of X.
8194
8195 2020-10-22 liuhongt <hongtao.liu@intel.com>
8196
8197 PR target/87767
8198 * config/i386/constraints.md ("Br"): New special memory
8199 constraint.
8200 * config/i386/i386-expand.c (ix86_binary_operator_ok): Both
8201 source operand cannot be in memory or bcst_memory_operand.
8202 * config/i386/i386.c (ix86_print_operand): Print bcst_mem_operand.
8203 * config/i386/i386.h (VALID_BCST_MODE_P): New.
8204 * config/i386/predicates.md (bcst_mem_operand): New predicate
8205 for AVX512 embedding broadcast memory operand.
8206 (bcst_vector_operand): New predicate, vector_operand or
8207 bcst_mem_operand.
8208 * config/i386/sse.md
8209 (*<plusminus_insn><mode>3<mask_name><round_name>): Extend
8210 predicate and constraints to handle bcst_mem_operand.
8211 (*mul<mode>3<mask_name><round_name>): Ditto.
8212 (<sse>_div<mode>3<mask_name><round_name>): Ditto.
8213 (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>):
8214 Ditto.
8215 (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>):
8216 Ditto.
8217 (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>):
8218 Ditto.
8219 (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>):
8220 Ditto.
8221 (*<plusminus_insn><mode>3): Ditto.
8222 (avx512dq_mul<mode>3<mask_name>): Ditto.
8223 (*<sse4_1_avx2>_mul<mode>3<mask_name>): Ditto.
8224 (*andnot<mode>3): Ditto.
8225 (<mask_codefor><code><mode>3<mask_name>): Ditto.
8226 (*sub<mode>3<mask_name>_bcst): Removed.
8227 (*add<mode>3<mask_name>_bcst): Ditto.
8228 (*mul<mode>3<mask_name>_bcst): Ditto.
8229 (*<avx512>_div<mode>3<mask_name>_bcst): Ditto.
8230 (*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_1):
8231 Ditto.
8232 (*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_2):
8233 Ditto.
8234 (*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_3):
8235 Ditto.
8236 (*<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_1):
8237 Ditto.
8238 (*<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_2):
8239 Ditto.
8240 (*<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_3):
8241 Ditto.
8242 (*<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_1):
8243 Ditto.
8244 (*<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_2):
8245 Ditto.
8246 (*<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_3):
8247 Ditto.
8248 (*<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_1):
8249 Ditto.
8250 (*<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_2):
8251 Ditto.
8252 (*<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_3):
8253 Ditto.
8254 (*sub<mode>3_bcst): Ditto.
8255 (*add<mode>3_bcst): Ditto.
8256 (*avx512dq_mul<mode>3<mask_name>_bcst): Ditto.
8257 (*avx512f_mul<mode>3<mask_name>_bcst): Ditto.
8258 (*andnot<mode>3_bcst): Ditto.
8259 (*<code><mode>3_bcst): Ditto.
8260 * config/i386/subst.md (bcst_round_constraint): New subst
8261 attribute.
8262 (bcst_round_nimm_predicate): Ditto.
8263 (bcst_mask_prefix3): Ditto.
8264 (bcst_mask_prefix4): Ditto.
8265
8266 2020-10-22 liuhongt <hongtao.liu@intel.com>
8267
8268 PR target/87767
8269 * ira-costs.c (record_operand_costs): Extract memory operand
8270 from recog_data.operand[i] for record_address_regs.
8271 (record_reg_classes): Extract memory operand from OP for
8272 conditional judgement MEM_P.
8273 * ira.c (ira_setup_alts): Ditto.
8274 * lra-constraints.c (extract_mem_from_operand): New function.
8275 (satisfies_memory_constraint_p): Extract memory operand from
8276 OP for decompose_mem_address, return false when there's no
8277 memory operand inside OP.
8278 (process_alt_operands): Remove MEM_P (op) since it would be
8279 judged in satisfies_memory_constraint_p.
8280 * recog.c (asm_operand_ok): Extract memory operand from OP for
8281 judgement of memory_operand (OP, VOIDmode).
8282 (constrain_operands): Don't unwrapper unary operator when
8283 there's memory operand inside.
8284 * rtl.h (extract_mem_from_operand): New decl.
8285
8286 2020-10-22 Dennis Zhang <dennis.zhang@arm.com>
8287
8288 * config/arm/mve.md (mve_vmaxq_<supf><mode>): Replace with ...
8289 (mve_vmaxq_s<mode>, mve_vmaxq_u<mode>): ... these new insns to
8290 use smax/umax instead of VMAXQ.
8291 (mve_vminq_<supf><mode>): Replace with ...
8292 (mve_vminq_s<mode>, mve_vminq_u<mode>): ... these new insns to
8293 use smin/umin instead of VMINQ.
8294 (mve_vmaxnmq_f<mode>): Use smax instead of VMAXNMQ_F.
8295 (mve_vminnmq_f<mode>): Use smin instead of VMINNMQ_F.
8296 * config/arm/vec-common.md (smin<mode>3): Use the new mode macros
8297 ARM_HAVE_<MODE>_ARITH.
8298 (umin<mode>3, smax<mode>3, umax<mode>3): Likewise.
8299
8300 2020-10-22 Andrew MacLeod <amacleod@redhat.com>
8301
8302 PR tree-optimization/97520
8303 * gimple-range.cc (range_of_non_trivial_assignment): Handle x = &a
8304 by returning a non-zero range.
8305
8306 2020-10-22 Dennis Zhang <dennis.zhang@arm.com>
8307
8308 * config/arm/mve.md (mve_vmulq<mode>): New entry for vmul instruction
8309 using expression 'mult'.
8310 (mve_vmulq_f<mode>): Use mult instead of VMULQ_F.
8311 * config/arm/neon.md (mul<mode>3): Removed.
8312 * config/arm/vec-common.md (mul<mode>3): Use the new mode macros
8313 ARM_HAVE_<MODE>_ARITH. Use mode iterator VDQWH instead of VALLW.
8314
8315 2020-10-22 Andrew MacLeod <amacleod@redhat.com>
8316
8317 PR tree-optimization/97515
8318 * value-query.cc (range_query::value_of_expr): If the result is
8319 UNDEFINED, check to see if the global value is a constant.
8320 (range_query::value_on_edge): Ditto.
8321
8322 2020-10-21 Jan Hubicka <hubicka@ucw.cz>
8323
8324 PR ipa/97445
8325 * ipa-inline.c (inline_insns_single): Add hint2 parameter.
8326 (inline_insns_auto): Add hint2 parameter.
8327 (can_inline_edge_by_limits_p): Update.
8328 (want_inline_small_function_p): Update.
8329 (wrapper_heuristics_may_apply): Update.
8330
8331 2020-10-21 Richard Biener <rguenther@suse.de>
8332 Andrew MacLeod <amacleod@redhat.com>
8333 Martin Liska <mliska@suse.cz>
8334
8335 PR target/97360
8336 * config/rs6000/rs6000-call.c (rs6000_init_builtins): Remove call to
8337 build_distinct_type_copy().
8338
8339 2020-10-21 Jan Hubicka <jh@suse.cz>
8340
8341 PR ipa/97445
8342 * ipa-fnsummary.c (ipa_dump_hints): Add INLINE_HINT_builtin_constant_p.
8343 (ipa_fn_summary::~ipa_fn_summary): Free builtin_constant_p_parms.
8344 (ipa_fn_summary_t::duplicate): Duplicate builtin_constant_p_parms.
8345 (ipa_dump_fn_summary): Dump builtin_constant_p_parms.
8346 (add_builtin_constant_p_parm): New function
8347 (set_cond_stmt_execution_predicate): Update builtin_constant_p_parms.
8348 (ipa_call_context::estimate_size_and_time): Set
8349 INLINE_HINT_builtin_constant_p..
8350 (ipa_merge_fn_summary_after_inlining): Merge builtin_constant_p_parms.
8351 (inline_read_section): Read builtin_constant_p_parms.
8352 (ipa_fn_summary_write): Write builtin_constant_p_parms.
8353 * ipa-fnsummary.h (enum ipa_hints_vals): Add
8354 INLINE_HINT_builtin_constant_p.
8355 * ipa-inline.c (want_inline_small_function_p): Use
8356 INLINE_HINT_builtin_constant_p.
8357 (edge_badness): Use INLINE_HINT_builtin_constant_p.
8358
8359 2020-10-21 Douglas Rupp <rupp@adacore.com>
8360
8361 * config/vx-common.h (LINK_SPEC, LIB_SPEC): Remove #undef.
8362
8363 2020-10-21 Douglas Rupp <rupp@adacore.com>
8364 Olivier Hainque <hainque@adacore.com>
8365
8366 * config.gcc (powerpc*-wrs-vxworks7r*): New case.
8367 * config/rs6000/vxworks.h: Rework to handle VxWorks7.
8368 Refactor as common bits + vx6 vs vx7 ones. For the
8369 latter, rely essentially on the Linux configuration
8370 and adjust CPU to _VX_CPU in CPP_SPEC. Add a case
8371 for e6500. Use SUB3TARGET_OVERRIDE_OPTIONS for specifics
8372 to preserve the Linux SUBSUBTARGET_OVERRIDE_OPTIONS
8373 for vx7.
8374
8375 2020-10-21 Richard Biener <rguenther@suse.de>
8376
8377 PR tree-optimization/97500
8378 * tree-vect-slp.c (vect_analyze_slp_backedges): Do not
8379 fill backedges for inductions.
8380
8381 2020-10-21 liuhongt <hongtao.liu@intel.com>
8382
8383 PR target/97506
8384 * config/i386/i386-expand.c (ix86_expand_sse_movcc): Move
8385 op_true to dest directly when op_true equals op_false.
8386
8387 2020-10-21 Jakub Jelinek <jakub@redhat.com>
8388
8389 PR tree-optimization/97503
8390 * tree-ssa-phiopt.c: Include internal-fn.h.
8391 (cond_removal_in_popcount_pattern): Rename to ...
8392 (cond_removal_in_popcount_clz_ctz_pattern): ... this. Handle not just
8393 popcount, but also clz and ctz if it has C?Z_DEFINED_VALUE_AT_ZERO 2.
8394
8395 2020-10-21 Richard Biener <rguenther@suse.de>
8396
8397 * cfg.c (htab_bb_copy_original_entry): Remove.
8398 (bb_copy_hasher): Likewise.
8399 (bb_original, bb_copy, loop_copy): Use
8400 hash_map<int_hash<int, -1, -2>, int>.
8401 (original_copy_bb_pool): Remove.
8402 (initialize_original_copy_tables): Adjust.
8403 (reset_original_copy_tables): Likewise.
8404 (free_original_copy_tables): Likewise.
8405 (original_copy_tables_initialized_p): Likewise.
8406 (copy_original_table_clear): Simplify.
8407 (copy_original_table_set): Likewise.
8408 (get_bb_original): Likewise.
8409 (get_bb_copy): Likewise.
8410 (get_loop_copy): Likewise.
8411
8412 2020-10-21 Richard Biener <rguenther@suse.de>
8413
8414 * cfghooks.c (copy_bbs): Split out loop computing new_edges.
8415
8416 2020-10-21 Aldy Hernandez <aldyh@redhat.com>
8417
8418 * gimple-range.cc (gimple_ranger::range_of_ssa_name_with_loop_info):
8419 Remove TREE_OVERFLOW special case.
8420 * vr-values.c (bounds_of_var_in_loop): Adjust overflow for
8421 invariants.
8422
8423 2020-10-21 Aldy Hernandez <aldyh@redhat.com>
8424
8425 * vr-values.h: Remove simplify_cond_using_ranges_2.
8426 (range_fits_type_p): New.
8427 * vr-values.c (range_fits_type_p): Remove static qualifier.
8428 (vrp_simplify_cond_using_ranges): Move...
8429 * tree-vrp.c (vrp_simplify_cond_using_ranges): ...to here.
8430
8431 2020-10-20 Andrew MacLeod <amacleod@redhat.com>
8432
8433 PR tree-optimization/97505
8434 * vr-values.c (vr_values::extract_range_basic): Trap if
8435 vr_values version disagrees with range_of_builtin_call.
8436
8437 2020-10-20 David Edelsohn <dje.gcc@gmail.com>
8438
8439 * config/rs6000/rs6000.c (rs6000_option_override_internal):
8440 Don't implcitly enable Altivec ABI if set on the command line.
8441
8442 2020-10-20 Aldy Hernandez <aldyh@redhat.com>
8443
8444 * calls.c (get_size_range): Adjust to work with ranger.
8445 * calls.h (get_size_range): Add ranger argument to prototype.
8446 * gimple-ssa-warn-restrict.c (class wrestrict_dom_walker): Remove.
8447 (check_call): Pull out of wrestrict_dom_walker into a
8448 static function.
8449 (wrestrict_dom_walker::before_dom_children): Rename to...
8450 (wrestrict_walk): ...this.
8451 (pass_wrestrict::execute): Instantiate ranger.
8452 (class builtin_memref): Add stmt and query fields.
8453 (builtin_access::builtin_access): Add range_query field.
8454 (builtin_memref::builtin_memref): Same.
8455 (builtin_memref::extend_offset_range): Same.
8456 (builtin_access::builtin_access): Make work with ranger.
8457 (wrestrict_dom_walker::check_call): Pull out into...
8458 (check_call): ...here.
8459 (check_bounds_or_overlap): Add range_query argument.
8460 * gimple-ssa-warn-restrict.h (check_bounds_or_overlap):
8461 Add range_query and gimple stmt arguments.
8462
8463 2020-10-20 Aldy Hernandez <aldyh@redhat.com>
8464
8465 * gimple-ssa-warn-alloca.c (enum alloca_type): Remove
8466 ALLOCA_BOUND_UNKNOWN and ALLOCA_CAST_FROM_SIGNED.
8467 (warn_limit_specified_p): New.
8468 (alloca_call_type_by_arg): Remove.
8469 (cast_from_signed_p): Remove.
8470 (is_max): Remove.
8471 (alloca_call_type): Remove heuristics and replace with call into
8472 ranger.
8473 (pass_walloca::execute): Instantiate ranger.
8474
8475 2020-10-20 Tobias Burnus <tobias@codesourcery.com>
8476
8477 * lto-wrapper.c (run_gcc): Use proper variable for
8478 %u.ltrans_args dump suffix.
8479
8480 2020-10-20 Zhiheng Xie <xiezhiheng@huawei.com>
8481 Nannan Zheng <zhengnannan@huawei.com>
8482
8483 * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG
8484 for get/set reg intrinsics.
8485
8486 2020-10-20 Aldy Hernandez <aldyh@redhat.com>
8487
8488 * gimple-range.cc (gimple_ranger::range_of_builtin_ubsan_call):
8489 Make externally visble...
8490 (range_of_builtin_ubsan_call): ...here. Add range_query argument.
8491 (gimple_ranger::range_of_builtin_call): Make externally visible...
8492 (range_of_builtin_call): ...here. Add range_query argument.
8493 * gimple-range.h (range_of_builtin_call): Move out from class and
8494 make externally visible.
8495 * vr-values.c (vr_values::extract_range_basic): Abstract out
8496 builtin handling to...
8497 (vr_values::range_of_expr): Handle non SSAs.
8498 (vr_values::extract_range_builtin): ...here.
8499 * vr-values.h (class vr_values): Add extract_range_builtin.
8500 (range_of_expr): Rename NAME to EXPR.
8501
8502 2020-10-20 Aldy Hernandez <aldyh@redhat.com>
8503
8504 PR tree-optimization/97501
8505 * gimple-range.cc (gimple_ranger::range_of_ssa_name_with_loop_info):
8506 Saturate overflows returned from SCEV.
8507
8508 2020-10-20 Aldy Hernandez <aldyh@redhat.com>
8509
8510 * value-range.cc (irange::operator=): Split up call to
8511 copy_legacy_range into...
8512 (irange::copy_to_legacy): ...this.
8513 (irange::copy_legacy_to_multi_range): ...and this.
8514 (irange::copy_legacy_range): Remove.
8515 * value-range.h: Remove copoy_legacy_range.
8516 Add copy_legacy_to_multi_range and copy_to_legacy.
8517
8518 2020-10-20 Tobias Burnus <tobias@codesourcery.com>
8519
8520 * doc/invoke.texi (NVPTX options): Use @item not @itemx.
8521
8522 2020-10-20 Richard Biener <rguenther@suse.de>
8523
8524 * tree-cfg.c (reinstall_phi_args): Remove.
8525 (gimple_split_edge): Remove PHIs around the edge redirection
8526 to avoid touching them at all.
8527
8528 2020-10-20 Richard Biener <rguenther@suse.de>
8529
8530 * tree-vect-loop.c (vectorizable_reduction): Use the correct
8531 loops latch edge for the PHI arg lookup.
8532
8533 2020-10-20 Jozef Lawrynowicz <jozef.l@mittosystems.com>
8534
8535 * config/msp430/msp430.md (andneghi3): Allow general operand for
8536 op1 and update output assembler template.
8537
8538 2020-10-20 Tobias Burnus <tobias@codesourcery.com>
8539
8540 * collect-utils.c (collect_execute, fork_execute): Add at-file suffix
8541 argument.
8542 * collect-utils.h (collect_execute, fork_execute): Update prototype.
8543 * collect2.c (maybe_run_lto_and_relink, do_link, main, do_dsymutil):
8544 Update calls by passing NULL.
8545 * config/i386/intelmic-mkoffload.c (compile_for_target,
8546 generate_host_descr_file, prepare_target_image, main): Likewise.
8547 * config/gcn/mkoffload.c (compile_native, main): Pass at-file suffix.
8548 * config/nvptx/mkoffload.c (compile_native, main): Likewise.
8549 * lto-wrapper.c (compile_offload_image): Likewise.
8550
8551 2020-10-20 Aldy Hernandez <aldyh@redhat.com>
8552
8553 * range-op.cc (operator_rshift::op1_range): Special case
8554 shifting by zero.
8555
8556 2020-10-20 Richard Biener <rguenther@suse.de>
8557
8558 PR tree-optimization/97496
8559 * tree-vect-slp.c (vect_get_and_check_slp_defs): Guard extern
8560 promotion with not in pattern.
8561
8562 2020-10-20 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
8563
8564 * config/s390/s390.c (s390_expand_vec_strlen): Add alignment
8565 for memory access inside loop.
8566
8567 2020-10-19 Andrew MacLeod <amacleod@redhat.com>
8568
8569 PR tree-optimization/97360
8570 * gimple-range.h (range_compatible_p): New.
8571 * gimple-range-gori.cc (is_gimple_logical_p): Use range_compatible_p.
8572 (range_is_either_true_or_false): Ditto.
8573 (gori_compute::outgoing_edge_range_p): Cast result to the correct
8574 type if necessary.
8575 (logical_stmt_cache::cacheable_p): Use range_compatible_p.
8576 * gimple-range.cc (gimple_ranger::calc_stmt): Check range_compatible_p
8577 before casting the range.
8578 (gimple_ranger::range_on_exit): Use range_compatible_p.
8579 (gimple_ranger::range_on_edge): Ditto.
8580
8581 2020-10-19 Martin Jambor <mjambor@suse.cz>
8582
8583 PR tree-optimization/97456
8584 * tree-complex.c (set_component_ssa_name): Do not replace ignored decl
8585 default definitions with new component vars. Reorder if conditions.
8586
8587 2020-10-19 David Edelsohn <dje.gcc@gmail.com>
8588
8589 * config/rs6000/vsx.md (vextract_fp_from_shorth): Fix vals_be.
8590 (vextract_fp_from_shortl) Same.
8591
8592 2020-10-19 Aldy Hernandez <aldyh@redhat.com>
8593
8594 PR tree-optimization/97488
8595 * range-op.cc (operator_lshift::op1_range): Handle large right shifts.
8596
8597 2020-10-19 Martin Liska <mliska@suse.cz>
8598
8599 * ipa-modref.c (compute_parm_map): Clear vector.
8600
8601 2020-10-19 Richard Biener <rguenther@suse.de>
8602
8603 PR tree-optimization/97486
8604 * tree-vect-slp.c (vect_slp_function): Split after stmts
8605 ending a BB.
8606
8607 2020-10-19 Jonathan Wakely <jwakely@redhat.com>
8608
8609 * doc/invoke.texi (OPptimize Options): Add missing closing
8610 parenthesis.
8611
8612 2020-10-19 Aldy Hernandez <aldyh@redhat.com>
8613
8614 PR tree-optimization/97467
8615 * range-op.cc (operator_lshift::op1_range): Handle shifts by 0.
8616
8617 2020-10-19 Richard Biener <rguenther@suse.de>
8618
8619 PR tree-optimization/97466
8620 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove
8621 spurious assert, re-indent.
8622
8623 2020-10-19 Li Jia He <helijia@gcc.gnu.org>
8624
8625 PR tree-optimization/66552
8626 * match.pd (x << (n % C) -> x << (n & C-1)): New simplification.
8627
8628 2020-10-19 Richard Biener <rguenther@suse.de>
8629
8630 * tree-cfg.c (verify_gimple_comparison): Drop special-case
8631 for pointer comparison.
8632
8633 2020-10-16 Andrew MacLeod <amacleod@redhat.com>
8634
8635 * vr-values.c (dump_all_value_ranges): Only dump names which are
8636 still active.
8637
8638 2020-10-16 Andrew MacLeod <amacleod@redhat.com>
8639
8640 * range-op.cc (pointer_plus_operator::wi_fold): Make pointer_plus
8641 [0, 0] + const return a [const, const] range.
8642
8643 2020-10-16 Andrew MacLeod <amacleod@redhat.com>
8644
8645 * gimple-ssa-evrp.c (hybrid_folder::value_on_edge): Call
8646 evrp_folder::value_of_expr directly.
8647 (hybrid_folder::value_of_stmt): Ditto.
8648
8649 2020-10-16 Andrew MacLeod <amacleod@redhat.com>
8650
8651 PR tree-optimization/97462
8652 * range-op.cc (operator_lshift::op1_range): Don't trap on negative
8653 shifts.
8654
8655 2020-10-16 Olivier Hainque <hainque@adacore.com>
8656
8657 * config/vxworks.h (VX_CRTBEGIN_SPEC): Likewise.
8658
8659 2020-10-16 Olivier Hainque <hainque@adacore.com>
8660
8661 * config/vxworks/_vxworks-versions.h: Only include
8662 version.h if _WRS_VXWORKS_MAJOR is not defined.
8663 Provide a default _WRS_VXWORKS_MINOR (0).
8664
8665 2020-10-16 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
8666
8667 PR target/97327
8668 * config/arm/arm.c (fp_bitlist): Add isa_bit_mve_float to FP bits array.
8669
8670 2020-10-16 Richard Biener <rguenther@suse.de>
8671
8672 * tree-vect-slp.c (vect_get_and_check_slp_defs): For BB
8673 vectorization swap operands only if it helps, demote mismatches to
8674 external.
8675
8676 2020-10-16 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
8677
8678 PR target/97291
8679 * config/arm/arm-builtins.c (arm_strsbwbs_qualifiers): Modify array.
8680 (arm_strsbwbu_qualifiers): Likewise.
8681 (arm_strsbwbs_p_qualifiers): Likewise.
8682 (arm_strsbwbu_p_qualifiers): Likewise.
8683 * config/arm/arm_mve.h (__arm_vstrdq_scatter_base_wb_s64): Modify
8684 function definition.
8685 (__arm_vstrdq_scatter_base_wb_u64): Likewise.
8686 (__arm_vstrdq_scatter_base_wb_p_s64): Likewise.
8687 (__arm_vstrdq_scatter_base_wb_p_u64): Likewise.
8688 (__arm_vstrwq_scatter_base_wb_p_s32): Likewise.
8689 (__arm_vstrwq_scatter_base_wb_p_u32): Likewise.
8690 (__arm_vstrwq_scatter_base_wb_s32): Likewise.
8691 (__arm_vstrwq_scatter_base_wb_u32): Likewise.
8692 (__arm_vstrwq_scatter_base_wb_f32): Likewise.
8693 (__arm_vstrwq_scatter_base_wb_p_f32): Likewise.
8694 * config/arm/arm_mve_builtins.def (vstrwq_scatter_base_wb_add_u): Remove
8695 expansion for the builtin.
8696 (vstrwq_scatter_base_wb_add_s): Likewise.
8697 (vstrwq_scatter_base_wb_add_f): Likewise.
8698 (vstrdq_scatter_base_wb_add_u): Likewise.
8699 (vstrdq_scatter_base_wb_add_s): Likewise.
8700 (vstrwq_scatter_base_wb_p_add_u): Likewise.
8701 (vstrwq_scatter_base_wb_p_add_s): Likewise.
8702 (vstrwq_scatter_base_wb_p_add_f): Likewise.
8703 (vstrdq_scatter_base_wb_p_add_u): Likewise.
8704 (vstrdq_scatter_base_wb_p_add_s): Likewise.
8705 * config/arm/mve.md (mve_vstrwq_scatter_base_wb_<supf>v4si): Remove
8706 expand.
8707 (mve_vstrwq_scatter_base_wb_add_<supf>v4si): Likewise.
8708 (mve_vstrwq_scatter_base_wb_<supf>v4si_insn): Rename pattern to ...
8709 (mve_vstrwq_scatter_base_wb_<supf>v4si): This.
8710 (mve_vstrwq_scatter_base_wb_p_<supf>v4si): Remove expand.
8711 (mve_vstrwq_scatter_base_wb_p_add_<supf>v4si): Likewise.
8712 (mve_vstrwq_scatter_base_wb_p_<supf>v4si_insn): Rename pattern to ...
8713 (mve_vstrwq_scatter_base_wb_p_<supf>v4si): This.
8714 (mve_vstrwq_scatter_base_wb_fv4sf): Remove expand.
8715 (mve_vstrwq_scatter_base_wb_add_fv4sf): Likewise.
8716 (mve_vstrwq_scatter_base_wb_fv4sf_insn): Rename pattern to ...
8717 (mve_vstrwq_scatter_base_wb_fv4sf): This.
8718 (mve_vstrwq_scatter_base_wb_p_fv4sf): Remove expand.
8719 (mve_vstrwq_scatter_base_wb_p_add_fv4sf): Likewise.
8720 (mve_vstrwq_scatter_base_wb_p_fv4sf_insn): Rename pattern to ...
8721 (mve_vstrwq_scatter_base_wb_p_fv4sf): This.
8722 (mve_vstrdq_scatter_base_wb_<supf>v2di): Remove expand.
8723 (mve_vstrdq_scatter_base_wb_add_<supf>v2di): Likewise.
8724 (mve_vstrdq_scatter_base_wb_<supf>v2di_insn): Rename pattern to ...
8725 (mve_vstrdq_scatter_base_wb_<supf>v2di): This.
8726 (mve_vstrdq_scatter_base_wb_p_<supf>v2di): Remove expand.
8727 (mve_vstrdq_scatter_base_wb_p_add_<supf>v2di): Likewise.
8728 (mve_vstrdq_scatter_base_wb_p_<supf>v2di_insn): Rename pattern to ...
8729 (mve_vstrdq_scatter_base_wb_p_<supf>v2di): This.
8730
8731 2020-10-16 Kito Cheng <kito.cheng@sifive.com>
8732
8733 * config/riscv/multilib-generator (IMPLIED_EXT): New.
8734 (arch_canonicalize): Update comment and handle implied extensions.
8735
8736 2020-10-16 Richard Biener <rguenther@suse.de>
8737
8738 * tree-vect-slp.c (vect_get_and_check_slp_defs): First analyze
8739 all operands and fill in the def_stmts and ops entries.
8740 (vect_def_types_match): New helper.
8741
8742 2020-10-16 Martin Liska <mliska@suse.cz>
8743
8744 PR ipa/97404
8745 * ipa-prop.c (struct ipa_vr_ggc_hash_traits):
8746 Compare types of VRP as we can merge ranges of different types.
8747
8748 2020-10-16 Richard Biener <rguenther@suse.de>
8749
8750 PR tree-optimization/97428
8751 * tree-vect-slp.c (vect_analyze_slp_instance): Split store
8752 groups also for loop vectorization.
8753
8754 2020-10-15 Tom de Vries <tdevries@suse.de>
8755
8756 PR target/97436
8757 * config/nvptx/nvptx.opt (m32): Comment out.
8758 * doc/invoke.texi (NVPTX options): Remove -m32.
8759
8760 2020-10-15 Jan Hubicka <hubicka@ucw.cz>
8761 Richard Biener <rguenther@suse.de>
8762
8763 * attr-fnspec.h: Fix toplevel comment.
8764
8765 2020-10-15 Richard Biener <rguenther@suse.de>
8766
8767 * tree-pretty-print.c (dump_mem_ref): Print constant offset
8768 also for TARGET_MEM_REF.
8769
8770 2020-10-15 Jan Hubicka <jh@suse.cz>
8771
8772 * symtab.c (symtab_node::binds_to_current_def_p): Also accept symbols
8773 defined in other partition.
8774
8775 2020-10-15 Richard Biener <rguenther@suse.de>
8776
8777 * tree-vect-loop.c (vectorizable_live_operation): Adjust
8778 dominance query.
8779
8780 2020-10-15 Richard Biener <rguenther@suse.de>
8781
8782 PR tree-optimization/97482
8783 * tree-data-ref.c (split_constant_offset_1): Handle
8784 trivial conversions better.
8785 * fold-const.c (convert_to_ptrofftype_loc): Elide conversion
8786 if the offset is already ptrofftype_p.
8787
8788 2020-10-15 Martin Liska <mliska@suse.cz>
8789
8790 PR ipa/97295
8791 * profile-count.c (profile_count::to_frequency): Move part of
8792 gcc_assert to STATIC_ASSERT.
8793 * regs.h (REG_FREQ_FROM_BB): Do not use count.to_frequency for
8794 a function that does not have count_max initialized.
8795
8796 2020-10-15 Jakub Jelinek <jakub@redhat.com>
8797
8798 * params.opt (-param-ipa-jump-function-lookups=): Add full stop at
8799 the end of the parameter description.
8800
8801 2020-10-15 Kito Cheng <kito.cheng@sifive.com>
8802
8803 * common/config/riscv/riscv-common.c (riscv_cpu_tables): New.
8804 (riscv_arch_str): Return empty string if current_subset_list
8805 is NULL.
8806 (riscv_find_cpu): New.
8807 (riscv_handle_option): Verify option value of -mcpu.
8808 (riscv_expand_arch): Using std::string.
8809 (riscv_default_mtune): New.
8810 (riscv_expand_arch_from_cpu): Ditto.
8811 * config/riscv/riscv-cores.def: New.
8812 * config/riscv/riscv-protos.h (riscv_find_cpu): New.
8813 (riscv_cpu_info): New.
8814 * config/riscv/riscv.c (riscv_tune_info): Rename ...
8815 (riscv_tune_param): ... to this.
8816 (riscv_cpu_info): Rename ...
8817 (riscv_tune_info): ... to this.
8818 (tune_info): Rename ...
8819 (tune_param): ... to this.
8820 (rocket_tune_info): Update data type name.
8821 (sifive_7_tune_info): Ditto.
8822 (optimize_size_tune_info): Ditto.
8823 (riscv_cpu_info_table): Rename ...
8824 (riscv_tune_info_table): ... to this.
8825 (riscv_parse_cpu): Rename ...
8826 (riscv_parse_tune): ... to this, and translate valid -mcpu option to
8827 -mtune option.
8828 (riscv_rtx_costs): Rename tune_info to tune_param.
8829 (riscv_class_max_nregs): Ditto.
8830 (riscv_memory_move_cost): Ditto.
8831 (riscv_init_machine_status): Use value of -mcpu if -mtune is not
8832 given, and rename tune_info to tune_param.
8833 * config/riscv/riscv.h (riscv_expand_arch_from_cpu): New.
8834 (riscv_default_mtune): Ditto.
8835 (EXTRA_SPEC_FUNCTIONS): Add riscv_expand_arch_from_cpu and
8836 riscv_default_mtune.
8837 (OPTION_DEFAULT_SPECS): Handle default value of -march/-mabi.
8838 (DRIVER_SELF_SPECS): Expand -march from -mcpu if -march is not
8839 given.
8840 * config/riscv/riscv.opt (-mcpu): New option.
8841 * config/riscv/t-riscv ($(common_out_file)): Add
8842 riscv-cores.def to dependency.
8843 * doc/invoke.texi (RISC-V Option): Add -mcpu, and update the
8844 description of default value for -mtune and -march.
8845
8846 2020-10-15 Hongyu Wang <hongyu.wang@intel.com>
8847
8848 * common/config/i386/cpuinfo.h (get_available_features):
8849 Detect HRESET.
8850 * common/config/i386/i386-common.c (OPTION_MASK_ISA2_HRESET_SET,
8851 OPTION_MASK_ISA2_HRESET_UNSET): New macros.
8852 (ix86_handle_option): Handle -mhreset.
8853 * common/config/i386/i386-cpuinfo.h (enum processor_features):
8854 Add FEATURE_HRESET.
8855 * common/config/i386/i386-isas.h: Add ISA_NAMES_TABLE_ENTRY
8856 for hreset.
8857 * config.gcc: Add hresetintrin.h
8858 * config/i386/hresetintrin.h: New header file.
8859 * config/i386/x86gprintrin.h: Include hresetintrin.h.
8860 * config/i386/cpuid.h (bit_HRESET): New.
8861 * config/i386/i386-builtin.def: Add new builtin.
8862 * config/i386/i386-expand.c (ix86_expand_builtin):
8863 Handle new builtin.
8864 * config/i386/i386-c.c (ix86_target_macros_internal): Define
8865 __HRESET__.
8866 * config/i386/i386-options.c (isa2_opts): Add -mhreset.
8867 (ix86_valid_target_attribute_inner_p): Handle hreset.
8868 * config/i386/i386.h (TARGET_HRESET, TARGET_HRESET_P,
8869 PTA_HRESET): New.
8870 (PTA_ALDERLAKE): Add PTA_HRESET.
8871 * config/i386/i386.opt: Add option -mhreset.
8872 * config/i386/i386.md (UNSPECV_HRESET): New unspec.
8873 (hreset): New define_insn.
8874 * doc/invoke.texi: Document -mhreset.
8875 * doc/extend.texi: Document hreset.
8876
8877 2020-10-15 Hongtao Liu <hongtao.liu@intel.com>
8878
8879 * common/config/i386/cpuinfo.h (get_available_features):
8880 Detect UINTR.
8881 * common/config/i386/i386-common.c (OPTION_MASK_ISA2_UINTR_SET
8882 OPTION_MASK_ISA2_UINTR_UNSET): New.
8883 (ix86_handle_option): Handle -muintr.
8884 * common/config/i386/i386-cpuinfo.h (enum processor_features):
8885 Add FEATURE_UINTR.
8886 * common/config/i386/i386-isas.h: Add ISA_NAMES_TABLE_ENTRY
8887 for uintr.
8888 * config.gcc: Add uintrintrin.h to extra_headers.
8889 * config/i386/uintrintrin.h: New.
8890 * config/i386/cpuid.h (bit_UINTR): New.
8891 * config/i386/i386-builtin-types.def: Add new types.
8892 * config/i386/i386-builtin.def: Add new builtins.
8893 * config/i386/i386-builtins.c (ix86_init_mmx_sse_builtins): Add
8894 __builtin_ia32_testui.
8895 * config/i386/i386-builtins.h (ix86_builtins): Add
8896 IX86_BUILTIN_TESTUI.
8897 * config/i386/i386-c.c (ix86_target_macros_internal): Define
8898 __UINTR__.
8899 * config/i386/i386-expand.c (ix86_expand_special_args_builtin):
8900 Handle UINT8_FTYPE_VOID.
8901 (ix86_expand_builtin): Handle IX86_BUILTIN_TESTUI.
8902 * config/i386/i386-options.c (isa2_opts): Add -muintr.
8903 (ix86_valid_target_attribute_inner_p): Handle UINTR.
8904 (ix86_option_override_internal): Add TARGET_64BIT check for UINTR.
8905 * config/i386/i386.h (TARGET_UINTR, TARGET_UINTR_P, PTA_UINTR): New.
8906 (PTA_SAPPHIRRAPIDS): Add PTA_UINTR.
8907 * config/i386/i386.opt: Add -muintr.
8908 * config/i386/i386.md
8909 (define_int_iterator UINTR_UNSPECV): New.
8910 (define_int_attr uintr_unspecv): New.
8911 (uintr_<uintr_unspecv>, uintr_senduipi, testui):
8912 New define_insn patterns.
8913 * config/i386/x86gprintrin.h: Include uintrintrin.h
8914 * doc/invoke.texi: Document -muintr.
8915 * doc/extend.texi: Document uintr.
8916
8917 2020-10-14 Martin Sebor <msebor@redhat.com>
8918
8919 PR middle-end/97391
8920 * builtins.c (gimple_parm_array_size): Peel off one less layer
8921 of array types.
8922
8923 2020-10-14 Martin Sebor <msebor@redhat.com>
8924
8925 PR c/97413
8926 * attribs.c (init_attr_rdwr_indices): Unwrap extra list layer.
8927
8928 2020-10-14 Sunil K Pandey <skpgkp2@gmail.com>
8929
8930 PR target/95483
8931 * config/i386/avx2intrin.h (_mm_broadcastsi128_si256): New intrinsics.
8932 (_mm_broadcastsd_pd): Ditto.
8933 * config/i386/avx512bwintrin.h (_mm512_loadu_epi16): New intrinsics.
8934 (_mm512_storeu_epi16): Ditto.
8935 (_mm512_loadu_epi8): Ditto.
8936 (_mm512_storeu_epi8): Ditto.
8937 * config/i386/avx512dqintrin.h (_mm_reduce_round_sd): New intrinsics.
8938 (_mm_mask_reduce_round_sd): Ditto.
8939 (_mm_maskz_reduce_round_sd): Ditto.
8940 (_mm_reduce_round_ss): Ditto.
8941 (_mm_mask_reduce_round_ss): Ditto.
8942 (_mm_maskz_reduce_round_ss): Ditto.
8943 (_mm512_reduce_round_pd): Ditto.
8944 (_mm512_mask_reduce_round_pd): Ditto.
8945 (_mm512_maskz_reduce_round_pd): Ditto.
8946 (_mm512_reduce_round_ps): Ditto.
8947 (_mm512_mask_reduce_round_ps): Ditto.
8948 (_mm512_maskz_reduce_round_ps): Ditto.
8949 * config/i386/avx512erintrin.h
8950 (_mm_mask_rcp28_round_sd): New intrinsics.
8951 (_mm_maskz_rcp28_round_sd): Ditto.
8952 (_mm_mask_rcp28_round_ss): Ditto.
8953 (_mm_maskz_rcp28_round_ss): Ditto.
8954 (_mm_mask_rsqrt28_round_sd): Ditto.
8955 (_mm_maskz_rsqrt28_round_sd): Ditto.
8956 (_mm_mask_rsqrt28_round_ss): Ditto.
8957 (_mm_maskz_rsqrt28_round_ss): Ditto.
8958 (_mm_mask_rcp28_sd): Ditto.
8959 (_mm_maskz_rcp28_sd): Ditto.
8960 (_mm_mask_rcp28_ss): Ditto.
8961 (_mm_maskz_rcp28_ss): Ditto.
8962 (_mm_mask_rsqrt28_sd): Ditto.
8963 (_mm_maskz_rsqrt28_sd): Ditto.
8964 (_mm_mask_rsqrt28_ss): Ditto.
8965 (_mm_maskz_rsqrt28_ss): Ditto.
8966 * config/i386/avx512fintrin.h (_mm_mask_sqrt_sd): New intrinsics.
8967 (_mm_maskz_sqrt_sd): Ditto.
8968 (_mm_mask_sqrt_ss): Ditto.
8969 (_mm_maskz_sqrt_ss): Ditto.
8970 (_mm_mask_scalef_sd): Ditto.
8971 (_mm_maskz_scalef_sd): Ditto.
8972 (_mm_mask_scalef_ss): Ditto.
8973 (_mm_maskz_scalef_ss): Ditto.
8974 (_mm_mask_cvt_roundsd_ss): Ditto.
8975 (_mm_maskz_cvt_roundsd_ss): Ditto.
8976 (_mm_mask_cvt_roundss_sd): Ditto.
8977 (_mm_maskz_cvt_roundss_sd): Ditto.
8978 (_mm_mask_cvtss_sd): Ditto.
8979 (_mm_maskz_cvtss_sd): Ditto.
8980 (_mm_mask_cvtsd_ss): Ditto.
8981 (_mm_maskz_cvtsd_ss): Ditto.
8982 (_mm512_cvtsi512_si32): Ditto.
8983 (_mm_cvtsd_i32): Ditto.
8984 (_mm_cvtss_i32): Ditto.
8985 (_mm_cvti32_sd): Ditto.
8986 (_mm_cvti32_ss): Ditto.
8987 (_mm_cvtsd_i64): Ditto.
8988 (_mm_cvtss_i64): Ditto.
8989 (_mm_cvti64_sd): Ditto.
8990 (_mm_cvti64_ss): Ditto.
8991 * config/i386/avx512vlbwintrin.h (_mm256_storeu_epi8): New intrinsics.
8992 (_mm_storeu_epi8): Ditto.
8993 (_mm256_loadu_epi16): Ditto.
8994 (_mm_loadu_epi16): Ditto.
8995 (_mm256_loadu_epi8): Ditto.
8996 (_mm_loadu_epi8): Ditto.
8997 (_mm256_storeu_epi16): Ditto.
8998 (_mm_storeu_epi16): Ditto.
8999 * config/i386/avx512vlintrin.h (_mm256_load_epi64): New intrinsics.
9000 (_mm_load_epi64): Ditto.
9001 (_mm256_load_epi32): Ditto.
9002 (_mm_load_epi32): Ditto.
9003 (_mm256_store_epi32): Ditto.
9004 (_mm_store_epi32): Ditto.
9005 (_mm256_loadu_epi64): Ditto.
9006 (_mm_loadu_epi64): Ditto.
9007 (_mm256_loadu_epi32): Ditto.
9008 (_mm_loadu_epi32): Ditto.
9009 (_mm256_mask_cvt_roundps_ph): Ditto.
9010 (_mm256_maskz_cvt_roundps_ph): Ditto.
9011 (_mm_mask_cvt_roundps_ph): Ditto.
9012 (_mm_maskz_cvt_roundps_ph): Ditto.
9013 * config/i386/avxintrin.h (_mm256_cvtsi256_si32): New intrinsics.
9014 * config/i386/emmintrin.h (_mm_loadu_si32): New intrinsics.
9015 (_mm_loadu_si16): Ditto.
9016 (_mm_storeu_si32): Ditto.
9017 (_mm_storeu_si16): Ditto.
9018 * config/i386/i386-builtin-types.def
9019 (V8DF_FTYPE_V8DF_INT_V8DF_UQI_INT): Add new type.
9020 (V16SF_FTYPE_V16SF_INT_V16SF_UHI_INT): Ditto.
9021 (V4SF_FTYPE_V4SF_V2DF_V4SF_UQI_INT): Ditto.
9022 (V2DF_FTYPE_V2DF_V4SF_V2DF_UQI_INT): Ditto.
9023 * config/i386/i386-builtin.def
9024 (__builtin_ia32_cvtsd2ss_mask_round): New builtin.
9025 (__builtin_ia32_cvtss2sd_mask_round): Ditto.
9026 (__builtin_ia32_rcp28sd_mask_round): Ditto.
9027 (__builtin_ia32_rcp28ss_mask_round): Ditto.
9028 (__builtin_ia32_rsqrt28sd_mask_round): Ditto.
9029 (__builtin_ia32_rsqrt28ss_mask_round): Ditto.
9030 (__builtin_ia32_reducepd512_mask_round): Ditto.
9031 (__builtin_ia32_reduceps512_mask_round): Ditto.
9032 (__builtin_ia32_reducesd_mask_round): Ditto.
9033 (__builtin_ia32_reducess_mask_round): Ditto.
9034 * config/i386/i386-expand.c
9035 (ix86_expand_round_builtin): Expand round builtin for new type.
9036 (V8DF_FTYPE_V8DF_INT_V8DF_UQI_INT)
9037 (V16SF_FTYPE_V16SF_INT_V16SF_UHI_INT)
9038 (V4SF_FTYPE_V4SF_V2DF_V4SF_UQI_INT)
9039 (V2DF_FTYPE_V2DF_V4SF_V2DF_UQI_INT)
9040 * config/i386/mmintrin.h ()
9041 Define datatype __m32 and __m16.
9042 Define datatype __m32_u and __m16_u.
9043 * config/i386/sse.md: Adjust pattern.
9044 (<mask_codefor>reducep<mode><mask_name><round_saeonly_name>): Adjust.
9045 (reduces<mode><mask_scalar_name><round_saeonly_scalar_name>): Ditto.
9046 (sse2_cvtsd2ss<mask_name><round_name>): Ditto.
9047 (sse2_cvtss2sd<mask_name><round_saeonly_name>): Ditto.
9048 (avx512er_vmrcp28<mode><mask_name><round_saeonly_name>): Ditto.
9049 (avx512er_vmrsqrt28<mode><mask_name><round_saeonly_name>): Ditto.
9050
9051 2020-10-14 Olivier Hainque <hainque@adacore.com>
9052
9053 * config/arm/vxworks.h (TARGET_OS_CPP_BUILTINS): Fix
9054 the VX_CPU selection for -mcpu=xscale on arm-vxworks.
9055
9056 2020-10-14 Olivier Hainque <hainque@adacore.com>
9057
9058 * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Accommodate
9059 expectations from different versions of VxWorks, for 32 or 64bit
9060 configurations.
9061
9062 2020-10-14 Olivier Hainque <hainque@adacore.com>
9063
9064 * config/vxworks.h: #undef CPLUSPLUS_CPP_SPEC.
9065
9066 2020-10-14 Olivier Hainque <hainque@adacore.com>
9067
9068 * config/t-vxworks: Adjust the VxWorks alternative LIMITS_H guard
9069 for glimits.h, make it both closer to the previous one and easier to
9070 search for.
9071
9072 2020-10-14 Jakub Jelinek <jakub@redhat.com>
9073
9074 PR target/97387
9075 * config/i386/i386.md (CC_CCC): New mode iterator.
9076 (*setcc_qi_addqi3_cconly_overflow_1_<mode>): New
9077 define_insn_and_split.
9078 * config/i386/i386.c (ix86_cc_mode): Return CCCmode
9079 for *setcc_qi_addqi3_cconly_overflow_1_<mode> pattern operands.
9080 (ix86_rtx_costs): Return true and *total = 0;
9081 for *setcc_qi_addqi3_cconly_overflow_1_<mode> pattern. Use op0 and
9082 op1 temporaries to simplify COMPARE checks.
9083
9084 2020-10-14 Aldy Hernandez <aldyh@redhat.com>
9085
9086 PR tree-optimization/97396
9087 * gimple-range.cc (gimple_ranger::range_of_phi): Do not call
9088 range_of_ssa_name_with_loop_info with the loop tree root.
9089
9090 2020-10-14 Richard Biener <rguenther@suse.de>
9091
9092 * tree-vect-slp.c (vect_get_and_check_slp_defs): Split out
9093 test for compatible operand types.
9094
9095 2020-10-14 Olivier Hainque <hainque@adacore.com>
9096
9097 * config/vxworks.c (vxworks_override_options): Guard pic checks with
9098 flag_pic > 0 instead of just flag_pic.
9099
9100 2020-10-14 Jan Hubicka <hubicka@ucw.cz>
9101
9102 * ipa-fnsummary.c (remap_edge_summaries): Make offset_map HOST_WIDE_INT.
9103 (remap_freqcounting_predicate): Likewise.
9104 (ipa_merge_fn_summary_after_inlining): Likewise.
9105 * ipa-predicate.c (predicate::remap_after_inlining): Likewise
9106 * ipa-predicate.h (remap_after_inlining): Update.
9107
9108 2020-10-14 Jan Hubicka <jh@suse.cz>
9109
9110 * ipa-modref.c (compute_parm_map): Handle POINTER_PLUS_EXPR in
9111 PASSTHROUGH.
9112
9113 2020-10-14 Richard Biener <rguenther@suse.de>
9114
9115 * tree-vect-slp.c (vect_get_and_check_slp_defs): Move
9116 check for duplicate/interleave of variable size constants
9117 to a place done once and early.
9118 (vect_build_slp_tree_2): Adjust heuristics when to build
9119 a BB SLP node from scalars.
9120
9121 2020-10-14 Tom de Vries <tdevries@suse.de>
9122
9123 * tracer.c (cached_can_duplicate_bb_p, analyze_bb): Use
9124 can_duplicate_block_p.
9125 (can_duplicate_insn_p, can_duplicate_bb_no_insn_iter_p)
9126 (can_duplicate_bb_p): Move and merge ...
9127 * tree-cfg.c (gimple_can_duplicate_bb_p): ... here.
9128
9129 2020-10-14 Jan Hubicka <hubicka@ucw.cz>
9130
9131 * doc/invoke.texi: (ipa-jump-function-lookups): Document param.
9132 * ipa-modref.c (merge_call_side_effects): Use
9133 unadjusted_ptr_and_unit_offset.
9134 * ipa-prop.c (unadjusted_ptr_and_unit_offset): New function.
9135 * ipa-prop.h (unadjusted_ptr_and_unit_offset): Declare.
9136 * params.opt: (-param-ipa-jump-function-lookups): New.
9137
9138 2020-10-14 Jan Hubicka <jh@suse.cz>
9139
9140 PR bootstrap/97350
9141 * ipa-modref.c (ignore_edge): Do not ignore inlined edes.
9142 (ipa_merge_modref_summary_after_inlining): Improve debug output and
9143 fix parameter of ignore_stores_p.
9144
9145 2020-10-14 Kito Cheng <kito.cheng@sifive.com>
9146
9147 PR target/96759
9148 * expr.c (expand_assignment): Handle misaligned stores with PARALLEL
9149 value.
9150
9151 2020-10-13 Jakub Jelinek <jakub@redhat.com>
9152
9153 PR rtl-optimization/97386
9154 * combine.c (simplify_shift_const_1): Don't optimize nested ROTATEs if
9155 they have different modes.
9156
9157 2020-10-13 Aldy Hernandez <aldyh@redhat.com>
9158
9159 PR tree-optimization/97379
9160 * gimple-range-edge.cc (outgoing_range::calc_switch_ranges): Do
9161 not save hash slot across calls to hash_table<>::get_or_insert.
9162
9163 2020-10-13 Tobias Burnus <tobias@codesourcery.com>
9164
9165 * lto-wrapper.c (find_crtoffloadtable): Fix last commit
9166 by adding NULL as last argument to concat.
9167
9168 2020-10-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9169
9170 * config/aarch64/aarch64.c (neoversen2_tunings): Define.
9171 * config/aarch64/aarch64-cores.def (neoverse-n2): Use it.
9172
9173 2020-10-13 Tobias Burnus <tobias@codesourcery.com>
9174
9175 * lto-wrapper.c (find_crtoffloadtable): With -save-temps,
9176 use non-temp file name utilizing the dump prefix.
9177 (run_gcc): Update call.
9178
9179 2020-10-13 Richard Biener <rguenther@suse.de>
9180
9181 PR tree-optimization/97382
9182 * tree-vectorizer.h (_stmt_vec_info::same_align_refs): Remove.
9183 (STMT_VINFO_SAME_ALIGN_REFS): Likewise.
9184 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Do not
9185 allocate STMT_VINFO_SAME_ALIGN_REFS.
9186 (vec_info::free_stmt_vec_info): Do not release
9187 STMT_VINFO_SAME_ALIGN_REFS.
9188 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
9189 Do not compute self and read-read dependences.
9190 (vect_dr_aligned_if_related_peeled_dr_is): New helper.
9191 (vect_dr_aligned_if_peeled_dr_is): Likewise.
9192 (vect_update_misalignment_for_peel): Use it instead of
9193 iterating over STMT_VINFO_SAME_ALIGN_REFS.
9194 (dr_align_group_sort_cmp): New function.
9195 (vect_enhance_data_refs_alignment): Count the number of
9196 same aligned refs here and elide uses of STMT_VINFO_SAME_ALIGN_REFS.
9197 (vect_find_same_alignment_drs): Remove.
9198 (vect_analyze_data_refs_alignment): Do not call it.
9199 * vec.h (auto_vec<T, 0>::auto_vec): Adjust CTOR to take
9200 a vec<>&&, assert it isn't using auto storage.
9201 (auto_vec& operator=): Apply a similar change.
9202
9203 2020-10-13 Tobias Burnus <tobias@codesourcery.com>
9204
9205 * config/nvptx/mkoffload.c (main): Add missing fclose (in).
9206
9207 2020-10-13 Zhiheng Xie <xiezhiheng@huawei.com>
9208 Nannan Zheng <zhengnannan@huawei.com>
9209
9210 * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG
9211 for mul/mla/mls intrinsics.
9212
9213 2020-10-13 Jakub Jelinek <jakub@redhat.com>
9214
9215 * omp-low.c (add_taskreg_looptemp_clauses): For triangular loops
9216 with non-constant number of iterations add another 4 _looptemp_
9217 clauses before the (optional) one for lastprivate.
9218 (lower_omp_for_lastprivate): Skip those clauses when looking for
9219 the lastprivate clause.
9220 (lower_omp_for): For triangular loops with non-constant number of
9221 iterations add another 4 _looptemp_ clauses.
9222 * omp-expand.c (expand_omp_for_init_counts): For triangular loops
9223 with non-constant number of iterations set counts[0],
9224 fd->first_inner_iterations, fd->factor and fd->adjn1 from the newly
9225 added _looptemp_ clauses.
9226 (expand_omp_for_init_vars): Initialize the newly added _looptemp_
9227 clauses.
9228 (find_lastprivate_looptemp): New function.
9229 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk,
9230 expand_omp_taskloop_for_outer): Use it instead of manually skipping
9231 _looptemp_ clauses.
9232
9233 2020-10-13 Jan Hubicka <hubicka@ucw.cz>
9234
9235 PR ipa/97389
9236 * ipa-modref.c (dump_lto_records): Fix formating of dump file.
9237 (modref_summary::dump): Do not check loads to be non-null.
9238 (modref_summary_lto::dump): Do not check loads to be non-null.
9239 (merge_call_side_effects): Improve debug output.
9240 (analyze_call): Crash when cur_summary->loads is NULL.
9241 (analyze_function): Update.
9242 (modref_summaries::insert): Insert only into summaries, not
9243 optimization_summaries.
9244 (modref_summaries::duplicate): Likewise; crash when load or sotres
9245 are NULL.
9246 (modref_summaries_lto::duplicate): Crash when loads or stores are NULL.
9247 (write_modref_records): param_index is signed.
9248 (read_modref_records): param_index is signed.
9249 (modref_write): Crash when loads or stores are NULL.
9250 (read_section): Compensate previous change.
9251 (pass_modref::execute): Do not check optimization_summaries t be
9252 non-NULL.
9253 (ignore_edge): Fix.
9254 (compute_parm_map): Fix formating.
9255 (modref_propagate_in_scc): Do not expect loads/stores to be NULL.
9256
9257 2020-10-12 Alexandre Oliva <oliva@adacore.com>
9258
9259 * builtins.c (mathfn_built_in_type): Use CFN_ enumerators.
9260
9261 2020-10-12 Andrew MacLeod <amacleod@redhat.com>
9262
9263 PR tree-optimization/97381
9264 * gimple-range-gori.cc (gori_compute::compute_operand2_range): If a range cannot be
9265 calculated through operand 2, return false.
9266
9267 2020-10-12 Aldy Hernandez <aldyh@redhat.com>
9268
9269 PR tree-optimization/97378
9270 * range-op.cc (operator_trunc_mod::wi_fold): Return VARYING for mod by zero.
9271
9272 2020-10-12 David Malcolm <dmalcolm@redhat.com>
9273
9274 * doc/invoke.texi: Document -Wanalyzer-write-to-const and
9275 -Wanalyzer-write-to-string-literal.
9276
9277 2020-10-12 Martin Sebor <msebor@redhat.com>
9278
9279 PR middle-end/97342
9280 PR middle-end/97023
9281 PR middle-end/96384
9282 * builtins.c (access_ref::access_ref): Initialize new member. Use
9283 new enum.
9284 (access_ref::size_remaining): Define new member function.
9285 (inform_access): Handle expressions referencing objects.
9286 (gimple_call_alloc_size): Call get_size_range instead of get_range.
9287 (gimple_call_return_array): New function.
9288 (get_range): Rename...
9289 (get_offset_range): ...to this. Improve detection of ranges from
9290 types of expressions.
9291 (gimple_call_return_array): Adjust calls to get_range per above.
9292 (compute_objsize): Same. Set maximum size or offset instead of
9293 failing for unknown objects and handle more kinds of expressions.
9294 (compute_objsize): Call access_ref::size_remaining.
9295 (compute_objsize): Have transitional wrapper fail for pointers
9296 into unknown objects.
9297 (expand_builtin_strncmp): Call access_ref::size_remaining and
9298 handle new cases.
9299 * builtins.h (access_ref::size_remaining): Declare new member function.
9300 (access_ref::set_max_size_range): Define new member function.
9301 (access_ref::add_ofset, access_ref::add_max_ofset): Same.
9302 (access_ref::add_base0): New data member.
9303 * calls.c (get_size_range): Change argument type. Handle new
9304 condition.
9305 * calls.h (get_size_range): Adjust signature.
9306 (enum size_range_flags): Define new type.
9307 * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): Correct
9308 argument to get_size_range.
9309 * tree-ssa-strlen.c (get_range): Handle anti-ranges.
9310 (maybe_warn_overflow): Check DECL_P before assuming it's one.
9311
9312 2020-10-12 Martin Sebor <msebor@redhat.com>
9313
9314 PR c++/96511
9315 PR middle-end/96384
9316 * builtins.c (get_range): Return full range of type when neither
9317 value nor its range is available. Fail for ranges inverted due
9318 to the signedness of offsets.
9319 (compute_objsize): Handle more special array members. Handle
9320 POINTER_PLUS_EXPR and VIEW_CONVERT_EXPR that come up in front end
9321 code.
9322 (access_ref::offset_bounded): Define new member function.
9323 * builtins.h (access_ref::eval): New data member.
9324 (access_ref::offset_bounded): New member function.
9325 (access_ref::offset_zero): New member function.
9326 (compute_objsize): Declare a new overload.
9327 * gimple-array-bounds.cc (array_bounds_checker::check_array_ref): Use
9328 enum special_array_member.
9329 * tree.c (component_ref_size): Use special_array_member.
9330 * tree.h (special_array_member): Define a new type.
9331 (component_ref_size): Change signature.
9332
9333 2020-10-12 Jan Hubicka <hubicka@ucw.cz>
9334
9335 * ipa-modref.c (modref_summaries): Remove field IPA.
9336 (class modref_summary_lto): New global variable.
9337 (class modref_summaries_lto): New.
9338 (modref_summary::modref_summary): Remove loads_lto and stores_lto.
9339 (modref_summary::~modref_summary): Remove loads_lto and stores_lto.
9340 (modref_summary::useful_p): Do not use lto_useful.
9341 (modref_records_lto): New typedef.
9342 (struct modref_summary_lto): New type.
9343 (modref_summary_lto::modref_summary_lto): New member function.
9344 (modref_summary_lto::~modref_summary_lto): New member function.
9345 (modref_summary_lto::useful_p): New member function.
9346 (modref_summary::dump): Do not handle lto.
9347 (modref_summary_lto::dump): New member function.
9348 (get_modref_function_summary): Use optimization_summary.
9349 (merge_call_side_effects): Use optimization_summary.
9350 (analyze_call): Use optimization_summary.
9351 (struct summary_ptrs): New struture.
9352 (analyze_load): Update to handle separate lto and non-lto summaries.
9353 (analyze_store): Likewise.
9354 (analyze_stmt): Likewise.
9355 (remove_summary): Break out from ...
9356 (analyze_function): ... here; update to handle seprated summaries.
9357 (modref_summaries::insert): Do not handle lto summary.
9358 (modref_summaries_lto::insert): New member function.
9359 (modref_summaries::duplicate): Do not handle lto summary.
9360 (modref_summaries_lto::duplicate): New member function.
9361 (read_modref_records): Expect nolto_ret or lto_ret to be NULL>
9362 (modref_write): Write lto summary.
9363 (read_section): Handle separated summaries.
9364 (modref_read): Initialize separated summaries.
9365 (modref_transform): Handle separated summaries.
9366 (pass_modref::execute): Turn summary to optimization_summary; handle
9367 separate summaries.
9368 (ignore_edge): Handle separate summaries.
9369 (ipa_merge_modref_summary_after_inlining): Likewise.
9370 (collapse_loads): Likewise.
9371 (modref_propagate_in_scc): Likewise.
9372 (pass_ipa_modref::execute): Likewise.
9373 (ipa_modref_c_finalize): Likewise.
9374 * ipa-modref.h (modref_records_lto): Remove typedef.
9375 (struct modref_summary): Remove stores_lto, loads_lto and finished
9376 fields; remove lto_useful_p member function.
9377
9378 2020-10-12 Richard Biener <rguenther@suse.de>
9379
9380 * tree-vect-data-refs.c (vect_slp_analyze_instance_dependence):
9381 Use SLP_TREE_REPRESENTATIVE.
9382 * tree-vectorizer.h (_slp_tree::vertex): New member used
9383 for graphds interfacing.
9384 * tree-vect-slp.c (vect_build_slp_tree_2): Allocate space
9385 for PHI SLP children.
9386 (vect_analyze_slp_backedges): New function filling in SLP
9387 node children for PHIs that correspond to backedge values.
9388 (vect_analyze_slp): Call vect_analyze_slp_backedges for the
9389 graph.
9390 (vect_slp_analyze_node_operations): Deal with a cyclic graph.
9391 (vect_schedule_slp_instance): Likewise.
9392 (vect_schedule_slp): Likewise.
9393 (slp_copy_subtree): Remove.
9394 (vect_slp_rearrange_stmts): Likewise.
9395 (vect_attempt_slp_rearrange_stmts): Likewise.
9396 (vect_slp_build_vertices): New functions.
9397 (vect_slp_permute): Likewise.
9398 (vect_slp_perms_eq): Likewise.
9399 (vect_optimize_slp): Remove special code to elide
9400 permutations with SLP reductions. Implement generic
9401 permute optimization.
9402
9403 2020-10-12 Christophe Lyon <christophe.lyon@linaro.org>
9404
9405 * config/arm/arm.c (arm_preferred_simd_mode): Use E_FOOmode
9406 instead of FOOmode.
9407
9408 2020-10-12 Martin Liska <mliska@suse.cz>
9409
9410 PR tree-optimization/97079
9411 * internal-fn.c (internal_fn_stored_value_index): Handle also
9412 .MASK_STORE_LANES.
9413 * tree-vect-patterns.c (vect_recog_over_widening_pattern): Bail
9414 out for unsupported TREE_TYPE.
9415
9416 2020-10-12 Richard Biener <rguenther@suse.de>
9417
9418 * tree-vect-slp.c (vect_bb_partition_graph_r): Use visited
9419 hash-map.
9420 (vect_bb_partition_graph): Likewise.
9421
9422 2020-10-12 Duan bo <duanbo3@huawei.com>
9423
9424 PR target/96757
9425 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Add
9426 the identification and handling of the dropped situation in the
9427 cond expression processing phase.
9428
9429 2020-10-12 Tobias Burnus <tobias@codesourcery.com>
9430
9431 * doc/invoke.texi (nvptx's -misa): Update default to sm_35.
9432
9433 2020-10-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9434
9435 PR target/97349
9436 * config/aarch64/arm_neon.h (vdupq_n_p8, vdupq_n_p16,
9437 vdupq_n_p64, vdupq_n_s8, vdupq_n_s16, vdupq_n_u8, vdupq_n_u16):
9438 Fix argument type.
9439
9440 2020-10-12 Ilya Leoshkevich <iii@linux.ibm.com>
9441
9442 * config/s390/s390-protos.h (s390_build_signbit_mask): New
9443 function.
9444 * config/s390/s390.c (s390_contiguous_bitmask_vector_p):
9445 Bitcast the argument to an integral mode.
9446 (s390_expand_vec_init): Do not call
9447 s390_contiguous_bitmask_vector_p with a scalar argument.
9448 (s390_build_signbit_mask): New function.
9449 * config/s390/vector.md (copysign<mode>3): Use bitwise
9450 operations.
9451
9452 2020-10-12 Aldy Hernandez <aldyh@redhat.com>
9453
9454 PR tree-optimization/97371
9455 * range-op.cc (operator_rshift::op1_range): Ignore shifts larger than
9456 or equal to type precision.
9457
9458 2020-10-12 Martin Liska <mliska@suse.cz>
9459
9460 * ipa-modref.c (merge_call_side_effects): Clear modref_parm_map
9461 fields in the vector.
9462
9463 2020-10-12 Richard Biener <rguenther@suse.de>
9464
9465 * tree-vect-slp.c (vect_analyze_slp_instance): Set matches to true
9466 after successful discovery but forced split.
9467
9468 2020-10-12 Tom de Vries <tdevries@suse.de>
9469
9470 * config/nvptx/nvptx.opt (-msoft-stack-reserve-local): Rename to ...
9471 (-msoft-stack-reserve-local=): ... this.
9472
9473 2020-10-12 Richard Biener <rguenther@suse.de>
9474
9475 PR tree-optimization/97357
9476 * tree-ssa-loop-split.c (ssa_semi_invariant_p): Abnormal
9477 SSA names are not semi invariant.
9478
9479 2020-10-11 Iain Sandoe <iain@sandoe.co.uk>
9480
9481 * config/darwin.c (darwin_globalize_label): Make a subset of
9482 metadate symbols global.
9483 (darwin_label_is_anonymous_local_objc_name): Make a subset of
9484 metadata symbols linker-visible.
9485 (darwin_override_options): Track more target OS versions, make
9486 the next_runtime version track this (unless it's set to 0 for
9487 GNU runtime).
9488
9489 2020-10-11 Iain Sandoe <iain@sandoe.co.uk>
9490
9491 * config/darwin.c (darwin_globalize_label): Add protocol
9492 meta-data labels to the set that are global.
9493 (darwin_label_is_anonymous_local_objc_name): Arrange for meta-
9494 data start labels to be linker-visible.
9495
9496 2020-10-11 Iain Sandoe <iain@sandoe.co.uk>
9497
9498 * config/darwin.c (darwin_objc2_section): Allow for
9499 values > 1 to represent the next runtime.
9500 (darwin_objc1_section): Likewise.
9501 * config/darwin.h (NEXT_OBJC_RUNTIME): Set the default
9502 next runtime value to be 10.5.8.
9503
9504 2020-10-10 Jan Hubicka <jh@suse.cz>
9505
9506 * ipa-modref.c (modref_transform): Fix parameter map computation.
9507
9508 2020-10-10 Tom de Vries <tdevries@suse.de>
9509
9510 PR target/97318
9511 * config/nvptx/nvptx.c (nvptx_replace_dot): New function.
9512 (write_fn_proto, write_fn_proto_from_insn, nvptx_output_call_insn):
9513 Use nvptx_replace_dot.
9514
9515 2020-10-10 Tom de Vries <tdevries@suse.de>
9516
9517 * config/nvptx/nvptx.c (write_fn_proto_1): New function, factored out
9518 of ...
9519 (write_fn_proto): ... here. Return void.
9520
9521 2020-10-10 Jan Hubicka <jh@suse.cz>
9522
9523 * ipa-modref.c (remap_arguments): Check range in map access.
9524
9525 2020-10-10 Jan Hubicka <jh@suse.cz>
9526
9527 * ipa-modref.c (modref_transform): Use reserve instead of safe_grow.
9528
9529 2020-10-10 Jan Hubicka <jh@suse.cz>
9530
9531 * ipa-modref.c (modref_transform): Check that summaries are allocated.
9532
9533 2020-10-10 Jan Hubicka <jh@suse.cz>
9534
9535 * ipa-modref-tree.h (struct modref_tree): Revert prevoius change.
9536 * ipa-modref.c (analyze_function): Dump original summary.
9537 (modref_read): Only set IPA if streaming summary (not optimization
9538 summary).
9539 (remap_arguments): New function.
9540 (modref_transform): New function.
9541 (compute_parm_map): Fix offset calculation.
9542 (ipa_merge_modref_summary_after_inlining): Do not merge stores when
9543 they can be ignored.
9544
9545 2020-10-10 Jan Hubicka <jh@suse.cz>
9546
9547 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Improve debug dumps.
9548 (call_may_clobber_ref_p_1): Improve debug dumps.
9549
9550 2020-10-10 Iain Sandoe <iain@sandoe.co.uk>
9551
9552 * config/darwin.c (output_objc_section_asm_op): Avoid extra
9553 objective-c section switches unless the linker needs them.
9554
9555 2020-10-10 Iain Sandoe <iain@sandoe.co.uk>
9556
9557 * config/darwin-sections.def (objc2_data_section): New.
9558 (objc2_ivar_section): New.
9559 * config/darwin.c (darwin_objc2_section): Act on Protocol and
9560 ivar refs.
9561
9562 2020-10-10 Iain Sandoe <iain@sandoe.co.uk>
9563
9564 * config/darwin-sections.def (objc2_class_names_section,
9565 objc2_method_names_section, objc2_method_types_section): New
9566 * config/darwin.c (output_objc_section_asm_op): Output new
9567 sections. (darwin_objc2_section): Select new sections where
9568 used.
9569
9570 2020-10-10 Iain Sandoe <iain@sandoe.co.uk>
9571
9572 * config/darwin.c (darwin_emit_local_bss): Amend section names to
9573 match system tools. (darwin_output_aligned_bss): Likewise.
9574
9575 2020-10-10 Aldy Hernandez <aldyh@redhat.com>
9576
9577 PR tree-optimization/97359
9578 * gimple-range-gori.cc (logical_stmt_cache::cacheable_p): Only
9579 handle ANDs and ORs.
9580 (gori_compute_cache::cache_stmt): Adjust comment.
9581
9582 2020-10-09 Vladimir Makarov <vmakarov@redhat.com>
9583
9584 PR rtl-optimization/97313
9585 * lra-constraints.c (match_reload): Don't keep strict_low_part in
9586 reloads for non-registers.
9587
9588 2020-10-09 H.J. Lu <hjl.tools@gmail.com>
9589
9590 PR target/97148
9591 * config.gcc (extra_headers): Add x86gprintrin.h.
9592 * config/i386/adxintrin.h: Check _X86GPRINTRIN_H_INCLUDED for
9593 <x86gprintrin.h>.
9594 * config/i386/bmi2intrin.h: Likewise.
9595 * config/i386/bmiintrin.h: Likewise.
9596 * config/i386/cetintrin.h: Likewise.
9597 * config/i386/cldemoteintrin.h: Likewise.
9598 * config/i386/clflushoptintrin.h: Likewise.
9599 * config/i386/clwbintrin.h: Likewise.
9600 * config/i386/enqcmdintrin.h: Likewise.
9601 * config/i386/fxsrintrin.h: Likewise.
9602 * config/i386/ia32intrin.h: Likewise.
9603 * config/i386/lwpintrin.h: Likewise.
9604 * config/i386/lzcntintrin.h: Likewise.
9605 * config/i386/movdirintrin.h: Likewise.
9606 * config/i386/pconfigintrin.h: Likewise.
9607 * config/i386/pkuintrin.h: Likewise.
9608 * config/i386/rdseedintrin.h: Likewise.
9609 * config/i386/rtmintrin.h: Likewise.
9610 * config/i386/serializeintrin.h: Likewise.
9611 * config/i386/tbmintrin.h: Likewise.
9612 * config/i386/tsxldtrkintrin.h: Likewise.
9613 * config/i386/waitpkgintrin.h: Likewise.
9614 * config/i386/wbnoinvdintrin.h: Likewise.
9615 * config/i386/xsavecintrin.h: Likewise.
9616 * config/i386/xsaveintrin.h: Likewise.
9617 * config/i386/xsaveoptintrin.h: Likewise.
9618 * config/i386/xsavesintrin.h: Likewise.
9619 * config/i386/xtestintrin.h: Likewise.
9620 * config/i386/immintrin.h: Include <x86gprintrin.h> instead of
9621 <fxsrintrin.h>, <xsaveintrin.h>, <xsaveoptintrin.h>,
9622 <xsavesintrin.h>, <xsavecintrin.h>, <lzcntintrin.h>,
9623 <bmiintrin.h>, <bmi2intrin.h>, <xtestintrin.h>, <cetintrin.h>,
9624 <movdirintrin.h>, <sgxintrin.h, <pconfigintrin.h>,
9625 <waitpkgintrin.h>, <cldemoteintrin.h>, <enqcmdintrin.h>,
9626 <serializeintrin.h>, <tsxldtrkintrin.h>, <adxintrin.h>,
9627 <clwbintrin.h>, <clflushoptintrin.h>, <wbnoinvdintrin.h> and
9628 <pkuintrin.h>.
9629 (_wbinvd): Moved to config/i386/x86gprintrin.h.
9630 (_rdrand16_step): Likewise.
9631 (_rdrand32_step): Likewise.
9632 (_rdpid_u32): Likewise.
9633 (_readfsbase_u32): Likewise.
9634 (_readfsbase_u64): Likewise.
9635 (_readgsbase_u32): Likewise.
9636 (_readgsbase_u64): Likewise.
9637 (_writefsbase_u32): Likewise.
9638 (_writefsbase_u64): Likewise.
9639 (_writegsbase_u32): Likewise.
9640 (_writegsbase_u64): Likewise.
9641 (_rdrand64_step): Likewise.
9642 (_ptwrite64): Likewise.
9643 (_ptwrite32): Likewise.
9644 * config/i386/x86gprintrin.h: New file.
9645 * config/i386/x86intrin.h: Include <x86gprintrin.h>. Don't
9646 include <ia32intrin.h>, <lwpintrin.h>, <tbmintrin.h>,
9647 <popcntintrin.h>, <mwaitxintrin.h> and <clzerointrin.h>.
9648
9649 2020-10-09 Tom de Vries <tdevries@suse.de>
9650
9651 PR target/97348
9652 * config/nvptx/nvptx.h (ASM_SPEC): Also pass -m to nvptx-as if
9653 default is used.
9654 * config/nvptx/nvptx.opt (misa): Init with PTX_ISA_SM35.
9655
9656 2020-10-09 Richard Biener <rguenther@suse.de>
9657
9658 * doc/sourcebuild.texi (vect_masked_load): Document.
9659
9660 2020-10-09 Richard Biener <rguenther@suse.de>
9661
9662 PR tree-optimization/97334
9663 * tree-vect-slp.c (vect_build_slp_tree_1): Do not fatally
9664 fail lanes other than zero when BB vectorizing.
9665
9666 2020-10-09 Jan Hubicka <jh@suse.cz>
9667
9668 PR ipa/97292
9669 PR ipa/97335
9670 * ipa-modref-tree.h (copy_from): Drop summary in a
9671 clone.
9672
9673 2020-10-09 Richard Biener <rguenther@suse.de>
9674
9675 PR tree-optimization/97347
9676 * tree-vect-slp.c (vect_create_constant_vectors): Use
9677 edge insertion when inserting on the fallthru edge,
9678 appropriately insert at the start of BBs when inserting
9679 after PHIs.
9680
9681 2020-10-09 Andrew MacLeod <amacleod@redhat.com>
9682
9683 PR tree-optimization/97317
9684 * range-op.cc (operator_cast::op1_range): Handle casts where the precision
9685 of the RHS is only 1 greater than the precision of the LHS.
9686
9687 2020-10-09 Richard Biener <rguenther@suse.de>
9688
9689 * cgraphunit.c (expand_all_functions): Free tp_first_run_order.
9690 * ipa-modref.c (pass_ipa_modref::execute): Free order.
9691 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations): Free
9692 loop body.
9693 * tree-vect-data-refs.c (vect_find_stmt_data_reference): Free
9694 data references upon failure.
9695 * tree-vect-loop.c (update_epilogue_loop_vinfo): Free BBs
9696 array of the original loop.
9697 * tree-vect-slp.c (vect_slp_bbs): Use an auto_vec for
9698 dataref_groups to release its memory.
9699
9700 2020-10-09 Jakub Jelinek <jakub@redhat.com>
9701
9702 PR tree-optimization/94801
9703 PR target/97312
9704 * vr-values.c (vr_values::extract_range_basic) <CASE_CFN_CLZ,
9705 CASE_CFN_CTZ>: When stmt is not an internal-fn call or
9706 C?Z_DEFINED_VALUE_AT_ZERO is not 2, assume argument is not zero
9707 and thus use [0, prec-1] range unless it can be further improved.
9708 For CTZ, don't update maxi from upper bound if it was previously prec.
9709 * gimple-range.cc (gimple_ranger::range_of_builtin_call) <CASE_CFN_CLZ,
9710 CASE_CFN_CTZ>: Likewise.
9711
9712 2020-10-09 Jakub Jelinek <jakub@redhat.com>
9713
9714 PR tree-optimization/97325
9715 * match.pd (FFS(nonzero) -> CTZ(nonzero) + 1): Cast argument to
9716 corresponding unsigned type.
9717
9718 2020-10-09 Richard Biener <rguenther@suse.de>
9719
9720 * tree-vect-slp.c (vect_create_constant_vectors): Properly insert
9721 after PHIs.
9722
9723 2020-10-08 Alexandre Oliva <oliva@adacore.com>
9724
9725 * builtins.c (mathfn_built_in_type): New.
9726 * builtins.h (mathfn_built_in_type): Declare.
9727 * tree-ssa-math-opts.c (execute_cse_sincos_1): Use it to
9728 obtain the type expected by the intrinsic.
9729
9730 2020-10-08 Will Schmidt <will_schmidt@vnet.ibm.com>
9731
9732 * config/rs6000/rs6000-builtin.def (BU_P10_MISC_2): Rename
9733 to BU_P10_POWERPC64_MISC_2.
9734 CFUGED, CNTLZDM, CNTTZDM, PDEPD, PEXTD): Call renamed macro.
9735
9736 2020-10-08 Jan Hubicka <jh@suse.cz>
9737
9738 * tree-nrv.c (dest_safe_for_nrv_p): Disable tbaa in
9739 call_may_clobber_ref_p and ref_maybe_used_by_stmt_p.
9740 * tree-tailcall.c (find_tail_calls): Likewise.
9741 * tree-ssa-alias.c (call_may_clobber_ref_p): Add tbaa_p parameter.
9742 * tree-ssa-alias.h (call_may_clobber_ref_p): Update prototype.
9743 * tree-ssa-sccvn.c (vn_reference_lookup_3): Pass data->tbaa_p
9744 to call_may_clobber_ref_p_1.
9745
9746 2020-10-08 Mark Wielaard <mark@klomp.org>
9747
9748 * dwarf2out.c (dwarf2out_finish): Emit .file 0 entry when
9749 generating DWARF5 .debug_line table through gas.
9750
9751 2020-10-08 John Henning <john.henning@oracle.com>
9752
9753 PR other/97309
9754 * doc/invoke.texi: Improve documentation of
9755 -fallow-store-data-races.
9756
9757 2020-10-08 Christophe Lyon <christophe.lyon@linaro.org>
9758
9759 PR target/96914
9760 * config/arm/arm_mve.h (__arm_vcvtnq_u32_f32): New.
9761
9762 2020-10-08 Martin Liska <mliska@suse.cz>
9763 Richard Biener <rguenther@suse.de>
9764
9765 * tree-vectorizer.h (_bb_vec_info::const_iterator): Remove.
9766 (_bb_vec_info::const_reverse_iterator): Likewise.
9767 (_bb_vec_info::region_stmts): Likewise.
9768 (_bb_vec_info::reverse_region_stmts): Likewise.
9769 (_bb_vec_info::_bb_vec_info): Adjust.
9770 (_bb_vec_info::bb): Remove.
9771 (_bb_vec_info::region_begin): Remove.
9772 (_bb_vec_info::region_end): Remove.
9773 (_bb_vec_info::bbs): New vector of BBs.
9774 (vect_slp_function): Declare.
9775 * tree-vect-patterns.c (vect_determine_precisions): Use
9776 regular stmt iteration.
9777 (vect_pattern_recog): Likewise.
9778 * tree-vect-slp.c: Include cfganal.h, tree-eh.h and tree-cfg.h.
9779 (vect_build_slp_tree_1): Properly refuse to vectorize
9780 volatile and throwing stmts.
9781 (vect_build_slp_tree_2): Pass group-size down to
9782 get_vectype_for_scalar_type.
9783 (_bb_vec_info::_bb_vec_info): Use regular stmt iteration,
9784 adjust for changed region specification.
9785 (_bb_vec_info::~_bb_vec_info): Likewise.
9786 (vect_slp_check_for_constructors): Likewise.
9787 (vect_slp_region): Likewise.
9788 (vect_slp_bbs): New worker operating on a vector of BBs.
9789 (vect_slp_bb): Wrap it.
9790 (vect_slp_function): New function splitting the function
9791 into multi-BB regions.
9792 (vect_create_constant_vectors): Handle the case of inserting
9793 after a throwing def.
9794 (vect_schedule_slp_instance): Adjust.
9795 * tree-vectorizer.c (vec_info::remove_stmt): Simplify again.
9796 (vec_info::insert_seq_on_entry): Adjust.
9797 (pass_slp_vectorize::execute): Also init PHIs. Call
9798 vect_slp_function.
9799
9800 2020-10-08 Richard Biener <rguenther@suse.de>
9801
9802 PR tree-optimization/97330
9803 * tree-ssa-sink.c (statement_sink_location): Avoid skipping
9804 PHIs when they dominate the insert location.
9805
9806 2020-10-08 Jan Hubicka <jh@suse.cz>
9807
9808 * ipa-modref.c (get_access): Fix handling of offsets.
9809 * tree-ssa-alias.c (modref_may_conflict): Watch for overflows.
9810
9811 2020-10-08 Martin Liska <mliska@suse.cz>
9812
9813 * dbgcnt.def (DEBUG_COUNTER): Add ipa_mod_ref debug counter.
9814 * tree-ssa-alias.c (modref_may_conflict): Handle the counter.
9815
9816 2020-10-08 Richard Biener <rguenther@suse.de>
9817
9818 * tree-vectorizer.c (try_vectorize_loop_1): Do not dump
9819 "basic block vectorized".
9820 (pass_slp_vectorize::execute): Likewise.
9821 * tree-vect-slp.c (vect_analyze_slp_instance): Avoid
9822 re-analyzing split single stmts.
9823
9824 2020-10-08 Christophe Lyon <christophe.lyon@linaro.org>
9825
9826 PR target/96914
9827 * config/arm/arm_mve.h (vqrdmlashq_n_u8, vqrdmlashq_n_u16)
9828 (vqrdmlashq_n_u32, vqrdmlahq_n_u8, vqrdmlahq_n_u16)
9829 (vqrdmlahq_n_u32, vqdmlahq_n_u8, vqdmlahq_n_u16, vqdmlahq_n_u32)
9830 (vmlaldavaxq_p_u16, vmlaldavaxq_p_u32): Remove.
9831 * config/arm/arm_mve_builtins.def (vqrdmlashq_n_u, vqrdmlahq_n_u)
9832 (vqdmlahq_n_u, vmlaldavaxq_p_u): Remove.
9833 * config/arm/unspecs.md (VQDMLAHQ_N_U, VQRDMLAHQ_N_U)
9834 (VQRDMLASHQ_N_U)
9835 (VMLALDAVAXQ_P_U): Remove unspecs.
9836 * config/arm/iterators.md (VQDMLAHQ_N_U, VQRDMLAHQ_N_U)
9837 (VQRDMLASHQ_N_U, VMLALDAVAXQ_P_U): Remove attributes.
9838 (VQDMLAHQ_N, VQRDMLAHQ_N, VQRDMLASHQ_N, VMLALDAVAXQ_P): Remove
9839 unsigned variants from iterators.
9840 * config/arm/mve.md (mve_vqdmlahq_n_<supf><mode>)
9841 (mve_vqrdmlahq_n_<supf><mode>)
9842 (mve_vqrdmlashq_n_<supf><mode>, mve_vmlaldavaxq_p_<supf><mode>):
9843 Update comment.
9844
9845 2020-10-08 Christophe Lyon <christophe.lyon@linaro.org>
9846
9847 PR target/96914
9848 * config/arm/arm_mve.h (vqdmlashq, vqdmlashq_m): Define.
9849 * config/arm/arm_mve_builtins.def (vqdmlashq_n_s)
9850 (vqdmlashq_m_n_s,): New.
9851 * config/arm/unspecs.md (VQDMLASHQ_N_S, VQDMLASHQ_M_N_S): New
9852 unspecs.
9853 * config/arm/iterators.md (VQDMLASHQ_N_S, VQDMLASHQ_M_N_S): New
9854 attributes.
9855 (VQDMLASHQ_N): New iterator.
9856 * config/arm/mve.md (mve_vqdmlashq_n_, mve_vqdmlashq_m_n_s): New
9857 patterns.
9858
9859 2020-10-08 Jakub Jelinek <jakub@redhat.com>
9860
9861 PR target/97322
9862 * config/arm/arm.c (arm_expand_divmod_libfunc): Pass mode instead of
9863 GET_MODE (op0) or GET_MODE (op1) to emit_library_call_value.
9864
9865 2020-10-08 Aldy Hernandez <aldyh@redhat.com>
9866
9867 PR tree-optimization/97325
9868 * gimple-range.cc (gimple_ranger::range_of_builtin_call): Handle
9869 negative numbers in __builtin_ffs and __builtin_popcount.
9870
9871 2020-10-08 Aldy Hernandez <aldyh@redhat.com>
9872
9873 PR tree-optimization/97315
9874 * range-op.cc (value_range_with_overflow): Change any
9875 non-overflow calculation in which both bounds are
9876 overflow/underflow to be undefined.
9877
9878 2020-10-08 Aldy Hernandez <aldyh@redhat.com>
9879
9880 PR tree-optimization/97315
9881 * gimple-ssa-evrp.c (hybrid_folder::choose_value): Removes the
9882 trap and instead annotates the listing.
9883
9884 2020-10-08 Jakub Jelinek <jakub@redhat.com>
9885
9886 PR sanitizer/97294
9887 * tree-cfg.c (move_block_to_fn): Call notice_special_calls on
9888 call stmts being moved into dest_cfun.
9889 * omp-low.c (lower_rec_input_clauses): Set cfun->calls_alloca when
9890 adding __builtin_alloca_with_align call without gimplification.
9891
9892 2020-10-07 Aldy Hernandez <aldyh@redhat.com>
9893
9894 * common.opt (-fevrp-mode): Rename and move...
9895 * params.opt (--param=evrp-mode): ...here.
9896 * gimple-range.h (DEBUG_RANGE_CACHE): Use param_evrp_mode instead
9897 of flag_evrp_mode.
9898 * gimple-ssa-evrp.c (rvrp_folder): Same.
9899 (hybrid_folder): Same.
9900 (execute_early_vrp): Same.
9901
9902 2020-10-07 Richard Biener <rguenther@suse.de>
9903
9904 PR tree-optimization/97307
9905 * tree-ssa-sink.c (statement_sink_location): Change heuristic
9906 for not skipping stores to look for virtual definitions
9907 rather than uses.
9908
9909 2020-10-07 Andrew MacLeod <amacleod@redhat.com>
9910
9911 * value-range.h (irange_allocator::allocate): Allocate in two hunks
9912 instead of using the variably-sized trailing array approach.
9913
9914 2020-10-07 David Malcolm <dmalcolm@redhat.com>
9915
9916 * doc/invoke.texi (-fdiagnostics-plain-output): Add
9917 -fdiagnostics-path-format=separate-events to list of
9918 options injected by -fdiagnostics-plain-output.
9919 * opts-common.c (decode_cmdline_options_to_array): Likewise.
9920
9921 2020-10-07 Martin Jambor <mjambor@suse.cz>
9922
9923 PR ipa/96394
9924 * ipa-prop.c (update_indirect_edges_after_inlining): Do not add
9925 resolved speculation edges to vector of new direct edges even in
9926 presence of multiple speculative direct edges for a single call.
9927
9928 2020-10-07 Andrew Stubbs <ams@codesourcery.com>
9929
9930 * config/gcn/gcn.md (unspec): Add UNSPEC_ADDPTR.
9931 (addptrdi3): Add SGPR alternative.
9932
9933 2020-10-07 Mark Wielaard <mark@klomp.org>
9934
9935 * dwarf2out.c (add_filepath_AT_string): New function.
9936 (asm_outputs_debug_line_str): Likewise.
9937 (add_filename_attribute): Likewise.
9938 (add_comp_dir_attribute): Call add_filepath_AT_string.
9939 (gen_compile_unit_die): Call add_filename_attribute for name.
9940 (init_sections_and_labels): Init debug_line_str_section when
9941 asm_outputs_debug_line_str return true.
9942 (dwarf2out_early_finish): Remove DW_AT_name and DW_AT_comp_dir
9943 hack and call add_filename_attribute for the remap_debug_filename.
9944
9945 2020-10-07 Jakub Jelinek <jakub@redhat.com>
9946
9947 * configure.ac (HAVE_AS_GDWARF_5_DEBUG_FLAG,
9948 HAVE_AS_WORKING_DWARF_4_FLAG): New tests.
9949 * gcc.c (ASM_DEBUG_DWARF_OPTION): Define.
9950 (ASM_DEBUG_SPEC): Use ASM_DEBUG_DWARF_OPTION instead of
9951 "--gdwarf2". Use %{cond:opt1;:opt2} style.
9952 (ASM_DEBUG_OPTION_DWARF_OPT): Define.
9953 (ASM_DEBUG_OPTION_SPEC): Define.
9954 (asm_debug_option): New variable.
9955 (asm_options): Add "%(asm_debug_option)".
9956 (static_specs): Add asm_debug_option entry.
9957 (static_spec_functions): Add dwarf-version-gt.
9958 (debug_level_greater_than_spec_func): New function.
9959 * config/darwin.h (ASM_DEBUG_OPTION_SPEC): Define.
9960 * config/darwin9.h (ASM_DEBUG_OPTION_SPEC): Redefine.
9961 * config.in: Regenerated.
9962 * configure: Regenerated.
9963
9964 2020-10-07 Jakub Jelinek <jakub@redhat.com>
9965
9966 PR bootstrap/97305
9967 * optc-save-gen.awk: Don't declare mask variable if explicit_mask
9968 array is not present.
9969
9970 2020-10-07 Jakub Jelinek <jakub@redhat.com>
9971
9972 * omp-expand.c (expand_omp_simd): Don't emit MIN_EXPR and PLUS_EXPR
9973 at the end of entry_bb and innermost init_bb, instead force arguments
9974 for MIN_EXPR into temporaries in both cases and jump to a new bb that
9975 performs MIN_EXPR and PLUS_EXPR.
9976
9977 2020-10-07 Tom de Vries <tdevries@suse.de>
9978
9979 * tree-ssa-loop-ch.c (ch_base::copy_headers): Add missing NULL test
9980 for dump_file.
9981
9982 2020-10-06 Andrew MacLeod <amacleod@redhat.com>
9983
9984 * flag-types.h (enum evrp_mode): New enumerated type EVRP_MODE_*.
9985 * common.opt (fevrp-mode): New undocumented flag.
9986 * gimple-ssa-evrp.c: Include gimple-range.h
9987 (class rvrp_folder): EVRP folding using ranger exclusively.
9988 (rvrp_folder::rvrp_folder): New.
9989 (rvrp_folder::~rvrp_folder): New.
9990 (rvrp_folder::value_of_expr): New. Use rangers value_of_expr.
9991 (rvrp_folder::value_on_edge): New. Use rangers value_on_edge.
9992 (rvrp_folder::value_of_Stmt): New. Use rangers value_of_stmt.
9993 (rvrp_folder::fold_stmt): New. Call the simplifier.
9994 (class hybrid_folder): EVRP folding using both engines.
9995 (hybrid_folder::hybrid_folder): New.
9996 (hybrid_folder::~hybrid_folder): New.
9997 (hybrid_folder::fold_stmt): New. Simplify with one engne, then the
9998 other.
9999 (hybrid_folder::value_of_expr): New. Use both value routines.
10000 (hybrid_folder::value_on_edge): New. Use both value routines.
10001 (hybrid_folder::value_of_stmt): New. Use both value routines.
10002 (hybrid_folder::choose_value): New. Choose between range_analzyer and
10003 rangers values.
10004 (execute_early_vrp): Choose a folder based on flag_evrp_mode.
10005 * vr-values.c (simplify_using_ranges::fold_cond): Try range_of_stmt
10006 first to see if it returns a value.
10007 (simplify_using_ranges::simplify_switch_using_ranges): Return true if
10008 any changes were made to the switch.
10009
10010 2020-10-06 Andrew MacLeod <amacleod@redhat.com>
10011
10012 * Makefile.in (OBJS): Add gimple-range*.o.
10013 * gimple-range.h: New file.
10014 * gimple-range.cc: New file.
10015 * gimple-range-cache.h: New file.
10016 * gimple-range-cache.cc: New file.
10017 * gimple-range-edge.h: New file.
10018 * gimple-range-edge.cc: New file.
10019 * gimple-range-gori.h: New file.
10020 * gimple-range-gori.cc: New file.
10021
10022 2020-10-06 Dennis Zhang <dennis.zhang@arm.com>
10023
10024 * config/arm/arm.c (arm_preferred_simd_mode): Enable MVE SIMD modes.
10025
10026 2020-10-06 Tom de Vries <tdevries@suse.de>
10027
10028 PR middle-end/90861
10029 * gimplify.c (gimplify_bind_expr): Handle lookup in
10030 oacc_declare_returns using key with decl-expr.
10031
10032 2020-10-06 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
10033
10034 * config/arm/iterators.md (MVE_types): Move mode iterator from mve.md to
10035 iterators.md.
10036 (MVE_VLD_ST): Likewise.
10037 (MVE_0): Likewise.
10038 (MVE_1): Likewise.
10039 (MVE_3): Likewise.
10040 (MVE_2): Likewise.
10041 (MVE_5): Likewise.
10042 (MVE_6): Likewise.
10043 (MVE_CNVT): Move mode attribute iterator from mve.md to iterators.md.
10044 (MVE_LANES): Likewise.
10045 (MVE_constraint): Likewise.
10046 (MVE_constraint1): Likewise.
10047 (MVE_constraint2): Likewise.
10048 (MVE_constraint3): Likewise.
10049 (MVE_pred): Likewise.
10050 (MVE_pred1): Likewise.
10051 (MVE_pred2): Likewise.
10052 (MVE_pred3): Likewise.
10053 (MVE_B_ELEM): Likewise.
10054 (MVE_H_ELEM): Likewise.
10055 (V_sz_elem1): Likewise.
10056 (V_extr_elem): Likewise.
10057 (earlyclobber_32): Likewise.
10058 (supf): Move int attribute from mve.md to iterators.md.
10059 (mode1): Likewise.
10060 (VCVTQ_TO_F): Move int iterator from mve.md to iterators.md.
10061 (VMVNQ_N): Likewise.
10062 (VREV64Q): Likewise.
10063 (VCVTQ_FROM_F): Likewise.
10064 (VREV16Q): Likewise.
10065 (VCVTAQ): Likewise.
10066 (VMVNQ): Likewise.
10067 (VDUPQ_N): Likewise.
10068 (VCLZQ): Likewise.
10069 (VADDVQ): Likewise.
10070 (VREV32Q): Likewise.
10071 (VMOVLBQ): Likewise.
10072 (VMOVLTQ): Likewise.
10073 (VCVTPQ): Likewise.
10074 (VCVTNQ): Likewise.
10075 (VCVTMQ): Likewise.
10076 (VADDLVQ): Likewise.
10077 (VCTPQ): Likewise.
10078 (VCTPQ_M): Likewise.
10079 (VCVTQ_N_TO_F): Likewise.
10080 (VCREATEQ): Likewise.
10081 (VSHRQ_N): Likewise.
10082 (VCVTQ_N_FROM_F): Likewise.
10083 (VADDLVQ_P): Likewise.
10084 (VCMPNEQ): Likewise.
10085 (VSHLQ): Likewise.
10086 (VABDQ): Likewise.
10087 (VADDQ_N): Likewise.
10088 (VADDVAQ): Likewise.
10089 (VADDVQ_P): Likewise.
10090 (VANDQ): Likewise.
10091 (VBICQ): Likewise.
10092 (VBRSRQ_N): Likewise.
10093 (VCADDQ_ROT270): Likewise.
10094 (VCADDQ_ROT90): Likewise.
10095 (VCMPEQQ): Likewise.
10096 (VCMPEQQ_N): Likewise.
10097 (VCMPNEQ_N): Likewise.
10098 (VEORQ): Likewise.
10099 (VHADDQ): Likewise.
10100 (VHADDQ_N): Likewise.
10101 (VHSUBQ): Likewise.
10102 (VHSUBQ_N): Likewise.
10103 (VMAXQ): Likewise.
10104 (VMAXVQ): Likewise.
10105 (VMINQ): Likewise.
10106 (VMINVQ): Likewise.
10107 (VMLADAVQ): Likewise.
10108 (VMULHQ): Likewise.
10109 (VMULLBQ_INT): Likewise.
10110 (VMULLTQ_INT): Likewise.
10111 (VMULQ): Likewise.
10112 (VMULQ_N): Likewise.
10113 (VORNQ): Likewise.
10114 (VORRQ): Likewise.
10115 (VQADDQ): Likewise.
10116 (VQADDQ_N): Likewise.
10117 (VQRSHLQ): Likewise.
10118 (VQRSHLQ_N): Likewise.
10119 (VQSHLQ): Likewise.
10120 (VQSHLQ_N): Likewise.
10121 (VQSHLQ_R): Likewise.
10122 (VQSUBQ): Likewise.
10123 (VQSUBQ_N): Likewise.
10124 (VRHADDQ): Likewise.
10125 (VRMULHQ): Likewise.
10126 (VRSHLQ): Likewise.
10127 (VRSHLQ_N): Likewise.
10128 (VRSHRQ_N): Likewise.
10129 (VSHLQ_N): Likewise.
10130 (VSHLQ_R): Likewise.
10131 (VSUBQ): Likewise.
10132 (VSUBQ_N): Likewise.
10133 (VADDLVAQ): Likewise.
10134 (VBICQ_N): Likewise.
10135 (VMLALDAVQ): Likewise.
10136 (VMLALDAVXQ): Likewise.
10137 (VMOVNBQ): Likewise.
10138 (VMOVNTQ): Likewise.
10139 (VORRQ_N): Likewise.
10140 (VQMOVNBQ): Likewise.
10141 (VQMOVNTQ): Likewise.
10142 (VSHLLBQ_N): Likewise.
10143 (VSHLLTQ_N): Likewise.
10144 (VRMLALDAVHQ): Likewise.
10145 (VBICQ_M_N): Likewise.
10146 (VCVTAQ_M): Likewise.
10147 (VCVTQ_M_TO_F): Likewise.
10148 (VQRSHRNBQ_N): Likewise.
10149 (VABAVQ): Likewise.
10150 (VSHLCQ): Likewise.
10151 (VRMLALDAVHAQ): Likewise.
10152 (VADDVAQ_P): Likewise.
10153 (VCLZQ_M): Likewise.
10154 (VCMPEQQ_M_N): Likewise.
10155 (VCMPEQQ_M): Likewise.
10156 (VCMPNEQ_M_N): Likewise.
10157 (VCMPNEQ_M): Likewise.
10158 (VDUPQ_M_N): Likewise.
10159 (VMAXVQ_P): Likewise.
10160 (VMINVQ_P): Likewise.
10161 (VMLADAVAQ): Likewise.
10162 (VMLADAVQ_P): Likewise.
10163 (VMLAQ_N): Likewise.
10164 (VMLASQ_N): Likewise.
10165 (VMVNQ_M): Likewise.
10166 (VPSELQ): Likewise.
10167 (VQDMLAHQ_N): Likewise.
10168 (VQRDMLAHQ_N): Likewise.
10169 (VQRDMLASHQ_N): Likewise.
10170 (VQRSHLQ_M_N): Likewise.
10171 (VQSHLQ_M_R): Likewise.
10172 (VREV64Q_M): Likewise.
10173 (VRSHLQ_M_N): Likewise.
10174 (VSHLQ_M_R): Likewise.
10175 (VSLIQ_N): Likewise.
10176 (VSRIQ_N): Likewise.
10177 (VMLALDAVQ_P): Likewise.
10178 (VQMOVNBQ_M): Likewise.
10179 (VMOVLTQ_M): Likewise.
10180 (VMOVNBQ_M): Likewise.
10181 (VRSHRNTQ_N): Likewise.
10182 (VORRQ_M_N): Likewise.
10183 (VREV32Q_M): Likewise.
10184 (VREV16Q_M): Likewise.
10185 (VQRSHRNTQ_N): Likewise.
10186 (VMOVNTQ_M): Likewise.
10187 (VMOVLBQ_M): Likewise.
10188 (VMLALDAVAQ): Likewise.
10189 (VQSHRNBQ_N): Likewise.
10190 (VSHRNBQ_N): Likewise.
10191 (VRSHRNBQ_N): Likewise.
10192 (VMLALDAVXQ_P): Likewise.
10193 (VQMOVNTQ_M): Likewise.
10194 (VMVNQ_M_N): Likewise.
10195 (VQSHRNTQ_N): Likewise.
10196 (VMLALDAVAXQ): Likewise.
10197 (VSHRNTQ_N): Likewise.
10198 (VCVTMQ_M): Likewise.
10199 (VCVTNQ_M): Likewise.
10200 (VCVTPQ_M): Likewise.
10201 (VCVTQ_M_N_FROM_F): Likewise.
10202 (VCVTQ_M_FROM_F): Likewise.
10203 (VRMLALDAVHQ_P): Likewise.
10204 (VADDLVAQ_P): Likewise.
10205 (VABAVQ_P): Likewise.
10206 (VSHLQ_M): Likewise.
10207 (VSRIQ_M_N): Likewise.
10208 (VSUBQ_M): Likewise.
10209 (VCVTQ_M_N_TO_F): Likewise.
10210 (VHSUBQ_M): Likewise.
10211 (VSLIQ_M_N): Likewise.
10212 (VRSHLQ_M): Likewise.
10213 (VMINQ_M): Likewise.
10214 (VMULLBQ_INT_M): Likewise.
10215 (VMULHQ_M): Likewise.
10216 (VMULQ_M): Likewise.
10217 (VHSUBQ_M_N): Likewise.
10218 (VHADDQ_M_N): Likewise.
10219 (VORRQ_M): Likewise.
10220 (VRMULHQ_M): Likewise.
10221 (VQADDQ_M): Likewise.
10222 (VRSHRQ_M_N): Likewise.
10223 (VQSUBQ_M_N): Likewise.
10224 (VADDQ_M): Likewise.
10225 (VORNQ_M): Likewise.
10226 (VRHADDQ_M): Likewise.
10227 (VQSHLQ_M): Likewise.
10228 (VANDQ_M): Likewise.
10229 (VBICQ_M): Likewise.
10230 (VSHLQ_M_N): Likewise.
10231 (VCADDQ_ROT270_M): Likewise.
10232 (VQRSHLQ_M): Likewise.
10233 (VQADDQ_M_N): Likewise.
10234 (VADDQ_M_N): Likewise.
10235 (VMAXQ_M): Likewise.
10236 (VQSUBQ_M): Likewise.
10237 (VMLASQ_M_N): Likewise.
10238 (VMLADAVAQ_P): Likewise.
10239 (VBRSRQ_M_N): Likewise.
10240 (VMULQ_M_N): Likewise.
10241 (VCADDQ_ROT90_M): Likewise.
10242 (VMULLTQ_INT_M): Likewise.
10243 (VEORQ_M): Likewise.
10244 (VSHRQ_M_N): Likewise.
10245 (VSUBQ_M_N): Likewise.
10246 (VHADDQ_M): Likewise.
10247 (VABDQ_M): Likewise.
10248 (VMLAQ_M_N): Likewise.
10249 (VQSHLQ_M_N): Likewise.
10250 (VMLALDAVAQ_P): Likewise.
10251 (VMLALDAVAXQ_P): Likewise.
10252 (VQRSHRNBQ_M_N): Likewise.
10253 (VQRSHRNTQ_M_N): Likewise.
10254 (VQSHRNBQ_M_N): Likewise.
10255 (VQSHRNTQ_M_N): Likewise.
10256 (VRSHRNBQ_M_N): Likewise.
10257 (VRSHRNTQ_M_N): Likewise.
10258 (VSHLLBQ_M_N): Likewise.
10259 (VSHLLTQ_M_N): Likewise.
10260 (VSHRNBQ_M_N): Likewise.
10261 (VSHRNTQ_M_N): Likewise.
10262 (VSTRWSBQ): Likewise.
10263 (VSTRBSOQ): Likewise.
10264 (VSTRBQ): Likewise.
10265 (VLDRBGOQ): Likewise.
10266 (VLDRBQ): Likewise.
10267 (VLDRWGBQ): Likewise.
10268 (VLD1Q): Likewise.
10269 (VLDRHGOQ): Likewise.
10270 (VLDRHGSOQ): Likewise.
10271 (VLDRHQ): Likewise.
10272 (VLDRWQ): Likewise.
10273 (VLDRDGBQ): Likewise.
10274 (VLDRDGOQ): Likewise.
10275 (VLDRDGSOQ): Likewise.
10276 (VLDRWGOQ): Likewise.
10277 (VLDRWGSOQ): Likewise.
10278 (VST1Q): Likewise.
10279 (VSTRHSOQ): Likewise.
10280 (VSTRHSSOQ): Likewise.
10281 (VSTRHQ): Likewise.
10282 (VSTRWQ): Likewise.
10283 (VSTRDSBQ): Likewise.
10284 (VSTRDSOQ): Likewise.
10285 (VSTRDSSOQ): Likewise.
10286 (VSTRWSOQ): Likewise.
10287 (VSTRWSSOQ): Likewise.
10288 (VSTRWSBWBQ): Likewise.
10289 (VLDRWGBWBQ): Likewise.
10290 (VSTRDSBWBQ): Likewise.
10291 (VLDRDGBWBQ): Likewise.
10292 (VADCIQ): Likewise.
10293 (VADCIQ_M): Likewise.
10294 (VSBCQ): Likewise.
10295 (VSBCQ_M): Likewise.
10296 (VSBCIQ): Likewise.
10297 (VSBCIQ_M): Likewise.
10298 (VADCQ): Likewise.
10299 (VADCQ_M): Likewise.
10300 (UQRSHLLQ): Likewise.
10301 (SQRSHRLQ): Likewise.
10302 (VSHLCQ_M): Likewise.
10303 * config/arm/mve.md (MVE_types): Move mode iterator to iterators.md from mve.md.
10304 (MVE_VLD_ST): Likewise.
10305 (MVE_0): Likewise.
10306 (MVE_1): Likewise.
10307 (MVE_3): Likewise.
10308 (MVE_2): Likewise.
10309 (MVE_5): Likewise.
10310 (MVE_6): Likewise.
10311 (MVE_CNVT): Move mode attribute iterator to iterators.md from mve.md.
10312 (MVE_LANES): Likewise.
10313 (MVE_constraint): Likewise.
10314 (MVE_constraint1): Likewise.
10315 (MVE_constraint2): Likewise.
10316 (MVE_constraint3): Likewise.
10317 (MVE_pred): Likewise.
10318 (MVE_pred1): Likewise.
10319 (MVE_pred2): Likewise.
10320 (MVE_pred3): Likewise.
10321 (MVE_B_ELEM): Likewise.
10322 (MVE_H_ELEM): Likewise.
10323 (V_sz_elem1): Likewise.
10324 (V_extr_elem): Likewise.
10325 (earlyclobber_32): Likewise.
10326 (supf): Move int attribute to iterators.md from mve.md.
10327 (mode1): Likewise.
10328 (VCVTQ_TO_F): Move int iterator to iterators.md from mve.md.
10329 (VMVNQ_N): Likewise.
10330 (VREV64Q): Likewise.
10331 (VCVTQ_FROM_F): Likewise.
10332 (VREV16Q): Likewise.
10333 (VCVTAQ): Likewise.
10334 (VMVNQ): Likewise.
10335 (VDUPQ_N): Likewise.
10336 (VCLZQ): Likewise.
10337 (VADDVQ): Likewise.
10338 (VREV32Q): Likewise.
10339 (VMOVLBQ): Likewise.
10340 (VMOVLTQ): Likewise.
10341 (VCVTPQ): Likewise.
10342 (VCVTNQ): Likewise.
10343 (VCVTMQ): Likewise.
10344 (VADDLVQ): Likewise.
10345 (VCTPQ): Likewise.
10346 (VCTPQ_M): Likewise.
10347 (VCVTQ_N_TO_F): Likewise.
10348 (VCREATEQ): Likewise.
10349 (VSHRQ_N): Likewise.
10350 (VCVTQ_N_FROM_F): Likewise.
10351 (VADDLVQ_P): Likewise.
10352 (VCMPNEQ): Likewise.
10353 (VSHLQ): Likewise.
10354 (VABDQ): Likewise.
10355 (VADDQ_N): Likewise.
10356 (VADDVAQ): Likewise.
10357 (VADDVQ_P): Likewise.
10358 (VANDQ): Likewise.
10359 (VBICQ): Likewise.
10360 (VBRSRQ_N): Likewise.
10361 (VCADDQ_ROT270): Likewise.
10362 (VCADDQ_ROT90): Likewise.
10363 (VCMPEQQ): Likewise.
10364 (VCMPEQQ_N): Likewise.
10365 (VCMPNEQ_N): Likewise.
10366 (VEORQ): Likewise.
10367 (VHADDQ): Likewise.
10368 (VHADDQ_N): Likewise.
10369 (VHSUBQ): Likewise.
10370 (VHSUBQ_N): Likewise.
10371 (VMAXQ): Likewise.
10372 (VMAXVQ): Likewise.
10373 (VMINQ): Likewise.
10374 (VMINVQ): Likewise.
10375 (VMLADAVQ): Likewise.
10376 (VMULHQ): Likewise.
10377 (VMULLBQ_INT): Likewise.
10378 (VMULLTQ_INT): Likewise.
10379 (VMULQ): Likewise.
10380 (VMULQ_N): Likewise.
10381 (VORNQ): Likewise.
10382 (VORRQ): Likewise.
10383 (VQADDQ): Likewise.
10384 (VQADDQ_N): Likewise.
10385 (VQRSHLQ): Likewise.
10386 (VQRSHLQ_N): Likewise.
10387 (VQSHLQ): Likewise.
10388 (VQSHLQ_N): Likewise.
10389 (VQSHLQ_R): Likewise.
10390 (VQSUBQ): Likewise.
10391 (VQSUBQ_N): Likewise.
10392 (VRHADDQ): Likewise.
10393 (VRMULHQ): Likewise.
10394 (VRSHLQ): Likewise.
10395 (VRSHLQ_N): Likewise.
10396 (VRSHRQ_N): Likewise.
10397 (VSHLQ_N): Likewise.
10398 (VSHLQ_R): Likewise.
10399 (VSUBQ): Likewise.
10400 (VSUBQ_N): Likewise.
10401 (VADDLVAQ): Likewise.
10402 (VBICQ_N): Likewise.
10403 (VMLALDAVQ): Likewise.
10404 (VMLALDAVXQ): Likewise.
10405 (VMOVNBQ): Likewise.
10406 (VMOVNTQ): Likewise.
10407 (VORRQ_N): Likewise.
10408 (VQMOVNBQ): Likewise.
10409 (VQMOVNTQ): Likewise.
10410 (VSHLLBQ_N): Likewise.
10411 (VSHLLTQ_N): Likewise.
10412 (VRMLALDAVHQ): Likewise.
10413 (VBICQ_M_N): Likewise.
10414 (VCVTAQ_M): Likewise.
10415 (VCVTQ_M_TO_F): Likewise.
10416 (VQRSHRNBQ_N): Likewise.
10417 (VABAVQ): Likewise.
10418 (VSHLCQ): Likewise.
10419 (VRMLALDAVHAQ): Likewise.
10420 (VADDVAQ_P): Likewise.
10421 (VCLZQ_M): Likewise.
10422 (VCMPEQQ_M_N): Likewise.
10423 (VCMPEQQ_M): Likewise.
10424 (VCMPNEQ_M_N): Likewise.
10425 (VCMPNEQ_M): Likewise.
10426 (VDUPQ_M_N): Likewise.
10427 (VMAXVQ_P): Likewise.
10428 (VMINVQ_P): Likewise.
10429 (VMLADAVAQ): Likewise.
10430 (VMLADAVQ_P): Likewise.
10431 (VMLAQ_N): Likewise.
10432 (VMLASQ_N): Likewise.
10433 (VMVNQ_M): Likewise.
10434 (VPSELQ): Likewise.
10435 (VQDMLAHQ_N): Likewise.
10436 (VQRDMLAHQ_N): Likewise.
10437 (VQRDMLASHQ_N): Likewise.
10438 (VQRSHLQ_M_N): Likewise.
10439 (VQSHLQ_M_R): Likewise.
10440 (VREV64Q_M): Likewise.
10441 (VRSHLQ_M_N): Likewise.
10442 (VSHLQ_M_R): Likewise.
10443 (VSLIQ_N): Likewise.
10444 (VSRIQ_N): Likewise.
10445 (VMLALDAVQ_P): Likewise.
10446 (VQMOVNBQ_M): Likewise.
10447 (VMOVLTQ_M): Likewise.
10448 (VMOVNBQ_M): Likewise.
10449 (VRSHRNTQ_N): Likewise.
10450 (VORRQ_M_N): Likewise.
10451 (VREV32Q_M): Likewise.
10452 (VREV16Q_M): Likewise.
10453 (VQRSHRNTQ_N): Likewise.
10454 (VMOVNTQ_M): Likewise.
10455 (VMOVLBQ_M): Likewise.
10456 (VMLALDAVAQ): Likewise.
10457 (VQSHRNBQ_N): Likewise.
10458 (VSHRNBQ_N): Likewise.
10459 (VRSHRNBQ_N): Likewise.
10460 (VMLALDAVXQ_P): Likewise.
10461 (VQMOVNTQ_M): Likewise.
10462 (VMVNQ_M_N): Likewise.
10463 (VQSHRNTQ_N): Likewise.
10464 (VMLALDAVAXQ): Likewise.
10465 (VSHRNTQ_N): Likewise.
10466 (VCVTMQ_M): Likewise.
10467 (VCVTNQ_M): Likewise.
10468 (VCVTPQ_M): Likewise.
10469 (VCVTQ_M_N_FROM_F): Likewise.
10470 (VCVTQ_M_FROM_F): Likewise.
10471 (VRMLALDAVHQ_P): Likewise.
10472 (VADDLVAQ_P): Likewise.
10473 (VABAVQ_P): Likewise.
10474 (VSHLQ_M): Likewise.
10475 (VSRIQ_M_N): Likewise.
10476 (VSUBQ_M): Likewise.
10477 (VCVTQ_M_N_TO_F): Likewise.
10478 (VHSUBQ_M): Likewise.
10479 (VSLIQ_M_N): Likewise.
10480 (VRSHLQ_M): Likewise.
10481 (VMINQ_M): Likewise.
10482 (VMULLBQ_INT_M): Likewise.
10483 (VMULHQ_M): Likewise.
10484 (VMULQ_M): Likewise.
10485 (VHSUBQ_M_N): Likewise.
10486 (VHADDQ_M_N): Likewise.
10487 (VORRQ_M): Likewise.
10488 (VRMULHQ_M): Likewise.
10489 (VQADDQ_M): Likewise.
10490 (VRSHRQ_M_N): Likewise.
10491 (VQSUBQ_M_N): Likewise.
10492 (VADDQ_M): Likewise.
10493 (VORNQ_M): Likewise.
10494 (VRHADDQ_M): Likewise.
10495 (VQSHLQ_M): Likewise.
10496 (VANDQ_M): Likewise.
10497 (VBICQ_M): Likewise.
10498 (VSHLQ_M_N): Likewise.
10499 (VCADDQ_ROT270_M): Likewise.
10500 (VQRSHLQ_M): Likewise.
10501 (VQADDQ_M_N): Likewise.
10502 (VADDQ_M_N): Likewise.
10503 (VMAXQ_M): Likewise.
10504 (VQSUBQ_M): Likewise.
10505 (VMLASQ_M_N): Likewise.
10506 (VMLADAVAQ_P): Likewise.
10507 (VBRSRQ_M_N): Likewise.
10508 (VMULQ_M_N): Likewise.
10509 (VCADDQ_ROT90_M): Likewise.
10510 (VMULLTQ_INT_M): Likewise.
10511 (VEORQ_M): Likewise.
10512 (VSHRQ_M_N): Likewise.
10513 (VSUBQ_M_N): Likewise.
10514 (VHADDQ_M): Likewise.
10515 (VABDQ_M): Likewise.
10516 (VMLAQ_M_N): Likewise.
10517 (VQSHLQ_M_N): Likewise.
10518 (VMLALDAVAQ_P): Likewise.
10519 (VMLALDAVAXQ_P): Likewise.
10520 (VQRSHRNBQ_M_N): Likewise.
10521 (VQRSHRNTQ_M_N): Likewise.
10522 (VQSHRNBQ_M_N): Likewise.
10523 (VQSHRNTQ_M_N): Likewise.
10524 (VRSHRNBQ_M_N): Likewise.
10525 (VRSHRNTQ_M_N): Likewise.
10526 (VSHLLBQ_M_N): Likewise.
10527 (VSHLLTQ_M_N): Likewise.
10528 (VSHRNBQ_M_N): Likewise.
10529 (VSHRNTQ_M_N): Likewise.
10530 (VSTRWSBQ): Likewise.
10531 (VSTRBSOQ): Likewise.
10532 (VSTRBQ): Likewise.
10533 (VLDRBGOQ): Likewise.
10534 (VLDRBQ): Likewise.
10535 (VLDRWGBQ): Likewise.
10536 (VLD1Q): Likewise.
10537 (VLDRHGOQ): Likewise.
10538 (VLDRHGSOQ): Likewise.
10539 (VLDRHQ): Likewise.
10540 (VLDRWQ): Likewise.
10541 (VLDRDGBQ): Likewise.
10542 (VLDRDGOQ): Likewise.
10543 (VLDRDGSOQ): Likewise.
10544 (VLDRWGOQ): Likewise.
10545 (VLDRWGSOQ): Likewise.
10546 (VST1Q): Likewise.
10547 (VSTRHSOQ): Likewise.
10548 (VSTRHSSOQ): Likewise.
10549 (VSTRHQ): Likewise.
10550 (VSTRWQ): Likewise.
10551 (VSTRDSBQ): Likewise.
10552 (VSTRDSOQ): Likewise.
10553 (VSTRDSSOQ): Likewise.
10554 (VSTRWSOQ): Likewise.
10555 (VSTRWSSOQ): Likewise.
10556 (VSTRWSBWBQ): Likewise.
10557 (VLDRWGBWBQ): Likewise.
10558 (VSTRDSBWBQ): Likewise.
10559 (VLDRDGBWBQ): Likewise.
10560 (VADCIQ): Likewise.
10561 (VADCIQ_M): Likewise.
10562 (VSBCQ): Likewise.
10563 (VSBCQ_M): Likewise.
10564 (VSBCIQ): Likewise.
10565 (VSBCIQ_M): Likewise.
10566 (VADCQ): Likewise.
10567 (VADCQ_M): Likewise.
10568 (UQRSHLLQ): Likewise.
10569 (SQRSHRLQ): Likewise.
10570 (VSHLCQ_M): Likewise.
10571 (define_c_enum "unspec"): Move MVE enumerator to unspecs.md from mve.md.
10572 * config/arm/unspecs.md (define_c_enum "unspec"): Move MVE enumerator from
10573 mve.md to unspecs.md.
10574
10575 2020-10-06 Martin Liska <mliska@suse.cz>
10576
10577 * common.opt: Remove -fdbg-cnt-list from deferred options.
10578 * dbgcnt.c (dbg_cnt_set_limit_by_index): Make a copy
10579 to original_limits.
10580 (dbg_cnt_list_all_counters): Print also current counter value
10581 and print to stderr.
10582 * opts-global.c (handle_common_deferred_options): Do not handle
10583 -fdbg-cnt-list.
10584 * opts.c (common_handle_option): Likewise.
10585 * toplev.c (finalize): Handle it after compilation here.
10586
10587 2020-10-06 Martin Liska <mliska@suse.cz>
10588
10589 * dbgcnt.c (dbg_cnt): Report also upper limit.
10590
10591 2020-10-06 Tom de Vries <tdevries@suse.de>
10592
10593 * tracer.c (count_insns): Rename to ...
10594 (analyze_bb): ... this.
10595 (cache_can_duplicate_bb_p, cached_can_duplicate_bb_p): New function.
10596 (ignore_bb_p): Use cached_can_duplicate_bb_p.
10597 (tail_duplicate): Call cache_can_duplicate_bb_p.
10598
10599 2020-10-06 Tom de Vries <tdevries@suse.de>
10600
10601 * tracer.c (can_duplicate_insn_p, can_duplicate_bb_no_insn_iter_p)
10602 (can_duplicate_bb_p): New function, factored out of ...
10603 (ignore_bb_p): ... here.
10604
10605 2020-10-06 Jakub Jelinek <jakub@redhat.com>
10606
10607 PR rtl-optimization/97282
10608 * tree-ssa-math-opts.c (divmod_candidate_p): Don't return false for
10609 constant op2 if it is not a power of two and the type has precision
10610 larger than HOST_BITS_PER_WIDE_INT or BITS_PER_WORD.
10611 * internal-fn.c (contains_call_div_mod): New function.
10612 (expand_DIVMOD): If last argument is a constant, try to expand it as
10613 TRUNC_DIV_EXPR followed by TRUNC_MOD_EXPR, but if the sequence
10614 contains any calls or {,U}{DIV,MOD} rtxes, throw it away and use
10615 divmod optab or divmod libfunc.
10616
10617 2020-10-06 Aldy Hernandez <aldyh@redhat.com>
10618
10619 * value-range.h (irange_allocator::allocate): Increase
10620 newir storage by one.
10621
10622 2020-10-06 Jakub Jelinek <jakub@redhat.com>
10623
10624 PR middle-end/97289
10625 * omp-offload.c (omp_discover_declare_target_tgt_fn_r): Only follow
10626 node->alias_target if it is a FUNCTION_DECL.
10627
10628 2020-10-06 Joe Ramsay <joe.ramsay@arm.com>
10629
10630 * config/arm/arm-cpus.in:
10631 (ALL_FPU_INTERNAL): Remove vfp_base.
10632 (VFPv2): Remove vfp_base.
10633 (MVE): Remove vfp_base.
10634 (vfp_base): Redefine as implied bit dependent on MVE or FP
10635 (cortex-m55): Add flags to disable MVE, MVE FP, FP and DSP extensions.
10636 * config/arm/arm.c (arm_configure_build_target): Add implied bits to ISA.
10637 * config/arm/parsecpu.awk:
10638 (gen_isa): Print implied bits and their dependencies to ISA header.
10639 (gen_data): Add parsing for implied feature bits.
10640
10641 2020-10-06 Andreas Krebbel <krebbel@linux.ibm.com>
10642
10643 * doc/invoke.texi: Add z15/arch13 to the list of documented
10644 -march/-mtune options.
10645
10646 2020-10-05 Aldy Hernandez <aldyh@redhat.com>
10647
10648 * value-range.cc (irange::legacy_intersect): Only handle
10649 legacy ranges.
10650 (irange::legacy_union): Same.
10651 (irange::union_): When unioning legacy with non-legacy,
10652 first convert to legacy and do everything in legacy mode.
10653 (irange::intersect): Same, but for intersect.
10654 * range-op.cc (range_tests): Adjust for above changes.
10655
10656 2020-10-05 Aldy Hernandez <aldyh@redhat.com>
10657
10658 * range-op.cc (operator_div::wi_fold): Return varying for
10659 division by zero.
10660 (class operator_rshift): Move class up.
10661 (operator_abs::wi_fold): Return [-MIN,-MIN] for ABS([-MIN,-MIN]).
10662 (operator_tests): Adjust tests.
10663
10664 2020-10-05 Tom de Vries <tdevries@suse.de>
10665
10666 * tracer.c (ignore_bb_p): Ignore GOMP_SIMT_XCHG_*.
10667
10668 2020-10-05 Alex Coplan <alex.coplan@arm.com>
10669
10670 * config/arm/arm-cpus.in (neoverse-v1): Add missing vendor and
10671 part numbers.
10672
10673 2020-10-05 Tom de Vries <tdevries@suse.de>
10674
10675 * tracer.c (ignore_bb_p): Remove incorrect suggestion.
10676
10677 2020-10-05 Jakub Jelinek <jakub@redhat.com>
10678
10679 * opth-gen.awk: Don't emit explicit_mask array if n_target_explicit
10680 is equal to n_target_explicit_mask.
10681 * optc-save-gen.awk: Compute has_target_explicit_mask and if false,
10682 don't emit code iterating over explicit_mask array elements. Stream
10683 also explicit_mask_* target members.
10684
10685 2020-10-05 Jakub Jelinek <jakub@redhat.com>
10686
10687 * gimple-ssa-store-merging.c
10688 (imm_store_chain_info::output_merged_store): Use ~0U instead of ~0 in
10689 unsigned int array initializer.
10690
10691 2020-10-05 Tom de Vries <tdevries@suse.de>
10692
10693 PR fortran/95654
10694 * tracer.c (ignore_bb_p): Ignore GOMP_SIMT_ENTER_ALLOC,
10695 GOMP_SIMT_VOTE_ANY and GOMP_SIMT_EXIT.
10696
10697 2020-10-03 Jakub Jelinek <jakub@redhat.com>
10698
10699 * opth-gen.awk: For variables referenced in Mask and InverseMask,
10700 don't use the explicit_mask bitmask array, but add separate
10701 explicit_mask_* members with the same types as the variables.
10702 * optc-save-gen.awk: Save, restore, compare and hash the separate
10703 explicit_mask_* members.
10704
10705 2020-10-03 Jan Hubicka <hubicka@ucw.cz>
10706
10707 * ipa-modref-tree.c (test_insert_search_collapse): Update andling
10708 of accesses.
10709 (test_merge): Likewise.
10710 * ipa-modref-tree.h (struct modref_access_node): Add offset, size,
10711 max_size, parm_offset and parm_offset_known.
10712 (modref_access_node::useful_p): Constify.
10713 (modref_access_node::range_info_useful_p): New predicate.
10714 (modref_access_node::operator==): New.
10715 (struct modref_parm_map): New structure.
10716 (modref_tree::merge): Update for racking parameters)
10717 * ipa-modref.c (dump_access): Dump new fields.
10718 (get_access): Fill in new fields.
10719 (merge_call_side_effects): Update handling of parm map.
10720 (write_modref_records): Stream new fields.
10721 (read_modref_records): Stream new fields.
10722 (compute_parm_map): Update for new parm map.
10723 (ipa_merge_modref_summary_after_inlining): Update.
10724 (modref_propagate_in_scc): Update.
10725 * tree-ssa-alias.c (modref_may_conflict): Handle known ranges.
10726
10727 2020-10-03 H.J. Lu <hjl.tools@gmail.com>
10728
10729 PR other/97280
10730 * doc/extend.texi: Replace roudnevenl with roundevenl
10731
10732 2020-10-02 David Edelsohn <dje.gcc@gmail.com>
10733 Andrew MacLeod <amacleod@redhat.com>
10734
10735 * config/rs6000/rs6000.c: Include ssa.h. Reorder some headers.
10736 * config/rs6000/rs6000-call.c: Same.
10737
10738 2020-10-02 Martin Jambor <mjambor@suse.cz>
10739
10740 * params.opt (ipa-cp-large-unit-insns): New parameter.
10741 * ipa-cp.c (get_max_overall_size): Use the new parameter.
10742
10743 2020-10-02 Martin Jambor <mjambor@suse.cz>
10744
10745 * ipa-cp.c (estimate_local_effects): Add overeall_size to dumped
10746 string.
10747 (decide_about_value): Add dumping new overall_size.
10748
10749 2020-10-02 Martin Jambor <mjambor@suse.cz>
10750
10751 * ipa-fnsummary.h (ipa_freqcounting_predicate): New type.
10752 (ipa_fn_summary): Change the type of loop_iterations and loop_strides
10753 to vectors of ipa_freqcounting_predicate.
10754 (ipa_fn_summary::ipa_fn_summary): Construct the new vectors.
10755 (ipa_call_estimates): New fields loops_with_known_iterations and
10756 loops_with_known_strides.
10757 * ipa-cp.c (hint_time_bonus): Multiply param_ipa_cp_loop_hint_bonus
10758 with the expected frequencies of loops with known iteration count or
10759 stride.
10760 * ipa-fnsummary.c (add_freqcounting_predicate): New function.
10761 (ipa_fn_summary::~ipa_fn_summary): Release the new vectors instead of
10762 just two predicates.
10763 (remap_hint_predicate_after_duplication): Replace with function
10764 remap_freqcounting_preds_after_dup.
10765 (ipa_fn_summary_t::duplicate): Use it or duplicate new vectors.
10766 (ipa_dump_fn_summary): Dump the new vectors.
10767 (analyze_function_body): Compute the loop property vectors.
10768 (ipa_call_context::estimate_size_and_time): Calculate also
10769 loops_with_known_iterations and loops_with_known_strides. Adjusted
10770 dumping accordinly.
10771 (remap_hint_predicate): Replace with function
10772 remap_freqcounting_predicate.
10773 (ipa_merge_fn_summary_after_inlining): Use it.
10774 (inline_read_section): Stream loopcounting vectors instead of two
10775 simple predicates.
10776 (ipa_fn_summary_write): Likewise.
10777 * params.opt (ipa-max-loop-predicates): New parameter.
10778 * doc/invoke.texi (ipa-max-loop-predicates): Document new param.
10779
10780 2020-10-02 Martin Jambor <mjambor@suse.cz>
10781
10782 * ipa-inline-analysis.c (do_estimate_edge_time): Adjusted to use
10783 ipa_call_estimates.
10784 (do_estimate_edge_size): Likewise.
10785 (do_estimate_edge_hints): Likewise.
10786 * ipa-fnsummary.h (struct ipa_call_estimates): New type.
10787 (ipa_call_context::estimate_size_and_time): Adjusted declaration.
10788 (estimate_ipcp_clone_size_and_time): Likewise.
10789 * ipa-cp.c (hint_time_bonus): Changed the type of the second argument
10790 to ipa_call_estimates.
10791 (perform_estimation_of_a_value): Adjusted to use ipa_call_estimates.
10792 (estimate_local_effects): Likewise.
10793 * ipa-fnsummary.c (ipa_call_context::estimate_size_and_time): Adjusted
10794 to return estimates in a single ipa_call_estimates parameter.
10795 (estimate_ipcp_clone_size_and_time): Likewise.
10796
10797 2020-10-02 Martin Jambor <mjambor@suse.cz>
10798
10799 * ipa-fnsummary.h (ipa_cached_call_context): New forward declaration
10800 and class.
10801 (class ipa_call_context): Make friend ipa_cached_call_context. Moved
10802 methods duplicate_from and release to it too.
10803 * ipa-fnsummary.c (ipa_call_context::duplicate_from): Moved to class
10804 ipa_cached_call_context.
10805 (ipa_call_context::release): Likewise, removed the parameter.
10806 * ipa-inline-analysis.c (node_context_cache_entry): Change the type of
10807 ctx to ipa_cached_call_context.
10808 (do_estimate_edge_time): Remove parameter from the call to
10809 ipa_cached_call_context::release.
10810
10811 2020-10-02 Martin Jambor <mjambor@suse.cz>
10812
10813 * ipa-prop.h (ipa_auto_call_arg_values): New type.
10814 (class ipa_call_arg_values): Likewise.
10815 (ipa_get_indirect_edge_target): Replaced vector arguments with
10816 ipa_call_arg_values in declaration. Added an overload for
10817 ipa_auto_call_arg_values.
10818 * ipa-fnsummary.h (ipa_call_context): Removed members m_known_vals,
10819 m_known_contexts, m_known_aggs, duplicate_from, release and equal_to,
10820 new members m_avals, store_to_cache and equivalent_to_p. Adjusted
10821 construcotr arguments.
10822 (estimate_ipcp_clone_size_and_time): Replaced vector arguments
10823 with ipa_auto_call_arg_values in declaration.
10824 (evaluate_properties_for_edge): Likewise.
10825 * ipa-cp.c (ipa_get_indirect_edge_target): Adjusted to work on
10826 ipa_call_arg_values rather than on separate vectors. Added an
10827 overload for ipa_auto_call_arg_values.
10828 (devirtualization_time_bonus): Adjusted to work on
10829 ipa_auto_call_arg_values rather than on separate vectors.
10830 (gather_context_independent_values): Adjusted to work on
10831 ipa_auto_call_arg_values rather than on separate vectors.
10832 (perform_estimation_of_a_value): Likewise.
10833 (estimate_local_effects): Likewise.
10834 (modify_known_vectors_with_val): Adjusted both variants to work on
10835 ipa_auto_call_arg_values and rename them to
10836 copy_known_vectors_add_val.
10837 (decide_about_value): Adjusted to work on ipa_call_arg_values rather
10838 than on separate vectors.
10839 (decide_whether_version_node): Likewise.
10840 * ipa-fnsummary.c (evaluate_conditions_for_known_args): Likewise.
10841 (evaluate_properties_for_edge): Likewise.
10842 (ipa_fn_summary_t::duplicate): Likewise.
10843 (estimate_edge_devirt_benefit): Adjusted to work on
10844 ipa_call_arg_values rather than on separate vectors.
10845 (estimate_edge_size_and_time): Likewise.
10846 (estimate_calls_size_and_time_1): Likewise.
10847 (summarize_calls_size_and_time): Adjusted calls to
10848 estimate_edge_size_and_time.
10849 (estimate_calls_size_and_time): Adjusted to work on
10850 ipa_call_arg_values rather than on separate vectors.
10851 (ipa_call_context::ipa_call_context): Construct from a pointer to
10852 ipa_auto_call_arg_values instead of inividual vectors.
10853 (ipa_call_context::duplicate_from): Adjusted to access vectors within
10854 m_avals.
10855 (ipa_call_context::release): Likewise.
10856 (ipa_call_context::equal_to): Likewise.
10857 (ipa_call_context::estimate_size_and_time): Adjusted to work on
10858 ipa_call_arg_values rather than on separate vectors.
10859 (estimate_ipcp_clone_size_and_time): Adjusted to work with
10860 ipa_auto_call_arg_values rather than on separate vectors.
10861 (ipa_merge_fn_summary_after_inlining): Likewise. Adjusted call to
10862 estimate_edge_size_and_time.
10863 (ipa_update_overall_fn_summary): Adjusted call to
10864 estimate_edge_size_and_time.
10865 * ipa-inline-analysis.c (do_estimate_edge_time): Adjusted to work with
10866 ipa_auto_call_arg_values rather than with separate vectors.
10867 (do_estimate_edge_size): Likewise.
10868 (do_estimate_edge_hints): Likewise.
10869 * ipa-prop.c (ipa_auto_call_arg_values::~ipa_auto_call_arg_values):
10870 New destructor.
10871
10872 2020-10-02 Joe Ramsay <joe.ramsay@arm.com>
10873
10874 * config/arm/arm_mve.h (__arm_vmaxnmavq): Remove coercion of scalar
10875 argument.
10876 (__arm_vmaxnmvq): Likewise.
10877 (__arm_vminnmavq): Likewise.
10878 (__arm_vminnmvq): Likewise.
10879 (__arm_vmaxnmavq_p): Likewise.
10880 (__arm_vmaxnmvq_p): Likewise (and delete duplicate definition).
10881 (__arm_vminnmavq_p): Likewise.
10882 (__arm_vminnmvq_p): Likewise.
10883 (__arm_vmaxavq): Likewise.
10884 (__arm_vmaxavq_p): Likewise.
10885 (__arm_vmaxvq): Likewise.
10886 (__arm_vmaxvq_p): Likewise.
10887 (__arm_vminavq): Likewise.
10888 (__arm_vminavq_p): Likewise.
10889 (__arm_vminvq): Likewise.
10890 (__arm_vminvq_p): Likewise.
10891
10892 2020-10-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10893
10894 * config/aarch64/aarch64.c (neoversev1_tunings): Define.
10895 * config/aarch64/aarch64-cores.def (zeus): Use it.
10896 (neoverse-v1): Likewise.
10897
10898 2020-10-02 Jan Hubicka <hubicka@ucw.cz>
10899
10900 * attr-fnspec.h: Update documentation.
10901 (attr_fnsec::return_desc_size): Set to 2
10902 (attr_fnsec::arg_desc_size): Set to 2
10903 * builtin-attrs.def (STR1): Update fnspec.
10904 * internal-fn.def (UBSAN_NULL): Update fnspec.
10905 (UBSAN_VPTR): Update fnspec.
10906 (UBSAN_PTR): Update fnspec.
10907 (ASAN_CHECK): Update fnspec.
10908 (GOACC_DIM_SIZE): Remove fnspec.
10909 (GOACC_DIM_POS): Remove fnspec.
10910 * tree-ssa-alias.c (attr_fnspec::verify): Update verification.
10911
10912 2020-10-02 Jan Hubicka <jh@suse.cz>
10913
10914 * attr-fnspec.h: New file.
10915 * calls.c (decl_return_flags): Use attr_fnspec.
10916 * gimple.c (gimple_call_arg_flags): Use attr_fnspec.
10917 (gimple_call_return_flags): Use attr_fnspec.
10918 * tree-into-ssa.c (pass_build_ssa::execute): Use attr_fnspec.
10919 * tree-ssa-alias.c (attr_fnspec::verify): New member fuction.
10920
10921 2020-10-02 Jan Hubicka <jh@suse.cz>
10922
10923 * tree-ssa-alias.c (ao_ref_init_from_ptr_and_range): Break out from ...
10924 (ao_ref_init_from_ptr_and_size): ... here.
10925
10926 2020-10-02 Jan Hubicka <hubicka@ucw.cz>
10927
10928 * data-streamer-in.c (streamer_read_poly_int64): New function.
10929 * data-streamer-out.c (streamer_write_poly_int64): New function.
10930 * data-streamer.h (streamer_write_poly_int64): Declare.
10931 (streamer_read_poly_int64): Declare.
10932
10933 2020-10-02 Richard Sandiford <richard.sandiford@arm.com>
10934
10935 * config/aarch64/aarch64-protos.h (aarch64_sve_pred_dominates_p):
10936 Delete.
10937 * config/aarch64/aarch64.c (aarch64_sve_pred_dominates_p): Likewise.
10938 * config/aarch64/aarch64-sve.md: Add banner comment describing
10939 how merging predicated FP operations are represented.
10940 (*cond_<SVE_COND_FP_UNARY:optab><mode>_2): Split into...
10941 (*cond_<SVE_COND_FP_UNARY:optab><mode>_2_relaxed): ...this and...
10942 (*cond_<SVE_COND_FP_UNARY:optab><mode>_2_strict): ...this.
10943 (*cond_<SVE_COND_FP_UNARY:optab><mode>_any): Split into...
10944 (*cond_<SVE_COND_FP_UNARY:optab><mode>_any_relaxed): ...this and...
10945 (*cond_<SVE_COND_FP_UNARY:optab><mode>_any_strict): ...this.
10946 (*cond_<SVE_COND_FP_BINARY_INT:optab><mode>_2): Split into...
10947 (*cond_<SVE_COND_FP_BINARY_INT:optab><mode>_2_relaxed): ...this and...
10948 (*cond_<SVE_COND_FP_BINARY_INT:optab><mode>_2_strict): ...this.
10949 (*cond_<SVE_COND_FP_BINARY_INT:optab><mode>_any): Split into...
10950 (*cond_<SVE_COND_FP_BINARY_INT:optab><mode>_any_relaxed): ...this
10951 and...
10952 (*cond_<SVE_COND_FP_BINARY_INT:optab><mode>_any_strict): ...this.
10953 (*cond_<SVE_COND_FP_BINARY:optab><mode>_2): Split into...
10954 (*cond_<SVE_COND_FP_BINARY:optab><mode>_2_relaxed): ...this and...
10955 (*cond_<SVE_COND_FP_BINARY:optab><mode>_2_strict): ...this.
10956 (*cond_<SVE_COND_FP_BINARY_I1:optab><mode>_2_const): Split into...
10957 (*cond_<SVE_COND_FP_BINARY_I1:optab><mode>_2_const_relaxed): ...this
10958 and...
10959 (*cond_<SVE_COND_FP_BINARY_I1:optab><mode>_2_const_strict): ...this.
10960 (*cond_<SVE_COND_FP_BINARY:optab><mode>_3): Split into...
10961 (*cond_<SVE_COND_FP_BINARY:optab><mode>_3_relaxed): ...this and...
10962 (*cond_<SVE_COND_FP_BINARY:optab><mode>_3_strict): ...this.
10963 (*cond_<SVE_COND_FP_BINARY:optab><mode>_any): Split into...
10964 (*cond_<SVE_COND_FP_BINARY:optab><mode>_any_relaxed): ...this and...
10965 (*cond_<SVE_COND_FP_BINARY:optab><mode>_any_strict): ...this.
10966 (*cond_<SVE_COND_FP_BINARY_I1:optab><mode>_any_const): Split into...
10967 (*cond_<SVE_COND_FP_BINARY_I1:optab><mode>_any_const_relaxed): ...this
10968 and...
10969 (*cond_<SVE_COND_FP_BINARY_I1:optab><mode>_any_const_strict): ...this.
10970 (*cond_add<mode>_2_const): Split into...
10971 (*cond_add<mode>_2_const_relaxed): ...this and...
10972 (*cond_add<mode>_2_const_strict): ...this.
10973 (*cond_add<mode>_any_const): Split into...
10974 (*cond_add<mode>_any_const_relaxed): ...this and...
10975 (*cond_add<mode>_any_const_strict): ...this.
10976 (*cond_<SVE_COND_FCADD:optab><mode>_2): Split into...
10977 (*cond_<SVE_COND_FCADD:optab><mode>_2_relaxed): ...this and...
10978 (*cond_<SVE_COND_FCADD:optab><mode>_2_strict): ...this.
10979 (*cond_<SVE_COND_FCADD:optab><mode>_any): Split into...
10980 (*cond_<SVE_COND_FCADD:optab><mode>_any_relaxed): ...this and...
10981 (*cond_<SVE_COND_FCADD:optab><mode>_any_strict): ...this.
10982 (*cond_sub<mode>_3_const): Split into...
10983 (*cond_sub<mode>_3_const_relaxed): ...this and...
10984 (*cond_sub<mode>_3_const_strict): ...this.
10985 (*aarch64_pred_abd<mode>): Split into...
10986 (*aarch64_pred_abd<mode>_relaxed): ...this and...
10987 (*aarch64_pred_abd<mode>_strict): ...this.
10988 (*aarch64_cond_abd<mode>_2): Split into...
10989 (*aarch64_cond_abd<mode>_2_relaxed): ...this and...
10990 (*aarch64_cond_abd<mode>_2_strict): ...this.
10991 (*aarch64_cond_abd<mode>_3): Split into...
10992 (*aarch64_cond_abd<mode>_3_relaxed): ...this and...
10993 (*aarch64_cond_abd<mode>_3_strict): ...this.
10994 (*aarch64_cond_abd<mode>_any): Split into...
10995 (*aarch64_cond_abd<mode>_any_relaxed): ...this and...
10996 (*aarch64_cond_abd<mode>_any_strict): ...this.
10997 (*cond_<SVE_COND_FP_TERNARY:optab><mode>_2): Split into...
10998 (*cond_<SVE_COND_FP_TERNARY:optab><mode>_2_relaxed): ...this and...
10999 (*cond_<SVE_COND_FP_TERNARY:optab><mode>_2_strict): ...this.
11000 (*cond_<SVE_COND_FP_TERNARY:optab><mode>_4): Split into...
11001 (*cond_<SVE_COND_FP_TERNARY:optab><mode>_4_relaxed): ...this and...
11002 (*cond_<SVE_COND_FP_TERNARY:optab><mode>_4_strict): ...this.
11003 (*cond_<SVE_COND_FP_TERNARY:optab><mode>_any): Split into...
11004 (*cond_<SVE_COND_FP_TERNARY:optab><mode>_any_relaxed): ...this and...
11005 (*cond_<SVE_COND_FP_TERNARY:optab><mode>_any_strict): ...this.
11006 (*cond_<SVE_COND_FCMLA:optab><mode>_4): Split into...
11007 (*cond_<SVE_COND_FCMLA:optab><mode>_4_relaxed): ...this and...
11008 (*cond_<SVE_COND_FCMLA:optab><mode>_4_strict): ...this.
11009 (*cond_<SVE_COND_FCMLA:optab><mode>_any): Split into...
11010 (*cond_<SVE_COND_FCMLA:optab><mode>_any_relaxed): ...this and...
11011 (*cond_<SVE_COND_FCMLA:optab><mode>_any_strict): ...this.
11012 (*aarch64_pred_fac<cmp_op><mode>): Split into...
11013 (*aarch64_pred_fac<cmp_op><mode>_relaxed): ...this and...
11014 (*aarch64_pred_fac<cmp_op><mode>_strict): ...this.
11015 (*cond_<optab>_nontrunc<SVE_FULL_F:mode><SVE_FULL_HSDI:mode>): Split
11016 into...
11017 (*cond_<optab>_nontrunc<SVE_FULL_F:mode><SVE_FULL_HSDI:mode>_relaxed):
11018 ...this and...
11019 (*cond_<optab>_nontrunc<SVE_FULL_F:mode><SVE_FULL_HSDI:mode>_strict):
11020 ...this.
11021 (*cond_<optab>_nonextend<SVE_FULL_HSDI:mode><SVE_FULL_F:mode>): Split
11022 into...
11023 (*cond_<optab>_nonextend<SVE_FULL_HSDI:mode><SVE_FULL_F:mode>_relaxed):
11024 ...this and...
11025 (*cond_<optab>_nonextend<SVE_FULL_HSDI:mode><SVE_FULL_F:mode>_strict):
11026 ...this.
11027 * config/aarch64/aarch64-sve2.md
11028 (*cond_<SVE2_COND_FP_UNARY_LONG:optab><mode>): Split into...
11029 (*cond_<SVE2_COND_FP_UNARY_LONG:optab><mode>_relaxed): ...this and...
11030 (*cond_<SVE2_COND_FP_UNARY_LONG:optab><mode>_strict): ...this.
11031 (*cond_<SVE2_COND_FP_UNARY_NARROWB:optab><mode>_any): Split into...
11032 (*cond_<SVE2_COND_FP_UNARY_NARROWB:optab><mode>_any_relaxed): ...this
11033 and...
11034 (*cond_<SVE2_COND_FP_UNARY_NARROWB:optab><mode>_any_strict): ...this.
11035 (*cond_<SVE2_COND_INT_UNARY_FP:optab><mode>): Split into...
11036 (*cond_<SVE2_COND_INT_UNARY_FP:optab><mode>_relaxed): ...this and...
11037 (*cond_<SVE2_COND_INT_UNARY_FP:optab><mode>_strict): ...this.
11038
11039 2020-10-02 Richard Sandiford <richard.sandiford@arm.com>
11040
11041 * config/arm/neon.md (*sub<VDQ:mode>3_neon): Use the new mode macros
11042 for the insn condition.
11043 (sub<VH:mode>3, *mul<VDQW:mode>3_neon): Likewise.
11044 (mul<VDQW:mode>3add<VDQW:mode>_neon): Likewise.
11045 (mul<VH:mode>3add<VH:mode>_neon): Likewise.
11046 (mul<VDQW:mode>3neg<VDQW:mode>add<VDQW:mode>_neon): Likewise.
11047 (fma<VCVTF:mode>4, fma<VH:mode>4, *fmsub<VCVTF:mode>4): Likewise.
11048 (quad_halves_<code>v4sf, reduc_plus_scal_<VD:mode>): Likewise.
11049 (reduc_plus_scal_<VQ:mode>, reduc_smin_scal_<VD:mode>): Likewise.
11050 (reduc_smin_scal_<VQ:mode>, reduc_smax_scal_<VD:mode>): Likewise.
11051 (reduc_smax_scal_<VQ:mode>, mul<VH:mode>3): Likewise.
11052 (neon_vabd<VF:mode>_2, neon_vabd<VF:mode>_3): Likewise.
11053 (fma<VH:mode>4_intrinsic): Delete.
11054 (neon_vadd<VCVTF:mode>): Use the new mode macros to decide which
11055 form of instruction to generate.
11056 (neon_vmla<VDQW:mode>, neon_vmls<VDQW:mode>): Likewise.
11057 (neon_vsub<VCVTF:mode>): Likewise.
11058 (neon_vfma<VH:mode>): Generate the main fma<mode>4 form instead
11059 of using fma<mode>4_intrinsic.
11060
11061 2020-10-02 Martin Liska <mliska@suse.cz>
11062
11063 PR gcov-profile/97193
11064 * coverage.c (coverage_init): GCDA note files should not be
11065 mangled and should end in output directory.
11066
11067 2020-10-02 Jason Merril <jason@redhat.com>
11068
11069 * gimple.h (gimple_call_operator_delete_p): Rename from
11070 gimple_call_replaceable_operator_delete_p.
11071 * gimple.c (gimple_call_operator_delete_p): Likewise.
11072 * tree.h (DECL_IS_REPLACEABLE_OPERATOR_DELETE_P): Remove.
11073 * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): Adjust.
11074 (propagate_necessity): Likewise.
11075 (eliminate_unnecessary_stmts): Likewise.
11076 * tree-ssa-structalias.c (find_func_aliases_for_call): Likewise.
11077
11078 2020-10-02 Richard Biener <rguenther@suse.de>
11079
11080 * gimple.h (GF_CALL_FROM_NEW_OR_DELETE): New call flag.
11081 (gimple_call_set_from_new_or_delete): New.
11082 (gimple_call_from_new_or_delete): Likewise.
11083 * gimple.c (gimple_build_call_from_tree): Set
11084 GF_CALL_FROM_NEW_OR_DELETE appropriately.
11085 * ipa-icf-gimple.c (func_checker::compare_gimple_call):
11086 Compare gimple_call_from_new_or_delete.
11087 * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): Make
11088 sure to only consider new/delete calls from new or delete
11089 expressions.
11090 (propagate_necessity): Likewise.
11091 (eliminate_unnecessary_stmts): Likewise.
11092 * tree-ssa-structalias.c (find_func_aliases_for_call):
11093 Likewise.
11094
11095 2020-10-02 Jason Merril <jason@redhat.com>
11096
11097 * tree.h (CALL_FROM_NEW_OR_DELETE_P): Move from cp-tree.h.
11098 * tree-core.h: Document new usage of protected_flag.
11099
11100 2020-10-02 Aldy Hernandez <aldyh@redhat.com>
11101
11102 * value-range.h (irange::fits_p): New.
11103
11104 2020-10-01 Alan Modra <amodra@gmail.com>
11105
11106 * config/rs6000/rs6000.c (rs6000_legitimize_address): Use
11107 gen_int_mode for high part of address constant.
11108
11109 2020-10-01 Alan Modra <amodra@gmail.com>
11110
11111 * config/rs6000/rs6000.c (rs6000_linux64_override_options):
11112 Formatting. Correct setting of TARGET_NO_FP_IN_TOC and
11113 TARGET_NO_SUM_IN_TOC.
11114
11115 2020-10-01 Alan Modra <amodra@gmail.com>
11116
11117 * config/rs6000/freebsd64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
11118 rs6000_linux64_override_options.
11119 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Break
11120 out to..
11121 * config/rs6000/rs6000.c (rs6000_linux64_override_options): ..this,
11122 new function. Tweak non-biarch test and clearing of
11123 profile_kernel to work with freebsd64.h.
11124
11125 2020-10-01 Martin Liska <mliska@suse.cz>
11126
11127 * config/rs6000/rs6000-call.c: Include value-range.h.
11128 * config/rs6000/rs6000.c: Likewise.
11129
11130 2020-10-01 Tom de Vries <tdevries@suse.de>
11131
11132 PR target/80845
11133 * config/nvptx/nvptx.md (define_insn "truncsi<QHIM>2"): Emit mov.u32
11134 instead of cvt.u32.u32.
11135
11136 2020-10-01 Richard Sandiford <richard.sandiford@arm.com>
11137
11138 PR target/96528
11139 PR target/97288
11140 * config/arm/arm-protos.h (arm_expand_vector_compare): Declare.
11141 (arm_expand_vcond): Likewise.
11142 * config/arm/arm.c (arm_expand_vector_compare): New function.
11143 (arm_expand_vcond): Likewise.
11144 * config/arm/neon.md (vec_cmp<VDQW:mode><v_cmp_result>): New pattern.
11145 (vec_cmpu<VDQW:mode><VDQW:mode>): Likewise.
11146 (vcond<VDQW:mode><VDQW:mode>): Require operand 5 to be a register
11147 or zero. Use arm_expand_vcond.
11148 (vcond<V_cvtto><V32:mode>): New pattern.
11149 (vcondu<VDQIW:mode><VDQIW:mode>): Generalize to...
11150 (vcondu<VDQW:mode><v_cmp_result): ...this. Require operand 5
11151 to be a register or zero. Use arm_expand_vcond.
11152 (vcond_mask_<VDQW:mode><v_cmp_result>): New pattern.
11153 (neon_vc<cmp_op><mode>, neon_vc<cmp_op><mode>_insn): Add "@" marker.
11154 (neon_vbsl<mode>): Likewise.
11155 (neon_vc<cmp_op>u<mode>): Reexpress as...
11156 (@neon_vc<code><mode>): ...this.
11157
11158 2020-10-01 Michael Davidsaver <mdavidsaver@gmail.com>
11159
11160 * config/i386/t-rtems: Change from mtune to march when building
11161 multilibs. The mtune argument tunes or optimizes for a specific
11162 CPU model but does not ensure the generated code is appropriate
11163 for the CPU model. Prior to this patch, i386 compatible code
11164 was always generated but tuned for later models.
11165
11166 2020-10-01 Aldy Hernandez <aldyh@redhat.com>
11167
11168 * builtins.c (compute_objsize): Replace vr_values with range_query.
11169 (get_range): Same.
11170 (gimple_call_alloc_size): Same.
11171 * builtins.h (class vr_values): Remove.
11172 (gimple_call_alloc_size): Replace vr_values with range_query.
11173 * gimple-ssa-sprintf.c (get_int_range): Same.
11174 (struct directive): Pass gimple context to fmtfunc callback.
11175 (directive::set_width): Replace inline with out-of-line version.
11176 (directive::set_precision): Same.
11177 (format_none): New gimple argument.
11178 (format_percent): New gimple argument.
11179 (format_integer): New gimple argument.
11180 (format_floating): New gimple argument.
11181 (get_string_length): Use range_query API.
11182 (format_character): New gimple argument.
11183 (format_string): New gimple argument.
11184 (format_plain): New gimple argument.
11185 (format_directive): New gimple argument.
11186 (parse_directive): Replace vr_values with range_query.
11187 (compute_format_length): Same.
11188 (handle_printf_call): Same. Adjust for range_query API.
11189 * tree-ssa-strlen.c (get_range): Same.
11190 (compare_nonzero_chars): Same.
11191 (get_addr_stridx) Replace vr_values with range_query.
11192 (get_stridx): Same.
11193 (dump_strlen_info): Same.
11194 (get_range_strlen_dynamic): Adjust for range_query API.
11195 (set_strlen_range): Same
11196 (maybe_warn_overflow): Replace vr_values with range_query.
11197 (handle_builtin_strcpy): Same.
11198 (maybe_diag_stxncpy_trunc): Add FIXME comment.
11199 (handle_builtin_memcpy): Replace vr_values with range_query.
11200 (handle_builtin_memset): Same.
11201 (get_len_or_size): Same.
11202 (strxcmp_eqz_result): Same.
11203 (handle_builtin_string_cmp): Same.
11204 (count_nonzero_bytes_addr): Same, plus adjust for range_query API.
11205 (count_nonzero_bytes): Replace vr_values with range_query.
11206 (handle_store): Same.
11207 (strlen_check_and_optimize_call): Same.
11208 (handle_integral_assign): Same.
11209 (check_and_optimize_stmt): Same.
11210 * tree-ssa-strlen.h (class vr_values): Remove.
11211 (get_range): Replace vr_values with range_query.
11212 (get_range_strlen_dynamic): Same.
11213 (handle_printf_call): Same.
11214
11215 2020-10-01 Aldy Hernandez <aldyh@redhat.com>
11216
11217 * gimple-loop-versioning.cc (lv_dom_walker::before_dom_children):
11218 Pass m_range_analyzer instead of get_vr_values.
11219 (loop_versioning::name_prop::get_value): Rename to...
11220 (loop_versioning::name_prop::value_of_expr): ...this.
11221 * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::evrp_range_analyzer):
11222 Adjust for evrp_range_analyzer
11223 inheriting from vr_values.
11224 (evrp_range_analyzer::try_find_new_range): Same.
11225 (evrp_range_analyzer::record_ranges_from_incoming_edge): Same.
11226 (evrp_range_analyzer::record_ranges_from_phis): Same.
11227 (evrp_range_analyzer::record_ranges_from_stmt): Same.
11228 (evrp_range_analyzer::push_value_range): Same.
11229 (evrp_range_analyzer::pop_value_range): Same.
11230 * gimple-ssa-evrp-analyze.h (class evrp_range_analyzer): Inherit from
11231 vr_values. Adjust accordingly.
11232 * gimple-ssa-evrp.c: Adjust for evrp_range_analyzer inheriting from
11233 vr_values.
11234 (evrp_folder::value_of_evrp): Rename from get_value.
11235 * tree-ssa-ccp.c (class ccp_folder): Rename get_value to
11236 value_of_expr.
11237 (ccp_folder::get_value): Rename to...
11238 (ccp_folder::value_of_expr): ...this.
11239 * tree-ssa-copy.c (class copy_folder): Rename get_value to
11240 value_of_expr.
11241 (copy_folder::get_value): Rename to...
11242 (copy_folder::value_of_expr): ...this.
11243 * tree-ssa-dom.c (dom_opt_dom_walker::after_dom_children): Adjust
11244 for evrp_range_analyzer inheriting from vr_values.
11245 (dom_opt_dom_walker::optimize_stmt): Same.
11246 * tree-ssa-propagate.c (substitute_and_fold_engine::replace_uses_in):
11247 Call value_of_* instead of get_value.
11248 (substitute_and_fold_engine::replace_phi_args_in): Same.
11249 (substitute_and_fold_engine::propagate_into_phi_args): Same.
11250 (substitute_and_fold_dom_walker::before_dom_children): Same.
11251 * tree-ssa-propagate.h: Include value-query.h.
11252 (class substitute_and_fold_engine): Inherit from value_query.
11253 * tree-ssa-strlen.c (strlen_dom_walker::before_dom_children):
11254 Adjust for evrp_range_analyzer inheriting from vr_values.
11255 * tree-ssa-threadedge.c (record_temporary_equivalences_from_phis):
11256 Same.
11257 * tree-vrp.c (class vrp_folder): Same.
11258 (vrp_folder::get_value): Rename to value_of_expr.
11259 * vr-values.c (vr_values::get_lattice_entry): Adjust for
11260 vr_values inheriting from range_query.
11261 (vr_values::range_of_expr): New.
11262 (vr_values::value_of_expr): New.
11263 (vr_values::value_on_edge): New.
11264 (vr_values::value_of_stmt): New.
11265 (simplify_using_ranges::op_with_boolean_value_range_p): Call
11266 get_value_range through query.
11267 (check_for_binary_op_overflow): Rename store to query.
11268 (vr_values::vr_values): Remove vrp_value_range_pool.
11269 (vr_values::~vr_values): Same.
11270 (simplify_using_ranges::get_vr_for_comparison): Call get_value_range
11271 through query.
11272 (simplify_using_ranges::compare_names): Same.
11273 (simplify_using_ranges::vrp_evaluate_conditional): Same.
11274 (simplify_using_ranges::vrp_visit_cond_stmt): Same.
11275 (simplify_using_ranges::simplify_abs_using_ranges): Same.
11276 (simplify_using_ranges::simplify_cond_using_ranges_1): Same.
11277 (simplify_cond_using_ranges_2): Same.
11278 (simplify_using_ranges::simplify_switch_using_ranges): Same.
11279 (simplify_using_ranges::two_valued_val_range_p): Same.
11280 (simplify_using_ranges::simplify_using_ranges): Rename store to query.
11281 (simplify_using_ranges::simplify): Assert that we have a query.
11282 * vr-values.h (class range_query): Remove.
11283 (class simplify_using_ranges): Remove inheritance of range_query.
11284 (class vr_values): Add virtuals for range_of_expr, value_of_expr,
11285 value_on_edge, value_of_stmt, and get_value_range.
11286 Call range_query allocator instead of using vrp_value_range_pool.
11287 Remove vrp_value_range_pool.
11288 (simplify_using_ranges::get_value_range): Remove.
11289
11290 2020-10-01 Richard Biener <rguenther@suse.de>
11291
11292 PR tree-optimization/97236
11293 * tree-vect-stmts.c (get_group_load_store_type): Keep
11294 VMAT_ELEMENTWISE for single-element vectors.
11295
11296 2020-10-01 Jan Hubicka <jh@suse.cz>
11297
11298 * ipa-modref.c (compute_parm_map): Be ready for callee_pi to be NULL.
11299
11300 2020-10-01 Jan Hubicka <jh@suse.cz>
11301
11302 PR ipa/97244
11303 * ipa-fnsummary.c (pass_free_fnsummary::execute): Free
11304 also indirect inlining datastructure.
11305 * ipa-modref.c (pass_ipa_modref::execute): Do not free them here.
11306 * ipa-prop.c (ipa_free_all_node_params): Do not crash when info does
11307 not exist.
11308 (ipa_unregister_cgraph_hooks): Likewise.
11309
11310 2020-10-01 Jan Hubicka <jh@suse.cz>
11311
11312 * internal-fn.c (DEF_INTERNAL_FN): Fix handling of fnspec
11313
11314 2020-10-01 Aldy Hernandez <aldyh@redhat.com>
11315
11316 * Makefile.in: Add value-query.o.
11317 * value-query.cc: New file.
11318 * value-query.h: New file.
11319
11320 2020-10-01 Alex Coplan <alex.coplan@arm.com>
11321
11322 * config/arm/arm-cpus.in: Fix ordering, move Neoverse N2 down.
11323 * config/arm/arm-tables.opt: Regenerate.
11324 * config/arm/arm-tune.md: Regenerate.
11325
11326 2020-10-01 Jakub Jelinek <jakub@redhat.com>
11327
11328 * config/s390/s390.c (s390_atomic_assign_expand_fenv): Use
11329 TARGET_EXPR instead of MODIFY_EXPR for the first assignments to
11330 fenv_var and old_fpc. Formatting fixes.
11331
11332 2020-10-01 Richard Biener <rguenther@suse.de>
11333
11334 * tree-vect-patterns.c (vect_recog_bool_pattern): Also handle
11335 VIEW_CONVERT_EXPR.
11336
11337 2020-10-01 Florian Weimer <fweimer@redhat.com>
11338
11339 PR target/97250
11340 * config/i386/i386.h (PTA_NO_TUNE, PTA_X86_64_BASELINE)
11341 (PTA_X86_64_V2, PTA_X86_64_V3, PTA_X86_64_V4): New.
11342 * common/config/i386/i386-common.c (processor_alias_table):
11343 Add "x86-64-v2", "x86-64-v3", "x86-64-v4".
11344 * config/i386/i386-options.c (ix86_option_override_internal):
11345 Handle new PTA_NO_TUNE processor table entries.
11346 * doc/invoke.texi (x86 Options): Document new -march values.
11347
11348 2020-10-01 Alan Modra <amodra@gmail.com>
11349
11350 * config/rs6000/ppc-asm.h: Support __PCREL__ code.
11351
11352 2020-10-01 Alan Modra <amodra@gmail.com>
11353
11354 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't
11355 set -mcmodel=small for -mno-minimal-toc when pcrel.
11356
11357 2020-09-30 Martin Sebor <msebor@redhat.com>
11358
11359 PR middle-end/97189
11360 * attribs.c (attr_access::array_as_string): Avoid assuming a VLA
11361 access specification string contains a closing bracket.
11362
11363 2020-09-30 Martin Sebor <msebor@redhat.com>
11364
11365 PR c/97206
11366 * attribs.c (attr_access::array_as_string): Avoid modifying a shared
11367 type in place and use build_type_attribute_qual_variant instead.
11368
11369 2020-09-30 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
11370
11371 * config/arm/arm-cpus.in: Add Cortex-A78 and Cortex-A78AE cores.
11372 * config/arm/arm-tables.opt: Regenerate.
11373 * config/arm/arm-tune.md: Regenerate.
11374 * doc/invoke.texi: Update docs.
11375
11376 2020-09-30 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
11377
11378 * config/aarch64/aarch64-cores.def: Add Cortex-A78 and Cortex-A78AE cores.
11379 * config/aarch64/aarch64-tune.md: Regenerate.
11380 * doc/invoke.texi: Add -mtune=cortex-a78 and -mtune=cortex-a78ae.
11381
11382 2020-09-30 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
11383
11384 PR target/96795
11385 * config/arm/arm_mve.h (__ARM_mve_coerce2): Define.
11386 (__arm_vaddq): Correct the scalar argument.
11387 (__arm_vaddq_m): Likewise.
11388 (__arm_vaddq_x): Likewise.
11389 (__arm_vcmpeqq_m): Likewise.
11390 (__arm_vcmpeqq): Likewise.
11391 (__arm_vcmpgeq_m): Likewise.
11392 (__arm_vcmpgeq): Likewise.
11393 (__arm_vcmpgtq_m): Likewise.
11394 (__arm_vcmpgtq): Likewise.
11395 (__arm_vcmpleq_m): Likewise.
11396 (__arm_vcmpleq): Likewise.
11397 (__arm_vcmpltq_m): Likewise.
11398 (__arm_vcmpltq): Likewise.
11399 (__arm_vcmpneq_m): Likewise.
11400 (__arm_vcmpneq): Likewise.
11401 (__arm_vfmaq_m): Likewise.
11402 (__arm_vfmaq): Likewise.
11403 (__arm_vfmasq_m): Likewise.
11404 (__arm_vfmasq): Likewise.
11405 (__arm_vmaxnmavq): Likewise.
11406 (__arm_vmaxnmavq_p): Likewise.
11407 (__arm_vmaxnmvq): Likewise.
11408 (__arm_vmaxnmvq_p): Likewise.
11409 (__arm_vminnmavq): Likewise.
11410 (__arm_vminnmavq_p): Likewise.
11411 (__arm_vminnmvq): Likewise.
11412 (__arm_vminnmvq_p): Likewise.
11413 (__arm_vmulq_m): Likewise.
11414 (__arm_vmulq): Likewise.
11415 (__arm_vmulq_x): Likewise.
11416 (__arm_vsetq_lane): Likewise.
11417 (__arm_vsubq_m): Likewise.
11418 (__arm_vsubq): Likewise.
11419 (__arm_vsubq_x): Likewise.
11420
11421 2020-09-30 Joel Hutton <joel.hutton@arm.com>
11422
11423 PR target/96837
11424 * tree-vect-slp.c (vect_analyze_slp): Do not call
11425 vect_attempt_slp_rearrange_stmts for vector constructors.
11426
11427 2020-09-30 Tamar Christina <tamar.christina@arm.com>
11428
11429 * tree-vectorizer.h (SLP_TREE_REF_COUNT): New.
11430 * tree-vect-slp.c (_slp_tree::_slp_tree, _slp_tree::~_slp_tree,
11431 vect_free_slp_tree, vect_build_slp_tree, vect_print_slp_tree,
11432 slp_copy_subtree, vect_attempt_slp_rearrange_stmts): Use it.
11433
11434 2020-09-30 Tobias Burnus <tobias@codesourcery.com>
11435
11436 * omp-offload.c (omp_discover_implicit_declare_target): Also
11437 handled nested functions.
11438
11439 2020-09-30 Tobias Burnus <tobias@codesourcery.com>
11440 Tom de Vries <tdevries@suse.de>
11441
11442 * builtins.c (expand_builtin_cexpi, fold_builtin_sincos): Update
11443 targetm.libc_has_function call.
11444 * builtins.def (DEF_C94_BUILTIN, DEF_C99_BUILTIN, DEF_C11_BUILTIN):
11445 (DEF_C2X_BUILTIN, DEF_C99_COMPL_BUILTIN, DEF_C99_C90RES_BUILTIN):
11446 Same.
11447 * config/darwin-protos.h (darwin_libc_has_function): Update prototype.
11448 * config/darwin.c (darwin_libc_has_function): Add arg.
11449 * config/linux-protos.h (linux_libc_has_function): Update prototype.
11450 * config/linux.c (linux_libc_has_function): Add arg.
11451 * config/i386/i386.c (ix86_libc_has_function): Update
11452 targetm.libc_has_function call.
11453 * config/nvptx/nvptx.c (nvptx_libc_has_function): New function.
11454 (TARGET_LIBC_HAS_FUNCTION): Redefine to nvptx_libc_has_function.
11455 * convert.c (convert_to_integer_1): Update targetm.libc_has_function
11456 call.
11457 * match.pd: Same.
11458 * target.def (libc_has_function): Add arg.
11459 * doc/tm.texi: Regenerate.
11460 * targhooks.c (default_libc_has_function, gnu_libc_has_function)
11461 (no_c99_libc_has_function): Add arg.
11462 * targhooks.h (default_libc_has_function, no_c99_libc_has_function)
11463 (gnu_libc_has_function): Update prototype.
11464 * tree-ssa-math-opts.c (pass_cse_sincos::execute): Update
11465 targetm.libc_has_function call.
11466
11467 2020-09-30 H.J. Lu <hjl.tools@gmail.com>
11468
11469 PR target/97184
11470 * config/i386/i386.md (UNSPECV_MOVDIRI): Renamed to ...
11471 (UNSPEC_MOVDIRI): This.
11472 (UNSPECV_MOVDIR64B): Renamed to ...
11473 (UNSPEC_MOVDIR64B): This.
11474 (movdiri<mode>): Use SET operation.
11475 (@movdir64b_<mode>): Likewise.
11476
11477 2020-09-30 Florian Weimer <fweimer@redhat.com>
11478
11479 * config/i386/i386-c.c (ix86_target_macros_internal): Define
11480 __LAHF_SAHF__ and __MOVBE__ based on ISA flags.
11481
11482 2020-09-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11483
11484 PR target/97150
11485 * config/aarch64/arm_neon.h (vqrshlb_u8): Make second argument
11486 signed.
11487 (vqrshlh_u16): Likewise.
11488 (vqrshls_u32): Likewise.
11489 (vqrshld_u64): Likewise.
11490 (vqshlb_u8): Likewise.
11491 (vqshlh_u16): Likewise.
11492 (vqshls_u32): Likewise.
11493 (vqshld_u64): Likewise.
11494 (vshld_u64): Likewise.
11495
11496 2020-09-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11497
11498 PR target/96313
11499 * config/aarch64/aarch64-simd-builtins.def (sqmovun): Use UNOPUS
11500 qualifiers.
11501 * config/aarch64/arm_neon.h (vqmovun_s16): Adjust builtin call.
11502 Remove unnecessary result cast.
11503 (vqmovun_s32): Likewise.
11504 (vqmovun_s64): Likewise.
11505 (vqmovunh_s16): Likewise. Fix return type.
11506 (vqmovuns_s32): Likewise.
11507 (vqmovund_s64): Likewise.
11508
11509 2020-09-30 Richard Sandiford <richard.sandiford@arm.com>
11510
11511 * config/aarch64/aarch64.c (aarch64_split_128bit_move_p): Add a
11512 function comment. Tighten check for FP moves.
11513 * config/aarch64/aarch64.md (*movti_aarch64): Add a w<-Z alternative.
11514 (*movtf_aarch64): Handle r<-Y like r<-r. Remove unnecessary
11515 earlyclobber. Change splitter predicate from aarch64_reg_or_imm
11516 to nonmemory_operand.
11517
11518 2020-09-30 Alex Coplan <alex.coplan@arm.com>
11519
11520 PR target/97251
11521 * config/arm/arm.md (movsf): Relax TARGET_HARD_FLOAT to
11522 TARGET_VFP_BASE.
11523 (movdf): Likewise.
11524 * config/arm/vfp.md (no_literal_pool_df_immediate): Likewise.
11525 (no_literal_pool_sf_immediate): Likewise.
11526
11527 2020-09-30 Alan Modra <amodra@gmail.com>
11528
11529 * configure.ac (--with-long-double-format): Typo fix.
11530 * configure: Regenerate.
11531
11532 2020-09-30 Alan Modra <amodra@gmail.com>
11533
11534 * config/rs6000/rs6000.md (@tablejump<mode>_normal): Don't use
11535 non-existent operands[].
11536 (@tablejump<mode>_nospec): Likewise.
11537
11538 2020-09-30 Segher Boessenkool <segher@kernel.crashing.org>
11539
11540 * config/rs6000/rs6000.md (tablejump): Simplify.
11541 (tablejumpsi): Merge this ...
11542 (tablejumpdi): ... and this ...
11543 (@tablejump<mode>_normal): ... into this.
11544 (tablejumpsi_nospec): Merge this ...
11545 (tablejumpdi_nospec): ... and this ...
11546 (@tablejump<mode>_nospec): ... into this.
11547 (*tablejump<mode>_internal1): Delete, rename to ...
11548 (@tablejump<mode>_insn_normal): ... this.
11549 (*tablejump<mode>_internal1_nospec): Delete, rename to ...
11550 (@tablejump<mode>_insn_nospec): ... this.
11551
11552 2020-09-29 Martin Sebor <msebor@redhat.com>
11553
11554 PR middle-end/97188
11555 * calls.c (maybe_warn_rdwr_sizes): Simplify warning messages.
11556 Correct handling of VLA argumments.
11557
11558 2020-09-29 Marek Polacek <polacek@redhat.com>
11559
11560 PR c++/94695
11561 * doc/invoke.texi: Document -Wrange-loop-construct.
11562
11563 2020-09-29 Jim Wilson <jimw@sifive.com>
11564
11565 PR bootstrap/97183
11566 * configure.ac (gcc_cv_header_zstd_h): Check ZSTD_VERISON_NUMBER.
11567 * configure: Regenerated.
11568
11569 2020-09-29 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
11570
11571 * config/arm/arm-cpus.in: Add Cortex-X1 core.
11572 * config/arm/arm-tables.opt: Regenerate.
11573 * config/arm/arm-tune.md: Regenerate.
11574 * doc/invoke.texi: Update docs.
11575
11576 2020-09-29 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
11577
11578 * config/aarch64/aarch64-cores.def: Add Cortex-X1 Arm core.
11579 * config/aarch64/aarch64-tune.md: Regenerate.
11580 * doc/invoke.texi: Add -mtune=cortex-x1 docs.
11581
11582 2020-09-29 H.J. Lu <hjl.tools@gmail.com>
11583
11584 PR target/97247
11585 * config/i386/enqcmdintrin.h: Replace <enqcmdntrin.h> with
11586 <enqcmdintrin.h>. Replace _ENQCMDNTRIN_H_INCLUDED with
11587 _ENQCMDINTRIN_H_INCLUDED.
11588
11589 2020-09-29 Richard Biener <rguenther@suse.de>
11590
11591 PR tree-optimization/97241
11592 * tree-vect-loop.c (vectorizable_reduction): Move finding
11593 the SLP node for the reduction stmt to a better place.
11594
11595 2020-09-29 Richard Biener <rguenther@suse.de>
11596
11597 * tree-vect-slp.c (vect_analyze_slp): Move SLP reduction
11598 re-arrangement and SLP graph load gathering...
11599 (vect_optimize_slp): ... here.
11600 * tree-vectorizer.h (vec_info::slp_loads): Remove.
11601
11602 2020-09-29 Hongyu Wang <hongyu.wang@intel.com>
11603
11604 PR target/97231
11605 * config/i386/amxbf16intrin.h: Add FSF copyright notes.
11606 * config/i386/amxint8intrin.h: Ditto.
11607 * config/i386/amxtileintrin.h: Ditto.
11608 * config/i386/avx512vp2intersectintrin.h: Ditto.
11609 * config/i386/avx512vp2intersectvlintrin.h: Ditto.
11610 * config/i386/pconfigintrin.h: Ditto.
11611 * config/i386/tsxldtrkintrin.h: Ditto.
11612 * config/i386/wbnoinvdintrin.h: Ditto.
11613
11614 2020-09-29 Richard Biener <rguenther@suse.de>
11615
11616 PR tree-optimization/97238
11617 * tree-ssa-reassoc.c (ovce_extract_ops): Fix typo.
11618
11619 2020-09-29 Richard Sandiford <richard.sandiford@arm.com>
11620
11621 * config/arm/arm.h (ARM_HAVE_NEON_V8QI_ARITH, ARM_HAVE_NEON_V4HI_ARITH)
11622 (ARM_HAVE_NEON_V2SI_ARITH, ARM_HAVE_NEON_V16QI_ARITH): New macros.
11623 (ARM_HAVE_NEON_V8HI_ARITH, ARM_HAVE_NEON_V4SI_ARITH): Likewise.
11624 (ARM_HAVE_NEON_V2DI_ARITH, ARM_HAVE_NEON_V4HF_ARITH): Likewise.
11625 (ARM_HAVE_NEON_V8HF_ARITH, ARM_HAVE_NEON_V2SF_ARITH): Likewise.
11626 (ARM_HAVE_NEON_V4SF_ARITH, ARM_HAVE_V8QI_ARITH, ARM_HAVE_V4HI_ARITH)
11627 (ARM_HAVE_V2SI_ARITH, ARM_HAVE_V16QI_ARITH, ARM_HAVE_V8HI_ARITH)
11628 (ARM_HAVE_V4SI_ARITH, ARM_HAVE_V2DI_ARITH, ARM_HAVE_V4HF_ARITH)
11629 (ARM_HAVE_V2SF_ARITH, ARM_HAVE_V8HF_ARITH, ARM_HAVE_V4SF_ARITH):
11630 Likewise.
11631 * config/arm/iterators.md (VNIM, VNINOTM): Delete.
11632 * config/arm/vec-common.md (add<VNIM:mode>3, addv8hf3)
11633 (add<VNINOTM:mode>3): Replace with...
11634 (add<VDQ:mode>3): ...this new expander.
11635 * config/arm/neon.md (*add<VDQ:mode>3_neon): Use the new
11636 ARM_HAVE_NEON_<MODE>_ARITH macros as the C condition.
11637 (addv8hf3_neon, addv4hf3, add<VFH:mode>3_fp16): Delete in
11638 favor of the above.
11639 (neon_vadd<VH:mode>): Use gen_add<mode>3 instead of
11640 gen_add<mode>3_fp16.
11641
11642 2020-09-29 Kito Cheng <kito.cheng@sifive.com>
11643
11644 * config/riscv/riscv-c.c (riscv_cpu_cpp_builtins): Define
11645 __riscv_cmodel_medany when PIC mode.
11646
11647 2020-09-29 Alex Coplan <alex.coplan@arm.com>
11648
11649 * config/aarch64/aarch64-cores.def: Move neoverse-n2 after saphira.
11650 * config/aarch64/aarch64-tune.md: Regenerate.
11651
11652 2020-09-29 Martin Liska <mliska@suse.cz>
11653
11654 PR tree-optimization/96979
11655 * tree-switch-conversion.c (jump_table_cluster::can_be_handled):
11656 Make a fast bail out.
11657 (bit_test_cluster::can_be_handled): Likewise here.
11658 * tree-switch-conversion.h (get_range): Use wi::to_wide instead
11659 of a folding.
11660
11661 2020-09-29 Martin Liska <mliska@suse.cz>
11662
11663 Revert:
11664 2020-09-22 Martin Liska <mliska@suse.cz>
11665
11666 PR tree-optimization/96979
11667 * doc/invoke.texi: Document new param max-switch-clustering-attempts.
11668 * params.opt: Add new parameter.
11669 * tree-switch-conversion.c (jump_table_cluster::find_jump_tables):
11670 Limit number of attempts.
11671 (bit_test_cluster::find_bit_tests): Likewise.
11672
11673 2020-09-28 Aldy Hernandez <aldyh@redhat.com>
11674
11675 * value-range.h (class irange): Add irange_allocator friend.
11676 (class irange_allocator): New.
11677
11678 2020-09-28 Tobias Burnus <tobias@codesourcery.com>
11679
11680 PR middle-end/96390
11681 * omp-offload.c (omp_discover_declare_target_tgt_fn_r): Handle
11682 alias nodes.
11683
11684 2020-09-28 Paul A. Clarke <pc@us.ibm.com>
11685
11686 * config/rs6000/smmintrin.h (_mm_insert_epi8): New.
11687 (_mm_insert_epi32): New.
11688 (_mm_insert_epi64): New.
11689
11690 2020-09-28 liuhongt <hongtao.liu@intel.com>
11691
11692 * common/config/i386/i386-common.c (OPTION_MASK_ISA2_AMX_TILE_SET,
11693 OPTION_MASK_ISA2_AMX_INT8_SET, OPTION_MASK_ISA2_AMX_BF16_SET,
11694 OPTION_MASK_ISA2_AMX_TILE_UNSET, OPTION_MASK_ISA2_AMX_INT8_UNSET,
11695 OPTION_MASK_ISA2_AMX_BF16_UNSET, OPTION_MASK_ISA2_XSAVE_UNSET):
11696 New marcos.
11697 (ix86_handle_option): Hanlde -mamx-tile, -mamx-int8, -mamx-bf16.
11698 * common/config/i386/i386-cpuinfo.h (processor_types): Add
11699 FEATURE_AMX_TILE, FEATURE_AMX_INT8, FEATURE_AMX_BF16.
11700 * common/config/i386/cpuinfo.h (XSTATE_TILECFG,
11701 XSTATE_TILEDATA, XCR_AMX_ENABLED_MASK): New macro.
11702 (get_available_features): Enable AMX features only if
11703 their states are suoorited by OSXSAVE.
11704 * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY
11705 for amx-tile, amx-int8, amx-bf16.
11706 * config.gcc: Add amxtileintrin.h, amxint8intrin.h,
11707 amxbf16intrin.h to extra headers.
11708 * config/i386/amxbf16intrin.h: New file.
11709 * config/i386/amxint8intrin.h: Ditto.
11710 * config/i386/amxtileintrin.h: Ditto.
11711 * config/i386/cpuid.h (bit_AMX_BF16, bit_AMX_TILE, bit_AMX_INT8):
11712 New macro.
11713 * config/i386/i386-c.c (ix86_target_macros_internal): Define
11714 __AMX_TILE__, __AMX_INT8__, AMX_BF16__.
11715 * config/i386/i386-options.c (ix86_target_string): Add
11716 -mamx-tile, -mamx-int8, -mamx-bf16.
11717 (ix86_option_override_internal): Handle AMX-TILE,
11718 AMX-INT8, AMX-BF16.
11719 * config/i386/i386.h (TARGET_AMX_TILE, TARGET_AMX_TILE_P,
11720 TARGET_AMX_INT8, TARGET_AMX_INT8_P, TARGET_AMX_BF16_P,
11721 PTA_AMX_TILE, PTA_AMX_INT8, PTA_AMX_BF16): New macros.
11722 * config/i386/i386.opt: Add -mamx-tile, -mamx-int8, -mamx-bf16.
11723 * config/i386/immintrin.h: Include amxtileintrin.h,
11724 amxint8intrin.h, amxbf16intrin.h.
11725 * doc/invoke.texi: Document -mamx-tile, -mamx-int8, -mamx-bf16.
11726 * doc/extend.texi: Document amx-tile, amx-int8, amx-bf16.
11727 * doc/sourcebuild.texi ((Effective-Target Keywords, Other
11728 hardware attributes): Document amx_int8, amx_tile, amx_bf16.
11729
11730 2020-09-28 Andrea Corallo <andrea.corallo@arm.com>
11731
11732 * config/aarch64/aarch64-builtins.c
11733 (aarch64_general_expand_builtin): Do not alter value on a
11734 force_reg returned rtx.
11735
11736 2020-09-28 Eric Botcazou <ebotcazou@adacore.com>
11737
11738 * tree-eh.c (lower_try_finally_dup_block): Revert latest change.
11739
11740 2020-09-27 Jan Hubicka <jh@suse.cz>
11741
11742 * ipa-modref.c (modref_summary::useful_p): Fix testing of stores.
11743
11744 2020-09-27 Jakub Jelinek <jakub@redhat.com>
11745
11746 PR middle-end/97073
11747 * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
11748 expand_copysign_bit): Check reg_overlap_mentioned_p between target
11749 and operand(s) and if it returns true, force a pseudo as target.
11750
11751 2020-09-27 Xionghu Luo <luoxhu@linux.ibm.com>
11752
11753 * gimple-isel.cc (gimple_expand_vec_set_expr): New function.
11754 (gimple_expand_vec_cond_exprs): Rename to ...
11755 (gimple_expand_vec_exprs): ... this and call
11756 gimple_expand_vec_set_expr.
11757 * internal-fn.c (vec_set_direct): New define.
11758 (expand_vec_set_optab_fn): New function.
11759 (direct_vec_set_optab_supported_p): New define.
11760 * internal-fn.def (VEC_SET): New DEF_INTERNAL_OPTAB_FN.
11761 * optabs.c (can_vec_set_var_idx_p): New function.
11762 * optabs.h (can_vec_set_var_idx_p): New declaration.
11763
11764 2020-09-26 Jan Hubicka <jh@suse.cz>
11765
11766 * ipa-modref.c (analyze_stmt): Do not skip clobbers in early pass.
11767 * ipa-pure-const.c (analyze_stmt): Update comment.
11768
11769 2020-09-26 David Edelsohn <dje.gcc@gmail.com>
11770 Clement Chigot <clement.chigot@atos.com>
11771
11772 * collect2.c (visibility_flag): New.
11773 (main): Detect -fvisibility.
11774 (write_c_file_stat): Push and pop default visibility.
11775
11776 2020-09-26 Jan Hubicka <hubicka@ucw.cz>
11777
11778 * ipa-inline-transform.c: Include ipa-modref-tree.h and ipa-modref.h.
11779 (inline_call): Call ipa_merge_modref_summary_after_inlining.
11780 * ipa-inline.c (ipa_inline): Do not free summaries.
11781 * ipa-modref.c (dump_records): Fix formating.
11782 (merge_call_side_effects): Break out from ...
11783 (analyze_call): ... here; record recursive calls.
11784 (analyze_stmt): Add new parameter RECURSIVE_CALLS.
11785 (analyze_function): Do iterative dataflow on recursive calls.
11786 (compute_parm_map): New function.
11787 (ipa_merge_modref_summary_after_inlining): New function.
11788 (collapse_loads): New function.
11789 (modref_propagate_in_scc): Break out from ...
11790 (pass_ipa_modref::execute): ... here; Do iterative dataflow.
11791 * ipa-modref.h (ipa_merge_modref_summary_after_inlining): Declare.
11792
11793 2020-09-26 Jakub Jelinek <jakub@redhat.com>
11794
11795 * omp-expand.c (expand_omp_simd): Help vectorizer for the collapse == 1
11796 and non-composite collapse > 1 case with non-constant innermost loop
11797 step by precomputing number of iterations before loop and using an
11798 alternate IV from 0 to number of iterations - 1 with step of 1.
11799
11800 2020-09-26 Jan Hubicka <jh@suse.cz>
11801
11802 * ipa-fnsummary.c (dump_ipa_call_summary): Dump
11803 points_to_local_or_readonly_memory flag.
11804 (analyze_function_body): Compute points_to_local_or_readonly_memory
11805 flag.
11806 (remap_edge_change_prob): Rename to ...
11807 (remap_edge_params): ... this one; update
11808 points_to_local_or_readonly_memory.
11809 (remap_edge_summaries): Update.
11810 (read_ipa_call_summary): Stream the new flag.
11811 (write_ipa_call_summary): Likewise.
11812 * ipa-predicate.h (struct inline_param_summary): Add
11813 points_to_local_or_readonly_memory.
11814 (inline_param_summary::equal_to): Update.
11815 (inline_param_summary::useless_p): Update.
11816
11817 2020-09-26 Jan Hubicka <hubicka@ucw.cz>
11818
11819 * ipa-modref-tree.h (modref_ref_node::insert_access): Track if something
11820 changed.
11821 (modref_base_node::insert_ref): Likewise (and add a new optional
11822 argument)
11823 (modref_tree::insert): Likewise.
11824 (modref_tree::merge): Rewrite
11825
11826 2020-09-25 Jan Hubicka <hubicka@ucw.cz>
11827
11828 * doc/invoke.texi: Add -fno-ipa-modref to flags disabled by
11829 -flive-patching.
11830 * opts.c (control_options_for_live_patching): Disable ipa-modref.
11831
11832 2020-09-25 Jan Hubicka <hubicka@ucw.cz>
11833
11834 * ipa-modref.c (analyze_stmt): Fix return value for gimple_clobber.
11835
11836 2020-09-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11837
11838 * config/aarch64/aarch64-option-extensions.def (rng): Add
11839 cpuinfo string.
11840
11841 2020-09-25 Alex Coplan <alex.coplan@arm.com>
11842
11843 * config/arm/arm-cpus.in (neoverse-v1): Add FP16.
11844
11845 2020-09-25 Martin Liska <mliska@suse.cz>
11846
11847 PR gcov-profile/64636
11848 * value-prof.c (stream_out_histogram_value): Allow negative
11849 values for HIST_TYPE_IOR.
11850
11851 2020-09-25 Tom de Vries <tdevries@suse.de>
11852
11853 * config/nvptx/nvptx.c (nvptx_assemble_integer, nvptx_print_operand):
11854 Use gcc_fallthrough ().
11855
11856 2020-09-25 Richard Biener <rguenther@suse.de>
11857
11858 PR middle-end/96814
11859 * expr.c (store_constructor): Handle VECTOR_BOOLEAN_TYPE_P
11860 CTORs correctly.
11861
11862 2020-09-25 Richard Biener <rguenther@suse.de>
11863
11864 PR middle-end/97207
11865 * vec.h (auto_vec<T>::operator=(auto_vec<T>&&)): Implement.
11866
11867 2020-09-25 Richard Sandiford <richard.sandiford@arm.com>
11868
11869 * config/arm/arm-protos.h (arm_mve_mode_and_operands_type_check):
11870 Delete.
11871 * config/arm/arm.c (arm_coproc_mem_operand_wb): Use a scale factor
11872 of 2 rather than 4 for 16-bit modes.
11873 (arm_mve_mode_and_operands_type_check): Delete.
11874 * config/arm/constraints.md (Uj): Allow writeback for Neon,
11875 but continue to disallow it for MVE.
11876 * config/arm/arm.md (*arm32_mov<HFBF:mode>): Add !TARGET_HAVE_MVE.
11877 * config/arm/vfp.md (*mov_load_vfp_hf16, *mov_store_vfp_hf16): Fold
11878 back into...
11879 (*mov<mode>_vfp_<mode>16): ...here but use Uj for the FPR memory
11880 constraints. Use for base MVE too.
11881
11882 2020-09-25 Richard Biener <rguenther@suse.de>
11883
11884 PR tree-optimization/97199
11885 * tree-if-conv.c (combine_blocks): Remove edges only
11886 after looking at virtual PHI args.
11887
11888 2020-09-25 Jakub Jelinek <jakub@redhat.com>
11889
11890 * omp-low.c (scan_omp_1_stmt): Don't call scan_omp_simd for
11891 collapse > 1 loops as simt doesn't support collapsed loops yet.
11892 * omp-expand.c (expand_omp_for_init_counts, expand_omp_for_init_vars):
11893 Small tweaks to function comment.
11894 (expand_omp_simd): Rewritten collapse > 1 support to only attempt
11895 to vectorize the innermost loop and emit set of outer loops around it.
11896 For non-composite simd with collapse > 1 without broken loop don't
11897 even try to compute number of iterations first. Add support for
11898 non-rectangular simd loops.
11899 (expand_omp_for): Don't sorry_at on non-rectangular simd loops.
11900
11901 2020-09-25 Martin Liska <mliska@suse.cz>
11902
11903 * cgraph.c (cgraph_edge::debug): New.
11904 * cgraph.h (cgraph_edge::debug): New.
11905
11906 2020-09-25 Martin Liska <mliska@suse.cz>
11907
11908 * cgraph.c (cgraph_node::dump): Always print space at the end
11909 of a message. Remove one extra space.
11910
11911 2020-09-24 Alex Coplan <alex.coplan@arm.com>
11912
11913 * config/arm/arm-cpus.in (neoverse-n2): New.
11914 * config/arm/arm-tables.opt: Regenerate.
11915 * config/arm/arm-tune.md: Regenerate.
11916 * doc/invoke.texi: Document support for Neoverse N2.
11917
11918 2020-09-24 Alex Coplan <alex.coplan@arm.com>
11919
11920 * config/aarch64/aarch64-cores.def: Add Neoverse N2.
11921 * config/aarch64/aarch64-tune.md: Regenerate.
11922 * doc/invoke.texi: Document AArch64 support for Neoverse N2.
11923
11924 2020-09-24 Richard Biener <rguenther@suse.de>
11925
11926 * vec.h (auto_vec<T, 0>::auto_vec (auto_vec &&)): New move CTOR.
11927 (auto_vec<T, 0>::operator=(auto_vec &&)): Delete.
11928 * hash-table.h (hash_table::expand): Use std::move when expanding.
11929 * cfgloop.h (get_loop_exit_edges): Return auto_vec<edge>.
11930 * cfgloop.c (get_loop_exit_edges): Adjust.
11931 * cfgloopmanip.c (fix_loop_placement): Likewise.
11932 * ipa-fnsummary.c (analyze_function_body): Likewise.
11933 * ira-build.c (create_loop_tree_nodes): Likewise.
11934 (create_loop_tree_node_allocnos): Likewise.
11935 (loop_with_complex_edge_p): Likewise.
11936 * ira-color.c (ira_loop_edge_freq): Likewise.
11937 * loop-unroll.c (analyze_insns_in_loop): Likewise.
11938 * predict.c (predict_loops): Likewise.
11939 * tree-predcom.c (last_always_executed_block): Likewise.
11940 * tree-ssa-loop-ch.c (ch_base::copy_headers): Likewise.
11941 * tree-ssa-loop-im.c (store_motion_loop): Likewise.
11942 * tree-ssa-loop-ivcanon.c (loop_edge_to_cancel): Likewise.
11943 (canonicalize_loop_induction_variables): Likewise.
11944 * tree-ssa-loop-manip.c (get_loops_exits): Likewise.
11945 * tree-ssa-loop-niter.c (find_loop_niter): Likewise.
11946 (finite_loop_p): Likewise.
11947 (find_loop_niter_by_eval): Likewise.
11948 (estimate_numbers_of_iterations): Likewise.
11949 * tree-ssa-loop-prefetch.c (emit_mfence_after_loop): Likewise.
11950 (may_use_storent_in_loop_p): Likewise.
11951
11952 2020-09-24 Jan Hubicka <jh@suse.cz>
11953
11954 * doc/invoke.texi: Document -fipa-modref, ipa-modref-max-bases,
11955 ipa-modref-max-refs, ipa-modref-max-accesses, ipa-modref-max-tests.
11956 * ipa-modref-tree.c (test_insert_search_collapse): Update.
11957 (test_merge): Update.
11958 (gt_ggc_mx): New function.
11959 * ipa-modref-tree.h (struct modref_access_node): New structure.
11960 (struct modref_ref_node): Add every_access and accesses array.
11961 (modref_ref_node::modref_ref_node): Update ctor.
11962 (modref_ref_node::search): New member function.
11963 (modref_ref_node::collapse): New member function.
11964 (modref_ref_node::insert_access): New member function.
11965 (modref_base_node::insert_ref): Do not collapse base if ref is 0.
11966 (modref_base_node::collapse): Copllapse also refs.
11967 (modref_tree): Add accesses.
11968 (modref_tree::modref_tree): Initialize max_accesses.
11969 (modref_tree::insert): Add access parameter.
11970 (modref_tree::cleanup): New member function.
11971 (modref_tree::merge): Add parm_map; merge accesses.
11972 (modref_tree::copy_from): New member function.
11973 (modref_tree::create_ggc): Add max_accesses.
11974 * ipa-modref.c (dump_access): New function.
11975 (dump_records): Dump accesses.
11976 (dump_lto_records): Dump accesses.
11977 (get_access): New function.
11978 (record_access): Record access.
11979 (record_access_lto): Record access.
11980 (analyze_call): Compute parm_map.
11981 (analyze_function): Update construction of modref records.
11982 (modref_summaries::duplicate): Likewise; use copy_from.
11983 (write_modref_records): Stream accesses.
11984 (read_modref_records): Sream accesses.
11985 (pass_ipa_modref::execute): Update call of merge.
11986 * params.opt (-param=modref-max-accesses): New.
11987 * tree-ssa-alias.c (alias_stats): Add modref_baseptr_tests.
11988 (dump_alias_stats): Update.
11989 (base_may_alias_with_dereference_p): New function.
11990 (modref_may_conflict): Check accesses.
11991 (ref_maybe_used_by_call_p_1): Update call to modref_may_conflict.
11992 (call_may_clobber_ref_p_1): Update call to modref_may_conflict.
11993
11994 2020-09-24 Richard Sandiford <richard.sandiford@arm.com>
11995
11996 * config/arm/arm.md (*stack_protect_combined_set_insn): For non-PIC,
11997 load the address of the canary rather than the address of the
11998 constant pool entry that points to it.
11999 (*stack_protect_combined_test_insn): Likewise.
12000
12001 2020-09-24 Richard Biener <rguenther@suse.de>
12002
12003 PR tree-optimization/97085
12004 * match.pd (mask ? { false,..} : { true, ..} -> ~mask): New.
12005
12006 2020-09-24 Jan Hubicka <hubicka@ucw.cz>
12007
12008 * ipa-modref-tree.h (modref_base::collapse): Release memory.
12009 (modref_tree::create_ggc): New member function.
12010 (modref_tree::colapse): Release memory.
12011 (modref_tree::~modref_tree): New destructor.
12012 * ipa-modref.c (modref_summaries::create_ggc): New function.
12013 (analyze_function): Use create_ggc.
12014 (modref_summaries::duplicate): Likewise.
12015 (read_modref_records): Likewise.
12016 (modref_read): Likewise.
12017
12018 2020-09-24 Alan Modra <amodra@gmail.com>
12019
12020 * config/rs6000/rs6000.c (rs6000_rtx_costs): Pass mode to
12021 reg_or_add_cint_operand and reg_or_sub_cint_operand.
12022
12023 2020-09-24 Alan Modra <amodra@gmail.com>
12024
12025 PR target/93012
12026 * config/rs6000/rs6000.c (num_insns_constant_gpr): Count rldimi
12027 constants correctly.
12028
12029 2020-09-24 Alan Modra <amodra@gmail.com>
12030
12031 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
12032 Conditionally define __PCREL__.
12033
12034 2020-09-24 Alan Modra <amodra@gmail.com>
12035
12036 PR target/97107
12037 * config/rs6000/rs6000-internal.h (struct rs6000_stack): Improve
12038 calls_p comment.
12039 * config/rs6000/rs6000-logue.c (rs6000_stack_info): Likewise.
12040 (rs6000_expand_split_stack_prologue): Emit the prologue for
12041 functions that make a sibling call.
12042
12043 2020-09-24 David Malcolm <dmalcolm@redhat.com>
12044
12045 * doc/analyzer.texi (Analyzer Paths): Add note about
12046 -fno-analyzer-feasibility.
12047 * doc/invoke.texi (Static Analyzer Options): Add
12048 -fno-analyzer-feasibility.
12049
12050 2020-09-24 Paul A. Clarke <pc@us.ibm.com>
12051
12052 * doc/extend.texi: Add 'd' for doubleword variant of
12053 vector insert instruction.
12054
12055 2020-09-23 Martin Sebor <msebor@redhat.com>
12056
12057 * gimple-array-bounds.cc (build_zero_elt_array_type): New function.
12058 (array_bounds_checker::check_mem_ref): Call it.
12059
12060 2020-09-23 Martin Sebor <msebor@redhat.com>
12061
12062 PR middle-end/97175
12063 * builtins.c (maybe_warn_for_bound): Handle both DECLs and EXPRESSIONs
12064 in pad->dst.ref, same is pad->src.ref.
12065
12066 2020-09-23 Jan Hubicka <jh@suse.cz>
12067
12068 * ipa-fnsummary.c (refs_local_or_readonly_memory_p): New function.
12069 (points_to_local_or_readonly_memory_p): New function.
12070 * ipa-fnsummary.h (refs_local_or_readonly_memory_p): Declare.
12071 (points_to_local_or_readonly_memory_p): Declare.
12072 * ipa-modref.c (record_access_p): Use refs_local_or_readonly_memory_p.
12073 * ipa-pure-const.c (check_op): Likewise.
12074
12075 2020-09-23 Tom de Vries <tdevries@suse.de>
12076
12077 * config/nvptx/nvptx.md: Don't allow operand containing sum of
12078 function ref and const.
12079
12080 2020-09-23 Richard Sandiford <richard.sandiford@arm.com>
12081
12082 * config/aarch64/aarch64-protos.h (aarch64_salt_type): New enum.
12083 (aarch64_stack_protect_canary_mem): Declare.
12084 * config/aarch64/aarch64.md (UNSPEC_SALT_ADDR): New unspec.
12085 (stack_protect_set): Forward to stack_protect_combined_set.
12086 (stack_protect_combined_set): New pattern. Use
12087 aarch64_stack_protect_canary_mem.
12088 (reg_stack_protect_address_<mode>): Add a salt operand.
12089 (stack_protect_test): Forward to stack_protect_combined_test.
12090 (stack_protect_combined_test): New pattern. Use
12091 aarch64_stack_protect_canary_mem.
12092 * config/aarch64/aarch64.c (strip_salt): New function.
12093 (strip_offset_and_salt): Likewise.
12094 (tls_symbolic_operand_type): Use strip_offset_and_salt.
12095 (aarch64_stack_protect_canary_mem): New function.
12096 (aarch64_cannot_force_const_mem): Use strip_offset_and_salt.
12097 (aarch64_classify_address): Likewise.
12098 (aarch64_symbolic_address_p): Likewise.
12099 (aarch64_print_operand): Likewise.
12100 (aarch64_output_addr_const_extra): New function.
12101 (aarch64_tls_symbol_p): Use strip_salt.
12102 (aarch64_classify_symbol): Likewise.
12103 (aarch64_legitimate_pic_operand_p): Use strip_offset_and_salt.
12104 (aarch64_legitimate_constant_p): Likewise.
12105 (aarch64_mov_operand_p): Use strip_salt.
12106 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Override.
12107
12108 2020-09-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12109
12110 PR target/71233
12111 * config/aarch64/arm_neon.h (vreinterpretq_f64_p128,
12112 vreinterpretq_p128_f64): Define.
12113
12114 2020-09-23 Alex Coplan <alex.coplan@arm.com>
12115
12116 * config/arm/arm-cpus.in (neoverse-v1): New.
12117 * config/arm/arm-tables.opt: Regenerate.
12118 * config/arm/arm-tune.md: Regenerate.
12119 * doc/invoke.texi: Document support for Neoverse V1.
12120
12121 2020-09-23 Alex Coplan <alex.coplan@arm.com>
12122
12123 * config/aarch64/aarch64-cores.def: Add Neoverse V1.
12124 * config/aarch64/aarch64-tune.md: Regenerate.
12125 * doc/invoke.texi: Document support for Neoverse V1.
12126
12127 2020-09-23 Richard Biener <rguenther@suse.de>
12128
12129 PR middle-end/96453
12130 * gimple-isel.cc (gimple_expand_vec_cond_expr): Remove
12131 LT_EXPR -> NE_EXPR verification and also apply it for
12132 non-constant masks.
12133
12134 2020-09-23 Jan Hubicka <hubicka@ucw.cz>
12135
12136 * ipa-modref.c (modref_summary::lto_useful_p): New member function.
12137 (modref_summary::useful_p): New member function.
12138 (analyze_function): Drop useless summaries.
12139 (modref_write): Skip useless summaries.
12140 (pass_ipa_modref::execute): Drop useless summaries.
12141 * ipa-modref.h (struct GTY): Declare useful_p and lto_useful_p.
12142 * tree-ssa-alias.c (dump_alias_stats): Fix.
12143 (modref_may_conflict): Fix stats.
12144
12145 2020-09-23 Richard Biener <rguenther@suse.de>
12146
12147 PR middle-end/96466
12148 * internal-fn.c (expand_vect_cond_mask_optab_fn): Use
12149 appropriate mode for force_reg.
12150 * tree.c (build_truth_vector_type_for): Pass VOIDmode to
12151 make_vector_type.
12152
12153 2020-09-23 Richard Sandiford <richard.sandiford@arm.com>
12154
12155 * tree-vectorizer.h (determine_peel_for_niter): Delete in favor of...
12156 (vect_determine_partial_vectors_and_peeling): ...this new function.
12157 * tree-vect-loop-manip.c (vect_update_epilogue_niters): New function.
12158 Reject using vector epilogue loops for single iterations. Install
12159 the constant number of epilogue loop iterations in the associated
12160 loop_vinfo. Rely on vect_determine_partial_vectors_and_peeling
12161 to do the main part of the test.
12162 (vect_do_peeling): Use vect_update_epilogue_niters to handle
12163 epilogue loops with a known number of iterations. Skip recomputing
12164 the number of iterations later in that case. Otherwise, use
12165 vect_determine_partial_vectors_and_peeling to decide whether the
12166 epilogue loop needs to use partial vectors or peeling.
12167 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Set the
12168 default can_use_partial_vectors_p to false if partial-vector-usage=0.
12169 (determine_peel_for_niter): Remove in favor of...
12170 (vect_determine_partial_vectors_and_peeling): ...this new function,
12171 split out from...
12172 (vect_analyze_loop_2): ...here. Reflect the vect_verify_full_masking
12173 and vect_verify_loop_lens results in CAN_USE_PARTIAL_VECTORS_P
12174 rather than USING_PARTIAL_VECTORS_P.
12175
12176 2020-09-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12177
12178 PR target/71233
12179 * config/aarch64/aarch64-simd-builtins.def (frintn): Use BUILTIN_VHSDF_HSDF
12180 for modes. Remove explicit hf instantiation.
12181 * config/aarch64/arm_neon.h (vrndns_f32): Define.
12182
12183 2020-09-23 Richard Biener <rguenther@suse.de>
12184
12185 PR tree-optimization/97173
12186 * tree-vect-loop.c (vectorizable_live_operation): Extend
12187 assert to also conver element conversions.
12188
12189 2020-09-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12190
12191 PR target/71233
12192 * config/aarch64/arm_neon.h (vtrn1q_p64, vtrn2q_p64, vuzp1q_p64,
12193 vuzp2q_p64, vzip1q_p64, vzip2q_p64): Define.
12194
12195 2020-09-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12196
12197 PR target/71233
12198 * config/aarch64/arm_neon.h (vldrq_p128): Define.
12199
12200 2020-09-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12201
12202 PR target/71233
12203 * config/aarch64/arm_neon.h (vstrq_p128): Define.
12204
12205 2020-09-23 Richard Biener <rguenther@suse.de>
12206
12207 PR tree-optimization/97151
12208 * tree-ssa-structalias.c (find_func_aliases_for_call):
12209 DECL_IS_REPLACEABLE_OPERATOR_DELETE_P has no effect on
12210 arguments.
12211
12212 2020-09-23 Richard Biener <rguenther@suse.de>
12213
12214 PR middle-end/97162
12215 * alias.c (compare_base_decls): Use DECL_HARD_REGISTER
12216 and guard with VAR_P.
12217
12218 2020-09-23 Martin Liska <mliska@suse.cz>
12219
12220 PR gcov-profile/97069
12221 * profile.c (branch_prob): Line number must be at least 1.
12222
12223 2020-09-23 Tom de Vries <tdevries@suse.de>
12224
12225 PR target/97158
12226 * config/nvptx/nvptx.c (nvptx_output_mov_insn): Handle move from
12227 DF subreg to DF reg.
12228
12229 2020-09-23 David Malcolm <dmalcolm@redhat.com>
12230
12231 * Makefile.in: Add $(ZLIBINC) to CFLAGS-analyzer/engine.o.
12232
12233 2020-09-22 Jan Hubicka <jh@suse.cz>
12234
12235 * ipa-modref.c (analyze_stmt): Ignore gimple clobber.
12236
12237 2020-09-22 Jan Hubicka <jh@suse.cz>
12238
12239 * ipa-modref-tree.c: Add namespace selftest.
12240 (modref_tree_c_tests): Rename to ...
12241 (ipa_modref_tree_c_tests): ... this.
12242 * ipa-modref.c (pass_modref): Remove destructor.
12243 (ipa_modref_c_finalize): New function.
12244 * ipa-modref.h (ipa_modref_c_finalize): Declare.
12245 * selftest-run-tests.c (selftest::run_tests): Call
12246 ipa_modref_c_finalize.
12247 * selftest.h (ipa_modref_tree_c_tests): Declare.
12248 * toplev.c: Include ipa-modref-tree.h and ipa-modref.h
12249 (toplev::finalize): Call ipa_modref_c_finalize.
12250
12251 2020-09-22 David Malcolm <dmalcolm@redhat.com>
12252
12253 * doc/analyzer.texi (Other Debugging Techniques): Mention
12254 -fdump-analyzer-json.
12255 * doc/invoke.texi (Static Analyzer Options): Add
12256 -fdump-analyzer-json.
12257
12258 2020-09-22 David Faust <david.faust@oracle.com>
12259
12260 * config/bpf/bpf.md: Add defines for signed div and mod operators.
12261
12262 2020-09-22 Martin Liska <mliska@suse.cz>
12263
12264 PR tree-optimization/96979
12265 * doc/invoke.texi: Document new param max-switch-clustering-attempts.
12266 * params.opt: Add new parameter.
12267 * tree-switch-conversion.c (jump_table_cluster::find_jump_tables):
12268 Limit number of attempts.
12269 (bit_test_cluster::find_bit_tests): Likewise.
12270
12271 2020-09-22 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
12272
12273 * config/s390/s390.md ("*cmp<mode>_ccs_0", "*cmp<mode>_ccz_0",
12274 "*cmp<mode>_ccs_0_fastmath"): Basically change "*cmp<mode>_ccs_0" into
12275 "*cmp<mode>_ccz_0" and for fast math add "*cmp<mode>_ccs_0_fastmath".
12276
12277 2020-09-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12278
12279 PR target/71233
12280 * config/aarch64/arm_neon.h (vcls_u8, vcls_u16, vcls_u32,
12281 vclsq_u8, vclsq_u16, vclsq_u32): Define.
12282
12283 2020-09-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12284
12285 PR target/71233
12286 * config/aarch64/arm_neon.h (vceqq_p64, vceqz_p64, vceqzq_p64): Define.
12287
12288 2020-09-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12289
12290 PR target/71233
12291 * config/aarch64/arm_neon.h (vadd_p8, vadd_p16, vadd_p64, vaddq_p8,
12292 vaddq_p16, vaddq_p64, vaddq_p128): Define.
12293
12294 2020-09-22 Jakub Jelinek <jakub@redhat.com>
12295
12296 * params.opt (--param=modref-max-tests=): Fix typo in help text:
12297 perofmed -> performed.
12298 * common.opt: Fix typo: incrmeental -> incremental.
12299 * ipa-modref.c: Fix typos: recroding -> recording, becaue -> because,
12300 analsis -> analysis.
12301 (class modref_summaries): Fix typo: betweehn -> between.
12302 (analyze_call): Fix typo: calle -> callee.
12303 (read_modref_records): Fix typo: expcted -> expected.
12304 (pass_ipa_modref::execute): Fix typo: calle -> callee.
12305
12306 2020-09-22 Jakub Jelinek <jakub@redhat.com>
12307
12308 * common.opt (-fipa-modref): Add dot at the end of option help.
12309 * params.opt (--param=modref-max-tests=): Likewise.
12310
12311 2020-09-21 Marek Polacek <polacek@redhat.com>
12312
12313 * doc/invoke.texi: Document -Wctad-maybe-unsupported.
12314
12315 2020-09-21 Richard Biener <rguenther@suse.de>
12316
12317 PR tree-optimization/97139
12318 * tree-vect-slp.c (vect_bb_slp_mark_live_stmts): Only mark the
12319 pattern root, track visited vectorized stmts.
12320
12321 2020-09-21 Jakub Jelinek <jakub@redhat.com>
12322
12323 * configure.ac: Use mallinfo mallinfo2 as first operand of
12324 gcc_AC_CHECK_DECLS rather than [mallinfo, mallinfo2].
12325 * configure: Regenerated.
12326 * config.in: Regenerated.
12327
12328 2020-09-21 Andrea Corallo <andrea.corallo@arm.com>
12329
12330 * config/aarch64/aarch64-builtins.c
12331 (aarch64_general_expand_builtin): Use expand machinery not to
12332 alter the value of an rtx returned by force_reg.
12333
12334 2020-09-21 Richard Biener <rguenther@suse.de>
12335
12336 PR tree-optimization/97135
12337 * tree-ssa-loop-im.c (sm_seq_push_down): Do not ignore
12338 self-dependences.
12339
12340 2020-09-21 Martin Liska <mliska@suse.cz>
12341
12342 PR tree-optimization/96915
12343 * tree-switch-conversion.c (switch_conversion::expand): Accept
12344 also integer constants.
12345
12346 2020-09-21 Martin Liska <mliska@suse.cz>
12347
12348 * print-tree.c (print_node): Remove extra space.
12349
12350 2020-09-21 Andrea Corallo <andrea.corallo@arm.com>
12351
12352 PR target/96968
12353 * config/aarch64/aarch64-builtins.c
12354 (aarch64_expand_fpsr_fpcr_setter): Fix comment nit.
12355 (aarch64_expand_fpsr_fpcr_getter): New function, expand these
12356 getters using expand_insn machinery.
12357 (aarch64_general_expand_builtin): Make use of.
12358
12359 2020-09-21 Martin Liska <mliska@suse.cz>
12360
12361 * ggc-common.c (ggc_rlimit_bound): Use ONE_? macro.
12362 (ggc_min_expand_heuristic): Likewise.
12363 (ggc_min_heapsize_heuristic): Likewise.
12364 * ggc-page.c (ggc_collect): Likewise.
12365 * system.h (ONE_G): Likewise.
12366
12367 2020-09-21 Martin Liska <mliska@suse.cz>
12368
12369 * ggc-common.c (ggc_prune_overhead_list): Use SIZE_AMOUNT.
12370 * ggc-page.c (release_pages): Likewise.
12371 (ggc_collect): Likewise.
12372 (ggc_trim): Likewise.
12373 (ggc_grow): Likewise.
12374 * timevar.c (timer::print): Likewise.
12375
12376 2020-09-21 Martin Liska <mliska@suse.cz>
12377
12378 * config.in: Regenerate.
12379 * configure: Likewise.
12380 * configure.ac: Detect for mallinfo2.
12381 * ggc-common.c (defined): Use it.
12382 * system.h: Handle also HAVE_MALLINFO2.
12383
12384 2020-09-20 John David Anglin < danglin@gcc.gnu.org>
12385
12386 * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Delete.
12387 * config/pa/pa64-hpux.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
12388 (ENDFILE_SPEC): Link with libgcc_stub.a and mill.a.
12389 * config/pa/pa32-linux.h (ENDFILE_SPEC): Link with libgcc.a.
12390
12391 2020-09-20 Jan Hubicka <hubicka@ucw.cz>
12392
12393 * ipa-modref.c (dump_lto_records): Fix ICE.
12394
12395 2020-09-20 David Cepelik <d@dcepelik.cz>
12396 Jan Hubicka <hubicka@ucw.cz>
12397
12398 * Makefile.in: Add ipa-modref.c and ipa-modref-tree.c.
12399 * alias.c: (reference_alias_ptr_type_1): Export.
12400 * alias.h (reference_alias_ptr_type_1): Declare.
12401 * common.opt (fipa-modref): New.
12402 * gengtype.c (open_base_files): Add ipa-modref-tree.h and ipa-modref.h
12403 * ipa-modref-tree.c: New file.
12404 * ipa-modref-tree.h: New file.
12405 * ipa-modref.c: New file.
12406 * ipa-modref.h: New file.
12407 * lto-section-in.c (lto_section_name): Add ipa_modref.
12408 * lto-streamer.h (enum lto_section_type): Add LTO_section_ipa_modref.
12409 * opts.c (default_options_table): Enable ipa-modref at -O1+.
12410 * params.opt (-param=modref-max-bases, -param=modref-max-refs,
12411 -param=modref-max-tests): New params.
12412 * passes.def: Schedule pass_modref and pass_ipa_modref.
12413 * timevar.def (TV_IPA_MODREF): New timevar.
12414 (TV_TREE_MODREF): New timevar.
12415 * tree-pass.h (make_pass_modref): Declare.
12416 (make_pass_ipa_modref): Declare.
12417 * tree-ssa-alias.c (dump_alias_stats): Include ipa-modref-tree.h
12418 and ipa-modref.h
12419 (alias_stats): Add modref_use_may_alias, modref_use_no_alias,
12420 modref_clobber_may_alias, modref_clobber_no_alias, modref_tests.
12421 (dump_alias_stats): Dump new stats.
12422 (nonoverlapping_array_refs_p): Fix formating.
12423 (modref_may_conflict): New function.
12424 (ref_maybe_used_by_call_p_1): Use it.
12425 (call_may_clobber_ref_p_1): Use it.
12426 (call_may_clobber_ref_p): Update.
12427 (stmt_may_clobber_ref_p_1): Update.
12428 * tree-ssa-alias.h (call_may_clobber_ref_p_1): Update.
12429
12430 2020-09-19 Martin Sebor <msebor@redhat.com>
12431
12432 PR middle-end/82608
12433 PR middle-end/94195
12434 PR c/50584
12435 PR middle-end/84051
12436 * gimple-array-bounds.cc (get_base_decl): New function.
12437 (get_ref_size): New function.
12438 (trailing_array): New function.
12439 (array_bounds_checker::check_array_ref): Call them. Handle arrays
12440 declared in function parameters.
12441 (array_bounds_checker::check_mem_ref): Same. Handle references to
12442 dynamically allocated arrays.
12443
12444 2020-09-19 Martin Sebor <msebor@redhat.com>
12445
12446 PR c/50584
12447 * builtins.c (warn_for_access): Add argument. Distinguish between
12448 reads and writes.
12449 (check_access): Add argument. Distinguish between reads and writes.
12450 (gimple_call_alloc_size): Set range even on failure.
12451 (gimple_parm_array_size): New function.
12452 (compute_objsize): Call it.
12453 (check_memop_access): Pass check_access an additional argument.
12454 (expand_builtin_memchr, expand_builtin_strcat): Same.
12455 (expand_builtin_strcpy, expand_builtin_stpcpy_1): Same.
12456 (expand_builtin_stpncpy, check_strncat_sizes): Same.
12457 (expand_builtin_strncat, expand_builtin_strncpy): Same.
12458 (expand_builtin_memcmp): Same.
12459 * builtins.h (compute_objsize): Declare a new overload.
12460 (gimple_parm_array_size): Declare.
12461 (check_access): Add argument.
12462 * calls.c (append_attrname): Simplify.
12463 (maybe_warn_rdwr_sizes): Handle internal attribute access.
12464 * tree-ssa-uninit.c (maybe_warn_pass_by_reference): Avoid adding
12465 quotes.
12466
12467 2020-09-19 Martin Sebor <msebor@redhat.com>
12468
12469 * tree-ssa-uninit.c (maybe_warn_pass_by_reference): Handle attribute
12470 access internal representation of arrays.
12471
12472 2020-09-19 Martin Sebor <msebor@redhat.com>
12473
12474 PR c/50584
12475 * attribs.c (decl_attributes): Also pass decl along with type
12476 attributes to handlers.
12477 (init_attr_rdwr_indices): Change second argument to attribute chain.
12478 Handle internal attribute representation in addition to external.
12479 (get_parm_access): New function.
12480 (attr_access::to_internal_string): Define new member function.
12481 (attr_access::to_external_string): Define new member function.
12482 (attr_access::vla_bounds): Define new member function.
12483 * attribs.h (struct attr_access): Declare new members.
12484 (attr_access::from_mode_char): Define new member function.
12485 (get_parm_access): Declare new function.
12486 * calls.c (initialize_argument_information): Pass function type
12487 attributes to init_attr_rdwr_indices.
12488 * doc/invoke.texi (-Warray-parameter, -Wvla-parameter): Document.
12489 * tree-pretty-print.c (dump_generic_node): Correct handling of
12490 qualifiers.
12491 * tree-ssa-uninit.c (maybe_warn_pass_by_reference): Same.
12492 * tree.h (access_mode): Add new enumerator.
12493
12494 2020-09-19 Sandra Loosemore <sandra@codesourcery.com>
12495
12496 * doc/generic.texi (Basic Statements): Document SWITCH_EXPR here,
12497 not SWITCH_STMT.
12498 (Statements for C and C++): Rename node to reflect what
12499 the introduction already says about sharing between C and C++
12500 front ends. Copy-edit and correct documentation for structured
12501 loops and switch.
12502
12503 2020-09-19 liuhongt <hongtao.liu@intel.com>
12504
12505 PR target/96861
12506 * config/i386/x86-tune-costs.h (skylake_cost): increase rtx
12507 cost of sse_to_integer from 2 to 6.
12508
12509 2020-09-18 Sudi Das <sudi.das@arm.com>
12510 Omar Tahir <omar.tahir@arm.com>
12511
12512 * config/arm/thumb2.md (*thumb2_csneg): New.
12513 (*thumb2_negscc): Don't match if TARGET_COND_ARITH.
12514 * config/arm/arm.md (*if_neg_move): Don't match if TARGET_COND_ARITH.
12515
12516 2020-09-18 Sudi Das <sudi.das@arm.com>
12517 Omar Tahir <omar.tahir@arm.com>
12518
12519 * config/arm/thumb2.md (*thumb2_csinc): New.
12520 (*thumb2_cond_arith): Generate CINC where possible.
12521
12522 2020-09-18 Sudi Das <sudi.das@arm.com>
12523 Omar Tahir <omar.tahir@arm.com>
12524
12525 * config/arm/arm.h (TARGET_COND_ARITH): New macro.
12526 * config/arm/arm.c (arm_have_conditional_execution): Return false if
12527 TARGET_COND_ARITH before reload.
12528 * config/arm/predicates.md (arm_comparison_operation): Returns true if
12529 comparing CC_REGNUM with constant zero.
12530 * config/arm/thumb2.md (*thumb2_csinv): New.
12531 (*thumb2_movcond): Don't match if TARGET_COND_ARITH.
12532
12533 2020-09-18 Richard Sandiford <richard.sandiford@arm.com>
12534
12535 PR middle-end/91957
12536 * ira.c (ira_setup_eliminable_regset): Skip the special elimination
12537 handling of the hard frame pointer if the hard frame pointer is fixed.
12538
12539 2020-09-18 Richard Biener <rguenther@suse.de>
12540
12541 PR tree-optimization/97081
12542 * tree-vect-patterns.c (vect_recog_rotate_pattern): Use the
12543 precision of the shifted operand to determine the mask.
12544
12545 2020-09-18 Jozef Lawrynowicz <jozef.l@mittosystems.com>
12546
12547 * config/msp430/msp430.c (msp430_print_operand): Update comment.
12548 Cast to long when printing values formatted as long.
12549 Support 'd', 'e', 'f' and 'g' modifiers.
12550 Extract operand value with a single operation for all modifiers.
12551 * doc/extend.texi (msp430Operandmodifiers): New.
12552
12553 2020-09-18 Jozef Lawrynowicz <jozef.l@mittosystems.com>
12554
12555 * config/msp430/msp430.c (increment_stack): Mark insns which increment
12556 the stack as frame_related.
12557 (msp430_expand_prologue): Add comments.
12558 (msp430_expand_epilogue): Mark insns which decrement
12559 the stack as frame_related.
12560 Add reg_note to stack pop insns describing position of register
12561 variables on the stack.
12562
12563 2020-09-18 Andrew Stubbs <ams@codesourcery.com>
12564
12565 * config/gcn/gcn-tree.c (execute_omp_gcn): Delete.
12566 (make_pass_omp_gcn): Delete.
12567 * config/gcn/t-gcn-hsa (PASSES_EXTRA): Delete.
12568 * config/gcn/gcn-passes.def: Removed.
12569
12570 2020-09-18 Alex Coplan <alex.coplan@arm.com>
12571
12572 * cfgloop.h (nb_iter_bound): Reword comment describing is_exit.
12573
12574 2020-09-18 Richard Biener <rguenther@suse.de>
12575
12576 PR tree-optimization/97095
12577 * tree-vect-loop.c (vectorizable_live_operation): Get
12578 the SLP vector type from the correct object.
12579
12580 2020-09-18 Richard Biener <rguenther@suse.de>
12581
12582 PR tree-optimization/97089
12583 * tree-ssa-sccvn.c (visit_nary_op): Do not replace unsigned
12584 divisions.
12585
12586 2020-09-18 Richard Biener <rguenther@suse.de>
12587
12588 PR tree-optimization/97098
12589 * tree-vect-slp.c (vect_bb_slp_mark_live_stmts): Do not
12590 recurse to children when all stmts were already visited.
12591
12592 2020-09-17 Sergei Trofimovich <siarheit@google.com>
12593
12594 * profile.c (sort_hist_values): Clarify hist format:
12595 start with a value, not counter.
12596
12597 2020-09-17 Yeting Kuo <fakepaper56@gmail.com>
12598
12599 * config/riscv/riscv.h (CSW_MAX_OFFSET): Fix typo.
12600
12601 2020-09-17 Patrick Palka <ppalka@redhat.com>
12602
12603 PR c/80076
12604 * gensupport.c (alter_attrs_for_subst_insn) <case SET_ATTR>:
12605 Reduce indentation of misleadingly indented code fragment.
12606 * lra-constraints.c (multi_block_pseudo_p): Likewise.
12607 * sel-sched-ir.c (merge_fences): Likewise.
12608
12609 2020-09-17 Martin Sebor <msebor@redhat.com>
12610
12611 * doc/invoke.texi (-Wuninitialized): Document -Wuninitialized for
12612 allocated objects.
12613 (-Wmaybe-uninitialized): Same.
12614
12615 2020-09-17 Richard Biener <rguenther@suse.de>
12616
12617 * tree-ssa-sccvn.c (visit_nary_op): Value-number multiplications
12618 and divisions to negates of available negated forms.
12619
12620 2020-09-17 Eric Botcazou <ebotcazou@adacore.com>
12621
12622 PR middle-end/97078
12623 * function.c (use_register_for_decl): Test cfun->tail_call_marked
12624 for a parameter here instead of...
12625 (assign_parm_setup_reg): ...here.
12626
12627 2020-09-17 Aldy Hernandez <aldyh@redhat.com>
12628
12629 * range-op.cc (multi_precision_range_tests): Normalize symbolics when copying to a
12630 multi-range.
12631 * value-range.cc (irange::copy_legacy_range): Add test.
12632
12633 2020-09-17 Jan Hubicka <jh@suse.cz>
12634
12635 * cgraph.c (cgraph_node::get_availability): Fix availability of
12636 functions in other partitions
12637 * varpool.c (varpool_node::get_availability): Likewise.
12638
12639 2020-09-17 Jojo R <jiejie_rong@c-sky.com>
12640
12641 * config/csky/csky.opt (msim): New.
12642 * doc/invoke.texi (C-SKY Options): Document -msim.
12643 * config/csky/csky-elf.h (LIB_SPEC): Add simulator runtime.
12644
12645 2020-09-17 Sergei Trofimovich <siarheit@google.com>
12646
12647 * doc/cppenv.texi: Use @code{} instead of @samp{@command{}}
12648 around 'date %s'.
12649
12650 2020-09-17 liuhongt <hongtao.liu@intel.com>
12651
12652 * common/config/i386/i386-common.c
12653 (OPTION_MASK_ISA_AVX_UNSET): Remove OPTION_MASK_ISA_XSAVE_UNSET.
12654 (OPTION_MASK_ISA_XSAVE_UNSET): Add OPTION_MASK_ISA_AVX_UNSET.
12655
12656 2020-09-16 Alexandre Oliva <oliva@adacore.com>
12657
12658 * config/rs6000/rs6000.c (have_compare_and_set_mask): Use
12659 E_*mode in cases.
12660
12661 2020-09-16 Bill Schmidt <wschmidt@linux.ibm.com>
12662
12663 * config/rs6000/predicates.md (current_file_function_operand):
12664 Remove argument from rs6000_pcrel_p call.
12665 * config/rs6000/rs6000-logue.c (rs6000_decl_ok_for_sibcall):
12666 Likewise.
12667 (rs6000_global_entry_point_prologue_needed_p): Likewise.
12668 (rs6000_output_function_prologue): Likewise.
12669 * config/rs6000/rs6000-protos.h (rs6000_function_pcrel_p): New
12670 prototype.
12671 (rs6000_pcrel_p): Remove argument.
12672 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Remove
12673 argument from rs6000_pcrel_p call.
12674 (rs6000_call_template_1): Likewise.
12675 (rs6000_indirect_call_template_1): Likewise.
12676 (rs6000_longcall_ref): Likewise.
12677 (rs6000_call_aix): Likewise.
12678 (rs6000_sibcall_aix): Likewise.
12679 (rs6000_function_pcrel_p): Rename from rs6000_pcrel_p.
12680 (rs6000_pcrel_p): Rewrite.
12681 * config/rs6000/rs6000.md (*pltseq_plt_pcrel<mode>): Remove
12682 argument from rs6000_pcrel_p call.
12683 (*call_local<mode>): Likewise.
12684 (*call_value_local<mode>): Likewise.
12685 (*call_nonlocal_aix<mode>): Likewise.
12686 (*call_value_nonlocal_aix<mode>): Likewise.
12687 (*call_indirect_pcrel<mode>): Likewise.
12688 (*call_value_indirect_pcrel<mode>): Likewise.
12689
12690 2020-09-16 Marek Polacek <polacek@redhat.com>
12691
12692 PR preprocessor/96935
12693 * input.c (get_substring_ranges_for_loc): Return if start.column
12694 is less than 1.
12695
12696 2020-09-16 Martin Sebor <msebor@redhat.com>
12697
12698 PR middle-end/96295
12699 * tree-ssa-uninit.c (maybe_warn_operand): Work harder to avoid
12700 warning for objects of empty structs
12701
12702 2020-09-16 Eric Botcazou <ebotcazou@adacore.com>
12703
12704 * tree-eh.c (lower_try_finally_dup_block): Backward propagate slocs
12705 to stack restore builtin calls.
12706 (cleanup_all_empty_eh): Do again a post-order traversal of the EH
12707 region tree.
12708
12709 2020-09-16 Andrea Corallo <andrea.corallo@arm.com>
12710
12711 * tree-vect-loop.c (vect_need_peeling_or_partial_vectors_p): New
12712 function.
12713 (vect_analyze_loop_2): Make use of it not to select partial
12714 vectors if no peel is required.
12715 (determine_peel_for_niter): Move out some logic into
12716 'vect_need_peeling_or_partial_vectors_p'.
12717
12718 2020-09-16 H.J. Lu <hjl.tools@gmail.com>
12719
12720 PR target/97032
12721 * cfgexpand.c (asm_clobber_reg_kind): Set sp_is_clobbered_by_asm
12722 to true if the stack pointer is clobbered by asm statement.
12723 * emit-rtl.h (rtl_data): Add sp_is_clobbered_by_asm.
12724 * config/i386/i386.c (ix86_get_drap_rtx): Set need_drap to true
12725 if the stack pointer is clobbered by asm statement.
12726
12727 2020-09-16 Ilya Leoshkevich <iii@linux.ibm.com>
12728
12729 * config/s390/vector.md(*vec_tf_to_v1tf): Use "f" instead of "v"
12730 for the source operand.
12731
12732 2020-09-16 Jojo R <jiejie_rong@c-sky.com>
12733
12734 * config.gcc (C-SKY): Set use_gcc_stdint=wrap for elf target.
12735
12736 2020-09-16 Richard Biener <rguenther@suse.de>
12737
12738 * tree-vectorizer.h (_stmt_vec_info::num_slp_uses): Remove.
12739 (STMT_VINFO_NUM_SLP_USES): Likewise.
12740 (vect_free_slp_instance): Adjust.
12741 (vect_update_shared_vectype): Declare.
12742 * tree-vectorizer.c (vec_info::~vec_info): Adjust.
12743 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
12744 (vectorizable_live_operation): Use vector type from
12745 SLP_TREE_REPRESENTATIVE.
12746 (vect_transform_loop): Adjust.
12747 * tree-vect-data-refs.c (vect_slp_analyze_node_alignment):
12748 Set the shared vector type.
12749 * tree-vect-slp.c (vect_free_slp_tree): Remove final_p
12750 parameter, remove STMT_VINFO_NUM_SLP_USES updating.
12751 (vect_free_slp_instance): Adjust.
12752 (vect_create_new_slp_node): Remove STMT_VINFO_NUM_SLP_USES
12753 updating.
12754 (vect_update_shared_vectype): Always compare with the
12755 present vector type, update if NULL.
12756 (vect_build_slp_tree_1): Do not update the shared vector
12757 type here.
12758 (vect_build_slp_tree_2): Adjust.
12759 (slp_copy_subtree): Likewise.
12760 (vect_attempt_slp_rearrange_stmts): Likewise.
12761 (vect_analyze_slp_instance): Likewise.
12762 (vect_analyze_slp): Likewise.
12763 (vect_slp_analyze_node_operations_1): Update the shared
12764 vector type.
12765 (vect_slp_analyze_operations): Adjust.
12766 (vect_slp_analyze_bb_1): Likewise.
12767
12768 2020-09-16 Jojo R <jiejie_rong@c-sky.com>
12769
12770 * config/csky/t-csky-linux (CSKY_MULTILIB_OSDIRNAMES): Use mfloat-abi.
12771 (MULTILIB_OPTIONS): Likewise.
12772 * config/csky/t-csky-elf (MULTILIB_OPTIONS): Likewise.
12773 (MULTILIB_EXCEPTIONS): Likewise.
12774
12775 2020-09-16 Jakub Jelinek <jakub@redhat.com>
12776
12777 * config/arm/arm.c (arm_option_restore): Comment out opts argument
12778 name to avoid unused parameter warnings.
12779
12780 2020-09-16 Jakub Jelinek <jakub@redhat.com>
12781
12782 * optc-save-gen.awk: In cl_optimization_stream_out use
12783 bp_pack_var_len_{int,unsigned} instead of bp_pack_value. In
12784 cl_optimization_stream_in use bp_unpack_var_len_{int,unsigned}
12785 instead of bp_unpack_value. Formatting fix.
12786
12787 2020-09-16 Jakub Jelinek <jakub@redhat.com>
12788
12789 PR tree-optimization/97053
12790 * gimple-ssa-store-merging.c (check_no_overlap): Add FIRST_ORDER,
12791 START, FIRST_EARLIER and LAST_EARLIER arguments. Return false if
12792 any stores between FIRST_EARLIER inclusive and LAST_EARLIER exclusive
12793 has order in between FIRST_ORDER and LAST_ORDER and overlaps the to
12794 be merged store.
12795 (imm_store_chain_info::try_coalesce_bswap): Add FIRST_EARLIER argument.
12796 Adjust check_no_overlap caller.
12797 (imm_store_chain_info::coalesce_immediate_stores): Add first_earlier
12798 and last_earlier variables, adjust them during iterations. Adjust
12799 check_no_overlap callers, call check_no_overlap even when extending
12800 overlapping stores by extra INTEGER_CST stores.
12801
12802 2020-09-16 Jojo R <jiejie_rong@c-sky.com>
12803
12804 * config/csky/csky-linux-elf.h (GLIBC_DYNAMIC_LINKER): Use mfloat-abi.
12805
12806 2020-09-16 Kewen Lin <linkw@linux.ibm.com>
12807
12808 PR target/97019
12809 * config/rs6000/rs6000-p8swap.c (find_alignment_op): Adjust to
12810 support multiple defintions which are all AND operations with
12811 the mask -16B.
12812 (recombine_lvx_pattern): Adjust to handle multiple AND operations
12813 from find_alignment_op.
12814 (recombine_stvx_pattern): Likewise.
12815
12816 2020-09-16 Jojo R <jiejie_rong@c-sky.com>
12817
12818 * config/csky/csky.md (CSKY_NPARM_FREGS): New.
12819 (call_value_internal_vs/d): New.
12820 (untyped_call): New.
12821 * config/csky/csky.h (TARGET_SINGLE_FPU): New.
12822 (TARGET_DOUBLE_FPU): New.
12823 (FUNCTION_VARG_REGNO_P): New.
12824 (CSKY_VREG_MODE_P): New.
12825 (FUNCTION_VARG_MODE_P): New.
12826 (CUMULATIVE_ARGS): Add extra regs info.
12827 (INIT_CUMULATIVE_ARGS): Use csky_init_cumulative_args.
12828 (FUNCTION_ARG_REGNO_P): Use FUNCTION_VARG_REGNO_P.
12829 * config/csky/csky-protos.h (csky_init_cumulative_args): Extern.
12830 * config/csky/csky.c (csky_cpu_cpp_builtins): Support TARGET_HARD_FLOAT_ABI.
12831 (csky_function_arg): Likewise.
12832 (csky_num_arg_regs): Likewise.
12833 (csky_function_arg_advance): Likewise.
12834 (csky_function_value): Likewise.
12835 (csky_libcall_value): Likewise.
12836 (csky_function_value_regno_p): Likewise.
12837 (csky_arg_partial_bytes): Likewise.
12838 (csky_setup_incoming_varargs): Likewise.
12839 (csky_init_cumulative_args): New.
12840
12841 2020-09-16 Bill Schmidt <wschmidt@linux.ibm.com>
12842
12843 * config/rs6000/rs6000-call.c (altivec_init_builtins): Fix name
12844 of __builtin_altivec_xst_len_r.
12845
12846 2020-09-15 Ilya Leoshkevich <iii@linux.ibm.com>
12847
12848 * rtlanal.c (set_noop_p): Treat subregs of registers in
12849 different modes conservatively.
12850
12851 2020-09-15 Richard Biener <rguenther@suse.de>
12852
12853 * tree-vect-slp.c (vect_get_and_check_slp_defs): Make swap
12854 argument by-value and do not change it.
12855 (vect_build_slp_tree_2): Adjust, set swap to NULL after last
12856 use.
12857
12858 2020-09-15 Feng Xue <fxue@os.amperecomputing.com>
12859
12860 PR tree-optimization/94234
12861 * match.pd (T)(A) +- (T)(B) -> (T)(A +- B): New simplification.
12862
12863 2020-09-15 Segher Boessenkool <segher@kernel.crashing.org>
12864
12865 PR rtl-optimization/96475
12866 * bb-reorder.c (duplicate_computed_gotos): If we did anything, run
12867 cleanup_cfg.
12868
12869 2020-09-15 Richard Biener <rguenther@suse.de>
12870
12871 * tree-vect-slp.c (vect_build_slp_tree_2): Also consider
12872 building an operand from scalars when building it did not
12873 fail fatally but avoid messing with the upcall splitting
12874 of groups.
12875
12876 2020-09-15 Andre Vieira <andre.simoesdiasvieira@arm.com>
12877
12878 * config/arm/arm.c (arm_options_perform_arch_sanity_checks): Do not
12879 check +D32 for CMSE if -mfloat-abi=soft
12880
12881 2020-09-15 liuhongt <hongtao.liu@intel.com>
12882
12883 PR target/96744
12884 * config/i386/x86-tune-costs.h (struct processor_costs):
12885 Increase mask <-> integer cost for non AVX512 target to avoid
12886 spill gpr to mask. Also retune mask <-> integer and
12887 mask_load/store for skylake_cost.
12888
12889 2020-09-15 Jakub Jelinek <jakub@redhat.com>
12890
12891 PR target/97028
12892 * config/i386/sse.md (mul<mode>3<mask_name>_bcs,
12893 <avx512>_div<mode>3<mask_name>_bcst): Use <avx512bcst> instead of
12894 <<avx512bcst>>.
12895
12896 2020-09-15 Tobias Burnus <tobias@codesourcery.com>
12897
12898 PR fortran/96668
12899 * gimplify.c (gimplify_omp_for): Add 'bool openacc' argument;
12900 update omp_finish_clause calls.
12901 (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses,
12902 gimplify_expr, gimplify_omp_loop): Update omp_finish_clause
12903 and/or gimplify_for calls.
12904 * langhooks-def.h (lhd_omp_finish_clause): Add bool openacc arg.
12905 * langhooks.c (lhd_omp_finish_clause): Likewise.
12906 * langhooks.h (lhd_omp_finish_clause): Likewise.
12907 * omp-low.c (scan_sharing_clauses): Keep GOMP_MAP_TO_PSET cause for
12908 'declare target' vars.
12909
12910 2020-09-15 Feng Xue <fxue@os.amperecomputing.com>
12911
12912 PR tree-optimization/94234
12913 * genmatch.c (dt_simplify::gen_1): Emit check on final simplification
12914 result when "!" is specified on toplevel output expr.
12915 * match.pd ((A * C) +- (B * C) -> (A +- B) * C): Allow folding on expr
12916 with multi-use operands if final result is a simple gimple value.
12917
12918 2020-09-14 Sergei Trofimovich <siarheit@google.com>
12919
12920 * doc/invoke.texi: fix '-fprofile-reproducibility' option
12921 spelling in manual.
12922
12923 2020-09-14 Jose E. Marchesi <jose.marchesi@oracle.com>
12924
12925 * config/bpf/bpf.md ("nop"): Re-define as `ja 0'.
12926
12927 2020-09-14 Eric Botcazou <ebotcazou@adacore.com>
12928
12929 * cgraphunit.c (cgraph_node::expand_thunk): Make sure to set
12930 cfun->tail_call_marked when forcing a tail call.
12931 * function.c (assign_parm_setup_reg): Always use a register to
12932 load a parameter passed by reference if cfun->tail_call_marked.
12933
12934 2020-09-14 Pat Haugen <pthaugen@linux.ibm.com>
12935
12936 * config/rs6000/power10.md (power10-mffgpr, power10-mftgpr): Rename to
12937 power10-mtvsr/power10-mfvsr.
12938 * config/rs6000/power6.md (X2F_power6, power6-mftgpr, power6-mffgpr):
12939 Remove.
12940 * config/rs6000/power8.md (power8-mffgpr, power8-mftgpr): Rename to
12941 power8-mtvsr/power8-mfvsr.
12942 * config/rs6000/power9.md (power9-mffgpr, power9-mftgpr): Rename to
12943 power9-mtvsr/power9-mfvsr.
12944 * config/rs6000/rs6000.c (rs6000_adjust_cost): Remove Power6
12945 TYPE_MFFGPR cases.
12946 * config/rs6000/rs6000.md (mffgpr, mftgpr, zero_extendsi<mode>2,
12947 extendsi<mode>2, @signbit<mode>2_dm, lfiwax, lfiwzx, *movsi_internal1,
12948 movsi_from_sf, *movdi_from_sf_zero_ext, *mov<mode>_internal,
12949 movsd_hardfloat, movsf_from_si, *mov<mode>_hardfloat64, p8_mtvsrwz,
12950 p8_mtvsrd_df, p8_mtvsrd_sf, p8_mfvsrd_3_<mode>, *movdi_internal64,
12951 unpack<mode>_dm): Rename mffgpr/mftgpr to mtvsr/mfvsr.
12952 * config/rs6000/vsx.md (vsx_mov<mode>_64bit, vsx_extract_<mode>,
12953 vsx_extract_si, *vsx_extract_<mode>_p8): Likewise.
12954
12955 2020-09-14 Jakub Jelinek <jakub@redhat.com>
12956
12957 * config/arm/arm.opt (x_arm_arch_string, x_arm_cpu_string,
12958 x_arm_tune_string): Remove TargetSave entries.
12959 (march=, mcpu=, mtune=): Add Save keyword.
12960 * config/arm/arm.c (arm_option_save): Remove.
12961 (TARGET_OPTION_SAVE): Don't redefine.
12962 (arm_option_restore): Don't restore x_arm_*_string here.
12963
12964 2020-09-14 Jakub Jelinek <jakub@redhat.com>
12965
12966 * opt-read.awk: Also initialize extra_target_var_types array.
12967 * opth-gen.awk: Emit explicit_mask arrays to struct cl_optimization
12968 and cl_target_option. Adjust cl_optimization_save,
12969 cl_optimization_restore, cl_target_option_save and
12970 cl_target_option_restore declarations.
12971 * optc-save-gen.awk: Add opts_set argument to cl_optimization_save,
12972 cl_optimization_restore, cl_target_option_save and
12973 cl_target_option_restore functions and save or restore opts_set
12974 next to the opts values into or from explicit_mask arrays.
12975 In cl_target_option_eq and cl_optimization_option_eq compare
12976 explicit_mask arrays, in cl_target_option_hash and cl_optimization_hash
12977 hash them and in cl_target_option_stream_out,
12978 cl_target_option_stream_in, cl_optimization_stream_out and
12979 cl_optimization_stream_in stream them.
12980 * tree.h (build_optimization_node, build_target_option_node): Add
12981 opts_set argument.
12982 * tree.c (build_optimization_node): Add opts_set argument, pass it
12983 to cl_optimization_save.
12984 (build_target_option_node): Add opts_set argument, pass it to
12985 cl_target_option_save.
12986 * function.c (invoke_set_current_function_hook): Adjust
12987 cl_optimization_restore caller.
12988 * ipa-inline-transform.c (inline_call): Adjust cl_optimization_restore
12989 and build_optimization_node callers.
12990 * target.def (TARGET_OPTION_SAVE, TARGET_OPTION_RESTORE): Add opts_set
12991 argument.
12992 * target-globals.c (save_target_globals_default_opts): Adjust
12993 cl_optimization_restore callers.
12994 * toplev.c (process_options): Adjust build_optimization_node and
12995 cl_optimization_restore callers.
12996 (target_reinit): Adjust cl_optimization_restore caller.
12997 * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers):
12998 Adjust build_optimization_node and cl_optimization_restore callers.
12999 * doc/tm.texi: Updated.
13000 * config/aarch64/aarch64.c (aarch64_override_options): Adjust
13001 build_target_option_node caller.
13002 (aarch64_option_save, aarch64_option_restore): Add opts_set argument.
13003 (aarch64_set_current_function): Adjust cl_target_option_restore
13004 caller.
13005 (aarch64_option_valid_attribute_p): Adjust cl_target_option_save,
13006 cl_target_option_restore, cl_optimization_restore,
13007 build_optimization_node and build_target_option_node callers.
13008 * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse): Adjust
13009 cl_target_option_restore and build_target_option_node callers.
13010 * config/arm/arm.c (arm_option_save, arm_option_restore): Add
13011 opts_set argument.
13012 (arm_option_override): Adjust cl_target_option_save,
13013 build_optimization_node and build_target_option_node callers.
13014 (arm_set_current_function): Adjust cl_target_option_restore caller.
13015 (arm_valid_target_attribute_tree): Adjust build_target_option_node
13016 caller.
13017 (add_attribute): Formatting fix.
13018 (arm_valid_target_attribute_p): Adjust cl_optimization_restore,
13019 cl_target_option_restore, arm_valid_target_attribute_tree and
13020 build_optimization_node callers.
13021 * config/arm/arm-c.c (arm_pragma_target_parse): Adjust
13022 cl_target_option_restore callers.
13023 * config/csky/csky.c (csky_option_override): Adjust
13024 build_target_option_node and cl_target_option_save callers.
13025 * config/gcn/gcn.c (gcn_fixup_accel_lto_options): Adjust
13026 build_optimization_node and cl_optimization_restore callers.
13027 * config/i386/i386-builtins.c (get_builtin_code_for_version):
13028 Adjust cl_target_option_save and cl_target_option_restore
13029 callers.
13030 * config/i386/i386-c.c (ix86_pragma_target_parse): Adjust
13031 build_target_option_node and cl_target_option_restore callers.
13032 * config/i386/i386-options.c (ix86_function_specific_save,
13033 ix86_function_specific_restore): Add opts_set arguments.
13034 (ix86_valid_target_attribute_tree): Adjust build_target_option_node
13035 caller.
13036 (ix86_valid_target_attribute_p): Adjust build_optimization_node,
13037 cl_optimization_restore, cl_target_option_restore,
13038 ix86_valid_target_attribute_tree and build_optimization_node callers.
13039 (ix86_option_override_internal): Adjust build_target_option_node
13040 caller.
13041 (ix86_reset_previous_fndecl, ix86_set_current_function): Adjust
13042 cl_target_option_restore callers.
13043 * config/i386/i386-options.h (ix86_function_specific_save,
13044 ix86_function_specific_restore): Add opts_set argument.
13045 * config/nios2/nios2.c (nios2_option_override): Adjust
13046 build_target_option_node caller.
13047 (nios2_option_save, nios2_option_restore): Add opts_set argument.
13048 (nios2_valid_target_attribute_tree): Adjust build_target_option_node
13049 caller.
13050 (nios2_valid_target_attribute_p): Adjust build_optimization_node,
13051 cl_optimization_restore, cl_target_option_save and
13052 cl_target_option_restore callers.
13053 (nios2_set_current_function, nios2_pragma_target_parse): Adjust
13054 cl_target_option_restore callers.
13055 * config/pru/pru.c (pru_option_override): Adjust
13056 build_target_option_node caller.
13057 (pru_set_current_function): Adjust cl_target_option_restore
13058 callers.
13059 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust
13060 cl_target_option_save caller.
13061 (rs6000_option_override_internal): Adjust build_target_option_node
13062 caller.
13063 (rs6000_valid_attribute_p): Adjust build_optimization_node,
13064 cl_optimization_restore, cl_target_option_save,
13065 cl_target_option_restore and build_target_option_node callers.
13066 (rs6000_pragma_target_parse): Adjust cl_target_option_restore and
13067 build_target_option_node callers.
13068 (rs6000_activate_target_options): Adjust cl_target_option_restore
13069 callers.
13070 (rs6000_function_specific_save, rs6000_function_specific_restore):
13071 Add opts_set argument.
13072 * config/s390/s390.c (s390_function_specific_restore): Likewise.
13073 (s390_option_override_internal): Adjust s390_function_specific_restore
13074 caller.
13075 (s390_option_override, s390_valid_target_attribute_tree): Adjust
13076 build_target_option_node caller.
13077 (s390_valid_target_attribute_p): Adjust build_optimization_node,
13078 cl_optimization_restore and cl_target_option_restore callers.
13079 (s390_activate_target_options): Adjust cl_target_option_restore
13080 caller.
13081 * config/s390/s390-c.c (s390_cpu_cpp_builtins): Adjust
13082 cl_target_option_save caller.
13083 (s390_pragma_target_parse): Adjust build_target_option_node and
13084 cl_target_option_restore callers.
13085
13086 2020-09-13 Roger Sayle <roger@nextmovesoftware.com>
13087
13088 * config/pa/pa.c (hppa_rtx_costs) [ASHIFT, ASHIFTRT, LSHIFTRT]:
13089 Provide accurate costs for DImode shifts of integer constants.
13090
13091 2020-09-12 Roger Sayle <roger@nextmovesoftware.com>
13092 John David Anglin <danglin@gcc.gnu.org>
13093
13094 * config/pa/pa.md (shrpsi4_1, shrpsi4_2): New define_insns split
13095 out from previous shrpsi4 providing two commutitive variants using
13096 plus_xor_ior_operator as a predicate.
13097 (shrpdi4_1, shrpdi4_2, shrpdi_3, shrpdi_4): Likewise DImode versions
13098 where _1 and _2 take register shifts, and _3 and _4 for integers.
13099 (rotlsi3_internal): Name this anonymous instruction.
13100 (rotrdi3): New DImode insn copied from rotrsi3.
13101 (rotldi3): New DImode expander copied from rotlsi3.
13102 (rotldi4_internal): New DImode insn copied from rotsi3_internal.
13103
13104 2020-09-11 Michael Meissner <meissner@linux.ibm.com>
13105
13106 * config/rs6000/rs6000.c (rs6000_maybe_emit_maxc_minc): Rename
13107 from rs6000_emit_p9_fp_minmax. Change return type to bool. Add
13108 comments to document NaN/signed zero behavior.
13109 (rs6000_maybe_emit_fp_cmove): Rename from rs6000_emit_p9_fp_cmove.
13110 (have_compare_and_set_mask): New helper function.
13111 (rs6000_emit_cmove): Update calls to new names and the new helper
13112 function.
13113
13114 2020-09-11 Nathan Sidwell <nathan@acm.org>
13115
13116 * config/i386/sse.md (mov<mode>): Fix operand indices.
13117
13118 2020-09-11 Martin Sebor <msebor@redhat.com>
13119
13120 PR middle-end/96903
13121 * builtins.c (compute_objsize): Remove incorrect offset adjustment.
13122 (compute_objsize): Adjust offset range here instead.
13123
13124 2020-09-11 Richard Biener <rguenther@suse.de>
13125
13126 PR tree-optimization/97020
13127 * tree-vect-slp.c (vect_slp_analyze_operations): Apply
13128 SLP costs when doing loop vectorization.
13129
13130 2020-09-11 Tom de Vries <tdevries@suse.de>
13131
13132 PR target/96964
13133 * config/nvptx/nvptx.md (define_expand "atomic_test_and_set"): New
13134 expansion.
13135
13136 2020-09-11 Andrew Stubbs <ams@codesourcery.com>
13137
13138 * config/gcn/gcn.c (gcn_hard_regno_mode_ok): Align TImode registers.
13139 * config/gcn/gcn.md: Assert that TImode registers do not early clobber.
13140
13141 2020-09-11 Richard Biener <rguenther@suse.de>
13142
13143 * tree-vectorizer.h (_slp_instance::location): New method.
13144 (vect_schedule_slp): Adjust prototype.
13145 * tree-vectorizer.c (vec_info::remove_stmt): Adjust
13146 the BB region begin if we removed the stmt it points to.
13147 * tree-vect-loop.c (vect_transform_loop): Adjust.
13148 * tree-vect-slp.c (_slp_instance::location): Implement.
13149 (vect_analyze_slp_instance): For BB vectorization set
13150 vect_location to that of the instance.
13151 (vect_slp_analyze_operations): Likewise.
13152 (vect_bb_vectorization_profitable_p): Remove wrapper.
13153 (vect_slp_analyze_bb_1): Remove cost check here.
13154 (vect_slp_region): Cost check and code generate subgraphs separately,
13155 report optimized locations and missed optimizations due to
13156 profitability for each of them.
13157 (vect_schedule_slp): Get the vector of SLP graph entries to
13158 vectorize as argument.
13159
13160 2020-09-11 Richard Biener <rguenther@suse.de>
13161
13162 PR tree-optimization/97013
13163 * tree-vect-slp.c (vect_slp_analyze_bb_1): Remove duplicate dumping.
13164
13165 2020-09-11 Richard Biener <rguenther@suse.de>
13166
13167 * tree-vect-slp.c (vect_build_slp_tree_1): Check vector
13168 types for all lanes are compatible.
13169 (vect_analyze_slp_instance): Appropriately check for stores.
13170 (vect_schedule_slp): Likewise.
13171
13172 2020-09-11 Tom de Vries <tdevries@suse.de>
13173
13174 * config/nvptx/nvptx.c (nvptx_assemble_value): Fix undefined
13175 behaviour.
13176
13177 2020-09-11 Tom de Vries <tdevries@suse.de>
13178
13179 * config/nvptx/nvptx.c (nvptx_assemble_value): Handle negative
13180 __int128.
13181
13182 2020-09-11 Aaron Sawdey <acsawdey@linux.ibm.com>
13183
13184 * config/rs6000/rs6000.c (rs6000_option_override_internal):
13185 Change default.
13186
13187 2020-09-10 Michael Meissner <meissner@linux.ibm.com>
13188
13189 * config/rs6000/rs6000-protos.h (rs6000_emit_cmove): Change return
13190 type to bool.
13191 (rs6000_emit_int_cmove): Change return type to bool.
13192 * config/rs6000/rs6000.c (rs6000_emit_cmove): Change return type
13193 to bool.
13194 (rs6000_emit_int_cmove): Change return type to bool.
13195
13196 2020-09-10 Tom de Vries <tdevries@suse.de>
13197
13198 PR target/97004
13199 * config/nvptx/nvptx.c (nvptx_assemble_value): Handle shift by
13200 number of bits in shift operand.
13201
13202 2020-09-10 Jakub Jelinek <jakub@redhat.com>
13203
13204 * lto-streamer-out.c (collect_block_tree_leafs): Recurse on
13205 root rather than BLOCK_SUBBLOCKS (root).
13206
13207 2020-09-10 Alex Coplan <alex.coplan@arm.com>
13208
13209 * config/aarch64/aarch64-cores.def: Add Cortex-R82.
13210 * config/aarch64/aarch64-tune.md: Regenerate.
13211 * doc/invoke.texi: Add entry for Cortex-R82.
13212
13213 2020-09-10 Alex Coplan <alex.coplan@arm.com>
13214
13215 * common/config/aarch64/aarch64-common.c
13216 (aarch64_get_extension_string_for_isa_flags): Don't force +crc for
13217 Armv8-R.
13218 * config/aarch64/aarch64-arches.def: Add entry for Armv8-R.
13219 * config/aarch64/aarch64-c.c (aarch64_define_unconditional_macros): Set
13220 __ARM_ARCH_PROFILE correctly for Armv8-R.
13221 * config/aarch64/aarch64.h (AARCH64_FL_V8_R): New.
13222 (AARCH64_FL_FOR_ARCH8_R): New.
13223 (AARCH64_ISA_V8_R): New.
13224 * doc/invoke.texi: Add Armv8-R to architecture table.
13225
13226 2020-09-10 Jakub Jelinek <jakub@redhat.com>
13227
13228 * config/arm/arm.c (arm_override_options_after_change_1): Add opts_set
13229 argument, test opts_set->x_str_align_functions rather than
13230 opts->x_str_align_functions.
13231 (arm_override_options_after_change, arm_option_override_internal,
13232 arm_set_current_function): Adjust callers.
13233
13234 2020-09-10 Jakub Jelinek <jakub@redhat.com>
13235
13236 PR target/96939
13237 * config/arm/arm.c (arm_override_options_after_change): Don't call
13238 arm_configure_build_target here.
13239 (arm_set_current_function): Call arm_override_options_after_change_1
13240 at the end.
13241
13242 2020-09-10 Pat Haugen <pthaugen@linux.ibm.com>
13243
13244 * config/rs6000/rs6000.md
13245 (lfiwzx, floatunssi<mode>2_lfiwzx, p8_mtvsrwz, p8_mtvsrd_sf): Fix insn
13246 type.
13247 * config/rs6000/vsx.md
13248 (vsx_concat_<mode>, vsx_splat_<mode>_reg, vsx_splat_v4sf): Likewise.
13249
13250 2020-09-10 Jonathan Yong <10walls@gmail.com>
13251
13252 * config.host: Adjust plugin name for Windows.
13253
13254 2020-09-10 Tom de Vries <tdevries@suse.de>
13255
13256 PR tree-optimization/97000
13257 * tree-cfgcleanup.c (cleanup_call_ctrl_altering_flag): Don't clear
13258 flag for IFN_UNIQUE.
13259
13260 2020-09-10 Jakub Jelinek <jakub@redhat.com>
13261
13262 PR debug/93865
13263 * lto-streamer.h (struct output_block): Add emit_pwd member.
13264 * lto-streamer-out.c: Include toplev.h.
13265 (clear_line_info): Set emit_pwd.
13266 (lto_output_location_1): Encode the ob->current_file != xloc.file
13267 bit directly into the location number. If changing file, emit
13268 additionally a bit whether pwd is emitted and emit it before the
13269 first relative pathname since clear_line_info.
13270 (output_function, output_constructor): Don't call clear_line_info
13271 here.
13272 * lto-streamer-in.c (struct string_pair_map): New type.
13273 (struct string_pair_map_hasher): New type.
13274 (string_pair_map_hasher::hash): New method.
13275 (string_pair_map_hasher::equal): New method.
13276 (path_name_pair_hash_table, string_pair_map_allocator): New variables.
13277 (relative_path_prefix, canon_relative_path_prefix,
13278 canon_relative_file_name): New functions.
13279 (canon_file_name): Add relative_prefix argument, if non-NULL
13280 and string is a relative path, return canon_relative_file_name.
13281 (lto_location_cache::input_location_and_block): Decode file change
13282 bit from the location number. If changing file, unpack bit whether
13283 pwd is streamed and stream in pwd. Adjust canon_file_name caller.
13284 (lto_free_file_name_hash): Delete path_name_pair_hash_table
13285 and string_pair_map_allocator.
13286
13287 2020-09-10 Richard Biener <rguenther@suse.de>
13288
13289 PR tree-optimization/96043
13290 * tree-vectorizer.h (_slp_instance::cost_vec): New.
13291 (_slp_instance::subgraph_entries): Likewise.
13292 (BB_VINFO_TARGET_COST_DATA): Remove.
13293 * tree-vect-slp.c (vect_free_slp_instance): Free
13294 cost_vec and subgraph_entries.
13295 (vect_analyze_slp_instance): Initialize them.
13296 (vect_slp_analyze_operations): Defer passing costs to
13297 the target, instead record them in the SLP graph entry.
13298 (get_ultimate_leader): New helper for graph partitioning.
13299 (vect_bb_partition_graph_r): Likewise.
13300 (vect_bb_partition_graph): New function to partition the
13301 SLP graph into independently costable parts.
13302 (vect_bb_vectorization_profitable_p): Adjust to work on
13303 a subgraph.
13304 (vect_bb_vectorization_profitable_p): New wrapper,
13305 discarding non-profitable vectorization of subgraphs.
13306 (vect_slp_analyze_bb_1): Call vect_bb_partition_graph before
13307 costing.
13308
13309 2020-09-09 David Malcolm <dmalcolm@redhat.com>
13310
13311 PR analyzer/94355
13312 * doc/invoke.texi: Document -Wanalyzer-mismatching-deallocation.
13313
13314 2020-09-09 Segher Boessenkool <segher@kernel.crashing.org>
13315
13316 PR rtl-optimization/96475
13317 * bb-reorder.c (maybe_duplicate_computed_goto): Remove single_pred_p
13318 micro-optimization.
13319
13320 2020-09-09 Tom de Vries <tdevries@suse.de>
13321
13322 * config/nvptx/nvptx.c (nvptx_assemble_decl_begin): Fix Wformat
13323 warning.
13324
13325 2020-09-09 Richard Biener <rguenther@suse.de>
13326
13327 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Do
13328 nothing when the permutation doesn't permute.
13329
13330 2020-09-09 Tom de Vries <tdevries@suse.de>
13331
13332 PR target/96991
13333 * config/nvptx/nvptx.c (write_fn_proto): Fix boolean type check.
13334
13335 2020-09-09 Richard Biener <rguenther@suse.de>
13336
13337 * tree-vect-stmts.c (vectorizable_comparison): Allow
13338 STMT_VINFO_LIVE_P stmts.
13339
13340 2020-09-09 Richard Biener <rguenther@suse.de>
13341
13342 * tree-vect-stmts.c (vectorizable_condition): Allow
13343 STMT_VINFO_LIVE_P stmts.
13344
13345 2020-09-09 Richard Biener <rguenther@suse.de>
13346
13347 PR tree-optimization/96978
13348 * tree-vect-stmts.c (vectorizable_condition): Do not
13349 look at STMT_VINFO_LIVE_P for BB vectorization.
13350 (vectorizable_comparison): Likewise.
13351
13352 2020-09-09 liuhongt <hongtao.liu@intel.com>
13353
13354 PR target/96955
13355 * config/i386/i386.md (get_thread_pointer<mode>): New
13356 expander.
13357
13358 2020-09-08 Julian Brown <julian@codesourcery.com>
13359
13360 * config/gcn/gcn-valu.md (scatter<mode>_insn_1offset_ds<exec_scatter>):
13361 Add waitcnt.
13362 * config/gcn/gcn.md (*mov<mode>_insn, *movti_insn): Add waitcnt to
13363 ds_write alternatives.
13364
13365 2020-09-08 Julian Brown <julian@codesourcery.com>
13366
13367 * config/gcn/mkoffload.c (process_asm): Initialise regcount. Update
13368 scanning for SGPR/VGPR usage for HSACO v3.
13369
13370 2020-09-08 Aldy Hernandez <aldyh@redhat.com>
13371
13372 PR tree-optimization/96967
13373 * tree-vrp.c (find_case_label_range): Cast label range to
13374 type of switch operand.
13375
13376 2020-09-08 Jozef Lawrynowicz <jozef.l@mittosystems.com>
13377
13378 * config/msp430/msp430.c (msp430_file_end): Fix jumbled
13379 HAVE_AS_MSPABI_ATTRIBUTE and HAVE_AS_GNU_ATTRIBUTE checks.
13380 * configure: Regenerate.
13381 * configure.ac: Use ".mspabi_attribute 4,2" to check for assembler
13382 support for this object attribute directive.
13383
13384 2020-09-08 Jozef Lawrynowicz <jozef.l@mittosystems.com>
13385
13386 * common/config/msp430/msp430-common.c (msp430_handle_option): Remove
13387 OPT_mcpu_ handling.
13388 Set target_cpu value to new enum values when parsing certain -mmcu=
13389 values.
13390 * config/msp430/msp430-opts.h (enum msp430_cpu_types): New.
13391 * config/msp430/msp430.c (msp430_option_override): Handle new
13392 target_cpu enum values.
13393 Set target_cpu using extracted value for given MCU when -mcpu=
13394 option is not passed by the user.
13395 * config/msp430/msp430.opt: Handle -mcpu= values using enums.
13396
13397 2020-09-07 Richard Sandiford <richard.sandiford@arm.com>
13398
13399 PR rtl-optimization/96796
13400 * lra-constraints.c (in_class_p): Add a default-false
13401 allow_all_reload_class_changes_p parameter. Do not treat
13402 reload moves specially when the parameter is true.
13403 (get_reload_reg): Try to narrow the class of an existing OP_OUT
13404 reload if we're reloading a reload pseudo in a reload instruction.
13405
13406 2020-09-07 Andrea Corallo <andrea.corallo@arm.com>
13407
13408 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Revert
13409 dead-code removal introduced by 09fa6acd8d9 + add a comment to
13410 clarify.
13411
13412 2020-09-07 Jozef Lawrynowicz <jozef.l@mittosystems.com>
13413
13414 * doc/rtl.texi (subreg): Fix documentation to state there is a known
13415 number of undefined bits in regs and subregs of MODE_PARTIAL_INT modes.
13416
13417 2020-09-07 Jozef Lawrynowicz <jozef.l@mittosystems.com>
13418
13419 * config/msp430/msp430.c (msp430_option_override): Don't set the
13420 ISA to 430 when the MCU is unrecognized.
13421
13422 2020-09-07 Iain Sandoe <iain@sandoe.co.uk>
13423
13424 * config/darwin.c (darwin_libc_has_function): Report sincos
13425 available from 10.9.
13426
13427 2020-09-07 Alex Coplan <alex.coplan@arm.com>
13428
13429 * config/aarch64/aarch64.md (*adds_mul_imm_<mode>): Delete.
13430 (*subs_mul_imm_<mode>): Delete.
13431 (*adds_<optab><mode>_multp2): Delete.
13432 (*subs_<optab><mode>_multp2): Delete.
13433 (*add_mul_imm_<mode>): Delete.
13434 (*add_<optab><ALLX:mode>_mult_<GPI:mode>): Delete.
13435 (*add_<optab><SHORT:mode>_mult_si_uxtw): Delete.
13436 (*add_<optab><mode>_multp2): Delete.
13437 (*add_<optab>si_multp2_uxtw): Delete.
13438 (*add_uxt<mode>_multp2): Delete.
13439 (*add_uxtsi_multp2_uxtw): Delete.
13440 (*sub_mul_imm_<mode>): Delete.
13441 (*sub_mul_imm_si_uxtw): Delete.
13442 (*sub_<optab><mode>_multp2): Delete.
13443 (*sub_<optab>si_multp2_uxtw): Delete.
13444 (*sub_uxt<mode>_multp2): Delete.
13445 (*sub_uxtsi_multp2_uxtw): Delete.
13446 (*neg_mul_imm_<mode>2): Delete.
13447 (*neg_mul_imm_si2_uxtw): Delete.
13448 * config/aarch64/predicates.md (aarch64_pwr_imm3): Delete.
13449 (aarch64_pwr_2_si): Delete.
13450 (aarch64_pwr_2_di): Delete.
13451
13452 2020-09-07 Alex Coplan <alex.coplan@arm.com>
13453
13454 * config/aarch64/aarch64.md
13455 (*adds_<optab><ALLX:mode>_<GPI:mode>): Ensure extended operand
13456 agrees with width of extension specifier.
13457 (*subs_<optab><ALLX:mode>_<GPI:mode>): Likewise.
13458 (*adds_<optab><ALLX:mode>_shift_<GPI:mode>): Likewise.
13459 (*subs_<optab><ALLX:mode>_shift_<GPI:mode>): Likewise.
13460 (*add_<optab><ALLX:mode>_<GPI:mode>): Likewise.
13461 (*add_<optab><ALLX:mode>_shft_<GPI:mode>): Likewise.
13462 (*add_uxt<mode>_shift2): Likewise.
13463 (*sub_<optab><ALLX:mode>_<GPI:mode>): Likewise.
13464 (*sub_<optab><ALLX:mode>_shft_<GPI:mode>): Likewise.
13465 (*sub_uxt<mode>_shift2): Likewise.
13466 (*cmp_swp_<optab><ALLX:mode>_reg<GPI:mode>): Likewise.
13467 (*cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): Likewise.
13468
13469 2020-09-07 Richard Biener <rguenther@suse.de>
13470
13471 * tree-vect-slp.c (vect_analyze_slp_instance): Dump
13472 stmts we start SLP analysis from, failure and splitting.
13473 (vect_schedule_slp): Dump SLP graph entry and root stmt
13474 we are about to emit code for.
13475
13476 2020-09-07 Martin Storsjö <martin@martin.st>
13477
13478 * dwarf2out.c (file_name_acquire): Make a strchr return value
13479 pointer to const.
13480
13481 2020-09-07 Jakub Jelinek <jakub@redhat.com>
13482
13483 PR debug/94235
13484 * lto-streamer-out.c (output_cfg): Also stream goto_locus for edges.
13485 Use bp_pack_var_len_unsigned instead of streamer_write_uhwi to stream
13486 e->dest->index and e->flags.
13487 (output_function): Call output_cfg before output_ssa_name, rather than
13488 after streaming all bbs.
13489 * lto-streamer-in.c (input_cfg): Stream in goto_locus for edges.
13490 Use bp_unpack_var_len_unsigned instead of streamer_read_uhwi to stream
13491 in dest_index and edge_flags.
13492
13493 2020-09-07 Richard Biener <rguenther@suse.de>
13494
13495 * tree-vectorizer.h (vectorizable_live_operation): Adjust.
13496 * tree-vect-loop.c (vectorizable_live_operation): Vectorize
13497 live lanes out of basic-block vectorization nodes.
13498 * tree-vect-slp.c (vect_bb_slp_mark_live_stmts): New function.
13499 (vect_slp_analyze_operations): Analyze live lanes and their
13500 vectorization possibility after the whole SLP graph is final.
13501 (vect_bb_slp_scalar_cost): Adjust for vectorized live lanes.
13502 * tree-vect-stmts.c (can_vectorize_live_stmts): Adjust.
13503 (vect_transform_stmt): Call can_vectorize_live_stmts also for
13504 basic-block vectorization.
13505
13506 2020-09-04 Richard Biener <rguenther@suse.de>
13507
13508 PR tree-optimization/96698
13509 PR tree-optimization/96920
13510 * tree-vectorizer.h (loop_vec_info::reduc_latch_defs): Remove.
13511 (loop_vec_info::reduc_latch_slp_defs): Likewise.
13512 * tree-vect-stmts.c (vect_transform_stmt): Remove vectorized
13513 cycle PHI latch code.
13514 * tree-vect-loop.c (maybe_set_vectorized_backedge_value): New
13515 helper to set vectorized cycle PHI latch values.
13516 (vect_transform_loop): Walk over all PHIs again after
13517 vectorizing them, calling maybe_set_vectorized_backedge_value.
13518 Call maybe_set_vectorized_backedge_value for each vectorized
13519 stmt. Remove delayed update code.
13520 * tree-vect-slp.c (vect_analyze_slp_instance): Initialize
13521 SLP instance reduc_phis member.
13522 (vect_schedule_slp): Set vectorized cycle PHI latch values.
13523
13524 2020-09-04 Andrea Corallo <andrea.corallo@arm.com>
13525
13526 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Remove
13527 dead code as LOOP_VINFO_USING_PARTIAL_VECTORS_P (loop_vinfo) is
13528 always verified.
13529
13530 2020-09-04 Christophe Lyon <christophe.lyon@linaro.org>
13531
13532 PR target/96769
13533 * config/arm/thumb1.md: Move movsi splitter for
13534 arm_disable_literal_pool after the other movsi splitters.
13535
13536 2020-09-04 Aldy Hernandez <aldyh@redhat.com>
13537
13538 * range-op.cc (range_operator::fold_range): Rename widest_irange
13539 to int_range_max.
13540 (operator_div::wi_fold): Same.
13541 (operator_lshift::op1_range): Same.
13542 (operator_rshift::op1_range): Same.
13543 (operator_cast::fold_range): Same.
13544 (operator_cast::op1_range): Same.
13545 (operator_bitwise_and::remove_impossible_ranges): Same.
13546 (operator_bitwise_and::op1_range): Same.
13547 (operator_abs::op1_range): Same.
13548 (range_cast): Same.
13549 (widest_irange_tests): Same.
13550 (range3_tests): Rename irange3 to int_range3.
13551 (int_range_max_tests): Rename from widest_irange_tests.
13552 Rename widest_irange to int_range_max.
13553 (operator_tests): Rename widest_irange to int_range_max.
13554 (range_tests): Same.
13555 * tree-vrp.c (find_case_label_range): Same.
13556 * value-range.cc (irange::irange_intersect): Same.
13557 (irange::invert): Same.
13558 * value-range.h: Same.
13559
13560 2020-09-04 Richard Biener <rguenther@suse.de>
13561
13562 PR tree-optimization/96931
13563 * tree-cfgcleanup.c (cleanup_call_ctrl_altering_flag): If
13564 there's a fallthru edge and no abnormal edge the call is
13565 no longer control-altering.
13566 (cleanup_control_flow_bb): Pass down the BB to
13567 cleanup_call_ctrl_altering_flag.
13568
13569 2020-09-04 Jakub Jelinek <jakub@redhat.com>
13570
13571 * lto-streamer.h (stream_input_location_now): Remove declaration.
13572 * lto-streamer-in.c (stream_input_location_now): Remove.
13573 (input_eh_region, input_struct_function_base): Use
13574 stream_input_location instead of stream_input_location_now.
13575
13576 2020-09-04 Jakub Jelinek <jakub@redhat.com>
13577
13578 * lto-streamer.h (struct output_block): Add reset_locus member.
13579 * lto-streamer-out.c (clear_line_info): Set reset_locus to true.
13580 (lto_output_location_1): If reset_locus, clear it and ensure
13581 current_{file,line,col} is different from xloc members.
13582
13583 2020-09-04 David Faust <david.faust@oracle.com>
13584
13585 * config/bpf/bpf.h (ASM_SPEC): Pass -mxbpf to gas, if specified.
13586 * config/bpf/bpf.c (bpf_output_call): Support indirect calls in xBPF.
13587
13588 2020-09-03 Martin Jambor <mjambor@suse.cz>
13589
13590 PR tree-optimization/96820
13591 * tree-sra.c (create_access): Disqualify candidates with accesses
13592 beyond the end of the original aggregate.
13593 (maybe_add_sra_candidate): Check that candidate type size fits
13594 signed uhwi for the sake of consistency.
13595
13596 2020-09-03 Will Schmidt <will_schmidt@vnet.ibm.com>
13597
13598 * config/rs6000/rs6000-call.c (rs6000_init_builtin): Update V2DI_type_node
13599 and unsigned_V2DI_type_node definitions.
13600
13601 2020-09-03 Jakub Jelinek <jakub@redhat.com>
13602
13603 PR c++/96901
13604 * tree.h (struct decl_tree_traits): New type.
13605 (decl_tree_map): New typedef.
13606
13607 2020-09-03 Jakub Jelinek <jakub@redhat.com>
13608
13609 PR lto/94311
13610 * gimple.h (gimple_location_ptr, gimple_phi_arg_location_ptr): New
13611 functions.
13612 * streamer-hooks.h (struct streamer_hooks): Add
13613 output_location_and_block callback. Fix up formatting for
13614 output_location.
13615 (stream_output_location_and_block): Define.
13616 * lto-streamer.h (class lto_location_cache): Fix comment typo. Add
13617 current_block member.
13618 (lto_location_cache::input_location_and_block): New method.
13619 (lto_location_cache::lto_location_cache): Initialize current_block.
13620 (lto_location_cache::cached_location): Add block member.
13621 (struct output_block): Add current_block member.
13622 (lto_output_location): Formatting fix.
13623 (lto_output_location_and_block): Declare.
13624 * lto-streamer.c (lto_streamer_hooks_init): Initialize
13625 streamer_hooks.output_location_and_block.
13626 * lto-streamer-in.c (lto_location_cache::cmp_loc): Also compare
13627 block members.
13628 (lto_location_cache::apply_location_cache): Handle blocks.
13629 (lto_location_cache::accept_location_cache,
13630 lto_location_cache::revert_location_cache): Fix up function comments.
13631 (lto_location_cache::input_location_and_block): New method.
13632 (lto_location_cache::input_location): Implement using
13633 input_location_and_block.
13634 (input_function): Invoke apply_location_cache after streaming in all
13635 bbs.
13636 * lto-streamer-out.c (clear_line_info): Set current_block.
13637 (lto_output_location_1): New function, moved from lto_output_location,
13638 added block handling.
13639 (lto_output_location): Implement using lto_output_location_1.
13640 (lto_output_location_and_block): New function.
13641 * gimple-streamer-in.c (input_phi): Use input_location_and_block
13642 to input and cache both location and block.
13643 (input_gimple_stmt): Likewise.
13644 * gimple-streamer-out.c (output_phi): Use
13645 stream_output_location_and_block.
13646 (output_gimple_stmt): Likewise.
13647
13648 2020-09-03 Richard Biener <rguenther@suse.de>
13649
13650 * tree-vect-generic.c (tree_vec_extract): Remove odd
13651 special-casing of boolean vectors.
13652 * fold-const.c (fold_ternary_loc): Handle boolean vector
13653 type BIT_FIELD_REFs.
13654
13655 2020-09-03 Hongtao Liu <hongtao.liu@intel.com>
13656
13657 PR target/87767
13658 * config/i386/i386-features.c
13659 (replace_constant_pool_with_broadcast): New function.
13660 (constant_pool_broadcast): Ditto.
13661 (class pass_constant_pool_broadcast): New pass.
13662 (make_pass_constant_pool_broadcast): Ditto.
13663 (remove_partial_avx_dependency): Call
13664 replace_constant_pool_with_broadcast under TARGET_AVX512F, it
13665 would save compile time when both pass rpad and cpb are
13666 available.
13667 (remove_partial_avx_dependency_gate): New function.
13668 (class pass_remove_partial_avx_dependency::gate): Call
13669 remove_partial_avx_dependency_gate.
13670 * config/i386/i386-passes.def: Insert new pass after combine.
13671 * config/i386/i386-protos.h
13672 (make_pass_constant_pool_broadcast): Declare.
13673 * config/i386/sse.md (*avx512dq_mul<mode>3<mask_name>_bcst):
13674 New define_insn.
13675 (*avx512f_mul<mode>3<mask_name>_bcst): Ditto.
13676 * config/i386/avx512fintrin.h (_mm512_set1_ps,
13677 _mm512_set1_pd,_mm512_set1_epi32, _mm512_set1_epi64): Adjusted.
13678
13679 2020-09-02 Jonathan Wakely <jwakely@redhat.com>
13680
13681 PR c++/60304
13682 * ginclude/stdbool.h (bool, false, true): Never define for C++.
13683
13684 2020-09-02 Jozef Lawrynowicz <jozef.l@mittosystems.com>
13685
13686 * doc/invoke.texi (MSP430 options): Fix -mlarge description to
13687 indicate size_t is a 20-bit type.
13688
13689 2020-09-02 Roger Sayle <roger@nextmovesoftware.com>
13690
13691 * config/pa/pa.c (hppa_rtx_costs) [ASHIFT, ASHIFTRT, LSHIFTRT]:
13692 Provide accurate costs for shifts of integer constants.
13693
13694 2020-09-02 Jose E. Marchesi <jose.marchesi@oracle.com>
13695
13696 * config/bpf/bpf.c (bpf_asm_named_section): Delete.
13697 (TARGET_ASM_NAMED_SECTION): Likewise.
13698
13699 2020-09-02 Jose E. Marchesi <jemarch@gnu.org>
13700
13701 * config.gcc: Use elfos.h in bpf-*-* targets.
13702 * config/bpf/bpf.h (MAX_OFILE_ALIGNMENT): Remove definition.
13703 (COMMON_ASM_OP): Likewise.
13704 (INIT_SECTION_ASM_OP): Likewise.
13705 (FINI_SECTION_ASM_OP): Likewise.
13706 (ASM_OUTPUT_SKIP): Likewise.
13707 (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
13708 (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
13709
13710 2020-09-01 Martin Sebor <msebor@redhat.com>
13711
13712 * builtins.c (compute_objsize): Only replace the upper bound
13713 of a POINTER_PLUS offset when it's less than the lower bound.
13714
13715 2020-09-01 Peter Bergner <bergner@linux.ibm.com>
13716
13717 PR target/96808
13718 * config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Do not
13719 reuse accumulator memory reference for source and destination accesses.
13720
13721 2020-09-01 Martin Liska <mliska@suse.cz>
13722
13723 * cfgrtl.c (rtl_create_basic_block): Use default value for
13724 growth vector function.
13725 * gimple.c (gimple_set_bb): Likewise.
13726 * symbol-summary.h: Likewise.
13727 * tree-cfg.c (init_empty_tree_cfg_for_function): Likewise.
13728 (build_gimple_cfg): Likewise.
13729 (create_bb): Likewise.
13730 (move_block_to_fn): Likewise.
13731
13732 2020-09-01 Martin Liska <mliska@suse.cz>
13733
13734 * vec.h (vec_safe_grow): Change default of exact to false.
13735 (vec_safe_grow_cleared): Likewise.
13736
13737 2020-09-01 Roger Sayle <roger@nextmovesoftware.com>
13738
13739 PR middle-end/90597
13740 * targhooks.c (default_vector_alignment): Return at least the
13741 GET_MODE_ALIGNMENT for the type's mode.
13742
13743 2020-09-01 Richard Biener <rguenther@suse.de>
13744
13745 PR rtl-optimization/96812
13746 * tree-ssa-address.c (copy_ref_info): Also copy dependence info.
13747 * cfgrtl.h (duplicate_insn_chain): Adjust prototype.
13748 * cfgrtl.c (duplicate_insn_chain): Remap dependence info
13749 if requested.
13750 (cfg_layout_duplicate_bb): Make sure we remap dependence info.
13751 * modulo-sched.c (duplicate_insns_of_cycles): Remap dependence
13752 info.
13753 (generate_prolog_epilog): Adjust.
13754 * config/c6x/c6x.c (hwloop_optimize): Remap dependence info.
13755
13756 2020-09-01 Kewen Lin <linkw@gcc.gnu.org>
13757
13758 * doc/sourcebuild.texi (has_arch_pwr5, has_arch_pwr6, has_arch_pwr7,
13759 has_arch_pwr8, has_arch_pwr9): Document.
13760
13761 2020-08-31 Carl Love <cel@us.ibm.com>
13762
13763 PR target/85830
13764 * config/rs6000/altivec.h (vec_popcntb, vec_popcnth, vec_popcntw,
13765 vec_popcntd): Remove defines.
13766
13767 2020-08-31 Marek Polacek <polacek@redhat.com>
13768 Jason Merrill <jason@redhat.com>
13769
13770 PR c++/93529
13771 * tree.c (build_constructor_from_vec): New.
13772 * tree.h (build_constructor_from_vec): Declare.
13773
13774 2020-08-31 Aldy Hernandez <aldyh@redhat.com>
13775
13776 PR tree-optimization/96818
13777 * tree-vrp.c (find_case_label_range): Cast label range to
13778 type of switch operand.
13779
13780 2020-08-31 liuhongt <hongtao.liu@intel.com>
13781
13782 PR target/96551
13783 * config/i386/sse.md (vec_unpacku_float_hi_v16si): For vector
13784 compare to integer mask, don't use gen_rtx_LT, use
13785 ix86_expand_mask_vec_cmp instead.
13786 (vec_unpacku_float_hi_v16si): Ditto.
13787
13788 2020-08-31 Jakub Jelinek <jakub@redhat.com>
13789
13790 * tree-cfg.c (verify_gimple_switch): If the first non-default case
13791 label has CASE_HIGH, verify it has the same type as CASE_LOW.
13792
13793 2020-08-31 Feng Xue <fxue@os.amperecomputing.com>
13794
13795 PR ipa/96806
13796 * ipa-cp.c (decide_about_value): Use safe_add to avoid cost addition
13797 overflow.
13798
13799 2020-08-31 Jakub Jelinek <jakub@redhat.com>
13800
13801 PR middle-end/54201
13802 * varasm.c: Include alloc-pool.h.
13803 (output_constant_pool_contents): Emit desc->mark < 0 entries as
13804 aliases.
13805 (struct constant_descriptor_rtx_data): New type.
13806 (constant_descriptor_rtx_data_cmp): New function.
13807 (struct const_rtx_data_hasher): New type.
13808 (const_rtx_data_hasher::hash, const_rtx_data_hasher::equal): New
13809 methods.
13810 (optimize_constant_pool): New function.
13811 (output_shared_constant_pool): Call it if TARGET_SUPPORTS_ALIASES.
13812
13813 2020-08-31 Kewen Lin <linkw@gcc.gnu.org>
13814
13815 * doc/sourcebuild.texi (vect_len_load_store,
13816 vect_partial_vectors_usage_1, vect_partial_vectors_usage_2,
13817 vect_partial_vectors): Document.
13818
13819 2020-08-30 Martin Sebor <msebor@redhat.com>
13820
13821 * builtins.c (access_ref::access_ref): Call get_size_range instead
13822 of get_range.
13823
13824 2020-08-30 Jakub Jelinek <jakub@redhat.com>
13825
13826 * config/i386/sse.md (ssse3_pshufbv8qi): Use gen_int_mode instead of
13827 GEN_INT, and ix86_build_const_vector instead of gen_rtvec and
13828 gen_rtx_CONT_VECTOR.
13829
13830 2020-08-29 Bill Schmidt <wschmidt@linux.ibm.com>
13831
13832 * config/rs6000/rs6000-builtin.def (MASK_FOR_STORE): Remove.
13833 * config/rs6000/rs6000-call.c (rs6000_expand_builtin): Remove
13834 all logic for ALTIVEC_BUILTIN_MASK_FOR_STORE.
13835
13836 2020-08-28 Martin Sebor <msebor@redhat.com>
13837
13838 * attribs.c (init_attr_rdwr_indices): Use global access_mode.
13839 * attribs.h (struct attr_access): Same.
13840 * builtins.c (fold_builtin_strlen): Add argument.
13841 (compute_objsize): Declare.
13842 (get_range): Declare.
13843 (check_read_access): New function.
13844 (access_ref::access_ref): Define ctor.
13845 (warn_string_no_nul): Add arguments. Handle -Wstrintop-overread.
13846 (check_nul_terminated_array): Handle source strings of different
13847 ranges of sizes.
13848 (expand_builtin_strlen): Remove warning code, call check_read_access
13849 instead. Declare locals closer to their initialization.
13850 (expand_builtin_strnlen): Same.
13851 (maybe_warn_for_bound): New function.
13852 (warn_for_access): Remove argument. Handle -Wstrintop-overread.
13853 (inform_access): Change argument type.
13854 (get_size_range): New function.
13855 (check_access): Remove unused arguments. Add new arguments. Handle
13856 -Wstrintop-overread. Move warning code to helpers and call them.
13857 Call check_nul_terminated_array.
13858 (check_memop_access): Remove unnecessary and provide additional
13859 arguments in calls.
13860 (expand_builtin_memchr): Call check_read_access.
13861 (expand_builtin_strcat): Remove unnecessary and provide additional
13862 arguments in calls.
13863 (expand_builtin_strcpy): Same.
13864 (expand_builtin_strcpy_args): Same. Avoid testing no-warning bit.
13865 (expand_builtin_stpcpy_1): Remove unnecessary and provide additional
13866 arguments in calls.
13867 (expand_builtin_stpncpy): Same.
13868 (check_strncat_sizes): Same.
13869 (expand_builtin_strncat): Remove unnecessary and provide additional
13870 arguments in calls. Adjust comments.
13871 (expand_builtin_strncpy): Remove unnecessary and provide additional
13872 arguments in calls.
13873 (expand_builtin_memcmp): Remove warning code. Call check_access.
13874 (expand_builtin_strcmp): Call check_access instead of
13875 check_nul_terminated_array.
13876 (expand_builtin_strncmp): Handle -Wstrintop-overread.
13877 (expand_builtin_fork_or_exec): Call check_access instead of
13878 check_nul_terminated_array.
13879 (expand_builtin): Same.
13880 (fold_builtin_1): Pass additional argument.
13881 (fold_builtin_n): Same.
13882 (fold_builtin_strpbrk): Remove calls to check_nul_terminated_array.
13883 (expand_builtin_memory_chk): Add comments.
13884 (maybe_emit_chk_warning): Remove unnecessary and provide additional
13885 arguments in calls.
13886 (maybe_emit_sprintf_chk_warning): Same. Adjust comments.
13887 * builtins.h (warn_string_no_nul): Add arguments.
13888 (struct access_ref): Add member and ctor argument.
13889 (struct access_data): Add members and ctor.
13890 (check_access): Adjust signature.
13891 * calls.c (maybe_warn_nonstring_arg): Return an indication of
13892 whether a warning was issued. Issue -Wstrintop-overread instead
13893 of -Wstringop-overflow.
13894 (append_attrname): Adjust to naming changes.
13895 (maybe_warn_rdwr_sizes): Same. Remove unnecessary and provide
13896 additional arguments in calls.
13897 * calls.h (maybe_warn_nonstring_arg): Return bool.
13898 * doc/invoke.texi (-Wstringop-overread): Document new option.
13899 * gimple-fold.c (gimple_fold_builtin_strcpy): Provide an additional
13900 argument in call.
13901 (gimple_fold_builtin_stpcpy): Same.
13902 * tree-ssa-uninit.c (maybe_warn_pass_by_reference): Adjust to naming
13903 changes.
13904 * tree.h (enum access_mode): New type.
13905
13906 2020-08-28 Bill Schmidt <wschmidt@linux.ibm.com>
13907
13908 * config/rs6000/rs6000.c (rs6000_call_aix): Remove test for r12.
13909 (rs6000_sibcall_aix): Likewise.
13910
13911 2020-08-28 Andrew Stubbs <ams@codesourcery.com>
13912
13913 * config/gcn/gcn-tree.c (gcn_goacc_get_worker_red_decl): Add "true"
13914 parameter to vec_safe_grow_cleared.
13915
13916 2020-08-28 Martin Sebor <msebor@redhat.com>
13917
13918 * ggc-common.c (gt_pch_save): Add argument to a call.
13919
13920 2020-08-28 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
13921
13922 PR target/96357
13923 * config/aarch64/aarch64-sve.md
13924 (cond_sub<mode>_relaxed_const): Updated and renamed from
13925 cond_sub<mode>_any_const pattern.
13926 (cond_sub<mode>_strict_const): New pattern.
13927
13928 2020-08-28 Wei Wentao <weiwt.fnst@cn.fujitsu.com>
13929
13930 * doc/rtl.texi: Fix typo.
13931
13932 2020-08-28 Uros Bizjak <ubizjak@gmail.com>
13933
13934 PR target/96744
13935 * config/i386/i386-expand.c (split_double_mode): Also handle
13936 E_P2HImode and E_P2QImode.
13937 * config/i386/sse.md (MASK_DWI): New define_mode_iterator.
13938 (mov<mode>): New expander for P2HI,P2QI.
13939 (*mov<mode>_internal): New define_insn_and_split to split
13940 movement of P2QI/P2HI to 2 movqi/movhi patterns after reload.
13941
13942 2020-08-28 liuhongt <hongtao.liu@intel.com>
13943
13944 * common/config/i386/i386-common.c (ix86_handle_option): Set
13945 AVX512DQ when AVX512VP2INTERSECT exists.
13946
13947 2020-08-27 Jakub Jelinek <jakub@redhat.com>
13948
13949 PR target/65146
13950 * config/i386/i386.c (iamcu_alignment): Don't decrease alignment
13951 for TYPE_ATOMIC types.
13952 (ix86_local_alignment): Likewise.
13953 (ix86_minimum_alignment): Likewise.
13954 (x86_field_alignment): Likewise, and emit a -Wpsabi diagnostic
13955 for it.
13956
13957 2020-08-27 Bill Schmidt <wschmidt@linux.ibm.com>
13958
13959 PR target/96787
13960 * config/rs6000/rs6000.c (rs6000_sibcall_aix): Support
13961 indirect call for ELFv2.
13962
13963 2020-08-27 Richard Biener <rguenther@suse.de>
13964
13965 PR tree-optimization/96522
13966 * tree-ssa-address.c (copy_ref_info): Reset flow-sensitive
13967 info of the copied points-to. Transfer bigger alignment
13968 via the access type.
13969 * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt):
13970 Reset all flow-sensitive info.
13971
13972 2020-08-27 Martin Liska <mliska@suse.cz>
13973
13974 * alias.c (init_alias_analysis): Set exact argument of a vector
13975 growth function to true.
13976 * calls.c (internal_arg_pointer_based_exp_scan): Likewise.
13977 * cfgbuild.c (find_many_sub_basic_blocks): Likewise.
13978 * cfgexpand.c (expand_asm_stmt): Likewise.
13979 * cfgrtl.c (rtl_create_basic_block): Likewise.
13980 * combine.c (combine_split_insns): Likewise.
13981 (combine_instructions): Likewise.
13982 * config/aarch64/aarch64-sve-builtins.cc (function_expander::add_output_operand): Likewise.
13983 (function_expander::add_input_operand): Likewise.
13984 (function_expander::add_integer_operand): Likewise.
13985 (function_expander::add_address_operand): Likewise.
13986 (function_expander::add_fixed_operand): Likewise.
13987 * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
13988 * dwarf2cfi.c (update_row_reg_save): Likewise.
13989 * early-remat.c (early_remat::init_block_info): Likewise.
13990 (early_remat::finalize_candidate_indices): Likewise.
13991 * except.c (sjlj_build_landing_pads): Likewise.
13992 * final.c (compute_alignments): Likewise.
13993 (grow_label_align): Likewise.
13994 * function.c (temp_slots_at_level): Likewise.
13995 * fwprop.c (build_single_def_use_links): Likewise.
13996 (update_uses): Likewise.
13997 * gcc.c (insert_wrapper): Likewise.
13998 * genautomata.c (create_state_ainsn_table): Likewise.
13999 (add_vect): Likewise.
14000 (output_dead_lock_vect): Likewise.
14001 * genmatch.c (capture_info::capture_info): Likewise.
14002 (parser::finish_match_operand): Likewise.
14003 * genrecog.c (optimize_subroutine_group): Likewise.
14004 (merge_pattern_info::merge_pattern_info): Likewise.
14005 (merge_into_decision): Likewise.
14006 (print_subroutine_start): Likewise.
14007 (main): Likewise.
14008 * gimple-loop-versioning.cc (loop_versioning::loop_versioning): Likewise.
14009 * gimple.c (gimple_set_bb): Likewise.
14010 * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_user): Likewise.
14011 * haifa-sched.c (sched_extend_luids): Likewise.
14012 (extend_h_i_d): Likewise.
14013 * insn-addr.h (insn_addresses_new): Likewise.
14014 * ipa-cp.c (gather_context_independent_values): Likewise.
14015 (find_more_contexts_for_caller_subset): Likewise.
14016 * ipa-devirt.c (final_warning_record::grow_type_warnings): Likewise.
14017 (ipa_odr_read_section): Likewise.
14018 * ipa-fnsummary.c (evaluate_properties_for_edge): Likewise.
14019 (ipa_fn_summary_t::duplicate): Likewise.
14020 (analyze_function_body): Likewise.
14021 (ipa_merge_fn_summary_after_inlining): Likewise.
14022 (read_ipa_call_summary): Likewise.
14023 * ipa-icf.c (sem_function::bb_dict_test): Likewise.
14024 * ipa-prop.c (ipa_alloc_node_params): Likewise.
14025 (parm_bb_aa_status_for_bb): Likewise.
14026 (ipa_compute_jump_functions_for_edge): Likewise.
14027 (ipa_analyze_node): Likewise.
14028 (update_jump_functions_after_inlining): Likewise.
14029 (ipa_read_edge_info): Likewise.
14030 (read_ipcp_transformation_info): Likewise.
14031 (ipcp_transform_function): Likewise.
14032 * ipa-reference.c (ipa_reference_write_optimization_summary): Likewise.
14033 * ipa-split.c (execute_split_functions): Likewise.
14034 * ira.c (find_moveable_pseudos): Likewise.
14035 * lower-subreg.c (decompose_multiword_subregs): Likewise.
14036 * lto-streamer-in.c (input_eh_regions): Likewise.
14037 (input_cfg): Likewise.
14038 (input_struct_function_base): Likewise.
14039 (input_function): Likewise.
14040 * modulo-sched.c (set_node_sched_params): Likewise.
14041 (extend_node_sched_params): Likewise.
14042 (schedule_reg_moves): Likewise.
14043 * omp-general.c (omp_construct_simd_compare): Likewise.
14044 * passes.c (pass_manager::create_pass_tab): Likewise.
14045 (enable_disable_pass): Likewise.
14046 * predict.c (determine_unlikely_bbs): Likewise.
14047 * profile.c (compute_branch_probabilities): Likewise.
14048 * read-rtl-function.c (function_reader::parse_block): Likewise.
14049 * read-rtl.c (rtx_reader::read_rtx_code): Likewise.
14050 * reg-stack.c (stack_regs_mentioned): Likewise.
14051 * regrename.c (regrename_init): Likewise.
14052 * rtlanal.c (T>::add_single_to_queue): Likewise.
14053 * sched-deps.c (init_deps_data_vector): Likewise.
14054 * sel-sched-ir.c (sel_extend_global_bb_info): Likewise.
14055 (extend_region_bb_info): Likewise.
14056 (extend_insn_data): Likewise.
14057 * symtab.c (symtab_node::create_reference): Likewise.
14058 * tracer.c (tail_duplicate): Likewise.
14059 * trans-mem.c (tm_region_init): Likewise.
14060 (get_bb_regions_instrumented): Likewise.
14061 * tree-cfg.c (init_empty_tree_cfg_for_function): Likewise.
14062 (build_gimple_cfg): Likewise.
14063 (create_bb): Likewise.
14064 (move_block_to_fn): Likewise.
14065 * tree-complex.c (tree_lower_complex): Likewise.
14066 * tree-if-conv.c (predicate_rhs_code): Likewise.
14067 * tree-inline.c (copy_bb): Likewise.
14068 * tree-into-ssa.c (get_ssa_name_ann): Likewise.
14069 (mark_phi_for_rewrite): Likewise.
14070 * tree-object-size.c (compute_builtin_object_size): Likewise.
14071 (init_object_sizes): Likewise.
14072 * tree-predcom.c (initialize_root_vars_store_elim_1): Likewise.
14073 (initialize_root_vars_store_elim_2): Likewise.
14074 (prepare_initializers_chain_store_elim): Likewise.
14075 * tree-ssa-address.c (addr_for_mem_ref): Likewise.
14076 (multiplier_allowed_in_address_p): Likewise.
14077 * tree-ssa-coalesce.c (ssa_conflicts_new): Likewise.
14078 * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise.
14079 * tree-ssa-loop-ivopts.c (addr_offset_valid_p): Likewise.
14080 (get_address_cost_ainc): Likewise.
14081 * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk): Likewise.
14082 * tree-ssa-pre.c (add_to_value): Likewise.
14083 (phi_translate_1): Likewise.
14084 (do_pre_regular_insertion): Likewise.
14085 (do_pre_partial_partial_insertion): Likewise.
14086 (init_pre): Likewise.
14087 * tree-ssa-propagate.c (ssa_prop_init): Likewise.
14088 (update_call_from_tree): Likewise.
14089 * tree-ssa-reassoc.c (optimize_range_tests_cmp_bitwise): Likewise.
14090 * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
14091 (vn_reference_lookup_pieces): Likewise.
14092 (eliminate_dom_walker::eliminate_push_avail): Likewise.
14093 * tree-ssa-strlen.c (set_strinfo): Likewise.
14094 (get_stridx_plus_constant): Likewise.
14095 (zero_length_string): Likewise.
14096 (find_equal_ptrs): Likewise.
14097 (printf_strlen_execute): Likewise.
14098 * tree-ssa-threadedge.c (set_ssa_name_value): Likewise.
14099 * tree-ssanames.c (make_ssa_name_fn): Likewise.
14100 * tree-streamer-in.c (streamer_read_tree_bitfields): Likewise.
14101 * tree-vect-loop.c (vect_record_loop_mask): Likewise.
14102 (vect_get_loop_mask): Likewise.
14103 (vect_record_loop_len): Likewise.
14104 (vect_get_loop_len): Likewise.
14105 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Likewise.
14106 * tree-vect-slp.c (vect_slp_convert_to_external): Likewise.
14107 (vect_bb_slp_scalar_cost): Likewise.
14108 (vect_bb_vectorization_profitable_p): Likewise.
14109 (vectorizable_slp_permutation): Likewise.
14110 * tree-vect-stmts.c (vectorizable_call): Likewise.
14111 (vectorizable_simd_clone_call): Likewise.
14112 (scan_store_can_perm_p): Likewise.
14113 (vectorizable_store): Likewise.
14114 * expr.c: Likewise.
14115 * vec.c (test_safe_grow_cleared): Likewise.
14116 * vec.h (vec_safe_grow): Likewise.
14117 (vec_safe_grow_cleared): Likewise.
14118 (vl_ptr>::safe_grow): Likewise.
14119 (vl_ptr>::safe_grow_cleared): Likewise.
14120 * config/c6x/c6x.c (insn_set_clock): Likewise.
14121
14122 2020-08-27 Richard Biener <rguenther@suse.de>
14123
14124 * tree-pretty-print.c (dump_mem_ref): Handle TARGET_MEM_REFs.
14125 (dump_generic_node): Use dump_mem_ref also for TARGET_MEM_REF.
14126
14127 2020-08-27 Alex Coplan <alex.coplan@arm.com>
14128
14129 * lra-constraints.c (canonicalize_reload_addr): New.
14130 (curr_insn_transform): Use canonicalize_reload_addr to ensure we
14131 generate canonical RTL for an address reload.
14132
14133 2020-08-27 Zhiheng Xie <xiezhiheng@huawei.com>
14134
14135 * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG
14136 for rounding intrinsics.
14137
14138 2020-08-27 Zhiheng Xie <xiezhiheng@huawei.com>
14139
14140 * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG
14141 for min/max intrinsics.
14142
14143 2020-08-27 Richard Biener <rguenther@suse.de>
14144
14145 PR tree-optimization/96579
14146 * tree-ssa-reassoc.c (linearize_expr_tree): If we expand
14147 rhs via special ops make sure to swap operands.
14148
14149 2020-08-27 Richard Biener <rguenther@suse.de>
14150
14151 PR tree-optimization/96565
14152 * tree-ssa-dse.c (dse_classify_store): Remove defs with
14153 no uses from further processing.
14154
14155 2020-08-26 Göran Uddeborg <goeran@uddeborg.se>
14156
14157 PR gcov-profile/96285
14158 * common.opt, doc/invoke.texi: Clarify wording of
14159 -fprofile-exclude-files and adjust -fprofile-filter-files to
14160 match.
14161
14162 2020-08-26 H.J. Lu <hjl.tools@gmail.com>
14163
14164 PR target/96802
14165 * config/i386/i386-options.c (ix86_valid_target_attribute_inner_p):
14166 Reject target("no-general-regs-only").
14167
14168 2020-08-26 Jozef Lawrynowicz <jozef.l@mittosystems.com>
14169
14170 * config/msp430/constraints.md (K): Change unused constraint to
14171 constraint to a const_int between 1 and 19.
14172 (P): New constraint.
14173 * config/msp430/msp430-protos.h (msp430x_logical_shift_right): Remove.
14174 (msp430_expand_shift): New.
14175 (msp430_output_asm_shift_insns): New.
14176 * config/msp430/msp430.c (msp430_rtx_costs): Remove shift costs.
14177 (CSH): Remove.
14178 (msp430_expand_helper): Remove hard-coded generation of some inline
14179 shift insns.
14180 (use_helper_for_const_shift): New.
14181 (msp430_expand_shift): New.
14182 (msp430_output_asm_shift_insns): New.
14183 (msp430_print_operand): Add new 'W' operand selector.
14184 (msp430x_logical_shift_right): Remove.
14185 * config/msp430/msp430.md (HPSI): New define_mode_iterator.
14186 (HDI): Likewise.
14187 (any_shift): New define_code_iterator.
14188 (shift_insn): New define_code_attr.
14189 Adjust unnamed insn patterns searched for by combine.
14190 (ashlhi3): Remove.
14191 (slli_1): Remove.
14192 (430x_shift_left): Remove.
14193 (slll_1): Remove.
14194 (slll_2): Remove.
14195 (ashlsi3): Remove.
14196 (ashldi3): Remove.
14197 (ashrhi3): Remove.
14198 (srai_1): Remove.
14199 (430x_arithmetic_shift_right): Remove.
14200 (srap_1): Remove.
14201 (srap_2): Remove.
14202 (sral_1): Remove.
14203 (sral_2): Remove.
14204 (ashrsi3): Remove.
14205 (ashrdi3): Remove.
14206 (lshrhi3): Remove.
14207 (srli_1): Remove.
14208 (430x_logical_shift_right): Remove.
14209 (srlp_1): Remove.
14210 (srll_1): Remove.
14211 (srll_2x): Remove.
14212 (lshrsi3): Remove.
14213 (lshrdi3): Remove.
14214 (<shift_insn><mode>3): New define_expand.
14215 (<shift_insn>hi3_430): New define_insn.
14216 (<shift_insn>si3_const): Likewise.
14217 (ashl<mode>3_430x): Likewise.
14218 (ashr<mode>3_430x): Likewise.
14219 (lshr<mode>3_430x): Likewise.
14220 (*bitbranch<mode>4_z): Replace renamed predicate msp430_bitpos with
14221 const_0_to_15_operand.
14222 * config/msp430/msp430.opt: New option -mmax-inline-shift=.
14223 * config/msp430/predicates.md (const_1_to_8_operand): New predicate.
14224 (const_0_to_15_operand): Rename msp430_bitpos predicate.
14225 (const_1_to_19_operand): New predicate.
14226 * doc/invoke.texi: Document -mmax-inline-shift=.
14227
14228 2020-08-26 Aldy Hernandez <aldyh@redhat.com>
14229
14230 * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Abstract code out to...
14231 * tree-vrp.c (find_case_label_range): ...here. Rewrite for to use irange
14232 API.
14233 (simplify_stmt_for_jump_threading): Call find_case_label_range instead of
14234 duplicating the code in simplify_stmt_for_jump_threading.
14235 * tree-vrp.h (find_case_label_range): New prototype.
14236
14237 2020-08-26 Richard Biener <rguenther@suse.de>
14238
14239 PR tree-optimization/96698
14240 * tree-vectorizer.h (loop_vec_info::reduc_latch_defs): New.
14241 (loop_vec_info::reduc_latch_slp_defs): Likewise.
14242 * tree-vect-stmts.c (vect_transform_stmt): Only record
14243 stmts to update PHI latches from, perform the update ...
14244 * tree-vect-loop.c (vect_transform_loop): ... here after
14245 vectorizing those PHIs.
14246 (info_for_reduction): Properly handle non-reduction PHIs.
14247
14248 2020-08-26 Martin Liska <mliska@suse.cz>
14249
14250 * cgraphunit.c (process_symver_attribute): Match only symver
14251 TREE_PURPOSE.
14252
14253 2020-08-26 Richard Biener <rguenther@suse.de>
14254
14255 PR tree-optimization/96783
14256 * tree-vect-stmts.c (get_group_load_store_type): Use
14257 VMAT_ELEMENTWISE for negative strides when we cannot
14258 use VMAT_STRIDED_SLP.
14259
14260 2020-08-26 Martin Liska <mliska@suse.cz>
14261
14262 * doc/invoke.texi: Document how are pie and pic options merged.
14263
14264 2020-08-26 Zhiheng Xie <xiezhiheng@huawei.com>
14265
14266 * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG
14267 for add/sub arithmetic intrinsics.
14268
14269 2020-08-26 Jakub Jelinek <jakub@redhat.com>
14270
14271 PR debug/96729
14272 * dwarf2out.c (dwarf2out_next_real_insn): Adjust function comment.
14273 (dwarf2out_var_location): Look for next_note only if next_real is
14274 non-NULL, in that case look for the first non-deleted
14275 NOTE_INSN_VAR_LOCATION between loc_note and next_real, if any.
14276
14277 2020-08-26 Iain Buclaw <ibuclaw@gdcproject.org>
14278
14279 * config/tilepro/gen-mul-tables.cc (main): Define IN_TARGET_CODE to 1
14280 in the target file.
14281
14282 2020-08-26 Martin Liska <mliska@suse.cz>
14283
14284 * cgraphunit.c (process_symver_attribute): Allow multiple
14285 symver attributes for one symbol.
14286 * doc/extend.texi: Document the change.
14287
14288 2020-08-25 H.J. Lu <hjl.tools@gmail.com>
14289
14290 PR target/95863
14291 * config/i386/i386.h (CTZ_DEFINED_VALUE_AT_ZERO): Return 0/2.
14292 (CLZ_DEFINED_VALUE_AT_ZERO): Likewise.
14293
14294 2020-08-25 Roger Sayle <roger@nextmovesoftware.com>
14295
14296 PR middle-end/87256
14297 * config/pa/pa.c (hppa_rtx_costs_shadd_p): New helper function
14298 to check for coefficients supported by shNadd and shladd,l.
14299 (hppa_rtx_costs): Rewrite to avoid using estimates based upon
14300 FACTOR and enable recursing deeper into RTL expressions.
14301
14302 2020-08-25 Roger Sayle <roger@nextmovesoftware.com>
14303
14304 * config/pa/pa.md (ashldi3): Additionally, on !TARGET_64BIT
14305 generate a two instruction shd/zdep sequence when shifting
14306 registers by suitable constants.
14307 (shd_internal): New define_expand to provide gen_shd_internal.
14308
14309 2020-08-25 Richard Sandiford <richard.sandiford@arm.com>
14310
14311 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Rename
14312 __ARM_FEATURE_SVE_VECTOR_OPERATIONS to
14313 __ARM_FEATURE_SVE_VECTOR_OPERATORS.
14314
14315 2020-08-25 Richard Sandiford <richard.sandiford@arm.com>
14316
14317 * config/aarch64/aarch64-sve-builtins.cc (add_sve_type_attribute):
14318 Take the ACLE name of the type as a parameter and add it as fourth
14319 argument to the "SVE type" attribute.
14320 (register_builtin_types): Update call accordingly.
14321 (register_tuple_type): Likewise. Construct the name of the type
14322 earlier in order to do this.
14323 (get_arm_sve_vector_bits_attributes): New function.
14324 (handle_arm_sve_vector_bits_attribute): Report a more sensible
14325 error message if the attribute is applied to an SVE tuple type.
14326 Don't allow the attribute to be applied to an existing fixed-length
14327 SVE type. Mangle the new type as __SVE_VLS<type, vector-bits>.
14328 Add a dummy TYPE_DECL to the new type.
14329
14330 2020-08-25 Richard Sandiford <richard.sandiford@arm.com>
14331
14332 * config/aarch64/aarch64-sve-builtins.cc (DEF_SVE_TYPE): Add a
14333 leading "u" to each mangled name.
14334
14335 2020-08-25 Richard Biener <rguenther@suse.de>
14336
14337 PR tree-optimization/96548
14338 PR tree-optimization/96760
14339 * tree-ssa-loop-im.c (tree_ssa_lim): Recompute RPO after
14340 store-motion.
14341
14342 2020-08-25 Jakub Jelinek <jakub@redhat.com>
14343
14344 PR tree-optimization/96722
14345 * gimple.c (infer_nonnull_range): Formatting fix.
14346 (infer_nonnull_range_by_dereference): Return false for clobber stmts.
14347
14348 2020-08-25 Jakub Jelinek <jakub@redhat.com>
14349
14350 PR tree-optimization/96758
14351 * tree-ssa-strlen.c (handle_builtin_string_cmp): If both cstlen1
14352 and cstlen2 are set, set cmpsiz to their minimum, otherwise use the
14353 one that is set. If bound is used and smaller than cmpsiz, set cmpsiz
14354 to bound. If both cstlen1 and cstlen2 are set, perform the optimization.
14355
14356 2020-08-25 Martin Jambor <mjambor@suse.cz>
14357
14358 PR tree-optimization/96730
14359 * tree-sra.c (create_access): Disqualify any aggregate with negative
14360 offset access.
14361 (build_ref_for_model): Add assert that offset is non-negative.
14362
14363 2020-08-25 Wei Wentao <weiwt.fnst@cn.fujitsu.com>
14364
14365 * rtl.def: Fix typo in comment.
14366
14367 2020-08-25 Roger Sayle <roger@nextmovesoftware.com>
14368
14369 PR tree-optimization/21137
14370 * fold-const.c (fold_binary_loc) [NE_EXPR/EQ_EXPR]: Call
14371 STRIP_NOPS when checking whether to simplify ((x>>C1)&C2) != 0.
14372
14373 2020-08-25 Andrew Pinski <apinski@marvell.com>
14374
14375 PR middle-end/64242
14376 * config/mips/mips.md (builtin_longjmp): Restore the frame
14377 pointer and stack pointer and gp.
14378
14379 2020-08-25 Richard Biener <rguenther@suse.de>
14380
14381 PR debug/96690
14382 * dwarf2out.c (reference_to_unused): Make FUNCTION_DECL
14383 processing more consistent with respect to
14384 symtab->global_info_ready.
14385 (tree_add_const_value_attribute): Unconditionally call
14386 rtl_for_decl_init to do all mangling early but throw
14387 away the result if early_dwarf.
14388
14389 2020-08-25 Hongtao Liu <hongtao.liu@intel.com>
14390
14391 PR target/96755
14392 * config/i386/sse.md: Correct the mode of NOT operands to
14393 SImode.
14394
14395 2020-08-25 Jakub Jelinek <jakub@redhat.com>
14396
14397 PR tree-optimization/96715
14398 * match.pd (copysign(x,-x) -> -x): New simplification.
14399
14400 2020-08-25 Jakub Jelinek <jakub@redhat.com>
14401
14402 PR target/95450
14403 * fold-const.c (native_interpret_real): For MODE_COMPOSITE_P modes
14404 punt if the to be returned REAL_CST does not encode to the bitwise
14405 same representation.
14406
14407 2020-08-24 Gerald Pfeifer <gerald@pfeifer.com>
14408
14409 * doc/install.texi (Configuration): Switch valgrind.com to https.
14410
14411 2020-08-24 Christophe Lyon <christophe.lyon@linaro.org>
14412
14413 PR target/94538
14414 PR target/94538
14415 * config/arm/thumb1.md: Disable set-constant splitter when
14416 TARGET_HAVE_MOVT.
14417 (thumb1_movsi_insn): Fix -mpure-code
14418 alternative.
14419
14420 2020-08-24 Martin Liska <mliska@suse.cz>
14421
14422 * tree-vect-data-refs.c (dr_group_sort_cmp): Work on
14423 data_ref_pair.
14424 (vect_analyze_data_ref_accesses): Work on groups.
14425 (vect_find_stmt_data_reference): Add group_id argument and fill
14426 up dataref_groups vector.
14427 * tree-vect-loop.c (vect_get_datarefs_in_loop): Pass new
14428 arguments.
14429 (vect_analyze_loop_2): Likewise.
14430 * tree-vect-slp.c (vect_slp_analyze_bb_1): Pass argument.
14431 (vect_slp_bb_region): Likewise.
14432 (vect_slp_region): Likewise.
14433 (vect_slp_bb):Work on the entire BB.
14434 * tree-vectorizer.h (vect_analyze_data_ref_accesses): Add new
14435 argument.
14436 (vect_find_stmt_data_reference): Likewise.
14437
14438 2020-08-24 Martin Liska <mliska@suse.cz>
14439
14440 PR tree-optimization/96597
14441 * tree-ssa-sccvn.c (vn_reference_lookup_call): Add missing
14442 initialization of ::punned.
14443 (vn_reference_insert): Use consistently false instead of 0.
14444 (vn_reference_insert_pieces): Likewise.
14445
14446 2020-08-24 Hans-Peter Nilsson <hp@axis.com>
14447
14448 PR target/93372
14449 * reorg.c (fill_slots_from_thread): Allow trial insns that clobber
14450 TARGET_FLAGS_REGNUM as delay-slot fillers.
14451
14452 2020-08-23 H.J. Lu <hjl.tools@gmail.com>
14453
14454 PR target/96744
14455 * config/i386/i386-options.c (IX86_ATTR_IX86_YES): New.
14456 (IX86_ATTR_IX86_NO): Likewise.
14457 (ix86_opt_type): Add ix86_opt_ix86_yes and ix86_opt_ix86_no.
14458 (ix86_valid_target_attribute_inner_p): Handle general-regs-only,
14459 ix86_opt_ix86_yes and ix86_opt_ix86_no.
14460 (ix86_option_override_internal): Check opts->x_ix86_target_flags
14461 instead of opts->x_ix86_target_flags.
14462 * doc/extend.texi: Document target("general-regs-only") function
14463 attribute.
14464
14465 2020-08-21 Richard Sandiford <richard.sandiford@arm.com>
14466
14467 * doc/extend.texi: Update links to Arm docs.
14468 * doc/invoke.texi: Likewise.
14469
14470 2020-08-21 Hongtao Liu <hongtao.liu@intel.com>
14471
14472 PR target/96262
14473 * config/i386/i386-expand.c
14474 (ix86_expand_vec_shift_qihi_constant): Refine.
14475
14476 2020-08-21 Alex Coplan <alex.coplan@arm.com>
14477
14478 PR jit/63854
14479 * gcc.c (set_static_spec): New.
14480 (set_static_spec_owned): New.
14481 (set_static_spec_shared): New.
14482 (driver::maybe_putenv_COLLECT_LTO_WRAPPER): Use
14483 set_static_spec_owned() to take ownership of lto_wrapper_file
14484 such that it gets freed in driver::finalize.
14485 (driver::maybe_run_linker): Use set_static_spec_shared() to
14486 ensure that we don't try and free() the static string "ld",
14487 also ensuring that any previously-allocated string in
14488 linker_name_spec is freed. Likewise with argv0.
14489 (driver::finalize): Use set_static_spec_shared() when resetting
14490 specs that previously had allocated strings; remove if(0)
14491 around call to free().
14492
14493 2020-08-21 Senthil Kumar Selvaraj <saaadhu@gcc.gnu.org>
14494
14495 * emit-rtl.c (try_split): Call copy_frame_info_to_split_insn
14496 to split certain RTX_FRAME_RELATED_P insns.
14497 * recog.c (copy_frame_info_to_split_insn): New function.
14498 (peep2_attempt): Split copying of frame related info of
14499 RTX_FRAME_RELATED_P insns into above function and call it.
14500 * recog.h (copy_frame_info_to_split_insn): Declare it.
14501
14502 2020-08-21 liuhongt <hongtao.liu@intel.com>
14503
14504 PR target/88808
14505 * config/i386/i386.c (ix86_preferred_reload_class): Allow
14506 QImode data go into mask registers.
14507 * config/i386/i386.md: (*movhi_internal): Adjust constraints
14508 for mask registers.
14509 (*movqi_internal): Ditto.
14510 (*anddi_1): Support mask register operations
14511 (*and<mode>_1): Ditto.
14512 (*andqi_1): Ditto.
14513 (*andn<mode>_1): Ditto.
14514 (*<code><mode>_1): Ditto.
14515 (*<code>qi_1): Ditto.
14516 (*one_cmpl<mode>2_1): Ditto.
14517 (*one_cmplsi2_1_zext): Ditto.
14518 (*one_cmplqi2_1): Ditto.
14519 (define_peephole2): Move constant 0/-1 directly into mask
14520 registers.
14521 * config/i386/predicates.md (mask_reg_operand): New predicate.
14522 * config/i386/sse.md (define_split): Add post-reload splitters
14523 that would convert "generic" patterns to mask patterns.
14524 (*knotsi_1_zext): New define_insn.
14525
14526 2020-08-21 liuhongt <hongtao.liu@intel.com>
14527
14528 * config/i386/x86-tune-costs.h (skylake_cost): Adjust cost
14529 model.
14530
14531 2020-08-21 liuhongt <hongtao.liu@intel.com>
14532
14533 * config/i386/i386.c (inline_secondary_memory_needed):
14534 No memory is needed between mask regs and gpr.
14535 (ix86_hard_regno_mode_ok): Add condition TARGET_AVX512F for
14536 mask regno.
14537 * config/i386/i386.h (enum reg_class): Add INT_MASK_REGS.
14538 (REG_CLASS_NAMES): Ditto.
14539 (REG_CLASS_CONTENTS): Ditto.
14540 * config/i386/i386.md: Exclude mask register in
14541 define_peephole2 which is avaiable only for gpr.
14542
14543 2020-08-21 H.J. Lu <hjl.tools@gmail.com>
14544
14545 PR target/71453
14546 * config/i386/i386.h (struct processor_costs): Add member
14547 mask_to_integer, integer_to_mask, mask_load[3], mask_store[3],
14548 mask_move.
14549 * config/i386/x86-tune-costs.h (ix86_size_cost, i386_cost,
14550 i386_cost, pentium_cost, lakemont_cost, pentiumpro_cost,
14551 geode_cost, k6_cost, athlon_cost, k8_cost, amdfam10_cost,
14552 bdver_cost, znver1_cost, znver2_cost, skylake_cost,
14553 btver1_cost, btver2_cost, pentium4_cost, nocona_cost,
14554 atom_cost, slm_cost, intel_cost, generic_cost, core_cost):
14555 Initialize mask_load[3], mask_store[3], mask_move,
14556 integer_to_mask, mask_to_integer for all target costs.
14557 * config/i386/i386.c (ix86_register_move_cost): Using cost
14558 model of mask registers.
14559 (inline_memory_move_cost): Ditto.
14560 (ix86_register_move_cost): Ditto.
14561
14562 2020-08-20 Iain Buclaw <ibuclaw@gdcproject.org>
14563
14564 * config/vxworks.h (VXWORKS_ADDITIONAL_CPP_SPEC): Don't include
14565 VxWorks header files if -fself-test is used.
14566 (STARTFILE_PREFIX_SPEC): Avoid using VSB_DIR if -fself-test is used.
14567
14568 2020-08-20 Joe Ramsay <Joe.Ramsay@arm.com>
14569
14570 PR target/96683
14571 * config/arm/mve.md (mve_vst1q_f<mode>): Require MVE memory operand for
14572 destination.
14573 (mve_vst1q_<supf><mode>): Likewise.
14574
14575 2020-08-19 2020-08-19 Carl Love <cel@us.ibm.com>
14576
14577 * config/rs6000/rs6000-builtin.def (BU_P10V_0, BU_P10V_1,
14578 BU_P10V_2, BU_P10V_3): Rename BU_P10V_VSX_0, BU_P10V_VSX_1,
14579 BU_P10V_VSX_2, BU_P10V_VSX_3 respectively.
14580 (BU_P10V_4): Remove.
14581 (BU_P10V_AV_0, BU_P10V_AV_1, BU_P10V_AV_2, BU_P10V_AV_3, BU_P10V_AV_4):
14582 New definitions for Power 10 Altivec macros.
14583 (VSTRIBR, VSTRIHR, VSTRIBL, VSTRIHL, VSTRIBR_P, VSTRIHR_P,
14584 VSTRIBL_P, VSTRIHL_P, MTVSRBM, MTVSRHM, MTVSRWM, MTVSRDM, MTVSRQM,
14585 VEXPANDMB, VEXPANDMH, VEXPANDMW, VEXPANDMD, VEXPANDMQ, VEXTRACTMB,
14586 VEXTRACTMH, VEXTRACTMW, VEXTRACTMD, VEXTRACTMQ): Replace macro
14587 expansion BU_P10V_1 with BU_P10V_AV_1.
14588 (VCLRLB, VCLRRB, VCFUGED, VCLZDM, VCTZDM, VPDEPD, VPEXTD, VGNB,
14589 VCNTMBB, VCNTMBH, VCNTMBW, VCNTMBD): Replace macro expansion
14590 BU_P10V_2 with BU_P10V_AV_2.
14591 (VEXTRACTBL, VEXTRACTHL, VEXTRACTWL, VEXTRACTDL, VEXTRACTBR, VEXTRACTHR,
14592 VEXTRACTWR, VEXTRACTDR, VINSERTGPRBL, VINSERTGPRHL, VINSERTGPRWL,
14593 VINSERTGPRDL, VINSERTVPRBL, VINSERTVPRHL, VINSERTVPRWL, VINSERTGPRBR,
14594 VINSERTGPRHR, VINSERTGPRWR, VINSERTGPRDR, VINSERTVPRBR, VINSERTVPRHR,
14595 VINSERTVPRWR, VREPLACE_ELT_V4SI, VREPLACE_ELT_UV4SI, VREPLACE_ELT_V2DF,
14596 VREPLACE_ELT_V4SF, VREPLACE_ELT_V2DI, VREPLACE_ELT_UV2DI, VREPLACE_UN_V4SI,
14597 VREPLACE_UN_UV4SI, VREPLACE_UN_V4SF, VREPLACE_UN_V2DI, VREPLACE_UN_UV2DI,
14598 VREPLACE_UN_V2DF, VSLDB_V16QI, VSLDB_V8HI, VSLDB_V4SI, VSLDB_V2DI,
14599 VSRDB_V16QI, VSRDB_V8HI, VSRDB_V4SI, VSRDB_V2DI): Replace macro expansion
14600 BU_P10V_3 with BU_P10V_AV_3.
14601 (VXXSPLTIW_V4SI, VXXSPLTIW_V4SF, VXXSPLTID): Replace macro expansion
14602 BU_P10V_1 with BU_P10V_AV_1.
14603 (XXGENPCVM_V16QI, XXGENPCVM_V8HI, XXGENPCVM_V4SI, XXGENPCVM_V2DI):
14604 Replace macro expansion BU_P10V_2 with BU_P10V_VSX_2.
14605 (VXXSPLTI32DX_V4SI, VXXSPLTI32DX_V4SF, VXXBLEND_V16QI, VXXBLEND_V8HI,
14606 VXXBLEND_V4SI, VXXBLEND_V2DI, VXXBLEND_V4SF, VXXBLEND_V2DF): Replace macor
14607 expansion BU_P10V_3 with BU_P10V_VSX_3.
14608 (XXEVAL, VXXPERMX): Replace macro expansion BU_P10V_4 with BU_P10V_VSX_4.
14609 (XVCVBF16SP, XVCVSPBF16): Replace macro expansion BU_VSX_1 with
14610 BU_P10V_VSX_1. Also change MISC to CONST.
14611 * config/rs6000/rs6000-c.c: (P10_BUILTIN_VXXPERMX): Replace with
14612 P10V_BUILTIN_VXXPERMX.
14613 (P10_BUILTIN_VCLRLB, P10_BUILTIN_VCLRLB, P10_BUILTIN_VCLRRB,
14614 P10_BUILTIN_VGNB, P10_BUILTIN_XXEVAL, P10_BUILTIN_VXXPERMX,
14615 P10_BUILTIN_VEXTRACTBL, P10_BUILTIN_VEXTRACTHL, P10_BUILTIN_VEXTRACTWL,
14616 P10_BUILTIN_VEXTRACTDL, P10_BUILTIN_VINSERTGPRHL,
14617 P10_BUILTIN_VINSERTGPRWL, P10_BUILTIN_VINSERTGPRDL,
14618 P10_BUILTIN_VINSERTVPRBL, P10_BUILTIN_VINSERTVPRHL,
14619 P10_BUILTIN_VEXTRACTBR, P10_BUILTIN_VEXTRACTHR,
14620 P10_BUILTIN_VEXTRACTWR, P10_BUILTIN_VEXTRACTDR,
14621 P10_BUILTIN_VINSERTGPRBR, P10_BUILTIN_VINSERTGPRHR,
14622 P10_BUILTIN_VINSERTGPRWR, P10_BUILTIN_VINSERTGPRDR,
14623 P10_BUILTIN_VINSERTVPRBR, P10_BUILTIN_VINSERTVPRHR,
14624 P10_BUILTIN_VINSERTVPRWR, P10_BUILTIN_VREPLACE_ELT_UV4SI,
14625 P10_BUILTIN_VREPLACE_ELT_V4SI, P10_BUILTIN_VREPLACE_ELT_UV2DI,
14626 P10_BUILTIN_VREPLACE_ELT_V2DI, P10_BUILTIN_VREPLACE_ELT_V2DF,
14627 P10_BUILTIN_VREPLACE_UN_UV4SI, P10_BUILTIN_VREPLACE_UN_V4SI,
14628 P10_BUILTIN_VREPLACE_UN_V4SF, P10_BUILTIN_VREPLACE_UN_UV2DI,
14629 P10_BUILTIN_VREPLACE_UN_V2DI, P10_BUILTIN_VREPLACE_UN_V2DF,
14630 P10_BUILTIN_VSLDB_V16QI, P10_BUILTIN_VSLDB_V16QI,
14631 P10_BUILTIN_VSLDB_V8HI, P10_BUILTIN_VSLDB_V4SI,
14632 P10_BUILTIN_VSLDB_V2DI, P10_BUILTIN_VXXSPLTIW_V4SI,
14633 P10_BUILTIN_VXXSPLTIW_V4SF, P10_BUILTIN_VXXSPLTID,
14634 P10_BUILTIN_VXXSPLTI32DX_V4SI, P10_BUILTIN_VXXSPLTI32DX_V4SF,
14635 P10_BUILTIN_VXXBLEND_V16QI, P10_BUILTIN_VXXBLEND_V8HI,
14636 P10_BUILTIN_VXXBLEND_V4SI, P10_BUILTIN_VXXBLEND_V2DI,
14637 P10_BUILTIN_VXXBLEND_V4SF, P10_BUILTIN_VXXBLEND_V2DF,
14638 P10_BUILTIN_VSRDB_V16QI, P10_BUILTIN_VSRDB_V8HI,
14639 P10_BUILTIN_VSRDB_V4SI, P10_BUILTIN_VSRDB_V2DI,
14640 P10_BUILTIN_VSTRIBL, P10_BUILTIN_VSTRIHL,
14641 P10_BUILTIN_VSTRIBL_P, P10_BUILTIN_VSTRIHL_P,
14642 P10_BUILTIN_VSTRIBR, P10_BUILTIN_VSTRIHR,
14643 P10_BUILTIN_VSTRIBR_P, P10_BUILTIN_VSTRIHR_P,
14644 P10_BUILTIN_MTVSRBM, P10_BUILTIN_MTVSRHM,
14645 P10_BUILTIN_MTVSRWM, P10_BUILTIN_MTVSRDM,
14646 P10_BUILTIN_MTVSRQM, P10_BUILTIN_VCNTMBB,
14647 P10_BUILTIN_VCNTMBH, P10_BUILTIN_VCNTMBW,
14648 P10_BUILTIN_VCNTMBD, P10_BUILTIN_VEXPANDMB,
14649 P10_BUILTIN_VEXPANDMH, P10_BUILTIN_VEXPANDMW,
14650 P10_BUILTIN_VEXPANDMD, P10_BUILTIN_VEXPANDMQ,
14651 P10_BUILTIN_VEXTRACTMB, P10_BUILTIN_VEXTRACTMH,
14652 P10_BUILTIN_VEXTRACTMW, P10_BUILTIN_VEXTRACTMD,
14653 P10_BUILTIN_VEXTRACTMQ, P10_BUILTIN_XVTLSBB_ZEROS,
14654 P10_BUILTIN_XVTLSBB_ONES): Replace with
14655 P10V_BUILTIN_VCLRLB, P10V_BUILTIN_VCLRLB, P10V_BUILTIN_VCLRRB,
14656 P10V_BUILTIN_VGNB, P10V_BUILTIN_XXEVAL, P10V_BUILTIN_VXXPERMX,
14657 P10V_BUILTIN_VEXTRACTBL, P10V_BUILTIN_VEXTRACTHL, P10V_BUILTIN_VEXTRACTWL,
14658 P10V_BUILTIN_VEXTRACTDL, P10V_BUILTIN_VINSERTGPRHL,
14659 P10V_BUILTIN_VINSERTGPRWL, P10V_BUILTIN_VINSERTGPRDL,
14660 P10V_BUILTIN_VINSERTVPRBL,P10V_BUILTIN_VINSERTVPRHL,
14661 P10V_BUILTIN_VEXTRACTBR, P10V_BUILTIN_VEXTRACTHR
14662 P10V_BUILTIN_VEXTRACTWR, P10V_BUILTIN_VEXTRACTDR,
14663 P10V_BUILTIN_VINSERTGPRBR, P10V_BUILTIN_VINSERTGPRHR,
14664 P10V_BUILTIN_VINSERTGPRWR, P10V_BUILTIN_VINSERTGPRDR,
14665 P10V_BUILTIN_VINSERTVPRBR, P10V_BUILTIN_VINSERTVPRHR,
14666 P10V_BUILTIN_VINSERTVPRWR, P10V_BUILTIN_VREPLACE_ELT_UV4SI,
14667 P10V_BUILTIN_VREPLACE_ELT_V4SI, P10V_BUILTIN_VREPLACE_ELT_UV2DI,
14668 P10V_BUILTIN_VREPLACE_ELT_V2DI, P10V_BUILTIN_VREPLACE_ELT_V2DF,
14669 P10V_BUILTIN_VREPLACE_UN_UV4SI, P10V_BUILTIN_VREPLACE_UN_V4SI,
14670 P10V_BUILTIN_VREPLACE_UN_V4SF, P10V_BUILTIN_VREPLACE_UN_UV2DI,
14671 P10V_BUILTIN_VREPLACE_UN_V2DI, P10V_BUILTIN_VREPLACE_UN_V2DF,
14672 P10V_BUILTIN_VSLDB_V16QI, P10V_BUILTIN_VSLDB_V16QI,
14673 P10V_BUILTIN_VSLDB_V8HI, P10V_BUILTIN_VSLDB_V4SI,
14674 P10V_BUILTIN_VSLDB_V2DI, P10V_BUILTIN_VXXSPLTIW_V4SI,
14675 P10V_BUILTIN_VXXSPLTIW_V4SF, P10V_BUILTIN_VXXSPLTID,
14676 P10V_BUILTIN_VXXSPLTI32DX_V4SI, P10V_BUILTIN_VXXSPLTI32DX_V4SF,
14677 P10V_BUILTIN_VXXBLEND_V16QI, P10V_BUILTIN_VXXBLEND_V8HI,
14678 P10V_BUILTIN_VXXBLEND_V4SI, P10V_BUILTIN_VXXBLEND_V2DI,
14679 P10V_BUILTIN_VXXBLEND_V4SF, P10V_BUILTIN_VXXBLEND_V2DF,
14680 P10V_BUILTIN_VSRDB_V16QI, P10V_BUILTIN_VSRDB_V8HI,
14681 P10V_BUILTIN_VSRDB_V4SI, P10V_BUILTIN_VSRDB_V2DI,
14682 P10V_BUILTIN_VSTRIBL, P10V_BUILTIN_VSTRIHL,
14683 P10V_BUILTIN_VSTRIBL_P, P10V_BUILTIN_VSTRIHL_P,
14684 P10V_BUILTIN_VSTRIBR, P10V_BUILTIN_VSTRIHR,
14685 P10V_BUILTIN_VSTRIBR_P, P10V_BUILTIN_VSTRIHR_P,
14686 P10V_BUILTIN_MTVSRBM, P10V_BUILTIN_MTVSRHM,
14687 P10V_BUILTIN_MTVSRWM, P10V_BUILTIN_MTVSRDM,
14688 P10V_BUILTIN_MTVSRQM, P10V_BUILTIN_VCNTMBB,
14689 P10V_BUILTIN_VCNTMBH, P10V_BUILTIN_VCNTMBW,
14690 P10V_BUILTIN_VCNTMBD, P10V_BUILTIN_VEXPANDMB,
14691 P10V_BUILTIN_VEXPANDMH, P10V_BUILTIN_VEXPANDMW,
14692 P10V_BUILTIN_VEXPANDMD, P10V_BUILTIN_VEXPANDMQ,
14693 P10V_BUILTIN_VEXTRACTMB, P10V_BUILTIN_VEXTRACTMH,
14694 P10V_BUILTIN_VEXTRACTMW, P10V_BUILTIN_VEXTRACTMD,
14695 P10V_BUILTIN_VEXTRACTMQ, P10V_BUILTIN_XVTLSBB_ZEROS,
14696 P10V_BUILTIN_XVTLSBB_ONES respectively.
14697 * config/rs6000/rs6000-call.c: Ditto above, change P10_BUILTIN_name to
14698 P10V_BUILTIN_name.
14699 (P10_BUILTIN_XVCVSPBF16, P10_BUILTIN_XVCVBF16SP): Change to
14700 P10V_BUILTIN_XVCVSPBF16, P10V_BUILTIN_XVCVBF16SP respectively.
14701
14702 2020-08-19 Bill Schmidt <wschmidt@linux.ibm.com>
14703
14704 * config/rs6000/rs6000-logue.c (rs6000_decl_ok_for_sibcall):
14705 Sibcalls are always legal when the caller doesn't preserve r2.
14706
14707 2020-08-19 Uroš Bizjak <ubizjak@gmail.com>
14708
14709 * config/i386/i386-expand.c (ix86_expand_builtin)
14710 [case IX86_BUILTIN_ENQCMD, case IX86_BUILTIN_ENQCMDS]:
14711 Rewrite expansion to use code_for_enqcmd.
14712 [case IX86_BUILTIN_WRSSD, case IX86_BUILTIN_WRSSQ]:
14713 Rewrite expansion to use code_for_wrss.
14714 [case IX86_BUILTIN_WRUSSD, case IX86_BUILTIN_WRUSSD]:
14715 Rewrite expansion to use code_for_wrss.
14716
14717 2020-08-19 Feng Xue <fxue@os.amperecomputing.com>
14718
14719 PR tree-optimization/94234
14720 * match.pd ((PTR_A + OFF) - (PTR_B + OFF)) -> (PTR_A - PTR_B): New
14721 simplification.
14722
14723 2020-08-19 H.J. Lu <hjl.tools@gmail.com>
14724
14725 * common/config/i386/cpuinfo.h (get_intel_cpu): Detect Rocket
14726 Lake and Alder Lake.
14727
14728 2020-08-19 Peixin Qiao <qiaopeixin@huawei.com>
14729
14730 * config/aarch64/aarch64.c (aarch64_init_cumulative_args): Remove
14731 "fndecl && TREE_PUBLIC (fndecl)" check since it prevents the funtion
14732 type check when calling via a function pointer or when calling a static
14733 function.
14734
14735 2020-08-19 Kewen Lin <linkw@linux.ibm.com>
14736
14737 * opts-global.c (decode_options): Call target_option_override_hook
14738 before it prints for --help=*.
14739
14740 2020-08-18 Peter Bergner <bergner@linux.ibm.com>
14741
14742 * config/rs6000/rs6000-builtin.def (BU_VSX_1): Rename xvcvbf16sp to
14743 xvcvbf16spn.
14744 * config/rs6000/rs6000-call.c (builtin_function_type): Likewise.
14745 * config/rs6000/vsx.md: Likewise.
14746 * doc/extend.texi: Likewise.
14747
14748 2020-08-18 Aaron Sawdey <acsawdey@linux.ibm.com>
14749
14750 * config/rs6000/rs6000-string.c (gen_lxvl_stxvl_move):
14751 Helper function.
14752 (expand_block_move): Add lxvl/stxvl, vector pair, and
14753 unaligned VSX.
14754 * config/rs6000/rs6000.c (rs6000_option_override_internal):
14755 Default value for -mblock-ops-vector-pair.
14756 * config/rs6000/rs6000.opt: Add -mblock-ops-vector-pair.
14757
14758 2020-08-18 Aldy Hernandez <aldyh@redhat.com>
14759
14760 * vr-values.c (check_for_binary_op_overflow): Change type of store
14761 to range_query.
14762 (vr_values::adjust_range_with_scev): Abstract most of the code...
14763 (range_of_var_in_loop): ...here. Remove value_range_equiv uses.
14764 (simplify_using_ranges::simplify_using_ranges): Change type of store
14765 to range_query.
14766 * vr-values.h (class range_query): New.
14767 (class simplify_using_ranges): Use range_query.
14768 (class vr_values): Add OVERRIDE to get_value_range.
14769 (range_of_var_in_loop): New.
14770
14771 2020-08-18 Martin Sebor <msebor@redhat.com>
14772
14773 PR middle-end/96665
14774 PR middle-end/78257
14775 * expr.c (convert_to_bytes): Replace statically allocated buffer with
14776 a dynamically allocated one of sufficient size.
14777
14778 2020-08-18 Martin Sebor <msebor@redhat.com>
14779
14780 PR tree-optimization/96670
14781 PR middle-end/78257
14782 * gimple-fold.c (gimple_fold_builtin_memchr): Call byte_representation
14783 to get it, not string_constant.
14784
14785 2020-08-18 Hu Jiangping <hujiangping@cn.fujitsu.com>
14786
14787 * doc/gimple.texi (gimple_debug_begin_stmt_p): Add return type.
14788 (gimple_debug_inline_entry_p, gimple_debug_nonbind_marker_p): Likewise.
14789
14790 2020-08-18 Martin Sebor <msebor@redhat.com>
14791
14792 * fold-const.c (native_encode_expr): Update comment.
14793
14794 2020-08-18 Uroš Bizjak <ubizjak@gmail.com>
14795
14796 PR target/96536
14797 * config/i386/i386.md (restore_stack_nonlocal): Add missing compare
14798 RTX. Rewrite expander to use high-level functions in RTL construction.
14799
14800 2020-08-18 liuhongt <hongtao.liu@intel.com>
14801
14802 PR target/96562
14803 PR target/93897
14804 * config/i386/i386-expand.c (ix86_expand_pinsr): Don't use
14805 pinsr for TImode.
14806 (ix86_expand_pextr): Don't use pextr for TImode.
14807
14808 2020-08-17 Uroš Bizjak <ubizjak@gmail.com>
14809
14810 * config/i386/i386-builtin.def (__builtin_ia32_bextri_u32)
14811 (__builtin_ia32_bextri_u64): Use CODE_FOR_nothing.
14812 * config/i386/i386.md (@tbm_bextri_<mode>):
14813 Implement as parametrized name pattern.
14814 (@rdrand<mode>): Ditto.
14815 (@rdseed<mode>): Ditto.
14816 * config/i386/i386-expand.c (ix86_expand_builtin)
14817 [case IX86_BUILTIN_BEXTRI32, case IX86_BUILTIN_BEXTRI64]:
14818 Update for parameterized name patterns.
14819 [case IX86_BUILTIN_RDRAND16_STEP, case IX86_BUILTIN_RDRAND32_STEP]
14820 [case IX86_BUILTIN_RDRAND64_STEP]: Ditto.
14821 [case IX86_BUILTIN_RDSEED16_STEP, case IX86_BUILTIN_RDSEED32_STEP]
14822 [case IX86_BUILTIN_RDSEED64_STEP]: Ditto.
14823
14824 2020-08-17 Aldy Hernandez <aldyh@redhat.com>
14825
14826 * vr-values.c (vr_values::get_value_range): Add stmt param.
14827 (vr_values::extract_range_from_comparison): Same.
14828 (vr_values::extract_range_from_assignment): Pass stmt to
14829 extract_range_from_comparison.
14830 (vr_values::adjust_range_with_scev): Pass stmt to get_value_range.
14831 (simplify_using_ranges::vrp_evaluate_conditional): Add stmt param.
14832 Pass stmt to get_value_range.
14833 (simplify_using_ranges::vrp_visit_cond_stmt): Pass stmt to
14834 get_value_range.
14835 (simplify_using_ranges::simplify_abs_using_ranges): Same.
14836 (simplify_using_ranges::simplify_div_or_mod_using_ranges): Same.
14837 (simplify_using_ranges::simplify_bit_ops_using_ranges): Same.
14838 (simplify_using_ranges::simplify_cond_using_ranges_1): Same.
14839 (simplify_using_ranges::simplify_switch_using_ranges): Same.
14840 (simplify_using_ranges::simplify_float_conversion_using_ranges): Same.
14841 * vr-values.h (class vr_values): Add stmt arg to
14842 vrp_evaluate_conditional_warnv_with_ops.
14843 Add stmt arg to extract_range_from_comparison and get_value_range.
14844 (simplify_using_ranges::get_value_range): Add stmt arg.
14845
14846 2020-08-17 liuhongt <hongtao.liu@intel.com>
14847
14848 PR target/96350
14849 * config/i386/i386.c (ix86_legitimate_constant_p): Return
14850 false for ENDBR immediate.
14851 (ix86_legitimate_address_p): Ditto.
14852 * config/i386/predicates.md
14853 (x86_64_immediate_operand): Exclude ENDBR immediate.
14854 (x86_64_zext_immediate_operand): Ditto.
14855 (x86_64_dwzext_immediate_operand): Ditto.
14856 (ix86_endbr_immediate_operand): New predicate.
14857
14858 2020-08-16 Roger Sayle <roger@nextmovesoftware.com>
14859
14860 * simplify-rtx.c (simplify_unary_operation_1) [SIGN_EXTEND]:
14861 Simplify (sign_extend:M (truncate:N (lshiftrt:M x C))) to
14862 (ashiftrt:M x C) when the shift sets the high bits appropriately.
14863
14864 2020-08-14 Martin Sebor <msebor@redhat.com>
14865
14866 PR middle-end/78257
14867 * builtins.c (expand_builtin_memory_copy_args): Rename called function.
14868 (expand_builtin_stpcpy_1): Remove argument from call.
14869 (expand_builtin_memcmp): Rename called function.
14870 (inline_expand_builtin_bytecmp): Same.
14871 * expr.c (convert_to_bytes): New function.
14872 (constant_byte_string): New function (formerly string_constant).
14873 (string_constant): Call constant_byte_string.
14874 (byte_representation): New function.
14875 * expr.h (byte_representation): Declare.
14876 * fold-const-call.c (fold_const_call): Rename called function.
14877 * fold-const.c (c_getstr): Remove an argument.
14878 (getbyterep): Define a new function.
14879 * fold-const.h (c_getstr): Remove an argument.
14880 (getbyterep): Declare a new function.
14881 * gimple-fold.c (gimple_fold_builtin_memory_op): Rename callee.
14882 (gimple_fold_builtin_string_compare): Same.
14883 (gimple_fold_builtin_memchr): Same.
14884
14885 2020-08-14 David Malcolm <dmalcolm@redhat.com>
14886
14887 * doc/analyzer.texi (Overview): Add tip about how to get a
14888 gimple dump if the analyzer ICEs.
14889
14890 2020-08-14 Uroš Bizjak <ubizjak@gmail.com>
14891
14892 * config/i386/i386-builtin.def (__builtin_ia32_llwpcb)
14893 (__builtin_ia32_slwpcb, __builtin_ia32_lwpval32)
14894 (__builtin_ia32_lwpval64, __builtin_ia32_lwpins32)
14895 (__builtin_ia32_lwpins64): Use CODE_FOR_nothing.
14896 * config/i386/i386.md (@lwp_llwpcb<mode>):
14897 Implement as parametrized name pattern.
14898 (@lwp_slwpcb<mode>): Ditto.
14899 (@lwp_lwpval<mode>): Ditto.
14900 (@lwp_lwpins<mode>): Ditto.
14901 * config/i386/i386-expand.c (ix86_expand_special_args_builtin)
14902 [case VOID_FTYPE_UINT_UINT_UINT, case VOID_FTYPE_UINT64_UINT_UINT]
14903 [case UCHAR_FTYPE_UINT_UINT_UINT, case UCHAR_FTYPE_UINT64_UINT_UINT]:
14904 Remove.
14905 (ix86_expand_builtin)
14906 [ case IX86_BUILTIN_LLWPCB, case IX86_BUILTIN_LLWPCB]:
14907 Update for parameterized name patterns.
14908 [case IX86_BUILTIN_LWPVAL32, case IX86_BUILTIN_LWPVAL64]
14909 [case IX86_BUILTIN_LWPINS32, case IX86_BUILTIN_LWPINS64]: Expand here.
14910
14911 2020-08-14 Lewis Hyatt <lhyatt@gmail.com>
14912
14913 * common.opt: Add new option -fdiagnostics-plain-output.
14914 * doc/invoke.texi: Document it.
14915 * opts-common.c (decode_cmdline_options_to_array): Implement it.
14916 (decode_cmdline_option): Add missing const qualifier to argv.
14917
14918 2020-08-14 Jakub Jelinek <jakub@redhat.com>
14919 Jonathan Wakely <jwakely@redhat.com>
14920 Jonathan Wakely <jwakely@redhat.com>
14921
14922 * system.h: Include type_traits.
14923 * vec.h (vec<T, A, vl_embed>::embedded_size): Use offsetof and asserts
14924 on vec_stdlayout, which is conditionally a vec (for standard layout T)
14925 and otherwise vec_embedded.
14926
14927 2020-08-14 Jojo R <jiejie_rong@c-sky.com>
14928
14929 * config/csky/csky-elf.h (ASM_SPEC): Use mfloat-abi.
14930 * config/csky/csky-linux-elf.h (ASM_SPEC): mfloat-abi.
14931
14932 2020-08-13 David Malcolm <dmalcolm@redhat.com>
14933
14934 PR analyzer/93032
14935 PR analyzer/93938
14936 PR analyzer/94011
14937 PR analyzer/94099
14938 PR analyzer/94399
14939 PR analyzer/94458
14940 PR analyzer/94503
14941 PR analyzer/94640
14942 PR analyzer/94688
14943 PR analyzer/94689
14944 PR analyzer/94839
14945 PR analyzer/95026
14946 PR analyzer/95042
14947 PR analyzer/95240
14948 * Makefile.in (ANALYZER_OBJS): Add analyzer/region.o,
14949 analyzer/region-model-impl-calls.o,
14950 analyzer/region-model-manager.o,
14951 analyzer/region-model-reachability.o, analyzer/store.o, and
14952 analyzer/svalue.o.
14953 * doc/analyzer.texi: Update for changes to analyzer
14954 implementation.
14955 * tristate.h (tristate::get_value): New accessor.
14956
14957 2020-08-13 Uroš Bizjak <ubizjak@gmail.com>
14958
14959 * config/i386/i386-builtin.def (CET_NORMAL): Merge to CET BDESC array.
14960 (__builtin_ia32_rddspd, __builtin_ia32_rddspq, __builtin_ia32_incsspd)
14961 (__builtin_ia32_incsspq, __builtin_ia32_wrssd, __builtin_ia32_wrssq)
14962 (__builtin_ia32_wrussd, __builtin_ia32_wrussq): Use CODE_FOR_nothing.
14963 * config/i386/i386-builtins.c: Remove handling of CET_NORMAL builtins.
14964 * config/i386/i386.md (@rdssp<mode>): Implement as parametrized
14965 name pattern. Use SWI48 mode iterator. Introduce input operand
14966 and remove explicit XOR zeroing from insn template.
14967 (@incssp<mode>): Implement as parametrized name pattern.
14968 Use SWI48 mode iterator.
14969 (@wrss<mode>): Ditto.
14970 (@wruss<mode>): Ditto.
14971 (rstorssp): Remove expander. Rename insn pattern from *rstorssp<mode>.
14972 Use DImode memory operand.
14973 (clrssbsy): Remove expander. Rename insn pattern from *clrssbsy<mode>.
14974 Use DImode memory operand.
14975 (save_stack_nonlocal): Update for parametrized name patterns.
14976 Use cleared register as an argument to gen_rddsp.
14977 (restore_stack_nonlocal): Update for parametrized name patterns.
14978 * config/i386/i386-expand.c (ix86_expand_builtin):
14979 [case IX86_BUILTIN_RDSSPD, case IX86_BUILTIN_RDSSPQ]: Expand here.
14980 [case IX86_BUILTIN_INCSSPD, case IX86_BUILTIN_INCSSPQ]: Ditto.
14981 [case IX86_BUILTIN_RSTORSSP, case IX86_BUILTIN_CLRSSBSY]:
14982 Generate DImode memory operand.
14983 [case IX86_BUILTIN_WRSSD, case IX86_BUILTIN_WRSSQ]
14984 [case IX86_BUILTIN_WRUSSD, case IX86_BUILTIN_WRUSSD]:
14985 Update for parameterized name patterns.
14986
14987 2020-08-13 Peter Bergner <bergner@linux.ibm.com>
14988
14989 PR target/96506
14990 * config/rs6000/rs6000-call.c (rs6000_promote_function_mode): Disallow
14991 MMA types as return values.
14992 (rs6000_function_arg): Disallow MMA types as function arguments.
14993
14994 2020-08-13 Richard Sandiford <richard.sandiford@arm.com>
14995
14996 Revert:
14997 2020-08-12 Peixin Qiao <qiaopeixin@huawei.com>
14998
14999 * config/aarch64/aarch64.c (aarch64_function_value): Add if
15000 condition to check ag_mode after entering if condition of
15001 aarch64_vfp_is_call_or_return_candidate. If TARGET_FLOAT is
15002 set as false by -mgeneral-regs-only, report the diagnostic
15003 information of -mgeneral-regs-only imcompatible with the use
15004 of fp/simd register(s).
15005
15006 2020-08-13 Martin Liska <mliska@suse.cz>
15007
15008 PR ipa/96482
15009 * ipa-cp.c (ipcp_bits_lattice::meet_with_1): Mask m_value
15010 with m_mask.
15011
15012 2020-08-13 Jakub Jelinek <jakub@redhat.com>
15013
15014 * gimplify.c (gimplify_omp_taskloop_expr): New function.
15015 (gimplify_omp_for): Use it. For OMP_FOR_NON_RECTANGULAR
15016 loops adjust in outer taskloop the var-outer decls.
15017 * omp-expand.c (expand_omp_taskloop_for_inner): Handle non-rectangular
15018 loops.
15019 (expand_omp_for): Don't reject non-rectangular taskloop.
15020 * omp-general.c (omp_extract_for_data): Don't assert that
15021 non-rectangular loops have static schedule, instead treat loop->m1
15022 or loop->m2 as if loop->n1 or loop->n2 is non-constant.
15023
15024 2020-08-13 Hongtao Liu <hongtao.liu@intel.com>
15025
15026 PR target/96246
15027 * config/i386/sse.md (<avx512>_load<mode>_mask,
15028 <avx512>_load<mode>_mask): Extend to generate blendm
15029 instructions.
15030 (<avx512>_blendm<mode>, <avx512>_blendm<mode>): Change
15031 define_insn to define_expand.
15032
15033 2020-08-12 Roger Sayle <roger@nextmovesoftware.com>
15034 Uroš Bizjak <ubizjak@gmail.com>
15035
15036 PR target/96558
15037 * config/i386/i386.md (peephole2): Only reorder register clearing
15038 instructions to allow use of xor for general registers.
15039
15040 2020-08-12 Martin Liska <mliska@suse.cz>
15041
15042 PR ipa/96482
15043 * ipa-cp.c (ipcp_bits_lattice::meet_with_1): Drop value bits
15044 for bits that are unknown.
15045 (ipcp_bits_lattice::set_to_constant): Likewise.
15046 * tree-ssa-ccp.c (get_default_value): Add sanity check that
15047 IPA CP bit info has all bits set to zero in bits that
15048 are unknown.
15049
15050 2020-08-12 Peixin Qiao <qiaopeixin@huawei.com>
15051
15052 * config/aarch64/aarch64.c (aarch64_function_value): Add if
15053 condition to check ag_mode after entering if condition of
15054 aarch64_vfp_is_call_or_return_candidate. If TARGET_FLOAT is
15055 set as false by -mgeneral-regs-only, report the diagnostic
15056 information of -mgeneral-regs-only imcompatible with the use
15057 of fp/simd register(s).
15058
15059 2020-08-12 Jakub Jelinek <jakub@redhat.com>
15060
15061 PR tree-optimization/96535
15062 * toplev.c (process_options): Move flag_unroll_loops and
15063 flag_cunroll_grow_size handling from here to ...
15064 * opts.c (finish_options): ... here. For flag_cunroll_grow_size,
15065 don't check for AUTODETECT_VALUE, but instead check
15066 opts_set->x_flag_cunroll_grow_size.
15067 * common.opt (funroll-completely-grow-size): Default to 0.
15068 * config/rs6000/rs6000.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
15069 Redefine.
15070 (rs6000_override_options_after_change): New function.
15071 (rs6000_option_override_internal): Call it. Move there the
15072 flag_cunroll_grow_size, unroll_only_small_loops and
15073 flag_rename_registers handling.
15074
15075 2020-08-12 Tom de Vries <tdevries@suse.de>
15076
15077 * config/nvptx/nvptx.c (nvptx_assemble_decl_begin): Make elt_size an
15078 unsigned HOST_WIDE_INT. Print init_frag.remaining using
15079 HOST_WIDE_INT_PRINT_UNSIGNED.
15080
15081 2020-08-12 Roger Sayle <roger@nextmovesoftware.com>
15082 Uroš Bizjak <ubizjak@gmail.com>
15083
15084 * config/i386/i386.md (peephole2): Reduce unnecessary
15085 register shuffling produced by register allocation.
15086
15087 2020-08-12 Aldy Hernandez <aldyh@redhat.com>
15088
15089 * ipa-fnsummary.c (evaluate_conditions_for_known_args): Use vec<>
15090 instead of std::vector<>.
15091 (evaluate_properties_for_edge): Same.
15092 (ipa_fn_summary_t::duplicate): Same.
15093 (estimate_ipcp_clone_size_and_time): Same.
15094 * vec.h (<T, A, vl_embed>::embedded_size): Change vec_embedded
15095 type to contain a char[].
15096
15097 2020-08-12 Andreas Krebbel <krebbel@linux.ibm.com>
15098
15099 PR target/96308
15100 * config/s390/s390.c (s390_cannot_force_const_mem): Reject an
15101 unary minus for everything not being a numeric constant.
15102 (legitimize_tls_address): Move a NEG out of the CONST rtx.
15103
15104 2020-08-12 Andreas Krebbel <krebbel@linux.ibm.com>
15105
15106 PR target/96456
15107 * config/s390/s390.h (TARGET_NONSIGNALING_VECTOR_COMPARE_OK): New
15108 macro.
15109 * config/s390/vector.md (vcond_comparison_operator): Use new macro
15110 for the check.
15111
15112 2020-08-11 Jakub Jelinek <jakub@redhat.com>
15113
15114 PR rtl-optimization/96539
15115 * expr.c (emit_block_move_hints): Don't copy anything if x and y
15116 are the same and neither is MEM_VOLATILE_P.
15117
15118 2020-08-11 Jakub Jelinek <jakub@redhat.com>
15119
15120 PR c/96549
15121 * tree.c (get_narrower): Use TREE_TYPE (ret) instead of
15122 TREE_TYPE (win) for COMPOUND_EXPRs.
15123
15124 2020-08-11 Jan Hubicka <hubicka@ucw.cz>
15125
15126 * predict.c (not_loop_guard_equal_edge_p): New function.
15127 (maybe_predict_edge): New function.
15128 (predict_paths_for_bb): Use it.
15129 (predict_paths_leading_to_edge): Use it.
15130
15131 2020-08-11 Martin Liska <mliska@suse.cz>
15132
15133 * dbgcnt.def (DEBUG_COUNTER): Add ipa_cp_bits.
15134 * ipa-cp.c (ipcp_store_bits_results): Use it when we store known
15135 bits for parameters.
15136
15137 2020-08-10 Marek Polacek <polacek@redhat.com>
15138
15139 * doc/sourcebuild.texi: Document dg-ice.
15140
15141 2020-08-10 Roger Sayle <roger@nextmovesoftware.com>
15142
15143 * config/i386/i386-expand.c (ix86_expand_int_movcc): Expand
15144 signed MIN_EXPR against zero as "x < 0 ? x : 0" instead of
15145 "x <= 0 ? x : 0" to enable sign_bit_compare_p optimizations.
15146
15147 2020-08-10 Aldy Hernandez <aldyh@redhat.com>
15148
15149 * value-range.h (gt_ggc_mx): Declare inline.
15150 (gt_pch_nx): Same.
15151
15152 2020-08-10 Marc Glisse <marc.glisse@inria.fr>
15153
15154 PR tree-optimization/95433
15155 * match.pd (X * C1 == C2): Handle wrapping overflow.
15156 * expr.c (maybe_optimize_mod_cmp): Qualify call to mod_inv.
15157 (mod_inv): Move...
15158 * wide-int.cc (mod_inv): ... here.
15159 * wide-int.h (mod_inv): Declare it.
15160
15161 2020-08-10 Jan Hubicka <hubicka@ucw.cz>
15162
15163 * predict.c (filter_predictions): Document semantics of filter.
15164 (equal_edge_p): Rename to ...
15165 (not_equal_edge_p): ... this; reverse semantics.
15166 (remove_predictions_associated_with_edge): Fix.
15167
15168 2020-08-10 Hongtao Liu <hongtao.liu@intel.com>
15169
15170 PR target/96243
15171 * config/i386/i386-expand.c (ix86_expand_sse_cmp): Refine for
15172 maskcmp.
15173 (ix86_expand_mask_vec_cmp): Change prototype.
15174 * config/i386/i386-protos.h (ix86_expand_mask_vec_cmp): Change prototype.
15175 * config/i386/i386.c (ix86_print_operand): Remove operand
15176 modifier 'I'.
15177 * config/i386/sse.md
15178 (*<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>): Deleted.
15179 (*<avx512>_cmp<mode>3<mask_scalar_merge_name>): Ditto.
15180 (*<avx512>_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
15181 (*<avx512>_ucmp<mode>3<mask_scalar_merge_name>,
15182 avx512f_maskcmp<mode>3): Ditto.
15183
15184 2020-08-09 Roger Sayle <roger@nextmovesoftware.com>
15185
15186 * expmed.c (init_expmed_one_conv): Restore all->reg's mode.
15187 (init_expmed_one_mode): Set all->reg to desired mode.
15188
15189 2020-08-08 Peter Bergner <bergner@linux.ibm.com>
15190
15191 PR target/96530
15192 * config/rs6000/rs6000.c (rs6000_invalid_conversion): Use canonical
15193 types for type comparisons. Refactor code to simplify it.
15194
15195 2020-08-08 Jakub Jelinek <jakub@redhat.com>
15196
15197 PR fortran/93553
15198 * tree-nested.c (convert_nonlocal_omp_clauses): For
15199 OMP_CLAUSE_REDUCTION, OMP_CLAUSE_LASTPRIVATE and OMP_CLAUSE_LINEAR
15200 save info->new_local_var_chain around walks of the clause gimple
15201 sequences and declare_vars if needed into the sequence.
15202
15203 2020-08-08 Jakub Jelinek <jakub@redhat.com>
15204
15205 PR tree-optimization/96424
15206 * omp-expand.c: Include tree-eh.h.
15207 (expand_omp_for_init_vars): Handle -fexceptions -fnon-call-exceptions
15208 by forcing floating point comparison into a bool temporary.
15209
15210 2020-08-07 Marc Glisse <marc.glisse@inria.fr>
15211
15212 * generic-match-head.c (optimize_vectors_before_lowering_p): New
15213 function.
15214 * gimple-match-head.c (optimize_vectors_before_lowering_p):
15215 Likewise.
15216 * match.pd ((v ? w : 0) ? a : b, c1 ? c2 ? a : b : b): Use it.
15217
15218 2020-08-07 Richard Biener <rguenther@suse.de>
15219
15220 PR tree-optimization/96514
15221 * tree-if-conv.c (if_convertible_bb_p): If the last stmt
15222 is a call that is control-altering, fail.
15223
15224 2020-08-07 Jose E. Marchesi <jose.marchesi@oracle.com>
15225
15226 * config/bpf/bpf.md: Remove trailing whitespaces.
15227 * config/bpf/constraints.md: Likewise.
15228 * config/bpf/predicates.md: Likewise.
15229
15230 2020-08-07 Michael Meissner <meissner@linux.ibm.com>
15231
15232 * config/rs6000/rs6000.md (bswaphi2_reg): Add ISA 3.1 support.
15233 (bswapsi2_reg): Add ISA 3.1 support.
15234 (bswapdi2): Rename bswapdi2_xxbrd to bswapdi2_brd.
15235 (bswapdi2_brd,bswapdi2_xxbrd): Rename. Add ISA 3.1 support.
15236
15237 2020-08-07 Alan Modra <amodra@gmail.com>
15238
15239 PR target/96493
15240 * config/rs6000/predicates.md (current_file_function_operand): Don't
15241 accept functions that differ in r2 usage.
15242
15243 2020-08-06 Hans-Peter Nilsson <hp@bitrange.com>
15244
15245 * config/mmix/mmix.md (MM): New mode_iterator.
15246 ("mov<mode>"): New expander to expand for all MM-modes.
15247 ("*movqi_expanded", "*movhi_expanded", "*movsi_expanded")
15248 ("*movsf_expanded", "*movdf_expanded"): Rename from the
15249 corresponding mov<M> named pattern. Add to the condition that
15250 either operand must be a register_operand.
15251 ("*movdi_expanded"): Similar, but also allow STCO in the condition.
15252
15253 2020-08-06 Richard Sandiford <richard.sandiford@arm.com>
15254
15255 PR target/96191
15256 * config/arm/arm.md (arm_stack_protect_test_insn): Zero out
15257 operand 2 after use.
15258 * config/arm/thumb1.md (thumb1_stack_protect_test_insn): Likewise.
15259
15260 2020-08-06 Peter Bergner <bergner@linux.ibm.com>
15261
15262 PR target/96446
15263 * config/rs6000/mma.md (*movpxi): Add xxsetaccz generation.
15264 Disable split for zero constant source operand.
15265 (mma_xxsetaccz): Change to define_expand. Call gen_movpxi.
15266
15267 2020-08-06 Jakub Jelinek <jakub@redhat.com>
15268
15269 PR tree-optimization/96480
15270 * tree-ssa-reassoc.c (suitable_cond_bb): Add TEST_SWAPPED_P argument.
15271 If TEST_BB ends in cond and has one edge to *OTHER_BB and another
15272 through an empty bb to that block too, if PHI args don't match, retry
15273 them through the other path from TEST_BB.
15274 (maybe_optimize_range_tests): Adjust callers. Handle such LAST_BB
15275 through inversion of the condition.
15276
15277 2020-08-06 Jose E. Marchesi <jose.marchesi@oracle.com>
15278
15279 * config/bpf/bpf-helpers.h (KERNEL_HELPER): Define.
15280 (KERNEL_VERSION): Remove.
15281 * config/bpf/bpf-helpers.def: Delete.
15282 * config/bpf/bpf.c (bpf_handle_fndecl_attribute): New function.
15283 (bpf_attribute_table): Define.
15284 (bpf_helper_names): Delete.
15285 (bpf_helper_code): Likewise.
15286 (enum bpf_builtins): Adjust to new helpers mechanism.
15287 (bpf_output_call): Likewise.
15288 (bpf_init_builtins): Likewise.
15289 (bpf_init_builtins): Likewise.
15290 * doc/extend.texi (BPF Function Attributes): New section.
15291 (BPF Kernel Helpers): Delete section.
15292
15293 2020-08-06 Richard Biener <rguenther@suse.de>
15294
15295 PR tree-optimization/96491
15296 * tree-ssa-sink.c (sink_common_stores_to_bb): Avoid
15297 sinking across abnormal edges.
15298
15299 2020-08-06 Richard Biener <rguenther@suse.de>
15300
15301 PR tree-optimization/96483
15302 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
15303 POLY_INT_CST.
15304
15305 2020-08-06 Richard Biener <rguenther@suse.de>
15306
15307 * graphite-isl-ast-to-gimple.c (ivs_params): Use hash_map instead
15308 of std::map.
15309 (ivs_params_clear): Adjust.
15310 (gcc_expression_from_isl_ast_expr_id): Likewise.
15311 (graphite_create_new_loop): Likewise.
15312 (add_parameters_to_ivs_params): Likewise.
15313
15314 2020-08-06 Roger Sayle <roger@nextmovesoftware.com>
15315 Uroš Bizjak <ubizjak@gmail.com>
15316
15317 * config/i386/i386.md (MAXMIN_IMODE): No longer needed.
15318 (<maxmin><mode>3): Support SWI248 and general_operand for
15319 second operand, when TARGET_CMOVE.
15320 (<maxmin><mode>3_1 splitter): Optimize comparisons against
15321 0, 1 and -1 to use "test" instead of "cmp".
15322 (*<maxmin>di3_doubleword): Likewise, allow general_operand
15323 and enable on TARGET_CMOVE.
15324 (peephole2): Convert clearing a register after a flag setting
15325 instruction into an xor followed by the original flag setter.
15326
15327 2020-08-06 Gerald Pfeifer <gerald@pfeifer.com>
15328
15329 * ipa-fnsummary.c (INCLUDE_VECTOR): Define.
15330 Remove direct inclusion of <vector>.
15331
15332 2020-08-06 Kewen Lin <linkw@gcc.gnu.org>
15333
15334 * config/rs6000/rs6000.c (rs6000_adjust_vect_cost_per_loop): New
15335 function.
15336 (rs6000_finish_cost): Call rs6000_adjust_vect_cost_per_loop.
15337 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Add cost
15338 modeling for vector with length.
15339 (vect_rgroup_iv_might_wrap_p): New function, factored out from...
15340 * tree-vect-loop-manip.c (vect_set_loop_controls_directly): ...this.
15341 Update function comment.
15342 * tree-vect-stmts.c (vect_gen_len): Update function comment.
15343 * tree-vectorizer.h (vect_rgroup_iv_might_wrap_p): New declare.
15344
15345 2020-08-06 Kewen Lin <linkw@linux.ibm.com>
15346
15347 * tree-vectorizer.c (try_vectorize_loop_1): Skip the epilogue loops
15348 for dbgcnt check.
15349
15350 2020-08-05 Marc Glisse <marc.glisse@inria.fr>
15351
15352 PR tree-optimization/95906
15353 PR target/70314
15354 * match.pd ((c ? a : b) op d, (c ? a : b) op (c ? d : e),
15355 (v ? w : 0) ? a : b, c1 ? c2 ? a : b : b): New transformations.
15356 (op (c ? a : b)): Update to match the new transformations.
15357
15358 2020-08-05 Richard Sandiford <richard.sandiford@arm.com>
15359
15360 PR target/96191
15361 * config/aarch64/aarch64.md (stack_protect_test_<mode>): Set the
15362 CC register directly, instead of a GPR. Replace the original GPR
15363 destination with an extra scratch register. Zero out operand 3
15364 after use.
15365 (stack_protect_test): Update accordingly.
15366
15367 2020-08-05 Richard Sandiford <richard.sandiford@arm.com>
15368
15369 * config/aarch64/aarch64.md (load_pair_sw_<SX:mode><SX2:mode>)
15370 (load_pair_dw_<DX:mode><DX2:mode>, load_pair_dw_tftf)
15371 (store_pair_sw_<SX:mode><SX2:mode>)
15372 (store_pair_dw_<DX:mode><DX2:mode>, store_pair_dw_tftf)
15373 (*load_pair_extendsidi2_aarch64)
15374 (*load_pair_zero_extendsidi2_aarch64): Use %z for the memory operand.
15375 * config/aarch64/aarch64-simd.md (load_pair<DREG:mode><DREG2:mode>)
15376 (vec_store_pair<DREG:mode><DREG2:mode>, load_pair<VQ:mode><VQ2:mode>)
15377 (vec_store_pair<VQ:mode><VQ2:mode>): Likewise.
15378
15379 2020-08-05 Richard Biener <rguenther@suse.de>
15380
15381 * tree-ssa-loop-im.c (invariantness_dom_walker): Remove.
15382 (invariantness_dom_walker::before_dom_children): Move to ...
15383 (compute_invariantness): ... this function.
15384 (move_computations): Inline ...
15385 (tree_ssa_lim): ... here, share RPO order and avoid some
15386 cfun references.
15387 (analyze_memory_references): Remove sorting of location
15388 lists, instead assert they are sorted already when checking.
15389 (prev_flag_edges): Remove.
15390 (execute_sm_if_changed): Pass down and adjust prev edge state.
15391 (execute_sm_exit): Likewise.
15392 (hoist_memory_references): Likewise. Commit edge insertions
15393 of each processed exit.
15394 (store_motion_loop): Do not commit edge insertions on all
15395 edges in the function.
15396 (tree_ssa_lim_initialize): Do not call alloc_aux_for_edges.
15397 (tree_ssa_lim_finalize): Do not call free_aux_for_edges.
15398
15399 2020-08-05 Richard Biener <rguenther@suse.de>
15400
15401 * genmatch.c (fail_label): New global.
15402 (expr::gen_transform): Branch to fail_label instead of
15403 returning. Fix indent of call argument checking.
15404 (dt_simplify::gen_1): Compute and emit fail_label, branch
15405 to it instead of returning early.
15406
15407 2020-08-05 Jakub Jelinek <jakub@redhat.com>
15408
15409 * omp-expand.c (expand_omp_for): Don't disallow combined non-rectangular
15410 loops.
15411
15412 2020-08-05 Jakub Jelinek <jakub@redhat.com>
15413
15414 PR middle-end/96459
15415 * omp-low.c (lower_omp_taskreg): Call lower_reduction_clauses even in
15416 for host teams.
15417
15418 2020-08-05 Jakub Jelinek <jakub@redhat.com>
15419
15420 * omp-expand.c (expand_omp_for_init_counts): Remember
15421 first_inner_iterations, factor and n1o from the number of iterations
15422 computation in *fd.
15423 (expand_omp_for_init_vars): Use more efficient logical iteration number
15424 to actual iterator values computation even for non-rectangular loops
15425 where number of loop iterations could not be computed at compile time.
15426
15427 2020-08-05 2020-08-04 Carl Love <cel@us.ibm.com>
15428
15429 * config/rs6000/altivec.h (vec_blendv, vec_permx): Add define.
15430 * config/rs6000/altivec.md (UNSPEC_XXBLEND, UNSPEC_XXPERMX.): New
15431 unspecs.
15432 (VM3): New define_mode.
15433 (VM3_char): New define_attr.
15434 (xxblend_<mode> mode VM3): New define_insn.
15435 (xxpermx): New define_expand.
15436 (xxpermx_inst): New define_insn.
15437 * config/rs6000/rs6000-builtin.def (VXXBLEND_V16QI, VXXBLEND_V8HI,
15438 VXXBLEND_V4SI, VXXBLEND_V2DI, VXXBLEND_V4SF, VXXBLEND_V2DF): New
15439 BU_P10V_3 definitions.
15440 (XXBLEND): New BU_P10_OVERLOAD_3 definition.
15441 (XXPERMX): New BU_P10_OVERLOAD_4 definition.
15442 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
15443 (P10_BUILTIN_VXXPERMX): Add if statement.
15444 * config/rs6000/rs6000-call.c (P10_BUILTIN_VXXBLEND_V16QI,
15445 P10_BUILTIN_VXXBLEND_V8HI, P10_BUILTIN_VXXBLEND_V4SI,
15446 P10_BUILTIN_VXXBLEND_V2DI, P10_BUILTIN_VXXBLEND_V4SF,
15447 P10_BUILTIN_VXXBLEND_V2DF, P10_BUILTIN_VXXPERMX): Define
15448 overloaded arguments.
15449 (rs6000_expand_quaternop_builtin): Add if case for CODE_FOR_xxpermx.
15450 (builtin_quaternary_function_type): Add v16uqi_type and xxpermx_type
15451 variables, add case statement for P10_BUILTIN_VXXPERMX.
15452 (builtin_function_type): Add case statements for
15453 P10_BUILTIN_VXXBLEND_V16QI, P10_BUILTIN_VXXBLEND_V8HI,
15454 P10_BUILTIN_VXXBLEND_V4SI, P10_BUILTIN_VXXBLEND_V2DI.
15455 * doc/extend.texi: Add documentation for vec_blendv and vec_permx.
15456
15457 2020-08-05 2020-08-04 Carl Love <cel@us.ibm.com>
15458
15459 * config/rs6000/altivec.h (vec_splati, vec_splatid, vec_splati_ins):
15460 Add defines.
15461 * config/rs6000/altivec.md (UNSPEC_XXSPLTIW, UNSPEC_XXSPLTID,
15462 UNSPEC_XXSPLTI32DX): New.
15463 (vxxspltiw_v4si, vxxspltiw_v4sf_inst, vxxspltidp_v2df_inst,
15464 vxxsplti32dx_v4si_inst, vxxsplti32dx_v4sf_inst): New define_insn.
15465 (vxxspltiw_v4sf, vxxspltidp_v2df, vxxsplti32dx_v4si,
15466 vxxsplti32dx_v4sf.): New define_expands.
15467 * config/rs6000/predicates.md (u1bit_cint_operand,
15468 s32bit_cint_operand, c32bit_cint_operand): New predicates.
15469 * config/rs6000/rs6000-builtin.def (VXXSPLTIW_V4SI, VXXSPLTIW_V4SF,
15470 VXXSPLTID): New definitions.
15471 (VXXSPLTI32DX_V4SI, VXXSPLTI32DX_V4SF): New BU_P10V_3
15472 definitions.
15473 (XXSPLTIW, XXSPLTID): New definitions.
15474 (XXSPLTI32DX): Add definitions.
15475 * config/rs6000/rs6000-call.c (P10_BUILTIN_VEC_XXSPLTIW,
15476 P10_BUILTIN_VEC_XXSPLTID, P10_BUILTIN_VEC_XXSPLTI32DX):
15477 New definitions.
15478 * config/rs6000/rs6000-protos.h (rs6000_constF32toI32): New extern
15479 declaration.
15480 * config/rs6000/rs6000.c (rs6000_constF32toI32): New function.
15481 * doc/extend.texi: Add documentation for vec_splati,
15482 vec_splatid, and vec_splati_ins.
15483
15484 2020-08-05 2020-08-04 Carl Love <cel@us.ibm.com>
15485
15486 * config/rs6000/altivec.h (vec_sldb, vec_srdb): New defines.
15487 * config/rs6000/altivec.md (UNSPEC_SLDB, UNSPEC_SRDB): New.
15488 (SLDB_lr): New attribute.
15489 (VSHIFT_DBL_LR): New iterator.
15490 (vs<SLDB_lr>db_<mode>): New define_insn.
15491 * config/rs6000/rs6000-builtin.def (VSLDB_V16QI, VSLDB_V8HI,
15492 VSLDB_V4SI, VSLDB_V2DI, VSRDB_V16QI, VSRDB_V8HI, VSRDB_V4SI,
15493 VSRDB_V2DI): New BU_P10V_3 definitions.
15494 (SLDB, SRDB): New BU_P10_OVERLOAD_3 definitions.
15495 * config/rs6000/rs6000-call.c (P10_BUILTIN_VEC_SLDB,
15496 P10_BUILTIN_VEC_SRDB): New definitions.
15497 (rs6000_expand_ternop_builtin) [CODE_FOR_vsldb_v16qi,
15498 CODE_FOR_vsldb_v8hi, CODE_FOR_vsldb_v4si, CODE_FOR_vsldb_v2di,
15499 CODE_FOR_vsrdb_v16qi, CODE_FOR_vsrdb_v8hi, CODE_FOR_vsrdb_v4si,
15500 CODE_FOR_vsrdb_v2di]: Add clauses.
15501 * doc/extend.texi: Add description for vec_sldb and vec_srdb.
15502
15503 2020-08-05 2020-08-04 Carl Love <cel@us.ibm.com>
15504
15505 * config/rs6000/altivec.h: Add define for vec_replace_elt and
15506 vec_replace_unaligned.
15507 * config/rs6000/vsx.md (UNSPEC_REPLACE_ELT, UNSPEC_REPLACE_UN): New
15508 unspecs.
15509 (REPLACE_ELT): New mode iterator.
15510 (REPLACE_ELT_char, REPLACE_ELT_sh, REPLACE_ELT_max): New mode attributes.
15511 (vreplace_un_<mode>, vreplace_elt_<mode>_inst): New.
15512 * config/rs6000/rs6000-builtin.def (VREPLACE_ELT_V4SI,
15513 VREPLACE_ELT_UV4SI, VREPLACE_ELT_V4SF, VREPLACE_ELT_UV2DI,
15514 VREPLACE_ELT_V2DF, VREPLACE_UN_V4SI, VREPLACE_UN_UV4SI,
15515 VREPLACE_UN_V4SF, VREPLACE_UN_V2DI, VREPLACE_UN_UV2DI,
15516 VREPLACE_UN_V2DF, (REPLACE_ELT, REPLACE_UN, VREPLACE_ELT_V2DI): New builtin
15517 entries.
15518 * config/rs6000/rs6000-call.c (P10_BUILTIN_VEC_REPLACE_ELT,
15519 P10_BUILTIN_VEC_REPLACE_UN): New builtin argument definitions.
15520 (rs6000_expand_quaternop_builtin): Add 3rd argument checks for
15521 CODE_FOR_vreplace_elt_v4si, CODE_FOR_vreplace_elt_v4sf,
15522 CODE_FOR_vreplace_un_v4si, CODE_FOR_vreplace_un_v4sf.
15523 (builtin_function_type) [P10_BUILTIN_VREPLACE_ELT_UV4SI,
15524 P10_BUILTIN_VREPLACE_ELT_UV2DI, P10_BUILTIN_VREPLACE_UN_UV4SI,
15525 P10_BUILTIN_VREPLACE_UN_UV2DI]: New cases.
15526 * doc/extend.texi: Add description for vec_replace_elt and
15527 vec_replace_unaligned builtins.
15528
15529 2020-08-05 2020-08-04 Carl Love <cel@us.ibm.com>
15530
15531 * config/rs6000/altivec.h (vec_insertl, vec_inserth): New defines.
15532 * config/rs6000/rs6000-builtin.def (VINSERTGPRBL, VINSERTGPRHL,
15533 VINSERTGPRWL, VINSERTGPRDL, VINSERTVPRBL, VINSERTVPRHL, VINSERTVPRWL,
15534 VINSERTGPRBR, VINSERTGPRHR, VINSERTGPRWR, VINSERTGPRDR, VINSERTVPRBR,
15535 VINSERTVPRHR, VINSERTVPRWR): New builtins.
15536 (INSERTL, INSERTH): New builtins.
15537 * config/rs6000/rs6000-call.c (P10_BUILTIN_VEC_INSERTL,
15538 P10_BUILTIN_VEC_INSERTH): New overloaded definitions.
15539 (P10_BUILTIN_VINSERTGPRBL, P10_BUILTIN_VINSERTGPRHL,
15540 P10_BUILTIN_VINSERTGPRWL, P10_BUILTIN_VINSERTGPRDL,
15541 P10_BUILTIN_VINSERTVPRBL, P10_BUILTIN_VINSERTVPRHL,
15542 P10_BUILTIN_VINSERTVPRWL): Add case entries.
15543 * config/rs6000/vsx.md (define_c_enum): Add UNSPEC_INSERTL,
15544 UNSPEC_INSERTR.
15545 (define_expand): Add vinsertvl_<mode>, vinsertvr_<mode>,
15546 vinsertgl_<mode>, vinsertgr_<mode>, mode is VI2.
15547 (define_ins): vinsertvl_internal_<mode>, vinsertvr_internal_<mode>,
15548 vinsertgl_internal_<mode>, vinsertgr_internal_<mode>, mode VEC_I.
15549 * doc/extend.texi: Add documentation for vec_insertl, vec_inserth.
15550
15551 2020-08-05 2020-08-04 Carl Love <cel@us.ibm.com>
15552
15553 * config/rs6000/altivec.md: (UNSPEC_EXTRACTL, UNSPEC_EXTRACTR)
15554 (vextractl<mode>, vextractr<mode>)
15555 (vextractl<mode>_internal, vextractr<mode>_internal for mode VI2)
15556 (VI2): Move to ...
15557 * config/rs6000/vsx.md: (UNSPEC_EXTRACTL, UNSPEC_EXTRACTR)
15558 (vextractl<mode>, vextractr<mode>)
15559 (vextractl<mode>_internal, vextractr<mode>_internal for mode VI2)
15560 (VI2): ..here.
15561 * doc/extend.texi: Update documentation for vec_extractl.
15562 Replace builtin name vec_extractr with vec_extracth. Update
15563 description of vec_extracth.
15564
15565 2020-08-04 Jim Wilson <jimw@sifive.com>
15566
15567 * doc/invoke.texi (AArch64 Options): Delete duplicate
15568 -mstack-protector-guard docs.
15569
15570 2020-08-04 Roger Sayle <roger@nextmovesoftware.com>
15571
15572 * config/nvptx/nvptx.md (smulhi3_highpart, smulsi3_highpart)
15573 (umulhi3_highpart, umulsi3_highpart): New instructions.
15574
15575 2020-08-04 Andrew Stubbs <ams@codesourcery.com>
15576
15577 * config/gcn/gcn-run.c (R_AMDGPU_NONE): Delete.
15578 (R_AMDGPU_ABS32_LO): Delete.
15579 (R_AMDGPU_ABS32_HI): Delete.
15580 (R_AMDGPU_ABS64): Delete.
15581 (R_AMDGPU_REL32): Delete.
15582 (R_AMDGPU_REL64): Delete.
15583 (R_AMDGPU_ABS32): Delete.
15584 (R_AMDGPU_GOTPCREL): Delete.
15585 (R_AMDGPU_GOTPCREL32_LO): Delete.
15586 (R_AMDGPU_GOTPCREL32_HI): Delete.
15587 (R_AMDGPU_REL32_LO): Delete.
15588 (R_AMDGPU_REL32_HI): Delete.
15589 (reserved): Delete.
15590 (R_AMDGPU_RELATIVE64): Delete.
15591
15592 2020-08-04 Omar Tahir <omar.tahir@arm.com>
15593
15594 * config/arm/arm-cpus.in (armv8.1-m.main): Tune for Cortex-M55.
15595
15596 2020-08-04 Hu Jiangping <hujiangping@cn.fujitsu.com>
15597
15598 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Delete
15599 redundant extra_cost variable.
15600
15601 2020-08-04 Zhiheng Xie <xiezhiheng@huawei.com>
15602
15603 * config/aarch64/aarch64-builtins.c (aarch64_call_properties):
15604 Use FLOAT_MODE_P macro instead of enumerating all floating-point
15605 modes and add global flag FLAG_AUTO_FP.
15606
15607 2020-08-04 Jakub Jelinek <jakub@redhat.com>
15608
15609 * doc/extend.texi (symver): Add @cindex for symver function attribute.
15610
15611 2020-08-04 Marc Glisse <marc.glisse@inria.fr>
15612
15613 PR tree-optimization/95433
15614 * match.pd (X * C1 == C2): New transformation.
15615
15616 2020-08-04 Aldy Hernandez <aldyh@redhat.com>
15617
15618 * gimple-ssa-sprintf.c (get_int_range): Adjust for irange API.
15619 (format_integer): Same.
15620 (handle_printf_call): Same.
15621
15622 2020-08-04 Andrew Stubbs <ams@codesourcery.com>
15623
15624 * config/gcn/gcn.md ("<expander>ti3"): New.
15625
15626 2020-08-04 Richard Biener <rguenther@suse.de>
15627
15628 PR tree-optimization/88240
15629 * tree-ssa-sccvn.h (vn_reference_s::punned): New flag.
15630 * tree-ssa-sccvn.c (vn_reference_insert): Initialize punned.
15631 (vn_reference_insert_pieces): Likewise.
15632 (visit_reference_op_call): Likewise.
15633 (visit_reference_op_load): Track whether a ref was punned.
15634 * tree-ssa-pre.c (do_hoist_insertion): Refuse to perform hoist
15635 insertion on punned floating point loads.
15636
15637 2020-08-04 Sudakshina Das <sudi.das@arm.com>
15638
15639 * config/aarch64/aarch64.c (aarch64_gen_store_pair): Add case
15640 for E_V4SImode.
15641 (aarch64_gen_load_pair): Likewise.
15642 (aarch64_copy_one_block_and_progress_pointers): Handle 256 bit copy.
15643 (aarch64_expand_cpymem): Expand copy_limit to 256bits where
15644 appropriate.
15645
15646 2020-08-04 Andrea Corallo <andrea.corallo@arm.com>
15647
15648 * config/aarch64/aarch64.md (aarch64_fjcvtzs): Add missing
15649 clobber.
15650 * doc/sourcebuild.texi (aarch64_fjcvtzs_hw) Document new
15651 target supports option.
15652
15653 2020-08-04 Tom de Vries <tdevries@suse.de>
15654
15655 PR target/96428
15656 * config/nvptx/nvptx.c (nvptx_gen_shuffle): Handle V2SI/V2DI.
15657
15658 2020-08-04 Jakub Jelinek <jakub@redhat.com>
15659
15660 PR middle-end/96426
15661 * tree-vect-generic.c (expand_vector_conversion): Replace .VEC_CONVERT
15662 call with GIMPLE_NOP if there is no lhs.
15663
15664 2020-08-04 Jakub Jelinek <jakub@redhat.com>
15665
15666 PR debug/96354
15667 * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Add IS_DEBUG
15668 argument. Return false instead of gcc_unreachable if it is true and
15669 get_addr_base_and_unit_offset returns NULL.
15670 (fold_stmt_1) <case GIMPLE_DEBUG>: Adjust caller.
15671
15672 2020-08-04 Aldy Hernandez <aldyh@redhat.com>
15673
15674 * vr-values.c (simplify_using_ranges::vrp_evaluate_conditional):
15675 Call is_gimple_min_invariant dropped from previous patch.
15676
15677 2020-08-04 Jakub Jelinek <jakub@redhat.com>
15678
15679 * omp-expand.c (expand_omp_for_init_counts): For triangular loops
15680 compute number of iterations at runtime more efficiently.
15681 (expand_omp_for_init_vars): Adjust immediate dominators.
15682 (extract_omp_for_update_vars): Likewise.
15683
15684 2020-08-04 Aldy Hernandez <aldyh@redhat.com>
15685
15686 * vr-values.c (simplify_using_ranges::two_valued_val_range_p):
15687 Use irange API.
15688
15689 2020-08-04 Aldy Hernandez <aldyh@redhat.com>
15690
15691 * vr-values.c (simplify_conversion_using_ranges): Convert to irange API.
15692
15693 2020-08-04 Aldy Hernandez <aldyh@redhat.com>
15694
15695 * vr-values.c (test_for_singularity): Use irange API.
15696 (simplify_using_ranges::simplify_cond_using_ranges_1): Do not
15697 special case VR_RANGE.
15698
15699 2020-08-04 Aldy Hernandez <aldyh@redhat.com>
15700
15701 * vr-values.c (simplify_using_ranges::vrp_evaluate_conditional): Adjust
15702 for irange API.
15703
15704 2020-08-04 Aldy Hernandez <aldyh@redhat.com>
15705
15706 * vr-values.c (simplify_using_ranges::op_with_boolean_value_range_p): Adjust
15707 for irange API.
15708
15709 2020-08-04 Aldy Hernandez <aldyh@redhat.com>
15710
15711 * tree-ssanames.c (get_range_info): Use irange instead of value_range.
15712 * tree-ssanames.h (get_range_info): Same.
15713
15714 2020-08-04 Aldy Hernandez <aldyh@redhat.com>
15715
15716 * fold-const.c (expr_not_equal_to): Adjust for irange API.
15717
15718 2020-08-04 Aldy Hernandez <aldyh@redhat.com>
15719
15720 * builtins.c (determine_block_size): Remove ad-hoc range canonicalization.
15721
15722 2020-08-04 Xionghu Luo <luoxhu@linux.ibm.com>
15723
15724 PR rtl-optimization/71309
15725 * dse.c (find_shift_sequence): Use subreg of shifted from high part
15726 register to avoid loading from address.
15727
15728 2020-08-03 Jonathan Wakely <jwakely@redhat.com>
15729
15730 * doc/cpp.texi (Variadic Macros): Use the exact ... token in
15731 code examples.
15732
15733 2020-08-03 Nathan Sidwell <nathan@acm.org>
15734
15735 * doc/invoke.texi: Refer to c++20
15736
15737 2020-08-03 Julian Brown <julian@codesourcery.com>
15738 Thomas Schwinge <thomas@codesourcery.com>
15739
15740 * gimplify.c (gimplify_omp_target_update): Allow GOMP_MAP_TO_PSET
15741 without a preceding data-movement mapping.
15742
15743 2020-08-03 Iain Sandoe <iain@sandoe.co.uk>
15744
15745 * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): UNDEF before
15746 use.
15747 (DEF_MIN_OSX_VERSION): Only define if there's no existing
15748 def.
15749
15750 2020-08-03 Iain Sandoe <iain@sandoe.co.uk>
15751
15752 * config/darwin.c (IN_TARGET_CODE): Remove.
15753 (darwin_mergeable_constant_section): Handle poly-int machine modes.
15754 (machopic_select_rtx_section): Likewise.
15755
15756 2020-08-03 Aldy Hernandez <aldyh@redhat.com>
15757
15758 PR tree-optimization/96430
15759 * range-op.cc (operator_tests): Do not shift by 31 on targets with
15760 integer's smaller than 32 bits.
15761
15762 2020-08-03 Martin Jambor <mjambor@suse.cz>
15763
15764 * hsa-brig-format.h: Moved to brig/brigfrontend.
15765 * hsa-brig.c: Removed.
15766 * hsa-builtins.def: Likewise.
15767 * hsa-common.c: Likewise.
15768 * hsa-common.h: Likewise.
15769 * hsa-dump.c: Likewise.
15770 * hsa-gen.c: Likewise.
15771 * hsa-regalloc.c: Likewise.
15772 * ipa-hsa.c: Likewise.
15773 * omp-grid.c: Likewise.
15774 * omp-grid.h: Likewise.
15775 * Makefile.in (BUILTINS_DEF): Remove hsa-builtins.def.
15776 (OBJS): Remove hsa-common.o, hsa-gen.o, hsa-regalloc.o, hsa-brig.o,
15777 hsa-dump.o, ipa-hsa.c and omp-grid.o.
15778 (GTFILES): Removed hsa-common.c and omp-expand.c.
15779 * builtins.def: Remove processing of hsa-builtins.def.
15780 (DEF_HSA_BUILTIN): Remove.
15781 * common.opt (flag_disable_hsa): Remove.
15782 (-Whsa): Ignore.
15783 * config.in (ENABLE_HSA): Removed.
15784 * configure.ac: Removed handling configuration for hsa offloading.
15785 (ENABLE_HSA): Removed.
15786 * configure: Regenerated.
15787 * doc/install.texi (--enable-offload-targets): Remove hsa from the
15788 example.
15789 (--with-hsa-runtime): Reword to reference any HSA run-time, not
15790 specifically HSA offloading.
15791 * doc/invoke.texi (Option Summary): Remove -Whsa.
15792 (Warning Options): Likewise.
15793 (Optimize Options): Remove hsa-gen-debug-stores.
15794 * doc/passes.texi (Regular IPA passes): Remove section on IPA HSA
15795 pass.
15796 * gimple-low.c (lower_stmt): Remove GIMPLE_OMP_GRID_BODY case.
15797 * gimple-pretty-print.c (dump_gimple_omp_for): Likewise.
15798 (dump_gimple_omp_block): Likewise.
15799 (pp_gimple_stmt_1): Likewise.
15800 * gimple-walk.c (walk_gimple_stmt): Likewise.
15801 * gimple.c (gimple_build_omp_grid_body): Removed function.
15802 (gimple_copy): Remove GIMPLE_OMP_GRID_BODY case.
15803 * gimple.def (GIMPLE_OMP_GRID_BODY): Removed.
15804 * gimple.h (gf_mask): Removed GF_OMP_PARALLEL_GRID_PHONY,
15805 OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY,
15806 GF_OMP_FOR_GRID_INTRA_GROUP, GF_OMP_FOR_GRID_GROUP_ITER and
15807 GF_OMP_TEAMS_GRID_PHONY. Renumbered GF_OMP_FOR_KIND_SIMD and
15808 GF_OMP_TEAMS_HOST.
15809 (gimple_build_omp_grid_body): Removed declaration.
15810 (gimple_has_substatements): Remove GIMPLE_OMP_GRID_BODY case.
15811 (gimple_omp_for_grid_phony): Removed.
15812 (gimple_omp_for_set_grid_phony): Likewise.
15813 (gimple_omp_for_grid_intra_group): Likewise.
15814 (gimple_omp_for_grid_intra_group): Likewise.
15815 (gimple_omp_for_grid_group_iter): Likewise.
15816 (gimple_omp_for_set_grid_group_iter): Likewise.
15817 (gimple_omp_parallel_grid_phony): Likewise.
15818 (gimple_omp_parallel_set_grid_phony): Likewise.
15819 (gimple_omp_teams_grid_phony): Likewise.
15820 (gimple_omp_teams_set_grid_phony): Likewise.
15821 (CASE_GIMPLE_OMP): Remove GIMPLE_OMP_GRID_BODY case.
15822 * lto-section-in.c (lto_section_name): Removed hsa.
15823 * lto-streamer.h (lto_section_type): Removed LTO_section_ipa_hsa.
15824 * lto-wrapper.c (compile_images_for_offload_targets): Remove special
15825 handling of hsa.
15826 * omp-expand.c: Do not include hsa-common.h and gt-omp-expand.h.
15827 (parallel_needs_hsa_kernel_p): Removed.
15828 (grid_launch_attributes_trees): Likewise.
15829 (grid_launch_attributes_trees): Likewise.
15830 (grid_create_kernel_launch_attr_types): Likewise.
15831 (grid_insert_store_range_dim): Likewise.
15832 (grid_get_kernel_launch_attributes): Likewise.
15833 (get_target_arguments): Remove code passing HSA grid sizes.
15834 (grid_expand_omp_for_loop): Remove.
15835 (grid_arg_decl_map): Likewise.
15836 (grid_remap_kernel_arg_accesses): Likewise.
15837 (grid_expand_target_grid_body): Likewise.
15838 (expand_omp): Remove call to grid_expand_target_grid_body.
15839 (omp_make_gimple_edges): Remove GIMPLE_OMP_GRID_BODY case.
15840 * omp-general.c: Do not include hsa-common.h.
15841 (omp_maybe_offloaded): Do not check for HSA offloading.
15842 (omp_context_selector_matches): Likewise.
15843 * omp-low.c: Do not include hsa-common.h and omp-grid.h.
15844 (build_outer_var_ref): Remove handling of GIMPLE_OMP_GRID_BODY.
15845 (scan_sharing_clauses): Remove handling of OMP_CLAUSE__GRIDDIM_.
15846 (scan_omp_parallel): Remove handling of the phoney variant.
15847 (check_omp_nesting_restrictions): Remove handling of
15848 GIMPLE_OMP_GRID_BODY and GF_OMP_FOR_KIND_GRID_LOOP.
15849 (scan_omp_1_stmt): Remove handling of GIMPLE_OMP_GRID_BODY.
15850 (lower_omp_for_lastprivate): Remove handling of gridified loops.
15851 (lower_omp_for): Remove phony loop handling.
15852 (lower_omp_taskreg): Remove phony construct handling.
15853 (lower_omp_teams): Likewise.
15854 (lower_omp_grid_body): Removed.
15855 (lower_omp_1): Remove GIMPLE_OMP_GRID_BODY case.
15856 (execute_lower_omp): Do not call omp_grid_gridify_all_targets.
15857 * opts.c (common_handle_option): Do not handle hsa when processing
15858 OPT_foffload_.
15859 * params.opt (hsa-gen-debug-stores): Remove.
15860 * passes.def: Remove pass_ipa_hsa and pass_gen_hsail.
15861 * timevar.def: Remove TV_IPA_HSA.
15862 * toplev.c: Do not include hsa-common.h.
15863 (compile_file): Do not call hsa_output_brig.
15864 * tree-core.h (enum omp_clause_code): Remove OMP_CLAUSE__GRIDDIM_.
15865 (tree_omp_clause): Remove union field dimension.
15866 * tree-nested.c (convert_nonlocal_omp_clauses): Remove the
15867 OMP_CLAUSE__GRIDDIM_ case.
15868 (convert_local_omp_clauses): Likewise.
15869 * tree-pass.h (make_pass_gen_hsail): Remove declaration.
15870 (make_pass_ipa_hsa): Likewise.
15871 * tree-pretty-print.c (dump_omp_clause): Remove GIMPLE_OMP_GRID_BODY
15872 case.
15873 * tree.c (omp_clause_num_ops): Remove the element corresponding to
15874 OMP_CLAUSE__GRIDDIM_.
15875 (omp_clause_code_name): Likewise.
15876 (walk_tree_1): Remove GIMPLE_OMP_GRID_BODY case.
15877 * tree.h (OMP_CLAUSE__GRIDDIM__DIMENSION): Remove.
15878 (OMP_CLAUSE__GRIDDIM__SIZE): Likewise.
15879 (OMP_CLAUSE__GRIDDIM__GROUP): Likewise.
15880
15881 2020-08-03 Bu Le <bule1@huawei.com>
15882
15883 * config/aarch64/aarch64-sve.md (sub<mode>3): Add support for
15884 unpacked vectors.
15885
15886 2020-08-03 Jozef Lawrynowicz <jozef.l@mittosystems.com>
15887
15888 * config/msp430/msp430.h (ASM_SPEC): Don't pass on "-md" option.
15889
15890 2020-08-03 Yunde Zhong <zhongyunde@huawei.com>
15891
15892 PR rtl-optimization/95696
15893 * regrename.c (regrename_analyze): New param include_all_block_p
15894 with default value TRUE. If set to false, avoid disrupting SMS
15895 schedule.
15896 * regrename.h (regrename_analyze): Adjust prototype.
15897
15898 2020-08-03 Wei Wentao <weiwt.fnst@cn.fujitsu.com>
15899
15900 * doc/tm.texi.in (VECTOR_STORE_FLAG_VALUE): Fix a typo.
15901 * doc/tm.texi: Regenerate.
15902
15903 2020-08-03 Richard Sandiford <richard.sandiford@arm.com>
15904
15905 * doc/invoke.texi: Add missing comma after octeontx2f95mm entry.
15906
15907 2020-08-03 Qian jianhua <qianjh@cn.fujitsu.com>
15908
15909 * config/aarch64/aarch64-cores.def (a64fx): New core.
15910 * config/aarch64/aarch64-tune.md: Regenerated.
15911 * config/aarch64/aarch64.c (a64fx_prefetch_tune, a64fx_tunings): New.
15912 * doc/invoke.texi: Add a64fx to the list.
15913
15914 2020-08-03 Roger Sayle <roger@nextmovesoftware.com>
15915
15916 PR rtl-optimization/61494
15917 * simplify-rtx.c (simplify_binary_operation_1) [MINUS]: Don't
15918 simplify x - 0.0 with -fsignaling-nans.
15919
15920 2020-08-03 Roger Sayle <roger@nextmovesoftware.com>
15921
15922 * genmatch.c (decision_tree::gen): Emit stub functions for
15923 tree code operand counts that have no simplifications.
15924 (main): Correct comment typo.
15925
15926 2020-08-03 Jonathan Wakely <jwakely@redhat.com>
15927
15928 * gimple-ssa-sprintf.c: Fix typos in comments.
15929
15930 2020-08-03 Tamar Christina <tamar.christina@arm.com>
15931
15932 * config/aarch64/driver-aarch64.c (readline): Check return value fgets.
15933
15934 2020-08-03 Richard Biener <rguenther@suse.de>
15935
15936 * doc/match-and-simplify.texi: Amend accordingly.
15937
15938 2020-08-03 Richard Biener <rguenther@suse.de>
15939
15940 * genmatch.c (parser::gimple): New.
15941 (parser::parser): Initialize gimple flag member.
15942 (parser::parse_expr): Error on ! operator modifier when
15943 not targeting GIMPLE.
15944 (main): Pass down gimple flag to parser ctor.
15945
15946 2020-08-03 Aldy Hernandez <aldyh@redhat.com>
15947
15948 * Makefile.in (GTFILES): Move value-range.h up.
15949 * gengtype-lex.l: Set yylval to handle GTY markers on templates.
15950 * ipa-cp.c (initialize_node_lattices): Call value_range
15951 constructor.
15952 (ipcp_propagate_stage): Use in-place new so value_range construct
15953 is called.
15954 * ipa-fnsummary.c (evaluate_conditions_for_known_args): Use std
15955 vec instead of GCC's vec<>.
15956 (evaluate_properties_for_edge): Adjust for std vec.
15957 (ipa_fn_summary_t::duplicate): Same.
15958 (estimate_ipcp_clone_size_and_time): Same.
15959 * ipa-prop.c (ipa_get_value_range): Use in-place new for
15960 value_range.
15961 * ipa-prop.h (struct GTY): Remove class keyword for m_vr.
15962 * range-op.cc (empty_range_check): Rename to...
15963 (empty_range_varying): ...this and adjust for varying.
15964 (undefined_shift_range_check): Adjust for irange.
15965 (range_operator::wi_fold): Same.
15966 (range_operator::fold_range): Adjust for irange. Special case
15967 single pairs for performance.
15968 (range_operator::op1_range): Adjust for irange.
15969 (range_operator::op2_range): Same.
15970 (value_range_from_overflowed_bounds): Same.
15971 (value_range_with_overflow): Same.
15972 (create_possibly_reversed_range): Same.
15973 (range_true): Same.
15974 (range_false): Same.
15975 (range_true_and_false): Same.
15976 (get_bool_state): Adjust for irange and tweak for performance.
15977 (operator_equal::fold_range): Adjust for irange.
15978 (operator_equal::op1_range): Same.
15979 (operator_equal::op2_range): Same.
15980 (operator_not_equal::fold_range): Same.
15981 (operator_not_equal::op1_range): Same.
15982 (operator_not_equal::op2_range): Same.
15983 (build_lt): Same.
15984 (build_le): Same.
15985 (build_gt): Same.
15986 (build_ge): Same.
15987 (operator_lt::fold_range): Same.
15988 (operator_lt::op1_range): Same.
15989 (operator_lt::op2_range): Same.
15990 (operator_le::fold_range): Same.
15991 (operator_le::op1_range): Same.
15992 (operator_le::op2_range): Same.
15993 (operator_gt::fold_range): Same.
15994 (operator_gt::op1_range): Same.
15995 (operator_gt::op2_range): Same.
15996 (operator_ge::fold_range): Same.
15997 (operator_ge::op1_range): Same.
15998 (operator_ge::op2_range): Same.
15999 (operator_plus::wi_fold): Same.
16000 (operator_plus::op1_range): Same.
16001 (operator_plus::op2_range): Same.
16002 (operator_minus::wi_fold): Same.
16003 (operator_minus::op1_range): Same.
16004 (operator_minus::op2_range): Same.
16005 (operator_min::wi_fold): Same.
16006 (operator_max::wi_fold): Same.
16007 (cross_product_operator::wi_cross_product): Same.
16008 (operator_mult::op1_range): New.
16009 (operator_mult::op2_range): New.
16010 (operator_mult::wi_fold): Adjust for irange.
16011 (operator_div::wi_fold): Same.
16012 (operator_exact_divide::op1_range): Same.
16013 (operator_lshift::fold_range): Same.
16014 (operator_lshift::wi_fold): Same.
16015 (operator_lshift::op1_range): New.
16016 (operator_rshift::op1_range): New.
16017 (operator_rshift::fold_range): Adjust for irange.
16018 (operator_rshift::wi_fold): Same.
16019 (operator_cast::truncating_cast_p): Abstract out from
16020 operator_cast::fold_range.
16021 (operator_cast::fold_range): Adjust for irange and tweak for
16022 performance.
16023 (operator_cast::inside_domain_p): Abstract out from fold_range.
16024 (operator_cast::fold_pair): Same.
16025 (operator_cast::op1_range): Use abstracted methods above. Adjust
16026 for irange and tweak for performance.
16027 (operator_logical_and::fold_range): Adjust for irange.
16028 (operator_logical_and::op1_range): Same.
16029 (operator_logical_and::op2_range): Same.
16030 (unsigned_singleton_p): New.
16031 (operator_bitwise_and::remove_impossible_ranges): New.
16032 (operator_bitwise_and::fold_range): New.
16033 (wi_optimize_and_or): Adjust for irange.
16034 (operator_bitwise_and::wi_fold): Same.
16035 (set_nonzero_range_from_mask): New.
16036 (operator_bitwise_and::simple_op1_range_solver): New.
16037 (operator_bitwise_and::op1_range): Adjust for irange.
16038 (operator_bitwise_and::op2_range): Same.
16039 (operator_logical_or::fold_range): Same.
16040 (operator_logical_or::op1_range): Same.
16041 (operator_logical_or::op2_range): Same.
16042 (operator_bitwise_or::wi_fold): Same.
16043 (operator_bitwise_or::op1_range): Same.
16044 (operator_bitwise_or::op2_range): Same.
16045 (operator_bitwise_xor::wi_fold): Same.
16046 (operator_bitwise_xor::op1_range): New.
16047 (operator_bitwise_xor::op2_range): New.
16048 (operator_trunc_mod::wi_fold): Adjust for irange.
16049 (operator_logical_not::fold_range): Same.
16050 (operator_logical_not::op1_range): Same.
16051 (operator_bitwise_not::fold_range): Same.
16052 (operator_bitwise_not::op1_range): Same.
16053 (operator_cst::fold_range): Same.
16054 (operator_identity::fold_range): Same.
16055 (operator_identity::op1_range): Same.
16056 (class operator_unknown): New.
16057 (operator_unknown::fold_range): New.
16058 (class operator_abs): Adjust for irange.
16059 (operator_abs::wi_fold): Same.
16060 (operator_abs::op1_range): Same.
16061 (operator_absu::wi_fold): Same.
16062 (class operator_negate): Same.
16063 (operator_negate::fold_range): Same.
16064 (operator_negate::op1_range): Same.
16065 (operator_addr_expr::fold_range): Same.
16066 (operator_addr_expr::op1_range): Same.
16067 (pointer_plus_operator::wi_fold): Same.
16068 (pointer_min_max_operator::wi_fold): Same.
16069 (pointer_and_operator::wi_fold): Same.
16070 (pointer_or_operator::op1_range): New.
16071 (pointer_or_operator::op2_range): New.
16072 (pointer_or_operator::wi_fold): Adjust for irange.
16073 (integral_table::integral_table): Add entries for IMAGPART_EXPR
16074 and POINTER_DIFF_EXPR.
16075 (range_cast): Adjust for irange.
16076 (build_range3): New.
16077 (range3_tests): New.
16078 (widest_irange_tests): New.
16079 (multi_precision_range_tests): New.
16080 (operator_tests): New.
16081 (range_tests): New.
16082 * range-op.h (class range_operator): Adjust for irange.
16083 (range_cast): Same.
16084 * tree-vrp.c (range_fold_binary_symbolics_p): Adjust for irange and
16085 tweak for performance.
16086 (range_fold_binary_expr): Same.
16087 (masked_increment): Change to extern.
16088 * tree-vrp.h (masked_increment): New.
16089 * tree.c (cache_wide_int_in_type_cache): New function abstracted
16090 out from wide_int_to_tree_1.
16091 (wide_int_to_tree_1): Cache 0, 1, and MAX for pointers.
16092 * value-range-equiv.cc (value_range_equiv::deep_copy): Use kind
16093 method.
16094 (value_range_equiv::move): Same.
16095 (value_range_equiv::check): Adjust for irange.
16096 (value_range_equiv::intersect): Same.
16097 (value_range_equiv::union_): Same.
16098 (value_range_equiv::dump): Same.
16099 * value-range.cc (irange::operator=): Same.
16100 (irange::maybe_anti_range): New.
16101 (irange::copy_legacy_range): New.
16102 (irange::set_undefined): Adjust for irange.
16103 (irange::swap_out_of_order_endpoints): Abstract out from set().
16104 (irange::set_varying): Adjust for irange.
16105 (irange::irange_set): New.
16106 (irange::irange_set_anti_range): New.
16107 (irange::set): Adjust for irange.
16108 (value_range::set_nonzero): Move to header file.
16109 (value_range::set_zero): Move to header file.
16110 (value_range::check): Rename to...
16111 (irange::verify_range): ...this.
16112 (value_range::num_pairs): Rename to...
16113 (irange::legacy_num_pairs): ...this, and adjust for irange.
16114 (value_range::lower_bound): Rename to...
16115 (irange::legacy_lower_bound): ...this, and adjust for irange.
16116 (value_range::upper_bound): Rename to...
16117 (irange::legacy_upper_bound): ...this, and adjust for irange.
16118 (value_range::equal_p): Rename to...
16119 (irange::legacy_equal_p): ...this.
16120 (value_range::operator==): Move to header file.
16121 (irange::equal_p): New.
16122 (irange::symbolic_p): Adjust for irange.
16123 (irange::constant_p): Same.
16124 (irange::singleton_p): Same.
16125 (irange::value_inside_range): Same.
16126 (irange::may_contain_p): Same.
16127 (irange::contains_p): Same.
16128 (irange::normalize_addresses): Same.
16129 (irange::normalize_symbolics): Same.
16130 (irange::legacy_intersect): Same.
16131 (irange::legacy_union): Same.
16132 (irange::union_): Same.
16133 (irange::intersect): Same.
16134 (irange::irange_union): New.
16135 (irange::irange_intersect): New.
16136 (subtract_one): New.
16137 (irange::invert): Adjust for irange.
16138 (dump_bound_with_infinite_markers): New.
16139 (irange::dump): Adjust for irange.
16140 (debug): Add irange versions.
16141 (range_has_numeric_bounds_p): Adjust for irange.
16142 (vrp_val_max): Move to header file.
16143 (vrp_val_min): Move to header file.
16144 (DEFINE_INT_RANGE_GC_STUBS): New.
16145 (DEFINE_INT_RANGE_INSTANCE): New.
16146 * value-range.h (class irange): New.
16147 (class int_range): New.
16148 (class value_range): Rename to a instantiation of int_range.
16149 (irange::legacy_mode_p): New.
16150 (value_range::value_range): Remove.
16151 (irange::kind): New.
16152 (irange::num_pairs): Adjust for irange.
16153 (irange::type): Adjust for irange.
16154 (irange::tree_lower_bound): New.
16155 (irange::tree_upper_bound): New.
16156 (irange::type): Adjust for irange.
16157 (irange::min): Same.
16158 (irange::max): Same.
16159 (irange::varying_p): Same.
16160 (irange::undefined_p): Same.
16161 (irange::zero_p): Same.
16162 (irange::nonzero_p): Same.
16163 (irange::supports_type_p): Same.
16164 (range_includes_zero_p): Same.
16165 (gt_ggc_mx): New.
16166 (gt_pch_nx): New.
16167 (irange::irange): New.
16168 (int_range::int_range): New.
16169 (int_range::operator=): New.
16170 (irange::set): Moved from value-range.cc and adjusted for irange.
16171 (irange::set_undefined): Same.
16172 (irange::set_varying): Same.
16173 (irange::operator==): Same.
16174 (irange::lower_bound): Same.
16175 (irange::upper_bound): Same.
16176 (irange::union_): Same.
16177 (irange::intersect): Same.
16178 (irange::set_nonzero): Same.
16179 (irange::set_zero): Same.
16180 (irange::normalize_min_max): New.
16181 (vrp_val_max): Move from value-range.cc.
16182 (vrp_val_min): Same.
16183 * vr-values.c (vr_values::get_lattice_entry): Call value_range
16184 constructor.
16185
16186 2020-08-02 Sergei Trofimovich <siarheit@google.com>
16187
16188 PR bootstrap/96404
16189 * var-tracking.c (vt_find_locations): Fully initialize
16190 all 'in_pending' bits.
16191
16192 2020-08-01 Jan Hubicka <jh@suse.cz>
16193
16194 * symtab.c (symtab_node::verify_base): Verify order.
16195 (symtab_node::verify_symtab_nodes): Verify order.
16196
16197 2020-08-01 Jan Hubicka <jh@suse.cz>
16198
16199 * predict.c (estimate_bb_frequencies): Cap recursive calls by 90%.
16200
16201 2020-08-01 Jojo R <jiejie_rong@c-sky.com>
16202
16203 * config/csky/csky_opts.h (float_abi_type): New.
16204 * config/csky/csky.h (TARGET_SOFT_FLOAT): New.
16205 (TARGET_HARD_FLOAT): New.
16206 (TARGET_HARD_FLOAT_ABI): New.
16207 (OPTION_DEFAULT_SPECS): Use mfloat-abi.
16208 * config/csky/csky.opt (mfloat-abi): New.
16209 * doc/invoke.texi (C-SKY Options): Document -mfloat-abi=.
16210
16211 2020-08-01 Cooper Qu <cooper.qu@linux.alibaba.com>
16212
16213 * config/csky/t-csky-linux: Delete big endian CPUs' multilib.
16214
16215 2020-07-31 Roger Sayle <roger@nextmovesoftware.com>
16216 Tom de Vries <tdevries@suse.de>
16217
16218 PR target/90928
16219 * config/nvptx/nvptx.c (nvptx_truly_noop_truncation): Implement.
16220 (TARGET_TRULY_NOOP_TRUNCATION): Define.
16221
16222 2020-07-31 Richard Biener <rguenther@suse.de>
16223
16224 PR debug/96383
16225 * langhooks-def.h (lhd_finalize_early_debug): Declare.
16226 (LANG_HOOKS_FINALIZE_EARLY_DEBUG): Define.
16227 (LANG_HOOKS_INITIALIZER): Amend.
16228 * langhooks.c: Include cgraph.h and debug.h.
16229 (lhd_finalize_early_debug): Default implementation from
16230 former code in finalize_compilation_unit.
16231 * langhooks.h (lang_hooks::finalize_early_debug): Add.
16232 * cgraphunit.c (symbol_table::finalize_compilation_unit):
16233 Call the finalize_early_debug langhook.
16234
16235 2020-07-31 Richard Biener <rguenther@suse.de>
16236
16237 * genmatch.c (expr::force_leaf): Add and initialize.
16238 (expr::gen_transform): Honor force_leaf by passing
16239 NULL as sequence argument to maybe_push_res_to_seq.
16240 (parser::parse_expr): Allow ! marker on result expression
16241 operations.
16242 * doc/match-and-simplify.texi: Amend.
16243
16244 2020-07-31 Kewen Lin <linkw@linux.ibm.com>
16245
16246 * tree-vect-loop.c (vect_get_known_peeling_cost): Don't consider branch
16247 taken costs for prologue and epilogue if they don't exist.
16248 (vect_estimate_min_profitable_iters): Likewise.
16249
16250 2020-07-31 Martin Liska <mliska@suse.cz>
16251
16252 * cgraph.h: Remove leading empty lines.
16253 * cgraphunit.c (enum cgraph_order_sort_kind): Remove
16254 ORDER_UNDEFINED.
16255 (struct cgraph_order_sort): Add constructors.
16256 (cgraph_order_sort::process): New.
16257 (cgraph_order_cmp): New.
16258 (output_in_order): Simplify and push nodes to vector.
16259
16260 2020-07-31 Richard Biener <rguenther@suse.de>
16261
16262 PR middle-end/96369
16263 * fold-const.c (fold_range_test): Special-case constant
16264 LHS for short-circuiting operations.
16265
16266 2020-07-31 Martin Liska <mliska@suse.cz>
16267
16268 * gcov-io.h (GCOV_PREALLOCATED_KVP): New.
16269
16270 2020-07-31 Zhiheng Xie <xiezhiheng@huawei.com>
16271
16272 * config/aarch64/aarch64-builtins.c (aarch64_general_add_builtin):
16273 Add new argument ATTRS.
16274 (aarch64_call_properties): New function.
16275 (aarch64_modifies_global_state_p): Likewise.
16276 (aarch64_reads_global_state_p): Likewise.
16277 (aarch64_could_trap_p): Likewise.
16278 (aarch64_add_attribute): Likewise.
16279 (aarch64_get_attributes): Likewise.
16280 (aarch64_init_simd_builtins): Add attributes for each built-in function.
16281
16282 2020-07-31 Richard Biener <rguenther@suse.de>
16283
16284 PR debug/78288
16285 * var-tracking.c (vt_find_locations): Use
16286 rev_post_order_and_mark_dfs_back_seme and separately iterate
16287 over toplevel SCCs.
16288
16289 2020-07-31 Richard Biener <rguenther@suse.de>
16290
16291 * cfganal.h (rev_post_order_and_mark_dfs_back_seme): Adjust
16292 prototype.
16293 * cfganal.c (rpoamdbs_bb_data): New struct with pre BB data.
16294 (tag_header): New helper.
16295 (cmp_edge_dest_pre): Likewise.
16296 (rev_post_order_and_mark_dfs_back_seme): Compute SCCs,
16297 find SCC exits and perform a DFS walk with extra edges to
16298 compute a RPO with adjacent SCC members when requesting an
16299 iteration optimized order and populate the toplevel SCC array.
16300 * tree-ssa-sccvn.c (do_rpo_vn): Remove ad-hoc computation
16301 of max_rpo and fill it in from SCC extent info instead.
16302
16303 2020-07-30 Will Schmidt <will_schmidt@vnet.ibm.com>
16304
16305 * config/rs6000/altivec.h (vec_test_lsbb_all_ones): New define.
16306 (vec_test_lsbb_all_zeros): New define.
16307 * config/rs6000/rs6000-builtin.def (BU_P10_VSX_1): New built-in
16308 handling macro.
16309 (XVTLSBB_ZEROS, XVTLSBB_ONES): New builtin defines.
16310 (xvtlsbb_all_zeros, xvtlsbb_all_ones): New builtin overloads.
16311 * config/rs6000/rs6000-call.c (P10_BUILTIN_VEC_XVTLSBB_ZEROS,
16312 P10_BUILTIN_VEC_XVTLSBB_ONES): New altivec_builtin_types entries.
16313 * config/rs6000/rs6000.md (UNSPEC_XVTLSBB): New unspec.
16314 * config/rs6000/vsx.md (*xvtlsbb_internal): New instruction define.
16315 (xvtlsbbo, xvtlsbbz): New instruction expands.
16316
16317 2020-07-30 Cooper Qu <cooper.qu@linux.alibaba.com>
16318
16319 * config/riscv/riscv-opts.h (stack_protector_guard): New enum.
16320 * config/riscv/riscv.c (riscv_option_override): Handle
16321 the new options.
16322 * config/riscv/riscv.md (stack_protect_set): New pattern to handle
16323 flexible stack protector guard settings.
16324 (stack_protect_set_<mode>): Ditto.
16325 (stack_protect_test): Ditto.
16326 (stack_protect_test_<mode>): Ditto.
16327 * config/riscv/riscv.opt (mstack-protector-guard=,
16328 mstack-protector-guard-reg=, mstack-protector-guard-offset=): New
16329 options.
16330 * doc/invoke.texi (Option Summary) [RISC-V Options]:
16331 Add -mstack-protector-guard=, -mstack-protector-guard-reg=, and
16332 -mstack-protector-guard-offset=.
16333 (RISC-V Options): Ditto.
16334
16335 2020-07-30 H.J. Lu <hjl.tools@gmail.com>
16336
16337 PR bootstrap/96202
16338 * configure: Regenerated.
16339
16340 2020-07-30 Richard Biener <rguenther@suse.de>
16341
16342 PR tree-optimization/96370
16343 * tree-ssa-reassoc.c (rewrite_expr_tree): Add operation
16344 code parameter and use it instead of picking it up from
16345 the stmt that is being rewritten.
16346 (reassociate_bb): Pass down the operation code.
16347
16348 2020-07-30 Roger Sayle <roger@nextmovesoftware.com>
16349 Tom de Vries <tdevries@suse.de>
16350
16351 * config/nvptx/nvptx.md (nvptx_vector_index_operand): New predicate.
16352 (VECELEM): New mode attribute for a vector's uppercase element mode.
16353 (Vecelem): New mode attribute for a vector's lowercase element mode.
16354 (*vec_set<mode>_0, *vec_set<mode>_1, *vec_set<mode>_2)
16355 (*vec_set<mode>_3): New instructions.
16356 (vec_set<mode>): New expander to generate one of the above insns.
16357 (vec_extract<mode><Vecelem>): New instruction.
16358
16359 2020-07-30 Martin Liska <mliska@suse.cz>
16360
16361 PR target/95435
16362 * config/i386/x86-tune-costs.h: Use libcall for large sizes for
16363 -m32. Start using libcall from 128+ bytes.
16364
16365 2020-07-30 Martin Liska <mliska@suse.cz>
16366
16367 * config/i386/x86-tune-costs.h: Change code formatting.
16368
16369 2020-07-29 Roger Sayle <roger@nextmovesoftware.com>
16370
16371 * config/nvptx/nvptx.md (recip<mode>2): New instruction.
16372
16373 2020-07-29 Fangrui Song <maskray@google.com>
16374
16375 PR debug/95096
16376 * opts.c (common_handle_option): Don't make -gsplit-dwarf imply -g.
16377 * doc/invoke.texi (-gsplit-dwarf): Update documentation.
16378
16379 2020-07-29 Joe Ramsay <joe.ramsay@arm.com>
16380
16381 * config/arm/arm-protos.h (arm_coproc_mem_operand_no_writeback):
16382 Declare prototype.
16383 (arm_mve_mode_and_operands_type_check): Declare prototype.
16384 * config/arm/arm.c (arm_coproc_mem_operand): Refactor to use
16385 _arm_coproc_mem_operand.
16386 (arm_coproc_mem_operand_wb): New function to cover full, limited
16387 and no writeback.
16388 (arm_coproc_mem_operand_no_writeback): New constraint for memory
16389 operand with no writeback.
16390 (arm_print_operand): Extend 'E' specifier for memory operand
16391 that does not support writeback.
16392 (arm_mve_mode_and_operands_type_check): New constraint check for
16393 MVE memory operands.
16394 * config/arm/constraints.md: Add Uj constraint for VFP vldr.16
16395 and vstr.16.
16396 * config/arm/vfp.md (*mov_load_vfp_hf16): New pattern for
16397 vldr.16.
16398 (*mov_store_vfp_hf16): New pattern for vstr.16.
16399 (*mov<mode>_vfp_<mode>16): Remove MVE moves.
16400
16401 2020-07-29 Richard Biener <rguenther@suse.de>
16402
16403 PR tree-optimization/96349
16404 * tree-ssa-loop-split.c (stmt_semi_invariant_p_1): When the
16405 condition runs into a loop PHI with an abnormal entry value give up.
16406
16407 2020-07-29 Richard Biener <rguenther@suse.de>
16408
16409 * tree-vectorizer.c (vectorize_loops): Reset the SCEV
16410 cache if we removed any SIMD UID SSA defs.
16411 * gimple-loop-interchange.cc (pass_linterchange::execute):
16412 Reset the scev cache if we interchanged a loop.
16413
16414 2020-07-29 Richard Biener <rguenther@suse.de>
16415
16416 PR tree-optimization/95679
16417 * tree-ssa-propagate.h
16418 (substitute_and_fold_engine::propagate_into_phi_args): Return
16419 whether anything changed.
16420 * tree-ssa-propagate.c
16421 (substitute_and_fold_engine::propagate_into_phi_args): Likewise.
16422 (substitute_and_fold_dom_walker::before_dom_children): Update
16423 something_changed.
16424
16425 2020-07-29 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
16426
16427 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
16428 Ensure that loop variable npeel_tmp advances in each iteration.
16429
16430 2020-07-29 Hans-Peter Nilsson <hp@bitrange.com>
16431
16432 * config/mmix/mmix.h (NO_FUNCTION_CSE): Define to 1.
16433
16434 2020-07-29 Hans-Peter Nilsson <hp@bitrange.com>
16435
16436 * config/mmix/mmix.h (ASM_OUTPUT_EXTERNAL): Define to
16437 default_elf_asm_output_external.
16438
16439 2020-07-28 Sergei Trofimovich <siarheit@google.com>
16440
16441 PR ipa/96291
16442 * ipa-cp.c (has_undead_caller_from_outside_scc_p): Consider
16443 unoptimized callers as undead.
16444
16445 2020-07-28 Roger Sayle <roger@nextmovesoftware.com>
16446 Richard Biener <rguenther@suse.de>
16447
16448 * match.pd (popcount(x)&1 -> parity(x)): New simplification.
16449 (parity(~x) -> parity(x)): New simplification.
16450 (parity(x)^parity(y) -> parity(x^y)): New simplification.
16451 (parity(x&1) -> x&1): New simplification.
16452 (popcount(x) -> x>>C): New simplification.
16453
16454 2020-07-28 Roger Sayle <roger@nextmovesoftware.com>
16455 Tom de Vries <tdevries@suse.de>
16456
16457 * config/nvptx/nvptx.md (extendqihi2): New instruction.
16458 (ashl<mode>3, ashr<mode>3, lshr<mode>3): Support HImode.
16459
16460 2020-07-28 Jakub Jelinek <jakub@redhat.com>
16461
16462 PR middle-end/96335
16463 * calls.c (maybe_warn_rdwr_sizes): Add FNDECL and FNTYPE arguments,
16464 instead of trying to rediscover them in the body.
16465 (initialize_argument_information): Adjust caller.
16466
16467 2020-07-28 Kewen Lin <linkw@linux.ibm.com>
16468
16469 * tree-vect-loop.c (vect_get_known_peeling_cost): Factor out some code
16470 to determine peel_iters_epilogue to...
16471 (vect_get_peel_iters_epilogue): ...this new function.
16472 (vect_estimate_min_profitable_iters): Refactor cost calculation on
16473 peel_iters_prologue and peel_iters_epilogue.
16474
16475 2020-07-27 Martin Sebor <msebor@redhat.com>
16476
16477 PR tree-optimization/84079
16478 * gimple-array-bounds.cc (array_bounds_checker::check_addr_expr):
16479 Only allow just-past-the-end references for the most significant
16480 array bound.
16481
16482 2020-07-27 Hu Jiangping <hujiangping@cn.fujitsu.com>
16483
16484 PR driver/96247
16485 * opts.c (check_alignment_argument): Set the -falign-Name
16486 on/off flag on and set the -falign-Name string value null,
16487 when the command-line specified argument is zero.
16488
16489 2020-07-27 Martin Liska <mliska@suse.cz>
16490
16491 PR tree-optimization/96058
16492 * expr.c (string_constant): Build string_constant only
16493 for a type that has same precision as char_type_node
16494 and is an integral type.
16495
16496 2020-07-27 Richard Biener <rguenther@suse.de>
16497
16498 * var-tracking.c (variable_tracking_main_1): Remove call
16499 to mark_dfs_back_edges.
16500
16501 2020-07-27 Martin Liska <mliska@suse.cz>
16502
16503 PR tree-optimization/96128
16504 * tree-vect-generic.c (expand_vector_comparison): Do not expand
16505 vector comparison with VEC_COND_EXPR.
16506
16507 2020-07-27 H.J. Lu <hjl.tools@gmail.com>
16508
16509 PR bootstrap/96203
16510 * common.opt: Add -fcf-protection=check.
16511 * flag-types.h (cf_protection_level): Add CF_CHECK.
16512 * lto-wrapper.c (merge_and_complain): Issue an error for
16513 mismatching -fcf-protection values with -fcf-protection=check.
16514 Otherwise, merge -fcf-protection values.
16515 * doc/invoke.texi: Document -fcf-protection=check.
16516
16517 2020-07-27 Martin Liska <mliska@suse.cz>
16518
16519 PR lto/45375
16520 * symbol-summary.h: Call vec_safe_reserve before grow is called
16521 in order to grow to a reasonable size.
16522 * vec.h (vec_safe_reserve): Add missing function for vl_ptr
16523 type.
16524
16525 2020-07-26 Hans-Peter Nilsson <hp@bitrange.com>
16526
16527 * configure.ac (out-of-tree linker .hidden support): Don't turn off
16528 for mmix-knuth-mmixware.
16529 * configure: Regenerate.
16530
16531 2020-07-26 Aaron Sawdey <acsawdey@linux.ibm.com>
16532
16533 * config/rs6000/rs6000.c (rs6000_option_override_internal):
16534 Set the default value for -mblock-ops-unaligned-vsx.
16535 * config/rs6000/rs6000.opt: Add -mblock-ops-unaligned-vsx.
16536 * doc/invoke.texi: Document -mblock-ops-unaligned-vsx.
16537
16538 2020-07-25 Hans-Peter Nilsson <hp@bitrange.com>
16539
16540 * config/mmix/mmix.c (TARGET_ASM_OUTPUT_IDENT): Override the default
16541 with default_asm_output_ident_directive.
16542
16543 2020-07-25 Andrew Stubbs <ams@codesourcery.com>
16544
16545 * config/gcn/gcn.c (gcn_scalar_mode_supported_p): New function.
16546 (TARGET_SCALAR_MODE_SUPPORTED_P): New define.
16547
16548 2020-07-24 David Edelsohn <dje.gcc@gmail.com>
16549 Clement Chigot <clement.chigot@atos.net>
16550
16551 * config.gcc (powerpc-ibm-aix7.1): Use t-aix64 and biarch64 for
16552 cpu_is_64bit.
16553 * config/rs6000/aix71.h (ASM_SPEC): Remove aix64 option.
16554 (ASM_SPEC32): New.
16555 (ASM_SPEC64): New.
16556 (ASM_CPU_SPEC): Remove vsx and altivec options.
16557 (CPP_SPEC_COMMON): Rename from CPP_SPEC.
16558 (CPP_SPEC32): New.
16559 (CPP_SPEC64): New.
16560 (CPLUSPLUS_CPP_SPEC): Rename to CPLUSPLUS_CPP_SPEC_COMMON..
16561 (TARGET_DEFAULT): Use 64 bit mask if BIARCH.
16562 (LIB_SPEC_COMMON): Rename from LIB_SPEC.
16563 (LIB_SPEC32): New.
16564 (LIB_SPEC64): New.
16565 (LINK_SPEC_COMMON): Rename from LINK_SPEC.
16566 (LINK_SPEC32): New.
16567 (LINK_SPEC64): New.
16568 (STARTFILE_SPEC): Add 64 bit version of crtcxa and crtdbase.
16569 (ASM_SPEC): Define 32 and 64 bit alternatives using DEFAULT_ARCH64_P.
16570 (CPP_SPEC): Same.
16571 (CPLUSPLUS_CPP_SPEC): Same.
16572 (LIB_SPEC): Same.
16573 (LINK_SPEC): Same.
16574 (SUBTARGET_EXTRA_SPECS): Add new 32/64 specs.
16575 * config/rs6000/aix72.h (TARGET_DEFAULT): Use 64 bit mask if BIARCH.
16576 * config/rs6000/defaultaix64.h: Delete.
16577
16578 2020-07-24 Segher Boessenkool <segher@kernel.crashing.org>
16579
16580 * config/rs6000/rs6000.opt: Delete -mpower10.
16581
16582 2020-07-24 Alexandre Oliva <oliva@adacore.com>
16583
16584 * config/i386/intelmic-mkoffload.c
16585 (generate_target_descr_file): Use dumppfx for save_temps
16586 files. Pass -dumpbase et al down to the compiler.
16587 (generate_target_offloadend_file): Likewise.
16588 (generate_host_descr_file): Likewise.
16589 (prepare_target_image): Likewise. Move out_obj_filename
16590 setting...
16591 (main): ... here. Detect -dumpbase, set dumppfx too.
16592
16593 2020-07-24 Alexandre Oliva <oliva@adacore.com>
16594
16595 PR driver/96230
16596 * gcc.c (process_command): Adjust and document conditions to
16597 reset dumpbase_ext.
16598
16599 2020-07-24 Matthias Klose <doko@ubuntu.com>
16600
16601 * config/aarch64/aarch64.c (+aarch64_offload_options,
16602 TARGET_OFFLOAD_OPTIONS): New.
16603
16604 2020-07-24 Uroš Bizjak <ubizjak@gmail.com>
16605
16606 PR target/95750
16607 * config/i386/sync.md (mmem_thread_fence): Emit mfence_sse2 for -Os.
16608
16609 2020-07-23 Roger Sayle <roger@nextmovesoftware.com>
16610
16611 PR rtl-optimization/96298
16612 * simplify-rtx.c (simplify_binary_operation_1) [XOR]: Xor doesn't
16613 distribute over xor, so (a^b)^(c^b) is not the same as (a^c)^b.
16614
16615 2020-07-23 Dong JianQiang <dongjianqiang2@huawei.com>
16616
16617 PR gcov-profile/96267
16618 * gcov-io.c (gcov_open): enable if IN_GCOV_TOOL.
16619
16620 2020-07-23 Kewen Lin <linkw@linux.ibm.com>
16621
16622 * config/rs6000/rs6000.c (adjust_vectorization_cost): Renamed to ...
16623 (rs6000_adjust_vect_cost_per_stmt): ... here.
16624 (rs6000_add_stmt_cost): Rename adjust_vectorization_cost to
16625 rs6000_adjust_vect_cost_per_stmt.
16626
16627 2020-07-23 Kewen Lin <linkw@linux.ibm.com>
16628
16629 * tree-ssa-loop-ivopts.c (get_mem_type_for_internal_fn): Handle
16630 IFN_LEN_LOAD and IFN_LEN_STORE.
16631 (get_alias_ptr_type_for_ptr_address): Likewise.
16632
16633 2020-07-23 Kito Cheng <kito.cheng@sifive.com>
16634
16635 PR target/96260
16636 * asan.c (asan_shadow_offset_set_p): New.
16637 * asan.h (asan_shadow_offset_set_p): Ditto.
16638 * toplev.c (process_options): Allow -fsanitize=kernel-address
16639 even TARGET_ASAN_SHADOW_OFFSET not implemented, only check when
16640 asan stack protection is enabled.
16641
16642 2020-07-22 Peter Bergner <bergner@linux.ibm.com>
16643
16644 PR target/96236
16645 * config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Handle
16646 little-endian memory ordering.
16647
16648 2020-07-22 Nathan Sidwell <nathan@acm.org>
16649
16650 * dumpfile.c (parse_dump_option): Deal with filenames
16651 containing '-'
16652
16653 2020-07-22 Nathan Sidwell <nathan@acm.org>
16654
16655 * incpath.c (add_path): Avoid multiple strlen calls.
16656
16657 2020-07-22 Jozef Lawrynowicz <jozef.l@mittosystems.com>
16658
16659 * expmed.c (expand_sdiv_pow2): Check return value from emit_store_flag
16660 is not NULL_RTX before use.
16661
16662 2020-07-22 Jozef Lawrynowicz <jozef.l@mittosystems.com>
16663
16664 * expr.c (convert_modes): Allow a constant integer to be converted to
16665 any scalar int mode.
16666
16667 2020-07-22 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
16668
16669 * config/aarch64/aarch64-ldpstp.md: Add two peepholes for adjusted vector
16670 V2SI, V2SF, V2DI, V2DF load pair and store pair modes.
16671 * config/aarch64/aarch64-protos.h (aarch64_gen_adjusted_ldpstp):
16672 Change mode parameter to machine_mode.
16673 (aarch64_operands_adjust_ok_for_ldpstp): Change mode parameter to
16674 machine_mode.
16675 * config/aarch64/aarch64.c (aarch64_operands_adjust_ok_for_ldpstp):
16676 Change mode parameter to machine_mode.
16677 (aarch64_gen_adjusted_ldpstp): Change mode parameter to machine_mode.
16678 * config/aarch64/iterators.md (VP_2E): New iterator for 2 element vectors.
16679
16680 2020-07-22 Wei Wentao <weiwt.fnst@cn.fujitsu.com>
16681
16682 * doc/languages.texi: Fix “then”/“than” typo.
16683
16684 2020-07-21 Sunil K Pandey <skpgkp2@gmail.com>
16685
16686 PR target/95237
16687 * config/i386/i386-protos.h (ix86_local_alignment): Add
16688 another function parameter may_lower alignment. Default is
16689 false.
16690 * config/i386/i386.c (ix86_lower_local_decl_alignment): New
16691 function.
16692 (ix86_local_alignment): Amend ix86_local_alignment to accept
16693 another parameter may_lower. If may_lower is true, new align
16694 may be lower than incoming alignment. If may_lower is false,
16695 new align will be greater or equal to incoming alignment.
16696 (TARGET_LOWER_LOCAL_DECL_ALIGNMENT): Define.
16697 * doc/tm.texi: Regenerate.
16698 * doc/tm.texi.in (TARGET_LOWER_LOCAL_DECL_ALIGNMENT): New
16699 hook.
16700 * target.def (lower_local_decl_alignment): New hook.
16701
16702 2020-07-21 Uroš Bizjak <ubizjak@gmail.com>
16703
16704 PR target/95750
16705 * config/i386/sync.md (mfence_sse2): Enable for
16706 TARGET_64BIT and TARGET_SSE2.
16707 (mfence_nosse): Always enable.
16708
16709 2020-07-21 Jozef Lawrynowicz <jozef.l@mittosystems.com>
16710
16711 * config/msp430/msp430-protos.h (msp430_do_not_relax_short_jumps):
16712 Remove.
16713 * config/msp430/msp430.c (msp430_do_not_relax_short_jumps): Likewise.
16714 * config/msp430/msp430.md (cbranchhi4_real): Remove special case for
16715 msp430_do_not_relax_short_jumps.
16716
16717 2020-07-21 Jozef Lawrynowicz <jozef.l@mittosystems.com>
16718
16719 * config/msp430/msp430.md: New "extendqipsi2" define_insn.
16720
16721 2020-07-21 Jozef Lawrynowicz <jozef.l@mittosystems.com>
16722
16723 * config/msp430/msp430.h (NO_FUNCTION_CSE): Set to true at -O2 and
16724 above.
16725
16726 2020-07-21 Xionghu Luo <luoxhu@linux.ibm.com>
16727
16728 PR rtl-optimization/89310
16729 * config/rs6000/rs6000.md (movsf_from_si2): New define_insn_and_split.
16730
16731 2020-07-20 Hans-Peter Nilsson <hp@bitrange.com>
16732
16733 * config/mmix/mmix.c (mmix_expand_prologue): Calculate the total
16734 allocated size and set current_function_static_stack_size, if
16735 flag_stack_usage_info.
16736
16737 2020-07-20 Sergei Trofimovich <siarheit@google.com>
16738
16739 PR target/96190
16740 * config/sparc/linux.h (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
16741 to get crtendS.o for !no-pie mode.
16742 * config/sparc/linux64.h (ENDFILE_SPEC): Ditto.
16743
16744 2020-07-20 Yang Yang <yangyang305@huawei.com>
16745
16746 * tree-vect-stmts.c (vectorizable_simd_clone_call): Add
16747 VIEW_CONVERT_EXPRs if the arguments types and return type
16748 of simd clone function are distinct with the vectype of stmt.
16749
16750 2020-07-20 Uroš Bizjak <ubizjak@gmail.com>
16751
16752 PR target/95750
16753 * config/i386/i386.h (TARGET_AVOID_MFENCE):
16754 Rename from TARGET_USE_XCHG_FOR_ATOMIC_STORE.
16755 * config/i386/sync.md (mfence_sse2): Disable for TARGET_AVOID_MFENCE.
16756 (mfence_nosse): Enable also for TARGET_AVOID_MFENCE. Emit stack
16757 referred memory in word_mode.
16758 (mem_thread_fence): Do not generate mfence_sse2 pattern when
16759 TARGET_AVOID_MFENCE is true.
16760 (atomic_store<mode>): Update for rename.
16761 * config/i386/x86-tune.def (X86_TUNE_AVOID_MFENCE):
16762 Rename from X86_TUNE_USE_XCHG_FOR_ATOMIC_STORE.
16763
16764 2020-07-20 Martin Sebor <msebor@redhat.com>
16765
16766 PR middle-end/95189
16767 PR middle-end/95886
16768 * builtins.c (inline_expand_builtin_string_cmp): Rename...
16769 (inline_expand_builtin_bytecmp): ...to this.
16770 (builtin_memcpy_read_str): Don't expect data to be nul-terminated.
16771 (expand_builtin_memory_copy_args): Handle object representations
16772 with embedded nul bytes.
16773 (expand_builtin_memcmp): Same.
16774 (expand_builtin_strcmp): Adjust call to naming change.
16775 (expand_builtin_strncmp): Same.
16776 * expr.c (string_constant): Create empty strings with nonzero size.
16777 * fold-const.c (c_getstr): Rename locals and update comments.
16778 * tree.c (build_string): Accept null pointer argument.
16779 (build_string_literal): Same.
16780 * tree.h (build_string): Provide a default.
16781 (build_string_literal): Same.
16782
16783 2020-07-20 Richard Biener <rguenther@suse.de>
16784
16785 * cfganal.c (rev_post_order_and_mark_dfs_back_seme): Remove
16786 write-only post array.
16787
16788 2020-07-20 Jakub Jelinek <jakub@redhat.com>
16789
16790 PR libstdc++/93121
16791 * gimple-fold.c (fold_const_aggregate_ref_1): For COMPONENT_REF
16792 of a bitfield not aligned on byte boundaries try to
16793 fold_ctor_reference DECL_BIT_FIELD_REPRESENTATIVE if any and
16794 adjust it depending on endianity.
16795
16796 2020-07-20 Jakub Jelinek <jakub@redhat.com>
16797
16798 PR libstdc++/93121
16799 * fold-const.c (native_encode_initializer): Handle bit-fields.
16800
16801 2020-07-20 Kewen Lin <linkw@linux.ibm.com>
16802
16803 * config/rs6000/rs6000.c (rs6000_option_override_internal):
16804 Set param_vect_partial_vector_usage to 0 explicitly.
16805 * doc/invoke.texi (vect-partial-vector-usage): Document new option.
16806 * optabs-query.c (get_len_load_store_mode): New function.
16807 * optabs-query.h (get_len_load_store_mode): New declare.
16808 * params.opt (vect-partial-vector-usage): New.
16809 * tree-vect-loop-manip.c (vect_set_loop_controls_directly): Add the
16810 handlings for vectorization using length-based partial vectors, call
16811 vect_gen_len for length generation, and rename some variables with
16812 items instead of scalars.
16813 (vect_set_loop_condition_partial_vectors): Add the handlings for
16814 vectorization using length-based partial vectors.
16815 (vect_do_peeling): Allow remaining eiters less than epilogue vf for
16816 LOOP_VINFO_USING_PARTIAL_VECTORS_P.
16817 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Init
16818 epil_using_partial_vectors_p.
16819 (_loop_vec_info::~_loop_vec_info): Call release_vec_loop_controls
16820 for lengths destruction.
16821 (vect_verify_loop_lens): New function.
16822 (vect_analyze_loop): Add handlings for epilogue of loop when it's
16823 marked to use vectorization using partial vectors.
16824 (vect_analyze_loop_2): Add the check to allow only one vectorization
16825 approach using partial vectorization at the same time. Check param
16826 vect-partial-vector-usage for partial vectors decision. Mark
16827 LOOP_VINFO_EPIL_USING_PARTIAL_VECTORS_P if the epilogue is
16828 considerable to use partial vectors. Call release_vec_loop_controls
16829 for lengths destruction.
16830 (vect_estimate_min_profitable_iters): Adjust for loop vectorization
16831 using length-based partial vectors.
16832 (vect_record_loop_mask): Init factor to 1 for vectorization using
16833 mask-based partial vectors.
16834 (vect_record_loop_len): New function.
16835 (vect_get_loop_len): Likewise.
16836 * tree-vect-stmts.c (check_load_store_for_partial_vectors): Add
16837 checks for vectorization using length-based partial vectors. Factor
16838 some code to lambda function get_valid_nvectors.
16839 (vectorizable_store): Add handlings when using length-based partial
16840 vectors.
16841 (vectorizable_load): Likewise.
16842 (vect_gen_len): New function.
16843 * tree-vectorizer.h (struct rgroup_controls): Add field factor
16844 mainly for length-based partial vectors.
16845 (vec_loop_lens): New typedef.
16846 (_loop_vec_info): Add lens and epil_using_partial_vectors_p.
16847 (LOOP_VINFO_EPIL_USING_PARTIAL_VECTORS_P): New macro.
16848 (LOOP_VINFO_LENS): Likewise.
16849 (LOOP_VINFO_FULLY_WITH_LENGTH_P): Likewise.
16850 (vect_record_loop_len): New declare.
16851 (vect_get_loop_len): Likewise.
16852 (vect_gen_len): Likewise.
16853
16854 2020-07-20 Hans-Peter Nilsson <hp@bitrange.com>
16855
16856 * config/mmix/mmix.c (mmix_option_override): Reinstate default
16857 integer-emitting targetm.asm_out pseudos when dumping detailed
16858 assembly-code.
16859 (mmix_assemble_integer): Update comment.
16860
16861 2020-07-19 H.J. Lu <hjl.tools@gmail.com>
16862
16863 PR target/95973
16864 PR target/96238
16865 * config/i386/cpuid.h: Add include guard.
16866 (__cpuidex): New.
16867
16868 2020-07-18 H.J. Lu <hjl.tools@gmail.com>
16869
16870 PR target/95620
16871 * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
16872
16873 2020-07-18 Peter Bergner <bergner@linux.ibm.com>
16874
16875 PR target/92488
16876 * config/rs6000/dfp.md (trunctdsd2): New define_insn.
16877 * config/rs6000/rs6000.md (define_attr "isa"): Add p9.
16878 (define_attr "enabled"): Handle p9.
16879
16880 2020-07-17 Roger Sayle <roger@nextmovesoftware.com>
16881
16882 * function.c (assign_parm_setup_block): Use the macro
16883 TRULY_NOOP_TRUNCATION_MODES_P instead of calling
16884 targetm.truly_noop_truncation directly.
16885
16886 2020-07-17 H.J. Lu <hjl.tools@gmail.com>
16887
16888 PR target/96186
16889 PR target/88713
16890 * config/i386/sse.md (VF_AVX512VL_VF1_128_256): Renamed to ...
16891 (VF1_AVX512ER_128_256): This. Drop DF vector modes.
16892 (rsqrt<mode>2): Replace VF_AVX512VL_VF1_128_256 with
16893 VF1_AVX512ER_128_256.
16894
16895 2020-07-17 Tamar Christina <tamar.christina@arm.com>
16896
16897 * doc/sourcebuild.texi (dg-set-compiler-env-var,
16898 dg-set-target-env-var): Document.
16899
16900 2020-07-17 Tamar Christina <tamar.christina@arm.com>
16901
16902 * config/arm/driver-arm.c (host_detect_local_cpu): Add GCC_CPUINFO.
16903
16904 2020-07-17 Tamar Christina <tamar.christina@arm.com>
16905
16906 * config/aarch64/driver-aarch64.c (host_detect_local_cpu):
16907 Add GCC_CPUINFO.
16908
16909 2020-07-17 Tamar Christina <tamar.christina@arm.com>
16910
16911 * config/aarch64/driver-aarch64.c (INCLUDE_SET): New.
16912 (parse_field): Use std::string.
16913 (split_words, readline, find_field): New.
16914 (host_detect_local_cpu): Fix truncation issues.
16915
16916 2020-07-17 Andrew Stubbs <ams@codesourcery.com>
16917
16918 * config/gcn/mkoffload.c (EM_AMDGPU): Undefine before defining.
16919 (ELFOSABI_AMDGPU_HSA): Likewise.
16920 (ELFABIVERSION_AMDGPU_HSA): Likewise.
16921 (EF_AMDGPU_MACH_AMDGCN_GFX803): Likewise.
16922 (EF_AMDGPU_MACH_AMDGCN_GFX900): Likewise.
16923 (EF_AMDGPU_MACH_AMDGCN_GFX906): Likewise.
16924 (reserved): Delete.
16925
16926 2020-07-17 Andrew Pinski <apinksi@marvell.com>
16927 Dmitrij Pochepko <dmitrij.pochepko@bell-sw.com>
16928
16929 PR target/93720
16930 * config/aarch64/aarch64.c (aarch64_evpc_ins): New function.
16931 (aarch64_expand_vec_perm_const_1): Call it.
16932 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_copy_lane): Make
16933 public, and add a "@" prefix.
16934
16935 2020-07-17 Andrew Pinski <apinksi@marvell.com>
16936 Dmitrij Pochepko <dmitrij.pochepko@bell-sw.com>
16937
16938 PR target/82199
16939 * config/aarch64/aarch64.c (aarch64_evpc_reencode): New function.
16940 (aarch64_expand_vec_perm_const_1): Call it.
16941
16942 2020-07-17 Zhiheng Xie <xiezhiheng@huawei.com>
16943
16944 * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
16945 Add new field flags.
16946 (VAR1): Add new field FLAG in macro.
16947 (VAR2): Likewise.
16948 (VAR3): Likewise.
16949 (VAR4): Likewise.
16950 (VAR5): Likewise.
16951 (VAR6): Likewise.
16952 (VAR7): Likewise.
16953 (VAR8): Likewise.
16954 (VAR9): Likewise.
16955 (VAR10): Likewise.
16956 (VAR11): Likewise.
16957 (VAR12): Likewise.
16958 (VAR13): Likewise.
16959 (VAR14): Likewise.
16960 (VAR15): Likewise.
16961 (VAR16): Likewise.
16962 (aarch64_general_fold_builtin): Likewise.
16963 (aarch64_general_gimple_fold_builtin): Likewise.
16964 * config/aarch64/aarch64-simd-builtins.def: Add default flag for
16965 each built-in function.
16966 * config/aarch64/geniterators.sh: Add new field in BUILTIN macro.
16967
16968 2020-07-17 Andreas Krebbel <krebbel@linux.ibm.com>
16969
16970 PR target/96127
16971 * config/s390/s390.c (s390_expand_insv): Invoke the movstrict
16972 expanders to generate the pattern.
16973 * config/s390/s390.md ("*movstricthi", "*movstrictqi"): Remove the
16974 '*' to have callable expanders.
16975
16976 2020-07-16 Hans-Peter Nilsson <hp@axis.com>
16977 Segher Boessenkool <segher@kernel.crashing.org>
16978
16979 PR target/93372
16980 * combine.c (is_just_move): Take an rtx_insn* as argument. Use
16981 single_set on it.
16982
16983 2020-07-16 Uroš Bizjak <ubizjak@gmail.com>
16984
16985 PR target/96189
16986 * config/i386/sync.md
16987 (peephole2 to remove unneded compare after CMPXCHG):
16988 New pattern, also handle XOR zeroing and load of -1 by OR.
16989
16990 2020-07-16 Eric Botcazou <ebotcazou@adacore.com>
16991
16992 * config/i386/i386.c (ix86_compute_frame_layout): Minor tweak.
16993 (ix86_adjust_stack_and_probe): Delete.
16994 (ix86_adjust_stack_and_probe_stack_clash): Rename to above and add
16995 PROTECTION_AREA parameter. If it is true, probe PROBE_INTERVAL plus
16996 a small dope beyond SIZE bytes.
16997 (ix86_emit_probe_stack_range): Use local variable.
16998 (ix86_expand_prologue): Adjust calls to ix86_adjust_stack_and_probe
16999 and tidy up the stack checking code.
17000 * explow.c (get_stack_check_protect): Fix head comment.
17001 (anti_adjust_stack_and_probe_stack_clash): Likewise.
17002 (allocate_dynamic_stack_space): Add comment.
17003 * tree-nested.c (lookup_field_for_decl): Set the DECL_IGNORED_P and
17004 TREE_NO_WARNING but not TREE_ADDRESSABLE flags on the field.
17005
17006 2020-07-16 Andrew Stubbs <ams@codesourcery.com>
17007
17008 * config/gcn/mkoffload.c: Include simple-object.h and elf.h.
17009 (EM_AMDGPU): New macro.
17010 (ELFOSABI_AMDGPU_HSA): New macro.
17011 (ELFABIVERSION_AMDGPU_HSA): New macro.
17012 (EF_AMDGPU_MACH_AMDGCN_GFX803): New macro.
17013 (EF_AMDGPU_MACH_AMDGCN_GFX900): New macro.
17014 (EF_AMDGPU_MACH_AMDGCN_GFX906): New macro.
17015 (R_AMDGPU_NONE): New macro.
17016 (R_AMDGPU_ABS32_LO): New macro.
17017 (R_AMDGPU_ABS32_HI): New macro.
17018 (R_AMDGPU_ABS64): New macro.
17019 (R_AMDGPU_REL32): New macro.
17020 (R_AMDGPU_REL64): New macro.
17021 (R_AMDGPU_ABS32): New macro.
17022 (R_AMDGPU_GOTPCREL): New macro.
17023 (R_AMDGPU_GOTPCREL32_LO): New macro.
17024 (R_AMDGPU_GOTPCREL32_HI): New macro.
17025 (R_AMDGPU_REL32_LO): New macro.
17026 (R_AMDGPU_REL32_HI): New macro.
17027 (reserved): New macro.
17028 (R_AMDGPU_RELATIVE64): New macro.
17029 (gcn_s1_name): Delete global variable.
17030 (gcn_s2_name): Delete global variable.
17031 (gcn_o_name): Delete global variable.
17032 (gcn_cfile_name): Delete global variable.
17033 (files_to_cleanup): New global variable.
17034 (offload_abi): New global variable.
17035 (tool_cleanup): Use files_to_cleanup, not explicit list.
17036 (copy_early_debug_info): New function.
17037 (main): New local variables gcn_s1_name, gcn_s2_name, gcn_o_name,
17038 gcn_cfile_name.
17039 Create files_to_cleanup obstack.
17040 Recognize -march options.
17041 Copy early debug info from input .o files.
17042
17043 2020-07-16 Andrea Corallo <andrea.corallo@arm.com>
17044
17045 * Makefile.in (TAGS): Remove 'params.def'.
17046
17047 2020-07-16 Roger Sayle <roger@nextmovesoftware.com>
17048
17049 * target.def (TARGET_TRULY_NOOP_TRUNCATION): Clarify that
17050 targets that return false, indicating SUBREGs shouldn't be
17051 used, also need to provide a trunc?i?i2 optab that performs this
17052 truncation.
17053 * doc/tm.texi: Regenerate.
17054
17055 2020-07-15 Uroš Bizjak <ubizjak@gmail.com>
17056
17057 PR target/96189
17058 * config/i386/sync.md
17059 (peephole2 to remove unneded compare after CMPXCHG): New pattern.
17060
17061 2020-07-15 Jakub Jelinek <jakub@redhat.com>
17062
17063 PR libgomp/96198
17064 * omp-general.h (struct omp_for_data): Rename min_inner_iterations
17065 member to first_inner_iterations, adjust comment.
17066 * omp-general.c (omp_extract_for_data): Adjust for the above change.
17067 Always use n1first and n2first to compute it, rather than depending
17068 on single_nonrect_cond_code. Similarly, always compute factor
17069 as (m2 - m1) * outer_step / inner_step rather than sometimes m1 - m2
17070 depending on single_nonrect_cond_code.
17071 * omp-expand.c (expand_omp_for_init_vars): Rename min_inner_iterations
17072 to first_inner_iterations and min_inner_iterationsd to
17073 first_inner_iterationsd.
17074
17075 2020-07-15 Jakub Jelinek <jakub@redhat.com>
17076
17077 PR target/96174
17078 * config/i386/avx512fintrin.h (_mm512_cmpeq_pd_mask,
17079 _mm512_mask_cmpeq_pd_mask, _mm512_cmplt_pd_mask,
17080 _mm512_mask_cmplt_pd_mask, _mm512_cmple_pd_mask,
17081 _mm512_mask_cmple_pd_mask, _mm512_cmpunord_pd_mask,
17082 _mm512_mask_cmpunord_pd_mask, _mm512_cmpneq_pd_mask,
17083 _mm512_mask_cmpneq_pd_mask, _mm512_cmpnlt_pd_mask,
17084 _mm512_mask_cmpnlt_pd_mask, _mm512_cmpnle_pd_mask,
17085 _mm512_mask_cmpnle_pd_mask, _mm512_cmpord_pd_mask,
17086 _mm512_mask_cmpord_pd_mask, _mm512_cmpeq_ps_mask,
17087 _mm512_mask_cmpeq_ps_mask, _mm512_cmplt_ps_mask,
17088 _mm512_mask_cmplt_ps_mask, _mm512_cmple_ps_mask,
17089 _mm512_mask_cmple_ps_mask, _mm512_cmpunord_ps_mask,
17090 _mm512_mask_cmpunord_ps_mask, _mm512_cmpneq_ps_mask,
17091 _mm512_mask_cmpneq_ps_mask, _mm512_cmpnlt_ps_mask,
17092 _mm512_mask_cmpnlt_ps_mask, _mm512_cmpnle_ps_mask,
17093 _mm512_mask_cmpnle_ps_mask, _mm512_cmpord_ps_mask,
17094 _mm512_mask_cmpord_ps_mask): Move outside of __OPTIMIZE__ guarded
17095 section.
17096
17097 2020-07-15 Jakub Jelinek <jakub@redhat.com>
17098
17099 PR target/96176
17100 * builtins.c: Include gimple-ssa.h, tree-ssa-live.h and
17101 tree-outof-ssa.h.
17102 (expand_expr_force_mode): If exp is a SSA_NAME with different mode
17103 from MODE and get_gimple_for_ssa_name is a cast from MODE, use the
17104 cast's rhs.
17105
17106 2020-07-15 Jiufu Guo <guojiufu@cn.ibm.com>
17107
17108 * config/rs6000/rs6000.c (rs6000_loop_unroll_adjust): Refine hook.
17109
17110 2020-07-14 David Edelsohn <dje.gcc@gmail.com>
17111
17112 * config/rs6000/rs6000.md (rotldi3_insert_sf): Add TARGET_POWERPC64
17113 condition.
17114 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Add
17115 TARGET_POWERPC64 requirement to TARGET_P8_VECTOR case.
17116
17117 2020-07-14 Lewis Hyatt <lhyatt@gmail.com>
17118
17119 PR preprocessor/49973
17120 PR other/86904
17121 * common.opt: Handle -ftabstop here instead of in c-family
17122 options. Add -fdiagnostics-column-unit= and
17123 -fdiagnostics-column-origin= options.
17124 * opts.c (common_handle_option): Handle the new options.
17125 * diagnostic-format-json.cc (json_from_expanded_location): Add
17126 diagnostic_context argument. Use it to convert column numbers as per
17127 the new options.
17128 (json_from_location_range): Likewise.
17129 (json_from_fixit_hint): Likewise.
17130 (json_end_diagnostic): Pass the new context argument to helper
17131 functions above. Add "column-origin" field to the output.
17132 (test_unknown_location): Add the new context argument to calls to
17133 helper functions.
17134 (test_bad_endpoints): Likewise.
17135 * diagnostic-show-locus.c
17136 (exploc_with_display_col::exploc_with_display_col): Support
17137 tabstop parameter.
17138 (layout_point::layout_point): Make use of class
17139 exploc_with_display_col.
17140 (layout_range::layout_range): Likewise.
17141 (struct line_bounds): Clarify that the units are now always
17142 display columns. Rename members accordingly. Add constructor.
17143 (layout::print_source_line): Add support for tab expansion.
17144 (make_range): Adapt to class layout_range changes.
17145 (layout::maybe_add_location_range): Likewise.
17146 (layout::layout): Adapt to class exploc_with_display_col changes.
17147 (layout::calculate_x_offset_display): Support tabstop parameter.
17148 (layout::print_annotation_line): Adapt to struct line_bounds changes.
17149 (layout::print_line): Likewise.
17150 (line_label::line_label): Add diagnostic_context argument.
17151 (get_affected_range): Likewise.
17152 (get_printed_columns): Likewise.
17153 (layout::print_any_labels): Adapt to struct line_label changes.
17154 (class correction): Add m_tabstop member.
17155 (correction::correction): Add tabstop argument.
17156 (correction::compute_display_cols): Use m_tabstop.
17157 (class line_corrections): Add m_context member.
17158 (line_corrections::line_corrections): Add diagnostic_context argument.
17159 (line_corrections::add_hint): Use m_context to handle tabstops.
17160 (layout::print_trailing_fixits): Adapt to class line_corrections
17161 changes.
17162 (test_layout_x_offset_display_utf8): Support tabstop parameter.
17163 (test_layout_x_offset_display_tab): New selftest.
17164 (test_one_liner_colorized_utf8): Likewise.
17165 (test_tab_expansion): Likewise.
17166 (test_diagnostic_show_locus_one_liner_utf8): Call the new tests.
17167 (diagnostic_show_locus_c_tests): Likewise.
17168 (test_overlapped_fixit_printing): Adapt to helper class and
17169 function changes.
17170 (test_overlapped_fixit_printing_utf8): Likewise.
17171 (test_overlapped_fixit_printing_2): Likewise.
17172 * diagnostic.h (enum diagnostics_column_unit): New enum.
17173 (struct diagnostic_context): Add members for the new options.
17174 (diagnostic_converted_column): Declare.
17175 (json_from_expanded_location): Add new context argument.
17176 * diagnostic.c (diagnostic_initialize): Initialize new members.
17177 (diagnostic_converted_column): New function.
17178 (maybe_line_and_column): Be willing to output a column of 0.
17179 (diagnostic_get_location_text): Convert column number as per the new
17180 options.
17181 (diagnostic_report_current_module): Likewise.
17182 (assert_location_text): Add origin and column_unit arguments for
17183 testing the new functionality.
17184 (test_diagnostic_get_location_text): Test the new functionality.
17185 * doc/invoke.texi: Document the new options and behavior.
17186 * input.h (location_compute_display_column): Add tabstop argument.
17187 * input.c (location_compute_display_column): Likewise.
17188 (test_cpp_utf8): Add selftests for tab expansion.
17189 * tree-diagnostic-path.cc (default_tree_make_json_for_path): Pass the
17190 new context argument to json_from_expanded_location().
17191
17192 2020-07-14 Jakub Jelinek <jakub@redhat.com>
17193
17194 PR middle-end/96194
17195 * expr.c (expand_constructor): Don't create temporary for store to
17196 volatile MEM if exp has an addressable type.
17197
17198 2020-07-14 Nathan Sidwell <nathan@acm.org>
17199
17200 * hash-map.h (hash_map::get): Note it is a pointer to value.
17201 * incpath.h (incpath_kind): Align comments.
17202
17203 2020-07-14 Nathan Sidwell <nathan@acm.org>
17204
17205 * tree-core.h (tree_decl_with_vis, tree_function_decl):
17206 Note additional padding on 64-bits
17207 * tree.c (cache_integer_cst): Note why no caching of enum literals.
17208 (get_tree_code_name): Robustify error case.
17209
17210 2020-07-14 Nathan Sidwell <nathan@acm.org>
17211
17212 * doc/gty.texi: Fic gt_cleare_cache name.
17213 * doc/invoke.texi: Remove duplicate opindex Wabi-tag.
17214
17215 2020-07-14 Jakub Jelinek <jakub@redhat.com>
17216
17217 * omp-general.h (struct omp_for_data): Add adjn1 member.
17218 * omp-general.c (omp_extract_for_data): For non-rect loop, punt on
17219 count computing if n1, n2 or step are not INTEGER_CST earlier.
17220 Narrow the outer iterator range if needed so that non-rect loop
17221 has at least one iteration for each outer range iteration. Compute
17222 adjn1.
17223 * omp-expand.c (expand_omp_for_init_vars): Use adjn1 if non-NULL
17224 instead of the outer loop's n1.
17225
17226 2020-07-14 Matthias Klose <doko@ubuntu.com>
17227
17228 PR lto/95604
17229 * lto-wrapper.c (merge_and_complain): Add decoded options as parameter,
17230 error on different values for -fcf-protection.
17231 (append_compiler_options): Pass -fcf-protection option.
17232 (find_and_merge_options): Add decoded options as parameter,
17233 pass decoded_options to merge_and_complain.
17234 (run_gcc): Pass decoded options to find_and_merge_options.
17235 * lto-opts.c (lto_write_options): Pass -fcf-protection option.
17236
17237 2020-07-13 Alan Modra <amodra@gmail.com>
17238
17239 * config/rs6000/rs6000.md (sibcall_local): Merge sibcall_local32
17240 and sibcall_local64.
17241 (sibcall_value_local): Similarly.
17242
17243 2020-07-13 Nathan Sidwell <nathan@acm.org>
17244
17245 * Makefile.in (distclean): Remove long gone cxxmain.c
17246
17247 2020-07-13 H.J. Lu <hjl.tools@gmail.com>
17248
17249 PR target/95443
17250 * config/i386/i386.md (cmpstrnsi): Pass a copy of the string
17251 length to cmpstrnqi patterns.
17252
17253 2020-07-13 Jakub Jelinek <jakub@redhat.com>
17254
17255 PR ipa/96130
17256 * ipa-fnsummary.c (analyze_function_body): Treat NULL bb->aux
17257 as false predicate.
17258
17259 2020-07-13 Richard Biener <rguenther@suse.de>
17260
17261 PR tree-optimization/96163
17262 * tree-vect-slp.c (vect_schedule_slp_instance): Put new stmts
17263 at least after region begin.
17264
17265 2020-07-13 Szabolcs Nagy <szabolcs.nagy@arm.com>
17266
17267 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add
17268 __ARM_FEATURE_PAC_DEFAULT support.
17269
17270 2020-07-13 Szabolcs Nagy <szabolcs.nagy@arm.com>
17271
17272 PR target/94891
17273 * doc/extend.texi: Update the text for __builtin_return_address.
17274
17275 2020-07-13 Szabolcs Nagy <szabolcs.nagy@arm.com>
17276
17277 PR target/94891
17278 * config/aarch64/aarch64.c (aarch64_return_address_signing_enabled):
17279 Disable return address signing if __builtin_eh_return is used.
17280
17281 2020-07-13 Szabolcs Nagy <szabolcs.nagy@arm.com>
17282
17283 PR target/94891
17284 PR target/94791
17285 * config/aarch64/aarch64-protos.h (aarch64_return_addr_rtx): Declare.
17286 * config/aarch64/aarch64.c (aarch64_return_addr_rtx): New.
17287 (aarch64_return_addr): Use aarch64_return_addr_rtx.
17288 * config/aarch64/aarch64.h (PROFILE_HOOK): Likewise.
17289
17290 2020-07-13 Richard Sandiford <richard.sandiford@arm.com>
17291
17292 PR middle-end/95114
17293 * tree.h (virtual_method_call_p): Add a default-false parameter
17294 that indicates whether the function is being called from dump
17295 routines.
17296 (obj_type_ref_class): Likewise.
17297 * tree.c (virtual_method_call_p): Likewise.
17298 * ipa-devirt.c (obj_type_ref_class): Likewise. Lazily add ODR
17299 type information for the type when the parameter is false.
17300 * tree-pretty-print.c (dump_generic_node): Update calls to
17301 virtual_method_call_p and obj_type_ref_class accordingly.
17302
17303 2020-07-13 Julian Brown <julian@codesourcery.com>
17304 Thomas Schwinge <thomas@codesourcery.com>
17305
17306 * gimplify.c (gimplify_scan_omp_clauses): Do not strip
17307 GOMP_MAP_TO_PSET/GOMP_MAP_POINTER for OpenACC enter/exit data
17308 directives (see also PR92929).
17309
17310 2020-07-13 Roger Sayle <roger@nextmovesoftware.com>
17311
17312 * convert.c (convert_to_integer_1): Narrow integer operations
17313 even on targets that require explicit truncation instructions.
17314
17315 2020-07-13 Hans-Peter Nilsson <hp@axis.com>
17316
17317 PR target/93372
17318 * config/cris/cris-passes.def: New file.
17319 * config/cris/t-cris (PASSES_EXTRA): Add cris-passes.def.
17320 * config/cris/cris.c: Add infrastructure bits and pass execute
17321 function cris_postdbr_cmpelim.
17322 * config/cris/cris-protos.h (make_pass_cris_postdbr_cmpelim): Declare.
17323
17324 2020-07-13 Hans-Peter Nilsson <hp@axis.com>
17325
17326 * config/cris/t-cris: Remove gt-cris.h-related excessive cargo.
17327
17328 2020-07-13 Hans-Peter Nilsson <hp@axis.com>
17329
17330 PR target/93372
17331 * config/cris/cris.md ("*add<mode>3_addi"): New splitter.
17332 ("*addi_b_<mode>"): New pattern.
17333 ("*addsi3<setnz>"): Remove stale %-related comment.
17334
17335 2020-07-13 Hans-Peter Nilsson <hp@axis.com>
17336
17337 * config/cris/cris.md ("setnz_subst", "setnz_subst", "setcc_subst"):
17338 Use match_dup in output template, not match_operand.
17339
17340 2020-07-13 Richard Biener <rguenther@suse.de>
17341
17342 * var-tracking.c (bb_heap_node_t): Remove unused typedef.
17343 (vt_find_locations): Eliminate visited bitmap in favor of
17344 RPO order check. Dump statistics about the number of
17345 local BB dataflow computes.
17346
17347 2020-07-13 Richard Biener <rguenther@suse.de>
17348
17349 PR middle-end/94600
17350 * expr.c (expand_constructor): Make a temporary also if we're
17351 storing to volatile memory.
17352
17353 2020-07-13 Xionghu Luo <luoxhu@linux.ibm.com>
17354
17355 * config/rs6000/rs6000.md (rotl_unspec): New
17356 define_insn_and_split.
17357
17358 2020-07-13 Xionghu Luo <luoxhu@linux.ibm.com>
17359
17360 * config/rs6000/rs6000.c (rs6000_expand_vector_init):
17361 Move V4SF to V4SI, init vector like V4SI and move to V4SF back.
17362
17363 2020-07-11 Roger Sayle <roger@nextmovesoftware.com>
17364
17365 * internal-fn.c (expand_mul_overflow): When checking for signed
17366 overflow from a widening multiplication, we access the truncated
17367 lowpart RES twice, so keep this value in a pseudo register.
17368
17369 2020-07-11 Richard Sandiford <richard.sandiford@arm.com>
17370
17371 PR tree-optimization/96146
17372 * value-range.cc (value_range::set): Only decompose POLY_INT_CST
17373 bounds to integers for VR_RANGE. Decay to VR_VARYING for anti-ranges
17374 involving POLY_INT_CSTs.
17375
17376 2020-07-10 David Edelsohn <dje.gcc@gmail.com>
17377
17378 PR target/77373
17379 * config/rs6000/rs6000.c (rs6000_xcoff_select_section): Only
17380 create named section for VAR_DECL or FUNCTION_DECL.
17381
17382 2020-07-10 Joseph Myers <joseph@codesourcery.com>
17383
17384 * glimits.h [__STDC_VERSION__ > 201710L] (BOOL_MAX, BOOL_WIDTH):
17385 New macros.
17386
17387 2020-07-10 Alexander Popov <alex.popov@linux.com>
17388
17389 * shrink-wrap.c (try_shrink_wrapping): Improve debug output.
17390
17391 2020-07-10 Richard Sandiford <richard.sandiford@arm.com>
17392
17393 PR middle-end/96151
17394 * expr.c (expand_expr_real_2): When reducing bit fields,
17395 clear the target if it has a different mode from the expression.
17396 (reduce_to_bit_field_precision): Don't do that here. Instead
17397 assert that the target already has the correct mode.
17398
17399 2020-07-10 Richard Sandiford <richard.sandiford@arm.com>
17400
17401 PR target/92789
17402 PR target/95726
17403 * config/arm/arm.c (arm_attribute_table): Add
17404 "Advanced SIMD type".
17405 (arm_comp_type_attributes): Check that the "Advanced SIMD type"
17406 attributes are equal.
17407 * config/arm/arm-builtins.c: Include stringpool.h and
17408 attribs.h.
17409 (arm_mangle_builtin_vector_type): Use the mangling recorded
17410 in the "Advanced SIMD type" attribute.
17411 (arm_init_simd_builtin_types): Add an "Advanced SIMD type"
17412 attribute to each Advanced SIMD type, using the mangled type
17413 as the attribute's single argument.
17414
17415 2020-07-10 Carl Love <cel@us.ibm.com>
17416
17417 * config/rs6000/vsx.md (VSX_MM): New define_mode_iterator.
17418 (VSX_MM4): New define_mode_iterator.
17419 (vec_mtvsrbmi): New define_insn.
17420 (vec_mtvsr_<mode>): New define_insn.
17421 (vec_cntmb_<mode>): New define_insn.
17422 (vec_extract_<mode>): New define_insn.
17423 (vec_expand_<mode>): New define_insn.
17424 (define_c_enum unspec): Add entries UNSPEC_MTVSBM, UNSPEC_VCNTMB,
17425 UNSPEC_VEXTRACT, UNSPEC_VEXPAND.
17426 * config/rs6000/altivec.h ( vec_genbm, vec_genhm, vec_genwm,
17427 vec_gendm, vec_genqm, vec_cntm, vec_expandm, vec_extractm): Add
17428 defines.
17429 * config/rs6000/rs6000-builtin.def: Add defines BU_P10_2, BU_P10_1.
17430 (BU_P10_1): Add definitions for mtvsrbm, mtvsrhm, mtvsrwm,
17431 mtvsrdm, mtvsrqm, vexpandmb, vexpandmh, vexpandmw, vexpandmd,
17432 vexpandmq, vextractmb, vextractmh, vextractmw, vextractmd, vextractmq.
17433 (BU_P10_2): Add definitions for cntmbb, cntmbh, cntmbw, cntmbd.
17434 (BU_P10_OVERLOAD_1): Add definitions for mtvsrbm, mtvsrhm,
17435 mtvsrwm, mtvsrdm, mtvsrqm, vexpandm, vextractm.
17436 (BU_P10_OVERLOAD_2): Add defition for cntm.
17437 * config/rs6000/rs6000-call.c (rs6000_expand_binop_builtin): Add
17438 checks for CODE_FOR_vec_cntmbb_v16qi, CODE_FOR_vec_cntmb_v8hi,
17439 CODE_FOR_vec_cntmb_v4si, CODE_FOR_vec_cntmb_v2di.
17440 (altivec_overloaded_builtins): Add overloaded argument entries for
17441 P10_BUILTIN_VEC_MTVSRBM, P10_BUILTIN_VEC_MTVSRHM,
17442 P10_BUILTIN_VEC_MTVSRWM, P10_BUILTIN_VEC_MTVSRDM,
17443 P10_BUILTIN_VEC_MTVSRQM, P10_BUILTIN_VEC_VCNTMBB,
17444 P10_BUILTIN_VCNTMBB, P10_BUILTIN_VCNTMBH,
17445 P10_BUILTIN_VCNTMBW, P10_BUILTIN_VCNTMBD,
17446 P10_BUILTIN_VEXPANDMB, P10_BUILTIN_VEXPANDMH,
17447 P10_BUILTIN_VEXPANDMW, P10_BUILTIN_VEXPANDMD,
17448 P10_BUILTIN_VEXPANDMQ, P10_BUILTIN_VEXTRACTMB,
17449 P10_BUILTIN_VEXTRACTMH, P10_BUILTIN_VEXTRACTMW,
17450 P10_BUILTIN_VEXTRACTMD, P10_BUILTIN_VEXTRACTMQ.
17451 (builtin_function_type): Add case entries for P10_BUILTIN_MTVSRBM,
17452 P10_BUILTIN_MTVSRHM, P10_BUILTIN_MTVSRWM, P10_BUILTIN_MTVSRDM,
17453 P10_BUILTIN_MTVSRQM, P10_BUILTIN_VCNTMBB, P10_BUILTIN_VCNTMBH,
17454 P10_BUILTIN_VCNTMBW, P10_BUILTIN_VCNTMBD,
17455 P10_BUILTIN_VEXPANDMB, P10_BUILTIN_VEXPANDMH,
17456 P10_BUILTIN_VEXPANDMW, P10_BUILTIN_VEXPANDMD,
17457 P10_BUILTIN_VEXPANDMQ.
17458 * config/rs6000/rs6000-builtin.def (altivec_overloaded_builtins): Add
17459 entries for MTVSRBM, MTVSRHM, MTVSRWM, MTVSRDM, MTVSRQM, VCNTM,
17460 VEXPANDM, VEXTRACTM.
17461
17462 2020-07-10 Bill Seurer, 507-253-3502, seurer@us.ibm.com <(no_default)>
17463
17464 PR target/95581
17465 * config/rs6000/rs6000-call.c: Add new type v16qi_ftype_pcvoid.
17466 (altivec_init_builtins) Change __builtin_altivec_mask_for_load to use
17467 v16qi_ftype_pcvoid with correct number of parameters.
17468
17469 2020-07-10 H.J. Lu <hjl.tools@gmail.com>
17470
17471 PR target/96144
17472 * config/i386/i386-expand.c (ix86_emit_swsqrtsf): Check
17473 TARGET_AVX512VL when enabling FMA.
17474
17475 2020-07-10 Andrea Corallo <andrea.corallo@arm.com>
17476 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
17477 Iain Apreotesei <iain.apreotesei@arm.com>
17478
17479 * config/arm/arm-protos.h (arm_target_insn_ok_for_lob): New
17480 prototype.
17481 * config/arm/arm.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
17482 (arm_invalid_within_doloop): Implement invalid_within_doloop hook.
17483 (arm_target_insn_ok_for_lob): New function.
17484 * config/arm/arm.h (TARGET_HAVE_LOB): Define macro.
17485 * config/arm/thumb2.md (*doloop_end_internal, doloop_begin)
17486 (dls_insn): Add new patterns.
17487 (doloop_end): Modify to select LR when LOB is available.
17488 * config/arm/unspecs.md: Add new unspec.
17489 * doc/sourcebuild.texi (arm_v8_1_lob_ok)
17490 (arm_thumb2_ok_no_arm_v8_1_lob): Document new target supports
17491 options.
17492
17493 2020-07-10 Richard Biener <rguenther@suse.de>
17494
17495 PR tree-optimization/96133
17496 * gimple-fold.c (fold_array_ctor_reference): Do not
17497 recurse to folding a CTOR that does not fully cover the
17498 asked for object.
17499
17500 2020-07-10 Cui,Lili <lili.cui@intel.com>
17501
17502 * common/config/i386/cpuinfo.h
17503 (get_intel_cpu): Handle sapphirerapids.
17504 * common/config/i386/i386-common.c
17505 (processor_names): Add sapphirerapids and alderlake.
17506 (processor_alias_table): Add sapphirerapids and alderlake.
17507 * common/config/i386/i386-cpuinfo.h
17508 (processor_subtypes): Add INTEL_COREI7_ALDERLAKE and
17509 INTEL_COREI7_ALDERLAKE.
17510 * config.gcc: Add -march=sapphirerapids and alderlake.
17511 * config/i386/driver-i386.c
17512 (host_detect_local_cpu) Handle sapphirerapids and alderlake.
17513 * config/i386/i386-c.c
17514 (ix86_target_macros_internal): Handle sapphirerapids and alderlake.
17515 * config/i386/i386-options.c
17516 (m_SAPPHIRERAPIDS) : Define.
17517 (m_ALDERLAKE): Ditto.
17518 (m_CORE_AVX512) : Add m_SAPPHIRERAPIDS.
17519 (processor_cost_table): Add sapphirerapids and alderlake.
17520 (ix86_option_override_internal) Handle PTA_WAITPKG, PTA_ENQCMD,
17521 PTA_CLDEMOTE, PTA_SERIALIZE, PTA_TSXLDTRK.
17522 * config/i386/i386.h
17523 (ix86_size_cost) : Define SAPPHIRERAPIDS and ALDERLAKE.
17524 (processor_type) : Add PROCESSOR_SAPPHIRERAPIDS and
17525 PROCESSOR_ALDERLAKE.
17526 (PTA_ENQCMD): New.
17527 (PTA_CLDEMOTE): Ditto.
17528 (PTA_SERIALIZE): Ditto.
17529 (PTA_TSXLDTRK): New.
17530 (PTA_SAPPHIRERAPIDS): Ditto.
17531 (PTA_ALDERLAKE): Ditto.
17532 (processor_type) : Add PROCESSOR_SAPPHIRERAPIDS and
17533 PROCESSOR_ALDERLAKE.
17534 * doc/extend.texi: Add sapphirerapids and alderlake.
17535 * doc/invoke.texi: Add sapphirerapids and alderlake.
17536
17537 2020-07-10 Martin Liska <mliska@suse.cz>
17538
17539 * dumpfile.c [profile-report]: Add new profile dump.
17540 * dumpfile.h (enum tree_dump_index): Ad TDI_profile_report.
17541 * passes.c (pass_manager::dump_profile_report): Change stderr
17542 to dump_file.
17543
17544 2020-07-10 Kewen Lin <linkw@linux.ibm.com>
17545
17546 * tree-vect-loop.c (vect_transform_loop): Use LOOP_VINFO_NITERS which
17547 is adjusted by considering peeled prologue for non
17548 vect_use_loop_mask_for_alignment_p cases.
17549
17550 2020-07-09 Peter Bergner <bergner@linux.ibm.com>
17551
17552 PR target/96125
17553 * config/rs6000/rs6000-call.c (rs6000_init_builtins): Define the MMA
17554 specific types __vector_quad and __vector_pair, and initialize the
17555 MMA built-ins if TARGET_EXTRA_BUILTINS is set.
17556 (mma_init_builtins): Don't test for mask set in rs6000_builtin_mask.
17557 Remove now unneeded mask variable.
17558 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add the
17559 OPTION_MASK_MMA flag for power10 if not already set.
17560
17561 2020-07-09 Richard Biener <rguenther@suse.de>
17562
17563 PR tree-optimization/96133
17564 * tree-vect-slp.c (vect_build_slp_tree_1): Compare load_p
17565 status between stmts.
17566
17567 2020-07-09 H.J. Lu <hjl.tools@gmail.com>
17568
17569 PR target/88713
17570 * config/i386/i386-expand.c (ix86_emit_swsqrtsf): Enable FMA.
17571 * config/i386/sse.md (VF_AVX512VL_VF1_128_256): New.
17572 (rsqrt<mode>2): Replace VF1_128_256 with VF_AVX512VL_VF1_128_256.
17573 (rsqrtv16sf2): Removed.
17574
17575 2020-07-09 Richard Biener <rguenther@suse.de>
17576
17577 * tree-vectorizer.h (vect_verify_datarefs_alignment): Remove.
17578 (vect_slp_analyze_and_verify_instance_alignment): Rename to ...
17579 (vect_slp_analyze_instance_alignment): ... this.
17580 * tree-vect-data-refs.c (verify_data_ref_alignment): Remove.
17581 (vect_verify_datarefs_alignment): Likewise.
17582 (vect_enhance_data_refs_alignment): Do not call
17583 vect_verify_datarefs_alignment.
17584 (vect_slp_analyze_node_alignment): Rename from
17585 vect_slp_analyze_and_verify_node_alignment and do not
17586 call verify_data_ref_alignment.
17587 (vect_slp_analyze_instance_alignment): Rename from
17588 vect_slp_analyze_and_verify_instance_alignment.
17589 * tree-vect-stmts.c (vectorizable_store): Dump when
17590 we vectorize an unaligned access.
17591 (vectorizable_load): Likewise.
17592 * tree-vect-loop.c (vect_analyze_loop_2): Do not call
17593 vect_verify_datarefs_alignment.
17594 * tree-vect-slp.c (vect_slp_analyze_bb_1): Adjust.
17595
17596 2020-07-09 Bin Cheng <bin.cheng@linux.alibaba.com>
17597
17598 PR tree-optimization/95804
17599 * tree-loop-distribution.c (break_alias_scc_partitions): Force
17600 negative post order to reduction partition.
17601
17602 2020-07-09 Jakub Jelinek <jakub@redhat.com>
17603
17604 * omp-general.h (struct omp_for_data): Add min_inner_iterations
17605 and factor members.
17606 * omp-general.c (omp_extract_for_data): Initialize them and remember
17607 them in OMP_CLAUSE_COLLAPSE_COUNT if needed and restore from there.
17608 * omp-expand.c (expand_omp_for_init_counts): Fix up computation of
17609 counts[fd->last_nonrect] if fd->loop.n2 is INTEGER_CST.
17610 (expand_omp_for_init_vars): For
17611 fd->first_nonrect + 1 == fd->last_nonrect loops with for now
17612 INTEGER_CST fd->loop.n2 find quadratic equation roots instead of
17613 using fallback method when possible.
17614
17615 2020-07-09 Omar Tahir <omar.tahir@arm.com>
17616
17617 * ira.c (move_unallocated_pseudos): Zero first_moveable_pseudo and
17618 last_moveable_pseudo before returning.
17619
17620 2020-07-09 Szabolcs Nagy <szabolcs.nagy@arm.com>
17621
17622 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add
17623 __ARM_FEATURE_BTI_DEFAULT support.
17624
17625 2020-07-09 Matthew Malcomson <matthew.malcomson@arm.com>
17626
17627 * config/aarch64/aarch64-protos.h (aarch64_indirect_call_asm):
17628 New declaration.
17629 * config/aarch64/aarch64.c (aarch64_regno_regclass): Handle new
17630 stub registers class.
17631 (aarch64_class_max_nregs): Likewise.
17632 (aarch64_register_move_cost): Likewise.
17633 (aarch64_sls_shared_thunks): Global array to store stub labels.
17634 (aarch64_sls_emit_function_stub): New.
17635 (aarch64_create_blr_label): New.
17636 (aarch64_sls_emit_blr_function_thunks): New.
17637 (aarch64_sls_emit_shared_blr_thunks): New.
17638 (aarch64_asm_file_end): New.
17639 (aarch64_indirect_call_asm): New.
17640 (TARGET_ASM_FILE_END): Use aarch64_asm_file_end.
17641 (TARGET_ASM_FUNCTION_EPILOGUE): Use
17642 aarch64_sls_emit_blr_function_thunks.
17643 * config/aarch64/aarch64.h (STB_REGNUM_P): New.
17644 (enum reg_class): Add STUB_REGS class.
17645 (machine_function): Introduce `call_via` array for
17646 function-local stub labels.
17647 * config/aarch64/aarch64.md (*call_insn, *call_value_insn): Use
17648 aarch64_indirect_call_asm to emit code when hardening BLR
17649 instructions.
17650 * config/aarch64/constraints.md (Ucr): New constraint
17651 representing registers for indirect calls. Is GENERAL_REGS
17652 usually, and STUB_REGS when hardening BLR instruction against
17653 SLS.
17654 * config/aarch64/predicates.md (aarch64_general_reg): STUB_REGS class
17655 is also a general register.
17656
17657 2020-07-09 Matthew Malcomson <matthew.malcomson@arm.com>
17658
17659 * config/aarch64/aarch64-protos.h (aarch64_sls_barrier): New.
17660 * config/aarch64/aarch64.c (aarch64_output_casesi): Emit
17661 speculation barrier after BR instruction if needs be.
17662 (aarch64_trampoline_init): Handle ptr_mode value & adjust size
17663 of code copied.
17664 (aarch64_sls_barrier): New.
17665 (aarch64_asm_trampoline_template): Add needed barriers.
17666 * config/aarch64/aarch64.h (AARCH64_ISA_SB): New.
17667 (TARGET_SB): New.
17668 (TRAMPOLINE_SIZE): Account for barrier.
17669 * config/aarch64/aarch64.md (indirect_jump, *casesi_dispatch,
17670 simple_return, *do_return, *sibcall_insn, *sibcall_value_insn):
17671 Emit barrier if needs be, also account for possible barrier using
17672 "sls_length" attribute.
17673 (sls_length): New attribute.
17674 (length): Determine default using any non-default sls_length
17675 value.
17676
17677 2020-07-09 Matthew Malcomson <matthew.malcomson@arm.com>
17678
17679 * config/aarch64/aarch64-protos.h (aarch64_harden_sls_retbr_p):
17680 New.
17681 (aarch64_harden_sls_blr_p): New.
17682 * config/aarch64/aarch64.c (enum aarch64_sls_hardening_type):
17683 New.
17684 (aarch64_harden_sls_retbr_p): New.
17685 (aarch64_harden_sls_blr_p): New.
17686 (aarch64_validate_sls_mitigation): New.
17687 (aarch64_override_options): Parse options for SLS mitigation.
17688 * config/aarch64/aarch64.opt (-mharden-sls): New option.
17689 * doc/invoke.texi: Document new option.
17690
17691 2020-07-09 Kewen Lin <linkw@linux.ibm.com>
17692
17693 * tree-vect-stmts.c (vectorizable_condition): Prohibit vectorization
17694 with partial vectors explicitly excepting for EXTRACT_LAST_REDUCTION
17695 or nested-cycle reduction.
17696
17697 2020-07-09 Kewen Lin <linkw@linux.ibm.com>
17698
17699 * tree-vect-loop.c (vect_analyze_loop_2): Update dumping string
17700 for fully masking to be more common.
17701
17702 2020-07-09 Kito Cheng <kito.cheng@sifive.com>
17703
17704 * config/riscv/riscv.md (get_thread_pointer<mode>): New.
17705 (TP_REGNUM): Ditto.
17706 * doc/extend.texi (Target Builtins): Add RISC-V built-in section.
17707 Document __builtin_thread_pointer.
17708
17709 2020-07-09 Kito Cheng <kito.cheng@sifive.com>
17710
17711 * config/riscv/riscv-sr.c (riscv_remove_unneeded_save_restore_calls):
17712 Abort if any arguments on stack.
17713
17714 2020-07-08 Eric Botcazou <ebotcazou@adacore.com>
17715
17716 * gimple-fold.c (gimple_fold_builtin_memory_op): Do not fold if
17717 either type has reverse scalar storage order.
17718 * tree-ssa-sccvn.c (vn_reference_lookup_3): Do not propagate through
17719 a memory copy if either type has reverse scalar storage order.
17720
17721 2020-07-08 Tobias Burnus <tobias@codesourcery.com>
17722
17723 * config/gcn/mkoffload.c (compile_native, main): Pass -fPIC/-fpic
17724 on to the native compiler, if used.
17725 * config/nvptx/mkoffload.c (compile_native, main): Likewise.
17726
17727 2020-07-08 Will Schmidt <will_schmidt@vnet.ibm.com>
17728
17729 * config/rs6000/altivec.h (vec_vmsumudm): New define.
17730 * config/rs6000/altivec.md (UNSPEC_VMSUMUDM): New unspec.
17731 (altivec_vmsumudm): New define_insn.
17732 * config/rs6000/rs6000-builtin.def (altivec_vmsumudm): New BU_ALTIVEC_3
17733 entry. (vmsumudm): New BU_ALTIVEC_OVERLOAD_3 entry.
17734 * config/rs6000/rs6000-call.c (altivec_overloaded_builtins): Add entries for
17735 ALTIVEC_BUILTIN_VMSUMUDM variants of vec_msum.
17736 * doc/extend.texi: Add document for vmsumudm behind vmsum.
17737
17738 2020-07-08 Richard Biener <rguenther@suse.de>
17739
17740 * tree-vect-stmts.c (get_group_load_store_type): Pass
17741 in the SLP node and the alignment support scheme output.
17742 Set that.
17743 (get_load_store_type): Likewise.
17744 (vectorizable_store): Adjust.
17745 (vectorizable_load): Likewise.
17746
17747 2020-07-08 Richard Sandiford <richard.sandiford@arm.com>
17748
17749 PR middle-end/95694
17750 * expr.c (expand_expr_real_2): Get the mode from the type rather
17751 than the rtx, and assert that it is consistent with the mode of
17752 the rtx (where known). Optimize all constant integers, not just
17753 those that can be represented in poly_int64.
17754
17755 2020-07-08 Kewen Lin <linkw@linux.ibm.com>
17756
17757 * config/rs6000/vsx.md (len_load_v16qi): New define_expand.
17758 (len_store_v16qi): Likewise.
17759
17760 2020-07-08 Kewen Lin <linkw@linux.ibm.com>
17761
17762 * doc/md.texi (len_load_@var{m}): Document.
17763 (len_store_@var{m}): Likewise.
17764 * internal-fn.c (len_load_direct): New macro.
17765 (len_store_direct): Likewise.
17766 (expand_len_load_optab_fn): Likewise.
17767 (expand_len_store_optab_fn): Likewise.
17768 (direct_len_load_optab_supported_p): Likewise.
17769 (direct_len_store_optab_supported_p): Likewise.
17770 (expand_mask_load_optab_fn): New macro. Original renamed to ...
17771 (expand_partial_load_optab_fn): ... here. Add handlings for
17772 len_load_optab.
17773 (expand_mask_store_optab_fn): New macro. Original renamed to ...
17774 (expand_partial_store_optab_fn): ... here. Add handlings for
17775 len_store_optab.
17776 (internal_load_fn_p): Handle IFN_LEN_LOAD.
17777 (internal_store_fn_p): Handle IFN_LEN_STORE.
17778 (internal_fn_stored_value_index): Handle IFN_LEN_STORE.
17779 * internal-fn.def (LEN_LOAD): New internal function.
17780 (LEN_STORE): Likewise.
17781 * optabs.def (len_load_optab, len_store_optab): New optab.
17782
17783 2020-07-07 Anton Youdkevitch <anton.youdkevitch@bell-sw.com>
17784
17785 * config/aarch64/aarch64.c (thunderx2t99_regmove_cost,
17786 thunderx2t99_vector_cost): Likewise.
17787
17788 2020-07-07 Richard Biener <rguenther@suse.de>
17789
17790 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Fix
17791 group overlap condition to allow negative step DR groups.
17792 * tree-vect-stmts.c (get_group_load_store_type): For
17793 multi element SLP groups force VMAT_STRIDED_SLP when the step
17794 is negative.
17795
17796 2020-07-07 Qian Jianhua <qianjh@cn.fujitsu.com>
17797
17798 * doc/generic.texi: Fix typo.
17799
17800 2020-07-07 Richard Biener <rguenther@suse.de>
17801
17802 * lto-streamer-out.c (cmp_symbol_files): Use the computed
17803 order map to sort symbols from the same sub-file together.
17804 (lto_output): Compute a map of sub-file to an order number
17805 it appears in the symbol output array.
17806
17807 2020-07-06 Richard Biener <rguenther@suse.de>
17808
17809 PR tree-optimization/96075
17810 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
17811 TYPE_SIZE_UNIT of the vector component type instead of DR_STEP
17812 for the misalignment calculation for negative step.
17813
17814 2020-07-06 Roger Sayle <roger@nextmovesoftware.com>
17815
17816 * config/nvptx/nvptx.md (*vadd_addsi4): New instruction.
17817 (*vsub_addsi4): New instruction.
17818
17819 2020-07-06 Hans-Peter Nilsson <hp@axis.com>
17820
17821 * config/cris/cris.md (movulsr): New peephole2.
17822
17823 2020-07-06 Hans-Peter Nilsson <hp@axis.com>
17824
17825 * config/cris/sync.md ("cris_atomic_fetch_<atomic_op_name><mode>_1"):
17826 Correct gcc_assert of overlapping operands.
17827
17828 2020-07-05 Hans-Peter Nilsson <hp@axis.com>
17829
17830 * config/cris/cris.c (cris_select_cc_mode): Always return
17831 CC_NZmode for matching comparisons. Clarify comments.
17832 * config/cris/cris-modes.def: Clarify mode comment.
17833 * config/cris/cris.md (plusminus, plusminusumin, plusumin): New
17834 code iterators.
17835 (addsub, addsubbo, nd): New code iterator attributes.
17836 ("*<addsub><su>qihi"): Rename from "*extopqihi". Use code
17837 iterator constructs instead of match_operator constructs.
17838 ("*<addsubbo><su><nd><mode>si<setnz>"): Similar from
17839 "*extop<mode>si<setnz>".
17840 ("*add<su>qihi_swap"): Similar from "*addxqihi_swap".
17841 ("*<addsubbo><su><nd><mode>si<setnz>_swap"): Similar from
17842 "*extop<mode>si<setnz>_swap".
17843
17844 2020-07-05 Hans-Peter Nilsson <hp@axis.com>
17845
17846 * config/cris/cris.md ("*extopqihi", "*extop<mode>si<setnz>_swap")
17847 ("*extop<mode>si<setnz>", "*addxqihi_swap"): Reinstate.
17848
17849 2020-07-03 Eric Botcazou <ebotcazou@adacore.com>
17850
17851 * gimple-fold.c (gimple_fold_builtin_memory_op): Fold calls that
17852 were initially created for the assignment of a variable-sized
17853 object and whose source is now a string constant.
17854 * gimple-ssa-store-merging.c (struct merged_store_group): Document
17855 STRING_CST for rhs_code field.
17856 Add string_concatenation boolean field.
17857 (merged_store_group::merged_store_group): Initialize it as well as
17858 bit_insertion here.
17859 (merged_store_group::do_merge): Set it upon seeing a STRING_CST.
17860 Also set bit_insertion here upon seeing a BIT_INSERT_EXPR.
17861 (merged_store_group::apply_stores): Clear it for small regions.
17862 Do not create a power-of-2-sized buffer if it is still true.
17863 And do not set bit_insertion here again.
17864 (encode_tree_to_bitpos): Deal with BLKmode for the expression.
17865 (merged_store_group::can_be_merged_into): Deal with STRING_CST.
17866 (imm_store_chain_info::coalesce_immediate_stores): Set bit_insertion
17867 to true after changing MEM_REF stores into BIT_INSERT_EXPR stores.
17868 (count_multiple_uses): Return 0 for STRING_CST.
17869 (split_group): Do not split the group for a string concatenation.
17870 (imm_store_chain_info::output_merged_store): Constify and rename
17871 some local variables. Build an array type as destination type
17872 for a string concatenation, as well as a zero mask, and call
17873 build_string to build the source.
17874 (lhs_valid_for_store_merging_p): Return true for VIEW_CONVERT_EXPR.
17875 (pass_store_merging::process_store): Accept STRING_CST on the RHS.
17876 * gimple.h (gimple_call_alloca_for_var_p): New accessor function.
17877 * gimplify.c (gimplify_modify_expr_to_memcpy): Set alloca_for_var.
17878 * tree.h (CALL_ALLOCA_FOR_VAR_P): Document it for BUILT_IN_MEMCPY.
17879
17880 2020-07-03 Martin Jambor <mjambor@suse.cz>
17881
17882 PR ipa/96040
17883 * ipa-sra.c (all_callee_accesses_present_p): Do not accept type
17884 mismatched accesses.
17885
17886 2020-07-03 Roger Sayle <roger@nextmovesoftware.com>
17887
17888 * config/nvptx/nvptx.md (popcount<mode>2): New instructions.
17889 (mulhishi3, mulsidi3, umulhisi3, umulsidi3): New instructions.
17890
17891 2020-07-03 Martin Liska <mliska@suse.cz>
17892 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17893
17894 PR bootstrap/96046
17895 * gcov-dump.c (tag_function): Use gcov_position_t
17896 type.
17897
17898 2020-07-03 Richard Biener <rguenther@suse.de>
17899
17900 PR tree-optimization/96037
17901 * tree-vect-stmts.c (vect_is_simple_use): Initialize *slp_def.
17902
17903 2020-07-03 Richard Biener <rguenther@suse.de>
17904
17905 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Cost the
17906 original non-pattern stmts, look at the pattern stmt
17907 vectorization status.
17908
17909 2020-07-03 Andrew Stubbs <ams@codesourcery.com>
17910
17911 * config/gcn/gcn-valu.md (fold_left_plus_<mode>): New.
17912
17913 2020-07-03 Richard Biener <rguenther@suse.de>
17914
17915 * tree-vectorizer.h (vec_info::insert_on_entry): New.
17916 (vec_info::insert_seq_on_entry): Likewise.
17917 * tree-vectorizer.c (vec_info::insert_on_entry): Implement.
17918 (vec_info::insert_seq_on_entry): Likewise.
17919 * tree-vect-stmts.c (vect_init_vector_1): Use
17920 vec_info::insert_on_entry.
17921 (vect_finish_stmt_generation): Set modified bit after
17922 adjusting VUSE.
17923 * tree-vect-slp.c (vect_create_constant_vectors): Simplify
17924 by using vec_info::insert_seq_on_entry and bypassing
17925 vec_init_vector.
17926 (vect_schedule_slp_instance): Deal with all-constant
17927 children later.
17928
17929 2020-07-03 Roger Sayle <roger@nextmovesoftware.com>
17930 Tom de Vries <tdevries@suse.de>
17931
17932 PR target/90932
17933 * config/nvptx/nvptx.c (nvptx_vector_alignment): Use tree_to_uhwi
17934 to access TYPE_SIZE (type). Return at least the mode's alignment.
17935
17936 2020-07-02 Richard Biener <rguenther@suse.de>
17937
17938 PR tree-optimization/96028
17939 * tree-vect-slp.c (vect_slp_convert_to_external): Make sure
17940 we have scalar stmts to use.
17941 (vect_slp_analyze_node_operations): When analyzing a child
17942 failed try externalizing the parent node.
17943
17944 2020-07-02 Martin Jambor <mjambor@suse.cz>
17945
17946 PR debug/95343
17947 * ipa-param-manipulation.c (ipa_param_adjustments::modify_call): Adjust
17948 argument index if necessary.
17949
17950 2020-07-02 Martin Liska <mliska@suse.cz>
17951
17952 PR middle-end/95830
17953 * tree-vect-generic.c (expand_vector_condition): Forward declaration.
17954 (expand_vector_comparison): Do not expand a comparison if all
17955 uses are consumed by a VEC_COND_EXPR.
17956 (expand_vector_operation): Change void return type to bool.
17957 (expand_vector_operations_1): Pass dce_ssa_names.
17958
17959 2020-07-02 Ilya Leoshkevich <iii@linux.ibm.com>
17960
17961 PR bootstrap/95700
17962 * system.h (NULL): Redefine to nullptr.
17963
17964 2020-07-02 Jakub Jelinek <jakub@redhat.com>
17965
17966 PR tree-optimization/95857
17967 * tree-cfg.c (group_case_labels_stmt): When removing an unreachable
17968 base_bb, remember all forced and non-local labels on it and later
17969 treat those as if they have NULL label_to_block. Formatting fix.
17970 Fix a comment typo.
17971
17972 2020-07-02 Richard Biener <rguenther@suse.de>
17973
17974 PR tree-optimization/96022
17975 * tree-vect-stmts.c (vectorizable_shift): Only use the
17976 first vector stmt when extracting the scalar shift amount.
17977 * tree-vect-slp.c (vect_build_slp_tree_2): Also build unary
17978 nodes with all-scalar children from scalars but not stores.
17979 (vect_analyze_slp_instance): Mark the node not failed.
17980
17981 2020-07-02 Felix Yang <felix.yang@huawei.com>
17982
17983 PR tree-optimization/95961
17984 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Use the
17985 number of scalars instead of the number of vectors as an upper bound
17986 for the loop saving info about DR in the hash table. Remove unused
17987 local variables.
17988
17989 2020-07-02 Jakub Jelinek <jakub@redhat.com>
17990
17991 * omp-expand.c (expand_omp_for): Diagnose non-rectangular loops with
17992 invalid steps - ((m2 - m1) * incr_outer) % incr must be 0 in valid
17993 OpenMP non-rectangular loops. Use XALLOCAVEC.
17994
17995 2020-07-02 Martin Liska <mliska@suse.cz>
17996
17997 PR gcov-profile/95348
17998 * coverage.c (read_counts_file): Read only COUNTERS that are
17999 not all-zero.
18000 * gcov-dump.c (tag_function): Change signature from unsigned to
18001 signed integer.
18002 (tag_blocks): Likewise.
18003 (tag_arcs): Likewise.
18004 (tag_lines): Likewise.
18005 (tag_counters): Likewise.
18006 (tag_summary): Likewise.
18007 * gcov.c (read_count_file): Read all non-zero counters
18008 sensitively.
18009
18010 2020-07-02 Kito Cheng <kito.cheng@sifive.com>
18011
18012 * config/riscv/multilib-generator (arch_canonicalize): Handle
18013 multi-letter extension.
18014 Using underline as separator between different extensions.
18015
18016 2020-07-01 Pip Cet <pipcet@gmail.com>
18017
18018 * spellcheck.c (test_data): Add problematic strings.
18019 (test_metric_conditions): Don't test the triangle inequality
18020 condition, which our distance function does not satisfy.
18021
18022 2020-07-01 Omar Tahir <omar.tahir@arm.com>
18023
18024 * config/aarch64/aarch64.c (aarch64_asm_trampoline_template): Always
18025 generate a BTI instruction.
18026
18027 2020-07-01 Jeff Law <law@redhat.com>
18028
18029 PR tree-optimization/94882
18030 * match.pd (x & y) - (x | y) - 1 -> ~(x ^ y): New simplification.
18031
18032 2020-07-01 Jeff Law <law@redhat.com>
18033
18034 * config/m68k/m68k.c (m68k_output_btst): Drop "register" keyword.
18035 (emit_move_sequence, output_iorsi3, output_xorsi3): Likewise.
18036
18037 2020-07-01 Andrea Corallo <andrea.corallo@arm.com>
18038
18039 * config/aarch64/aarch64-builtins.c (aarch64_builtins): Add enums
18040 for 64bits fpsr/fpcr getter setters builtin variants.
18041 (aarch64_init_fpsr_fpcr_builtins): New function.
18042 (aarch64_general_init_builtins): Modify to make use of the later.
18043 (aarch64_expand_fpsr_fpcr_setter): New function.
18044 (aarch64_general_expand_builtin): Modify to make use of the later.
18045 * config/aarch64/aarch64.md (@aarch64_set_<fpscr_name><GPI:mode>)
18046 (@aarch64_get_<fpscr_name><GPI:mode>): New patterns replacing and
18047 generalizing 'get_fpcr', 'set_fpsr'.
18048 * config/aarch64/iterators.md (GET_FPSCR, SET_FPSCR): New int
18049 iterators.
18050 (fpscr_name): New int attribute.
18051 * doc/extend.texi (__builtin_aarch64_get_fpcr64)
18052 (__builtin_aarch64_set_fpcr64, __builtin_aarch64_get_fpsr64)
18053 (__builtin_aarch64_set_fpsr64): Add into AArch64 Built-in
18054 Functions.
18055
18056 2020-07-01 Martin Liska <mliska@suse.cz>
18057
18058 * gcov.c (print_usage): Avoid trailing space for -j option.
18059
18060 2020-07-01 Richard Biener <rguenther@suse.de>
18061
18062 PR tree-optimization/95839
18063 * tree-vect-slp.c (vect_slp_tree_uniform_p): Pre-existing
18064 vectors are not uniform.
18065 (vect_build_slp_tree_1): Handle BIT_FIELD_REFs of
18066 vector registers.
18067 (vect_build_slp_tree_2): For groups of lane extracts
18068 from a vector register generate a permute node
18069 with a special child representing the pre-existing vector.
18070 (vect_prologue_cost_for_slp): Pre-existing vectors cost nothing.
18071 (vect_slp_analyze_node_operations): Use SLP_TREE_LANES.
18072 (vectorizable_slp_permutation): Do not generate or cost identity
18073 permutes.
18074 (vect_schedule_slp_instance): Handle pre-existing vector
18075 that are function arguments.
18076
18077 2020-07-01 Richard Biener <rguenther@suse.de>
18078
18079 * system.h (INCLUDE_ISL): New guarded include.
18080 * graphite-dependences.c: Use it.
18081 * graphite-isl-ast-to-gimple.c: Likewise.
18082 * graphite-optimize-isl.c: Likewise.
18083 * graphite-poly.c: Likewise.
18084 * graphite-scop-detection.c: Likewise.
18085 * graphite-sese-to-poly.c: Likewise.
18086 * graphite.c: Likewise.
18087 * graphite.h: Drop the includes here.
18088
18089 2020-07-01 Martin Liska <mliska@suse.cz>
18090
18091 * gcov.c (print_usage): Shorted option description for -j
18092 option.
18093
18094 2020-07-01 Martin Liska <mliska@suse.cz>
18095
18096 * doc/gcov.texi: Rename 2 options.
18097 * gcov.c (print_usage): Rename -i,--json-format to
18098 -j,--json-format and -j,--human-readable to -H,--human-readable.
18099 (process_args): Fix up parsing. Document obsolete options and
18100 how are they changed.
18101
18102 2020-07-01 Jeff Law <law@redhat.com>
18103
18104 * config/pa/pa.c (pa_emit_move_sequence): Drop register keyword.
18105 (pa_output_ascii): Likewise.
18106
18107 2020-07-01 Kito Cheng <kito.cheng@sifive.com>
18108
18109 * common/config/riscv/riscv-common.c (riscv_subset_t): New field
18110 added.
18111 (riscv_subset_list::parsing_subset_version): Add parameter for
18112 indicate explicitly version, and handle explicitly version.
18113 (riscv_subset_list::handle_implied_ext): Ditto.
18114 (riscv_subset_list::add): Ditto.
18115 (riscv_subset_t::riscv_subset_t): Init new field.
18116 (riscv_subset_list::to_string): Always output version info if version
18117 explicitly specified.
18118 (riscv_subset_list::parsing_subset_version): Handle explicitly
18119 arch version.
18120 (riscv_subset_list::parse_std_ext): Ditto.
18121 (riscv_subset_list::parse_multiletter_ext): Ditto.
18122
18123 2020-06-30 Richard Sandiford <richard.sandiford@arm.com>
18124
18125 PR target/92789
18126 PR target/95726
18127 * config/aarch64/aarch64.c (aarch64_attribute_table): Add
18128 "Advanced SIMD type".
18129 (aarch64_comp_type_attributes): Check that the "Advanced SIMD type"
18130 attributes are equal.
18131 * config/aarch64/aarch64-builtins.c: Include stringpool.h and
18132 attribs.h.
18133 (aarch64_mangle_builtin_vector_type): Use the mangling recorded
18134 in the "Advanced SIMD type" attribute.
18135 (aarch64_init_simd_builtin_types): Add an "Advanced SIMD type"
18136 attribute to each Advanced SIMD type, using the mangled type
18137 as the attribute's single argument.
18138
18139 2020-06-30 Christophe Lyon <christophe.lyon@linaro.org>
18140
18141 PR target/94743
18142 * config/arm/arm.c (arm_handle_isr_attribute): Warn if
18143 -mgeneral-regs-only is not used.
18144
18145 2020-06-30 Yang Yang <yangyang305@huawei.com>
18146
18147 PR tree-optimization/95855
18148 * gimple-ssa-split-paths.c (is_feasible_trace): Add extra
18149 checks to recognize a missed if-conversion opportunity when
18150 judging whether to duplicate a block.
18151
18152 2020-06-29 Segher Boessenkool <segher@kernel.crashing.org>
18153
18154 * doc/extend.texi: Change references to "future architecture" to
18155 "ISA 3.1", "-mcpu=future" to "-mcpu=power10", and remove vaguer
18156 references to "future" (because the future is now).
18157
18158 2020-06-29 Segher Boessenkool <segher@kernel.crashing.org>
18159
18160 * config/rs6000/rs6000.md (isa): Rename "fut" to "p10".
18161
18162 2020-06-29 Roger Sayle <roger@nextmovesoftware.com>
18163
18164 * simplify-rtx.c (simplify_distributive_operation): New function
18165 to un-distribute a binary operation of two binary operations.
18166 (X & C) ^ (Y & C) to (X ^ Y) & C, when C is simple (i.e. a constant).
18167 (simplify_binary_operation_1) <IOR, XOR, AND>: Call it from here
18168 when appropriate.
18169 (test_scalar_int_ops): New function for unit self-testing
18170 scalar integer transformations in simplify-rtx.c.
18171 (test_scalar_ops): Call test_scalar_int_ops for each integer mode.
18172 (simplify_rtx_c_tests): Call test_scalar_ops.
18173
18174 2020-06-29 Richard Biener <rguenther@suse.de>
18175
18176 PR tree-optimization/95916
18177 * tree-vect-slp.c (vect_schedule_slp_instance): Explicitely handle
18178 the case of not vectorized externals.
18179
18180 2020-06-29 Richard Biener <rguenther@suse.de>
18181
18182 * tree-vectorizer.h: Do not include <utility>.
18183
18184 2020-06-29 Martin Liska <mliska@suse.cz>
18185
18186 * tree-ssa-ccp.c (gsi_prev_dom_bb_nondebug): Use gsi_bb
18187 instead of gimple_stmt_iterator::bb.
18188 * tree-ssa-math-opts.c (insert_reciprocals): Likewise.
18189 * tree-vectorizer.h: Likewise.
18190
18191 2020-06-29 Andrew Stubbs <ams@codesourcery.com>
18192
18193 * config/gcn/gcn-hsa.h (DBX_REGISTER_NUMBER): New macro.
18194 * config/gcn/gcn-protos.h (gcn_dwarf_register_number): New prototype.
18195 * config/gcn/gcn.c (gcn_expand_prologue): Add RTX_FRAME_RELATED_P
18196 and REG_FRAME_RELATED_EXPR to stack and frame pointer adjustments.
18197 (gcn_dwarf_register_number): New function.
18198 (gcn_dwarf_register_span): New function.
18199 (TARGET_DWARF_REGISTER_SPAN): New hook macro.
18200
18201 2020-06-29 Kaipeng Zhou <zhoukaipeng3@huawei.com>
18202
18203 PR tree-optimization/95854
18204 * gimple-ssa-store-merging.c (find_bswap_or_nop_1): Return NULL
18205 if operand 1 or 2 of a BIT_FIELD_REF cannot be converted to
18206 unsigned HOST_WIDE_INT.
18207
18208 2020-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18209
18210 * config/sparc/sparc.c (epilogue_renumber): Remove register.
18211 (sparc_print_operand_address): Likewise.
18212 (sparc_type_code): Likewise.
18213 (set_extends): Likewise.
18214
18215 2020-06-29 Martin Liska <mliska@suse.cz>
18216
18217 PR tree-optimization/92860
18218 * optc-save-gen.awk: Add exceptions for arc target.
18219
18220 2020-06-29 Frederik Harwath <frederik@codesourcery.com>
18221
18222 * doc/sourcebuild.texi: Describe globbing of the
18223 dump file scanning commands "suffix" argument.
18224
18225 2020-06-28 Martin Sebor <msebor@redhat.com>
18226
18227 PR c++/86568
18228 * calls.c (maybe_warn_rdwr_sizes): Use location of argument if
18229 available.
18230 * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Same. Adjust
18231 indentation.
18232 * tree.c (get_nonnull_args): Consider the this pointer implicitly
18233 nonnull.
18234 * var-tracking.c (deps_vec): New type.
18235 (var_loc_dep_vec): New function.
18236 (VAR_LOC_DEP_VEC): Use it.
18237
18238 2020-06-28 Kewen Lin <linkw@linux.ibm.com>
18239
18240 * internal-fn.c (direct_mask_load_optab_supported_p): Use
18241 convert_optab_supported_p instead of direct_optab_supported_p.
18242 (direct_mask_store_optab_supported_p): Likewise.
18243
18244 2020-06-27 Aldy Hernandez <aldyh@redhat.com>
18245
18246 * gimple-ssa-evrp-analyze.h (vrp_visit_cond_stmt): Use
18247 simplify_using_ranges class.
18248 * gimple-ssa-evrp.c (class evrp_folder): New simplify_using_ranges
18249 field. Adjust all methods to use new field.
18250 * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Use
18251 simplify_using_ranges class.
18252 * tree-vrp.c (class vrp_folder): New simplify_using_ranges
18253 field. Adjust all methods to use new field.
18254 (simplify_stmt_for_jump_threading): Use simplify_using_ranges class.
18255 (vrp_prop::vrp_finalize): New vrp_folder argument.
18256 (execute_vrp): Pass folder to vrp_finalize. Use
18257 simplify_using_ranges class.
18258 Remove cleanup_edges_and_switches call.
18259 * vr-values.c (vr_values::op_with_boolean_value_range_p): Change
18260 value_range_equiv uses to value_range.
18261 (simplify_using_ranges::op_with_boolean_value_range_p): Use
18262 simplify_using_ranges class.
18263 (check_for_binary_op_overflow): Make static.
18264 (vr_values::extract_range_basic): Pass this to
18265 check_for_binary_op_overflow.
18266 (compare_range_with_value): Change value_range_equiv uses to
18267 value_range.
18268 (vr_values::vr_values): Initialize simplifier field.
18269 Remove uses of to_remove_edges and to_update_switch_stmts.
18270 (vr_values::~vr_values): Remove uses of to_remove_edges and
18271 to_update_switch_stmts.
18272 (vr_values::get_vr_for_comparison): Move to simplify_using_ranges
18273 class.
18274 (vr_values::compare_name_with_value): Same.
18275 (vr_values::compare_names): Same.
18276 (vr_values::vrp_evaluate_conditional_warnv_with_ops): Same.
18277 (vr_values::vrp_evaluate_conditional): Same.
18278 (vr_values::vrp_visit_cond_stmt): Same.
18279 (find_case_label_ranges): Change value_range_equiv uses to
18280 value_range.
18281 (vr_values::extract_range_from_stmt): Use simplify_using_ranges class.
18282 (vr_values::simplify_truth_ops_using_ranges): Move to
18283 simplify_using_ranges class.
18284 (vr_values::simplify_div_or_mod_using_ranges): Same.
18285 (vr_values::simplify_min_or_max_using_ranges): Same.
18286 (vr_values::simplify_abs_using_ranges): Same.
18287 (vr_values::simplify_bit_ops_using_ranges): Same.
18288 (test_for_singularity): Change value_range_equiv uses to
18289 value_range.
18290 (range_fits_type_p): Same.
18291 (vr_values::simplify_cond_using_ranges_1): Same.
18292 (vr_values::simplify_cond_using_ranges_2): Make extern.
18293 (vr_values::fold_cond): Move to simplify_using_ranges class.
18294 (vr_values::simplify_switch_using_ranges): Same.
18295 (vr_values::cleanup_edges_and_switches): Same.
18296 (vr_values::simplify_float_conversion_using_ranges): Same.
18297 (vr_values::simplify_internal_call_using_ranges): Same.
18298 (vr_values::two_valued_val_range_p): Same.
18299 (vr_values::simplify_stmt_using_ranges): Move to...
18300 (simplify_using_ranges::simplify): ...here.
18301 * vr-values.h (class vr_values): Move all the simplification of
18302 statements using ranges methods and code from here...
18303 (class simplify_using_ranges): ...to here.
18304 (simplify_cond_using_ranges_2): New extern prototype.
18305
18306 2020-06-27 Jakub Jelinek <jakub@redhat.com>
18307
18308 * omp-general.h (struct omp_for_data_loop): Add non_rect_referenced
18309 member, move outer member.
18310 (struct omp_for_data): Add first_nonrect and last_nonrect members.
18311 * omp-general.c (omp_extract_for_data): Initialize first_nonrect,
18312 last_nonrect and non_rect_referenced members.
18313 * omp-expand.c (expand_omp_for_init_counts): Handle non-rectangular
18314 loops.
18315 (expand_omp_for_init_vars): Add nonrect_bounds parameter. Handle
18316 non-rectangular loops.
18317 (extract_omp_for_update_vars): Likewise.
18318 (expand_omp_for_generic, expand_omp_for_static_nochunk,
18319 expand_omp_for_static_chunk, expand_omp_simd,
18320 expand_omp_taskloop_for_outer, expand_omp_taskloop_for_inner): Adjust
18321 expand_omp_for_init_vars and extract_omp_for_update_vars callers.
18322 (expand_omp_for): Don't sorry on non-composite worksharing-loop or
18323 distribute.
18324
18325 2020-06-26 H.J. Lu <hjl.tools@gmail.com>
18326
18327 PR target/95655
18328 * config/i386/gnu-user.h (SUBTARGET_FRAME_POINTER_REQUIRED):
18329 Removed.
18330 * config/i386/i386.c (ix86_frame_pointer_required): Update
18331 comments.
18332
18333 2020-06-26 Yichao Yu <yyc1992@gmail.com>
18334
18335 * multiple_target.c (redirect_to_specific_clone): Fix tests
18336 to check individual attribute rather than an attribute list.
18337
18338 2020-06-26 Peter Bergner <bergner@linux.ibm.com>
18339
18340 * config/rs6000/rs6000-call.c (cpu_is_info) <power10>: New.
18341 * doc/extend.texi (PowerPC Built-in Functions): Document power10,
18342 arch_3_1 and mma.
18343
18344 2020-06-26 Marek Polacek <polacek@redhat.com>
18345
18346 * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
18347 * doc/standards.texi (C Language): Correct the default dialect.
18348 (C++ Language): Update the default for C++ to gnu++17.
18349
18350 2020-06-26 Eric Botcazou <ebotcazou@adacore.com>
18351
18352 * tree-ssa-reassoc.c (dump_range_entry): New function.
18353 (debug_range_entry): New debug function.
18354 (update_range_test): Invoke dump_range_entry for dumping.
18355 (optimize_range_tests_to_bit_test): Merge the entry test in the
18356 bit test when possible and lower the profitability threshold.
18357
18358 2020-06-26 Richard Biener <rguenther@suse.de>
18359
18360 PR tree-optimization/95897
18361 * tree-vectorizer.h (vectorizable_induction): Remove
18362 unused gimple_stmt_iterator * parameter.
18363 * tree-vect-loop.c (vectorizable_induction): Likewise.
18364 (vect_analyze_loop_operations): Adjust.
18365 * tree-vect-stmts.c (vect_analyze_stmt): Likewise.
18366 (vect_transform_stmt): Likewise.
18367 * tree-vect-slp.c (vect_schedule_slp_instance): Adjust
18368 for fold-left reductions, clarify existing reduction case.
18369
18370 2020-06-25 Nick Clifton <nickc@redhat.com>
18371
18372 * config/m32r/m32r.md (movsicc): Disable pattern.
18373
18374 2020-06-25 Richard Biener <rguenther@suse.de>
18375
18376 PR tree-optimization/95839
18377 * tree-vect-slp.c (vect_slp_analyze_bb_1): Remove premature
18378 check on the number of datarefs.
18379
18380 2020-06-25 Iain Sandoe <iain@sandoe.co.uk>
18381
18382 * config/rs6000/rs6000-call.c (mma_init_builtins): Cast
18383 the insn_data n_operands value to unsigned.
18384
18385 2020-06-25 Richard Biener <rguenther@suse.de>
18386
18387 * tree-vect-slp.c (vect_schedule_slp_instance): Always use
18388 vector defs to determine insertion place.
18389
18390 2020-06-25 H.J. Lu <hjl.tools@gmail.com>
18391
18392 PR target/95874
18393 * config/i386/i386.h (PTA_ICELAKE_CLIENT): Remove PTA_CLWB.
18394 (PTA_ICELAKE_SERVER): Add PTA_CLWB.
18395 (PTA_TIGERLAKE): Add PTA_CLWB.
18396
18397 2020-06-25 Richard Biener <rguenther@suse.de>
18398
18399 PR tree-optimization/95866
18400 * tree-vect-stmts.c (vectorizable_shift): Reject incompatible
18401 vectorized shift operands. For scalar shifts use lane zero
18402 of a vectorized shift operand.
18403
18404 2020-06-25 Martin Liska <mliska@suse.cz>
18405
18406 PR tree-optimization/95745
18407 PR middle-end/95830
18408 * gimple-isel.cc (gimple_expand_vec_cond_exprs): Delete dead
18409 SSA_NAMEs used as the first argument of a VEC_COND_EXPR. Always
18410 return 0.
18411 * tree-vect-generic.c (expand_vector_condition): Remove dead
18412 SSA_NAMEs used as the first argument of a VEC_COND_EXPR.
18413
18414 2020-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
18415
18416 PR target/94954
18417 * config/rs6000/altivec.h (vec_pack_to_short_fp32): Update.
18418 * config/rs6000/altivec.md (UNSPEC_CONVERT_4F32_8F16): New unspec.
18419 (convert_4f32_8f16): New define_expand
18420 * config/rs6000/rs6000-builtin.def (convert_4f32_8f16): New builtin define
18421 and overload.
18422 * config/rs6000/rs6000-call.c (P9V_BUILTIN_VEC_CONVERT_4F32_8F16): New
18423 overloaded builtin entry.
18424 * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSPHP): New unspec.
18425 (vsx_xvcvsphp): New define_insn.
18426
18427 2020-06-24 Roger Sayle <roger@nextmovesoftware.com>
18428 Segher Boessenkool <segher@kernel.crashing.org>
18429
18430 * simplify-rtx.c (simplify_unary_operation_1): Simplify rotates by 0.
18431
18432 2020-06-24 Roger Sayle <roger@nextmovesoftware.com>
18433
18434 * simplify-rtx.c (simplify_unary_operation_1): Simplify
18435 (parity (parity x)) as (parity x), i.e. PARITY is idempotent.
18436
18437 2020-06-24 Richard Biener <rguenther@suse.de>
18438
18439 PR tree-optimization/95866
18440 * tree-vect-slp.c (vect_slp_tree_uniform_p): New.
18441 (vect_build_slp_tree_2): Properly reset matches[0],
18442 ignore uniform constants.
18443
18444 2020-06-24 H.J. Lu <hjl.tools@gmail.com>
18445
18446 PR target/95660
18447 * common/config/i386/cpuinfo.h (get_intel_cpu): Remove brand_id.
18448 (cpu_indicator_init): Likewise.
18449 * config/i386/driver-i386.c (host_detect_local_cpu): Updated.
18450
18451 2020-06-24 H.J. Lu <hjl.tools@gmail.com>
18452
18453 PR target/95774
18454 * common/config/i386/cpuinfo.h (get_intel_cpu): Add Cooper Lake
18455 detection with AVX512BF16.
18456
18457 2020-06-24 H.J. Lu <hjl.tools@gmail.com>
18458
18459 PR target/95843
18460 * common/config/i386/i386-isas.h: New file. Extracted from
18461 gcc/config/i386/i386-builtins.c.
18462 (_isa_names_table): Add option.
18463 (ISA_NAMES_TABLE_START): New.
18464 (ISA_NAMES_TABLE_END): Likewise.
18465 (ISA_NAMES_TABLE_ENTRY): Likewise.
18466 (isa_names_table): Defined with ISA_NAMES_TABLE_START,
18467 ISA_NAMES_TABLE_END and ISA_NAMES_TABLE_ENTRY. Add more ISAs
18468 from enum processor_features.
18469 * config/i386/driver-i386.c: Include
18470 "common/config/i386/cpuinfo.h" and
18471 "common/config/i386/i386-isas.h".
18472 (has_feature): New macro.
18473 (host_detect_local_cpu): Call cpu_indicator_init to get CPU
18474 features. Use has_feature to detect processor features. Call
18475 Call get_intel_cpu to get the newer Intel CPU name. Use
18476 isa_names_table to generate command-line options.
18477 * config/i386/i386-builtins.c: Include
18478 "common/config/i386/i386-isas.h".
18479 (_arch_names_table): Removed.
18480 (isa_names_table): Likewise.
18481
18482 2020-06-24 H.J. Lu <hjl.tools@gmail.com>
18483
18484 PR target/95259
18485 * common/config/i386/cpuinfo.h: New file.
18486 (__processor_model): Moved from libgcc/config/i386/cpuinfo.h.
18487 (__processor_model2): New.
18488 (CHECK___builtin_cpu_is): New. Defined as empty if not defined.
18489 (has_cpu_feature): New function.
18490 (set_cpu_feature): Likewise.
18491 (get_amd_cpu): Moved from libgcc/config/i386/cpuinfo.c. Use
18492 CHECK___builtin_cpu_is. Return AMD CPU name.
18493 (get_intel_cpu): Moved from libgcc/config/i386/cpuinfo.c. Use
18494 Use CHECK___builtin_cpu_is. Return Intel CPU name.
18495 (get_available_features): Moved from libgcc/config/i386/cpuinfo.c.
18496 Also check FEATURE_3DNOW, FEATURE_3DNOWP, FEATURE_ADX,
18497 FEATURE_ABM, FEATURE_CLDEMOTE, FEATURE_CLFLUSHOPT, FEATURE_CLWB,
18498 FEATURE_CLZERO, FEATURE_CMPXCHG16B, FEATURE_CMPXCHG8B,
18499 FEATURE_ENQCMD, FEATURE_F16C, FEATURE_FSGSBASE, FEATURE_FXSAVE,
18500 FEATURE_HLE, FEATURE_IBT, FEATURE_LAHF_LM, FEATURE_LM,
18501 FEATURE_LWP, FEATURE_LZCNT, FEATURE_MOVBE, FEATURE_MOVDIR64B,
18502 FEATURE_MOVDIRI, FEATURE_MWAITX, FEATURE_OSXSAVE,
18503 FEATURE_PCONFIG, FEATURE_PKU, FEATURE_PREFETCHWT1, FEATURE_PRFCHW,
18504 FEATURE_PTWRITE, FEATURE_RDPID, FEATURE_RDRND, FEATURE_RDSEED,
18505 FEATURE_RTM, FEATURE_SERIALIZE, FEATURE_SGX, FEATURE_SHA,
18506 FEATURE_SHSTK, FEATURE_TBM, FEATURE_TSXLDTRK, FEATURE_VAES,
18507 FEATURE_WAITPKG, FEATURE_WBNOINVD, FEATURE_XSAVE, FEATURE_XSAVEC,
18508 FEATURE_XSAVEOPT and FEATURE_XSAVES
18509 (cpu_indicator_init): Moved from libgcc/config/i386/cpuinfo.c.
18510 Also update cpu_model2.
18511 * common/config/i386/i386-cpuinfo.h (processor_vendor): Add
18512 Add VENDOR_CENTAUR, VENDOR_CYRIX and VENDOR_NSC.
18513 (processor_features): Moved from gcc/config/i386/i386-builtins.c.
18514 Renamed F_XXX to FEATURE_XXX. Add FEATURE_3DNOW, FEATURE_3DNOWP,
18515 FEATURE_ADX, FEATURE_ABM, FEATURE_CLDEMOTE, FEATURE_CLFLUSHOPT,
18516 FEATURE_CLWB, FEATURE_CLZERO, FEATURE_CMPXCHG16B,
18517 FEATURE_CMPXCHG8B, FEATURE_ENQCMD, FEATURE_F16C,
18518 FEATURE_FSGSBASE, FEATURE_FXSAVE, FEATURE_HLE, FEATURE_IBT,
18519 FEATURE_LAHF_LM, FEATURE_LM, FEATURE_LWP, FEATURE_LZCNT,
18520 FEATURE_MOVBE, FEATURE_MOVDIR64B, FEATURE_MOVDIRI,
18521 FEATURE_MWAITX, FEATURE_OSXSAVE, FEATURE_PCONFIG,
18522 FEATURE_PKU, FEATURE_PREFETCHWT1, FEATURE_PRFCHW,
18523 FEATURE_PTWRITE, FEATURE_RDPID, FEATURE_RDRND, FEATURE_RDSEED,
18524 FEATURE_RTM, FEATURE_SERIALIZE, FEATURE_SGX, FEATURE_SHA,
18525 FEATURE_SHSTK, FEATURE_TBM, FEATURE_TSXLDTRK, FEATURE_VAES,
18526 FEATURE_WAITPKG, FEATURE_WBNOINVD, FEATURE_XSAVE, FEATURE_XSAVEC,
18527 FEATURE_XSAVEOPT, FEATURE_XSAVES and CPU_FEATURE_MAX.
18528 (SIZE_OF_CPU_FEATURES): New.
18529 * config/i386/i386-builtins.c (processor_features): Removed.
18530 (isa_names_table): Replace F_XXX with FEATURE_XXX.
18531 (fold_builtin_cpu): Change __cpu_features2 to an array.
18532
18533 2020-06-24 H.J. Lu <hjl.tools@gmail.com>
18534
18535 PR target/95842
18536 * common/config/i386/i386-common.c (processor_alias_table): Add
18537 processor model and priority to each entry.
18538 (pta_size): Updated with -6.
18539 (num_arch_names): New.
18540 * common/config/i386/i386-cpuinfo.h: New file.
18541 * config/i386/i386-builtins.c (feature_priority): Removed.
18542 (processor_model): Likewise.
18543 (_arch_names_table): Likewise.
18544 (arch_names_table): Likewise.
18545 (_isa_names_table): Replace P_ZERO with P_NONE.
18546 (get_builtin_code_for_version): Replace P_ZERO with P_NONE. Use
18547 processor_alias_table.
18548 (fold_builtin_cpu): Replace arch_names_table with
18549 processor_alias_table.
18550 * config/i386/i386.h: Include "common/config/i386/i386-cpuinfo.h".
18551 (pta): Add model and priority.
18552 (num_arch_names): New.
18553
18554 2020-06-24 Richard Biener <rguenther@suse.de>
18555
18556 * tree-vectorizer.h (vect_find_first_scalar_stmt_in_slp):
18557 Declare.
18558 * tree-vect-data-refs.c (vect_preserves_scalar_order_p):
18559 Simplify for new position of vectorized SLP loads.
18560 (vect_slp_analyze_node_dependences): Adjust for it.
18561 (vect_slp_analyze_and_verify_node_alignment): Compute alignment
18562 for the first stmts dataref.
18563 * tree-vect-slp.c (vect_find_first_scalar_stmt_in_slp): New.
18564 (vect_schedule_slp_instance): Emit loads before the
18565 first scalar stmt.
18566 * tree-vect-stmts.c (vectorizable_load): Do what the comment
18567 says and use vect_find_first_scalar_stmt_in_slp.
18568
18569 2020-06-24 Richard Biener <rguenther@suse.de>
18570
18571 PR tree-optimization/95856
18572 * tree-vectorizer.c (vect_stmt_dominates_stmt_p): Honor
18573 region marker -1u.
18574
18575 2020-06-24 Jakub Jelinek <jakub@redhat.com>
18576
18577 PR middle-end/95810
18578 * fold-const.c (fold_cond_expr_with_comparison): Optimize
18579 A <= 0 ? A : -A into (type)-absu(A) rather than -abs(A).
18580
18581 2020-06-24 Jakub Jelinek <jakub@redhat.com>
18582
18583 * omp-low.c (lower_omp_for): Fix two pastos.
18584
18585 2020-06-24 Martin Liska <mliska@suse.cz>
18586
18587 * optc-save-gen.awk: Compare string options in cl_optimization_compare
18588 by strcmp.
18589
18590 2020-06-23 Aaron Sawdey <acsawdey@linux.ibm.com>
18591
18592 * config.gcc: Identify power10 as a 64-bit processor and as valid
18593 for --with-cpu and --with-tune.
18594
18595 2020-06-23 David Edelsohn <dje.gcc@gmail.com>
18596
18597 * Makefile.in (LANG_MAKEFRAGS): Same.
18598 (tmake_file): Use -include.
18599 (xmake_file): Same.
18600
18601 2020-06-23 Michael Meissner <meissner@linux.ibm.com>
18602
18603 * REVISION: Delete file meant for a private branch.
18604
18605 2020-06-23 Andre Vieira <andre.simoesdiasvieira@arm.com>
18606
18607 PR target/95646
18608 * config/arm/arm.c: (cmse_nonsecure_entry_clear_before_return): Use
18609 'callee_saved_reg_p' instead of 'calL_used_or_fixed_reg_p'.
18610
18611 2020-06-23 Alexandre Oliva <oliva@adacore.com>
18612
18613 * collect-utils.h (dumppfx): New.
18614 * collect-utils.c (dumppfx): Likewise.
18615 * lto-wrapper.c (run_gcc): Set global dumppfx.
18616 (compile_offload_image): Pass a -dumpbase on to mkoffload.
18617 * config/nvptx/mkoffload.c (ptx_dumpbase): New.
18618 (main): Handle incoming -dumpbase. Set ptx_dumpbase. Obey
18619 save_temps.
18620 (compile_native): Pass -dumpbase et al to compiler.
18621 * config/gcn/mkoffload.c (gcn_dumpbase): New.
18622 (main): Handle incoming -dumpbase. Set gcn_dumpbase. Obey
18623 save_temps. Pass -dumpbase et al to offload target compiler.
18624 (compile_native): Pass -dumpbase et al to compiler.
18625
18626 2020-06-23 Michael Meissner <meissner@linux.ibm.com>
18627
18628 * REVISION: New file.
18629
18630 2020-06-22 Segher Boessenkool <segher@kernel.crashing.org>
18631
18632 * config/rs6000/altivec.h: Use _ARCH_PWR10, not _ARCH_PWR_FUTURE.
18633 Update comment for ISA 3.1.
18634 * config/rs6000/altivec.md: Use TARGET_POWER10, not TARGET_FUTURE.
18635 * config/rs6000/driver-rs6000.c (asm_names): Use -mpwr10 for power10
18636 on AIX, and -mpower10 elsewhere.
18637 * config/rs6000/future.md: Delete.
18638 * config/rs6000/linux64.h: Update comments. Use TARGET_POWER10, not
18639 TARGET_FUTURE.
18640 * config/rs6000/power10.md: New file.
18641 * config/rs6000/ppc-auxv.h: Use PPC_PLATFORM_POWER10, not
18642 PPC_PLATFORM_FUTURE.
18643 * config/rs6000/rs6000-builtin.def: Update comments. Use BU_P10V_*
18644 names instead of BU_FUTURE_V_* names. Use RS6000_BTM_P10 instead of
18645 RS6000_BTM_FUTURE. Use P10_BUILTIN_* instead of FUTURE_BUILTIN_*.
18646 Use BU_P10_* instead of BU_FUTURE_*.
18647 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
18648 _ARCH_PWR10 instead of _ARCH_PWR_FUTURE.
18649 (altivec_resolve_overloaded_builtin): Use P10_BUILTIN_VEC_XXEVAL, not
18650 FUTURE_BUILTIN_VEC_XXEVAL.
18651 * config/rs6000/rs6000-call.c: Use P10_BUILTIN_*, not FUTURE_BUILTIN_*.
18652 Update compiler messages.
18653 * config/rs6000/rs6000-cpus.def: Update comments. Use ISA_3_1_*, not
18654 ISA_FUTURE_*. Use OPTION_MASK_POWER10, not OPTION_MASK_FUTURE.
18655 * config/rs6000/rs6000-opts.h: Use PROCESSOR_POWER10, not
18656 PROCESSOR_FUTURE.
18657 * config/rs6000/rs6000-string.c: Ditto.
18658 * config/rs6000/rs6000-tables.opt (rs6000_cpu_opt_value): Use "power10"
18659 instead of "future", reorder it to right after "power9".
18660 * config/rs6000/rs6000.c: Update comments. Use OPTION_MASK_POWER10,
18661 not OPTION_MASK_FUTURE. Use TARGET_POWER10, not TARGET_FUTURE. Use
18662 RS6000_BTM_P10, not RS6000_BTM_FUTURE. Update compiler messages.
18663 Use PROCESSOR_POWER10, not PROCESSOR_FUTURE. Use ISA_3_1_MASKS_SERVER,
18664 not ISA_FUTURE_MASKS_SERVER.
18665 (rs6000_opt_masks): Use "power10" instead of "future".
18666 (rs6000_builtin_mask_names): Ditto.
18667 (rs6000_disable_incompatible_switches): Ditto.
18668 * config/rs6000/rs6000.h: Use -mpower10, not -mfuture. Use
18669 -mcpu=power10, not -mcpu=future. Use MASK_POWER10, not MASK_FUTURE.
18670 Use OPTION_MASK_POWER10, not OPTION_MASK_FUTURE. Use RS6000_BTM_P10,
18671 not RS6000_BTM_FUTURE.
18672 * config/rs6000/rs6000.md: Use "power10", not "future". Use
18673 TARGET_POWER10, not TARGET_FUTURE. Include "power10.md", not
18674 "future.md".
18675 * config/rs6000/rs6000.opt (mfuture): Delete.
18676 (mpower10): New.
18677 * config/rs6000/t-rs6000: Use "power10.md", not "future.md".
18678 * config/rs6000/vsx.md: Use TARGET_POWER10, not TARGET_FUTURE.
18679
18680 2020-06-22 Richard Sandiford <richard.sandiford@arm.com>
18681
18682 * coretypes.h (first_type): Delete.
18683 * recog.h (insn_gen_fn::operator()): Go back to using a decltype.
18684
18685 2020-06-22 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
18686
18687 * doc/sourcebuild.texi (arm_v8_1m_mve_fp_ok): Add item.
18688 (arm_mve_hw): Likewise.
18689
18690 2020-06-22 H.J. Lu <hjl.tools@gmail.com>
18691
18692 PR target/95791
18693 * config/i386/i386.c (ix86_dirflag_mode_needed): Skip
18694 EXT_REX_SSE_REG_P.
18695
18696 2020-06-22 Richard Biener <rguenther@suse.de>
18697
18698 PR tree-optimization/95770
18699 * tree-vect-slp.c (vect_schedule_slp_instance): Also consider
18700 external defs.
18701
18702 2020-06-22 Andrew Stubbs <ams@codesourcery.com>
18703
18704 * config/gcn/gcn.c (gcn_function_arg): Disallow vector arguments.
18705 (gcn_return_in_memory): Return vectors in memory.
18706
18707 2020-06-22 Jakub Jelinek <jakub@redhat.com>
18708
18709 * omp-general.c (omp_extract_for_data): For triangular loops with
18710 all loop invariant expressions constant where the innermost loop is
18711 executed at least once compute number of iterations at compile time.
18712
18713 2020-06-22 Kito Cheng <kito.cheng@sifive.com>
18714
18715 * config/riscv/riscv.h (ASM_SPEC): Remove riscv_expand_arch call.
18716 (DRIVER_SELF_SPECS): New.
18717
18718 2020-06-22 Kito Cheng <kito.cheng@sifive.com>
18719
18720 * config/riscv/riscv-builtins.c (RISCV_FTYPE_NAME0): New.
18721 (RISCV_FTYPE_ATYPES0): New.
18722 (riscv_builtins): Using RISCV_USI_FTYPE for frflags.
18723 * config/riscv/riscv-ftypes.def: Remove VOID argument.
18724
18725 2020-06-21 David Edelsohn <dje.gcc@gmail.com>
18726
18727 * config.gcc: Use t-aix64, biarch64 and default64 for cpu_is_64bit.
18728 * config/rs6000/aix72.h (ASM_SPEC): Remove aix64 option.
18729 (ASM_SPEC32): New.
18730 (ASM_SPEC64): New.
18731 (ASM_CPU_SPEC): Remove vsx and altivec options.
18732 (CPP_SPEC_COMMON): Rename from CPP_SPEC.
18733 (CPP_SPEC32): New.
18734 (CPP_SPEC64): New.
18735 (CPLUSPLUS_CPP_SPEC): Rename to CPLUSPLUS_CPP_SPEC_COMMON..
18736 (TARGET_DEFAULT): Only define if not BIARCH.
18737 (LIB_SPEC_COMMON): Rename from LIB_SPEC.
18738 (LIB_SPEC32): New.
18739 (LIB_SPEC64): New.
18740 (LINK_SPEC_COMMON): Rename from LINK_SPEC.
18741 (LINK_SPEC32): New.
18742 (LINK_SPEC64): New.
18743 (STARTFILE_SPEC): Add 64 bit version of crtcxa and crtdbase.
18744 (ASM_SPEC): Define 32 and 64 bit alternatives using DEFAULT_ARCH64_P.
18745 (CPP_SPEC): Same.
18746 (CPLUSPLUS_CPP_SPEC): Same.
18747 (LIB_SPEC): Same.
18748 (LINK_SPEC): Same.
18749 (SUBTARGET_EXTRA_SPECS): Add new 32/64 specs.
18750 * config/rs6000/defaultaix64.h: New file.
18751 * config/rs6000/t-aix64: New file.
18752
18753 2020-06-21 Peter Bergner <bergner@linux.ibm.com>
18754
18755 * config/rs6000/predicates.md (mma_assemble_input_operand): New.
18756 * config/rs6000/rs6000-builtin.def (BU_MMA_1, BU_MMA_V2, BU_MMA_3,
18757 BU_MMA_5, BU_MMA_6, BU_VSX_1): Add support macros for defining MMA
18758 built-in functions.
18759 (ASSEMBLE_ACC, ASSEMBLE_PAIR, DISASSEMBLE_ACC, DISASSEMBLE_PAIR,
18760 PMXVBF16GER2, PMXVBF16GER2NN, PMXVBF16GER2NP, PMXVBF16GER2PN,
18761 PMXVBF16GER2PP, PMXVF16GER2, PMXVF16GER2NN, PMXVF16GER2NP,
18762 PMXVF16GER2PN, PMXVF16GER2PP, PMXVF32GER, PMXVF32GERNN,
18763 PMXVF32GERNP, PMXVF32GERPN, PMXVF32GERPP, PMXVF64GER, PMXVF64GERNN,
18764 PMXVF64GERNP, PMXVF64GERPN, PMXVF64GERPP, PMXVI16GER2, PMXVI16GER2PP,
18765 PMXVI16GER2S, PMXVI16GER2SPP, PMXVI4GER8, PMXVI4GER8PP, PMXVI8GER4,
18766 PMXVI8GER4PP, PMXVI8GER4SPP, XVBF16GER2, XVBF16GER2NN, XVBF16GER2NP,
18767 XVBF16GER2PN, XVBF16GER2PP, XVCVBF16SP, XVCVSPBF16, XVF16GER2,
18768 XVF16GER2NN, XVF16GER2NP, XVF16GER2PN, XVF16GER2PP, XVF32GER,
18769 XVF32GERNN, XVF32GERNP, XVF32GERPN, XVF32GERPP, XVF64GER, XVF64GERNN,
18770 XVF64GERNP, XVF64GERPN, XVF64GERPP, XVI16GER2, XVI16GER2PP, XVI16GER2S,
18771 XVI16GER2SPP, XVI4GER8, XVI4GER8PP, XVI8GER4, XVI8GER4PP, XVI8GER4SPP,
18772 XXMFACC, XXMTACC, XXSETACCZ): Add MMA built-ins.
18773 * config/rs6000/rs6000.c (rs6000_emit_move): Use CONST_INT_P.
18774 Allow zero constants.
18775 (print_operand) <case 'A'>: New output modifier.
18776 (rs6000_split_multireg_move): Add support for inserting accumulator
18777 priming and depriming instructions. Add support for splitting an
18778 assemble accumulator pattern.
18779 * config/rs6000/rs6000-call.c (mma_init_builtins, mma_expand_builtin,
18780 rs6000_gimple_fold_mma_builtin): New functions.
18781 (RS6000_BUILTIN_M): New macro.
18782 (def_builtin): Handle RS6000_BTC_QUAD and RS6000_BTC_PAIR attributes.
18783 (bdesc_mma): Add new MMA built-in support.
18784 (htm_expand_builtin): Use RS6000_BTC_OPND_MASK.
18785 (rs6000_invalid_builtin): Add handling of RS6000_BTM_FUTURE and
18786 RS6000_BTM_MMA.
18787 (rs6000_builtin_valid_without_lhs): Handle RS6000_BTC_VOID attribute.
18788 (rs6000_gimple_fold_builtin): Call rs6000_builtin_is_supported_p
18789 and rs6000_gimple_fold_mma_builtin.
18790 (rs6000_expand_builtin): Call mma_expand_builtin.
18791 Use RS6000_BTC_OPND_MASK.
18792 (rs6000_init_builtins): Adjust comment. Call mma_init_builtins.
18793 (htm_init_builtins): Use RS6000_BTC_OPND_MASK.
18794 (builtin_function_type): Handle VSX_BUILTIN_XVCVSPBF16 and
18795 VSX_BUILTIN_XVCVBF16SP.
18796 * config/rs6000/rs6000.h (RS6000_BTC_QUINARY, RS6000_BTC_SENARY,
18797 RS6000_BTC_OPND_MASK, RS6000_BTC_QUAD, RS6000_BTC_PAIR,
18798 RS6000_BTC_QUADPAIR, RS6000_BTC_GIMPLE): New defines.
18799 (RS6000_BTC_PREDICATE, RS6000_BTC_ABS, RS6000_BTC_DST,
18800 RS6000_BTC_TYPE_MASK, RS6000_BTC_ATTR_MASK): Adjust values.
18801 * config/rs6000/mma.md (MAX_MMA_OPERANDS): New define_constant.
18802 (UNSPEC_MMA_ASSEMBLE_ACC, UNSPEC_MMA_PMXVBF16GER2,
18803 UNSPEC_MMA_PMXVBF16GER2NN, UNSPEC_MMA_PMXVBF16GER2NP,
18804 UNSPEC_MMA_PMXVBF16GER2PN, UNSPEC_MMA_PMXVBF16GER2PP,
18805 UNSPEC_MMA_PMXVF16GER2, UNSPEC_MMA_PMXVF16GER2NN,
18806 UNSPEC_MMA_PMXVF16GER2NP, UNSPEC_MMA_PMXVF16GER2PN,
18807 UNSPEC_MMA_PMXVF16GER2PP, UNSPEC_MMA_PMXVF32GER,
18808 UNSPEC_MMA_PMXVF32GERNN, UNSPEC_MMA_PMXVF32GERNP,
18809 UNSPEC_MMA_PMXVF32GERPN, UNSPEC_MMA_PMXVF32GERPP,
18810 UNSPEC_MMA_PMXVF64GER, UNSPEC_MMA_PMXVF64GERNN,
18811 UNSPEC_MMA_PMXVF64GERNP, UNSPEC_MMA_PMXVF64GERPN,
18812 UNSPEC_MMA_PMXVF64GERPP, UNSPEC_MMA_PMXVI16GER2,
18813 UNSPEC_MMA_PMXVI16GER2PP, UNSPEC_MMA_PMXVI16GER2S,
18814 UNSPEC_MMA_PMXVI16GER2SPP, UNSPEC_MMA_PMXVI4GER8,
18815 UNSPEC_MMA_PMXVI4GER8PP, UNSPEC_MMA_PMXVI8GER4,
18816 UNSPEC_MMA_PMXVI8GER4PP, UNSPEC_MMA_PMXVI8GER4SPP,
18817 UNSPEC_MMA_XVBF16GER2, UNSPEC_MMA_XVBF16GER2NN,
18818 UNSPEC_MMA_XVBF16GER2NP, UNSPEC_MMA_XVBF16GER2PN,
18819 UNSPEC_MMA_XVBF16GER2PP, UNSPEC_MMA_XVF16GER2, UNSPEC_MMA_XVF16GER2NN,
18820 UNSPEC_MMA_XVF16GER2NP, UNSPEC_MMA_XVF16GER2PN, UNSPEC_MMA_XVF16GER2PP,
18821 UNSPEC_MMA_XVF32GER, UNSPEC_MMA_XVF32GERNN, UNSPEC_MMA_XVF32GERNP,
18822 UNSPEC_MMA_XVF32GERPN, UNSPEC_MMA_XVF32GERPP, UNSPEC_MMA_XVF64GER,
18823 UNSPEC_MMA_XVF64GERNN, UNSPEC_MMA_XVF64GERNP, UNSPEC_MMA_XVF64GERPN,
18824 UNSPEC_MMA_XVF64GERPP, UNSPEC_MMA_XVI16GER2, UNSPEC_MMA_XVI16GER2PP,
18825 UNSPEC_MMA_XVI16GER2S, UNSPEC_MMA_XVI16GER2SPP, UNSPEC_MMA_XVI4GER8,
18826 UNSPEC_MMA_XVI4GER8PP, UNSPEC_MMA_XVI8GER4, UNSPEC_MMA_XVI8GER4PP,
18827 UNSPEC_MMA_XVI8GER4SPP, UNSPEC_MMA_XXMFACC, UNSPEC_MMA_XXMTACC): New.
18828 (MMA_ACC, MMA_VV, MMA_AVV, MMA_PV, MMA_APV, MMA_VVI4I4I8,
18829 MMA_AVVI4I4I8, MMA_VVI4I4I2, MMA_AVVI4I4I2, MMA_VVI4I4,
18830 MMA_AVVI4I4, MMA_PVI4I2, MMA_APVI4I2, MMA_VVI4I4I4,
18831 MMA_AVVI4I4I4): New define_int_iterator.
18832 (acc, vv, avv, pv, apv, vvi4i4i8, avvi4i4i8, vvi4i4i2,
18833 avvi4i4i2, vvi4i4, avvi4i4, pvi4i2, apvi4i2, vvi4i4i4,
18834 avvi4i4i4): New define_int_attr.
18835 (*movpxi): Add zero constant alternative.
18836 (mma_assemble_pair, mma_assemble_acc): New define_expand.
18837 (*mma_assemble_acc): New define_insn_and_split.
18838 (mma_<acc>, mma_xxsetaccz, mma_<vv>, mma_<avv>, mma_<pv>, mma_<apv>,
18839 mma_<vvi4i4i8>, mma_<avvi4i4i8>, mma_<vvi4i4i2>, mma_<avvi4i4i2>,
18840 mma_<vvi4i4>, mma_<avvi4i4>, mma_<pvi4i2>, mma_<apvi4i2>,
18841 mma_<vvi4i4i4>, mma_<avvi4i4i4>): New define_insn.
18842 * config/rs6000/rs6000.md (define_attr "type"): New type mma.
18843 * config/rs6000/vsx.md (UNSPEC_VSX_XVCVBF16SP): New.
18844 (UNSPEC_VSX_XVCVSPBF16): Likewise.
18845 (XVCVBF16): New define_int_iterator.
18846 (xvcvbf16): New define_int_attr.
18847 (vsx_<xvcvbf16>): New define_insn.
18848 * doc/extend.texi: Document the mma built-ins.
18849
18850 2020-06-21 Peter Bergner <bergner@linux.ibm.com>
18851 Michael Meissner <meissner@linux.ibm.com>
18852
18853 * config/rs6000/mma.md: New file.
18854 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
18855 __MMA__ for mma.
18856 * config/rs6000/rs6000-call.c (rs6000_init_builtins): Add support
18857 for __vector_pair and __vector_quad types.
18858 * config/rs6000/rs6000-cpus.def (OTHER_FUTURE_MASKS): Add
18859 OPTION_MASK_MMA.
18860 (POWERPC_MASKS): Likewise.
18861 * config/rs6000/rs6000-modes.def (OI, XI): New integer modes.
18862 (POI, PXI): New partial integer modes.
18863 * config/rs6000/rs6000.c (TARGET_INVALID_CONVERSION): Define.
18864 (rs6000_hard_regno_nregs_internal): Use VECTOR_ALIGNMENT_P.
18865 (rs6000_hard_regno_mode_ok_uncached): Likewise.
18866 Add support for POImode being allowed in VSX registers and PXImode
18867 being allowed in FP registers.
18868 (rs6000_modes_tieable_p): Adjust comment.
18869 Add support for POImode and PXImode.
18870 (rs6000_debug_reg_global) <print_tieable_modes>: Add OImode, POImode
18871 XImode, PXImode, V2SImode, V2SFmode and CCFPmode..
18872 (rs6000_setup_reg_addr_masks): Use VECTOR_ALIGNMENT_P.
18873 Set up appropriate addr_masks for vector pair and vector quad addresses.
18874 (rs6000_init_hard_regno_mode_ok): Add support for vector pair and
18875 vector quad registers. Setup reload handlers for POImode and PXImode.
18876 (rs6000_builtin_mask_calculate): Add support for RS6000_BTM_MMA.
18877 (rs6000_option_override_internal): Error if -mmma is specified
18878 without -mcpu=future.
18879 (rs6000_slow_unaligned_access): Use VECTOR_ALIGNMENT_P.
18880 (quad_address_p): Change size test to less than 16 bytes.
18881 (reg_offset_addressing_ok_p): Add support for ISA 3.1 vector pair
18882 and vector quad instructions.
18883 (avoiding_indexed_address_p): Likewise.
18884 (rs6000_emit_move): Disallow POImode and PXImode moves involving
18885 constants.
18886 (rs6000_preferred_reload_class): Prefer VSX registers for POImode
18887 and FP registers for PXImode.
18888 (rs6000_split_multireg_move): Support splitting POImode and PXImode
18889 move instructions.
18890 (rs6000_mangle_type): Adjust comment. Add support for mangling
18891 __vector_pair and __vector_quad types.
18892 (rs6000_opt_masks): Add entry for mma.
18893 (rs6000_builtin_mask_names): Add RS6000_BTM_MMA and RS6000_BTM_FUTURE.
18894 (rs6000_function_value): Use VECTOR_ALIGNMENT_P.
18895 (address_to_insn_form): Likewise.
18896 (reg_to_non_prefixed): Likewise.
18897 (rs6000_invalid_conversion): New function.
18898 * config/rs6000/rs6000.h (MASK_MMA): Define.
18899 (BIGGEST_ALIGNMENT): Set to 512 if MMA support is enabled.
18900 (VECTOR_ALIGNMENT_P): New helper macro.
18901 (ALTIVEC_VECTOR_MODE): Use VECTOR_ALIGNMENT_P.
18902 (RS6000_BTM_MMA): Define.
18903 (RS6000_BTM_COMMON): Add RS6000_BTM_MMA and RS6000_BTM_FUTURE.
18904 (rs6000_builtin_type_index): Add RS6000_BTI_vector_pair and
18905 RS6000_BTI_vector_quad.
18906 (vector_pair_type_node): New.
18907 (vector_quad_type_node): New.
18908 * config/rs6000/rs6000.md: Include mma.md.
18909 (define_mode_iterator RELOAD): Add POI and PXI.
18910 * config/rs6000/t-rs6000 (MD_INCLUDES): Add mma.md.
18911 * config/rs6000/rs6000.opt (-mmma): New.
18912 * doc/invoke.texi: Document -mmma.
18913
18914 2020-06-20 Bin Cheng <bin.cheng@linux.alibaba.com>
18915
18916 PR tree-optimization/95638
18917 * tree-loop-distribution.c (pg_edge_callback_data): New field.
18918 (loop_distribution::break_alias_scc_partitions): Record and restore
18919 postorder information. Fix memory leak.
18920
18921 2020-06-19 Tobias Burnus <tobias@codesourcery.com>
18922
18923 * config/gcn/gcn.c (gcn_related_vector_mode): Add ARG_UNUSED.
18924 (output_file_start): Use const 'char *'.
18925
18926 2020-06-19 Przemyslaw Wirkus <Przemyslaw.Wirkus@arm.com>
18927
18928 PR tree-optimization/94880
18929 * match.pd (A | B) - B -> (A & ~B): New simplification.
18930
18931 2020-06-19 Richard Biener <rguenther@suse.de>
18932
18933 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Adjust
18934 for lane permutations.
18935
18936 2020-06-19 Richard Biener <rguenther@suse.de>
18937
18938 PR tree-optimization/95761
18939 * tree-vect-slp.c (vect_schedule_slp_instance): Walk all
18940 vectorized stmts for finding the last one.
18941
18942 2020-06-18 Felix Yang <felix.yang@huawei.com>
18943
18944 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Call
18945 vect_relevant_for_alignment_p to filter out data references in
18946 the loop whose alignment is irrelevant when trying loop peeling
18947 to force alignment.
18948
18949 2020-06-18 Uroš Bizjak <ubizjak@gmail.com>
18950
18951 * config/i386/i386.md (*cmpqi_ext<mode>_1): Use SWI248 mode
18952 iterator instead of SImode for ZERO_EXTRACT RTX. Use SWI248
18953 mode iterator for the first operand of ZERO_EXTRACT RTX.
18954 Change ext_register_operand predicate to register_operand.
18955 Rename from *cmpqi_ext_1.
18956 (*cmpqi_ext<mode>_2): Ditto. Rename from *cmpqi_ext_2.
18957 (*cmpqi_ext<mode>_3): Ditto. Rename from *cmpqi_ext_3.
18958 (*cmpqi_ext<mode>_4): Ditto. Rename from *cmpqi_ext_4.
18959 (cmpi_ext_3): Use HImode instead of SImode for ZERO_EXTRACT RTX.
18960 (*extv<mode>): Use SWI24 mode iterator for the first operand
18961 of ZERO_EXTRACT RTX. Change ext_register_operand predicate
18962 to register_operand.
18963 (*extzv<mode>): Use SWI248 mode iterator for the first operand
18964 of ZERO_EXTRACT RTX. Change ext_register_operand predicate
18965 to register_operand.
18966 (*extzvqi): Use SWI248 mode iterator instead of SImode for
18967 ZERO_EXTRACT RTX. Use SWI248 mode iterator for the first operand
18968 of ZERO_EXTRACT RTX. Change ext_register_operand predicate to
18969 register_operand.
18970 (*extzvqi_mem_rex64 and corresponding peephole2): Use SWI248 mode
18971 iterator instead of SImode for ZERO_EXTRACT RTX. Use SWI248
18972 mode iterator for the first operand of ZERO_EXTRACT RTX.
18973 Change ext_register_operand predicate to register_operand.
18974 (@insv<mode>_1): Use SWI248 mode iterator for the first operand
18975 of ZERO_EXTRACT RTX. Change ext_register_operand predicate to
18976 register_operand.
18977 (*insvqi_1): Use SWI248 mode iterator instead of SImode
18978 for ZERO_EXTRACT RTX. Use SWI248 mode iterator for the
18979 first operand of ZERO_EXTRACT RTX. Change ext_register_operand
18980 predicate to register_operand.
18981 (*insvqi_2): Ditto.
18982 (*insvqi_3): Ditto.
18983 (*insvqi_1_mem_rex64 and corresponding peephole2): Use SWI248 mode
18984 iterator instead of SImode for ZERO_EXTRACT RTX. Use SWI248
18985 mode iterator for the first operand of ZERO_EXTRACT RTX.
18986 Change ext_register_operand predicate to register_operand.
18987 (addqi_ext_1): New expander.
18988 (*addqi_ext<mode>_1): Use SWI248 mode iterator instead of SImode
18989 for ZERO_EXTRACT RTX. Use SWI248 mode iterator for the first
18990 operand of ZERO_EXTRACT RTX. Change ext_register_operand predicate
18991 to register_operand. Rename from *addqi_ext_1.
18992 (*addqi_ext<mode>_2): Ditto. Rename from *addqi_ext_2.
18993 (divmodqi4): Use HImode instead of SImode for ZERO_EXTRACT RTX.
18994 (udivmodqi4): Ditto.
18995 (testqi_ext_1): Use HImode instead of SImode for ZERO_EXTRACT RTX.
18996 (*testqi_ext<mode>_1): Use SWI248 mode iterator instead of SImode
18997 for ZERO_EXTRACT RTX. Use SWI248 mode iterator for the first
18998 operand of ZERO_EXTRACT RTX. Change ext_register_operand predicate
18999 to register_operand. Rename from *testqi_ext_1.
19000 (*testqi_ext<mode>_2): Ditto. Rename from *testqi_ext_2.
19001 (andqi_ext_1): New expander.
19002 (*andqi_ext<mode>_1): Use SWI248 mode iterator instead of SImode
19003 for ZERO_EXTRACT RTX. Use SWI248 mode iterator for the first
19004 operand of ZERO_EXTRACT RTX. Change ext_register_operand predicate
19005 to register_operand. Rename from andqi_ext_1.
19006 (*andqi_ext<mode>_1_cc): Ditto. Rename from *andqi_ext_1_cc.
19007 (*andqi_ext<mode>_2): Ditto. Rename from *andqi_ext_2.
19008 (*<code>qi_ext<mode>_1): Ditto. Rename from *<code>qi_ext_1.
19009 (*<code>qi_ext<mode>_2): Ditto. Rename from *<code>qi_ext_2.
19010 (xorqi_ext_1_cc): Use HImode instead of SImode for ZERO_EXTRACT RTX.
19011 (*xorqi_ext<mode>_1_cc): Use SWI248 mode iterator instead of SImode
19012 for ZERO_EXTRACT RTX. Use SWI248 mode iterator for the first
19013 operand of ZERO_EXTRACT RTX. Change ext_register_operand predicate
19014 to register_operand. Rename from *xorqi_ext_1_cc.
19015 * config/i386/i386-expand.c (ix86_split_idivmod): Emit ZERO_EXTRACT
19016 in mode, matching its first operand.
19017 (promote_duplicated_reg): Update for renamed insv<mode>_1.
19018 * config/i386/predicates.md (ext_register_operand): Remove predicate.
19019
19020 2020-06-18 Martin Sebor <msebor@redhat.com>
19021
19022 PR middle-end/95667
19023 PR middle-end/92814
19024 * builtins.c (compute_objsize): Remove call to
19025 compute_builtin_object_size and instead compute conservative sizes
19026 directly here.
19027
19028 2020-06-18 Martin Liska <mliska@suse.cz>
19029
19030 * coretypes.h (struct iterator_range): New type.
19031 * tree-vect-patterns.c (vect_determine_precisions): Use
19032 range-based iterator.
19033 (vect_pattern_recog): Likewise.
19034 * tree-vect-slp.c (_bb_vec_info): Likewise.
19035 (_bb_vec_info::~_bb_vec_info): Likewise.
19036 (vect_slp_check_for_constructors): Likewise.
19037 * tree-vectorizer.h:Add new iterators
19038 and functions that use it.
19039
19040 2020-06-18 Martin Liska <mliska@suse.cz>
19041
19042 * config/rs6000/rs6000-call.c (fold_build_vec_cmp):
19043 Since 502d63b6d6141597bb18fd23c87736a1b384cf8f, first argument
19044 of a VEC_COND_EXPR cannot be tcc_comparison and so that
19045 a SSA_NAME needs to be created before we use it for the first
19046 argument of the VEC_COND_EXPR.
19047 (fold_compare_helper): Pass gsi to fold_build_vec_cmp.
19048
19049 2020-06-18 Richard Biener <rguenther@suse.de>
19050
19051 PR middle-end/95739
19052 * internal-fn.c (expand_vect_cond_optab_fn): Move the result
19053 to the target if necessary.
19054 (expand_vect_cond_mask_optab_fn): Likewise.
19055
19056 2020-06-18 Martin Liska <mliska@suse.cz>
19057
19058 * tree-ssa-reassoc.c (ovce_extract_ops): Replace *vcond with
19059 vcond as we check for NULL pointer.
19060
19061 2020-06-18 Tobias Burnus <tobias@codesourcery.com>
19062
19063 * gimple-pretty-print.c (dump_binary_rhs): Use braces to
19064 silence empty-body warning with gcc_fallthrough.
19065
19066 2020-06-18 Jakub Jelinek <jakub@redhat.com>
19067
19068 PR tree-optimization/95699
19069 * tree-ssa-phiopt.c (minmax_replacement): Treat (signed int)x < 0
19070 as x > INT_MAX and (signed int)x >= 0 as x <= INT_MAX. Move variable
19071 declarations to the statements that set them where possible.
19072
19073 2020-06-18 Jakub Jelinek <jakub@redhat.com>
19074
19075 PR target/95713
19076 * tree-ssa-forwprop.c (simplify_vector_constructor): Don't allow
19077 scalar mode halfvectype other than vector boolean for
19078 VEC_PACK_TRUNC_EXPR.
19079
19080 2020-06-18 Richard Biener <rguenther@suse.de>
19081
19082 * varasm.c (assemble_variable): Make sure to not
19083 defer output when outputting addressed constants.
19084 (output_constant_def_contents): Likewise.
19085 (add_constant_to_table): Take and pass on whether to
19086 defer output.
19087 (output_addressed_constants): Likewise.
19088 (output_constant_def): Pass on whether to defer output
19089 to add_constant_to_table.
19090 (tree_output_constant_def): Defer output of constants.
19091
19092 2020-06-18 Richard Biener <rguenther@suse.de>
19093
19094 * tree-vectorizer.h (_slp_tree::two_operators): Remove.
19095 (_slp_tree::lane_permutation): New member.
19096 (_slp_tree::code): Likewise.
19097 (SLP_TREE_TWO_OPERATORS): Remove.
19098 (SLP_TREE_LANE_PERMUTATION): New.
19099 (SLP_TREE_CODE): Likewise.
19100 (vect_stmt_dominates_stmt_p): Declare.
19101 * tree-vectorizer.c (vect_stmt_dominates_stmt_p): New function.
19102 * tree-vect-stmts.c (vect_model_simple_cost): Remove
19103 SLP_TREE_TWO_OPERATORS handling.
19104 * tree-vect-slp.c (_slp_tree::_slp_tree): Amend.
19105 (_slp_tree::~_slp_tree): Likewise.
19106 (vect_two_operations_perm_ok_p): Remove.
19107 (vect_build_slp_tree_1): Remove verification of two-operator
19108 permutation here.
19109 (vect_build_slp_tree_2): When we have two different operators
19110 build two computation SLP nodes and a blend.
19111 (vect_print_slp_tree): Print the lane permutation if it exists.
19112 (slp_copy_subtree): Copy it.
19113 (vect_slp_rearrange_stmts): Re-arrange it.
19114 (vect_slp_analyze_node_operations_1): Handle SLP_TREE_CODE
19115 VEC_PERM_EXPR explicitely.
19116 (vect_schedule_slp_instance): Likewise. Remove old
19117 SLP_TREE_TWO_OPERATORS code.
19118 (vectorizable_slp_permutation): New function.
19119
19120 2020-06-18 Martin Liska <mliska@suse.cz>
19121
19122 * tree-vect-generic.c (expand_vector_condition): Check
19123 for gassign before inspecting RHS.
19124
19125 2020-06-17 Thomas Schwinge <thomas@codesourcery.com>
19126
19127 * gimplify.c (omp_notice_threadprivate_variable)
19128 (omp_default_clause, omp_notice_variable): 'inform' after 'error'
19129 diagnostic. Adjust all users.
19130
19131 2020-06-17 Thomas Schwinge <thomas@codesourcery.com>
19132
19133 * hsa-gen.c (gen_hsa_insns_for_call): Move 'function_decl ==
19134 NULL_TREE' check earlier.
19135
19136 2020-06-17 Forrest Timour <forrest.timour@gmail.com>
19137
19138 * doc/extend.texi (attribute access): Fix a typo.
19139
19140 2020-06-17 Bin Cheng <bin.cheng@linux.alibaba.com>
19141 Kaipeng Zhou <zhoukaipeng3@huawei.com>
19142
19143 PR tree-optimization/95199
19144 * tree-vect-stmts.c: Eliminate common stmts for bump and offset in
19145 strided load/store operations and remove redundant code.
19146
19147 2020-06-17 Richard Sandiford <richard.sandiford@arm.com>
19148
19149 * coretypes.h (first_type): New alias template.
19150 * recog.h (insn_gen_fn::operator()): Use it instead of a decltype.
19151 Remove spurious “...” and split the function type out into a typedef.
19152
19153 2020-06-17 Andreas Krebbel <krebbel@linux.ibm.com>
19154
19155 * config/s390/s390.c (s390_fix_long_loop_prediction): Exit early
19156 for PARALLELs.
19157
19158 2020-06-17 Richard Biener <rguenther@suse.de>
19159
19160 * tree-vect-slp.c (vect_build_slp_tree_1): Set the passed
19161 in *vectype parameter.
19162 (vect_build_slp_tree_2): Set SLP_TREE_VECTYPE from what
19163 vect_build_slp_tree_1 computed.
19164 (vect_analyze_slp_instance): Set SLP_TREE_VECTYPE.
19165 (vect_slp_analyze_node_operations_1): Use the SLP node vector type.
19166 (vect_schedule_slp_instance): Likewise.
19167 * tree-vect-stmts.c (vect_is_simple_use): Take the vector type
19168 from SLP_TREE_VECTYPE.
19169
19170 2020-06-17 Richard Biener <rguenther@suse.de>
19171
19172 PR tree-optimization/95717
19173 * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg):
19174 Move BB SSA updating before exit/latch PHI current def copying.
19175
19176 2020-06-17 Martin Liska <mliska@suse.cz>
19177
19178 * Makefile.in: Add new file.
19179 * expr.c (expand_expr_real_2): Add gcc_unreachable as we should
19180 not meet this condition.
19181 (do_store_flag): Likewise.
19182 * gimplify.c (gimplify_expr): Gimplify first argument of
19183 VEC_COND_EXPR to be a SSA name.
19184 * internal-fn.c (vec_cond_mask_direct): New.
19185 (vec_cond_direct): Likewise.
19186 (vec_condu_direct): Likewise.
19187 (vec_condeq_direct): Likewise.
19188 (expand_vect_cond_optab_fn): New.
19189 (expand_vec_cond_optab_fn): Likewise.
19190 (expand_vec_condu_optab_fn): Likewise.
19191 (expand_vec_condeq_optab_fn): Likewise.
19192 (expand_vect_cond_mask_optab_fn): Likewise.
19193 (expand_vec_cond_mask_optab_fn): Likewise.
19194 (direct_vec_cond_mask_optab_supported_p): Likewise.
19195 (direct_vec_cond_optab_supported_p): Likewise.
19196 (direct_vec_condu_optab_supported_p): Likewise.
19197 (direct_vec_condeq_optab_supported_p): Likewise.
19198 * internal-fn.def (VCOND): New OPTAB.
19199 (VCONDU): Likewise.
19200 (VCONDEQ): Likewise.
19201 (VCOND_MASK): Likewise.
19202 * optabs.c (get_rtx_code): Make it global.
19203 (expand_vec_cond_mask_expr): Removed.
19204 (expand_vec_cond_expr): Removed.
19205 * optabs.h (expand_vec_cond_expr): Likewise.
19206 (vector_compare_rtx): Make it global.
19207 * passes.def: Add new pass_gimple_isel pass.
19208 * tree-cfg.c (verify_gimple_assign_ternary): Add check
19209 for VEC_COND_EXPR about first argument.
19210 * tree-pass.h (make_pass_gimple_isel): New.
19211 * tree-ssa-forwprop.c (pass_forwprop::execute): Prevent
19212 propagation of the first argument of a VEC_COND_EXPR.
19213 * tree-ssa-reassoc.c (ovce_extract_ops): Support SSA_NAME as
19214 first argument of a VEC_COND_EXPR.
19215 (optimize_vec_cond_expr): Likewise.
19216 * tree-vect-generic.c (expand_vector_divmod): Make SSA_NAME
19217 for a first argument of created VEC_COND_EXPR.
19218 (expand_vector_condition): Fix coding style.
19219 * tree-vect-stmts.c (vectorizable_condition): Gimplify
19220 first argument.
19221 * gimple-isel.cc: New file.
19222
19223 2020-06-17 Andrew Stubbs <ams@codesourcery.com>
19224
19225 * config/gcn/gcn-hsa.h (TEXT_SECTION_ASM_OP): Use ".text".
19226 (BSS_SECTION_ASM_OP): Use ".bss".
19227 (ASM_SPEC): Remove "-mattr=-code-object-v3".
19228 (LINK_SPEC): Add "--export-dynamic".
19229 * config/gcn/gcn-opts.h (processor_type): Replace PROCESSOR_VEGA with
19230 PROCESSOR_VEGA10 and PROCESSOR_VEGA20.
19231 * config/gcn/gcn-run.c (HSA_RUNTIME_LIB): Use ".so.1" variant.
19232 (load_image): Remove obsolete relocation handling.
19233 Add ".kd" suffix to the symbol names.
19234 * config/gcn/gcn.c (MAX_NORMAL_SGPR_COUNT): Set to 62.
19235 (gcn_option_override): Update gcn_isa test.
19236 (gcn_kernel_arg_types): Update all the assembler directives.
19237 Remove the obsolete options.
19238 (gcn_conditional_register_usage): Update MAX_NORMAL_SGPR_COUNT usage.
19239 (gcn_omp_device_kind_arch_isa): Handle PROCESSOR_VEGA10 and
19240 PROCESSOR_VEGA20.
19241 (output_file_start): Rework assembler file header.
19242 (gcn_hsa_declare_function_name): Rework kernel metadata.
19243 * config/gcn/gcn.h (GCN_KERNEL_ARG_TYPES): Set to 16.
19244 * config/gcn/gcn.opt (PROCESSOR_VEGA): Remove enum.
19245 (PROCESSOR_VEGA10): New enum value.
19246 (PROCESSOR_VEGA20): New enum value.
19247
19248 2020-06-17 Martin Liska <mliska@suse.cz>
19249
19250 * gcov-dump.c (print_version): Collapse lisence header to 2 lines
19251 in --version.
19252 * gcov-tool.c (print_version): Likewise.
19253 * gcov.c (print_version): Likewise.
19254
19255 2020-06-17 liuhongt <hongtao.liu@intel.com>
19256
19257 PR target/95524
19258 * config/i386/i386-expand.c
19259 (ix86_expand_vec_shift_qihi_constant): New function.
19260 * config/i386/i386-protos.h
19261 (ix86_expand_vec_shift_qihi_constant): Declare.
19262 * config/i386/sse.md (<shift_insn><mode>3): Optimize shift
19263 V*QImode by constant.
19264
19265 2020-06-16 Aldy Hernandez <aldyh@redhat.com>
19266
19267 PR tree-optimization/95649
19268 * tree-ssa-propagate.c (propagate_into_phi_args): Do not propagate unless
19269 value is a constant.
19270
19271 2020-06-16 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
19272
19273 * config.in: Regenerate.
19274 * config/s390/s390.c (print_operand): Emit vector alignment hints
19275 for target z13, if AS accepts them. For other targets the logic
19276 stays the same.
19277 * config/s390/s390.h (TARGET_VECTOR_LOADSTORE_ALIGNMENT_HINTS): Define
19278 macro.
19279 * configure: Regenerate.
19280 * configure.ac: Check HAVE_AS_VECTOR_LOADSTORE_ALIGNMENT_HINTS_ON_Z13.
19281
19282 2020-06-16 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
19283
19284 * config/arm/arm_mve.h (__arm_vaddq_m_n_s8): Correct the intrinsic
19285 arguments.
19286 (__arm_vaddq_m_n_s32): Likewise.
19287 (__arm_vaddq_m_n_s16): Likewise.
19288 (__arm_vaddq_m_n_u8): Likewise.
19289 (__arm_vaddq_m_n_u32): Likewise.
19290 (__arm_vaddq_m_n_u16): Likewise.
19291 (__arm_vaddq_m): Modify polymorphic variant.
19292
19293 2020-06-16 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
19294
19295 * config/arm/mve.md (mve_uqrshll_sat<supf>_di): Correct the predicate
19296 and constraint of all the operands.
19297 (mve_sqrshrl_sat<supf>_di): Likewise.
19298 (mve_uqrshl_si): Likewise.
19299 (mve_sqrshr_si): Likewise.
19300 (mve_uqshll_di): Likewise.
19301 (mve_urshrl_di): Likewise.
19302 (mve_uqshl_si): Likewise.
19303 (mve_urshr_si): Likewise.
19304 (mve_sqshl_si): Likewise.
19305 (mve_srshr_si): Likewise.
19306 (mve_srshrl_di): Likewise.
19307 (mve_sqshll_di): Likewise.
19308 * config/arm/predicates.md (arm_low_register_operand): Define.
19309
19310 2020-06-16 Jakub Jelinek <jakub@redhat.com>
19311
19312 * tree.h (OMP_FOR_NON_RECTANGULAR): Define.
19313 * gimplify.c (gimplify_omp_for): Diagnose schedule, ordered
19314 or dist_schedule clause on non-rectangular loops. Handle
19315 gimplification of non-rectangular lb/b expressions. When changing
19316 iteration variable, adjust also non-rectangular lb/b expressions
19317 referencing that.
19318 * omp-general.h (struct omp_for_data_loop): Add m1, m2 and outer
19319 members.
19320 (struct omp_for_data): Add non_rect member.
19321 * omp-general.c (omp_extract_for_data): Handle non-rectangular
19322 loops. Fill in non_rect, m1, m2 and outer.
19323 * omp-low.c (lower_omp_for): Handle non-rectangular lb/b expressions.
19324 * omp-expand.c (expand_omp_for): Emit sorry_at for unsupported
19325 non-rectangular loop cases and assert for cases that can't be
19326 non-rectangular.
19327 * tree-pretty-print.c (dump_mem_ref): Formatting fix.
19328 (dump_omp_loop_non_rect_expr): New function.
19329 (dump_generic_node): Handle non-rectangular OpenMP loops.
19330 * tree-pretty-print.h (dump_omp_loop_non_rect_expr): Declare.
19331 * gimple-pretty-print.c (dump_gimple_omp_for): Handle non-rectangular
19332 OpenMP loops.
19333
19334 2020-06-16 Richard Biener <rguenther@suse.de>
19335
19336 PR middle-end/95690
19337 * varasm.c (build_constant_desc): Remove set_mem_attributes call.
19338
19339 2020-06-16 Kito Cheng <kito.cheng@sifive.com>
19340
19341 PR target/95683
19342 * config/riscv/riscv.c (riscv_gpr_save_operation_p): Remove
19343 assertion and turn it into a early exit check.
19344
19345 2020-06-15 Eric Botcazou <ebotcazou@adacore.com>
19346
19347 * gimplify.c (gimplify_init_constructor) <AGGREGATE_TYPE>: Declare
19348 new ENSURE_SINGLE_ACCESS constant and move variables down. If it is
19349 true and all elements are zero, then always clear. Return GS_ERROR
19350 if a temporary would be created for it and NOTIFY_TEMP_CREATION set.
19351 (gimplify_modify_expr_rhs) <VAR_DECL>: If the target is volatile but
19352 the type is aggregate non-addressable, ask gimplify_init_constructor
19353 whether it can generate a single access to the target.
19354
19355 2020-06-15 Eric Botcazou <ebotcazou@adacore.com>
19356
19357 * tree-sra.c (propagate_subaccesses_from_rhs): When a non-scalar
19358 access on the LHS is replaced with a scalar access, propagate the
19359 TYPE_REVERSE_STORAGE_ORDER flag of the type of the original access.
19360
19361 2020-06-15 Max Filippov <jcmvbkbc@gmail.com>
19362
19363 * config/xtensa/xtensa.c (TARGET_HAVE_TLS): Remove
19364 TARGET_THREADPTR reference.
19365 (xtensa_tls_symbol_p, xtensa_tls_referenced_p): Use
19366 targetm.have_tls instead of TARGET_HAVE_TLS.
19367 (xtensa_option_override): Set targetm.have_tls to false in
19368 configurations without THREADPTR.
19369
19370 2020-06-15 Max Filippov <jcmvbkbc@gmail.com>
19371
19372 * config/xtensa/elf.h (ASM_SPEC, LINK_SPEC): Pass ABI switch to
19373 assembler/linker.
19374 * config/xtensa/linux.h (ASM_SPEC, LINK_SPEC): Ditto.
19375 * config/xtensa/uclinux.h (ASM_SPEC, LINK_SPEC): Ditto.
19376 * config/xtensa/xtensa.c (xtensa_option_override): Initialize
19377 xtensa_windowed_abi if needed.
19378 * config/xtensa/xtensa.h (TARGET_WINDOWED_ABI_DEFAULT): New
19379 macro.
19380 (TARGET_WINDOWED_ABI): Redefine to xtensa_windowed_abi.
19381 * config/xtensa/xtensa.opt (xtensa_windowed_abi): New target
19382 option variable.
19383 (mabi=call0, mabi=windowed): New options.
19384 * doc/invoke.texi: Document new -mabi= Xtensa-specific options.
19385
19386 2020-06-15 Max Filippov <jcmvbkbc@gmail.com>
19387
19388 * config/xtensa/xtensa.c (xtensa_can_eliminate): New function.
19389 (TARGET_CAN_ELIMINATE): New macro.
19390 * config/xtensa/xtensa.h
19391 (XTENSA_WINDOWED_HARD_FRAME_POINTER_REGNUM)
19392 (XTENSA_CALL0_HARD_FRAME_POINTER_REGNUM): New macros.
19393 (HARD_FRAME_POINTER_REGNUM): Define using
19394 XTENSA_*_HARD_FRAME_POINTER_REGNUM.
19395 (ELIMINABLE_REGS): Replace lines with HARD_FRAME_POINTER_REGNUM
19396 by lines with XTENSA_WINDOWED_HARD_FRAME_POINTER_REGNUM and
19397 XTENSA_CALL0_HARD_FRAME_POINTER_REGNUM.
19398
19399 2020-06-15 Felix Yang <felix.yang@huawei.com>
19400
19401 * tree-vect-data-refs.c (vect_verify_datarefs_alignment): Rename
19402 parameter to loop_vinfo and update uses. Use LOOP_VINFO_DATAREFS
19403 when possible.
19404 (vect_analyze_data_refs_alignment): Likewise, and use LOOP_VINFO_DDRS
19405 when possible.
19406 * tree-vect-loop.c (vect_dissolve_slp_only_groups): Use
19407 LOOP_VINFO_DATAREFS when possible.
19408 (update_epilogue_loop_vinfo): Likewise.
19409
19410 2020-06-15 Kito Cheng <kito.cheng@sifive.com>
19411
19412 * config/riscv/riscv.c (riscv_gen_gpr_save_insn): Change type to
19413 unsigned for i.
19414 (riscv_gpr_save_operation_p): Change type to unsigned for i and
19415 len.
19416
19417 2020-06-15 Hongtao Liu <hongtao.liu@intel.com>
19418
19419 PR target/95488
19420 * config/i386/i386-expand.c (ix86_expand_vecmul_qihi): New
19421 function.
19422 * config/i386/i386-protos.h (ix86_expand_vecmul_qihi): Declare.
19423 * config/i386/sse.md (mul<mode>3): Drop mask_name since
19424 there's no real simd int8 multiplication instruction with
19425 mask. Also optimize it under TARGET_AVX512BW.
19426 (mulv8qi3): New expander.
19427
19428 2020-06-12 Marco Elver <elver@google.com>
19429
19430 * gimplify.c (gimplify_function_tree): Optimize and do not emit
19431 IFN_TSAN_FUNC_EXIT in a finally block if we do not need it.
19432 * params.opt: Add --param=tsan-instrument-func-entry-exit=.
19433 * tsan.c (instrument_memory_accesses): Make
19434 fentry_exit_instrument bool depend on new param.
19435
19436 2020-06-12 Felix Yang <felix.yang@huawei.com>
19437
19438 PR tree-optimization/95570
19439 * tree-vect-data-refs.c (vect_relevant_for_alignment_p): New function.
19440 (vect_verify_datarefs_alignment): Call it to filter out data references
19441 in the loop whose alignment is irrelevant.
19442 (vect_get_peeling_costs_all_drs): Likewise.
19443 (vect_peeling_supportable): Likewise.
19444 (vect_enhance_data_refs_alignment): Likewise.
19445
19446 2020-06-12 Richard Biener <rguenther@suse.de>
19447
19448 PR tree-optimization/95633
19449 * tree-vect-stmts.c (vectorizable_condition): Properly
19450 guard the vec_else_clause access with EXTRACT_LAST_REDUCTION.
19451
19452 2020-06-12 Martin Liška <mliska@suse.cz>
19453
19454 * cgraphunit.c (process_symver_attribute): Wrap weakref keyword.
19455 * dbgcnt.c (dbg_cnt_set_limit_by_index): Do not print extra new
19456 line.
19457 * lto-wrapper.c (merge_and_complain): Wrap option names.
19458
19459 2020-06-12 Kewen Lin <linkw@gcc.gnu.org>
19460
19461 * tree-vect-loop-manip.c (vect_set_loop_controls_directly): Rename
19462 LOOP_VINFO_MASK_COMPARE_TYPE to LOOP_VINFO_RGROUP_COMPARE_TYPE. Rename
19463 LOOP_VINFO_MASK_IV_TYPE to LOOP_VINFO_RGROUP_IV_TYPE.
19464 (vect_set_loop_condition_masked): Renamed to ...
19465 (vect_set_loop_condition_partial_vectors): ... this. Rename
19466 LOOP_VINFO_MASK_COMPARE_TYPE to LOOP_VINFO_RGROUP_COMPARE_TYPE. Rename
19467 vect_iv_limit_for_full_masking to vect_iv_limit_for_partial_vectors.
19468 (vect_set_loop_condition_unmasked): Renamed to ...
19469 (vect_set_loop_condition_normal): ... this.
19470 (vect_set_loop_condition): Rename vect_set_loop_condition_unmasked to
19471 vect_set_loop_condition_normal. Rename vect_set_loop_condition_masked
19472 to vect_set_loop_condition_partial_vectors.
19473 (vect_prepare_for_masked_peels): Rename LOOP_VINFO_MASK_COMPARE_TYPE
19474 to LOOP_VINFO_RGROUP_COMPARE_TYPE.
19475 * tree-vect-loop.c (vect_known_niters_smaller_than_vf): New, factored
19476 out from ...
19477 (vect_analyze_loop_costing): ... this.
19478 (_loop_vec_info::_loop_vec_info): Rename mask_compare_type to
19479 compare_type.
19480 (vect_min_prec_for_max_niters): New, factored out from ...
19481 (vect_verify_full_masking): ... this. Rename
19482 vect_iv_limit_for_full_masking to vect_iv_limit_for_partial_vectors.
19483 Rename LOOP_VINFO_MASK_COMPARE_TYPE to LOOP_VINFO_RGROUP_COMPARE_TYPE.
19484 Rename LOOP_VINFO_MASK_IV_TYPE to LOOP_VINFO_RGROUP_IV_TYPE.
19485 (vectorizable_reduction): Update some dumpings with partial
19486 vectors instead of fully-masked.
19487 (vectorizable_live_operation): Likewise.
19488 (vect_iv_limit_for_full_masking): Renamed to ...
19489 (vect_iv_limit_for_partial_vectors): ... this.
19490 * tree-vect-stmts.c (check_load_store_masking): Renamed to ...
19491 (check_load_store_for_partial_vectors): ... this. Update some
19492 dumpings with partial vectors instead of fully-masked.
19493 (vectorizable_store): Rename check_load_store_masking to
19494 check_load_store_for_partial_vectors.
19495 (vectorizable_load): Likewise.
19496 * tree-vectorizer.h (LOOP_VINFO_MASK_COMPARE_TYPE): Renamed to ...
19497 (LOOP_VINFO_RGROUP_COMPARE_TYPE): ... this.
19498 (LOOP_VINFO_MASK_IV_TYPE): Renamed to ...
19499 (LOOP_VINFO_RGROUP_IV_TYPE): ... this.
19500 (vect_iv_limit_for_full_masking): Renamed to ...
19501 (vect_iv_limit_for_partial_vectors): this.
19502 (_loop_vec_info): Rename mask_compare_type to rgroup_compare_type.
19503 Rename iv_type to rgroup_iv_type.
19504
19505 2020-06-12 Richard Sandiford <richard.sandiford@arm.com>
19506
19507 * recog.h (insn_gen_fn::f0, insn_gen_fn::f1, insn_gen_fn::f2)
19508 (insn_gen_fn::f3, insn_gen_fn::f4, insn_gen_fn::f5, insn_gen_fn::f6)
19509 (insn_gen_fn::f7, insn_gen_fn::f8, insn_gen_fn::f9, insn_gen_fn::f10)
19510 (insn_gen_fn::f11, insn_gen_fn::f12, insn_gen_fn::f13)
19511 (insn_gen_fn::f14, insn_gen_fn::f15, insn_gen_fn::f16): Delete.
19512 (insn_gen_fn::operator()): Replace overloaded definitions with
19513 a parameter-pack version.
19514
19515 2020-06-12 H.J. Lu <hjl.tools@gmail.com>
19516
19517 PR target/93492
19518 * config/i386/i386-features.c (rest_of_insert_endbranch):
19519 Renamed to ...
19520 (rest_of_insert_endbr_and_patchable_area): Change return type
19521 to void. Add need_endbr and patchable_area_size arguments.
19522 Don't call timevar_push nor timevar_pop. Replace
19523 endbr_queued_at_entrance with insn_queued_at_entrance. Insert
19524 UNSPECV_PATCHABLE_AREA for patchable area.
19525 (pass_data_insert_endbranch): Renamed to ...
19526 (pass_data_insert_endbr_and_patchable_area): This. Change
19527 pass name to endbr_and_patchable_area.
19528 (pass_insert_endbranch): Renamed to ...
19529 (pass_insert_endbr_and_patchable_area): This. Add need_endbr
19530 and patchable_area_size;.
19531 (pass_insert_endbr_and_patchable_area::gate): Set and check
19532 need_endbr and patchable_area_size.
19533 (pass_insert_endbr_and_patchable_area::execute): Call
19534 timevar_push and timevar_pop. Pass need_endbr and
19535 patchable_area_size to rest_of_insert_endbr_and_patchable_area.
19536 (make_pass_insert_endbranch): Renamed to ...
19537 (make_pass_insert_endbr_and_patchable_area): This.
19538 * config/i386/i386-passes.def: Replace pass_insert_endbranch
19539 with pass_insert_endbr_and_patchable_area.
19540 * config/i386/i386-protos.h (ix86_output_patchable_area): New.
19541 (make_pass_insert_endbranch): Renamed to ...
19542 (make_pass_insert_endbr_and_patchable_area): This.
19543 * config/i386/i386.c (ix86_asm_output_function_label): Set
19544 function_label_emitted to true.
19545 (ix86_print_patchable_function_entry): New function.
19546 (ix86_output_patchable_area): Likewise.
19547 (x86_function_profiler): Replace endbr_queued_at_entrance with
19548 insn_queued_at_entrance. Generate ENDBR only for TYPE_ENDBR.
19549 Call ix86_output_patchable_area to generate patchable area if
19550 needed.
19551 (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY): New.
19552 * config/i386/i386.h (queued_insn_type): New.
19553 (machine_function): Add function_label_emitted. Replace
19554 endbr_queued_at_entrance with insn_queued_at_entrance.
19555 * config/i386/i386.md (UNSPECV_PATCHABLE_AREA): New.
19556 (patchable_area): New.
19557
19558 2020-06-11 Martin Liska <mliska@suse.cz>
19559
19560 * config/rs6000/rs6000.c (rs6000_density_test): Fix GNU coding
19561 style.
19562
19563 2020-06-11 Martin Liska <mliska@suse.cz>
19564
19565 PR target/95627
19566 * config/rs6000/rs6000.c (rs6000_density_test): Skip debug
19567 statements.
19568
19569 2020-06-11 Martin Liska <mliska@suse.cz>
19570 Jakub Jelinek <jakub@redhat.com>
19571
19572 PR sanitizer/95634
19573 * asan.c (asan_emit_stack_protection): Fix emission for ilp32
19574 by using Pmode instead of ptr_mode.
19575
19576 2020-06-11 Kewen Lin <linkw@gcc.gnu.org>
19577
19578 * tree-vect-loop-manip.c (vect_set_loop_mask): Renamed to ...
19579 (vect_set_loop_control): ... this.
19580 (vect_maybe_permute_loop_masks): Rename rgroup_masks related things.
19581 (vect_set_loop_masks_directly): Renamed to ...
19582 (vect_set_loop_controls_directly): ... this. Also rename some
19583 variables with ctrl instead of mask. Rename vect_set_loop_mask to
19584 vect_set_loop_control.
19585 (vect_set_loop_condition_masked): Rename rgroup_masks related things.
19586 Also rename some variables with ctrl instead of mask.
19587 * tree-vect-loop.c (release_vec_loop_masks): Renamed to ...
19588 (release_vec_loop_controls): ... this. Rename rgroup_masks related
19589 things.
19590 (_loop_vec_info::~_loop_vec_info): Rename release_vec_loop_masks to
19591 release_vec_loop_controls.
19592 (can_produce_all_loop_masks_p): Rename rgroup_masks related things.
19593 (vect_get_max_nscalars_per_iter): Likewise.
19594 (vect_estimate_min_profitable_iters): Likewise.
19595 (vect_record_loop_mask): Likewise.
19596 (vect_get_loop_mask): Likewise.
19597 * tree-vectorizer.h (struct rgroup_masks): Renamed to ...
19598 (struct rgroup_controls): ... this. Also rename mask_type
19599 to type and rename masks to controls.
19600
19601 2020-06-11 Kewen Lin <linkw@gcc.gnu.org>
19602
19603 * tree-vect-loop-manip.c (vect_set_loop_condition): Rename
19604 LOOP_VINFO_FULLY_MASKED_P to LOOP_VINFO_USING_PARTIAL_VECTORS_P.
19605 (vect_gen_vector_loop_niters): Likewise.
19606 (vect_do_peeling): Likewise.
19607 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Rename
19608 fully_masked_p to using_partial_vectors_p.
19609 (vect_analyze_loop_costing): Rename LOOP_VINFO_FULLY_MASKED_P to
19610 LOOP_VINFO_USING_PARTIAL_VECTORS_P.
19611 (determine_peel_for_niter): Likewise.
19612 (vect_estimate_min_profitable_iters): Likewise.
19613 (vect_transform_loop): Likewise.
19614 * tree-vectorizer.h (LOOP_VINFO_FULLY_MASKED_P): Updated.
19615 (LOOP_VINFO_USING_PARTIAL_VECTORS_P): New macro.
19616
19617 2020-06-11 Kewen Lin <linkw@gcc.gnu.org>
19618
19619 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Rename
19620 can_fully_mask_p to can_use_partial_vectors_p.
19621 (vect_analyze_loop_2): Rename LOOP_VINFO_CAN_FULLY_MASK_P to
19622 LOOP_VINFO_CAN_USE_PARTIAL_VECTORS_P. Rename saved_can_fully_mask_p
19623 to saved_can_use_partial_vectors_p.
19624 (vectorizable_reduction): Rename LOOP_VINFO_CAN_FULLY_MASK_P to
19625 LOOP_VINFO_CAN_USE_PARTIAL_VECTORS_P.
19626 (vectorizable_live_operation): Likewise.
19627 * tree-vect-stmts.c (permute_vec_elements): Likewise.
19628 (check_load_store_masking): Likewise.
19629 (vectorizable_operation): Likewise.
19630 (vectorizable_store): Likewise.
19631 (vectorizable_load): Likewise.
19632 (vectorizable_condition): Likewise.
19633 * tree-vectorizer.h (LOOP_VINFO_CAN_FULLY_MASK_P): Renamed to ...
19634 (LOOP_VINFO_CAN_USE_PARTIAL_VECTORS_P): ... this.
19635 (_loop_vec_info): Rename can_fully_mask_p to can_use_partial_vectors_p.
19636
19637 2020-06-11 Martin Liska <mliska@suse.cz>
19638
19639 * optc-save-gen.awk: Quote error string.
19640
19641 2020-06-11 Alexandre Oliva <oliva@adacore.com>
19642
19643 * print-rtl.c (print_mem_expr): Enable TDF_SLIM in dump_flags.
19644
19645 2020-06-11 Kito Cheng <kito.cheng@sifive.com>
19646
19647 * config/riscv/riscv-protos.h (riscv_output_gpr_save): Remove.
19648 * config/riscv/riscv-sr.c (riscv_sr_match_prologue): Update
19649 value.
19650 * config/riscv/riscv.c (riscv_output_gpr_save): Remove.
19651 * config/riscv/riscv.md (gpr_save): Update output asm pattern.
19652
19653 2020-06-11 Kito Cheng <kito.cheng@sifive.com>
19654
19655 * config/riscv/predicates.md (gpr_save_operation): New.
19656 * config/riscv/riscv-protos.h (riscv_gen_gpr_save_insn): New.
19657 (riscv_gpr_save_operation_p): Ditto.
19658 * config/riscv/riscv-sr.c (riscv_remove_unneeded_save_restore_calls):
19659 Ignore USEs for gpr_save patter.
19660 * config/riscv/riscv.c (gpr_save_reg_order): New.
19661 (riscv_expand_prologue): Use riscv_gen_gpr_save_insn to gen gpr_save.
19662 (riscv_gen_gpr_save_insn): New.
19663 (riscv_gpr_save_operation_p): Ditto.
19664 * config/riscv/riscv.md (S3_REGNUM): New.
19665 (S4_REGNUM): Ditto.
19666 (S5_REGNUM): Ditto.
19667 (S6_REGNUM): Ditto.
19668 (S7_REGNUM): Ditto.
19669 (S8_REGNUM): Ditto.
19670 (S9_REGNUM): Ditto.
19671 (S10_REGNUM): Ditto.
19672 (S11_REGNUM): Ditto.
19673 (gpr_save): Model USEs correctly.
19674
19675 2020-06-10 Martin Sebor <msebor@redhat.com>
19676
19677 PR middle-end/95353
19678 PR middle-end/92939
19679 * builtins.c (inform_access): New function.
19680 (check_access): Call it. Add argument.
19681 (addr_decl_size): Remove.
19682 (get_range): New function.
19683 (compute_objsize): New overload. Only use compute_builtin_object_size
19684 with raw memory function.
19685 (check_memop_access): Pass new argument to compute_objsize and
19686 check_access.
19687 (expand_builtin_memchr, expand_builtin_strcat): Same.
19688 (expand_builtin_strcpy, expand_builtin_stpcpy_1): Same.
19689 (expand_builtin_stpncpy, check_strncat_sizes): Same.
19690 (expand_builtin_strncat, expand_builtin_strncpy): Same.
19691 (expand_builtin_memcmp): Same.
19692 * builtins.h (check_nul_terminated_array): Declare extern.
19693 (check_access): Add argument.
19694 (struct access_ref, struct access_data): New structs.
19695 * gimple-ssa-warn-restrict.c (clamp_offset): New helper.
19696 (builtin_access::overlap): Call it.
19697 * tree-object-size.c (decl_init_size): Declare extern.
19698 (addr_object_size): Correct offset computation.
19699 * tree-object-size.h (decl_init_size): Declare.
19700 * tree-ssa-strlen.c (handle_integral_assign): Remove a call
19701 to maybe_warn_overflow when assigning to an SSA_NAME.
19702
19703 2020-06-10 Richard Biener <rguenther@suse.de>
19704
19705 * tree-vect-loop.c (vect_determine_vectorization_factor):
19706 Skip debug stmts.
19707 (_loop_vec_info::_loop_vec_info): Likewise.
19708 (vect_update_vf_for_slp): Likewise.
19709 (vect_analyze_loop_operations): Likewise.
19710 (update_epilogue_loop_vinfo): Likewise.
19711 * tree-vect-patterns.c (vect_determine_precisions): Likewise.
19712 (vect_pattern_recog): Likewise.
19713 * tree-vect-slp.c (vect_detect_hybrid_slp): Likewise.
19714 (_bb_vec_info::_bb_vec_info): Likewise.
19715 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized):
19716 Likewise.
19717
19718 2020-06-10 Richard Biener <rguenther@suse.de>
19719
19720 PR tree-optimization/95576
19721 * tree-vect-slp.c (vect_slp_bb): Skip leading debug stmts.
19722
19723 2020-06-10 Haijian Zhang <z.zhanghaijian@huawei.com>
19724
19725 PR target/95523
19726 * config/aarch64/aarch64-sve-builtins.h
19727 (sve_switcher::m_old_maximum_field_alignment): New member.
19728 * config/aarch64/aarch64-sve-builtins.cc
19729 (sve_switcher::sve_switcher): Save maximum_field_alignment in
19730 m_old_maximum_field_alignment and clear maximum_field_alignment.
19731 (sve_switcher::~sve_switcher): Restore maximum_field_alignment.
19732
19733 2020-06-10 Richard Biener <rguenther@suse.de>
19734
19735 * tree-vectorizer.h (_slp_tree::vec_stmts): Make it a vector
19736 of gimple * stmts.
19737 (_stmt_vec_info::vec_stmts): Likewise.
19738 (vec_info::stmt_vec_info_ro): New flag.
19739 (vect_finish_replace_stmt): Adjust declaration.
19740 (vect_finish_stmt_generation): Likewise.
19741 (vectorizable_induction): Likewise.
19742 (vect_transform_reduction): Likewise.
19743 (vectorizable_lc_phi): Likewise.
19744 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Do not
19745 allocate stmt infos for increments.
19746 (vect_record_grouped_load_vectors): Adjust.
19747 * tree-vect-loop.c (vect_create_epilog_for_reduction): Likewise.
19748 (vectorize_fold_left_reduction): Likewise.
19749 (vect_transform_reduction): Likewise.
19750 (vect_transform_cycle_phi): Likewise.
19751 (vectorizable_lc_phi): Likewise.
19752 (vectorizable_induction): Likewise.
19753 (vectorizable_live_operation): Likewise.
19754 (vect_transform_loop): Likewise.
19755 * tree-vect-patterns.c (vect_pattern_recog): Set stmt_vec_info_ro.
19756 * tree-vect-slp.c (vect_get_slp_vect_def): Adjust.
19757 (vect_get_slp_defs): Likewise.
19758 (vect_transform_slp_perm_load): Likewise.
19759 (vect_schedule_slp_instance): Likewise.
19760 (vectorize_slp_instance_root_stmt): Likewise.
19761 * tree-vect-stmts.c (vect_get_vec_defs_for_operand): Likewise.
19762 (vect_finish_stmt_generation_1): Do not allocate a stmt info.
19763 (vect_finish_replace_stmt): Do not return anything.
19764 (vect_finish_stmt_generation): Likewise.
19765 (vect_build_gather_load_calls): Adjust.
19766 (vectorizable_bswap): Likewise.
19767 (vectorizable_call): Likewise.
19768 (vectorizable_simd_clone_call): Likewise.
19769 (vect_create_vectorized_demotion_stmts): Likewise.
19770 (vectorizable_conversion): Likewise.
19771 (vectorizable_assignment): Likewise.
19772 (vectorizable_shift): Likewise.
19773 (vectorizable_operation): Likewise.
19774 (vectorizable_scan_store): Likewise.
19775 (vectorizable_store): Likewise.
19776 (vectorizable_load): Likewise.
19777 (vectorizable_condition): Likewise.
19778 (vectorizable_comparison): Likewise.
19779 (vect_transform_stmt): Likewise.
19780 * tree-vectorizer.c (vec_info::vec_info): Initialize
19781 stmt_vec_info_ro.
19782 (vec_info::replace_stmt): Copy over stmt UID rather than
19783 unsetting/setting a stmt info allocating a new UID.
19784 (vec_info::set_vinfo_for_stmt): Assert !stmt_vec_info_ro.
19785
19786 2020-06-10 Aldy Hernandez <aldyh@redhat.com>
19787
19788 * gimple-loop-versioning.cc (loop_versioning::name_prop::get_value):
19789 Add stmt parameter.
19790 * gimple-ssa-evrp.c (class evrp_folder): New.
19791 (class evrp_dom_walker): Remove.
19792 (execute_early_vrp): Use evrp_folder instead of evrp_dom_walker.
19793 * tree-ssa-ccp.c (ccp_folder::get_value): Add stmt parameter.
19794 * tree-ssa-copy.c (copy_folder::get_value): Same.
19795 * tree-ssa-propagate.c (substitute_and_fold_engine::replace_uses_in):
19796 Pass stmt to get_value.
19797 (substitute_and_fold_engine::replace_phi_args_in): Same.
19798 (substitute_and_fold_dom_walker::after_dom_children): Call
19799 post_fold_bb.
19800 (substitute_and_fold_dom_walker::foreach_new_stmt_in_bb): New.
19801 (substitute_and_fold_dom_walker::propagate_into_phi_args): New.
19802 (substitute_and_fold_dom_walker::before_dom_children): Adjust to
19803 call virtual functions for folding, pre_folding, and post folding.
19804 Call get_value with PHI. Tweak dump.
19805 * tree-ssa-propagate.h (class substitute_and_fold_engine):
19806 New argument to get_value.
19807 New virtual function pre_fold_bb.
19808 New virtual function post_fold_bb.
19809 New virtual function pre_fold_stmt.
19810 New virtual function post_new_stmt.
19811 New function propagate_into_phi_args.
19812 * tree-vrp.c (vrp_folder::get_value): Add stmt argument.
19813 * vr-values.c (vr_values::extract_range_from_stmt): Adjust dump
19814 output.
19815 (vr_values::fold_cond): New.
19816 (vr_values::simplify_cond_using_ranges_1): Call fold_cond.
19817 * vr-values.h (class vr_values): Add
19818 simplify_cond_using_ranges_when_edge_is_known.
19819
19820 2020-06-10 Martin Liska <mliska@suse.cz>
19821
19822 PR sanitizer/94910
19823 * asan.c (asan_emit_stack_protection): Emit
19824 also **SavedFlagPtr(FakeStack, class_id) = 0 in order to release
19825 a stack frame.
19826
19827 2020-06-10 Tamar Christina <tamar.christina@arm.com>
19828
19829 * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Adjust costs for mul.
19830
19831 2020-06-10 Richard Biener <rguenther@suse.de>
19832
19833 * tree-vect-data-refs.c (vect_vfa_access_size): Adjust.
19834 (vect_record_grouped_load_vectors): Likewise.
19835 * tree-vect-loop.c (vect_create_epilog_for_reduction): Likewise.
19836 (vectorize_fold_left_reduction): Likewise.
19837 (vect_transform_reduction): Likewise.
19838 (vect_transform_cycle_phi): Likewise.
19839 (vectorizable_lc_phi): Likewise.
19840 (vectorizable_induction): Likewise.
19841 (vectorizable_live_operation): Likewise.
19842 (vect_transform_loop): Likewise.
19843 * tree-vect-slp.c (vect_get_slp_defs): New function, split out
19844 from overload.
19845 * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): Remove.
19846 (vect_get_vec_def_for_operand): Likewise.
19847 (vect_get_vec_def_for_stmt_copy): Likewise.
19848 (vect_get_vec_defs_for_stmt_copy): Likewise.
19849 (vect_get_vec_defs_for_operand): New function.
19850 (vect_get_vec_defs): Likewise.
19851 (vect_build_gather_load_calls): Adjust.
19852 (vect_get_gather_scatter_ops): Likewise.
19853 (vectorizable_bswap): Likewise.
19854 (vectorizable_call): Likewise.
19855 (vectorizable_simd_clone_call): Likewise.
19856 (vect_get_loop_based_defs): Remove.
19857 (vect_create_vectorized_demotion_stmts): Adjust.
19858 (vectorizable_conversion): Likewise.
19859 (vectorizable_assignment): Likewise.
19860 (vectorizable_shift): Likewise.
19861 (vectorizable_operation): Likewise.
19862 (vectorizable_scan_store): Likewise.
19863 (vectorizable_store): Likewise.
19864 (vectorizable_load): Likewise.
19865 (vectorizable_condition): Likewise.
19866 (vectorizable_comparison): Likewise.
19867 (vect_transform_stmt): Adjust and remove no longer applicable
19868 sanity checks.
19869 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize
19870 STMT_VINFO_VEC_STMTS.
19871 (vec_info::free_stmt_vec_info): Relase it.
19872 * tree-vectorizer.h (_stmt_vec_info::vectorized_stmt): Remove.
19873 (_stmt_vec_info::vec_stmts): Add.
19874 (STMT_VINFO_VEC_STMT): Remove.
19875 (STMT_VINFO_VEC_STMTS): New.
19876 (vect_get_vec_def_for_operand_1): Remove.
19877 (vect_get_vec_def_for_operand): Likewise.
19878 (vect_get_vec_defs_for_stmt_copy): Likewise.
19879 (vect_get_vec_def_for_stmt_copy): Likewise.
19880 (vect_get_vec_defs): New overloads.
19881 (vect_get_vec_defs_for_operand): New.
19882 (vect_get_slp_defs): Declare.
19883
19884 2020-06-10 Qian Chao <qianchao9@huawei.com>
19885
19886 PR tree-optimization/95569
19887 * trans-mem.c (expand_assign_tm): Ensure that rtmp is marked TREE_ADDRESSABLE.
19888
19889 2020-06-10 Martin Liska <mliska@suse.cz>
19890
19891 PR tree-optimization/92860
19892 * optc-save-gen.awk: Generate new function cl_optimization_compare.
19893 * opth-gen.awk: Generate declaration of the function.
19894
19895 2020-06-09 Michael Meissner <meissner@linux.ibm.com>
19896
19897 * config/rs6000/ppc-auxv.h (PPC_PLATFORM_FUTURE): Allocate
19898 'future' PowerPC platform.
19899 (PPC_FEATURE2_ARCH_3_1): New HWCAP2 bit for ISA 3.1.
19900 (PPC_FEATURE2_MMA): New HWCAP2 bit for MMA.
19901 * config/rs6000/rs6000-call.c (cpu_supports_info): Add ISA 3.1 and
19902 MMA HWCAP2 bits.
19903 * config/rs6000/rs6000.c (CLONE_ISA_3_1): New clone support.
19904 (rs6000_clone_map): Add 'future' system target_clones support.
19905
19906 2020-06-09 Michael Kuhn <gcc@ikkoku.de>
19907
19908 * Makefile.in (ZSTD_INC): Define.
19909 (ZSTD_LIB): Include ZSTD_LDFLAGS.
19910 (CFLAGS-lto-compress.o): Add ZSTD_INC.
19911 * configure.ac (ZSTD_CPPFLAGS, ZSTD_LDFLAGS): New variables for
19912 AC_SUBST.
19913 * configure: Rebuilt.
19914
19915 2020-06-09 Jason Merrill <jason@redhat.com>
19916
19917 PR c++/95552
19918 * tree.c (walk_tree_1): Call func on the TYPE_DECL of a DECL_EXPR.
19919
19920 2020-06-09 Marco Elver <elver@google.com>
19921
19922 * params.opt: Define --param=tsan-distinguish-volatile=[0,1].
19923 * sanitizer.def (BUILT_IN_TSAN_VOLATILE_READ1): Define new
19924 builtin for volatile instrumentation of reads/writes.
19925 (BUILT_IN_TSAN_VOLATILE_READ2): Likewise.
19926 (BUILT_IN_TSAN_VOLATILE_READ4): Likewise.
19927 (BUILT_IN_TSAN_VOLATILE_READ8): Likewise.
19928 (BUILT_IN_TSAN_VOLATILE_READ16): Likewise.
19929 (BUILT_IN_TSAN_VOLATILE_WRITE1): Likewise.
19930 (BUILT_IN_TSAN_VOLATILE_WRITE2): Likewise.
19931 (BUILT_IN_TSAN_VOLATILE_WRITE4): Likewise.
19932 (BUILT_IN_TSAN_VOLATILE_WRITE8): Likewise.
19933 (BUILT_IN_TSAN_VOLATILE_WRITE16): Likewise.
19934 * tsan.c (get_memory_access_decl): Argument if access is
19935 volatile. If param tsan-distinguish-volatile is non-zero, and
19936 access if volatile, return volatile instrumentation decl.
19937 (instrument_expr): Check if access is volatile.
19938
19939 2020-06-09 Richard Biener <rguenther@suse.de>
19940
19941 * tree-vect-loop.c (vectorizable_induction): Remove dead code.
19942
19943 2020-06-09 Tobias Burnus <tobias@codesourcery.com>
19944
19945 * omp-offload.c (add_decls_addresses_to_decl_constructor,
19946 omp_finish_file): With in_lto_p, stream out all offload-table
19947 items even if the symtab_node does not exist.
19948
19949 2020-06-09 Richard Biener <rguenther@suse.de>
19950
19951 * tree-vect-stmts.c (vect_transform_stmt): Remove dead code.
19952
19953 2020-06-09 Martin Liska <mliska@suse.cz>
19954
19955 * gcov-dump.c (print_usage): Fix spacing for --raw option
19956 in --help.
19957
19958 2020-06-09 Martin Liska <mliska@suse.cz>
19959
19960 * cif-code.def (ATTRIBUTE_MISMATCH): Rename to...
19961 (SANITIZE_ATTRIBUTE_MISMATCH): ...this.
19962 * ipa-inline.c (sanitize_attrs_match_for_inline_p):
19963 Handle all sanitizer options.
19964 (can_inline_edge_p): Use renamed CIF_* enum value.
19965
19966 2020-06-09 Joe Ramsay <joe.ramsay@arm.com>
19967
19968 * config/aarch64/aarch64-sve.md (<optab><mode>2): Add support for
19969 unpacked vectors.
19970 (@aarch64_pred_<optab><mode>): Add support for unpacked vectors.
19971 (@aarch64_bic<mode>): Enable unpacked BIC.
19972 (*bic<mode>3): Enable unpacked BIC.
19973
19974 2020-06-09 Martin Liska <mliska@suse.cz>
19975
19976 PR gcov-profile/95365
19977 * doc/gcov.texi: Compile and link one example in 2 steps.
19978
19979 2020-06-09 Jakub Jelinek <jakub@redhat.com>
19980
19981 PR tree-optimization/95527
19982 * match.pd (__builtin_ffs (X) cmp CST): New optimizations.
19983
19984 2020-06-09 Michael Meissner <meissner@linux.ibm.com>
19985
19986 * config/rs6000/ppc-auxv.h (PPC_PLATFORM_FUTURE): Allocate
19987 'future' PowerPC platform.
19988 (PPC_FEATURE2_ARCH_3_1): New HWCAP2 bit for ISA 3.1.
19989 (PPC_FEATURE2_MMA): New HWCAP2 bit for MMA.
19990 * config/rs6000/rs6000-call.c (cpu_supports_info): Add ISA 3.1 and
19991 MMA HWCAP2 bits.
19992 * config/rs6000/rs6000.c (CLONE_ISA_3_1): New clone support.
19993 (rs6000_clone_map): Add 'future' system target_clones support.
19994
19995 2020-06-08 Tobias Burnus <tobias@codesourcery.com>
19996
19997 PR lto/94848
19998 PR middle-end/95551
19999 * omp-offload.c (add_decls_addresses_to_decl_constructor,
20000 omp_finish_file): Skip removed items.
20001 * lto-cgraph.c (output_offload_tables): Likewise; set force_output
20002 to this node for variables and functions.
20003
20004 2020-06-08 Jason Merrill <jason@redhat.com>
20005
20006 * aclocal.m4: Remove ax_cxx_compile_stdcxx.m4.
20007 * configure.ac: Remove AX_CXX_COMPILE_STDCXX.
20008 * configure: Regenerate.
20009
20010 2020-06-08 Martin Sebor <msebor@redhat.com>
20011
20012 * postreload.c (reload_cse_simplify_operands): Clear first array element
20013 before using it. Assert a precondition.
20014
20015 2020-06-08 Jakub Jelinek <jakub@redhat.com>
20016
20017 PR target/95528
20018 * tree-ssa-forwprop.c (simplify_vector_constructor): Don't use
20019 VEC_UNPACK*_EXPR or VEC_PACK_TRUNC_EXPR with scalar modes unless the
20020 type is vector boolean.
20021
20022 2020-06-08 Tamar Christina <tamar.christina@arm.com>
20023
20024 * config/aarch64/aarch64.c (aarch64_layout_frame): Expand comments.
20025
20026 2020-06-08 Christophe Lyon <christophe.lyon@linaro.org>
20027
20028 * config/arm/predicates.md (vfp_register_operand): Use VFP_HI_REGS
20029 instead of VFP_REGS.
20030
20031 2020-06-08 Martin Liska <mliska@suse.cz>
20032
20033 * config/rs6000/vector.md: Replace FAIL with gcc_unreachable
20034 in all vcond* patterns.
20035
20036 2020-06-08 Christophe Lyon <christophe.lyon@linaro.org>
20037
20038 * common/config/arm/arm-common.c (INCLUDE_ALGORITHM):
20039 Define. No longer include <algorithm>.
20040
20041 2020-06-07 Roger Sayle <roger@nextmovesoftware.com>
20042
20043 * config/i386/i386.md (paritydi2, paritysi2): Expand reduction
20044 via shift and xor to an USPEC PARITY matching a parityhi2_cmp.
20045 (paritydi2_cmp, paritysi2_cmp): Delete these define_insn_and_split.
20046 (parityhi2, parityqi2): New expanders.
20047 (parityhi2_cmp): Implement set parity flag with xorb insn.
20048 (parityqi2_cmp): Implement set parity flag with testb insn.
20049 New peephole2s to use these insns (UNSPEC PARITY) when appropriate.
20050
20051 2020-06-07 Jiufu Guo <guojiufu@linux.ibm.com>
20052
20053 PR target/95018
20054 * config/rs6000/rs6000.c (rs6000_option_override_internal):
20055 Override flag_cunroll_grow_size.
20056
20057 2020-06-07 Jiufu Guo <guojiufu@linux.ibm.com>
20058
20059 * common.opt (flag_cunroll_grow_size): New flag.
20060 * toplev.c (process_options): Set flag_cunroll_grow_size.
20061 * tree-ssa-loop-ivcanon.c (pass_complete_unroll::execute):
20062 Use flag_cunroll_grow_size.
20063
20064 2020-06-06 Jan Hubicka <hubicka@ucw.cz>
20065
20066 PR lto/95548
20067 * ipa-devirt.c (struct odr_enum_val): Turn values to wide_int.
20068 (ipa_odr_summary_write): Update streaming.
20069 (ipa_odr_read_section): Update streaming.
20070
20071 2020-06-06 Alexandre Oliva <oliva@adacore.com>
20072
20073 PR driver/95456
20074 * gcc.c (do_spec_1): Don't call memcpy (_, NULL, 0).
20075
20076 2020-06-05 Thomas Schwinge <thomas@codesourcery.com>
20077 Julian Brown <julian@codesourcery.com>
20078
20079 * gimplify.c (gimplify_adjust_omp_clauses): Remove
20080 'GOMP_MAP_STRUCT' mapping from OpenACC 'exit data' directives.
20081
20082 2020-06-05 Richard Biener <rguenther@suse.de>
20083
20084 PR tree-optimization/95539
20085 * tree-vect-data-refs.c
20086 (vect_slp_analyze_and_verify_instance_alignment): Use
20087 SLP_TREE_REPRESENTATIVE for the data-ref check.
20088 * tree-vect-stmts.c (vectorizable_load): Reset stmt_info
20089 back to the first scalar stmt rather than the
20090 SLP_TREE_REPRESENTATIVE to match previous behavior.
20091
20092 2020-06-05 Felix Yang <felix.yang@huawei.com>
20093
20094 PR target/95254
20095 * expr.c (emit_move_insn): Check src and dest of the copy to see
20096 if one or both of them are subregs, try to remove the subregs when
20097 innermode and outermode are equal in size and the mode change involves
20098 an implicit round trip through memory.
20099
20100 2020-06-05 Jakub Jelinek <jakub@redhat.com>
20101
20102 PR target/95535
20103 * config/i386/i386.md (*ctzsi2_zext, *clzsi2_lzcnt_zext): New
20104 define_insn_and_split patterns.
20105 (*ctzsi2_zext_falsedep, *clzsi2_lzcnt_zext_falsedep): New
20106 define_insn patterns.
20107
20108 2020-06-05 Jonathan Wakely <jwakely@redhat.com>
20109
20110 * alloc-pool.h (object_allocator::remove_raw): New.
20111 * tree-ssa-math-opts.c (struct occurrence): Use NSMDI.
20112 (occurrence::occurrence): Add.
20113 (occurrence::~occurrence): Likewise.
20114 (occurrence::new): Likewise.
20115 (occurrence::delete): Likewise.
20116 (occ_new): Remove.
20117 (insert_bb): Use new occurence (...) instead of occ_new.
20118 (register_division_in): Likewise.
20119 (free_bb): Use delete occ instead of manually removing
20120 from the pool.
20121
20122 2020-06-05 Richard Biener <rguenther@suse.de>
20123
20124 PR middle-end/95493
20125 * cfgexpand.c (expand_debug_expr): Avoid calling
20126 set_mem_attributes_minus_bitpos when we were expanding
20127 an SSA name.
20128 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
20129 ARRAY_REF special-casing, add CONSTRUCTOR to the set of
20130 special-cases we do not want MEM_EXPRs for. Assert
20131 we end up with reasonable MEM_EXPRs.
20132
20133 2020-06-05 Lili Cui <lili.cui@intel.com>
20134
20135 PR target/95525
20136 * config/i386/i386.h (PTA_WAITPKG): Change bitmask value.
20137
20138 2020-06-04 Martin Sebor <msebor@redhat.com>
20139
20140 PR middle-end/10138
20141 PR middle-end/95136
20142 * attribs.c (init_attr_rdwr_indices): Move function here.
20143 * attribs.h (rdwr_access_hash, rdwr_map): Define.
20144 (attr_access): Add 'none'.
20145 (init_attr_rdwr_indices): Declared function.
20146 * builtins.c (warn_for_access)): New function.
20147 (check_access): Call it.
20148 * builtins.h (checK-access): Add an optional argument.
20149 * calls.c (rdwr_access_hash, rdwr_map): Move to attribs.h.
20150 (init_attr_rdwr_indices): Declare extern.
20151 (append_attrname): Handle attr_access::none.
20152 (maybe_warn_rdwr_sizes): Same.
20153 (initialize_argument_information): Update comments.
20154 * doc/extend.texi (attribute access): Document 'none'.
20155 * tree-ssa-uninit.c (struct wlimits): New.
20156 (maybe_warn_operand): New function.
20157 (maybe_warn_pass_by_reference): Same.
20158 (warn_uninitialized_vars): Refactor code into maybe_warn_operand.
20159 Also call for function calls.
20160 (pass_late_warn_uninitialized::execute): Adjust comments.
20161 (execute_early_warn_uninitialized): Same.
20162
20163 2020-06-04 Vladimir Makarov <vmakarov@redhat.com>
20164
20165 PR middle-end/95464
20166 * lra.c (lra_emit_move): Add processing STRICT_LOW_PART.
20167 * lra-constraints.c (match_reload): Use STRICT_LOW_PART in output
20168 reload if the original insn has it too.
20169
20170 2020-06-04 Richard Biener <rguenther@suse.de>
20171
20172 * config/aarch64/aarch64.c (aarch64_gimplify_va_arg_expr):
20173 Ensure that tmp_ha is marked TREE_ADDRESSABLE.
20174
20175 2020-06-04 Martin Jambor <mjambor@suse.cz>
20176
20177 PR ipa/95113
20178 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Move non-call
20179 exceptions check to...
20180 * tree-eh.c (stmt_unremovable_because_of_non_call_eh_p): ...this
20181 new function.
20182 * tree-eh.h (stmt_unremovable_because_of_non_call_eh_p): Declare it.
20183 * ipa-sra.c (isra_track_scalar_value_uses): Use it. New parameter
20184 fun.
20185
20186 2020-06-04 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
20187
20188 PR target/94735
20189 * config/arm/predicates.md (mve_scatter_memory): Define to
20190 match (mem (reg)) for scatter store memory.
20191 * config/arm/mve.md (mve_vstrbq_scatter_offset_<supf><mode>): Modify
20192 define_insn to define_expand.
20193 (mve_vstrbq_scatter_offset_p_<supf><mode>): Likewise.
20194 (mve_vstrhq_scatter_offset_<supf><mode>): Likewise.
20195 (mve_vstrhq_scatter_shifted_offset_p_<supf><mode>): Likewise.
20196 (mve_vstrhq_scatter_shifted_offset_<supf><mode>): Likewise.
20197 (mve_vstrdq_scatter_offset_p_<supf>v2di): Likewise.
20198 (mve_vstrdq_scatter_offset_<supf>v2di): Likewise.
20199 (mve_vstrdq_scatter_shifted_offset_p_<supf>v2di): Likewise.
20200 (mve_vstrdq_scatter_shifted_offset_<supf>v2di): Likewise.
20201 (mve_vstrhq_scatter_offset_fv8hf): Likewise.
20202 (mve_vstrhq_scatter_offset_p_fv8hf): Likewise.
20203 (mve_vstrhq_scatter_shifted_offset_fv8hf): Likewise.
20204 (mve_vstrhq_scatter_shifted_offset_p_fv8hf): Likewise.
20205 (mve_vstrwq_scatter_offset_fv4sf): Likewise.
20206 (mve_vstrwq_scatter_offset_p_fv4sf): Likewise.
20207 (mve_vstrwq_scatter_offset_p_<supf>v4si): Likewise.
20208 (mve_vstrwq_scatter_offset_<supf>v4si): Likewise.
20209 (mve_vstrwq_scatter_shifted_offset_fv4sf): Likewise.
20210 (mve_vstrwq_scatter_shifted_offset_p_fv4sf): Likewise.
20211 (mve_vstrwq_scatter_shifted_offset_p_<supf>v4si): Likewise.
20212 (mve_vstrwq_scatter_shifted_offset_<supf>v4si): Likewise.
20213 (mve_vstrbq_scatter_offset_<supf><mode>_insn): Define insn for scatter
20214 stores.
20215 (mve_vstrbq_scatter_offset_p_<supf><mode>_insn): Likewise.
20216 (mve_vstrhq_scatter_offset_<supf><mode>_insn): Likewise.
20217 (mve_vstrhq_scatter_shifted_offset_p_<supf><mode>_insn): Likewise.
20218 (mve_vstrhq_scatter_shifted_offset_<supf><mode>_insn): Likewise.
20219 (mve_vstrdq_scatter_offset_p_<supf>v2di_insn): Likewise.
20220 (mve_vstrdq_scatter_offset_<supf>v2di_insn): Likewise.
20221 (mve_vstrdq_scatter_shifted_offset_p_<supf>v2di_insn): Likewise.
20222 (mve_vstrdq_scatter_shifted_offset_<supf>v2di_insn): Likewise.
20223 (mve_vstrhq_scatter_offset_fv8hf_insn): Likewise.
20224 (mve_vstrhq_scatter_offset_p_fv8hf_insn): Likewise.
20225 (mve_vstrhq_scatter_shifted_offset_fv8hf_insn): Likewise.
20226 (mve_vstrhq_scatter_shifted_offset_p_fv8hf_insn): Likewise.
20227 (mve_vstrwq_scatter_offset_fv4sf_insn): Likewise.
20228 (mve_vstrwq_scatter_offset_p_fv4sf_insn): Likewise.
20229 (mve_vstrwq_scatter_offset_p_<supf>v4si_insn): Likewise.
20230 (mve_vstrwq_scatter_offset_<supf>v4si_insn): Likewise.
20231 (mve_vstrwq_scatter_shifted_offset_fv4sf_insn): Likewise.
20232 (mve_vstrwq_scatter_shifted_offset_p_fv4sf_insn): Likewise.
20233 (mve_vstrwq_scatter_shifted_offset_p_<supf>v4si_insn): Likewise.
20234 (mve_vstrwq_scatter_shifted_offset_<supf>v4si_insn): Likewise.
20235
20236 2020-06-04 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
20237
20238 * config/arm/arm_mve.h (__arm_vbicq_n_u16): Correct the intrinsic
20239 arguments.
20240 (__arm_vbicq_n_s16): Likewise.
20241 (__arm_vbicq_n_u32): Likewise.
20242 (__arm_vbicq_n_s32): Likewise.
20243 (__arm_vbicq): Modify polymorphic variant.
20244
20245 2020-06-04 Richard Biener <rguenther@suse.de>
20246
20247 * tree-vectorizer.h (vect_get_slp_vect_def): Declare.
20248 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use it.
20249 * tree-vect-stmts.c (vect_transform_stmt): Likewise.
20250 (vect_is_simple_use): Use SLP_TREE_REPRESENTATIVE.
20251 * tree-vect-slp.c (vect_get_slp_vect_defs): Fold into single
20252 use ...
20253 (vect_get_slp_defs): ... here.
20254 (vect_get_slp_vect_def): New function.
20255
20256 2020-06-04 Richard Biener <rguenther@suse.de>
20257
20258 * tree-vectorizer.h (_slp_tree::lanes): New.
20259 (SLP_TREE_LANES): Likewise.
20260 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use it.
20261 (vectorizable_reduction): Likewise.
20262 (vect_transform_cycle_phi): Likewise.
20263 (vectorizable_induction): Likewise.
20264 (vectorizable_live_operation): Likewise.
20265 * tree-vect-slp.c (_slp_tree::_slp_tree): Initialize lanes.
20266 (vect_create_new_slp_node): Likewise.
20267 (slp_copy_subtree): Copy it.
20268 (vect_optimize_slp): Use it.
20269 (vect_slp_analyze_node_operations_1): Likewise.
20270 (vect_slp_convert_to_external): Likewise.
20271 (vect_bb_vectorization_profitable_p): Likewise.
20272 * tree-vect-stmts.c (vectorizable_load): Likewise.
20273 (get_vectype_for_scalar_type): Likewise.
20274
20275 2020-06-04 Richard Biener <rguenther@suse.de>
20276
20277 * tree-vect-slp.c (vect_update_all_shared_vectypes): Remove.
20278 (vect_build_slp_tree_2): Simplify building all external op
20279 nodes from scalars.
20280 (vect_slp_analyze_node_operations): Remove push/pop of
20281 STMT_VINFO_DEF_TYPE.
20282 (vect_schedule_slp_instance): Likewise.
20283 * tree-vect-stmts.c (ect_check_store_rhs): Pass in the
20284 stmt_info, use the vect_is_simple_use overload combining
20285 SLP and stmt_info analysis.
20286 (vect_is_simple_cond): Likewise.
20287 (vectorizable_store): Adjust.
20288 (vectorizable_condition): Likewise.
20289 (vect_is_simple_use): Fully handle invariant SLP nodes
20290 here. Amend stmt_info operand extraction with COND_EXPR
20291 and masked stores.
20292 * tree-vect-loop.c (vectorizable_reduction): Deal with
20293 COND_EXPR representation ugliness.
20294
20295 2020-06-04 Hongtao Liu <hongtao.liu@inte.com>
20296
20297 PR target/95254
20298 * config/i386/sse.md (*vcvtps2ph_store<merge_mask_name>):
20299 Refine from *vcvtps2ph_store<mask_name>.
20300 (vcvtps2ph256<mask_name>): Refine constraint from vm to v.
20301 (<mask_codefor>avx512f_vcvtps2ph512<mask_name>): Ditto.
20302 (*vcvtps2ph256<merge_mask_name>): New define_insn.
20303 (*avx512f_vcvtps2ph512<merge_mask_name>): Ditto.
20304 * config/i386/subst.md (merge_mask): New define_subst.
20305 (merge_mask_name): New define_subst_attr.
20306 (merge_mask_operand3): Ditto.
20307
20308 2020-06-04 Hao Liu <hliu@os.amperecomputing.com>
20309
20310 PR tree-optimization/89430
20311 * tree-ssa-phiopt.c
20312 (struct name_to_bb): Rename to ref_to_bb; add a new field exp;
20313 remove ssa_name_ver, store, offset fields.
20314 (struct ssa_names_hasher): Rename to refs_hasher; update functions.
20315 (class nontrapping_dom_walker): Rename m_seen_ssa_names to m_seen_refs.
20316 (nontrapping_dom_walker::add_or_mark_expr): Extend to support ARRAY_REFs
20317 and COMPONENT_REFs.
20318
20319 2020-06-04 Andreas Schwab <schwab@suse.de>
20320
20321 PR target/95154
20322 * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Call assemble_external.
20323
20324 2020-06-04 Hongtao.liu <hongtao.liu@intel.com>
20325
20326 * config/i386/sse.md (pmov_dst_3_lower): New mode attribute.
20327 (trunc<mode><pmov_dst_3_lower>2): Refine from
20328 trunc<mode><pmov_dst_3>2.
20329
20330 2020-06-03 Vitor Guidi <vitor.guidi@usp.br>
20331
20332 * match.pd (tanh/sinh -> 1/cosh): New simplification.
20333
20334 2020-06-03 Aaron Sawdey <acsawdey@linux.ibm.com>
20335
20336 PR target/95347
20337 * config/rs6000/rs6000.c (is_stfs_insn): Rename to
20338 is_lfs_stfs_insn and make it recognize lfs as well.
20339 (prefixed_store_p): Use is_lfs_stfs_insn().
20340 (prefixed_load_p): Use is_lfs_stfs_insn() to recognize lfs.
20341
20342 2020-06-03 Jan Hubicka <hubicka@ucw.cz>
20343
20344 * ipa-devirt.c: Include data-streamer.h, lto-streamer.h and
20345 streamer-hooks.h.
20346 (odr_enums): New static var.
20347 (struct odr_enum_val): New struct.
20348 (class odr_enum): New struct.
20349 (odr_enum_map): New hashtable.
20350 (odr_types_equivalent_p): Drop code testing TYPE_VALUES.
20351 (add_type_duplicate): Likewise.
20352 (free_odr_warning_data): Do not free TYPE_VALUES.
20353 (register_odr_enum): New function.
20354 (ipa_odr_summary_write): New function.
20355 (ipa_odr_read_section): New function.
20356 (ipa_odr_summary_read): New function.
20357 (class pass_ipa_odr): New pass.
20358 (make_pass_ipa_odr): New function.
20359 * ipa-utils.h (register_odr_enum): Declare.
20360 * lto-section-in.c: (lto_section_name): Add odr_types section.
20361 * lto-streamer.h (enum lto_section_type): Add odr_types section.
20362 * passes.def: Add odr_types pass.
20363 * lto-streamer-out.c (DFS::DFS_write_tree_body): Do not stream
20364 TYPE_VALUES.
20365 (hash_tree): Likewise.
20366 * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers):
20367 Likewise.
20368 * tree-streamer-out.c (write_ts_type_non_common_tree_pointers):
20369 Likewise.
20370 * timevar.def (TV_IPA_ODR): New timervar.
20371 * tree-pass.h (make_pass_ipa_odr): Declare.
20372 * tree.c (free_lang_data_in_type): Regiser ODR types.
20373
20374 2020-06-03 Romain Naour <romain.naour@gmail.com>
20375
20376 * Makefile.in (SELFTEST_DEPS): Move before including language makefile
20377 fragments.
20378
20379 2020-06-03 Richard Biener <rguenther@suse.de>
20380
20381 PR tree-optimization/95487
20382 * tree-vect-stmts.c (vectorizable_store): Use a truth type
20383 for the scatter mask.
20384
20385 2020-06-03 Richard Biener <rguenther@suse.de>
20386
20387 PR tree-optimization/95495
20388 * tree-vect-slp.c (vect_slp_analyze_node_operations): Use
20389 SLP_TREE_REPRESENTATIVE in the shift assertion.
20390
20391 2020-06-03 Tom Tromey <tromey@adacore.com>
20392
20393 * spellcheck.c (CASE_COST): New define.
20394 (BASE_COST): New define.
20395 (get_edit_distance): Recognize case changes.
20396 (get_edit_distance_cutoff): Update.
20397 (test_edit_distances): Update.
20398 (get_old_cutoff): Update.
20399 (test_find_closest_string): Add case sensitivity test.
20400
20401 2020-06-03 Richard Biener <rguenther@suse.de>
20402
20403 * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Loop over
20404 the cost vector to unset the visited flag on stmts.
20405
20406 2020-06-03 Tobias Burnus <tobias@codesourcery.com>
20407
20408 * gimplify.c (omp_notice_variable): Use new hook.
20409 * langhooks-def.h (lhd_omp_predetermined_mapping): Declare.
20410 (LANG_HOOKS_OMP_PREDETERMINED_MAPPING): Define
20411 (LANG_HOOKS_DECLS): Add it.
20412 * langhooks.c (lhd_omp_predetermined_sharing): Remove bogus unused attr.
20413 (lhd_omp_predetermined_mapping): New.
20414 * langhooks.h (struct lang_hooks_for_decls): Add new hook.
20415
20416 2020-06-03 Jan Hubicka <jh@suse.cz>
20417
20418 * lto-streamer.h (LTO_tags): Reorder so frequent tags has small indexes;
20419 add LTO_first_tree_tag and LTO_first_gimple_tag.
20420 (lto_tag_is_tree_code_p): Update.
20421 (lto_tag_is_gimple_code_p): Update.
20422 (lto_gimple_code_to_tag): Update.
20423 (lto_tag_to_gimple_code): Update.
20424 (lto_tree_code_to_tag): Update.
20425 (lto_tag_to_tree_code): Update.
20426
20427 2020-06-02 Felix Yang <felix.yang@huawei.com>
20428
20429 PR target/95459
20430 * config/aarch64/aarch64.c (aarch64_short_vector_p):
20431 Leave later code to report an error if SVE is disabled.
20432
20433 2020-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20434
20435 * config/aarch64/aarch64-cores.def (zeus): Define.
20436 * config/aarch64/aarch64-tune.md: Regenerate.
20437 * doc/invoke.texi (AArch64 Options): Document zeus -mcpu option.
20438
20439 2020-06-02 Aaron Sawdey <acsawdey@linux.ibm.com>
20440
20441 PR target/95347
20442 * config/rs6000/rs6000.c (prefixed_store_p): Add special case
20443 for stfs.
20444 (is_stfs_insn): New helper function.
20445
20446 2020-06-02 Jan Hubicka <jh@suse.cz>
20447
20448 * lto-streamer-in.c (stream_read_tree_ref): Simplify streaming of
20449 references.
20450 * lto-streamer-out.c (stream_write_tree_ref): Likewise.
20451
20452 2020-06-02 Andrew Stubbs <ams@codesourcery.com>
20453
20454 * config/gcn/gcn-hsa.h (CC1_SPEC): Delete.
20455 * config/gcn/gcn.opt (-mlocal-symbol-id): Delete.
20456 * config/gcn/mkoffload.c (main): Don't use -mlocal-symbol-id.
20457
20458 2020-06-02 Eric Botcazou <ebotcazou@adacore.com>
20459
20460 PR middle-end/95395
20461 * optabs.c (expand_unop): Fix bits/bytes confusion in latest change.
20462 * tree-pretty-print.c (dump_generic_node) <ARRAY_TYPE>: Print quals.
20463
20464 2020-06-02 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
20465
20466 * config/s390/s390.c (print_operand): Emit vector alignment
20467 hints for z13.
20468
20469 2020-06-02 Martin Liska <mliska@suse.cz>
20470
20471 * coverage.c (get_coverage_counts): Skip sanity check for TOP N counters
20472 as they have variable number of counters.
20473 * gcov-dump.c (main): Add new option -r.
20474 (print_usage): Likewise.
20475 (tag_counters): All new raw format.
20476 * gcov-io.h (struct gcov_kvp): New.
20477 (GCOV_TOPN_VALUES): Remove.
20478 (GCOV_TOPN_VALUES_COUNTERS): Likewise.
20479 (GCOV_TOPN_MEM_COUNTERS): New.
20480 (GCOV_TOPN_DISK_COUNTERS): Likewise.
20481 (GCOV_TOPN_MAXIMUM_TRACKED_VALUES): Likewise.
20482 * ipa-profile.c (ipa_profile_generate_summary): Use
20483 GCOV_TOPN_MAXIMUM_TRACKED_VALUES.
20484 (ipa_profile_write_edge_summary): Likewise.
20485 (ipa_profile_read_edge_summary): Likewise.
20486 (ipa_profile): Remove usage of GCOV_TOPN_VALUES.
20487 * profile.c (sort_hist_values): Sort variable number
20488 of counters.
20489 (compute_value_histograms): Special case for TOP N counters
20490 that have dynamic number of key-value pairs.
20491 * value-prof.c (dump_histogram_value): Dump variable number
20492 of key-value pairs.
20493 (stream_in_histogram_value): Stream in variable number
20494 of key-value pairs for TOP N counter.
20495 (get_nth_most_common_value): Deal with variable number
20496 of key-value pairs.
20497 (dump_ic_profile): Use GCOV_TOPN_MAXIMUM_TRACKED_VALUES
20498 for loop iteration.
20499 (gimple_find_values_to_profile): Set GCOV_TOPN_MEM_COUNTERS
20500 to n_counters.
20501 * doc/gcov-dump.texi: Document new -r option.
20502
20503 2020-06-02 Iain Buclaw <ibuclaw@gdcproject.org>
20504
20505 PR target/95420
20506 * config.gcc (arm-wrs-vxworks7*): Set default cpu to generic-armv7-a.
20507
20508 2020-06-01 Jeff Law <law@torsion.usersys.redhat.com>
20509
20510 * lower-subreg.c (resolve_simple_move): If simplify_gen_subreg_concatn
20511 returns (const_int 0) for the destination, then emit nothing.
20512
20513 2020-06-01 Jan Hubicka <hubicka@ucw.cz>
20514
20515 * lto-streamer.h (enum LTO_tags): Remove LTO_field_decl_ref,
20516 LTO_function_decl_ref, LTO_label_decl_ref, LTO_namespace_decl_ref,
20517 LTO_result_decl_ref, LTO_type_decl_ref, LTO_type_ref,
20518 LTO_const_decl_ref, LTO_imported_decl_ref,
20519 LTO_translation_unit_decl_ref, LTO_global_decl_ref and
20520 LTO_namelist_decl_ref; add LTO_global_stream_ref.
20521 * lto-streamer-in.c (lto_input_tree_ref): Simplify.
20522 (lto_input_scc): Update.
20523 (lto_input_tree_1): Update.
20524 * lto-streamer-out.c (lto_indexable_tree_ref): Simlify.
20525 * lto-streamer.c (lto_tag_name): Update.
20526
20527 2020-06-01 Jan Hubicka <hubicka@ucw.cz>
20528
20529 * ipa-reference.c (stream_out_bitmap): Use lto_output_var_decl_ref.
20530 (ipa_reference_read_optimization_summary): Use lto_intput_var_decl_ref.
20531 * lto-cgraph.c (lto_output_node): Likewise.
20532 (lto_output_varpool_node): Likewise.
20533 (output_offload_tables): Likewise.
20534 (input_node): Likewise.
20535 (input_varpool_node): Likewise.
20536 (input_offload_tables): Likewise.
20537 * lto-streamer-in.c (lto_input_tree_ref): Declare.
20538 (lto_input_var_decl_ref): Declare.
20539 (lto_input_fn_decl_ref): Declare.
20540 * lto-streamer-out.c (lto_indexable_tree_ref): Use only one decl stream.
20541 (lto_output_var_decl_index): Rename to ..
20542 (lto_output_var_decl_ref): ... this.
20543 (lto_output_fn_decl_index): Rename to ...
20544 (lto_output_fn_decl_ref): ... this.
20545 * lto-streamer.h (enum lto_decl_stream_e_t): Remove per-type streams.
20546 (DEFINE_DECL_STREAM_FUNCS): Remove.
20547 (lto_output_var_decl_index): Remove.
20548 (lto_output_fn_decl_index): Remove.
20549 (lto_output_var_decl_ref): Declare.
20550 (lto_output_fn_decl_ref): Declare.
20551 (lto_input_var_decl_ref): Declare.
20552 (lto_input_fn_decl_ref): Declare.
20553
20554 2020-06-01 Feng Xue <fxue@os.amperecomputing.com>
20555
20556 * cgraphclones.c (materialize_all_clones): Adjust replace map dump.
20557 * ipa-param-manipulation.c (ipa_dump_adjusted_parameters): Do not
20558 dump infomation if there is no adjusted parameter.
20559 * (ipa_param_adjustments::dump): Adjust prefix spaces for dump string.
20560
20561 2020-06-01 Aldy Hernandez <aldyh@redhat.com>
20562
20563 * Makefile.in (gimple-array-bounds.o): New.
20564 * tree-vrp.c: Move array bounds code...
20565 * gimple-array-bounds.cc: ...here...
20566 * gimple-array-bounds.h: ...and here.
20567
20568 2020-06-01 Aldy Hernandez <aldyh@redhat.com>
20569
20570 * Makefile.in (OBJS): Add value-range-equiv.o.
20571 * tree-vrp.c (*value_range_equiv*): Move to...
20572 * value-range-equiv.cc: ...here.
20573 * tree-vrp.h (class value_range_equiv): Move to...
20574 * value-range-equiv.h: ...here.
20575 * vr-values.h: Include value-range-equiv.h.
20576
20577 2020-06-01 Feng Xue <fxue@os.amperecomputing.com>
20578
20579 PR ipa/93429
20580 * ipa-cp.c (propagate_aggs_across_jump_function): Check aggregate
20581 lattice for simple pass-through by-ref argument.
20582
20583 2020-05-31 Jeff Law <law@redhat.com>
20584
20585 * lra.c (add_auto_inc_notes): Remove function.
20586 * reload1.c (add_auto_inc_notes): Similarly. Move into...
20587 * rtlanal.c (add_auto_inc_notes): New function.
20588 * rtl.h (add_auto_inc_notes): Add prototype.
20589 * recog.c (peep2_attempt): Scan and add REG_INC notes to new insns
20590 as needed.
20591
20592 2020-05-31 Jan Hubicka <jh@suse.cz>
20593
20594 * lto-section-out.c (lto_output_decl_index): Remove.
20595 (lto_output_field_decl_index): Move to lto-streamer-out.c
20596 (lto_output_fn_decl_index): Move to lto-streamer-out.c
20597 (lto_output_namespace_decl_index): Remove.
20598 (lto_output_var_decl_index): Remove.
20599 (lto_output_type_decl_index): Remove.
20600 (lto_output_type_ref_index): Remove.
20601 * lto-streamer-out.c (output_type_ref): Remove.
20602 (lto_get_index): New function.
20603 (lto_output_tree_ref): Remove.
20604 (lto_indexable_tree_ref): New function.
20605 (lto_output_var_decl_index): Move here from lto-section-out.c; simplify.
20606 (lto_output_fn_decl_index): Move here from lto-section-out.c; simplify.
20607 (stream_write_tree_ref): Update.
20608 (lto_output_tree): Update.
20609 * lto-streamer.h (lto_output_decl_index): Remove prototype.
20610 (lto_output_field_decl_index): Remove prototype.
20611 (lto_output_namespace_decl_index): Remove prototype.
20612 (lto_output_type_decl_index): Remove prototype.
20613 (lto_output_type_ref_index): Remove prototype.
20614 (lto_output_var_decl_index): Move.
20615 (lto_output_fn_decl_index): Move
20616
20617 2020-05-31 Jakub Jelinek <jakub@redhat.com>
20618
20619 PR middle-end/95052
20620 * expr.c (store_expr): For shortedned_string_cst, ensure temp has
20621 BLKmode.
20622
20623 2020-05-31 Jeff Law <law@redhat.com>
20624
20625 * config/h8300/jumpcall.md (brabs, brabc): Disable patterns.
20626
20627 2020-05-31 Jim Wilson <jimw@sifive.com>
20628
20629 * config/riscv/riscv.md (zero_extendsidi2_shifted): New.
20630
20631 2020-05-30 Jonathan Yong <10walls@gmail.com>
20632
20633 * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Insert -lkernel32
20634 after -lmsvcrt. This is necessary as libmsvcrt.a is not a pure
20635 import library, but also contains some functions that invoke
20636 others in KERNEL32.DLL.
20637
20638 2020-05-29 Segher Boessenkool <segher@kernel.crashing.org>
20639
20640 * config/rs6000/altivec.md (altivec_vmrghw_direct): Prefer VSX form.
20641 (altivec_vmrglw_direct): Ditto.
20642 (altivec_vperm_<mode>_direct): Ditto.
20643 (altivec_vperm_v8hiv16qi): Ditto.
20644 (*altivec_vperm_<mode>_uns_internal): Ditto.
20645 (*altivec_vpermr_<mode>_internal): Ditto.
20646 (vperm_v8hiv4si): Ditto.
20647 (vperm_v16qiv8hi): Ditto.
20648
20649 2020-05-29 Jan Hubicka <jh@suse.cz>
20650
20651 * lto-streamer-in.c (streamer_read_chain): Move here from
20652 tree-streamer-in.c.
20653 (stream_read_tree_ref): New.
20654 (lto_input_tree_1): Simplify.
20655 * lto-streamer-out.c (stream_write_tree_ref): New.
20656 (lto_write_tree_1): Simplify.
20657 (lto_output_tree_1): Simplify.
20658 (DFS::DFS_write_tree): Simplify.
20659 (streamer_write_chain): Move here from tree-stremaer-out.c.
20660 * lto-streamer.h (lto_output_tree_ref): Update prototype.
20661 (stream_read_tree_ref): Declare
20662 (stream_write_tree_ref): Declare
20663 * tree-streamer-in.c (streamer_read_chain): Update to use
20664 stream_read_tree_ref.
20665 (lto_input_ts_common_tree_pointers): Likewise.
20666 (lto_input_ts_vector_tree_pointers): Likewise.
20667 (lto_input_ts_poly_tree_pointers): Likewise.
20668 (lto_input_ts_complex_tree_pointers): Likewise.
20669 (lto_input_ts_decl_minimal_tree_pointers): Likewise.
20670 (lto_input_ts_decl_common_tree_pointers): Likewise.
20671 (lto_input_ts_decl_with_vis_tree_pointers): Likewise.
20672 (lto_input_ts_field_decl_tree_pointers): Likewise.
20673 (lto_input_ts_function_decl_tree_pointers): Likewise.
20674 (lto_input_ts_type_common_tree_pointers): Likewise.
20675 (lto_input_ts_type_non_common_tree_pointers): Likewise.
20676 (lto_input_ts_list_tree_pointers): Likewise.
20677 (lto_input_ts_vec_tree_pointers): Likewise.
20678 (lto_input_ts_exp_tree_pointers): Likewise.
20679 (lto_input_ts_block_tree_pointers): Likewise.
20680 (lto_input_ts_binfo_tree_pointers): Likewise.
20681 (lto_input_ts_constructor_tree_pointers): Likewise.
20682 (lto_input_ts_omp_clause_tree_pointers): Likewise.
20683 * tree-streamer-out.c (streamer_write_chain): Update to use
20684 stream_write_tree_ref.
20685 (write_ts_common_tree_pointers): Likewise.
20686 (write_ts_vector_tree_pointers): Likewise.
20687 (write_ts_poly_tree_pointers): Likewise.
20688 (write_ts_complex_tree_pointers): Likewise.
20689 (write_ts_decl_minimal_tree_pointers): Likewise.
20690 (write_ts_decl_common_tree_pointers): Likewise.
20691 (write_ts_decl_non_common_tree_pointers): Likewise.
20692 (write_ts_decl_with_vis_tree_pointers): Likewise.
20693 (write_ts_field_decl_tree_pointers): Likewise.
20694 (write_ts_function_decl_tree_pointers): Likewise.
20695 (write_ts_type_common_tree_pointers): Likewise.
20696 (write_ts_type_non_common_tree_pointers): Likewise.
20697 (write_ts_list_tree_pointers): Likewise.
20698 (write_ts_vec_tree_pointers): Likewise.
20699 (write_ts_exp_tree_pointers): Likewise.
20700 (write_ts_block_tree_pointers): Likewise.
20701 (write_ts_binfo_tree_pointers): Likewise.
20702 (write_ts_constructor_tree_pointers): Likewise.
20703 (write_ts_omp_clause_tree_pointers): Likewise.
20704 (streamer_write_tree_body): Likewise.
20705 (streamer_write_integer_cst): Likewise.
20706 * tree-streamer.h (streamer_read_chain):Declare.
20707 (streamer_write_chain):Declare.
20708 (streamer_write_tree_body): Update prototype.
20709 (streamer_write_integer_cst): Update prototype.
20710
20711 2020-05-29 H.J. Lu <hjl.tools@gmail.com>
20712
20713 PR bootstrap/95413
20714 * configure: Regenerated.
20715
20716 2020-05-29 Andrew Stubbs <ams@codesourcery.com>
20717
20718 * config/gcn/gcn-valu.md (add<mode>3_vcc_zext_dup): Add early clobber.
20719 (add<mode>3_vcc_zext_dup_exec): Likewise.
20720 (add<mode>3_vcc_zext_dup2): Likewise.
20721 (add<mode>3_vcc_zext_dup2_exec): Likewise.
20722
20723 2020-05-29 Richard Biener <rguenther@suse.de>
20724
20725 PR tree-optimization/95272
20726 * tree-vectorizer.h (_slp_tree::representative): Add.
20727 (SLP_TREE_REPRESENTATIVE): Likewise.
20728 * tree-vect-loop.c (vectorizable_reduction): Adjust SLP
20729 node gathering.
20730 (vectorizable_live_operation): Use the representative to
20731 attach the reduction info to.
20732 * tree-vect-slp.c (_slp_tree::_slp_tree): Initialize
20733 SLP_TREE_REPRESENTATIVE.
20734 (vect_create_new_slp_node): Likewise.
20735 (slp_copy_subtree): Copy it.
20736 (vect_slp_rearrange_stmts): Re-arrange even COND_EXPR stmts.
20737 (vect_slp_analyze_node_operations_1): Pass the representative
20738 to vect_analyze_stmt.
20739 (vect_schedule_slp_instance): Pass the representative to
20740 vect_transform_stmt.
20741
20742 2020-05-29 Richard Biener <rguenther@suse.de>
20743
20744 PR tree-optimization/95356
20745 * tree-vect-stmts.c (vectorizable_shift): Do in-place SLP
20746 node hacking during analysis.
20747
20748 2020-05-29 Jan Hubicka <hubicka@ucw.cz>
20749
20750 PR lto/95362
20751 * lto-streamer-out.c (lto_output_tree): Disable redundant streaming.
20752
20753 2020-05-29 Richard Biener <rguenther@suse.de>
20754
20755 PR tree-optimization/95403
20756 * tree-vect-stmts.c (vect_init_vector_1): Guard against NULL
20757 stmt_vinfo.
20758
20759 2020-05-29 Jakub Jelinek <jakub@redhat.com>
20760
20761 PR middle-end/95315
20762 * omp-general.c (omp_resolve_declare_variant): Fix up addition of
20763 declare variant cgraph node removal callback.
20764
20765 2020-05-29 Jakub Jelinek <jakub@redhat.com>
20766
20767 PR middle-end/95052
20768 * expr.c (store_expr): If expr_size is constant and significantly
20769 larger than TREE_STRING_LENGTH, set temp to just the
20770 TREE_STRING_LENGTH portion of the STRING_CST.
20771
20772 2020-05-29 Richard Biener <rguenther@suse.de>
20773
20774 PR tree-optimization/95393
20775 * tree-ssa-phiopt.c (minmax_replacement): Use gimple_build
20776 to build the min/max expression so we simplify cases like
20777 MAX(0, s) immediately.
20778
20779 2020-05-29 Joe Ramsay <joe.ramsay@arm.com>
20780
20781 * config/aarch64/aarch64-sve.md (<LOGICAL:optab><mode>3): Add support
20782 for unpacked EOR, ORR, AND.
20783
20784 2020-05-28 Nicolas Bértolo <nicolasbertolo@gmail.com>
20785
20786 * Makefile.in: don't look for libiberty in the "pic" subdirectory
20787 when building for Mingw. Add dependency on xgcc with the proper
20788 extension.
20789
20790 2020-05-28 Jeff Law <law@redhat.com>
20791
20792 * config/h8300/logical.md (bclrhi_msx): Remove pattern.
20793
20794 2020-05-28 Jeff Law <law@redhat.com>
20795
20796 * config/h8300/logical.md (HImode H8/SX bit-and splitter): Don't
20797 make a nonzero adjustment to the memory offset.
20798 (b<ior,xor>hi_msx): Turn into a splitter.
20799
20800 2020-05-28 Eric Botcazou <ebotcazou@adacore.com>
20801
20802 * gimple-ssa-store-merging.c (merged_store_group::can_be_merged_into):
20803 Fix off-by-one error.
20804
20805 2020-05-28 Richard Sandiford <richard.sandiford@arm.com>
20806
20807 * config/aarch64/aarch64.h (aarch64_frame): Add a comment above
20808 wb_candidate1 and wb_candidate2.
20809 * config/aarch64/aarch64.c (aarch64_layout_frame): Invalidate
20810 wb_candidate1 and wb_candidate2 if we decided not to use them.
20811
20812 2020-05-28 Richard Sandiford <richard.sandiford@arm.com>
20813
20814 PR testsuite/95361
20815 * config/aarch64/aarch64.c (aarch64_expand_epilogue): Assert that
20816 we have at least some CFI operations when using a frame pointer.
20817 Only redefine the CFA if we have CFI operations.
20818
20819 2020-05-28 Richard Biener <rguenther@suse.de>
20820
20821 * tree-vect-slp.c (vect_prologue_cost_for_slp): Remove
20822 case for !SLP_TREE_VECTYPE.
20823 (vect_slp_analyze_node_operations): Adjust.
20824
20825 2020-05-28 Richard Biener <rguenther@suse.de>
20826
20827 * tree-vectorizer.h (_slp_tree::vec_defs): Add.
20828 (SLP_TREE_VEC_DEFS): Likewise.
20829 * tree-vect-slp.c (_slp_tree::_slp_tree): Adjust.
20830 (_slp_tree::~_slp_tree): Likewise.
20831 (vect_mask_constant_operand_p): Remove unused function.
20832 (vect_get_constant_vectors): Rename to...
20833 (vect_create_constant_vectors): ... this. Take the
20834 invariant node as argument and code generate it. Remove
20835 dead code, remove temporary asserts. Pass a NULL stmt_info
20836 to vect_init_vector.
20837 (vect_get_slp_defs): Simplify.
20838 (vect_schedule_slp_instance): Code-generate externals and
20839 invariants using vect_create_constant_vectors.
20840
20841 2020-05-28 Richard Biener <rguenther@suse.de>
20842
20843 * tree-vect-stmts.c (vect_finish_stmt_generation_1):
20844 Conditionalize stmt_info use, assert the new stmt cannot throw
20845 when not specified.
20846 (vect_finish_stmt_generation): Adjust assert.
20847
20848 2020-05-28 Richard Biener <rguenther@suse.de>
20849
20850 PR tree-optimization/95273
20851 PR tree-optimization/95356
20852 * tree-vect-stmts.c (vectorizable_shift): Adjust when and to
20853 what we set the vector type of the shift operand SLP node
20854 again.
20855
20856 2020-05-28 Andrea Corallo <andrea.corallo@arm.com>
20857
20858 * config/arm/arm.c (mve_vector_mem_operand): Fix unwanted
20859 fall-throughs.
20860
20861 2020-05-28 Martin Liska <mliska@suse.cz>
20862
20863 PR web/95380
20864 * doc/invoke.texi: Add missing params, remove max-once-peeled-insns and
20865 rename ipcp-unit-growth to ipa-cp-unit-growth.
20866
20867 2020-05-28 Hongtao Liu <hongtao.liu@intel.com>
20868
20869 * config/i386/sse.md (*avx512vl_<code>v2div2qi2_store_1): Rename
20870 from *avx512vl_<code>v2div2qi_store and refine memory size of
20871 the pattern.
20872 (*avx512vl_<code>v2div2qi2_mask_store_1): Ditto.
20873 (*avx512vl_<code><mode>v4qi2_store_1): Ditto.
20874 (*avx512vl_<code><mode>v4qi2_mask_store_1): Ditto.
20875 (*avx512vl_<code><mode>v8qi2_store_1): Ditto.
20876 (*avx512vl_<code><mode>v8qi2_mask_store_1): Ditto.
20877 (*avx512vl_<code><mode>v4hi2_store_1): Ditto.
20878 (*avx512vl_<code><mode>v4hi2_mask_store_1): Ditto.
20879 (*avx512vl_<code>v2div2hi2_store_1): Ditto.
20880 (*avx512vl_<code>v2div2hi2_mask_store_1): Ditto.
20881 (*avx512vl_<code>v2div2si2_store_1): Ditto.
20882 (*avx512vl_<code>v2div2si2_mask_store_1): Ditto.
20883 (*avx512f_<code>v8div16qi2_store_1): Ditto.
20884 (*avx512f_<code>v8div16qi2_mask_store_1): Ditto.
20885 (*avx512vl_<code>v2div2qi2_store_2): New define_insn_and_split.
20886 (*avx512vl_<code>v2div2qi2_mask_store_2): Ditto.
20887 (*avx512vl_<code><mode>v4qi2_store_2): Ditto.
20888 (*avx512vl_<code><mode>v4qi2_mask_store_2): Ditto.
20889 (*avx512vl_<code><mode>v8qi2_store_2): Ditto.
20890 (*avx512vl_<code><mode>v8qi2_mask_store_2): Ditto.
20891 (*avx512vl_<code><mode>v4hi2_store_2): Ditto.
20892 (*avx512vl_<code><mode>v4hi2_mask_store_2): Ditto.
20893 (*avx512vl_<code>v2div2hi2_store_2): Ditto.
20894 (*avx512vl_<code>v2div2hi2_mask_store_2): Ditto.
20895 (*avx512vl_<code>v2div2si2_store_2): Ditto.
20896 (*avx512vl_<code>v2div2si2_mask_store_2): Ditto.
20897 (*avx512f_<code>v8div16qi2_store_2): Ditto.
20898 (*avx512f_<code>v8div16qi2_mask_store_2): Ditto.
20899 * config/i386/i386-builtin-types.def: Adjust builtin type.
20900 * config/i386/i386-expand.c: Ditto.
20901 * config/i386/i386-builtin.def: Adjust builtin.
20902 * config/i386/avx512fintrin.h: Ditto.
20903 * config/i386/avx512vlbwintrin.h: Ditto.
20904 * config/i386/avx512vlintrin.h: Ditto.
20905
20906 2020-05-28 Dong JianQiang <dongjianqiang2@huawei.com>
20907
20908 PR gcov-profile/95332
20909 * gcov-io.c (gcov_var::endian): Move field.
20910 (from_file): Add IN_GCOV_TOOL check.
20911 * gcov-io.h (gcov_magic): Ditto.
20912
20913 2020-05-28 Max Filippov <jcmvbkbc@gmail.com>
20914
20915 * config/xtensa/xtensa.c (xtensa_delegitimize_address): New
20916 function.
20917 (TARGET_DELEGITIMIZE_ADDRESS): New macro.
20918
20919 2020-05-27 Eric Botcazou <ebotcazou@adacore.com>
20920
20921 * builtin-types.def (BT_UINT128): New primitive type.
20922 (BT_FN_UINT128_UINT128): New function type.
20923 * builtins.def (BUILT_IN_BSWAP128): New GCC builtin.
20924 * doc/extend.texi (__builtin_bswap128): Document it.
20925 * builtins.c (expand_builtin): Deal with BUILT_IN_BSWAP128.
20926 (is_inexpensive_builtin): Likewise.
20927 * fold-const-call.c (fold_const_call_ss): Likewise.
20928 * fold-const.c (tree_call_nonnegative_warnv_p): Likewise.
20929 * tree-ssa-ccp.c (evaluate_stmt): Likewise.
20930 * tree-vect-stmts.c (vect_get_data_ptr_increment): Likewise.
20931 (vectorizable_call): Likewise.
20932 * optabs.c (expand_unop): Always use the double word path for it.
20933 * tree-core.h (enum tree_index): Add TI_UINT128_TYPE.
20934 * tree.h (uint128_type_node): New global type.
20935 * tree.c (build_common_tree_nodes): Build it if TImode is supported.
20936
20937 2020-05-27 Uroš Bizjak <ubizjak@gmail.com>
20938
20939 * config/i386/mmx.md (*mmx_haddv2sf3): Remove SSE alternatives.
20940 (mmx_hsubv2sf3): Ditto.
20941 (mmx_haddsubv2sf3): New expander.
20942 (*mmx_haddsubv2sf3): Rename from mmx_addsubv2sf3. Correct
20943 RTL template to model horizontal subtraction and addition.
20944 * config/i386/i386-builtin.def (IX86_BUILTIN_PFPNACC):
20945 Update for rename.
20946
20947 2020-05-27 Uroš Bizjak <ubizjak@gmail.com>
20948
20949 PR target/95355
20950 * config/i386/sse.md
20951 (<mask_codefor>avx512f_<code>v16qiv16si2<mask_name>):
20952 Remove %q operand modifier from insn template.
20953 (avx512f_<code>v8hiv8di2<mask_name>): Ditto.
20954
20955 2020-05-27 Uroš Bizjak <ubizjak@gmail.com>
20956
20957 * config/i386/mmx.md (mmx_pswapdsf2): Add SSE alternatives.
20958 Enable insn pattern for TARGET_MMX_WITH_SSE.
20959 (*mmx_movshdup): New insn pattern.
20960 (*mmx_movsldup): Ditto.
20961 (*mmx_movss): Ditto.
20962 * config/i386/i386-expand.c (ix86_vectorize_vec_perm_const):
20963 Handle E_V2SFmode.
20964 (expand_vec_perm_movs): Handle E_V2SFmode.
20965 (expand_vec_perm_even_odd): Ditto.
20966 (expand_vec_perm_broadcast_1): Assert that E_V2SFmode
20967 is already handled by standard shuffle patterns.
20968
20969 2020-05-27 Richard Biener <rguenther@suse.de>
20970
20971 PR tree-optimization/95295
20972 * tree-ssa-loop-im.c (sm_seq_valid_bb): Fix sinking after
20973 merging stores from paths.
20974
20975 2020-05-27 Richard Biener <rguenther@suse.de>
20976
20977 PR tree-optimization/95356
20978 * tree-vect-stmts.c (vectorizable_shift): Adjust vector
20979 type for the shift operand.
20980
20981 2020-05-27 Richard Biener <rguenther@suse.de>
20982
20983 PR tree-optimization/95335
20984 * tree-vect-slp.c (vect_slp_analyze_node_operations): Reset
20985 lvisited for nodes made external.
20986
20987 2020-05-27 Richard Biener <rguenther@suse.de>
20988
20989 * dump-context.h (debug_dump_context): New class.
20990 (dump_context): Make it friend.
20991 * dumpfile.c (debug_dump_context::debug_dump_context):
20992 Implement.
20993 (debug_dump_context::~debug_dump_context): Likewise.
20994 * tree-vect-slp.c: Include dump-context.h.
20995 (vect_print_slp_tree): Dump a single SLP node.
20996 (debug): New overload for slp_tree.
20997 (vect_print_slp_graph): Rename from vect_print_slp_tree and
20998 use that.
20999 (vect_analyze_slp_instance): Adjust.
21000
21001 2020-05-27 Jakub Jelinek <jakub@redhat.com>
21002
21003 PR middle-end/95315
21004 * omp-general.c (omp_declare_variant_remove_hook): New function.
21005 (omp_resolve_declare_variant): Always return base if it is already
21006 declare_variant_alt magic decl itself. Register
21007 omp_declare_variant_remove_hook as cgraph node removal hook.
21008
21009 2020-05-27 Jeff Law <law@redhat.com>
21010
21011 * config/h8300/testcompare.md (tst_extzv_1_n): Do not accept constants
21012 for the primary input operand.
21013 (tstsi_variable_bit_qi): Similarly.
21014
21015 2020-05-26 Uroš Bizjak <ubizjak@gmail.com>
21016
21017 * config/i386/mmx.md (mmx_pswapdv2si2): Add SSE2 alternative.
21018
21019 2020-05-26 Tobias Burnus <tobias@codesourcery.com>
21020
21021 PR ipa/95320
21022 * ipa-utils.h (odr_type_p): Also permit calls with
21023 only flag_generate_offload set.
21024
21025 2020-05-26 Alexandre Oliva <oliva@adacore.com>
21026
21027 * gcc.c (validate_switches): Add braced parameter. Adjust all
21028 callers. Expected and skip trailing brace only if braced.
21029 Return after handling one atom otherwise.
21030 (DUMPS_OPTIONS): New.
21031 (cpp_debug_options): Define in terms of it.
21032
21033 2020-05-26 Richard Biener <rguenther@suse.de>
21034
21035 PR tree-optimization/95327
21036 * tree-vect-stmts.c (vectorizable_shift): Compute op1_vectype
21037 when we are not using a scalar shift.
21038
21039 2020-05-26 Uroš Bizjak <ubizjak@gmail.com>
21040
21041 * config/i386/mmx.md (*mmx_pshufd_1): New insn pattern.
21042 * config/i386/i386-expand.c (ix86_vectorize_vec_perm_const):
21043 Handle E_V2SImode and E_V4HImode.
21044 (expand_vec_perm_even_odd_1): Handle E_V4HImode.
21045 Assert that E_V2SImode is already handled.
21046 (expand_vec_perm_broadcast_1): Assert that E_V2SImode
21047 is already handled by standard shuffle patterns.
21048
21049 2020-05-26 Jan Hubicka <jh@suse.cz>
21050
21051 * tree.c (free_lang_data_in_type): Simpify types of TYPE_VALUES in
21052 enumeral types.
21053
21054 2020-05-26 Jakub Jelinek <jakub@redhat.com>
21055
21056 PR c++/95197
21057 * gimplify.c (find_combined_omp_for): Move to omp-general.c.
21058 * omp-general.h (find_combined_omp_for): Declare.
21059 * omp-general.c: Include tree-iterator.h.
21060 (find_combined_omp_for): New function, moved from gimplify.c.
21061
21062 2020-05-26 Alexandre Oliva <oliva@adacore.com>
21063
21064 * common.opt (aux_base_name): Define.
21065 (dumpbase, dumpdir): Mark as Driver options.
21066 (-dumpbase, -dumpdir): Likewise.
21067 (dumpbase-ext, -dumpbase-ext): New.
21068 (auxbase, auxbase-strip): Drop.
21069 * doc/invoke.texi (-dumpbase, -dumpbase-ext, -dumpdir):
21070 Document.
21071 (-o): Introduce the notion of primary output, mention it
21072 influences auxiliary and dump output names as well, add
21073 examples.
21074 (-save-temps): Adjust, move examples into -dump*.
21075 (-save-temps=cwd, -save-temps=obj): Likewise.
21076 (-fdump-final-insns): Adjust.
21077 * dwarf2out.c (gen_producer_string): Drop auxbase and
21078 auxbase_strip; add dumpbase_ext.
21079 * gcc.c (enum save_temps): Add SAVE_TEMPS_DUMP.
21080 (save_temps_prefix, save_temps_length): Drop.
21081 (save_temps_overrides_dumpdir): New.
21082 (dumpdir, dumpbase, dumpbase_ext): New.
21083 (dumpdir_length, dumpdir_trailing_dash_added): New.
21084 (outbase, outbase_length): New.
21085 (The Specs Language): Introduce %". Adjust %b and %B.
21086 (ASM_FINAL_SPEC): Use %b.dwo for an aux output name always.
21087 Precede object file with %w when it's the primary output.
21088 (cpp_debug_options): Do not pass on incoming -dumpdir,
21089 -dumpbase and -dumpbase-ext options; recompute them with
21090 %:dumps.
21091 (cc1_options): Drop auxbase with and without compare-debug;
21092 use cpp_debug_options instead of dumpbase. Mark asm output
21093 with %w when it's the primary output.
21094 (static_spec_functions): Drop %:compare-debug-auxbase-opt and
21095 %:replace-exception. Add %:dumps.
21096 (driver_handle_option): Implement -save-temps=*/-dumpdir
21097 mutual overriding logic. Save dumpdir, dumpbase and
21098 dumpbase-ext options. Do not save output_file in
21099 save_temps_prefix.
21100 (adds_single_suffix_p): New.
21101 (single_input_file_index): New.
21102 (process_command): Combine output dir, output base name, and
21103 dumpbase into dumpdir and outbase.
21104 (set_collect_gcc_options): Pass a possibly-adjusted -dumpdir.
21105 (do_spec_1): Optionally dumpdir instead of save_temps_prefix,
21106 and outbase instead of input_basename in %b, %B and in
21107 -save-temps aux files. Handle empty argument %".
21108 (driver::maybe_run_linker): Adjust dumpdir and auxbase.
21109 (compare_debug_dump_opt_spec_function): Adjust gkd dump file
21110 naming. Spec-quote the computed -fdump-final-insns file name.
21111 (debug_auxbase_opt): Drop.
21112 (compare_debug_self_opt_spec_function): Drop auxbase-strip
21113 computation.
21114 (compare_debug_auxbase_opt_spec_function): Drop.
21115 (not_actual_file_p): New.
21116 (replace_extension_spec_func): Drop.
21117 (dumps_spec_func): New.
21118 (convert_white_space): Split-out parts into...
21119 (quote_string, whitespace_to_convert_p): ... these. New.
21120 (quote_spec_char_p, quote_spec, quote_spec_arg): New.
21121 (driver::finalize): Release and reset new variables; drop
21122 removed ones.
21123 * lto-wrapper.c (HAVE_TARGET_EXECUTABLE_SUFFIX): Define if...
21124 (TARGET_EXECUTABLE_SUFFIX): ... is defined; define this to the
21125 empty string otherwise.
21126 (DUMPBASE_SUFFIX): Drop leading period.
21127 (debug_objcopy): Use concat.
21128 (run_gcc): Recognize -save-temps=* as -save-temps too. Obey
21129 -dumpdir. Pass on empty dumpdir and dumpbase with a directory
21130 component. Simplify temp file names.
21131 * opts.c (finish_options): Drop aux base name handling.
21132 (common_handle_option): Drop auxbase-strip handling.
21133 * toplev.c (print_switch_values): Drop auxbase, add
21134 dumpbase-ext.
21135 (process_options): Derive aux_base_name from dump_base_name
21136 and dump_base_ext.
21137 (lang_dependent_init): Compute dump_base_ext along with
21138 dump_base_name. Disable stack usage and callgraph-info during
21139 lto generation and compare-debug recompilation.
21140
21141 2020-05-26 Hongtao Liu <hongtao.liu@intel.com>
21142 Uroš Bizjak <ubizjak@gmail.com>
21143
21144 PR target/95211
21145 PR target/95256
21146 * config/i386/sse.md (<floatunssuffix>v2div2sf2): New expander.
21147 (fix<fixunssuffix>_truncv2sfv2di2): Ditto.
21148 (avx512dq_float<floatunssuffix>v2div2sf2): Renaming from
21149 float<floatunssuffix>v2div2sf2.
21150 (avx512dq_fix<fixunssuffix>_truncv2sfv2di2<mask_name>):
21151 Renaming from fix<fixunssuffix>_truncv2sfv2di2<mask_name>.
21152 (vec_pack<floatprefix>_float_<mode>): Adjust icode name.
21153 (vec_unpack_<fixprefix>fix_trunc_lo_<mode>): Ditto.
21154 (vec_unpack_<fixprefix>fix_trunc_hi_<mode>): Ditto.
21155 * config/i386/i386-builtin.def: Ditto.
21156 * emit-rtl.c (validate_subreg): Allow use of *paradoxical* vector
21157 subregs when both omode and imode are vector mode and
21158 have the same inner mode.
21159
21160 2020-05-25 Eric Botcazou <ebotcazou@adacore.com>
21161
21162 * gimple-ssa-store-merging.c (merged_store_group::can_be_merged_into):
21163 Only turn MEM_REFs into bit-field stores for small bit-field regions.
21164 (imm_store_chain_info::output_merged_store): Be prepared for sources
21165 with non-integral type in the bit-field insertion case.
21166 (pass_store_merging::process_store): Use MAX_BITSIZE_MODE_ANY_INT as
21167 the largest size for the bit-field case.
21168
21169 2020-05-25 Uroš Bizjak <ubizjak@gmail.com>
21170
21171 * config/i386/mmx.md (*vec_dupv2sf): Redefine as define_insn.
21172 (mmx_pshufw_1): Change Yv constraint to xYw. Correct type attribute.
21173 (*vec_dupv4hi): Redefine as define_insn.
21174 Remove alternative with general register input.
21175 (*vec_dupv2si): Ditto.
21176
21177 2020-05-25 Richard Biener <rguenther@suse.de>
21178
21179 PR tree-optimization/95309
21180 * tree-vect-slp.c (vect_get_constant_vectors): Move number
21181 of vector computation ...
21182 (vect_slp_analyze_node_operations): ... to analysis phase.
21183
21184 2020-05-25 Jan Hubicka <hubicka@ucw.cz>
21185
21186 * lto-streamer-out.c (lto_output_tree): Add streamer_debugging check.
21187 * lto-streamer.h (streamer_debugging): New constant
21188 * tree-streamer-in.c (streamer_read_tree_bitfields): Add
21189 streamer_debugging check.
21190 (streamer_get_pickled_tree): Likewise.
21191 * tree-streamer-out.c (pack_ts_base_value_fields): Likewise.
21192
21193 2020-05-25 Richard Biener <rguenther@suse.de>
21194
21195 PR tree-optimization/95308
21196 * tree-ssa-forwprop.c (pass_forwprop::execute): Generalize
21197 test for TARGET_MEM_REFs.
21198
21199 2020-05-25 Richard Biener <rguenther@suse.de>
21200
21201 PR tree-optimization/95295
21202 * tree-ssa-loop-im.c (sm_seq_valid_bb): Compare remat stores
21203 RHSes and drop to full sm_other if they are not equal.
21204
21205 2020-05-25 Richard Biener <rguenther@suse.de>
21206
21207 PR tree-optimization/95271
21208 * tree-vect-stmts.c (vectorizable_bswap): Update invariant SLP
21209 children vector type.
21210 (vectorizable_call): Pass down slp ops.
21211
21212 2020-05-25 Richard Biener <rguenther@suse.de>
21213
21214 PR tree-optimization/95297
21215 * tree-vect-stmts.c (vectorizable_shift): For scalar_shift_arg
21216 skip updating operand 1 vector type.
21217
21218 2020-05-25 Richard Biener <rguenther@suse.de>
21219
21220 PR tree-optimization/95284
21221 * tree-ssa-sink.c (sink_common_stores_to_bb): Amend previous
21222 fix.
21223
21224 2020-05-25 Hongtao Liu <hongtao.liu@intel.com>
21225
21226 PR target/95125
21227 * config/i386/sse.md (sf2dfmode_lower): New mode attribute.
21228 (trunc<mode><sf2dfmode_lower>2) New expander.
21229 (extend<sf2dfmode_lower><mode>2): Ditto.
21230
21231 2020-05-23 Iain Sandoe <iain@sandoe.co.uk>
21232
21233 * config/darwin.h (ASM_GENERATE_INTERNAL_LABEL): Make
21234 ubsan_{data,type},ASAN symbols linker-visible.
21235
21236 2020-05-22 Jan Hubicka <hubicka@ucw.cz>
21237
21238 * lto-streamer-out.c (DFS::DFS): Silence warning.
21239
21240 2020-05-22 Uroš Bizjak <ubizjak@gmail.com>
21241
21242 PR target/95255
21243 * config/i386/i386.md (<rounding_insn><mode>2): Do not try to
21244 expand non-sse4 ROUND_ROUNDEVEN rounding via SSE support routines.
21245
21246 2020-05-22 Jan Hubicka <hubicka@ucw.cz>
21247
21248 * lto-streamer-out.c (lto_output_tree): Do not stream final ref if
21249 it is not needed.
21250
21251 2020-05-22 Jan Hubicka <hubicka@ucw.cz>
21252
21253 * lto-section-out.c (lto_output_decl_index): Adjust dump indentation.
21254 * lto-streamer-out.c (create_output_block): Fix whitespace
21255 (lto_write_tree_1): Add (debug) dump.
21256 (DFS::DFS): Add dump.
21257 (DFS::DFS_write_tree_body): Do not dump here.
21258 (lto_output_tree): Improve dumping; do not stream ref when not needed.
21259 (produce_asm_for_decls): Fix whitespace.
21260 * tree-streamer-out.c (streamer_write_tree_header): Add dump.
21261 * tree-streamer-out.c (streamer_write_integer_cst): Add debug dump.
21262
21263 2020-05-22 Hongtao.liu <hongtao.liu@intel.com>
21264
21265 PR target/92658
21266 * config/i386/sse.md (trunc<pmov_src_lower><mode>2): New expander
21267 (truncv32hiv32qi2): Ditto.
21268 (trunc<ssedoublemodelower><mode>2): Ditto.
21269 (trunc<mode><pmov_dst_3>2): Ditto.
21270 (trunc<mode><pmov_dst_mode_4>2): Ditto.
21271 (truncv2div2si2): Ditto.
21272 (truncv8div8qi2): Ditto.
21273 (avx512f_<code>v8div16qi2): Renaming from *avx512f_<code>v8div16qi2.
21274 (avx512vl_<code>v2div2si): Renaming from *avx512vl_<code>v2div2si2.
21275 (avx512vl_<code><mode>v2<ssecakarnum>qi2): Renaming from
21276 *avx512vl_<code><mode>v<ssescalarnum>qi2.
21277
21278 2020-05-22 H.J. Lu <hongjiu.lu@intel.com>
21279
21280 PR target/95258
21281 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
21282 AVX512VPOPCNTDQ.
21283
21284 2020-05-22 Richard Biener <rguenther@suse.de>
21285
21286 PR tree-optimization/95268
21287 * tree-ssa-sink.c (sink_common_stores_to_bb): Handle clobbers
21288 properly.
21289
21290 2020-05-22 Jan Hubicka <hubicka@ucw.cz>
21291
21292 * tree-streamer.c (record_common_node): Fix hash value of pre-streamed
21293 nodes.
21294
21295 2020-05-22 Jan Hubicka <hubicka@ucw.cz>
21296
21297 * lto-streamer-in.c (lto_read_tree): Do not stream end markers.
21298 (lto_input_scc): Optimize streaming of entry lengths.
21299 * lto-streamer-out.c (lto_write_tree): Do not stream end markers
21300 (DFS::DFS): Optimize stremaing of entry lengths
21301
21302 2020-05-22 Richard Biener <rguenther@suse.de>
21303
21304 PR lto/95190
21305 * doc/invoke.texi (flto): Document behavior of diagnostic
21306 options.
21307
21308 2020-05-22 Richard Biener <rguenther@suse.de>
21309
21310 * tree-vectorizer.h (vect_is_simple_use): New overload.
21311 (vect_maybe_update_slp_op_vectype): New.
21312 * tree-vect-stmts.c (vect_is_simple_use): New overload
21313 accessing operands of SLP vs. non-SLP operation transparently.
21314 (vect_maybe_update_slp_op_vectype): New function updating
21315 the possibly shared SLP operands vector type.
21316 (vectorizable_operation): Be a bit more SLP vs non-SLP agnostic
21317 using the new vect_is_simple_use overload; update SLP invariant
21318 operand nodes vector type.
21319 (vectorizable_comparison): Likewise.
21320 (vectorizable_call): Likewise.
21321 (vectorizable_conversion): Likewise.
21322 (vectorizable_shift): Likewise.
21323 (vectorizable_store): Likewise.
21324 (vectorizable_condition): Likewise.
21325 (vectorizable_assignment): Likewise.
21326 * tree-vect-loop.c (vectorizable_reduction): Likewise.
21327 * tree-vect-slp.c (vect_get_constant_vectors): Enforce
21328 present SLP_TREE_VECTYPE and check it matches previous
21329 behavior.
21330
21331 2020-05-22 Richard Biener <rguenther@suse.de>
21332
21333 PR tree-optimization/95248
21334 * tree-ssa-loop-im.c (sm_seq_valid_bb): Remove bogus early out.
21335
21336 2020-05-22 Richard Biener <rguenther@suse.de>
21337
21338 * tree-vectorizer.h (_slp_tree::_slp_tree): New.
21339 (_slp_tree::~_slp_tree): Likewise.
21340 * tree-vect-slp.c (_slp_tree::_slp_tree): Factor out code
21341 from allocators.
21342 (_slp_tree::~_slp_tree): Implement.
21343 (vect_free_slp_tree): Simplify.
21344 (vect_create_new_slp_node): Likewise. Add nops parameter.
21345 (vect_build_slp_tree_2): Adjust.
21346 (vect_analyze_slp_instance): Likewise.
21347
21348 2020-05-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21349
21350 * adjust-alignment.c: Include memmodel.h.
21351
21352 2020-05-21 H.J. Lu <hongjiu.lu@intel.com>
21353
21354 PR target/95260
21355 * config/i386/cpuid.h: Use hexadecimal in comments.
21356
21357 2020-05-21 H.J. Lu <hongjiu.lu@intel.com>
21358
21359 PR target/95212
21360 * config/i386/i386-builtins.c (processor_features): Move
21361 F_AVX512VP2INTERSECT after F_AVX512BF16.
21362 (isa_names_table): Likewise.
21363
21364 2020-05-21 Martin Liska <mliska@suse.cz>
21365
21366 * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
21367 Handle OPT_moutline_atomics.
21368 * config/aarch64/aarch64.c: Add outline-atomics to
21369 aarch64_attributes.
21370 * doc/extend.texi: Document the newly added target attribute.
21371
21372 2020-05-21 Uroš Bizjak <ubizjak@gmail.com>
21373
21374 PR target/95218
21375
21376 * config/i386/mmx.md (*mmx_<code>v2sf): Do not mark
21377 operands 1 and 2 commutative. Manually swap operands.
21378 (*mmx_nabsv2sf2): Ditto.
21379
21380 Partially revert:
21381 2020-05-18 Uroš Bizjak <ubizjak@gmail.com>
21382
21383 * config/i386/i386.md (*<code>tf2_1):
21384 Mark operands 1 and 2 commutative.
21385 (*nabstf2_1): Ditto.
21386 * config/i386/sse.md (*<code><mode>2): Mark operands 1 and 2
21387 commutative. Do not swap operands.
21388 (*nabs<mode>2): Ditto.
21389
21390 2020-05-20 Uroš Bizjak <ubizjak@gmail.com>
21391
21392 PR target/95229
21393 * config/i386/sse.md (<code>v8qiv8hi2): Use
21394 simplify_gen_subreg instead of simplify_subreg.
21395 (<code>v8qiv8si2): Ditto.
21396 (<code>v4qiv4si2): Ditto.
21397 (<code>v4hiv4si2): Ditto.
21398 (<code>v8qiv8di2): Ditto.
21399 (<code>v4qiv4di2): Ditto.
21400 (<code>v2qiv2di2): Ditto.
21401 (<code>v4hiv4di2): Ditto.
21402 (<code>v2hiv2di2): Ditto.
21403 (<code>v2siv2di2): Ditto.
21404
21405 2020-05-20 Uroš Bizjak <ubizjak@gmail.com>
21406
21407 PR target/95238
21408 * config/i386/i386.md (*pushsi2_rex64):
21409 Use "e" constraint instead of "i".
21410
21411 2020-05-20 Jan Hubicka <hubicka@ucw.cz>
21412
21413 * lto-streamer-in.c (lto_input_scc): Add SHARED_SCC parameter.
21414 (lto_input_tree_1): Strenghten sanity check.
21415 (lto_input_tree): Update call of lto_input_scc.
21416 * lto-streamer-out.c: Include ipa-utils.h
21417 (create_output_block): Initialize local_trees if merigng is going
21418 to happen.
21419 (destroy_output_block): Destroy local_trees.
21420 (DFS): Add max_local_entry.
21421 (local_tree_p): New function.
21422 (DFS::DFS): Initialize and maintain it.
21423 (DFS::DFS_write_tree): Decide on streaming format.
21424 (lto_output_tree): Stream inline singleton SCCs
21425 * lto-streamer.h (enum LTO_tags): Add LTO_trees.
21426 (struct output_block): Add local_trees.
21427 (lto_input_scc): Update prototype.
21428
21429 2020-05-20 Patrick Palka <ppalka@redhat.com>
21430
21431 PR c++/95223
21432 * hash-table.h (hash_table::find_with_hash): Move up the call to
21433 hash_table::verify.
21434
21435 2020-05-20 Martin Liska <mliska@suse.cz>
21436
21437 * lto-compress.c (lto_compression_zstd): Fill up
21438 num_compressed_il_bytes.
21439 (lto_uncompression_zstd): Likewise for num_uncompressed_il_bytes here.
21440
21441 2020-05-20 Richard Biener <rguenther@suse.de>
21442
21443 PR tree-optimization/95219
21444 * tree-vect-loop.c (vectorizable_induction): Reduce
21445 group_size before computing the number of required IVs.
21446
21447 2020-05-20 Richard Biener <rguenther@suse.de>
21448
21449 PR middle-end/95231
21450 * tree-inline.c (remap_gimple_stmt): Revert adjusting
21451 COND_EXPR and VEC_COND_EXPR for a -fnon-call-exception boundary.
21452
21453 2020-05-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
21454 Andre Vieira <andre.simoesdiasvieira@arm.com>
21455
21456 PR target/94959
21457 * config/arm/arm-protos.h (arm_mode_base_reg_class): Function
21458 declaration.
21459 (mve_vector_mem_operand): Likewise.
21460 * config/arm/arm.c (thumb2_legitimate_address_p): For MVE target check
21461 the load from memory to a core register is legitimate for give mode.
21462 (mve_vector_mem_operand): Define function.
21463 (arm_print_operand): Modify comment.
21464 (arm_mode_base_reg_class): Define.
21465 * config/arm/arm.h (MODE_BASE_REG_CLASS): Modify to add check for
21466 TARGET_HAVE_MVE and expand to arm_mode_base_reg_class on TRUE.
21467 * config/arm/constraints.md (Ux): Likewise.
21468 (Ul): Likewise.
21469 * config/arm/mve.md (mve_mov): Replace constraint Us with Ux and also
21470 add support for missing Vector Store Register and Vector Load Register.
21471 Add a new alternative to support load from memory to PC (or label) in
21472 vector store/load.
21473 (mve_vstrbq_<supf><mode>): Modify constraint Us to Ux.
21474 (mve_vldrbq_<supf><mode>): Modify constriant Us to Ux, predicate to
21475 mve_memory_operand and also modify the MVE instructions to emit.
21476 (mve_vldrbq_z_<supf><mode>): Modify constraint Us to Ux.
21477 (mve_vldrhq_fv8hf): Modify constriant Us to Ux, predicate to
21478 mve_memory_operand and also modify the MVE instructions to emit.
21479 (mve_vldrhq_<supf><mode>): Modify constriant Us to Ux, predicate to
21480 mve_memory_operand and also modify the MVE instructions to emit.
21481 (mve_vldrhq_z_fv8hf): Likewise.
21482 (mve_vldrhq_z_<supf><mode>): Likewise.
21483 (mve_vldrwq_fv4sf): Likewise.
21484 (mve_vldrwq_<supf>v4si): Likewise.
21485 (mve_vldrwq_z_fv4sf): Likewise.
21486 (mve_vldrwq_z_<supf>v4si): Likewise.
21487 (mve_vld1q_f<mode>): Modify constriant Us to Ux.
21488 (mve_vld1q_<supf><mode>): Likewise.
21489 (mve_vstrhq_fv8hf): Modify constriant Us to Ux, predicate to
21490 mve_memory_operand.
21491 (mve_vstrhq_p_fv8hf): Modify constriant Us to Ux, predicate to
21492 mve_memory_operand and also modify the MVE instructions to emit.
21493 (mve_vstrhq_p_<supf><mode>): Likewise.
21494 (mve_vstrhq_<supf><mode>): Modify constriant Us to Ux, predicate to
21495 mve_memory_operand.
21496 (mve_vstrwq_fv4sf): Modify constriant Us to Ux.
21497 (mve_vstrwq_p_fv4sf): Modify constriant Us to Ux and also modify the MVE
21498 instructions to emit.
21499 (mve_vstrwq_p_<supf>v4si): Likewise.
21500 (mve_vstrwq_<supf>v4si): Likewise.Modify constriant Us to Ux.
21501 * config/arm/predicates.md (mve_memory_operand): Define.
21502
21503 2020-05-30 Richard Biener <rguenther@suse.de>
21504
21505 PR c/95141
21506 * c-fold.c (c_fully_fold_internal): Enhance guard on
21507 overflow_warning.
21508
21509 2020-05-20 Kito Cheng <kito.cheng@sifive.com>
21510
21511 PR target/90811
21512 * Makefile.in (OBJS): Add adjust-alignment.o.
21513 * adjust-alignment.c (pass_data_adjust_alignment): New.
21514 (pass_adjust_alignment): New.
21515 (pass_adjust_alignment::execute): New.
21516 (make_pass_adjust_alignment): New.
21517 * tree-pass.h (make_pass_adjust_alignment): New.
21518 * passes.def: Add pass_adjust_alignment.
21519
21520 2020-05-19 Alex Coplan <alex.coplan@arm.com>
21521
21522 PR target/94591
21523 * config/aarch64/aarch64.c (aarch64_evpc_rev_local): Don't match
21524 identity permutation.
21525
21526 2020-05-19 Jozef Lawrynowicz <jozef.l@mittosystems.com>
21527
21528 * doc/sourcebuild.texi: Document new short_eq_int, ptr_eq_short,
21529 msp430_small, msp430_large and size24plus DejaGNU effective
21530 targets.
21531 Improve grammar in descriptions for size20plus and size32plus effective
21532 targets.
21533
21534 2020-05-19 Jose E. Marchesi <jose.marchesi@oracle.com>
21535
21536 * config/bpf/bpf.c (bpf_compute_frame_layout): Include space for
21537 callee saved registers only in xBPF.
21538 (bpf_expand_prologue): Save callee saved registers only in xBPF.
21539 (bpf_expand_epilogue): Likewise for restoring.
21540 * doc/invoke.texi (eBPF Options): Document this is activated by
21541 -mxbpf.
21542
21543 2020-05-19 Jose E. Marchesi <jose.marchesi@oracle.com>
21544
21545 * config/bpf/bpf.opt (mxbpf): New option.
21546 * doc/invoke.texi (Option Summary): Add -mxbpf.
21547 (eBPF Options): Document -mxbbpf.
21548
21549 2020-05-19 Uroš Bizjak <ubizjak@gmail.com>
21550
21551 PR target/92658
21552 * config/i386/sse.md (<code>v16qiv16hi2): New expander.
21553 (<code>v32qiv32hi2): Ditto.
21554 (<code>v8qiv8hi2): Ditto.
21555 (<code>v16qiv16si2): Ditto.
21556 (<code>v8qiv8si2): Ditto.
21557 (<code>v4qiv4si2): Ditto.
21558 (<code>v16hiv16si2): Ditto.
21559 (<code>v8hiv8si2): Ditto.
21560 (<code>v4hiv4si2): Ditto.
21561 (<code>v8qiv8di2): Ditto.
21562 (<code>v4qiv4di2): Ditto.
21563 (<code>v2qiv2di2): Ditto.
21564 (<code>v8hiv8di2): Ditto.
21565 (<code>v4hiv4di2): Ditto.
21566 (<code>v2hiv2di2): Ditto.
21567 (<code>v8siv8di2): Ditto.
21568 (<code>v4siv4di2): Ditto.
21569 (<code>v2siv2di2): Ditto.
21570
21571 2020-05-19 Kito Cheng <kito.cheng@sifive.com>
21572
21573 * common/config/riscv/riscv-common.c (riscv_implied_info_t): New.
21574 (riscv_implied_info): New.
21575 (riscv_subset_list): Add handle_implied_ext.
21576 (riscv_subset_list::to_string): New parameter version_p to
21577 control output format.
21578 (riscv_subset_list::handle_implied_ext): New.
21579 (riscv_subset_list::parse_std_ext): Call handle_implied_ext.
21580 (riscv_arch_str): New parameter version_p to control output format.
21581 (riscv_expand_arch): New.
21582 * config/riscv/riscv-protos.h (riscv_arch_str): New parameter,
21583 version_p.
21584 * config/riscv/riscv.h (riscv_expand_arch): New,
21585 (EXTRA_SPEC_FUNCTIONS): Define.
21586 (ASM_SPEC): Transform -march= via riscv_expand_arch.
21587
21588 2020-05-19 Kito Cheng <kito.cheng@sifive.com>
21589
21590 * riscv-common.c (parse_sv_or_non_std_ext): Rename to
21591 parse_multiletter_ext.
21592 (parse_multiletter_ext): Add parsing `h` and `z`, drop `sx`,
21593 adjust parsing order for 's' and 'x'.
21594
21595 2020-05-19 Richard Biener <rguenther@suse.de>
21596
21597 * tree-vectorizer.h (_slp_tree::vectype): Add field.
21598 (SLP_TREE_VECTYPE): New.
21599 * tree-vect-slp.c (vect_create_new_slp_node): Initialize
21600 SLP_TREE_VECTYPE.
21601 (vect_create_new_slp_node): Likewise.
21602 (vect_prologue_cost_for_slp): Move here from tree-vect-stmts.c
21603 and simplify.
21604 (vect_slp_analyze_node_operations): Walk nodes children for
21605 invariant costing.
21606 (vect_get_constant_vectors): Use local scope op variable.
21607 * tree-vect-stmts.c (vect_prologue_cost_for_slp_op): Remove here.
21608 (vect_model_simple_cost): Adjust.
21609 (vect_model_store_cost): Likewise.
21610 (vectorizable_store): Likewise.
21611
21612 2020-05-18 Martin Sebor <msebor@redhat.com>
21613
21614 PR middle-end/92815
21615 * tree-object-size.c (decl_init_size): New function.
21616 (addr_object_size): Call it.
21617 * tree.h (last_field): Declare.
21618 (first_field): Add attribute nonnull.
21619
21620 2020-05-18 Martin Sebor <msebor@redhat.com>
21621
21622 PR middle-end/94940
21623 * tree-vrp.c (vrp_prop::check_mem_ref): Remove unreachable code.
21624 * tree.c (component_ref_size): Correct the handling or array members
21625 of unions.
21626 Drop a pointless test.
21627 Rename a local variable.
21628
21629 2020-05-18 Jason Merrill <jason@redhat.com>
21630
21631 * aclocal.m4: Add ax_cxx_compile_stdcxx.m4.
21632 * configure.ac: Use AX_CXX_COMPILE_STDCXX(11).
21633
21634 2020-05-14 Jason Merrill <jason@redhat.com>
21635
21636 * doc/install.texi (Prerequisites): Update boostrap compiler
21637 requirement to C++11/GCC 4.8.
21638
21639 2020-05-18 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
21640
21641 PR tree-optimization/94952
21642 * gimple-ssa-store-merging.c (pass_store_merging::process_store):
21643 Initialize variables bitpos, bitregion_start, and bitregion_end in
21644 order to silence warnings about use of uninitialized variables.
21645
21646 2020-05-18 Carl Love <cel@us.ibm.com>
21647
21648 PR target/94833
21649 * config/rs6000/vsx.md (define_expand): Fix instruction generation for
21650 first_match_index_<mode>.
21651 * testsuite/gcc.target/powerpc/builtins-8-p9-runnable.c (main): Add
21652 additional test cases with zero vector elements.
21653
21654 2020-05-18 Uroš Bizjak <ubizjak@gmail.com>
21655
21656 PR target/95169
21657 * config/i386/i386-expand.c (ix86_expand_int_movcc):
21658 Avoid reversing a non-trapping comparison to a trapping one.
21659
21660 2020-05-18 Alex Coplan <alex.coplan@arm.com>
21661
21662 * config/arm/arm.c (output_move_double): Fix codegen when loading into
21663 a register pair with an odd base register.
21664
21665 2020-05-18 Uroš Bizjak <ubizjak@gmail.com>
21666
21667 * config/i386/i386-expand.c (ix86_expand_fp_absneg_operator):
21668 Do not emit FLAGS_REG clobber for TFmode.
21669 * config/i386/i386.md (*<code>tf2_1): Rewrite as
21670 define_insn_and_split. Mark operands 1 and 2 commutative.
21671 (*nabstf2_1): Ditto.
21672 (absneg SSE splitter): Use MODEF mode iterator instead of SSEMODEF.
21673 Do not swap memory operands. Simplify RTX generation.
21674 (neg abs SSE splitter): Ditto.
21675 * config/i386/sse.md (*<code><mode>2): Mark operands 1 and 2
21676 commutative. Do not swap operands. Simplify RTX generation.
21677 (*nabs<mode>2): Ditto.
21678
21679 2020-05-18 Richard Biener <rguenther@suse.de>
21680
21681 * tree-vect-slp.c (vect_slp_bb): Start after labels.
21682 (vect_get_constant_vectors): Really place init stmt after scalar defs.
21683 * tree-vect-stmts.c (vect_init_vector_1): Insert before
21684 region begin.
21685
21686 2020-05-18 H.J. Lu <hongjiu.lu@intel.com>
21687
21688 * config/i386/driver-i386.c (host_detect_local_cpu): Support
21689 Intel Airmont, Tremont, Comet Lake, Ice Lake and Tiger Lake
21690 processor families.
21691
21692 2020-05-18 Richard Biener <rguenther@suse.de>
21693
21694 PR middle-end/95171
21695 * tree-inline.c (remap_gimple_stmt): Split out trapping compares
21696 when inlining into a non-call EH function.
21697
21698 2020-05-18 Richard Biener <rguenther@suse.de>
21699
21700 PR tree-optimization/95172
21701 * tree-ssa-loop-im.c (execute_sm): Get flag whether we
21702 eventually need the conditional processing.
21703 (execute_sm_exit): When processing an orderd sequence
21704 avoid doing any conditional processing.
21705 (hoist_memory_references): Pass down whether all edges
21706 have ordered processing for a ref to execute_sm.
21707
21708 2020-05-17 Jeff Law <law@redhat.com>
21709
21710 * config/h8300/predicates.md (pc_or_label_operand): New predicate.
21711 * config/h8300/jumpcall.md (branch_true, branch_false): Consolidate
21712 into a single pattern using pc_or_label_operand.
21713 * config/h8300/combiner.md (bit branch patterns): Likewise.
21714 * config/h8300/peepholes.md (HImode and SImode branches): Likewise.
21715
21716 2020-05-17 H.J. Lu <hongjiu.lu@intel.com>
21717
21718 PR target/95021
21719 * config/i386/i386-features.c (has_non_address_hard_reg):
21720 Renamed to ...
21721 (pseudo_reg_set): This. Return the SET expression. Ignore
21722 pseudo register push.
21723 (general_scalar_to_vector_candidate_p): Combine single_set and
21724 has_non_address_hard_reg calls to pseudo_reg_set.
21725 (timode_scalar_to_vector_candidate_p): Likewise.
21726 * config/i386/i386.md (*pushv1ti2): New pattern.
21727
21728 2020-05-17 Aldy Hernandez <aldyh@redhat.com>
21729
21730 Revert:
21731 2020-05-17 Aldy Hernandez <aldyh@redhat.com>
21732
21733 * tree-vrp.c (operand_less_p): Move to...
21734 * vr-values.c (operand_less_p): ...here.
21735 * tree-vrp.h (operand_less_p): Remove.
21736
21737 2020-05-17 Aldy Hernandez <aldyh@redhat.com>
21738
21739 * tree-vrp.c (operand_less_p): Move to...
21740 * vr-values.c (operand_less_p): ...here.
21741 * tree-vrp.h (operand_less_p): Remove.
21742
21743 2020-05-17 Aldy Hernandez <aldyh@redhat.com>
21744
21745 * tree-vrp.c (class vrp_insert): Remove prototype for
21746 live_on_edge.
21747
21748 2020-05-17 Aldy Hernandez <aldyh@redhat.com>
21749
21750 * tree-vrp.c (class live_names): New.
21751 (live_on_edge): Move into live_names.
21752 (build_assert_expr_for): Move into vrp_insert.
21753 (find_assert_locations_in_bb): Rename from
21754 find_assert_locations_1.
21755 (process_assert_insertions_for): Move into vrp_insert.
21756 (compare_assert_loc): Same.
21757 (remove_range_assertions): Same.
21758 (dump_asserts_for): Rename to vrp_insert::dump.
21759 (debug_asserts_for): Rename to vrp_insert::debug.
21760 (dump_all_asserts): Rename to vrp_insert::dump.
21761 (debug_all_asserts): Rename to vrp_insert::debug.
21762
21763 2020-05-17 Aldy Hernandez <aldyh@redhat.com>
21764
21765 * tree-vrp.c (class vrp_prop): Move check_all_array_refs,
21766 check_array_ref, check_mem_ref, and search_for_addr_array
21767 into new class...
21768 (class array_bounds_checker): ...here.
21769 (class check_array_bounds_dom_walker): Adjust to use
21770 array_bounds_checker.
21771 (check_all_array_refs): Move into array_bounds_checker and rename
21772 to check.
21773 (class vrp_folder): Make fold_predicate_in private.
21774
21775 2020-05-15 Jeff Law <law@redhat.com>
21776
21777 * config/h8300/h8300.md (SFI iterator): New iterator for
21778 SFmode and SImode.
21779 * config/h8300/peepholes.md (memory comparison): Use mode
21780 iterator to consolidate 3 patterns into one.
21781 (stack allocation and stack store): Handle SFmode. Handle
21782 8 byte allocations.
21783
21784 2020-05-15 Segher Boessenkool <segher@kernel.crashing.org>
21785
21786 * config/rs6000/rs6000-builtin.def (BU_FUTURE_MISC_2): Also require
21787 RS6000_BTM_POWERPC64.
21788
21789 2020-05-15 Uroš Bizjak <ubizjak@gmail.com>
21790
21791 * config/i386/i386.md (SWI48DWI): New mode iterator.
21792 (*push<mode>2): Allow XMM registers.
21793 (*pushdi2_rex64): Ditto.
21794 (*pushsi2_rex64): Ditto.
21795 (*pushsi2): Ditto.
21796 (push XMM reg splitter): New splitter
21797
21798 (*pushdf) Change "x" operand constraint to "v".
21799 (*pushsf_rex64): Ditto.
21800 (*pushsf): Ditto.
21801
21802 2020-05-15 Richard Biener <rguenther@suse.de>
21803
21804 PR tree-optimization/92260
21805 * tree-vect-slp.c (vect_get_constant_vectors): Compute
21806 the number of vector stmts in a canonical way.
21807
21808 2020-05-15 Martin Liska <mliska@suse.cz>
21809
21810 * hsa-gen.c (get_symbol_for_decl): Fix misleading indentation
21811 warning.
21812
21813 2020-05-15 Andrew Stubbs <ams@codesourcery.com>
21814
21815 * config/gcn/gcn-valu.md (v<expander><mode>3): Fix unsignedp.
21816
21817 2020-05-15 Richard Biener <rguenther@suse.de>
21818
21819 PR tree-optimization/95133
21820 * gimple-ssa-split-paths.c
21821 (find_block_to_duplicate_for_splitting_paths): Check for
21822 normal edges.
21823
21824 2020-05-15 Christophe Lyon <christophe.lyon@linaro.org>
21825
21826 * config/arm/arm.c (reg_needs_saving_p): Add support for interrupt
21827 routines.
21828 (arm_compute_save_reg0_reg12_mask): Use reg_needs_saving_p.
21829
21830 2020-05-15 Tobias Burnus <tobias@codesourcery.com>
21831
21832 PR middle-end/94635
21833 * gimplify.c (gimplify_scan_omp_clauses): For MAP_TO_PSET with
21834 OMP_TARGET_EXIT_DATA, use 'release:' unless the associated
21835 item is 'delete:'.
21836
21837 2020-05-15 Uroš Bizjak <ubizjak@gmail.com>
21838
21839 PR target/95046
21840 * config/i386/i386.md (isa): Add sse3_noavx.
21841 (enabled): Handle sse3_noavx.
21842
21843 * config/i386/mmx.md (mmx_haddv2sf3): New expander.
21844 (*mmx_haddv2sf3): Rename from mmx_haddv2sf3. Add SSE/AVX
21845 alternatives. Match commutative vec_select selector operands.
21846 (*mmx_haddv2sf3_low): New insn pattern.
21847
21848 (*mmx_hsubv2sf3): Add SSE/AVX alternatives.
21849 (*mmx_hsubv2sf3_low): New insn pattern.
21850
21851 2020-05-15 Richard Biener <rguenther@suse.de>
21852
21853 PR tree-optimization/33315
21854 * tree-ssa-sink.c: Include tree-eh.h.
21855 (sink_stats): Add commoned member.
21856 (sink_common_stores_to_bb): New function implementing store
21857 commoning by sinking to the successor.
21858 (sink_code_in_bb): Call it, pass down TODO_cleanup_cfg returned.
21859 (pass_sink_code::execute): Likewise. Record commoned stores
21860 in statistics.
21861
21862 2020-05-14 Xiong Hu Luo <luoxhu@linux.ibm.com>
21863
21864 PR rtl-optimization/37451, part of PR target/61837
21865 * loop-doloop.c (doloop_simplify_count): New function. Simplify
21866 (add -1; zero_ext; add +1) to zero_ext when not wrapping.
21867 (doloop_modify): Call doloop_simplify_count.
21868
21869 2020-05-14 H.J. Lu <hongjiu.lu@intel.com>
21870
21871 PR jit/94778
21872 * doc/sourcebuild.texi: Document effective target lgccjit.
21873
21874 2020-05-14 Andrew Stubbs <ams@codesourcery.com>
21875
21876 * config/gcn/gcn-valu.md (add<mode>3_zext_dup): Change to a
21877 define_expand, and rename the original to ...
21878 (add<mode>3_vcc_zext_dup): ... this, and add a custom VCC operand.
21879 (add<mode>3_zext_dup_exec): Likewise, with ...
21880 (add<mode>3_vcc_zext_dup_exec): ... this.
21881 (add<mode>3_zext_dup2): Likewise, with ...
21882 (add<mode>3_zext_dup_exec): ... this.
21883 (add<mode>3_zext_dup2_exec): Likewise, with ...
21884 (add<mode>3_zext_dup2): ... this.
21885 * config/gcn/gcn.c (gcn_expand_scalar_to_vector_address): Switch
21886 addv64di3_zext* calls to use addv64di3_vcc_zext*.
21887
21888 2020-05-14 Uroš Bizjak <ubizjak@gmail.com>
21889
21890 PR target/95046
21891 * config/i386/sse.md (truncv2dfv2df2): New insn pattern.
21892 (extendv2sfv2df2): Ditto.
21893
21894 2020-05-14 H.J. Lu <hongjiu.lu@intel.com>
21895
21896 * configure: Regenerated.
21897
21898 2020-05-14 Christophe Lyon <christophe.lyon@linaro.org>
21899
21900 * config/arm/arm.c (reg_needs_saving_p): New function.
21901 (use_return_insn): Use reg_needs_saving_p.
21902 (arm_get_vfp_saved_size): Likewise.
21903 (arm_compute_frame_layout): Likewise.
21904 (arm_save_coproc_regs): Likewise.
21905 (thumb1_expand_epilogue): Likewise.
21906 (arm_expand_epilogue_apcs_frame): Likewise.
21907 (arm_expand_epilogue): Likewise.
21908
21909 2020-05-14 Christophe Lyon <christophe.lyon@linaro.org>
21910
21911 * config/arm/arm.c (thumb1_expand_prologue): Update error message.
21912
21913 2020-05-14 Uroš Bizjak <ubizjak@gmail.com>
21914
21915 PR target/95046
21916 * config/i386/sse.md (sse2_cvtpi2pd): Add memory to alternative 1.
21917
21918 (floatv2siv2df2): New expander.
21919 (floatunsv2siv2df2): New insn pattern.
21920
21921 (fix_truncv2dfv2si2): New expander.
21922 (fixuns_truncv2dfv2si2): New insn pattern.
21923
21924 2020-05-14 Richard Sandiford <richard.sandiford@arm.com>
21925
21926 PR target/95105
21927 * config/aarch64/aarch64-sve-builtins.cc
21928 (handle_arm_sve_vector_bits_attribute): Create a copy of the
21929 original type's TYPE_MAIN_VARIANT, then reapply all the differences
21930 between the original type and its main variant.
21931
21932 2020-05-14 Richard Biener <rguenther@suse.de>
21933
21934 PR middle-end/95118
21935 * real.c (real_to_decimal_for_mode): Make sure we handle
21936 a zero with nonzero exponent.
21937
21938 2020-05-14 Jakub Jelinek <jakub@redhat.com>
21939
21940 * Makefile.in (GTFILES): Add omp-general.c.
21941 * cgraph.h (struct cgraph_node): Add declare_variant_alt and
21942 calls_declare_variant_alt members and initialize them in the
21943 ctor.
21944 * ipa.c (symbol_table::remove_unreachable_nodes): Handle direct
21945 calls to declare_variant_alt nodes.
21946 * lto-cgraph.c (lto_output_node): Write declare_variant_alt
21947 and calls_declare_variant_alt.
21948 (input_overwrite_node): Read them back.
21949 * omp-simd-clone.c (simd_clone_create): Copy calls_declare_variant_alt
21950 bit.
21951 * tree-inline.c (expand_call_inline): Or in calls_declare_variant_alt
21952 bit.
21953 (tree_function_versioning): Copy calls_declare_variant_alt bit.
21954 * omp-offload.c (execute_omp_device_lower): Call
21955 omp_resolve_declare_variant on direct function calls.
21956 (pass_omp_device_lower::gate): Also enable for
21957 calls_declare_variant_alt functions.
21958 * omp-general.c (omp_maybe_offloaded): Return false after inlining.
21959 (omp_context_selector_matches): Handle the case when
21960 cfun->curr_properties has PROP_gimple_any bit set.
21961 (struct omp_declare_variant_entry): New type.
21962 (struct omp_declare_variant_base_entry): New type.
21963 (struct omp_declare_variant_hasher): New type.
21964 (omp_declare_variant_hasher::hash, omp_declare_variant_hasher::equal):
21965 New methods.
21966 (omp_declare_variants): New variable.
21967 (struct omp_declare_variant_alt_hasher): New type.
21968 (omp_declare_variant_alt_hasher::hash,
21969 omp_declare_variant_alt_hasher::equal): New methods.
21970 (omp_declare_variant_alt): New variables.
21971 (omp_resolve_late_declare_variant): New function.
21972 (omp_resolve_declare_variant): Call omp_resolve_late_declare_variant
21973 when called late. Create a magic declare_variant_alt fndecl and
21974 cgraph node and return that if decision needs to be deferred until
21975 after gimplification.
21976 * cgraph.c (symbol_table::create_edge): Or in calls_declare_variant_alt
21977 bit.
21978
21979 PR middle-end/95108
21980 * omp-simd-clone.c (struct modify_stmt_info): Add after_stmt member.
21981 (ipa_simd_modify_stmt_ops): For PHIs, only add before first stmt in
21982 entry block if info->after_stmt is NULL, otherwise add after that stmt
21983 and update it after adding each stmt.
21984 (ipa_simd_modify_function_body): Initialize info.after_stmt.
21985
21986 * function.h (struct function): Add has_omp_target bit.
21987 * omp-offload.c (omp_discover_declare_target_fn_r): New function,
21988 old renamed to ...
21989 (omp_discover_declare_target_tgt_fn_r): ... this.
21990 (omp_discover_declare_target_var_r): Call
21991 omp_discover_declare_target_tgt_fn_r instead of
21992 omp_discover_declare_target_fn_r.
21993 (omp_discover_implicit_declare_target): Also queue functions with
21994 has_omp_target bit set, for those walk with
21995 omp_discover_declare_target_fn_r, for declare target to functions
21996 walk with omp_discover_declare_target_tgt_fn_r.
21997
21998 2020-05-14 Uroš Bizjak <ubizjak@gmail.com>
21999
22000 PR target/95046
22001 * config/i386/mmx.md (mmx_fix_truncv2sfv2si2): Rename from mmx_pf2id.
22002 Add SSE/AVX alternative. Change operand predicates from
22003 nonimmediate_operand to register_mmxmem_operand.
22004 Enable instruction pattern for TARGET_MMX_WITH_SSE.
22005 (fix_truncv2sfv2si2): New expander.
22006 (fixuns_truncv2sfv2si2): New insn pattern.
22007
22008 (mmx_floatv2siv2sf2): rename from mmx_floatv2si2.
22009 Add SSE/AVX alternative. Change operand predicates from
22010 nonimmediate_operand to register_mmxmem_operand.
22011 Enable instruction pattern for TARGET_MMX_WITH_SSE.
22012 (floatv2siv2sf2): New expander.
22013 (floatunsv2siv2sf2): New insn pattern.
22014
22015 * config/i386/i386-builtin.def (IX86_BUILTIN_PF2ID):
22016 Update for rename.
22017 (IX86_BUILTIN_PI2FD): Ditto.
22018
22019 2020-05-14 Andreas Krebbel <krebbel@linux.ibm.com>
22020
22021 * config/s390/s390.c (s390_emit_stack_probe): Call the probe_stack
22022 expander.
22023 * config/s390/s390.md ("@probe_stack2<mode>", "probe_stack"): New
22024 expanders.
22025
22026 2020-05-14 Andreas Krebbel <krebbel@linux.ibm.com>
22027
22028 * config/s390/s390.c (allocate_stack_space): Add missing updates
22029 of last_probe_offset.
22030
22031 2020-05-14 Andreas Krebbel <krebbel@linux.ibm.com>
22032
22033 * config/s390/s390.md ("allocate_stack"): Call
22034 anti_adjust_stack_and_probe_stack_clash when stack clash
22035 protection is enabled.
22036 * explow.c (anti_adjust_stack_and_probe_stack_clash): Remove
22037 prototype. Remove static.
22038 * explow.h (anti_adjust_stack_and_probe_stack_clash): Add
22039 prototype.
22040
22041 2020-05-13 Kelvin Nilsen <kelvin@gcc.gnu.org>
22042
22043 * config/rs6000/altivec.h (vec_extractl): New #define.
22044 (vec_extracth): Likewise.
22045 * config/rs6000/altivec.md (UNSPEC_EXTRACTL): New constant.
22046 (UNSPEC_EXTRACTR): Likewise.
22047 (vextractl<mode>): New expansion.
22048 (vextractl<mode>_internal): New insn.
22049 (vextractr<mode>): New expansion.
22050 (vextractr<mode>_internal): New insn.
22051 * config/rs6000/rs6000-builtin.def (__builtin_altivec_vextdubvlx):
22052 New built-in function.
22053 (__builtin_altivec_vextduhvlx): Likewise.
22054 (__builtin_altivec_vextduwvlx): Likewise.
22055 (__builtin_altivec_vextddvlx): Likewise.
22056 (__builtin_altivec_vextdubvhx): Likewise.
22057 (__builtin_altivec_vextduhvhx): Likewise.
22058 (__builtin_altivec_vextduwvhx): Likewise.
22059 (__builtin_altivec_vextddvhx): Likewise.
22060 (__builtin_vec_extractl): New overloaded built-in function.
22061 (__builtin_vec_extracth): Likewise.
22062 * config/rs6000/rs6000-call.c (altivec_overloaded_builtins):
22063 Define overloaded forms of __builtin_vec_extractl and
22064 __builtin_vec_extracth.
22065 (builtin_function_type): Add cases to mark arguments of new
22066 built-in functions as unsigned.
22067 (rs6000_common_init_builtins): Add
22068 opaque_ftype_opaque_opaque_opaque_opaque.
22069 * config/rs6000/rs6000.md (du_or_d): New mode attribute.
22070 * doc/extend.texi (PowerPC AltiVec Built-in Functions Available
22071 for a Future Architecture): Add description of vec_extractl and
22072 vec_extractr built-in functions.
22073
22074 2020-05-13 Richard Biener <rguenther@suse.de>
22075
22076 * target.def (add_stmt_cost): Add new vectype parameter.
22077 * targhooks.c (default_add_stmt_cost): Adjust.
22078 * targhooks.h (default_add_stmt_cost): Likewise.
22079 * config/aarch64/aarch64.c (aarch64_add_stmt_cost): Take new
22080 vectype parameter.
22081 * config/arm/arm.c (arm_add_stmt_cost): Likewise.
22082 * config/i386/i386.c (ix86_add_stmt_cost): Likewise.
22083 * config/rs6000/rs6000.c (rs6000_add_stmt_cost): Likewise.
22084
22085 * tree-vectorizer.h (stmt_info_for_cost::vectype): Add.
22086 (dump_stmt_cost): Add new vectype parameter.
22087 (add_stmt_cost): Likewise.
22088 (record_stmt_cost): Likewise.
22089 (record_stmt_cost): Add overload with old signature.
22090 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
22091 Adjust.
22092 (vect_get_known_peeling_cost): Likewise.
22093 (vect_estimate_min_profitable_iters): Likewise.
22094 * tree-vectorizer.c (dump_stmt_cost): Add new vectype parameter.
22095 * tree-vect-stmts.c (record_stmt_cost): Likewise.
22096 (vect_prologue_cost_for_slp_op): Remove stmt_vec_info parameter
22097 and pass down correct vectype and NULL stmt_info.
22098 (vect_model_simple_cost): Adjust.
22099 (vect_model_store_cost): Likewise.
22100
22101 2020-05-13 Richard Biener <rguenther@suse.de>
22102
22103 * tree-vectorizer.h (SLP_INSTANCE_GROUP_SIZE): Remove.
22104 (_slp_instance::group_size): Likewise.
22105 * tree-vect-loop.c (vectorizable_reduction): The group size
22106 is the number of lanes in the node.
22107 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Likewise.
22108 (vect_analyze_slp_instance): Do not set SLP_INSTANCE_GROUP_SIZE,
22109 verify it matches the instance trees number of lanes.
22110 (vect_slp_analyze_node_operations_1): Use the numer of lanes
22111 in the node as group size.
22112 (vect_bb_vectorization_profitable_p): Use the instance root
22113 number of lanes for the size of life.
22114 (vect_schedule_slp_instance): Use the number of lanes as
22115 group_size.
22116 * tree-vect-stmts.c (vectorizable_load): Remove SLP instance
22117 parameter. Use the number of lanes of the load for the group
22118 size in the gap adjustment code.
22119 (vect_analyze_stmt): Adjust.
22120 (vect_transform_stmt): Likewise.
22121
22122 2020-05-13 Jakub Jelinek <jakub@redhat.com>
22123
22124 PR debug/95080
22125 * cfgrtl.c (purge_dead_edges): Skip over debug and note insns even
22126 if the last insn is a note.
22127
22128 PR tree-optimization/95060
22129 * tree-ssa-math-opts.c (convert_mult_to_fma_1): Fold a NEGATE_EXPR
22130 if it is the single use of the FMA internal builtin.
22131
22132 2020-05-13 Bin Cheng <bin.cheng@linux.alibaba.com>
22133
22134 PR tree-optimization/94969
22135 * tree-data-dependence.c (constant_access_functions): Rename to...
22136 (invariant_access_functions): ...this. Add parameter. Check for
22137 invariant access function, rather than constant.
22138 (build_classic_dist_vector): Call above function.
22139 * tree-loop-distribution.c (pg_add_dependence_edges): Add comment.
22140
22141 2020-05-13 Hongtao Liu <hongtao.liu@intel.com>
22142
22143 PR target/94118
22144 * doc/extend.texi (x86Operandmodifiers): Document more x86
22145 operand modifier.
22146 * gcc/config/i386/i386.c: Add comment for operand modifier N and I.
22147
22148 2020-05-12 Giuliano Belinassi <giuliano.belinassi@usp.br>
22149
22150 * tree-vrp.c (class vrp_insert): New.
22151 (insert_range_assertions): Move to class vrp_insert.
22152 (dump_all_asserts): Same as above.
22153 (dump_asserts_for): Same as above.
22154 (live): Same as above.
22155 (need_assert_for): Same as above.
22156 (live_on_edge): Same as above.
22157 (finish_register_edge_assert_for): Same as above.
22158 (find_switch_asserts): Same as above.
22159 (find_assert_locations): Same as above.
22160 (find_assert_locations_1): Same as above.
22161 (find_conditional_asserts): Same as above.
22162 (process_assert_insertions): Same as above.
22163 (register_new_assert_for): Same as above.
22164 (vrp_prop): New variable fun.
22165 (vrp_initialize): New parameter.
22166 (identify_jump_threads): Same as above.
22167 (execute_vrp): Same as above.
22168
22169
22170 2020-05-12 Keith Packard <keith.packard@sifive.com>
22171
22172 * config/riscv/riscv.c (riscv_unique_section): New.
22173 (TARGET_ASM_UNIQUE_SECTION): New.
22174
22175 2020-05-12 Craig Blackmore <craig.blackmore@embecosm.com>
22176
22177 * config.gcc: Add riscv-shorten-memrefs.o to extra_objs for riscv.
22178 * config/riscv/riscv-passes.def: New file.
22179 * config/riscv/riscv-protos.h (make_pass_shorten_memrefs): Declare.
22180 * config/riscv/riscv-shorten-memrefs.c: New file.
22181 * config/riscv/riscv.c (tree-pass.h): New include.
22182 (riscv_compressed_reg_p): New Function
22183 (riscv_compressed_lw_offset_p): Likewise.
22184 (riscv_compressed_lw_address_p): Likewise.
22185 (riscv_shorten_lw_offset): Likewise.
22186 (riscv_legitimize_address): Attempt to convert base + large_offset
22187 to compressible new_base + small_offset.
22188 (riscv_address_cost): Make anticipated compressed load/stores
22189 cheaper for code size than uncompressed load/stores.
22190 (riscv_register_priority): Move compressed register check to
22191 riscv_compressed_reg_p.
22192 * config/riscv/riscv.h (C_S_BITS): Define.
22193 (CSW_MAX_OFFSET): Define.
22194 * config/riscv/riscv.opt (mshorten-memefs): New option.
22195 * config/riscv/t-riscv (riscv-shorten-memrefs.o): New rule.
22196 (PASSES_EXTRA): Add riscv-passes.def.
22197 * doc/invoke.texi: Document -mshorten-memrefs.
22198
22199 * config/riscv/riscv.c (riscv_new_address_profitable_p): New function.
22200 (TARGET_NEW_ADDRESS_PROFITABLE_P): Define.
22201 * doc/tm.texi: Regenerate.
22202 * doc/tm.texi.in (TARGET_NEW_ADDRESS_PROFITABLE_P): New hook.
22203 * sched-deps.c (attempt_change): Use old address if it is cheaper than
22204 new address.
22205 * target.def (new_address_profitable_p): New hook.
22206 * targhooks.c (default_new_address_profitable_p): New function.
22207 * targhooks.h (default_new_address_profitable_p): Declare.
22208
22209 2020-05-12 Uroš Bizjak <ubizjak@gmail.com>
22210
22211 PR target/95046
22212 * config/i386/mmx.md (copysignv2sf3): New expander.
22213 (xorsignv2sf3): Ditto.
22214 (signbitv2sf3): Ditto.
22215
22216 2020-05-12 Uroš Bizjak <ubizjak@gmail.com>
22217
22218 PR target/95046
22219 * config/i386/mmx.md (fmav2sf4): New insn pattern.
22220 (fmsv2sf4): Ditto.
22221 (fnmav2sf4): Ditto.
22222 (fnmsv2sf4): Ditto.
22223
22224 2020-05-12 H.J. Lu <hongjiu.lu@intel.com>
22225
22226 * Makefile.in (CET_HOST_FLAGS): New.
22227 (COMPILER): Add $(CET_HOST_FLAGS).
22228 * configure.ac: Add GCC_CET_HOST_FLAGS(CET_HOST_FLAGS) and
22229 AC_SUBST(CET_HOST_FLAGS). Clear CET_HOST_FLAGS if jit isn't
22230 enabled.
22231 * aclocal.m4: Regenerated.
22232 * configure: Likewise.
22233
22234 2020-05-12 Uroš Bizjak <ubizjak@gmail.com>
22235
22236 PR target/95046
22237 * config/i386/mmx.md (<code>v2sf2): New insn pattern.
22238 (*mmx_<code>v2sf2): New insn_and_split pattern.
22239 (*mmx_nabsv2sf2): Ditto.
22240 (*mmx_andnotv2sf3): New insn pattern.
22241 (*mmx_<code>v2sf3): Ditto.
22242 * config/i386/i386.md (absneg_op): New code attribute.
22243 * config/i386/i386.c (ix86_build_const_vector): Handle V2SFmode.
22244 (ix86_build_signbit_mask): Ditto.
22245
22246 2020-05-12 Richard Biener <rguenther@suse.de>
22247
22248 * tree-ssa-live.c (remove_unused_locals): Remove dead debug
22249 bind resets.
22250
22251 2020-05-12 Jozef Lawrynowicz <jozef.l@mittosystems.com>
22252
22253 * config/msp430/msp430-protos.h (msp430_output_aligned_decl_common):
22254 Update prototype to include "local" argument.
22255 * config/msp430/msp430.c (msp430_output_aligned_decl_common): Add
22256 "local" argument. Handle local common decls.
22257 * config/msp430/msp430.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Adjust
22258 msp430_output_aligned_decl_common call with 0 for "local" argument.
22259 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
22260
22261 2020-05-12 Richard Biener <rguenther@suse.de>
22262
22263 * cfghooks.c (split_edge): Preserve EDGE_DFS_BACK if set.
22264
22265 2020-05-12 Martin Liska <mliska@suse.cz>
22266
22267 PR sanitizer/95033
22268 PR sanitizer/95051
22269 * sanopt.c (sanitize_rewrite_addressable_params):
22270 Clear DECL_NOT_GIMPLE_REG_P for argument.
22271
22272 2020-05-12 Richard Sandiford <richard.sandiford@arm.com>
22273
22274 PR tree-optimization/94980
22275 * tree-vect-generic.c (expand_vector_comparison): Use
22276 vector_element_bits_tree to get the element size in bits,
22277 rather than using TYPE_SIZE.
22278 (expand_vector_condition, vector_element): Likewise.
22279
22280 2020-05-12 Richard Sandiford <richard.sandiford@arm.com>
22281
22282 PR tree-optimization/94980
22283 * tree-vect-generic.c (build_replicated_const): Take the number
22284 of bits as a parameter, instead of the type of the elements.
22285 (do_plus_minus): Update accordingly, using vector_element_bits
22286 to calculate the correct number of bits.
22287 (do_negate): Likewise.
22288
22289 2020-05-12 Richard Sandiford <richard.sandiford@arm.com>
22290
22291 PR tree-optimization/94980
22292 * tree.h (vector_element_bits, vector_element_bits_tree): Declare.
22293 * tree.c (vector_element_bits, vector_element_bits_tree): New.
22294 * match.pd: Use the new functions instead of determining the
22295 vector element size directly from TYPE_SIZE(_UNIT).
22296 * tree-vect-data-refs.c (vect_gather_scatter_fn_p): Likewise.
22297 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Likewise.
22298 * tree-vect-stmts.c (vect_is_simple_cond): Likewise.
22299 * tree-vect-generic.c (expand_vector_piecewise): Likewise.
22300 (expand_vector_conversion): Likewise.
22301 (expand_vector_addition): Likewise for a TYPE_SIZE_UNIT used as
22302 a divisor. Convert the dividend to bits to compensate.
22303 * tree-vect-loop.c (vectorizable_live_operation): Call
22304 vector_element_bits instead of open-coding it.
22305
22306 2020-05-12 Jakub Jelinek <jakub@redhat.com>
22307
22308 * omp-offload.h (omp_discover_implicit_declare_target): Declare.
22309 * omp-offload.c: Include context.h.
22310 (omp_declare_target_fn_p, omp_declare_target_var_p,
22311 omp_discover_declare_target_fn_r, omp_discover_declare_target_var_r,
22312 omp_discover_implicit_declare_target): New functions.
22313 * cgraphunit.c (analyze_functions): Call
22314 omp_discover_implicit_declare_target.
22315
22316 2020-05-12 Richard Biener <rguenther@suse.de>
22317
22318 * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Canonicalize
22319 literal constant &MEM[..] to a constant literal.
22320
22321 2020-05-12 Richard Biener <rguenther@suse.de>
22322
22323 PR tree-optimization/95045
22324 * dbgcnt.def (lim): Add debug-counter.
22325 * tree-ssa-loop-im.c: Include dbgcnt.h.
22326 (find_refs_for_sm): Use lim debug counter for store motion
22327 candidates.
22328 (do_store_motion): Rename form store_motion. Commit edge
22329 insertions...
22330 (store_motion_loop): ... here.
22331 (tree_ssa_lim): Adjust.
22332
22333 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
22334
22335 * config/rs6000/altivec.h (vec_clzm): Rename to vec_cntlzm.
22336 (vec_ctzm): Rename to vec_cnttzm.
22337 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
22338 Change fourth operand for vec_ternarylogic to require
22339 compatibility with unsigned SImode rather than unsigned QImode.
22340 * config/rs6000/rs6000-call.c (altivec_overloaded_builtins):
22341 Remove overloaded forms of vec_gnb that are no longer needed.
22342 * doc/extend.texi (PowerPC AltiVec Built-in Functions Available
22343 for a Future Architecture): Replace vec_clzm with vec_cntlzm;
22344 replace vec_ctzm with vec_cntlzm; remove four unwanted forms of
22345 vec_gnb; move vec_ternarylogic documentation into this section
22346 and replace const unsigned char with const unsigned int as its
22347 fourth argument.
22348
22349 2020-05-11 Carl Love <cel@us.ibm.com>
22350
22351 * config/rs6000/altivec.h (vec_genpcvm): New #define.
22352 * config/rs6000/rs6000-builtin.def (XXGENPCVM_V16QI): New built-in
22353 instantiation.
22354 (XXGENPCVM_V8HI): Likewise.
22355 (XXGENPCVM_V4SI): Likewise.
22356 (XXGENPCVM_V2DI): Likewise.
22357 (XXGENPCVM): New overloaded built-in instantiation.
22358 * config/rs6000/rs6000-call.c (altivec_overloaded_builtins): Add
22359 entries for FUTURE_BUILTIN_VEC_XXGENPCVM.
22360 (altivec_expand_builtin): Add special handling for
22361 FUTURE_BUILTIN_VEC_XXGENPCVM.
22362 (builtin_function_type): Add handling for
22363 FUTURE_BUILTIN_XXGENPCVM_{V16QI,V8HI,V4SI,V2DI}.
22364 * config/rs6000/vsx.md (VSX_EXTRACT_I4): New mode iterator.
22365 (UNSPEC_XXGENPCV): New constant.
22366 (xxgenpcvm_<mode>_internal): New insn.
22367 (xxgenpcvm_<mode>): New expansion.
22368 * doc/extend.texi: Add documentation for vec_genpcvm built-ins.
22369
22370 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
22371
22372 * config/rs6000/altivec.h (vec_strir): New #define.
22373 (vec_stril): Likewise.
22374 (vec_strir_p): Likewise.
22375 (vec_stril_p): Likewise.
22376 * config/rs6000/altivec.md (UNSPEC_VSTRIR): New constant.
22377 (UNSPEC_VSTRIL): Likewise.
22378 (vstrir_<mode>): New expansion.
22379 (vstrir_code_<mode>): New insn.
22380 (vstrir_p_<mode>): New expansion.
22381 (vstrir_p_code_<mode>): New insn.
22382 (vstril_<mode>): New expansion.
22383 (vstril_code_<mode>): New insn.
22384 (vstril_p_<mode>): New expansion.
22385 (vstril_p_code_<mode>): New insn.
22386 * config/rs6000/rs6000-builtin.def (__builtin_altivec_vstribr):
22387 New built-in function.
22388 (__builtin_altivec_vstrihr): Likewise.
22389 (__builtin_altivec_vstribl): Likewise.
22390 (__builtin_altivec_vstrihl): Likewise.
22391 (__builtin_altivec_vstribr_p): Likewise.
22392 (__builtin_altivec_vstrihr_p): Likewise.
22393 (__builtin_altivec_vstribl_p): Likewise.
22394 (__builtin_altivec_vstrihl_p): Likewise.
22395 (__builtin_vec_strir): New overloaded built-in function.
22396 (__builtin_vec_stril): Likewise.
22397 (__builtin_vec_strir_p): Likewise.
22398 (__builtin_vec_stril_p): Likewise.
22399 * config/rs6000/rs6000-call.c (altivec_overloaded_builtins):
22400 Define overloaded forms of __builtin_vec_strir,
22401 __builtin_vec_stril, __builtin_vec_strir_p, and
22402 __builtin_vec_stril_p.
22403 * doc/extend.texi (PowerPC AltiVec Built-in Functions Available
22404 for a Future Architecture): Add description of vec_stril,
22405 vec_stril_p, vec_strir, and vec_strir_p built-in functions.
22406
22407 2020-05-11 Kelvin Nilsen <wschmidt@linux.ibm.com>
22408
22409 * config/rs6000/altivec.h (vec_ternarylogic): New #define.
22410 * config/rs6000/altivec.md (UNSPEC_XXEVAL): New constant.
22411 (xxeval): New insn.
22412 * config/rs6000/predicates.md (u8bit_cint_operand): New predicate.
22413 * config/rs6000/rs6000-builtin.def: Add handling of new macro
22414 RS6000_BUILTIN_4.
22415 (BU_FUTURE_V_4): New macro. Use it.
22416 (BU_FUTURE_OVERLOAD_4): Likewise.
22417 * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin): Add
22418 handling for quaternary built-in functions.
22419 (altivec_resolve_overloaded_builtin): Add special-case handling
22420 for __builtin_vec_xxeval.
22421 * config/rs6000/rs6000-call.c: Add handling of new macro
22422 RS6000_BUILTIN_4 in initialization of rs6000_builtin_info,
22423 bdesc0_arg, bdesc1_arg, bdesc2_arg, bdesc_3arg,
22424 bdesc_altivec_preds, bdesc_abs, and bdesc_htm arrays.
22425 (altivec_overloaded_builtins): Add definitions for
22426 FUTURE_BUILTIN_VEC_XXEVAL.
22427 (bdesc_4arg): New array.
22428 (htm_expand_builtin): Add handling for quaternary built-in
22429 functions.
22430 (rs6000_expand_quaternop_builtin): New function.
22431 (rs6000_expand_builtin): Add handling for quaternary built-in
22432 functions.
22433 (rs6000_init_builtins): Initialize builtin_mode_to_type entries
22434 for unsigned QImode and unsigned HImode.
22435 (builtin_quaternary_function_type): New function.
22436 (rs6000_common_init_builtins): Add handling of quaternary
22437 operations.
22438 * config/rs6000/rs6000.h (RS6000_BTC_QUATERNARY): New defined
22439 constant.
22440 (RS6000_BTC_PREDICATE): Change value of constant.
22441 (RS6000_BTC_ABS): Likewise.
22442 (rs6000_builtins): Add support for new macro RS6000_BUILTIN_4.
22443 * doc/extend.texi (PowerPC AltiVec Built-In Functions Available
22444 for a Future Architecture): Add description of vec_ternarylogic
22445 built-in function.
22446
22447 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
22448
22449 * config/rs6000/rs6000-builtin.def (__builtin_pdepd): New built-in
22450 function.
22451 (__builtin_pextd): Likewise.
22452 * config/rs6000/rs6000.md (UNSPEC_PDEPD): New constant.
22453 (UNSPEC_PEXTD): Likewise.
22454 (pdepd): New insn.
22455 (pextd): Likewise.
22456 * doc/extend.texi (Basic PowerPC Built-in Functions Available for
22457 a Future Architecture): Add descriptions of __builtin_pdepd and
22458 __builtin_pextd functions.
22459
22460 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
22461
22462 * config/rs6000/altivec.h (vec_clrl): New #define.
22463 (vec_clrr): Likewise.
22464 * config/rs6000/altivec.md (UNSPEC_VCLRLB): New constant.
22465 (UNSPEC_VCLRRB): Likewise.
22466 (vclrlb): New insn.
22467 (vclrrb): Likewise.
22468 * config/rs6000/rs6000-builtin.def (__builtin_altivec_vclrlb): New
22469 built-in function.
22470 (__builtin_altivec_vclrrb): Likewise.
22471 (__builtin_vec_clrl): New overloaded built-in function.
22472 (__builtin_vec_clrr): Likewise.
22473 * config/rs6000/rs6000-call.c (altivec_overloaded_builtins):
22474 Define overloaded forms of __builtin_vec_clrl and
22475 __builtin_vec_clrr.
22476 * doc/extend.texi (PowerPC AltiVec Built-in Functions Available
22477 for a Future Architecture): Add descriptions of vec_clrl and
22478 vec_clrr.
22479
22480 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
22481
22482 * config/rs6000/rs6000-builtin.def (__builtin_cntlzdm): New
22483 built-in function definition.
22484 (__builtin_cnttzdm): Likewise.
22485 * config/rs6000/rs6000.md (UNSPEC_CNTLZDM): New constant.
22486 (UNSPEC_CNTTZDM): Likewise.
22487 (cntlzdm): New insn.
22488 (cnttzdm): Likewise.
22489 * doc/extend.texi (Basic PowerPC Built-in Functions available for
22490 a Future Architecture): Add descriptions of __builtin_cntlzdm and
22491 __builtin_cnttzdm functions.
22492
22493 2020-05-11 Uroš Bizjak <ubizjak@gmail.com>
22494
22495 PR target/95046
22496 * config/i386/mmx.md (sqrtv2sf2): New insn pattern.
22497
22498 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
22499
22500 * config/rs6000/altivec.h (vec_cfuge): New #define.
22501 * config/rs6000/altivec.md (UNSPEC_VCFUGED): New constant.
22502 (vcfuged): New insn.
22503 * config/rs6000/rs6000-builtin.def (__builtin_altivec_vcfuged):
22504 New built-in function.
22505 * config/rs6000/rs6000-call.c (builtin_function_type): Add
22506 handling for FUTURE_BUILTIN_VCFUGED case.
22507 * doc/extend.texi (PowerPC AltiVec Built-in Functions Available
22508 for a Future Architecture): Add description of vec_cfuge built-in
22509 function.
22510
22511 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
22512
22513 * config/rs6000/rs6000-builtin.def (BU_FUTURE_MISC_0): New
22514 #define.
22515 (BU_FUTURE_MISC_1): Likewise.
22516 (BU_FUTURE_MISC_2): Likewise.
22517 (BU_FUTURE_MISC_3): Likewise.
22518 (__builtin_cfuged): New built-in function definition.
22519 * config/rs6000/rs6000.md (UNSPEC_CFUGED): New constant.
22520 (cfuged): New insn.
22521 * doc/extend.texi (Basic PowerPC Built-in Functions Available for
22522 a Future Architecture): New subsubsection.
22523
22524 2020-05-11 Richard Biener <rguenther@suse.de>
22525
22526 PR tree-optimization/95049
22527 * tree-ssa-sccvn.c (set_ssa_val_to): Reject lattice transition
22528 between different constants.
22529
22530 2020-05-11 Richard Sandiford <richard.sandiford@arm.com>
22531
22532 * tree-pretty-print.c (dump_generic_node): Handle BOOLEAN_TYPEs.
22533
22534 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
22535 Bill Schmidt <wschmidt@linux.ibm.com>
22536
22537 * config/rs6000/altivec.h (vec_gnb): New #define.
22538 * config/rs6000/altivec.md (UNSPEC_VGNB): New constant.
22539 (vgnb): New insn.
22540 * config/rs6000/rs6000-builtin.def (BU_FUTURE_OVERLOAD_1): New
22541 #define.
22542 (BU_FUTURE_OVERLOAD_2): Likewise.
22543 (BU_FUTURE_OVERLOAD_3): Likewise.
22544 (__builtin_altivec_gnb): New built-in function.
22545 (__buiiltin_vec_gnb): New overloaded built-in function.
22546 * config/rs6000/rs6000-call.c (altivec_overloaded_builtins):
22547 Define overloaded forms of __builtin_vec_gnb.
22548 (rs6000_expand_binop_builtin): Add error checking for 2nd argument
22549 of __builtin_vec_gnb.
22550 (builtin_function_type): Mark return value and arguments unsigned
22551 for FUTURE_BUILTIN_VGNB.
22552 * doc/extend.texi (PowerPC AltiVec Built-in Functions Available
22553 for a Future Architecture): Add description of vec_gnb built-in
22554 function.
22555
22556 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
22557 Bill Schmidt <wschmidt@linux.ibm.com>
22558
22559 * config/rs6000/altivec.h (vec_pdep): New macro implementing new
22560 built-in function.
22561 (vec_pext): Likewise.
22562 * config/rs6000/altivec.md (UNSPEC_VPDEPD): New constant.
22563 (UNSPEC_VPEXTD): Likewise.
22564 (vpdepd): New insn.
22565 (vpextd): Likewise.
22566 * config/rs6000/rs6000-builtin.def (__builtin_altivec_vpdepd): New
22567 built-in function.
22568 (__builtin_altivec_vpextd): Likewise.
22569 * config/rs6000/rs6000-call.c (builtin_function_type): Add
22570 handling for FUTURE_BUILTIN_VPDEPD and FUTURE_BUILTIN_VPEXTD
22571 cases.
22572 * doc/extend.texi (PowerPC Altivec Built-in Functions Available
22573 for a Future Architecture): Add description of vec_pdep and
22574 vec_pext built-in functions.
22575
22576 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
22577 Bill Schmidt <wschmidt@linux.ibm.com>
22578
22579 * config/rs6000/altivec.h (vec_clzm): New macro.
22580 (vec_ctzm): Likewise.
22581 * config/rs6000/altivec.md (UNSPEC_VCLZDM): New constant.
22582 (UNSPEC_VCTZDM): Likewise.
22583 (vclzdm): New insn.
22584 (vctzdm): Likewise.
22585 * config/rs6000/rs6000-builtin.def (BU_FUTURE_V_0): New macro.
22586 (BU_FUTURE_V_1): Likewise.
22587 (BU_FUTURE_V_2): Likewise.
22588 (BU_FUTURE_V_3): Likewise.
22589 (__builtin_altivec_vclzdm): New builtin definition.
22590 (__builtin_altivec_vctzdm): Likewise.
22591 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Cause
22592 _ARCH_PWR_FUTURE macro to be defined if OPTION_MASK_FUTURE flag is
22593 set.
22594 * config/rs6000/rs6000-call.c (builtin_function_type): Set return
22595 value and parameter types to be unsigned for VCLZDM and VCTZDM.
22596 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
22597 support for TARGET_FUTURE flag.
22598 * config/rs6000/rs6000.h (RS6000_BTM_FUTURE): New macro constant.
22599 * doc/extend.texi (PowerPC Altivec Built-in Functions Available
22600 for a Future Architecture): New subsubsection.
22601
22602 2020-05-11 Richard Biener <rguenther@suse.de>
22603
22604 PR tree-optimization/94988
22605 PR tree-optimization/95025
22606 * tree-ssa-loop-im.c (seq_entry): Make a struct, add from.
22607 (sm_seq_push_down): Take extra parameter denoting where we
22608 moved the ref to.
22609 (execute_sm_exit): Re-issue sm_other stores in the correct
22610 order.
22611 (sm_seq_valid_bb): When always executed, allow sm_other to
22612 prevail inbetween sm_ord and record their stored value.
22613 (hoist_memory_references): Adjust refs_not_supported propagation
22614 and prune sm_other from the end of the ordered sequences.
22615
22616 2020-05-11 Felix Yang <felix.yang@huawei.com>
22617
22618 PR target/94991
22619 * config/aarch64/aarch64.md (mov<mode>):
22620 Bitcasts to the equivalent integer mode using gen_lowpart
22621 instead of doing FAIL for scalar floating point move.
22622
22623 2020-05-11 Alex Coplan <alex.coplan@arm.com>
22624
22625 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Add case
22626 to correctly calculate cost for new pattern (*csinv3_uxtw_insn3).
22627 * config/aarch64/aarch64.md (*csinv3_utxw_insn1): New.
22628 (*csinv3_uxtw_insn2): New.
22629 (*csinv3_uxtw_insn3): New.
22630 * config/aarch64/iterators.md (neg_not_cs): New.
22631
22632 2020-05-11 Uroš Bizjak <ubizjak@gmail.com>
22633
22634 PR target/95046
22635 * config/i386/mmx.md (mmx_addv2sf3): Use "v" constraint
22636 instead of "Yv" for AVX alternatives. Add "prefix" attribute.
22637 (*mmx_addv2sf3): Ditto.
22638 (*mmx_subv2sf3): Ditto.
22639 (*mmx_mulv2sf3): Ditto.
22640 (*mmx_<code>v2sf3): Ditto.
22641 (mmx_ieee_<ieee_maxmin>v2sf3): Ditto.
22642
22643 2020-05-11 Uroš Bizjak <ubizjak@gmail.com>
22644
22645 PR target/95046
22646 * config/i386/i386.c (ix86_vector_mode_supported_p):
22647 Vectorize 3dNOW! vector modes for TARGET_MMX_WITH_SSE.
22648 * config/i386/mmx.md (*mov<mode>_internal): Do not set
22649 mode of alternative 13 to V2SF for TARGET_MMX_WITH_SSE.
22650
22651 (mmx_addv2sf3): Change operand predicates from
22652 nonimmediate_operand to register_mmxmem_operand.
22653 (addv2sf3): New expander.
22654 (*mmx_addv2sf3): Add SSE/AVX alternatives. Change operand
22655 predicates from nonimmediate_operand to register_mmxmem_operand.
22656 Enable instruction pattern for TARGET_MMX_WITH_SSE.
22657
22658 (mmx_subv2sf3): Change operand predicate from
22659 nonimmediate_operand to register_mmxmem_operand.
22660 (mmx_subrv2sf3): Ditto.
22661 (subv2sf3): New expander.
22662 (*mmx_subv2sf3): Add SSE/AVX alternatives. Change operand
22663 predicates from nonimmediate_operand to register_mmxmem_operand.
22664 Enable instruction pattern for TARGET_MMX_WITH_SSE.
22665
22666 (mmx_mulv2sf3): Change operand predicates from
22667 nonimmediate_operand to register_mmxmem_operand.
22668 (mulv2sf3): New expander.
22669 (*mmx_mulv2sf3): Add SSE/AVX alternatives. Change operand
22670 predicates from nonimmediate_operand to register_mmxmem_operand.
22671 Enable instruction pattern for TARGET_MMX_WITH_SSE.
22672
22673 (mmx_<code>v2sf3): Change operand predicates from
22674 nonimmediate_operand to register_mmxmem_operand.
22675 (<code>v2sf3): New expander.
22676 (*mmx_<code>v2sf3): Add SSE/AVX alternatives. Change operand
22677 predicates from nonimmediate_operand to register_mmxmem_operand.
22678 Enable instruction pattern for TARGET_MMX_WITH_SSE.
22679 (mmx_ieee_<ieee_maxmin>v2sf3): Ditto.
22680
22681 2020-05-11 Martin Liska <mliska@suse.cz>
22682
22683 PR c/95040
22684 * common.opt: Fix typo in option description.
22685
22686 2020-05-11 Martin Liska <mliska@suse.cz>
22687
22688 PR gcov-profile/94928
22689 * gcov-io.h: Add caveat about coverage format parsing and
22690 possible outdated documentation.
22691
22692 2020-05-11 Xiong Hu Luo <luoxhu@linux.ibm.com>
22693
22694 PR tree-optimization/83403
22695 * tree-affine.c (expr_to_aff_combination): Replace SSA_NAME with
22696 determine_value_range, Add fold conversion of MULT_EXPR, fix the
22697 previous PLUS_EXPR.
22698
22699 2020-05-10 Gerald Pfeifer <gerald@pfeifer.com>
22700
22701 * config/i386/i386-c.c (ix86_target_macros): Define _ILP32 and
22702 __ILP32__ for 32-bit targets.
22703
22704 2020-05-09 Eric Botcazou <ebotcazou@adacore.com>
22705
22706 * tree.h (expr_align): Delete.
22707 * tree.c (expr_align): Likewise.
22708
22709 2020-05-09 Hans-Peter Nilsson <hp@axis.com>
22710
22711 * resource.c (init_resource_info): Filter-out TARGET_FLAGS_REGNUM
22712 from end_of_function_needs.
22713
22714 * config.gcc: Remove support for crisv32-*-* and cris-*-linux*.
22715 * config/cris/t-linux, config/cris/linux.h, config/cris/linux.opt:
22716 Remove.
22717 * config/cris/t-elfmulti: Remove crisv32 multilib.
22718 * config/cris: Remove shared-library and CRIS v32 support.
22719
22720 Move trivially from cc0 to reg:CC model, removing most optimizations.
22721 * config/cris/cris.md: Remove all side-effect patterns and their
22722 splitters. Remove most peepholes. Add clobbers of CRIS_CC0_REGNUM
22723 to all but post-reload control-flow and movem insns. Remove
22724 constraints on all modified expanders. Remove obsoleted cc0-related
22725 references.
22726 (attr "cc"): Remove alternative "rev".
22727 (mode_iterator BWDD, DI_, SI_): New.
22728 (mode_attr sCC_destc, cmp_op1c, cmp_op2c): New.
22729 ("tst<mode>"): Remove; fold as "M" alternative into compare insn.
22730 ("mstep_shift", "mstep_mul"): Remove patterns.
22731 ("s<rcond>", "s<ocond>", "s<ncond>"): Anonymize.
22732 * config/cris/cris.c: Change all non-condition-code,
22733 non-control-flow emitted insns to add a parallel with clobber of
22734 CRIS_CC0_REGNUM, mostly by changing from gen_rtx_SET with
22735 emit_insn to use of emit_move_insn, gen_add2_insn or
22736 cris_emit_insn, as convenient.
22737 (cris_reg_overlap_mentioned_p)
22738 (cris_normal_notice_update_cc, cris_notice_update_cc): Remove.
22739 (cris_movem_load_rest_p): Don't assume all elements in a
22740 PARALLEL are SETs.
22741 (cris_store_multiple_op_p): Ditto.
22742 (cris_emit_insn): New function.
22743 * cris/cris-protos.h (cris_emit_insn): Declare.
22744
22745 PR target/93372
22746 * config/cris/cris.md (zcond): New code_iterator.
22747 ("*cbranch<mode>4_btstq<CC>"): New insn_and_split.
22748
22749 * config/cris/cris.c (TARGET_FLAGS_REGNUM): Define.
22750
22751 * config/cris/cris.h (REVERSIBLE_CC_MODE): Define to true.
22752
22753 * config/cris/cris.md ("movsi"): For memory destination
22754 post-reload, generate clobberless variant. Similarly for a
22755 zero-source post-reload.
22756 ("*mov_tomem<mode>_split"): New split.
22757 ("*mov_tomem<mode>"): New insn.
22758 ("enabled", mov_tomem_enabled): Define and use to exclude "x" ->
22759 "Q>m" for less-than-SImode.
22760 ("*mov_fromzero<mode>_split"): New split.
22761 ("*mov_fromzero<mode>"): New insn.
22762
22763 Prepare for cmpelim pass to eliminate redundant compare insns.
22764 * config/cris/cris-modes.def: New file.
22765 * config/cris/cris-protos.h (cris_select_cc_mode): Declare.
22766 (cris_notice_update_cc): Remove left-over declaration.
22767 * config/cris/cris.c (TARGET_CC_MODES_COMPATIBLE): Define.
22768 (cris_select_cc_mode, cris_cc_modes_compatible): New functions.
22769 * config/cris/cris.h (SELECT_CC_MODE): Define.
22770 * config/cris/cris.md (NZSET, NZUSE, NZVCSET, NZVCUSE): New
22771 mode_iterators.
22772 (cond): New code_iterator.
22773 (nzcond): Replacement for incorrect ncond. All callers changed.
22774 (nzvccond): Replacement for ocond. All callers changed.
22775 (rnzcond): Replacement for rcond. All callers changed.
22776 (xCC): New code_attr.
22777 (cmp_op1c, cmp_op0c): Renumber from cmp_op1c and cmp_op2c. All
22778 users changed.
22779 ("*cmpdi<NZVCSET:mode>"): Rename from "*cmpdi". Replace
22780 CCmode with iteration over NZVCSET.
22781 ("*cmp_ext<BW:mode><NZVCSET:mode>"): Similarly; rename from
22782 "*cmp_ext<mode>".
22783 ("*cmpsi<NZVCSET:mode>"): Similarly, from "*cmpsi".
22784 ("*cmp<BW:mode><NZVCSET:mode>"): Similarly from "*cmp<mode>".
22785 ("*btst<mode>"): Similarly, from "*btst".
22786 ("*cbranch<mode><code>4"): Rename from "*cbranch<mode>4",
22787 iterating over cond instead of matching the comparison with
22788 ordered_comparison_operator.
22789 ("*cbranch<mode>4_btstq<CC>"): Correct label operand number.
22790 ("b<zcond:code><mode>"): Rename from "b<ncond:code>", iterating
22791 over NZUSE.
22792 ("b<nzvccond:code><mode>"): Similarly from "b<ocond:code>", over
22793 NZVCUSE. Remove FIXME.
22794 ("*b<nzcond:code>_reversed<mode>"): Similarly from
22795 "*b<ncond:code>_reversed", over NZUSE.
22796 ("*b<nzvccond:code>_reversed<mode>"): Similarly from
22797 "*b<ocond:code>_reversed", over NZVCUSE. Remove FIXME.
22798 ("b<rnzcond:code><mode>"): Similarly from "b<rcond:code>",
22799 over NZUSE. Reinstate "b<oCC>" vs. "b<CC>" mnemonic choice,
22800 depending on CC_NZmode vs. CCmode. Remove FIXME.
22801 ("*b<rnzcond:code>_reversed<mode>"): Similarly from
22802 "*b<rcond:code>_reversed", over NZUSE.
22803 ("*cstore<mode><code>4"): Rename from "*cstore<mode>4",
22804 iterating over cond instead of matching the comparison with
22805 ordered_comparison_operator.
22806 ("*s<nzcond:code><mode>"): Rename from "*s<ncond:code>",
22807 iterating over NZUSE.
22808 ("*s<rnzcond:code><mode>"): Similar from "*s<rcond:code>", over
22809 NZUSE. Reinstate "b<oCC>" vs. "b<CC>" mnemonic choice,
22810 depending on CC_NZmode vs. CCmode.
22811 ("*s<nzvccond:code><mode>"): Simlar from "*s<ocond:code>", over
22812 NZVCUSE. Remove FIXME.
22813 ("cc"): Comment on new use.
22814 ("cc_enabled"): New attribute.
22815 ("enabled"): Make default fall back to cc_enabled.
22816 ("setnz", "ccnz", "setnzvc", "ccnzvc", "setcc", "cccc"): New
22817 default_subst_attrs.
22818 ("setnz_subst", "setnzvc_subst", "setcc_subst"): New default_subst.
22819 ("*movsi_internal<setcc><setnz><setnzvc>"): Rename from
22820 "*movsi_internal". Correct contents of, and rename attribute
22821 "cc" to "cc<cccc><ccnz><ccnzvc>".
22822 ("anz", "anzvc", "acc"): New define_subst_attrs.
22823 ("<acc><anz><anzvc>movhi<setcc><setnz><setnzvc>"): Rename from
22824 "movhi". Rename "cc" attribute to "cc<cccc><ccnz><ccnzvc>".
22825 ("<acc><anz><anzvc>movqi<setcc><setnz><setnzvc>"): Similar from
22826 "movqi". Correct contents of, and rename "cc" attribute to
22827 "cc<cccc><ccnz><ccnzvc>".
22828 ("*b<zcond:code><mode>"): Rename from "b<zcond:code><mode>".
22829 ("*b<nzvccond:code><mode>"): Rename from "b<nzvccond:code><mode>".
22830 ("*b<rnzcond:code><mode>"): Rename from "*b<rnzcond:code><mode>".
22831 ("<acc><anz><anzvc>extend<mode>si2<setcc><setnz><setnzvc>"):
22832 Rename from "extend<mode>si2".
22833 ("<acc><anz><anzvc>zero_extend<mode>si2<setcc><setnz><setnzvc>"):
22834 Similar, from "zero_extend<mode>si2".
22835 ("*adddi3<setnz>"): Rename from "*adddi3".
22836 ("*subdi3<setnz>"): Similarly from "*subdi3".
22837 ("*addsi3<setnz>"): Similarly from "*addsi3".
22838 ("*subsi3<setnz>"): Similarly from "*subsi3".
22839 ("*addhi3<setnz>"): Similarly from "*addhi3" and decorate the
22840 "cc" attribute to "cc<ccnz>".
22841 ("*addqi3<setnz>"): Similarly from "*addqi3".
22842 ("*sub<mode>3<setnz>"): Similarly from "*sub<mode>3".
22843 ("*expanded_andsi<setcc><setnz><setnzvc>"): Rename from
22844 "*expanded_andsi".
22845 ("*iorsi3<setcc><setnz><setnzvc>"): Similar from "*iorsi3".
22846 Decorate "cc" attribute to make "cc<cccc><ccnz><ccnzvc>".
22847 ("*iorhi3<setcc><setnz><setnzvc>"): Similar from "*iorhi3".
22848 ("*iorqi3<setcc><setnz><setnzvc>"): Similar from "*iorqi3".
22849 ("*expanded_andhi<setcc><setnz><setnzvc>"): Similar from
22850 "*expanded_andhi". Add quick cc-setting alternative for 0..31.
22851 ("*andqi3<setcc><setnz><setnzvc>"): Similar from "*andqi3".
22852 ("<acc><anz><anzvc>xorsi3<setcc><setnz><setnzvc>"): Rename
22853 from "xorsi3".
22854 ("<acc><anz><anzvc>one_cmplsi2<setcc><setnz><setnzvc>"): Rename
22855 from "one_cmplsi2".
22856 ("<acc><anz><anzvc><shlr>si3<setcc><setnz><setnzvc>"): Rename
22857 from "<shlr>si3".
22858 ("<acc><anz><anzvc>clzsi2<setcc><setnz><setnzvc>"): Rename
22859 from "clzsi2".
22860 ("<acc><anz><anzvc>bswapsi2<setcc><setnz><setnzvc>"): Rename
22861 from "bswapsi2".
22862 ("*uminsi3<setcc><setnz><setnzvc>"): Rename from "*uminsi3".
22863
22864 * config/cris/cris-modes.def (CC_ZnN): New CC_MODE.
22865 * config/cris/cris.c (cris_rtx_costs): Handle pre-split bit-test
22866 * config/cris/cris.md (ZnNNZSET, ZnNNZUSE): New mode_iterators.
22867 (znnCC, rznnCC): New code_attrs.
22868 ("*btst<mode>"): Iterator over ZnNNZSET instead of NZVCSET. Remove
22869 obseolete comment. Add belt-and-suspenders mode-test to condition.
22870 Add fixme regarding remaining matched-but-not-generated case.
22871 ("*cbranch<mode>4_btstrq1_<CC>"): New insn_and_split.
22872 ("*cbranch<mode>4_btstqb0_<CC>"): Rename from
22873 "*cbranch<mode>4_btstq<CC>". Split to CC_NZ instead of CC.
22874 ("*b<zcond:code><mode>"): Iterate over ZnNNZUSE instead of NZUSE.
22875 Handle output of CC_ZnNmode.
22876 ("*b<nzcond:code>_reversed<mode>"): Ditto.
22877
22878 * config/cris/cris.c (cris_select_cc_mode): Return CC_NZmode for
22879 NEG too. Correct comment.
22880 * config/cris/cris.md ("<anz>neg<mode>2<setnz>"): Rename from
22881 "neg<mode>2".
22882
22883 2020-05-08 Vladimir Makarov <vmakarov@redhat.com>
22884
22885 * ira-color.c (update_costs_from_allocno): Remove
22886 conflict_cost_update_p argument. Propagate costs only along
22887 threads. Always do conflict cost update. Add printing debugging
22888 info.
22889 (update_costs_from_copies): Add printing debugging info.
22890 (restore_costs_from_copies): Ditto.
22891 (assign_hard_reg): Improve debug info.
22892 (push_only_colorable): Ditto. Call update_costs_from_prefs.
22893 (color_allocnos): Remove update_costs_from_prefs.
22894
22895 2020-05-08 Richard Biener <rguenther@suse.de>
22896
22897 * tree-vectorizer.h (vec_info::slp_loads): New.
22898 (vect_optimize_slp): Declare.
22899 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Do
22900 nothing when there are no loads.
22901 (vect_gather_slp_loads): Gather loads into a vector.
22902 (vect_supported_load_permutation_p): Remove.
22903 (vect_analyze_slp_instance): Do not verify permutation
22904 validity here.
22905 (vect_analyze_slp): Optimize permutations of reductions
22906 after all SLP instances have been gathered and gather
22907 all loads.
22908 (vect_optimize_slp): New function split out from
22909 vect_supported_load_permutation_p. Elide some permutations.
22910 (vect_slp_analyze_bb_1): Call vect_optimize_slp.
22911 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
22912 * tree-vect-stmts.c (vectorizable_load): Check whether
22913 the load can be permuted. When generating code assert we can.
22914
22915 2020-05-08 Richard Biener <rguenther@suse.de>
22916
22917 * tree-ssa-sccvn.c (rpo_avail): Change type to
22918 eliminate_dom_walker *.
22919 (eliminate_with_rpo_vn): Adjust rpo_avail to make vn_valueize
22920 use the DOM walker availability.
22921 (vn_reference_fold_indirect): Use get_addr_base_and_unit_offset_1
22922 with vn_valueize as valueization callback.
22923 (vn_reference_maybe_forwprop_address): Likewise.
22924 * tree-dfa.c (get_addr_base_and_unit_offset_1): Also valueize
22925 array_ref_low_bound.
22926
22927 2020-05-08 Jakub Jelinek <jakub@redhat.com>
22928
22929 PR tree-optimization/94786
22930 * match.pd (A ^ ((A ^ B) & -(C cmp D)) -> (C cmp D) ? B : A): New
22931 simplification.
22932
22933 PR target/94857
22934 * config/i386/i386.md (peephole2 after *add<mode>3_cc_overflow_1): New
22935 define_peephole2.
22936
22937 PR middle-end/94724
22938 * tree.c (get_narrower): Reuse the op temporary instead of
22939 shadowing it.
22940
22941 PR tree-optimization/94783
22942 * match.pd ((X + (X >> (prec - 1))) ^ (X >> (prec - 1)) to abs (X)):
22943 New simplification.
22944
22945 PR tree-optimization/94956
22946 * match.pd (FFS): Optimize __builtin_ffs* of non-zero argument into
22947 __builtin_ctz* + 1 if direct IFN_CTZ is supported.
22948
22949 PR tree-optimization/94913
22950 * match.pd (A - B + -1 >= A to B >= A): New simplification.
22951 (A - B > A to A < B): Don't test TYPE_OVERFLOW_WRAPS which is always
22952 true for TYPE_UNSIGNED integral types.
22953
22954 PR bootstrap/94961
22955 PR rtl-optimization/94516
22956 * rtl.h (remove_reg_equal_equiv_notes): Add a bool argument defaulted
22957 to false.
22958 * rtlanal.c (remove_reg_equal_equiv_notes): Add no_rescan argument.
22959 Call df_notes_rescan if that argument is not true and returning true.
22960 * combine.c (adjust_for_new_dest): Pass true as second argument to
22961 remove_reg_equal_equiv_notes.
22962 * postreload.c (reload_combine_recognize_pattern): Don't call
22963 df_notes_rescan.
22964
22965 2020-05-07 Segher Boessenkool <segher@kernel.crashing.org>
22966
22967 * config/rs6000/rs6000.md (*setnbc_<un>signed_<GPR:mode>): New
22968 define_insn.
22969 (*setnbcr_<un>signed_<GPR:mode>): New define_insn.
22970 (*neg_eq_<mode>): Avoid for TARGET_FUTURE; add missing && 1.
22971 (*neg_ne_<mode>): Likewise.
22972
22973 2020-05-07 Segher Boessenkool <segher@kernel.crashing.org>
22974
22975 * config/rs6000/rs6000.md (setbc_<un>signed_<GPR:mode>): New
22976 define_insn.
22977 (*setbcr_<un>signed_<GPR:mode>): Likewise.
22978 (cstore<mode>4): Use setbc[r] if available.
22979 (<code><GPR:mode><GPR2:mode>2_isel): Avoid for TARGET_FUTURE.
22980 (eq<mode>3): Use setbc for TARGET_FUTURE.
22981 (*eq<mode>3): Avoid for TARGET_FUTURE.
22982 (ne<mode>3): Replace :P with :GPR; use setbc for TARGET_FUTURE;
22983 else for non-Pmode, use gen_eq and gen_xor.
22984 (*ne<mode>3): Avoid for TARGET_FUTURE.
22985 (*eqsi3_ext<mode>): Avoid for TARGET_FUTURE; fix missing && 1.
22986
22987 2020-05-07 Jeff Law <law@redhat.com>
22988
22989 * config/h8300/h8300.md: Move expanders and patterns into
22990 files based on functionality.
22991 * config/h8300/addsub.md: New file.
22992 * config/h8300/bitfield.md: New file
22993 * config/h8300/combiner.md: New file
22994 * config/h8300/divmod.md: New file
22995 * config/h8300/extensions.md: New file
22996 * config/h8300/jumpcall.md: New file
22997 * config/h8300/logical.md: New file
22998 * config/h8300/movepush.md: New file
22999 * config/h8300/multiply.md: New file
23000 * config/h8300/other.md: New file
23001 * config/h8300/proepi.md: New file
23002 * config/h8300/shiftrotate.md: New file
23003 * config/h8300/testcompare.md: New file
23004
23005 * config/h8300/h8300.md (adds/subs splitters): Merge into single
23006 splitter.
23007 (negation expanders and patterns): Simplify and combine using
23008 iterators.
23009 (one_cmpl expanders and patterns): Likewise.
23010 (tablejump, indirect_jump patterns ): Likewise.
23011 (shift and rotate expanders and patterns): Likewise.
23012 (absolute value expander and pattern): Drop expander, rename pattern
23013 to just "abssf2"
23014 (peephole2 patterns): Move into...
23015 * config/h8300/peepholes.md: New file.
23016
23017 * config/h8300/constraints.md (L and N): Simplify now that we're not
23018 longer supporting the original H8/300 chip.
23019 * config/h8300/elf.h (LINK_SPEC): Likewise. Default to H8/300H.
23020 * config/h8300/h8300.c (shift_alg_qi): Drop H8/300 support.
23021 (shift_alg_hi, shift_alg_si): Similarly.
23022 (h8300_option_overrides): Similarly. Default to H8/300H. If
23023 compiling for H8/S, then turn off H8/300H. Do not update the
23024 shift_alg tables for H8/300 port.
23025 (h8300_emit_stack_adjustment): Remove support for H8/300. Simplify
23026 where possible.
23027 (push, split_adds_subs, h8300_rtx_costs): Likewise.
23028 (h8300_print_operand, compute_mov_length): Likewise.
23029 (output_plussi, compute_plussi_length): Likewise.
23030 (compute_plussi_cc, output_logical_op): Likewise.
23031 (compute_logical_op_length, compute_logical_op_cc): Likewise.
23032 (get_shift_alg, h8300_shift_needs_scratch): Likewise.
23033 (output_a_shift, compute_a_shift_length): Likewise.
23034 (output_a_rotate, compute_a_rotate_length): Likewise.
23035 (output_simode_bld, h8300_hard_regno_mode_ok): Likewise.
23036 (h8300_modes_tieable_p, h8300_return_in_memory): Likewise.
23037 * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Likewise.
23038 (attr_cpu, TARGET_H8300): Remove.
23039 (TARGET_DEFAULT): Update.
23040 (UNITS_PER_WORD, PARM_BOUNDARY): Simplify where possible.
23041 (BIGGEST_ALIGNMENT, STACK_BOUNDARY): Likewise.
23042 (CONSTANT_ADDRESS_P, MOVE_MAX, Pmode): Likewise.
23043 (SIZE_TYPE, POINTER_SIZE, ASM_WORD_OP): Likewise.
23044 * config/h8300/h8300.md: Simplify patterns throughout.
23045 * config/h8300/t-h8300: Update multilib configuration.
23046
23047 * config/h8300/h8300.h (LINK_SPEC): Remove.
23048 (USER_LABEL_PREFIX): Likewise.
23049
23050 * config/h8300/h8300.c (h8300_asm_named_section): Remove.
23051 (h8300_option_override): Remove remnants of COFF support.
23052
23053 2020-05-07 Alan Modra <amodra@gmail.com>
23054
23055 * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Replace
23056 set_rtx_cost with set_src_cost.
23057 * tree-switch-conversion.c (bit_test_cluster::emit): Likewise.
23058
23059 2020-05-07 Kewen Lin <linkw@gcc.gnu.org>
23060
23061 * tree-vect-stmts.c (vectorizable_load): Check alignment to avoid
23062 redundant half vector handlings for no peeling gaps.
23063
23064 2020-05-07 Giuliano Belinassi <giuliano.belinassi@usp.br>
23065
23066 * tree-ssa-operands.c (operands_scanner): New class.
23067 (operands_bitmap_obstack): Remove.
23068 (n_initialized): Remove.
23069 (build_uses): Move to operands_scanner class.
23070 (build_vuse): Same as above.
23071 (build_vdef): Same as above.
23072 (verify_ssa_operands): Same as above.
23073 (finalize_ssa_uses): Same as above.
23074 (cleanup_build_arrays): Same as above.
23075 (finalize_ssa_stmt_operands): Same as above.
23076 (start_ssa_stmt_operands): Same as above.
23077 (append_use): Same as above.
23078 (append_vdef): Same as above.
23079 (add_virtual_operand): Same as above.
23080 (add_stmt_operand): Same as above.
23081 (get_mem_ref_operands): Same as above.
23082 (get_tmr_operands): Same as above.
23083 (maybe_add_call_vops): Same as above.
23084 (get_asm_stmt_operands): Same as above.
23085 (get_expr_operands): Same as above.
23086 (parse_ssa_operands): Same as above.
23087 (finalize_ssa_defs): Same as above.
23088 (build_ssa_operands): Same as above, plus create a C-like wrapper.
23089 (update_stmt_operands): Create an instance of operands_scanner.
23090
23091 2020-05-07 Richard Biener <rguenther@suse.de>
23092
23093 PR ipa/94947
23094 * tree-ssa-structalias.c (refered_from_nonlocal_fn): Use
23095 DECL_EXTERNAL || TREE_PUBLIC instead of externally_visible.
23096 (refered_from_nonlocal_var): Likewise.
23097 (ipa_pta_execute): Likewise.
23098
23099 2020-05-07 Erick Ochoa <erick.ochoa@theobroma-systems.com>
23100
23101 * gcc/tree-ssa-struct-alias.c: Fix comments
23102
23103 2020-05-07 Martin Liska <mliska@suse.cz>
23104
23105 * doc/invoke.texi: Fix 2 optindex entries.
23106
23107 2020-05-07 Richard Biener <rguenther@suse.de>
23108
23109 PR middle-end/94703
23110 * tree-core.h (tree_decl_common::gimple_reg_flag): Rename ...
23111 (tree_decl_common::not_gimple_reg_flag): ... to this.
23112 * tree.h (DECL_GIMPLE_REG_P): Rename ...
23113 (DECL_NOT_GIMPLE_REG_P): ... to this.
23114 * gimple-expr.c (copy_var_decl): Copy DECL_NOT_GIMPLE_REG_P.
23115 (create_tmp_reg): Simplify.
23116 (create_tmp_reg_fn): Likewise.
23117 (is_gimple_reg): Check DECL_NOT_GIMPLE_REG_P for all regs.
23118 * gimplify.c (create_tmp_from_val): Simplify.
23119 (gimplify_bind_expr): Likewise.
23120 (gimplify_compound_literal_expr): Likewise.
23121 (gimplify_function_tree): Likewise.
23122 (prepare_gimple_addressable): Set DECL_NOT_GIMPLE_REG_P.
23123 * asan.c (create_odr_indicator): Do not clear DECL_GIMPLE_REG_P.
23124 (asan_add_global): Copy it.
23125 * cgraphunit.c (cgraph_node::expand_thunk): Force args
23126 to be GIMPLE regs.
23127 * function.c (gimplify_parameters): Copy
23128 DECL_NOT_GIMPLE_REG_P.
23129 * ipa-param-manipulation.c
23130 (ipa_param_body_adjustments::common_initialization): Simplify.
23131 (ipa_param_body_adjustments::reset_debug_stmts): Copy
23132 DECL_NOT_GIMPLE_REG_P.
23133 * omp-low.c (lower_omp_for_scan): Do not set DECL_GIMPLE_REG_P.
23134 * sanopt.c (sanitize_rewrite_addressable_params): Likewise.
23135 * tree-cfg.c (make_blocks_1): Simplify.
23136 (verify_address): Do not verify DECL_GIMPLE_REG_P setting.
23137 * tree-eh.c (lower_eh_constructs_2): Simplify.
23138 * tree-inline.c (declare_return_variable): Adjust and
23139 generalize.
23140 (copy_decl_to_var): Copy DECL_NOT_GIMPLE_REG_P.
23141 (copy_result_decl_to_var): Likewise.
23142 * tree-into-ssa.c (pass_build_ssa::execute): Adjust comment.
23143 * tree-nested.c (create_tmp_var_for): Simplify.
23144 * tree-parloops.c (separate_decls_in_region_name): Copy
23145 DECL_NOT_GIMPLE_REG_P.
23146 * tree-sra.c (create_access_replacement): Adjust and
23147 generalize partial def support.
23148 * tree-ssa-forwprop.c (pass_forwprop::execute): Set
23149 DECL_NOT_GIMPLE_REG_P on decls we introduce partial defs on.
23150 * tree-ssa.c (maybe_optimize_var): Handle clearing of
23151 TREE_ADDRESSABLE and setting/clearing DECL_NOT_GIMPLE_REG_P
23152 independently.
23153 * lto-streamer-out.c (hash_tree): Hash DECL_NOT_GIMPLE_REG_P.
23154 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Stream
23155 DECL_NOT_GIMPLE_REG_P.
23156 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
23157 * cfgexpand.c (avoid_type_punning_on_regs): New.
23158 (discover_nonconstant_array_refs): Call
23159 avoid_type_punning_on_regs to avoid unsupported mode punning.
23160
23161 2020-05-07 Alex Coplan <alex.coplan@arm.com>
23162
23163 * config/arm/arm.c (arm_add_stmt_cost): Fix declaration, remove class
23164 from definition.
23165
23166 2020-05-07 Richard Biener <rguenther@suse.de>
23167
23168 PR tree-optimization/57359
23169 * tree-ssa-loop-im.c (im_mem_ref::indep_loop): Remove.
23170 (in_mem_ref::dep_loop): Repurpose.
23171 (LOOP_DEP_BIT): Remove.
23172 (enum dep_kind): New.
23173 (enum dep_state): Likewise.
23174 (record_loop_dependence): New function to populate the
23175 dependence cache.
23176 (query_loop_dependence): New function to query the dependence
23177 cache.
23178 (memory_accesses::refs_in_loop): Rename to ...
23179 (memory_accesses::refs_loaded_in_loop): ... this and change to
23180 only record loads.
23181 (outermost_indep_loop): Adjust.
23182 (mem_ref_alloc): Likewise.
23183 (gather_mem_refs_stmt): Likewise.
23184 (mem_refs_may_alias_p): Add tbaa_p parameter and pass it down.
23185 (struct sm_aux): New.
23186 (execute_sm): Split code generation on exits, record state
23187 into new hash-map.
23188 (enum sm_kind): New.
23189 (execute_sm_exit): Exit code generation part.
23190 (sm_seq_push_down): Helper for sm_seq_valid_bb performing
23191 dependence checking on stores reached from exits.
23192 (sm_seq_valid_bb): New function gathering SM stores on exits.
23193 (hoist_memory_references): Re-implement.
23194 (refs_independent_p): Add tbaa_p parameter and pass it down.
23195 (record_dep_loop): Remove.
23196 (ref_indep_loop_p_1): Fold into ...
23197 (ref_indep_loop_p): ... this and generalize for three kinds
23198 of dependence queries.
23199 (can_sm_ref_p): Adjust according to hoist_memory_references
23200 changes.
23201 (store_motion_loop): Don't do anything if the set of SM
23202 candidates is empty.
23203 (tree_ssa_lim_initialize): Adjust.
23204 (tree_ssa_lim_finalize): Likewise.
23205
23206 2020-05-07 Eric Botcazou <ebotcazou@adacore.com>
23207 Pierre-Marie de Rodat <derodat@adacore.com>
23208
23209 * dwarf2out.c (add_data_member_location_attribute): Take into account
23210 the variant part offset in the computation of the data bit offset.
23211 (add_bit_offset_attribute): Remove CTX parameter. Pass a new context
23212 in the call to field_byte_offset.
23213 (gen_field_die): Adjust call to add_bit_offset_attribute and remove
23214 confusing assertion.
23215 (analyze_variant_discr): Deal with boolean subtypes.
23216
23217 2020-05-07 Martin Liska <mliska@suse.cz>
23218
23219 * lto-wrapper.c: Split arguments of MAKE environment
23220 variable.
23221
23222 2020-05-07 Uroš Bizjak <ubizjak@gmail.com>
23223
23224 * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): Use
23225 TARGET_EXPR instead of MODIFY_EXPR for the first assignments to
23226 fenv_var and new_fenv_var.
23227
23228 2020-05-06 Jakub Jelinek <jakub@redhat.com>
23229
23230 PR target/93069
23231 * config/i386/subst.md (store_mask_constraint, store_mask_predicate):
23232 Remove.
23233 (avx512dq_vextract<shuffletype>64x2_1_maskm,
23234 avx512f_vextract<shuffletype>32x4_1_maskm,
23235 vec_extract_lo_<mode>_maskm, vec_extract_hi_<mode>_maskm): Remove.
23236 (<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>): Split
23237 into ...
23238 (*avx512dq_vextract<shuffletype>64x2_1,
23239 avx512dq_vextract<shuffletype>64x2_1_mask): ... these new
23240 define_insns. Even in the masked variant allow memory output but in
23241 that case use 0 rather than 0C constraint on the source of masked-out
23242 elts.
23243 (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Split
23244 into ...
23245 (*avx512f_vextract<shuffletype>32x4_1,
23246 avx512f_vextract<shuffletype>32x4_1_mask): ... these new define_insns.
23247 Even in the masked variant allow memory output but in that case use
23248 0 rather than 0C constraint on the source of masked-out elts.
23249 (vec_extract_lo_<mode><mask_name>): Split into ...
23250 (vec_extract_lo_<mode>, vec_extract_lo_<mode>_mask): ... these new
23251 define_insns. Even in the masked variant allow memory output but in
23252 that case use 0 rather than 0C constraint on the source of masked-out
23253 elts.
23254 (vec_extract_hi_<mode><mask_name>): Split into ...
23255 (vec_extract_hi_<mode>, vec_extract_hi_<mode>_mask): ... these new
23256 define_insns. Even in the masked variant allow memory output but in
23257 that case use 0 rather than 0C constraint on the source of masked-out
23258 elts.
23259
23260 2020-05-06 qing zhao <qing.zhao@oracle.com>
23261
23262 PR c/94230
23263 * common.opt: Add -flarge-source-files.
23264 * doc/invoke.texi: Document it.
23265 * toplev.c (process_options): set line_table->default_range_bits
23266 to 0 when flag_large_source_files is true.
23267
23268 2020-05-06 Uroš Bizjak <ubizjak@gmail.com>
23269
23270 PR target/94913
23271 * config/i386/predicates.md (add_comparison_operator): New predicate.
23272 * config/i386/i386.md (compare->add splitter): New splitters.
23273
23274 2020-05-06 Richard Biener <rguenther@suse.de>
23275
23276 * tree-vectorizer.h (vect_transform_slp_perm_load): Adjust.
23277 * tree-vect-data-refs.c (vect_slp_analyze_node_dependences):
23278 Remove slp_instance parameter, just iterate over all scalar stmts.
23279 (vect_slp_analyze_instance_dependence): Adjust and likewise.
23280 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Remove unused BB
23281 parameter.
23282 (vect_schedule_slp): Just iterate over all scalar stmts.
23283 (vect_supported_load_permutation_p): Adjust.
23284 (vect_transform_slp_perm_load): Remove slp_instance parameter,
23285 instead use the number of lanes in the node as group size.
23286 * tree-vect-stmts.c (vect_model_load_cost): Get vectorization
23287 factor instead of slp_instance as parameter.
23288 (vectorizable_load): Adjust.
23289
23290 2020-05-06 Andreas Schwab <schwab@suse.de>
23291
23292 * config/aarch64/driver-aarch64.c: Include "aarch64-protos.h".
23293 (aarch64_get_extension_string_for_isa_flags): Don't declare.
23294
23295 2020-05-06 Richard Biener <rguenther@suse.de>
23296
23297 PR middle-end/94964
23298 * cfgloopmanip.c (create_preheader): Require non-complex
23299 preheader edge for CP_SIMPLE_PREHEADERS.
23300
23301 2020-05-06 Richard Biener <rguenther@suse.de>
23302
23303 PR tree-optimization/94963
23304 * tree-ssa-loop-im.c (execute_sm_if_changed): Remove
23305 no-warning marking of the conditional store.
23306 (execute_sm): Instead mark the uninitialized state
23307 on loop entry to be not warned about.
23308
23309 2020-05-06 Hongtao Liu <hongtao.liu@intel.com>
23310
23311 * common/config/i386/i386-common.c (OPTION_MASK_ISA2_TSXLDTRK_SET,
23312 OPTION_MASK_ISA2_TSXLDTRK_UNSET): New macros.
23313 * config.gcc: Add tsxldtrkintrin.h to extra_headers.
23314 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
23315 TSXLDTRK.
23316 * config/i386/i386-builtin.def: Add new builtins.
23317 * config/i386/i386-c.c (ix86_target_macros_internal): Define
23318 __TSXLDTRK__.
23319 * config/i386/i386-options.c (ix86_target_string): Add
23320 -mtsxldtrk.
23321 (ix86_valid_target_attribute_inner_p): Add attribute tsxldtrk.
23322 * config/i386/i386.h (TARGET_TSXLDTRK, TARGET_TSXLDTRK_P):
23323 New.
23324 * config/i386/i386.md (define_c_enum "unspec"): Add
23325 UNSPECV_SUSLDTRK, UNSPECV_RESLDTRK.
23326 (TSXLDTRK): New define_int_iterator.
23327 ("<tsxldtrk>"): New define_insn.
23328 * config/i386/i386.opt: Add -mtsxldtrk.
23329 * config/i386/immintrin.h: Include tsxldtrkintrin.h.
23330 * config/i386/tsxldtrkintrin.h: New.
23331 * doc/invoke.texi: Document -mtsxldtrk.
23332
23333 2020-05-06 Jakub Jelinek <jakub@redhat.com>
23334
23335 PR tree-optimization/94921
23336 * match.pd (~(~X - Y) -> X + Y, ~(~X + Y) -> X - Y): New
23337 simplifications.
23338
23339 2020-05-06 Richard Biener <rguenther@suse.de>
23340
23341 PR tree-optimization/94965
23342 * tree-vect-stmts.c (vectorizable_load): Fix typo.
23343
23344 2020-05-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23345
23346 * doc/install.texi: Replace Sun with Solaris as appropriate.
23347 (Tools/packages necessary for building GCC, Perl version between
23348 5.6.1 and 5.6.24): Remove Solaris 8 reference.
23349 (Installing GCC: Binaries, Solaris 2 (SPARC, Intel)): Remove
23350 TGCware reference.
23351 (Specific, i?86-*-solaris2*): Update version references for
23352 Solaris 11.3 and later. Remove gas 2.26 caveat.
23353 (Specific, *-*-solaris2*): Update version references for
23354 Solaris 11.3 and later. Remove boehm-gc reference.
23355 Document GMP, MPFR caveats on Solaris 11.3.
23356 (Specific, sparc-sun-solaris2*): Update Solaris 9 references.
23357 (Specific, sparc64-*-solaris2*): Likewise.
23358 Document --build requirement.
23359
23360 2020-05-06 Jakub Jelinek <jakub@redhat.com>
23361
23362 PR target/94950
23363 * config/riscv/riscv-builtins.c (riscv_atomic_assign_expand_fenv): Use
23364 TARGET_EXPR instead of MODIFY_EXPR for first assignment to old_flags.
23365
23366 PR rtl-optimization/94873
23367 * combine.c (combine_instructions): Don't optimize using REG_EQUAL
23368 note if SET_SRC (set) has side-effects.
23369
23370 2020-05-06 Hongtao Liu <hongtao.liu@intel.com>
23371 Wei Xiao <wei3.xiao@intel.com>
23372
23373 * common/config/i386/i386-common.c (OPTION_MASK_ISA2_SERIALIZE_SET,
23374 OPTION_MASK_ISA2_SERIALIZE_UNSET): New macros.
23375 (ix86_handle_option): Handle -mserialize.
23376 * config.gcc (serializeintrin.h): New header file.
23377 * config/i386/cpuid.h (bit_SERIALIZE): New bit.
23378 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
23379 -mserialize.
23380 * config/i386/i386-builtin.def: Add new builtin.
23381 * config/i386/i386-c.c (__SERIALIZE__): New macro.
23382 * config/i386/i386-options.c (ix86_target_opts_isa2_opts):
23383 Add -mserialize.
23384 * (ix86_valid_target_attribute_inner_p): Add target attribute
23385 * for serialize.
23386 * config/i386/i386.h (TARGET_SERIALIZE, TARGET_SERIALIZE_P):
23387 New macros.
23388 * config/i386/i386.md (UNSPECV_SERIALIZE): New unspec.
23389 (serialize): New define_insn.
23390 * config/i386/i386.opt (mserialize): New option
23391 * config/i386/immintrin.h: Include serailizeintrin.h.
23392 * config/i386/serializeintrin.h: New header file.
23393 * doc/invoke.texi: Add documents for -mserialize.
23394
23395 2020-05-06 Richard Biener <rguenther@suse.de>
23396
23397 * tree-cfg.c (verify_gimple_assign_unary): Adjust integer
23398 to/from pointer conversion checking.
23399
23400 2020-05-05 Michael Meissner <meissner@linux.ibm.com>
23401
23402 * config/rs6000/rs6000-builtin.def: Delete changes meant for a
23403 private branch.
23404 * config/rs6000/rs6000-c.c: Likewise.
23405 * config/rs6000/rs6000-call.c: Likewise.
23406 * config/rs6000/rs6000.c: Likewise.
23407
23408 2020-05-05 Sebastian Huber <sebastian.huber@embedded-brains.de>
23409
23410 * config/rtems.h (RTEMS_STARTFILE_SPEC): Define if undefined.
23411 (RTEMS_ENDFILE_SPEC): Likewise.
23412 (STARTFILE_SPEC): Update comment. Add RTEMS_STARTFILE_SPEC.
23413 (ENDFILE_SPEC): Add RTEMS_ENDFILE_SPEC.
23414 (LIB_SPECS): Support -nodefaultlibs option.
23415 * config/or1k/rtems.h (RTEMS_STARTFILE_SPEC): Define.
23416 (RTEMS_ENDFILE_SPEC): Likewise.
23417 * config/rs6000/rtems.h (RTEMS_STARTFILE_SPEC): Likewise.
23418 (RTEMS_ENDFILE_SPEC): Likewise.
23419 * config/v850/rtems.h (RTEMS_STARTFILE_SPEC): Likewise.
23420 (RTEMS_ENDFILE_SPEC): Likewise.
23421
23422 2020-05-05 Dimitar Dimitrov <dimitar@dinux.eu>
23423
23424 * config/pru/pru.c (pru_hard_regno_call_part_clobbered): Remove.
23425 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Remove.
23426
23427 2020-05-05 Dimitar Dimitrov <dimitar@dinux.eu>
23428
23429 * config/pru/pru.h: Mark R3.w0 as caller saved.
23430
23431 2020-05-05 Dimitar Dimitrov <dimitar@dinux.eu>
23432
23433 * config/pru/pru.c (pru_emit_doloop): Use new gen_doloop_end_internal
23434 and gen_doloop_begin_internal.
23435 (pru_reorg_loop): Use gen_pruloop with mode.
23436 * config/pru/pru.md: Use new @insn syntax.
23437
23438 2020-05-05 Dimitar Dimitrov <dimitar@dinux.eu>
23439
23440 * config/pru/pru.c (pru_print_operand): Fix fall through comment.
23441
23442 2020-05-05 Uroš Bizjak <ubizjak@gmail.com>
23443
23444 * config/i386/i386.md (fixuns_trunc<mode>si2): Use
23445 "clobber (scratch:M)" instad of "clobber (match_scratch:M N)".
23446 (addqi3_cconly_overflow): Ditto.
23447 (umulv<mode>4): Ditto.
23448 (<s>mul<mode>3_highpart): Ditto.
23449 (tls_global_dynamic_32): Ditto.
23450 (tls_local_dynamic_base_32): Ditto.
23451 (atanxf2): Ditto.
23452 (asinxf2): Ditto.
23453 (acosxf2): Ditto.
23454 (logxf2): Ditto.
23455 (log10xf2): Ditto.
23456 (log2xf2): Ditto.
23457 (*adddi_4): Remove "m" constraint from scratch operand.
23458 (*add<mode>_4): Ditto.
23459
23460 2020-05-05 Jakub Jelinek <jakub@redhat.com>
23461
23462 PR rtl-optimization/94516
23463 * postreload.c (reload_cse_simplify): When replacing sp = sp + const
23464 with sp = reg, add REG_EQUAL note with sp + const.
23465 * combine-stack-adj.c (try_apply_stack_adjustment): Change return
23466 type from int to bool. Add LIVE and OTHER_INSN arguments. Undo
23467 postreload sp = sp + const to sp = reg optimization if needed and
23468 possible.
23469 (combine_stack_adjustments_for_block): Add LIVE argument. Handle
23470 reg = sp insn with sp + const REG_EQUAL note. Adjust
23471 try_apply_stack_adjustment caller, call
23472 df_simulate_initialize_forwards and df_simulate_one_insn_forwards.
23473 (combine_stack_adjustments): Allocate and free LIVE bitmap,
23474 adjust combine_stack_adjustments_for_block caller.
23475
23476 2020-05-05 Martin Liska <mliska@suse.cz>
23477
23478 PR gcov-profile/93623
23479 * tree-cfg.c (stmt_can_terminate_bb_p): Update comment to reflect
23480 reality.
23481
23482 2020-05-05 Martin Liska <mliska@suse.cz>
23483
23484 * opt-functions.awk (opt_args_non_empty): New function.
23485 * opt-read.awk: Use the function for various option arguments.
23486
23487 2020-05-05 Martin Liska <mliska@suse.cz>
23488
23489 PR driver/94330
23490 * lto-wrapper.c (run_gcc): When using -flto=jobserver,
23491 report warning when the jobserver is not detected.
23492
23493 2020-05-05 Martin Liska <mliska@suse.cz>
23494
23495 PR gcov-profile/94636
23496 * gcov.c (main): Print total lines summary at the end.
23497 (generate_results): Expect file_name always being non-null.
23498 Print newline after intermediate file is printed in order to align with
23499 what we do for normal files.
23500
23501 2020-05-05 Martin Liska <mliska@suse.cz>
23502
23503 * dumpfile.c (dump_switch_p): Change return type
23504 and print option suggestion.
23505 * dumpfile.h: Change return type.
23506 * opts-global.c (handle_common_deferred_options):
23507 Move error into dump_switch_p function.
23508
23509 2020-05-05 Martin Liska <mliska@suse.cz>
23510
23511 PR c/92472
23512 * alloc-pool.h: Use const for some arguments.
23513 * bitmap.h: Likewise.
23514 * mem-stats.h: Likewise.
23515 * sese.h (get_entry_bb): Likewise.
23516 (get_exit_bb): Likewise.
23517
23518 2020-05-05 Richard Biener <rguenther@suse.de>
23519
23520 * tree-vect-slp.c (struct vdhs_data): New.
23521 (vect_detect_hybrid_slp): New walker.
23522 (vect_detect_hybrid_slp): Rewrite.
23523
23524 2020-05-05 Richard Biener <rguenther@suse.de>
23525
23526 PR ipa/94947
23527 * tree-ssa-structalias.c (ipa_pta_execute): Use
23528 varpool_node::externally_visible_p ().
23529 (refered_from_nonlocal_var): Likewise.
23530
23531 2020-05-05 Eric Botcazou <ebotcazou@adacore.com>
23532
23533 * gcc.c (LTO_PLUGIN_SPEC): Define if not already.
23534 (LINK_PLUGIN_SPEC): Execute LTO_PLUGIN_SPEC.
23535 * config/vxworks.h (LTO_PLUGIN_SPEC): Define.
23536
23537 2020-05-05 Eric Botcazou <ebotcazou@adacore.com>
23538
23539 * gimplify.c (gimplify_init_constructor): Do not put the constructor
23540 into static memory if it is not complete.
23541
23542 2020-05-05 Richard Biener <rguenther@suse.de>
23543
23544 PR tree-optimization/94949
23545 * tree-ssa-loop-im.c (execute_sm): Check whether we use
23546 the multithreaded model or always compute the stored value
23547 before eliding a load.
23548
23549 2020-05-05 Alex Coplan <alex.coplan@arm.com>
23550
23551 * config/aarch64/aarch64.md (*one_cmpl_zero_extend): New.
23552
23553 2020-05-05 Jakub Jelinek <jakub@redhat.com>
23554
23555 PR tree-optimization/94800
23556 * match.pd (X + (X << C) to X * (1 + (1 << C)),
23557 (X << C1) + (X << C2) to X * ((1 << C1) + (1 << C2))): New
23558 canonicalizations.
23559
23560 PR target/94942
23561 * config/i386/mmx.md (*vec_dupv4hi): Use xYw constraints instead of Yv.
23562
23563 PR tree-optimization/94914
23564 * match.pd ((((type)A * B) >> prec) != 0 to .MUL_OVERFLOW(A, B) != 0):
23565 New simplification.
23566
23567 2020-05-05 Uroš Bizjak <ubizjak@gmail.com>
23568
23569 * config/i386/i386.md (*testqi_ext_3): Use
23570 int_nonimmediate_operand instead of manual mode checks.
23571 (*x86_mov<SWI48:mode>cc_0_m1_neg_leu<SWI:mode>):
23572 Use int_nonimmediate_operand predicate. Rewrite
23573 define_insn_and_split pattern to a combine pass splitter.
23574
23575 2020-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23576
23577 * configure.ac <i[34567]86-*-*>: Add --32 to tls_as_opt on Solaris.
23578 * configure: Regenerate.
23579
23580 2020-05-05 Jakub Jelinek <jakub@redhat.com>
23581
23582 PR target/94460
23583 * config/i386/sse.md (avx2_ph<plusminus_mnemonic>wv16hi3,
23584 ssse3_ph<plusminus_mnemonic>wv8hi3, ssse3_ph<plusminus_mnemonic>wv4hi3,
23585 avx2_ph<plusminus_mnemonic>dv8si3, ssse3_ph<plusminus_mnemonic>dv4si3,
23586 ssse3_ph<plusminus_mnemonic>dv2si3): Simplify RTL patterns.
23587
23588 2020-05-04 Clement Chigot <clement.chigot@atos.net>
23589 David Edelsohn <dje.gcc@gmail.com>
23590
23591 * config/rs6000/rs6000-call.c (rs6000_init_builtins): Override explicit
23592 for fmodl, frexpl, ldexpl and modfl builtins.
23593
23594 2020-05-04 Richard Sandiford <richard.sandiford@arm.com>
23595
23596 PR middle-end/94941
23597 * internal-fn.c (expand_load_lanes_optab_fn): Emit a move if the
23598 chosen lhs is different from the gcall lhs.
23599 (expand_mask_load_optab_fn): Likewise.
23600 (expand_gather_load_optab_fn): Likewise.
23601
23602 2020-05-04 Uroš Bizjak <ubizjak@gmail.com>
23603
23604 PR target/94795
23605 * config/i386/i386.md (*neg<mode>_ccc): New insn pattern.
23606 (EQ compare->LTU compare splitter): New splitter.
23607 (NE compare->NEG splitter): Ditto.
23608
23609 2020-05-04 Marek Polacek <polacek@redhat.com>
23610
23611 Revert:
23612 2020-04-30 Marek Polacek <polacek@redhat.com>
23613
23614 PR c++/94775
23615 * tree.c (check_base_type): Return true only if TYPE_USER_ALIGN match.
23616 (check_aligned_type): Check if TYPE_USER_ALIGN match.
23617
23618 2020-05-04 Richard Biener <rguenther@suse.de>
23619
23620 PR tree-optimization/93891
23621 * tree-ssa-sccvn.c (vn_reference_lookup_3): Fall back to
23622 the original reference tree for assessing access alignment.
23623
23624 2020-05-04 Richard Biener <rguenther@suse.de>
23625
23626 PR tree-optimization/39612
23627 * tree-ssa-loop-im.c (im_mem_ref::loaded): New member.
23628 (set_ref_loaded_in_loop): New.
23629 (mark_ref_loaded): Likewise.
23630 (gather_mem_refs_stmt): Call mark_ref_loaded for loads.
23631 (execute_sm): Avoid issueing a load when it was not there.
23632 (execute_sm_if_changed): Avoid issueing warnings for the
23633 conditional store.
23634
23635 2020-05-04 Martin Jambor <mjambor@suse.cz>
23636
23637 PR ipa/93385
23638 * tree-inline.c (tree_function_versioning): Leave any type conversion
23639 of replacements to setup_one_parameter and its friend
23640 force_value_to_type.
23641
23642 2020-05-04 Uroš Bizjak <ubizjak@gmail.com>
23643
23644 PR target/94650
23645 * config/i386/predicates.md (shr_comparison_operator): New predicate.
23646 * config/i386/i386.md (compare->shr splitter): New splitters.
23647
23648 2020-05-04 Jakub Jelinek <jakub@redhat.com>
23649
23650 PR tree-optimization/94718
23651 * match.pd ((X < 0) != (Y < 0) into (X ^ Y) < 0): New simplification.
23652
23653 PR tree-optimization/94718
23654 * match.pd (bitop (convert @0) (convert? @1)): For GIMPLE, if we can,
23655 replace two nop conversions on bit_{and,ior,xor} argument
23656 and result with just one conversion on the result or another argument.
23657
23658 PR tree-optimization/94718
23659 * fold-const.c (fold_binary_loc): Move (X & C) eqne (Y & C)
23660 -> (X ^ Y) & C eqne 0 optimization to ...
23661 * match.pd ((X & C) op (Y & C) into (X ^ Y) & C op 0): ... here.
23662
23663 * opts.c (get_option_html_page): Instead of hardcoding a list of
23664 options common between C/C++ and Fortran only use gfortran/
23665 documentation for warnings that have CL_Fortran set but not
23666 CL_C or CL_CXX.
23667
23668 2020-05-03 Uroš Bizjak <ubizjak@gmail.com>
23669
23670 * config/i386/i386-expand.c (ix86_expand_int_movcc):
23671 Use plus_constant instead of gen_rtx_PLUS with GEN_INT.
23672 (emit_memmov): Ditto.
23673 (emit_memset): Ditto.
23674 (ix86_expand_strlensi_unroll_1): Ditto.
23675 (release_scratch_register_on_entry): Ditto.
23676 (gen_frame_set): Ditto.
23677 (ix86_emit_restore_reg_using_pop): Ditto.
23678 (ix86_emit_outlined_ms2sysv_restore): Ditto.
23679 (ix86_expand_epilogue): Ditto.
23680 (ix86_expand_split_stack_prologue): Ditto.
23681 * config/i386/i386.md (push immediate splitter): Ditto.
23682 (strmov): Ditto.
23683 (strset): Ditto.
23684
23685 2020-05-02 Iain Sandoe <iain@sandoe.co.uk>
23686
23687 PR translation/93861
23688 * config/darwin-driver.c (darwin_driver_init): Adjust spelling in
23689 a warning.
23690
23691 2020-05-02 Jakub Jelinek <jakub@redhat.com>
23692
23693 * config/tilegx/tilegx.md
23694 (insn_stnt<I124MODE:n>_add<I48MODE:bitsuffix>): Use <I124MODE:n>
23695 rather than just <n>.
23696
23697 2020-05-01 H.J. Lu <hongjiu.lu@intel.com>
23698
23699 PR target/93492
23700 * cfgexpand.c (pass_expand::execute): Set crtl->patch_area_size
23701 and crtl->patch_area_entry.
23702 * emit-rtl.h (rtl_data): Add patch_area_size and patch_area_entry.
23703 * opts.c (common_handle_option): Limit
23704 function_entry_patch_area_size and function_entry_patch_area_start
23705 to USHRT_MAX. Fix a typo in error message.
23706 * varasm.c (assemble_start_function): Use crtl->patch_area_size
23707 and crtl->patch_area_entry.
23708 * doc/invoke.texi: Document the maximum value for
23709 -fpatchable-function-entry.
23710
23711 2020-05-01 Iain Sandoe <iain@sandoe.co.uk>
23712
23713 * config/i386/darwin.h: Repair SUBTARGET_INIT_BUILTINS.
23714 Override SUBTARGET_SHADOW_OFFSET macro.
23715
23716 2020-05-01 Andreas Tobler <andreast@gcc.gnu.org>
23717
23718 * config/i386/i386.h: Define a new macro: SUBTARGET_SHADOW_OFFSET.
23719 * config/i386/i386.c (ix86_asan_shadow_offset): Use this macro.
23720 * config/i386/darwin.h: Override the SUBTARGET_SHADOW_OFFSET macro.
23721 * config/i386/freebsd.h: Likewise.
23722 * config/freebsd.h (LIBASAN_EARLY_SPEC): Define.
23723 LIBTSAN_EARLY_SPEC): Likewise. (LIBLSAN_EARLY_SPEC): Likewise.
23724
23725 2020-04-30 Alexandre Oliva <oliva@adacore.com>
23726
23727 * doc/sourcebuild.texi (Effective-Target Keywords): Document
23728 the newly-introduced fileio effective target.
23729
23730 2020-04-30 Richard Sandiford <richard.sandiford@arm.com>
23731
23732 PR rtl-optimization/94740
23733 * cse.c (cse_process_notes_1): Replace with...
23734 (cse_process_note_1): ...this new function, acting as a
23735 simplify_replace_fn_rtx callback to process_note. Handle only
23736 REGs and MEMs directly. Validate the MEM if cse_process_note
23737 changes its address.
23738 (cse_process_notes): Replace with...
23739 (cse_process_note): ...this new function.
23740 (cse_extended_basic_block): Update accordingly, iterating over
23741 the register notes and passing individual notes to cse_process_note.
23742
23743 2020-04-30 Carl Love <cel@us.ibm.com>
23744
23745 * config/rs6000/emmintrin.h (_mm_movemask_epi8): Fix comment.
23746
23747 2020-04-30 Martin Jambor <mjambor@suse.cz>
23748
23749 PR ipa/94856
23750 * cgraph.c (clone_of_p): Also consider thunks whih had their bodies
23751 saved by the inliner and thunks which had their call inlined.
23752 * ipa-inline-transform.c (save_inline_function_body): Fill in
23753 former_clone_of of new body holders.
23754
23755 2020-04-30 Jakub Jelinek <jakub@redhat.com>
23756
23757 * BASE-VER: Set to 11.0.0.
23758
23759 2020-04-30 Jonathan Wakely <jwakely@redhat.com>
23760
23761 * pretty-print.c (pp_take_prefix): Fix spelling in comment.
23762
23763 2020-04-30 Marek Polacek <polacek@redhat.com>
23764
23765 PR c++/94775
23766 * tree.c (check_base_type): Return true only if TYPE_USER_ALIGN match.
23767 (check_aligned_type): Check if TYPE_USER_ALIGN match.
23768
23769 2020-04-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23770
23771 * config/aarch64/aarch64.h (TARGET_OUTLINE_ATOMICS): Define.
23772 * config/aarch64/aarch64.opt (moutline-atomics): Change to Int variable.
23773 * doc/invoke.texi (moutline-atomics): Document as on by default.
23774
23775 2020-04-30 Szabolcs Nagy <szabolcs.nagy@arm.com>
23776
23777 PR target/94748
23778 * config/aarch64/aarch64-bti-insert.c (rest_of_insert_bti): Remove
23779 the check for NOTE_INSN_DELETED_LABEL.
23780
23781 2020-04-30 Jakub Jelinek <jakub@redhat.com>
23782
23783 * configure.ac (--with-documentation-root-url,
23784 --with-changes-root-url): Diagnose URL not ending with /,
23785 use AC_DEFINE_UNQUOTED instead of AC_SUBST.
23786 * opts.h (get_changes_url): Remove.
23787 * opts.c (get_changes_url): Remove.
23788 * Makefile.in (CFLAGS-opts.o): Don't add -DDOCUMENTATION_ROOT_URL
23789 or -DCHANGES_ROOT_URL.
23790 * doc/install.texi (--with-documentation-root-url,
23791 --with-changes-root-url): Document.
23792 * config/arm/arm.c (aapcs_vfp_is_call_or_return_candidate): Don't call
23793 get_changes_url and free, change url variable type to const char * and
23794 set it to CHANGES_ROOT_URL "gcc-10/changes.html#empty_base".
23795 * config/s390/s390.c (s390_function_arg_vector,
23796 s390_function_arg_float): Likewise.
23797 * config/aarch64/aarch64.c (aarch64_vfp_is_call_or_return_candidate):
23798 Likewise.
23799 * config/rs6000/rs6000-call.c (rs6000_discover_homogeneous_aggregate):
23800 Likewise.
23801 * config.in: Regenerate.
23802 * configure: Regenerate.
23803
23804 2020-04-30 Christophe Lyon <christophe.lyon@linaro.org>
23805
23806 PR target/57002
23807 * config/arm/arm.c (isr_attribute_args): Remove duplicate entries.
23808
23809 2020-04-30 Andreas Krebbel <krebbel@linux.ibm.com>
23810
23811 * config/s390/constraints.md ("j>f", "jb4"): New constraints.
23812 * config/s390/vecintrin.h (vec_load_len_r, vec_store_len_r): Fix
23813 macro definitions.
23814 * config/s390/vx-builtins.md ("vlrlrv16qi", "vstrlrv16qi"): Add a
23815 separate expander.
23816 ("*vlrlrv16qi", "*vstrlrv16qi"): Add alternative for vl/vst.
23817 Change constraint for vlrl/vstrl to jb4.
23818
23819 2020-04-30 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
23820
23821 * var-tracking.c (vt_initialize): Move variables pre and post
23822 into inner block and initialize both in order to fix warning
23823 about uninitialized use. Remove unnecessary checks for
23824 frame_pointer_needed.
23825
23826 2020-04-30 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
23827
23828 * toplev.c (output_stack_usage_1): Ensure that first
23829 argument to fprintf is not null.
23830
23831 2020-04-29 Jakub Jelinek <jakub@redhat.com>
23832
23833 * configure.ac (-with-changes-root-url): New configure option,
23834 defaulting to https://gcc.gnu.org/.
23835 * Makefile.in (CFLAGS-opts.o): Define CHANGES_ROOT_URL for
23836 opts.c.
23837 * pretty-print.c (get_end_url_string): New function.
23838 (pp_format): Handle %{ and %} for URLs.
23839 (pp_begin_url): Use pp_string instead of pp_printf.
23840 (pp_end_url): Use get_end_url_string.
23841 * opts.h (get_changes_url): Declare.
23842 * opts.c (get_changes_url): New function.
23843 * config/rs6000/rs6000-call.c: Include opts.h.
23844 (rs6000_discover_homogeneous_aggregate): Use %{in GCC 10.1%} instead
23845 of just in GCC 10.1 in diagnostics and add URL.
23846 * config/arm/arm.c (aapcs_vfp_is_call_or_return_candidate): Likewise.
23847 * config/aarch64/aarch64.c (aarch64_vfp_is_call_or_return_candidate):
23848 Likewise.
23849 * config/s390/s390.c (s390_function_arg_vector,
23850 s390_function_arg_float): Likewise.
23851 * configure: Regenerated.
23852
23853 PR target/94704
23854 * config/s390/s390.c (s390_function_arg_vector,
23855 s390_function_arg_float): Use DECL_FIELD_ABI_IGNORED instead of
23856 cxx17_empty_base_field_p. In -Wpsabi diagnostics use the type
23857 passed to the function rather than the type of the single element.
23858 Rename cxx17_empty_base_seen variable to empty_base_seen, change
23859 type to int, and adjust diagnostics depending on if the field
23860 has [[no_unique_attribute]] or not.
23861
23862 PR target/94832
23863 * config/i386/avx512bwintrin.h (_mm512_alignr_epi8,
23864 _mm512_mask_alignr_epi8, _mm512_maskz_alignr_epi8): Wrap macro operands
23865 used in casts into parens.
23866 * config/i386/avx512fintrin.h (_mm512_cvt_roundps_ph, _mm512_cvtps_ph,
23867 _mm512_mask_cvt_roundps_ph, _mm512_mask_cvtps_ph,
23868 _mm512_maskz_cvt_roundps_ph, _mm512_maskz_cvtps_ph,
23869 _mm512_mask_cmp_epi64_mask, _mm512_mask_cmp_epi32_mask,
23870 _mm512_mask_cmp_epu64_mask, _mm512_mask_cmp_epu32_mask,
23871 _mm512_mask_cmp_round_pd_mask, _mm512_mask_cmp_round_ps_mask,
23872 _mm512_mask_cmp_pd_mask, _mm512_mask_cmp_ps_mask): Likewise.
23873 * config/i386/avx512vlbwintrin.h (_mm256_mask_alignr_epi8,
23874 _mm256_maskz_alignr_epi8, _mm_mask_alignr_epi8, _mm_maskz_alignr_epi8,
23875 _mm256_mask_cmp_epu8_mask): Likewise.
23876 * config/i386/avx512vlintrin.h (_mm_mask_cvtps_ph, _mm_maskz_cvtps_ph,
23877 _mm256_mask_cvtps_ph, _mm256_maskz_cvtps_ph): Likewise.
23878 * config/i386/f16cintrin.h (_mm_cvtps_ph, _mm256_cvtps_ph): Likewise.
23879 * config/i386/shaintrin.h (_mm_sha1rnds4_epu32): Likewise.
23880
23881 PR target/94832
23882 * config/i386/avx2intrin.h (_mm_mask_i32gather_pd,
23883 _mm256_mask_i32gather_pd, _mm_mask_i64gather_pd,
23884 _mm256_mask_i64gather_pd, _mm_mask_i32gather_ps,
23885 _mm256_mask_i32gather_ps, _mm_mask_i64gather_ps,
23886 _mm256_mask_i64gather_ps, _mm_i32gather_epi64,
23887 _mm_mask_i32gather_epi64, _mm256_i32gather_epi64,
23888 _mm256_mask_i32gather_epi64, _mm_i64gather_epi64,
23889 _mm_mask_i64gather_epi64, _mm256_i64gather_epi64,
23890 _mm256_mask_i64gather_epi64, _mm_i32gather_epi32,
23891 _mm_mask_i32gather_epi32, _mm256_i32gather_epi32,
23892 _mm256_mask_i32gather_epi32, _mm_i64gather_epi32,
23893 _mm_mask_i64gather_epi32, _mm256_i64gather_epi32,
23894 _mm256_mask_i64gather_epi32): Surround macro parameter uses with
23895 parens.
23896 (_mm_i32gather_pd, _mm256_i32gather_pd, _mm_i64gather_pd,
23897 _mm256_i64gather_pd, _mm_i32gather_ps, _mm256_i32gather_ps,
23898 _mm_i64gather_ps, _mm256_i64gather_ps): Likewise. Don't use
23899 as mask vector containing -1.0 or -1.0f elts, but instead vector
23900 with all bits set using _mm*_cmpeq_p? with zero operands.
23901 * config/i386/avx512fintrin.h (_mm512_i32gather_ps,
23902 _mm512_mask_i32gather_ps, _mm512_i32gather_pd,
23903 _mm512_mask_i32gather_pd, _mm512_i64gather_ps,
23904 _mm512_mask_i64gather_ps, _mm512_i64gather_pd,
23905 _mm512_mask_i64gather_pd, _mm512_i32gather_epi32,
23906 _mm512_mask_i32gather_epi32, _mm512_i32gather_epi64,
23907 _mm512_mask_i32gather_epi64, _mm512_i64gather_epi32,
23908 _mm512_mask_i64gather_epi32, _mm512_i64gather_epi64,
23909 _mm512_mask_i64gather_epi64, _mm512_i32scatter_ps,
23910 _mm512_mask_i32scatter_ps, _mm512_i32scatter_pd,
23911 _mm512_mask_i32scatter_pd, _mm512_i64scatter_ps,
23912 _mm512_mask_i64scatter_ps, _mm512_i64scatter_pd,
23913 _mm512_mask_i64scatter_pd, _mm512_i32scatter_epi32,
23914 _mm512_mask_i32scatter_epi32, _mm512_i32scatter_epi64,
23915 _mm512_mask_i32scatter_epi64, _mm512_i64scatter_epi32,
23916 _mm512_mask_i64scatter_epi32, _mm512_i64scatter_epi64,
23917 _mm512_mask_i64scatter_epi64): Surround macro parameter uses with
23918 parens.
23919 * config/i386/avx512pfintrin.h (_mm512_prefetch_i32gather_pd,
23920 _mm512_prefetch_i32gather_ps, _mm512_mask_prefetch_i32gather_pd,
23921 _mm512_mask_prefetch_i32gather_ps, _mm512_prefetch_i64gather_pd,
23922 _mm512_prefetch_i64gather_ps, _mm512_mask_prefetch_i64gather_pd,
23923 _mm512_mask_prefetch_i64gather_ps, _mm512_prefetch_i32scatter_pd,
23924 _mm512_prefetch_i32scatter_ps, _mm512_mask_prefetch_i32scatter_pd,
23925 _mm512_mask_prefetch_i32scatter_ps, _mm512_prefetch_i64scatter_pd,
23926 _mm512_prefetch_i64scatter_ps, _mm512_mask_prefetch_i64scatter_pd,
23927 _mm512_mask_prefetch_i64scatter_ps): Likewise.
23928 * config/i386/avx512vlintrin.h (_mm256_mmask_i32gather_ps,
23929 _mm_mmask_i32gather_ps, _mm256_mmask_i32gather_pd,
23930 _mm_mmask_i32gather_pd, _mm256_mmask_i64gather_ps,
23931 _mm_mmask_i64gather_ps, _mm256_mmask_i64gather_pd,
23932 _mm_mmask_i64gather_pd, _mm256_mmask_i32gather_epi32,
23933 _mm_mmask_i32gather_epi32, _mm256_mmask_i32gather_epi64,
23934 _mm_mmask_i32gather_epi64, _mm256_mmask_i64gather_epi32,
23935 _mm_mmask_i64gather_epi32, _mm256_mmask_i64gather_epi64,
23936 _mm_mmask_i64gather_epi64, _mm256_i32scatter_ps,
23937 _mm256_mask_i32scatter_ps, _mm_i32scatter_ps, _mm_mask_i32scatter_ps,
23938 _mm256_i32scatter_pd, _mm256_mask_i32scatter_pd, _mm_i32scatter_pd,
23939 _mm_mask_i32scatter_pd, _mm256_i64scatter_ps,
23940 _mm256_mask_i64scatter_ps, _mm_i64scatter_ps, _mm_mask_i64scatter_ps,
23941 _mm256_i64scatter_pd, _mm256_mask_i64scatter_pd, _mm_i64scatter_pd,
23942 _mm_mask_i64scatter_pd, _mm256_i32scatter_epi32,
23943 _mm256_mask_i32scatter_epi32, _mm_i32scatter_epi32,
23944 _mm_mask_i32scatter_epi32, _mm256_i32scatter_epi64,
23945 _mm256_mask_i32scatter_epi64, _mm_i32scatter_epi64,
23946 _mm_mask_i32scatter_epi64, _mm256_i64scatter_epi32,
23947 _mm256_mask_i64scatter_epi32, _mm_i64scatter_epi32,
23948 _mm_mask_i64scatter_epi32, _mm256_i64scatter_epi64,
23949 _mm256_mask_i64scatter_epi64, _mm_i64scatter_epi64,
23950 _mm_mask_i64scatter_epi64): Likewise.
23951
23952 2020-04-29 Jeff Law <law@redhat.com>
23953
23954 * config/h8300/h8300.md (H8/SX div patterns): All H8/SX specific
23955 division instructions are 4 bytes long.
23956
23957 2020-04-29 Jakub Jelinek <jakub@redhat.com>
23958
23959 PR target/94826
23960 * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv): Use
23961 TARGET_EXPR instead of MODIFY_EXPR for first assignment to
23962 fenv_var, fenv_clear and old_fenv variables. For fenv_addr
23963 take address of TARGET_EXPR of fenv_var with void_node initializer.
23964 Formatting fixes.
23965
23966 2020-04-29 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
23967
23968 PR tree-optimization/94774
23969 * gimple-ssa-sprintf.c (try_substitute_return_value): Initialize
23970 variable retval.
23971
23972 2020-04-29 Richard Sandiford <richard.sandiford@arm.com>
23973
23974 * calls.h (cxx17_empty_base_field_p): Turn into a function declaration.
23975 * calls.c (cxx17_empty_base_field_p): New function. Check
23976 DECL_ARTIFICIAL and RECORD_OR_UNION_TYPE_P in addition to the
23977 previous checks.
23978
23979 2020-04-29 H.J. Lu <hongjiu.lu@intel.com>
23980
23981 PR target/93654
23982 * config/i386/i386-options.c (ix86_set_indirect_branch_type):
23983 Allow -fcf-protection with -mindirect-branch=thunk-extern and
23984 -mfunction-return=thunk-extern.
23985 * doc/invoke.texi: Update notes for -fcf-protection=branch with
23986 -mindirect-branch=thunk-extern and -mindirect-return=thunk-extern.
23987
23988 2020-04-29 Richard Sandiford <richard.sandiford@arm.com>
23989
23990 * doc/sourcebuild.texi: Add missing arm_arch_v8a_hard_ok anchor.
23991
23992 2020-04-29 Richard Sandiford <richard.sandiford@arm.com>
23993
23994 * config/arm/arm-builtins.c (arm_atomic_assign_expand_fenv): Use
23995 TARGET_EXPR instead of MODIFY_EXPR for the first assignments to
23996 fenv_var and new_fenv_var.
23997
23998 2020-04-29 Richard Sandiford <richard.sandiford@arm.com>
23999
24000 * doc/sourcebuild.texi (arm_arch_v8a_hard_ok): Document new
24001 effective-target keyword.
24002 (arm_arch_v8a_hard_multilib): Likewise.
24003 (arm_arch_v8a_hard): Document new dg-add-options keyword.
24004 * config/arm/arm.c (arm_return_in_memory): Note that the APCS
24005 code is deprecated and has not been updated to handle
24006 DECL_FIELD_ABI_IGNORED.
24007 (WARN_PSABI_EMPTY_CXX17_BASE): New constant.
24008 (WARN_PSABI_NO_UNIQUE_ADDRESS): Likewise.
24009 (aapcs_vfp_sub_candidate): Replace the boolean pointer parameter
24010 avoid_cxx17_empty_base with a pointer to a bitmask. Ignore fields
24011 whose DECL_FIELD_ABI_IGNORED bit is set when determining whether
24012 something actually is a HFA or HVA. Record whether we see a
24013 [[no_unique_address]] field that previous GCCs would not have
24014 ignored in this way.
24015 (aapcs_vfp_is_call_or_return_candidate): Update the calls to
24016 aapcs_vfp_sub_candidate and report a -Wpsabi warning for the
24017 [[no_unique_address]] case. Use TYPE_MAIN_VARIANT in the
24018 diagnostic messages.
24019 (arm_needs_doubleword_align): Add a comment explaining why we
24020 consider even zero-sized fields.
24021
24022 2020-04-29 Richard Biener <rguenther@suse.de>
24023 Li Zekun <lizekun1@huawei.com>
24024
24025 PR lto/94822
24026 * tree.c (component_ref_size): Guard against error_mark_node
24027 DECL_INITIAL as it happens with LTO.
24028
24029 2020-04-29 Richard Sandiford <richard.sandiford@arm.com>
24030
24031 * config/aarch64/aarch64.c (aarch64_function_arg_alignment): Add a
24032 comment explaining why we consider even zero-sized fields.
24033 (WARN_PSABI_EMPTY_CXX17_BASE): New constant.
24034 (WARN_PSABI_NO_UNIQUE_ADDRESS): Likewise.
24035 (aapcs_vfp_sub_candidate): Replace the boolean pointer parameter
24036 avoid_cxx17_empty_base with a pointer to a bitmask. Ignore fields
24037 whose DECL_FIELD_ABI_IGNORED bit is set when determining whether
24038 something actually is a HFA or HVA. Record whether we see a
24039 [[no_unique_address]] field that previous GCCs would not have
24040 ignored in this way.
24041 (aarch64_vfp_is_call_or_return_candidate): Add a parameter to say
24042 whether diagnostics should be suppressed. Update the calls to
24043 aapcs_vfp_sub_candidate and report a -Wpsabi warning for the
24044 [[no_unique_address]] case.
24045 (aarch64_return_in_msb): Update call accordingly, never silencing
24046 diagnostics.
24047 (aarch64_function_value): Likewise.
24048 (aarch64_return_in_memory_1): Likewise.
24049 (aarch64_init_cumulative_args): Likewise.
24050 (aarch64_gimplify_va_arg_expr): Likewise.
24051 (aarch64_pass_by_reference_1): Take a CUMULATIVE_ARGS pointer and
24052 use it to decide whether arch64_vfp_is_call_or_return_candidate
24053 should be silent.
24054 (aarch64_pass_by_reference): Update calls accordingly.
24055 (aarch64_vfp_is_call_candidate): Use the CUMULATIVE_ARGS argument
24056 to decide whether arch64_vfp_is_call_or_return_candidate should be
24057 silent.
24058
24059 2020-04-29 Haijian Zhang <z.zhanghaijian@huawei.com>
24060
24061 PR target/94820
24062 * config/aarch64/aarch64-builtins.c
24063 (aarch64_atomic_assign_expand_fenv): Use TARGET_EXPR instead of
24064 MODIFY_EXPR for first assignment to fenv_cr, fenv_sr and
24065 new_fenv_var.
24066
24067 2020-04-29 Thomas Schwinge <thomas@codesourcery.com>
24068
24069 * configure.ac <$enable_offload_targets>: Do parsing as done
24070 elsewhere.
24071 * configure: Regenerate.
24072
24073 * configure.ac <$enable_offload_targets>: 'amdgcn' is 'gcn'.
24074 * configure: Regenerate.
24075
24076 PR target/94279
24077 * rtlanal.c (set_noop_p): Handle non-constant selectors.
24078
24079 PR target/94282
24080 * common/config/gcn/gcn-common.c (gcn_except_unwind_info): New
24081 function.
24082 (TARGET_EXCEPT_UNWIND_INFO): Define.
24083
24084 2020-04-29 Jakub Jelinek <jakub@redhat.com>
24085
24086 PR target/94248
24087 * config/gcn/gcn.md (*mov<mode>_insn): Use
24088 'reg_overlap_mentioned_p' to check for overlap.
24089
24090 PR target/94706
24091 * config/ia64/ia64.c (hfa_element_mode): Use DECL_FIELD_ABI_IGNORED
24092 instead of cxx17_empty_base_field_p.
24093
24094 PR target/94707
24095 * tree-core.h (tree_decl_common): Note decl_flag_0 used for
24096 DECL_FIELD_ABI_IGNORED.
24097 * tree.h (DECL_FIELD_ABI_IGNORED): Define.
24098 * calls.h (cxx17_empty_base_field_p): Change into a temporary
24099 macro, check DECL_FIELD_ABI_IGNORED flag with no "no_unique_address"
24100 attribute.
24101 * calls.c (cxx17_empty_base_field_p): Remove.
24102 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Handle
24103 DECL_FIELD_ABI_IGNORED.
24104 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
24105 * lto-streamer-out.c (hash_tree): Likewise.
24106 * config/rs6000/rs6000-call.c (rs6000_aggregate_candidate): Rename
24107 cxx17_empty_base_seen to empty_base_seen, change type to int *,
24108 adjust recursive calls, use DECL_FIELD_ABI_IGNORED instead of
24109 cxx17_empty_base_field_p, if "no_unique_address" attribute is
24110 present, propagate that to the caller too.
24111 (rs6000_discover_homogeneous_aggregate): Adjust
24112 rs6000_aggregate_candidate caller, emit different diagnostics
24113 when c++17 empty base fields are present and when empty
24114 [[no_unique_address]] fields are present.
24115 * config/rs6000/rs6000.c (rs6000_special_round_type_align,
24116 darwin_rs6000_special_round_type_align): Skip DECL_FIELD_ABI_IGNORED
24117 fields.
24118
24119 2020-04-29 Richard Biener <rguenther@suse.de>
24120
24121 * tree-ssa-loop-im.c (ref_always_accessed::operator ()):
24122 Just check whether the stmt stores.
24123
24124 2020-04-28 Alexandre Oliva <oliva@adacore.com>
24125
24126 PR target/94812
24127 * config/rs6000/rs6000.md (rs6000_mffsl): Copy result to
24128 output operand in emulation. Don't overwrite pseudos.
24129
24130 2020-04-28 Jeff Law <law@redhat.com>
24131
24132 * config/h8300/h8300.md (H8/SX mult patterns): All H8/SX specific
24133 multiply patterns are 4 bytes long.
24134
24135 2020-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24136
24137 * config/arm/arm-cpus.in (cortex-m55): Remove +nofp option.
24138 * doc/invoke.texi (Arm Options): Remove -mcpu=cortex-m55 from +nofp option.
24139
24140 2020-04-28 Matthew Malcomson <matthew.malcomson@arm.com>
24141 Jakub Jelinek <jakub@redhat.com>
24142
24143 PR target/94711
24144 * config/arm/arm.c (aapcs_vfp_sub_candidate): Account for C++17 empty
24145 base class artificial fields.
24146 (aapcs_vfp_is_call_or_return_candidate): Warn when PCS ABI
24147 decision is different after this fix.
24148
24149 2020-04-28 David Malcolm <dmalcolm@redhat.com>
24150
24151 PR analyzer/94447
24152 PR analyzer/94639
24153 PR analyzer/94732
24154 PR analyzer/94754
24155 * doc/invoke.texi (Static Analyzer Options): Remove
24156 -Wanalyzer-use-of-uninitialized-value.
24157 (-Wno-analyzer-use-of-uninitialized-value): Remove item.
24158
24159 2020-04-28 Jakub Jelinek <jakub@redhat.com>
24160
24161 PR tree-optimization/94809
24162 * tree.c (build_call_expr_internal_loc_array): Call
24163 process_call_operands.
24164
24165 2020-04-27 Anton Youdkevitch <anton.youdkevitch@bell-sw.com>
24166
24167 * config/aarch64/aarch64-cores.def (thunderx3t110): Add the chip name.
24168 * config/aarch64/aarch64-tune.md: Regenerate.
24169 * config/aarch64/aarch64.c (thunderx3t110_addrcost_table): Define.
24170 (thunderx3t110_regmove_cost): Likewise.
24171 (thunderx3t110_vector_cost): Likewise.
24172 (thunderx3t110_prefetch_tune): Likewise.
24173 (thunderx3t110_tunings): Likewise.
24174 * config/aarch64/aarch64-cost-tables.h (thunderx3t110_extra_costs):
24175 Define.
24176 * config/aarch64/thunderx3t110.md: New file.
24177 * config/aarch64/aarch64.md: Include thunderx3t110.md.
24178 * doc/invoke.texi (AArch64 options): Add thunderx3t110.
24179
24180 2020-04-28 Jakub Jelinek <jakub@redhat.com>
24181
24182 PR target/94704
24183 * config/s390/s390.c (s390_function_arg_vector,
24184 s390_function_arg_float): Emit -Wpsabi diagnostics if the ABI changed.
24185
24186 2020-04-28 Richard Sandiford <richard.sandiford@arm.com>
24187
24188 PR tree-optimization/94727
24189 * tree-vect-stmts.c (vect_is_simple_cond): If both comparison
24190 operands are invariant booleans, use the mask type associated with the
24191 STMT_VINFO_VECTYPE. Use !slp_node instead of !vectype to exclude SLP.
24192 (vectorizable_condition): Pass vectype unconditionally to
24193 vect_is_simple_cond.
24194
24195 2020-04-27 Jakub Jelinek <jakub@redhat.com>
24196
24197 PR target/94780
24198 * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Use
24199 TARGET_EXPR instead of MODIFY_EXPR for first assignment to
24200 sw_var, exceptions_var, mxcsr_orig_var and mxcsr_mod_var.
24201
24202 2020-04-27 David Malcolm <dmalcolm@redhat.com>
24203
24204 PR 92830
24205 * configure.ac (DOCUMENTATION_ROOT_URL): Drop trailing "gcc/" from
24206 default value, so that it can by supplied by get_option_html_page.
24207 * configure: Regenerate.
24208 * opts.c: Include "selftest.h".
24209 (get_option_html_page): New function.
24210 (get_option_url): Use it. Reformat to place comments next to the
24211 expressions they refer to.
24212 (selftest::test_get_option_html_page): New.
24213 (selftest::opts_c_tests): New.
24214 * selftest-run-tests.c (selftest::run_tests): Call
24215 selftest::opts_c_tests.
24216 * selftest.h (selftest::opts_c_tests): New decl.
24217
24218 2020-04-27 Richard Sandiford <richard.sandiford@arm.com>
24219
24220 * config/arm/arm-builtins.c (arm_expand_builtin_args): Only apply
24221 UINTVAL to CONST_INTs.
24222
24223 2020-04-27 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
24224
24225 * config/arm/constraints.md (e): Remove constraint.
24226 (Te): Define constraint.
24227 * config/arm/mve.md (vaddvq_<supf><mode>): Modify constraint in
24228 operand 0 from "e" to "Te".
24229 (vaddvaq_<supf><mode>): Likewise.
24230 (vaddvq_p_<supf><mode>): Likewise.
24231 (vmladavq_<supf><mode>): Likewise.
24232 (vmladavxq_s<mode>): Likewise.
24233 (vmlsdavq_s<mode>): Likewise.
24234 (vmlsdavxq_s<mode>): Likewise.
24235 (vaddvaq_p_<supf><mode>): Likewise.
24236 (vmladavaq_<supf><mode>): Likewise.
24237 (vmladavq_p_<supf><mode>): Likewise.
24238 (vmladavxq_p_s<mode>): Likewise.
24239 (vmlsdavq_p_s<mode>): Likewise.
24240 (vmlsdavxq_p_s<mode>): Likewise.
24241 (vmlsdavaxq_s<mode>): Likewise.
24242 (vmlsdavaq_s<mode>): Likewise.
24243 (vmladavaxq_s<mode>): Likewise.
24244 (vmladavaq_p_<supf><mode>): Likewise.
24245 (vmladavaxq_p_s<mode>): Likewise.
24246 (vmlsdavaq_p_s<mode>): Likewise.
24247 (vmlsdavaxq_p_s<mode>): Likewise.
24248
24249 2020-04-27 Andre Vieira <andre.simoesdiasvieira@arm.com>
24250
24251 * config/arm/arm.c (output_move_neon): Only get the first operand if
24252 addr is PLUS.
24253
24254 2020-04-27 Felix Yang <felix.yang@huawei.com>
24255
24256 PR tree-optimization/94784
24257 * tree-ssa-forwprop.c (simplify_vector_constructor): Flip the
24258 assert around so that it checks that the two vectors have equal
24259 TYPE_VECTOR_SUBPARTS and that converting the corresponding element
24260 types is a useless_type_conversion_p.
24261
24262 2020-04-27 Szabolcs Nagy <szabolcs.nagy@arm.com>
24263
24264 PR target/94515
24265 * dwarf2cfi.c (struct GTY): Add ra_mangled.
24266 (cfi_row_equal_p): Check ra_mangled.
24267 (dwarf2out_frame_debug_cfa_window_save): Remove the argument,
24268 this only handles the sparc logic now.
24269 (dwarf2out_frame_debug_cfa_toggle_ra_mangle): New function for
24270 the aarch64 specific logic.
24271 (dwarf2out_frame_debug): Update to use the new subroutines.
24272 (change_cfi_row): Check ra_mangled.
24273
24274 2020-04-27 Jakub Jelinek <jakub@redhat.com>
24275
24276 PR target/94704
24277 * config/s390/s390.c (s390_function_arg_vector,
24278 s390_function_arg_float): Ignore cxx17_empty_base_field_p fields.
24279
24280 2020-04-27 Jiufu Guo <guojiufu@cn.ibm.com>
24281
24282 * common/config/rs6000/rs6000-common.c
24283 (rs6000_option_optimization_table) [OPT_LEVELS_ALL]: Remove turn off
24284 -fweb.
24285 * config/rs6000/rs6000.c (rs6000_option_override_internal): Avoid to
24286 set flag_web.
24287
24288 2020-04-27 Martin Liska <mliska@suse.cz>
24289
24290 PR lto/94659
24291 * cgraph.h (cgraph_node::can_remove_if_no_direct_calls_and_refs_p):
24292 Do not remove ifunc_resolvers in remove unreachable nodes in LTO.
24293
24294 2020-04-27 Xiong Hu Luo <luoxhu@linux.ibm.com>
24295
24296 PR target/91518
24297 * config/rs6000/rs6000-logue.c (frame_pointer_needed_indeed):
24298 New variable.
24299 (rs6000_emit_prologue_components):
24300 Check with frame_pointer_needed_indeed.
24301 (rs6000_emit_epilogue_components): Likewise.
24302 (rs6000_emit_prologue): Likewise.
24303 (rs6000_emit_epilogue): Set frame_pointer_needed_indeed.
24304
24305 2020-04-25 David Edelsohn <dje.gcc@gmail.com>
24306
24307 * config/rs6000/rs6000-logue.c (rs6000_stack_info): Don't push a
24308 stack frame when debugging and flag_compare_debug is enabled.
24309
24310 2020-04-25 Michael Meissner <meissner@linux.ibm.com>
24311
24312 * config/rs6000/linux64.h (PCREL_SUPPORTED_BY_OS): Define to
24313 enable PC-relative addressing for -mcpu=future.
24314 * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Move
24315 after OTHER_FUTURE_MASKS. Use OTHER_FUTURE_MASKS.
24316 * config/rs6000/rs6000.c (PCREL_SUPPORTED_BY_OS): If not defined,
24317 suppress PC-relative addressing.
24318 (rs6000_option_override_internal): Split up error messages
24319 checking for -mprefixed and -mpcrel. Enable -mpcrel if the target
24320 system supports it.
24321
24322 2020-04-25 Jakub Jelinek <jakub@redhat.com>
24323 Richard Biener <rguenther@suse.de>
24324
24325 PR tree-optimization/94734
24326 PR tree-optimization/89430
24327 * tree-ssa-phiopt.c: Include tree-eh.h.
24328 (cond_store_replacement): Return false if an automatic variable
24329 access could trap. If -fstore-data-races, don't return false
24330 just because an automatic variable is addressable.
24331
24332 2020-04-24 Andrew Stubbs <ams@codesourcery.com>
24333
24334 * config/gcn/gcn-valu.md (add<mode>_zext_dup2_exec): Fix merge
24335 of high-part.
24336 (add<mode>_sext_dup2_exec): Likewise.
24337
24338 2020-04-24 Segher Boessenkool <segher@kernel.crashing.org>
24339
24340 PR target/94710
24341 * config/rs6000/vector.md (vec_shr_<mode> for VEC_L): Correct little
24342 endian byteshift_val calculation.
24343
24344 2020-04-24 Andrew Stubbs <ams@codesourcery.com>
24345
24346 * config/gcn/gcn.md (*mov<mode>_insn): Only split post-reload.
24347
24348 2020-04-24 Richard Sandiford <richard.sandiford@arm.com>
24349
24350 * config/aarch64/arm_sve.h: Add a comment.
24351
24352 2020-04-24 Haijian Zhang <z.zhanghaijian@huawei.com>
24353
24354 PR rtl-optimization/94708
24355 * combine.c (simplify_if_then_else): Add check for
24356 !HONOR_NANS (mode) && !HONOR_SIGNED_ZEROS (mode).
24357
24358 2020-04-23 Martin Sebor <msebor@redhat.com>
24359
24360 PR driver/90983
24361 * common.opt (-Wno-frame-larger-than): New option.
24362 (-Wno-larger-than, -Wno-stack-usage): Same.
24363
24364 2020-04-23 Andrew Stubbs <ams@codesourcery.com>
24365
24366 * config/gcn/gcn-valu.md (mov<mode>_exec): Swap the numbers on operands
24367 2 and 3.
24368 (mov<mode>_exec): Likewise.
24369 (trunc<vndi><mode>2_exec): Swap parameters to gen_mov<mode>_exec.
24370 (<convop><mode><vndi>2_exec): Likewise.
24371
24372 2019-04-23 Eric Botcazou <ebotcazou@adacore.com>
24373
24374 PR tree-optimization/94717
24375 * gimple-ssa-store-merging.c (try_coalesce_bswap): Return false if one
24376 of the stores doesn't have the same landing pad number as the first.
24377 (coalesce_immediate_stores): Do not try to coalesce the store using
24378 bswap if it doesn't have the same landing pad number as the first.
24379
24380 2020-04-23 Bill Schmidt <wschmidt@linux.ibm.com>
24381
24382 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
24383 Replace outdated link to ELFv2 ABI.
24384
24385 2020-04-23 Jakub Jelinek <jakub@redhat.com>
24386
24387 PR target/94710
24388 * optabs.c (expand_vec_perm_const): For shift_amt const0_rtx
24389 just return v2.
24390
24391 PR middle-end/94724
24392 * tree.c (get_narrower): Instead of creating COMPOUND_EXPRs
24393 temporarily with non-final second operand and updating it later,
24394 push COMPOUND_EXPRs into a vector and process it in reverse,
24395 creating COMPOUND_EXPRs with the final operands.
24396
24397 2020-04-23 Szabolcs Nagy <szabolcs.nagy@arm.com>
24398
24399 PR target/94697
24400 * config/aarch64/aarch64-bti-insert.c (rest_of_insert_bti): Swap
24401 bti c and bti j handling.
24402
24403 2020-04-23 Andrew Stubbs <ams@codesourcery.com>
24404 Thomas Schwinge <thomas@codesourcery.com>
24405
24406 PR middle-end/93488
24407
24408 * omp-expand.c (expand_omp_target): Use force_gimple_operand_gsi on
24409 t_async and the wait arguments.
24410
24411 2020-04-23 Richard Sandiford <richard.sandiford@arm.com>
24412
24413 PR tree-optimization/94727
24414 * tree-vect-stmts.c (vectorizable_comparison): Use mask_type when
24415 comparing invariant scalar booleans.
24416
24417 2020-04-23 Matthew Malcomson <matthew.malcomson@arm.com>
24418 Jakub Jelinek <jakub@redhat.com>
24419
24420 PR target/94383
24421 * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Account for C++17
24422 empty base class artificial fields.
24423 (aarch64_vfp_is_call_or_return_candidate): Warn when ABI PCS decision is
24424 different after this fix.
24425
24426 2020-04-23 Jakub Jelinek <jakub@redhat.com>
24427
24428 PR target/94707
24429 * config/rs6000/rs6000-call.c (rs6000_discover_homogeneous_aggregate):
24430 Use TYPE_UID (TYPE_MAIN_VARIANT (type)) instead of type to check
24431 if the same type has been diagnosed most recently already.
24432
24433 2020-04-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
24434
24435 * config/arm/arm_mve.h (__arm_vbicq_n_u16): Modify function parameter's
24436 datatype.
24437 (__arm_vbicq_n_s16): Likewise.
24438 (__arm_vbicq_n_u32): Likewise.
24439 (__arm_vbicq_n_s32): Likewise.
24440 (__arm_vbicq): Likewise.
24441 (__arm_vbicq_n_s16): Modify MVE polymorphic variant argument's datatype.
24442 (__arm_vbicq_n_s32): Likewise.
24443 (__arm_vbicq_n_u16): Likewise.
24444 (__arm_vbicq_n_u32): Likewise.
24445 (__arm_vdupq_m_n_s8): Likewise.
24446 (__arm_vdupq_m_n_s16): Likewise.
24447 (__arm_vdupq_m_n_s32): Likewise.
24448 (__arm_vdupq_m_n_u8): Likewise.
24449 (__arm_vdupq_m_n_u16): Likewise.
24450 (__arm_vdupq_m_n_u32): Likewise.
24451 (__arm_vdupq_m_n_f16): Likewise.
24452 (__arm_vdupq_m_n_f32): Likewise.
24453 (__arm_vldrhq_gather_offset_s16): Likewise.
24454 (__arm_vldrhq_gather_offset_s32): Likewise.
24455 (__arm_vldrhq_gather_offset_u16): Likewise.
24456 (__arm_vldrhq_gather_offset_u32): Likewise.
24457 (__arm_vldrhq_gather_offset_f16): Likewise.
24458 (__arm_vldrhq_gather_offset_z_s16): Likewise.
24459 (__arm_vldrhq_gather_offset_z_s32): Likewise.
24460 (__arm_vldrhq_gather_offset_z_u16): Likewise.
24461 (__arm_vldrhq_gather_offset_z_u32): Likewise.
24462 (__arm_vldrhq_gather_offset_z_f16): Likewise.
24463 (__arm_vldrhq_gather_shifted_offset_s16): Likewise.
24464 (__arm_vldrhq_gather_shifted_offset_s32): Likewise.
24465 (__arm_vldrhq_gather_shifted_offset_u16): Likewise.
24466 (__arm_vldrhq_gather_shifted_offset_u32): Likewise.
24467 (__arm_vldrhq_gather_shifted_offset_f16): Likewise.
24468 (__arm_vldrhq_gather_shifted_offset_z_s16): Likewise.
24469 (__arm_vldrhq_gather_shifted_offset_z_s32): Likewise.
24470 (__arm_vldrhq_gather_shifted_offset_z_u16): Likewise.
24471 (__arm_vldrhq_gather_shifted_offset_z_u32): Likewise.
24472 (__arm_vldrhq_gather_shifted_offset_z_f16): Likewise.
24473 (__arm_vldrwq_gather_offset_s32): Likewise.
24474 (__arm_vldrwq_gather_offset_u32): Likewise.
24475 (__arm_vldrwq_gather_offset_f32): Likewise.
24476 (__arm_vldrwq_gather_offset_z_s32): Likewise.
24477 (__arm_vldrwq_gather_offset_z_u32): Likewise.
24478 (__arm_vldrwq_gather_offset_z_f32): Likewise.
24479 (__arm_vldrwq_gather_shifted_offset_s32): Likewise.
24480 (__arm_vldrwq_gather_shifted_offset_u32): Likewise.
24481 (__arm_vldrwq_gather_shifted_offset_f32): Likewise.
24482 (__arm_vldrwq_gather_shifted_offset_z_s32): Likewise.
24483 (__arm_vldrwq_gather_shifted_offset_z_u32): Likewise.
24484 (__arm_vldrwq_gather_shifted_offset_z_f32): Likewise.
24485 (__arm_vdwdupq_x_n_u8): Likewise.
24486 (__arm_vdwdupq_x_n_u16): Likewise.
24487 (__arm_vdwdupq_x_n_u32): Likewise.
24488 (__arm_viwdupq_x_n_u8): Likewise.
24489 (__arm_viwdupq_x_n_u16): Likewise.
24490 (__arm_viwdupq_x_n_u32): Likewise.
24491 (__arm_vidupq_x_n_u8): Likewise.
24492 (__arm_vddupq_x_n_u8): Likewise.
24493 (__arm_vidupq_x_n_u16): Likewise.
24494 (__arm_vddupq_x_n_u16): Likewise.
24495 (__arm_vidupq_x_n_u32): Likewise.
24496 (__arm_vddupq_x_n_u32): Likewise.
24497 (__arm_vldrdq_gather_offset_s64): Likewise.
24498 (__arm_vldrdq_gather_offset_u64): Likewise.
24499 (__arm_vldrdq_gather_offset_z_s64): Likewise.
24500 (__arm_vldrdq_gather_offset_z_u64): Likewise.
24501 (__arm_vldrdq_gather_shifted_offset_s64): Likewise.
24502 (__arm_vldrdq_gather_shifted_offset_u64): Likewise.
24503 (__arm_vldrdq_gather_shifted_offset_z_s64): Likewise.
24504 (__arm_vldrdq_gather_shifted_offset_z_u64): Likewise.
24505 (__arm_vidupq_m_n_u8): Likewise.
24506 (__arm_vidupq_m_n_u16): Likewise.
24507 (__arm_vidupq_m_n_u32): Likewise.
24508 (__arm_vddupq_m_n_u8): Likewise.
24509 (__arm_vddupq_m_n_u16): Likewise.
24510 (__arm_vddupq_m_n_u32): Likewise.
24511 (__arm_vidupq_n_u16): Likewise.
24512 (__arm_vidupq_n_u32): Likewise.
24513 (__arm_vidupq_n_u8): Likewise.
24514 (__arm_vddupq_n_u16): Likewise.
24515 (__arm_vddupq_n_u32): Likewise.
24516 (__arm_vddupq_n_u8): Likewise.
24517
24518 2020-04-23 Iain Buclaw <ibuclaw@gdcproject.org>
24519
24520 * doc/install.texi (D-Specific Options): Document
24521 --enable-libphobos-checking and --with-libphobos-druntime-only.
24522
24523 2020-04-23 Jakub Jelinek <jakub@redhat.com>
24524
24525 PR target/94707
24526 * config/rs6000/rs6000-call.c (rs6000_aggregate_candidate): Add
24527 cxx17_empty_base_seen argument. Pass it to recursive calls.
24528 Ignore cxx17_empty_base_field_p fields after setting
24529 *cxx17_empty_base_seen to true.
24530 (rs6000_discover_homogeneous_aggregate): Adjust
24531 rs6000_aggregate_candidate caller. With -Wpsabi, diagnose homogeneous
24532 aggregates with C++17 empty base fields.
24533
24534 PR c/94705
24535 * attribs.c (decl_attribute): Don't diagnose attribute exclusions
24536 if last_decl is error_mark_node or has such a TREE_TYPE.
24537
24538 PR c/94705
24539 * attribs.c (decl_attribute): Don't diagnose attribute exclusions
24540 if last_decl is error_mark_node or has such a TREE_TYPE.
24541
24542 2020-04-22 Felix Yang <felix.yang@huawei.com>
24543
24544 PR target/94678
24545 * config/aarch64/aarch64.h (TARGET_SVE):
24546 Add && !TARGET_GENERAL_REGS_ONLY.
24547 (TARGET_SVE2): Add && TARGET_SVE.
24548 (TARGET_SVE2_AES, TARGET_SVE2_BITPERM, TARGET_SVE2_SHA3,
24549 TARGET_SVE2_SM4): Add && TARGET_SVE2.
24550 * config/aarch64/aarch64-sve-builtins.h
24551 (sve_switcher::m_old_general_regs_only): New member.
24552 * config/aarch64/aarch64-sve-builtins.cc (check_required_registers):
24553 New function.
24554 (reported_missing_registers_p): New variable.
24555 (check_required_extensions): Call check_required_registers before
24556 return if all required extenstions are present.
24557 (sve_switcher::sve_switcher): Save TARGET_GENERAL_REGS_ONLY in
24558 m_old_general_regs_only and clear MASK_GENERAL_REGS_ONLY in
24559 global_options.x_target_flags.
24560 (sve_switcher::~sve_switcher): Set MASK_GENERAL_REGS_ONLY in
24561 global_options.x_target_flags if m_old_general_regs_only is true.
24562
24563 2020-04-22 Zackery Spytz <zspytz@gmail.com>
24564
24565 * doc/extend.exi: Add "free" to list of other builtin functions
24566 supported by GCC.
24567
24568 2020-04-20 Aaron Sawdey <acsawdey@linux.ibm.com>
24569
24570 PR target/94622
24571 * config/rs6000/sync.md (load_quadpti): Add attr "prefixed"
24572 if TARGET_PREFIXED.
24573 (store_quadpti): Ditto.
24574 (atomic_load<mode>): Do not swap doublewords if TARGET_PREFIXED as
24575 plq will be used and doesn't need it.
24576 (atomic_store<mode>): Ditto, for pstq.
24577
24578 2020-04-22 Erick Ochoa <erick.ochoa@theobroma-systems.com>
24579
24580 * doc/invoke.texi: Update flags turned on by -O3.
24581
24582 2020-04-22 Jakub Jelinek <jakub@redhat.com>
24583
24584 PR target/94706
24585 * config/ia64/ia64.c (hfa_element_mode): Ignore
24586 cxx17_empty_base_field_p fields.
24587
24588 PR target/94383
24589 * calls.h (cxx17_empty_base_field_p): Declare.
24590 * calls.c (cxx17_empty_base_field_p): Define.
24591
24592 2020-04-22 Christophe Lyon <christophe.lyon@linaro.org>
24593
24594 * doc/sourcebuild.texi (arm_softfp_ok, arm_hard_ok): Document.
24595
24596 2020-04-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24597 Andre Vieira <andre.simoesdiasvieira@arm.com>
24598 Mihail Ionescu <mihail.ionescu@arm.com>
24599
24600 * config/arm/arm.c (arm_file_start): Handle isa_bit_quirk_no_asmcpu.
24601 * config/arm/arm-cpus.in (quirk_no_asmcpu): Define.
24602 (ALL_QUIRKS): Add quirk_no_asmcpu.
24603 (cortex-m55): Define new cpu.
24604 * config/arm/arm-tables.opt: Regenerate.
24605 * config/arm/arm-tune.md: Likewise.
24606 * doc/invoke.texi (Arm Options): Document -mcpu=cortex-m55.
24607
24608 2020-04-22 Richard Sandiford <richard.sandiford@arm.com>
24609
24610 PR tree-optimization/94700
24611 * tree-ssa-forwprop.c (simplify_vector_constructor): When processing
24612 an identity constructor, use a VIEW_CONVERT_EXPR to handle mixtures
24613 of similarly-structured but distinct vector types.
24614
24615 2020-04-21 Martin Sebor <msebor@redhat.com>
24616
24617 PR middle-end/94647
24618 * gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Correct
24619 the computation of the lower bound of the source access size.
24620 (builtin_access::generic_overlap): Remove a hack for setting ranges
24621 of overlap offsets.
24622
24623 2020-04-21 John David Anglin <danglin@gcc.gnu.org>
24624
24625 * config/pa/som.h (ASM_WEAKEN_LABEL): Delete.
24626 (ASM_WEAKEN_DECL): New define.
24627 (HAVE_GAS_WEAKREF): Undefine.
24628
24629 2020-04-21 Richard Sandiford <richard.sandiford@arm.com>
24630
24631 PR tree-optimization/94683
24632 * tree-ssa-forwprop.c (simplify_vector_constructor): Use a
24633 VIEW_CONVERT_EXPR to handle mixtures of similarly-structured
24634 but distinct vector types.
24635
24636 2020-04-21 Jakub Jelinek <jakub@redhat.com>
24637
24638 PR c/94641
24639 * stor-layout.c (place_field, finalize_record_size): Don't emit
24640 -Wpadded warning on TYPE_ARTIFICIAL rli->t.
24641 * ubsan.c (ubsan_get_type_descriptor_type,
24642 ubsan_get_source_location_type, ubsan_create_data): Set
24643 TYPE_ARTIFICIAL.
24644 * asan.c (asan_global_struct): Likewise.
24645
24646 2020-04-21 Duan bo <duanbo3@huawei.com>
24647
24648 PR target/94577
24649 * config/aarch64/aarch64.c: Add an error message for option conflict.
24650 * doc/invoke.texi (-mcmodel=large): Mention that -mcmodel=large is
24651 incompatible with -fpic, -fPIC and -mabi=ilp32.
24652
24653 2020-04-21 Frederik Harwath <frederik@codesourcery.com>
24654
24655 PR other/94629
24656 * omp-low.c (new_omp_context): Remove assignments to
24657 ctx->outer_reduction_clauses and ctx->local_reduction_clauses.
24658
24659 2020-04-20 Andreas Krebbel <krebbel@linux.ibm.com>
24660
24661 * config/s390/vector.md ("popcountv8hi2_vx", "popcountv4si2_vx")
24662 ("popcountv2di2_vx"): Use simplify_gen_subreg.
24663
24664 2020-04-20 Andreas Krebbel <krebbel@linux.ibm.com>
24665
24666 PR target/94613
24667 * config/s390/s390-builtin-types.def: Add 3 new function modes.
24668 * config/s390/s390-builtins.def: Add mode dependent low-level
24669 builtin and map the overloaded builtins to these.
24670 * config/s390/vx-builtins.md ("vec_selV_HW"): Rename to ...
24671 ("vsel<V_HW"): ... this and rewrite the pattern with bitops.
24672
24673 2020-04-20 Richard Sandiford <richard.sandiford@arm.com>
24674
24675 * tree-vect-loop.c (vect_better_loop_vinfo_p): If old_loop_vinfo
24676 has a variable VF, prefer new_loop_vinfo if it is cheaper for the
24677 estimated VF and is no worse at double the estimated VF.
24678
24679 2020-04-20 Richard Sandiford <richard.sandiford@arm.com>
24680
24681 PR target/94668
24682 * config/aarch64/aarch64.c (aarch64_sve_expand_vector_init): Fix
24683 order of arguments to rtx_vector_builder.
24684 (aarch64_sve_expand_vector_init_handle_trailing_constants): Likewise.
24685 When extending the trailing constants to a full vector, replace any
24686 variables with zeros.
24687
24688 2020-04-20 Jan Hubicka <hubicka@ucw.cz>
24689
24690 PR ipa/94582
24691 * tree-inline.c (optimize_inline_calls): Recompute calls_comdat_local
24692 flag.
24693
24694 2020-04-20 Martin Liska <mliska@suse.cz>
24695
24696 * symtab.c (symtab_node::dump_references): Add space after
24697 one entry.
24698 (symtab_node::dump_referring): Likewise.
24699
24700 2020-04-18 Jeff Law <law@redhat.com>
24701
24702 PR debug/94439
24703 * regrename.c (check_new_reg_p): Ignore DEBUG_INSNs when walking
24704 the chain.
24705
24706 2020-04-18 Iain Buclaw <ibuclaw@gdcproject.org>
24707
24708 * doc/sourcebuild.texi (Effective-Target Keywords, Environment
24709 attributes): Document d_runtime_has_std_library.
24710
24711 2020-04-17 Jeff Law <law@redhat.com>
24712
24713 PR rtl-optimization/90275
24714 * cse.c (cse_insn): Avoid recording nop sets in multi-set parallels
24715 when the destination has a REG_UNUSED note.
24716
24717 2020-04-17 Tobias Burnus <tobias@codesourcery.com>
24718
24719 PR middle-end/94635
24720 * gimplify.c (gimplify_scan_omp_clauses): Turn MAP_TO_PSET to
24721 MAP_DELETE.
24722
24723 2020-04-17 Richard Sandiford <richard.sandiford@arm.com>
24724
24725 * config/aarch64/aarch64.c (aarch64_advsimd_ldp_stp_p): New function.
24726 (aarch64_sve_adjust_stmt_cost): Add a vectype parameter. Double the
24727 cost of load and store insns if one loop iteration has enough scalar
24728 elements to use an Advanced SIMD LDP or STP.
24729 (aarch64_add_stmt_cost): Update call accordingly.
24730
24731 2020-04-17 Jakub Jelinek <jakub@redhat.com>
24732 Jeff Law <law@redhat.com>
24733
24734 PR target/94567
24735 * config/i386/i386.md (*testqi_ext_3): Use CCZmode rather than
24736 CCNOmode in ix86_match_ccmode if len is equal to <MODE>mode precision,
24737 or pos + len >= 32, or pos + len is equal to operands[2] precision
24738 and operands[2] is not a register operand. During splitting perform
24739 SImode AND if operands[0] doesn't have CCZmode and pos + len is
24740 equal to mode precision.
24741
24742 2020-04-17 Richard Biener <rguenther@suse.de>
24743
24744 PR other/94629
24745 * cgraphclones.c (cgraph_node::create_clone): Remove duplicate
24746 initialization.
24747 * dwarf2out.c (dw_val_equal_p): Fix pasto in
24748 dw_val_class_vms_delta comparison.
24749 * optabs.c (expand_binop_directly): Fix pasto in commutation
24750 check.
24751 * tree-ssa-sccvn.c (vn_reference_lookup_pieces): Fix pasto in
24752 initialization.
24753
24754 2020-04-17 Jakub Jelinek <jakub@redhat.com>
24755
24756 PR rtl-optimization/94618
24757 * cfgrtl.c (delete_insn_and_edges): Set purge not just when
24758 insn is the BB_END of its block, but also when it is only followed
24759 by DEBUG_INSNs in its block.
24760
24761 PR tree-optimization/94621
24762 * tree-inline.c (remap_type_1): Don't dereference NULL TYPE_DOMAIN.
24763 Move id->adjust_array_error_bounds check first in the condition.
24764
24765 2020-04-17 Martin Liska <mliska@suse.cz>
24766 Jonathan Yong <10walls@gmail.com>
24767
24768 PR gcov-profile/94570
24769 * coverage.c (coverage_init): Use separator properly.
24770
24771 2020-04-16 Peter Bergner <bergner@linux.ibm.com>
24772
24773 PR rtl-optimization/93974
24774 * config/rs6000/rs6000.c (TARGET_CANNOT_SUBSTITUTE_MEM_EQUIV_P): Define.
24775 (rs6000_cannot_substitute_mem_equiv_p): New function.
24776
24777 2020-04-16 Martin Jambor <mjambor@suse.cz>
24778
24779 PR ipa/93621
24780 * ipa-inline.h (ipa_saved_clone_sources): Declare.
24781 * ipa-inline-transform.c (ipa_saved_clone_sources): New variable.
24782 (save_inline_function_body): Link the new body holder with the
24783 previous one.
24784 * cgraph.c: Include ipa-inline.h.
24785 (cgraph_edge::redirect_call_stmt_to_callee): Try to find the decl from
24786 the statement in ipa_saved_clone_sources.
24787 * cgraphunit.c: Include ipa-inline.h.
24788 (expand_all_functions): Free ipa_saved_clone_sources.
24789
24790 2020-04-16 Richard Sandiford <richard.sandiford@arm.com>
24791
24792 PR target/94606
24793 * config/aarch64/aarch64.c (aarch64_expand_sve_const_pred_eor): Take
24794 the VNx16BI lowpart of the recursively-generated constant.
24795
24796 2020-04-16 Martin Liska <mliska@suse.cz>
24797 Jakub Jelinek <jakub@redhat.com>
24798
24799 PR c++/94314
24800 * cgraphclones.c (set_new_clone_decl_and_node_flags): Drop
24801 DECL_IS_REPLACEABLE_OPERATOR during cloning.
24802 * tree-ssa-dce.c (valid_new_delete_pair_p): New function.
24803 (propagate_necessity): Check operator names.
24804
24805 2020-04-16 Richard Sandiford <richard.sandiford@arm.com>
24806
24807 PR rtl-optimization/94605
24808 * early-remat.c (early_remat::process_block): Handle insns that
24809 set multiple candidate registers.
24810 2020-04-16 Jan Hubicka <hubicka@ucw.cz>
24811
24812 PR gcov-profile/93401
24813 * common.opt (profile-prefix-path): New option.
24814 * coverae.c: Include diagnostics.h.
24815 (coverage_init): Strip profile prefix path.
24816 * doc/invoke.texi (-fprofile-prefix-path): Document.
24817
24818 2020-04-16 Richard Biener <rguenther@suse.de>
24819
24820 PR middle-end/94614
24821 * expr.c (emit_move_multi_word): Do not generate code when
24822 the destination part is undefined_operand_subword_p.
24823 * lower-subreg.c (resolve_clobber): Look through a paradoxica
24824 subreg.
24825
24826 2020-04-16 Martin Jambor <mjambor@suse.cz>
24827
24828 PR tree-optimization/94598
24829 * tree-sra.c (verify_sra_access_forest): Fix verification of total
24830 scalarization accesses under access to one-element arrays.
24831
24832 2020-04-16 Jakub Jelinek <jakub@redhat.com>
24833
24834 PR bootstrap/89494
24835 * function.c (assign_parm_find_data_types): Add workaround for
24836 BROKEN_VALUE_INITIALIZATION compilers.
24837
24838 2020-04-16 Richard Biener <rguenther@suse.de>
24839
24840 * gdbhooks.py (TreePrinter): Print SSA_NAME_VERSION of SSA_NAME
24841 nodes.
24842
24843 2020-04-15 Uroš Bizjak <ubizjak@gmail.com>
24844
24845 PR target/94603
24846 * config/i386/i386-builtin.def (__builtin_ia32_movq128):
24847 Require OPTION_MASK_ISA_SSE2.
24848
24849 2020-04-15 Gustavo Romero <gromero@linux.ibm.com>
24850
24851 PR bootstrap/89494
24852 * dumpfile.c (selftest::temp_dump_context::temp_dump_context):
24853 Don't construct a dump_context temporary to call static method.
24854
24855 2020-04-15 Andrea Corallo <andrea.corallo@arm.com>
24856
24857 * config/aarch64/falkor-tag-collision-avoidance.c
24858 (valid_src_p): Check for aarch64_address_info type before
24859 accessing base field.
24860
24861 2020-04-15 Andre Vieira <andre.simoesdiasvieira@arm.com>
24862
24863 * config/arm/mve.md (mve_vec_duplicate<mode>): New pattern.
24864 (V_sz_elem2): Remove unused mode attribute.
24865
24866 2020-04-15 Matthew Malcomson <matthew.malcomson@arm.com>
24867
24868 * config/arm/arm.md (arm_movdi): Disallow for MVE.
24869
24870 2020-04-15 Richard Biener <rguenther@suse.de>
24871
24872 PR middle-end/94539
24873 * tree-ssa-alias.c (same_type_for_tbaa): Defer to
24874 alias_sets_conflict_p for pointers.
24875
24876 2020-04-14 Max Filippov <jcmvbkbc@gmail.com>
24877
24878 PR target/94584
24879 * config/xtensa/xtensa.md (zero_extendhisi2, zero_extendqisi2)
24880 (extendhisi2_internal): Add %v1 before the load instructions.
24881
24882 2020-04-14 Aaron Sawdey <acsawdey@linux.ibm.com>
24883
24884 PR target/94542
24885 * config/rs6000/rs6000.c (address_to_insn_form): Do not attempt to
24886 use PC-relative addressing for TLS references.
24887
24888 2020-04-14 Martin Jambor <mjambor@suse.cz>
24889
24890 PR ipa/94434
24891 * ipa-sra.c: Include internal-fn.h.
24892 (enum isra_scan_context): Update comment.
24893 (scan_function): Treat calls to internal_functions like loads or stores.
24894
24895 2020-04-14 Yang Yang <yangyang305@huawei.com>
24896
24897 PR tree-optimization/94574
24898 * tree-ssa.c (non_rewritable_lvalue_p): Add size check when analyzing
24899 whether a vector-insert is rewritable using a BIT_INSERT_EXPR.
24900
24901 2020-04-14 H.J. Lu <hongjiu.lu@intel.com>
24902
24903 PR target/94561
24904 * config/i386/i386.c (ix86_get_ssemov): Remove mode size check.
24905
24906 2020-04-13 Martin Sebor <msebor@redhat.com>
24907
24908 * doc/extend.texi (-Wall): Mention -Wformat-overflow and
24909 -Wformat-truncation. Move -Wzero-length-bounds last.
24910 (-Wrestrict): Document positive form of option enabled by -Wall.
24911
24912 2020-04-13 Zachary Spytz <zspytz@gmail.com>
24913
24914 * doc/extend.texi: Add realloc to list of built-in functions
24915 are recognized by the compiler.
24916
24917 2020-04-13 H.J. Lu <hongjiu.lu@intel.com>
24918
24919 PR target/94556
24920 * config/i386/i386.c (ix86_expand_epilogue): Restore the frame
24921 pointer in word_mode for eh_return epilogues.
24922
24923 2020-04-13 Jozef Lawrynowicz <jozef.l@mittosystems.com>
24924
24925 * config/msp430/msp430.c (msp430_print_operand): Don't add offsets to
24926 memory references in %B, %C and %D operand selectors when the inner
24927 operand is a post increment address.
24928
24929 2020-04-13 Jozef Lawrynowicz <jozef.l@mittosystems.com>
24930
24931 * config/msp430/msp430.c (msp430_print_operand): Offset a %C memory
24932 reference by 4 bytes, and %D memory reference by 6 bytes.
24933
24934 2020-04-11 Uroš Bizjak <ubizjak@gmail.com>
24935
24936 PR target/94494
24937 * config/i386/sse.md (REDUC_SSE_SMINMAX_MODE): Use TARGET_SSE2
24938 condition for V4SI, V8HI and V16QI modes.
24939
24940 2020-04-11 Jakub Jelinek <jakub@redhat.com>
24941
24942 PR debug/94495
24943 PR target/94551
24944 * cselib.c (cselib_record_sp_cfa_base_equiv): Set PRESERVED_VALUE_P on
24945 val->val_rtx.
24946
24947 2020-04-10 Thomas Schwinge <thomas@codesourcery.com>
24948
24949 PR middle-end/89433
24950 PR middle-end/93465
24951 * omp-general.c (oacc_verify_routine_clauses): Diagnose if
24952 "#pragma omp declare target" has also been applied.
24953
24954 2020-04-09 Jozef Lawrynowicz <jozef.l@mittosystems.com>
24955
24956 * config/msp430/msp430.c (msp430_expand_epilogue): Use emit_jump_insn
24957 when to emit the epilogue_helper insn.
24958 * config/msp430/msp430.md (epilogue_helper): Add a return insn to the
24959 RTL pattern.
24960
24961 2020-04-09 Jakub Jelinek <jakub@redhat.com>
24962
24963 PR debug/94495
24964 * cselib.h (cselib_record_sp_cfa_base_equiv,
24965 cselib_sp_derived_value_p): Declare.
24966 * cselib.c (cselib_record_sp_cfa_base_equiv,
24967 cselib_sp_derived_value_p): New functions.
24968 * var-tracking.c (add_stores): Don't record MO_VAL_SET for
24969 cselib_sp_derived_value_p values.
24970 (vt_initialize): Call cselib_record_sp_cfa_base_equiv at the
24971 start of extended basic blocks other than the first one
24972 for !frame_pointer_needed functions.
24973
24974 2020-04-09 Richard Sandiford <richard.sandiford@arm.com>
24975
24976 * doc/sourcebuild.texi (aarch64_sve_hw, aarch64_sve128_hw)
24977 (aarch64_sve256_hw, aarch64_sve512_hw, aarch64_sve1024_hw)
24978 (aarch64_sve2048_hw): Document.
24979 * config/aarch64/aarch64-protos.h
24980 (aarch64_sve::handle_arm_sve_vector_bits_attribute): Declare.
24981 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
24982 __ARM_FEATURE_SVE_VECTOR_OPERATIONS when SVE is enabled.
24983 * config/aarch64/aarch64-sve-builtins.cc (matches_type_p): New
24984 function.
24985 (find_type_suffix_for_scalar_type): Use it instead of comparing
24986 TYPE_MAIN_VARIANTs.
24987 (function_resolver::infer_vector_or_tuple_type): Likewise.
24988 (function_resolver::require_vector_type): Likewise.
24989 (handle_arm_sve_vector_bits_attribute): New function.
24990 * config/aarch64/aarch64.c (pure_scalable_type_info): New class.
24991 (aarch64_attribute_table): Add arm_sve_vector_bits.
24992 (aarch64_return_in_memory_1):
24993 (pure_scalable_type_info::piece::get_rtx): New function.
24994 (pure_scalable_type_info::num_zr): Likewise.
24995 (pure_scalable_type_info::num_pr): Likewise.
24996 (pure_scalable_type_info::get_rtx): Likewise.
24997 (pure_scalable_type_info::analyze): Likewise.
24998 (pure_scalable_type_info::analyze_registers): Likewise.
24999 (pure_scalable_type_info::analyze_array): Likewise.
25000 (pure_scalable_type_info::analyze_record): Likewise.
25001 (pure_scalable_type_info::add_piece): Likewise.
25002 (aarch64_some_values_include_pst_objects_p): Likewise.
25003 (aarch64_returns_value_in_sve_regs_p): Use pure_scalable_type_info
25004 to analyze whether the type is returned in SVE registers.
25005 (aarch64_takes_arguments_in_sve_regs_p): Likwise whether the type
25006 is passed in SVE registers.
25007 (aarch64_pass_by_reference_1): New function, extracted from...
25008 (aarch64_pass_by_reference): ...here. Use pure_scalable_type_info
25009 to analyze whether the type is a pure scalable type and, if so,
25010 whether it should be passed by reference.
25011 (aarch64_return_in_msb): Return false for pure scalable types.
25012 (aarch64_function_value_1): Fold back into...
25013 (aarch64_function_value): ...this function. Use
25014 pure_scalable_type_info to analyze whether the type is a pure
25015 scalable type and, if so, which registers it should use. Handle
25016 types that include pure scalable types but are not themselves
25017 pure scalable types.
25018 (aarch64_return_in_memory_1): New function, split out from...
25019 (aarch64_return_in_memory): ...here. Use pure_scalable_type_info
25020 to analyze whether the type is a pure scalable type and, if so,
25021 whether it should be returned by reference.
25022 (aarch64_layout_arg): Remove orig_mode argument. Use
25023 pure_scalable_type_info to analyze whether the type is a pure
25024 scalable type and, if so, which registers it should use. Handle
25025 types that include pure scalable types but are not themselves
25026 pure scalable types.
25027 (aarch64_function_arg): Update call accordingly.
25028 (aarch64_function_arg_advance): Likewise.
25029 (aarch64_pad_reg_upward): On big-endian targets, return false for
25030 pure scalable types that are smaller than 16 bytes.
25031 (aarch64_member_type_forces_blk): New function.
25032 (aapcs_vfp_sub_candidate): Exit early for built-in SVE types.
25033 (aarch64_short_vector_p): Return false for VECTOR_TYPEs that
25034 correspond to built-in SVE types. Do not rely on a vector mode
25035 if the type includes an pure scalable type. When returning true,
25036 assert that the mode is not an SVE mode.
25037 (aarch64_vfp_is_call_or_return_candidate): Do not check for SVE
25038 built-in types here. When returning true, assert that the type
25039 does not have an SVE mode.
25040 (aarch64_can_change_mode_class): Don't allow anything to change
25041 between a predicate mode and a non-predicate mode. Also don't
25042 allow changes between SVE vector modes and other modes that
25043 might be bigger than 128 bits.
25044 (aarch64_invalid_binary_op): Reject binary operations that mix
25045 SVE and GNU vector types.
25046 (TARGET_MEMBER_TYPE_FORCES_BLK): Define.
25047
25048 2020-04-09 Richard Sandiford <richard.sandiford@arm.com>
25049
25050 * config/aarch64/aarch64.c (aarch64_attribute_table): Add
25051 "SVE sizeless type".
25052 * config/aarch64/aarch64-sve-builtins.cc (make_type_sizeless)
25053 (sizeless_type_p): New functions.
25054 (register_builtin_types): Apply make_type_sizeless to the type.
25055 (register_tuple_type): Likewise.
25056 (verify_type_context): Use sizeless_type_p instead of builin_type_p.
25057
25058 2020-04-09 Matthew Malcomson <matthew.malcomson@arm.com>
25059
25060 * config/arm/arm_cde.h: Remove `extern "C"` when compiling for
25061 C++.
25062
25063 2020-04-09 Martin Jambor <mjambor@suse.cz>
25064 Richard Biener <rguenther@suse.de>
25065
25066 PR tree-optimization/94482
25067 * tree-sra.c (create_access_replacement): Dump new replacement with
25068 TDF_UID.
25069 (sra_modify_expr): Fix handling of cases when the original EXPR writes
25070 to only part of the replacement.
25071 * tree-ssa-forwprop.c (pass_forwprop::execute): Properly verify
25072 the first operand of combinations into REAL/IMAGPART_EXPR and
25073 BIT_FIELD_REF.
25074
25075 2020-04-09 Richard Sandiford <richard.sandiford@arm.com>
25076
25077 * doc/sourcebuild.texi (check-function-bodies): Treat the third
25078 parameter as a list of option regexps and require each regexp
25079 to match.
25080
25081 2020-04-09 Andrea Corallo <andrea.corallo@arm.com>
25082
25083 PR target/94530
25084 * config/aarch64/falkor-tag-collision-avoidance.c
25085 (valid_src_p): Fix missing rtx type check.
25086
25087 2020-04-09 Bin Cheng <bin.cheng@linux.alibaba.com>
25088 Richard Biener <rguenther@suse.de>
25089
25090 PR tree-optimization/93674
25091 * tree-ssa-loop-ivopts.c (langhooks.h): New include.
25092 (add_iv_candidate_for_use): For iv_use of non integer or pointer type,
25093 or non-mode precision type, add candidate in unsigned type with the
25094 same precision.
25095
25096 2020-04-08 Clement Chigot <clement.chigot@atos.net>
25097
25098 * config/rs6000/aix61.h (LIB_SPEC): Add -lc128 with -mlong-double-128.
25099 * config/rs6000/aix71.h (LIB_SPEC): Likewise.
25100 * config/rs6000/aix72.h (LIB_SPEC): Likewise.
25101
25102 2020-04-08 Jakub Jelinek <jakub@redhat.com>
25103
25104 PR middle-end/94526
25105 * cselib.c (autoinc_split): Handle e->val_rtx being SP_DERIVED_VALUE_P
25106 with zero offset.
25107 * reload1.c (eliminate_regs_1): Avoid creating
25108 (plus (reg) (const_int 0)) in DEBUG_INSNs.
25109
25110 PR tree-optimization/94524
25111 * tree-vect-generic.c (expand_vector_divmod): If any elt of op1 is
25112 negative for signed TRUNC_MOD_EXPR, multiply with absolute value of
25113 op1 rather than op1 itself at the end. Punt for signed modulo by
25114 most negative constant.
25115 * tree-vect-patterns.c (vect_recog_divmod_pattern): Punt for signed
25116 modulo by most negative constant.
25117
25118 2020-04-08 Richard Biener <rguenther@suse.de>
25119
25120 PR rtl-optimization/93946
25121 * cse.c (cse_insn): Record the tabled expression in
25122 src_related. Verify a redundant store removal is valid.
25123
25124 2020-04-08 H.J. Lu <hongjiu.lu@intel.com>
25125
25126 PR target/94417
25127 * config/i386/i386-features.c (rest_of_insert_endbranch): Insert
25128 ENDBR at function entry if function will be called indirectly.
25129
25130 2020-04-08 Jakub Jelinek <jakub@redhat.com>
25131
25132 PR target/94438
25133 * config/i386/i386.c (ix86_get_mask_mode): Only use int mask for elem_size
25134 1, 2, 4 and 8.
25135
25136 2020-04-08 Martin Liska <mliska@suse.cz>
25137
25138 PR c++/94314
25139 * gimple.c (gimple_call_operator_delete_p): Rename to...
25140 (gimple_call_replaceable_operator_delete_p): ... this.
25141 Use DECL_IS_REPLACEABLE_OPERATOR_DELETE_P.
25142 * gimple.h (gimple_call_operator_delete_p): Rename to ...
25143 (gimple_call_replaceable_operator_delete_p): ... this.
25144 * tree-core.h (tree_function_decl): Add replaceable_operator
25145 flag.
25146 * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1):
25147 Use DECL_IS_REPLACEABLE_OPERATOR_DELETE_P.
25148 (propagate_necessity): Use gimple_call_replaceable_operator_delete_p.
25149 (eliminate_unnecessary_stmts): Likewise.
25150 * tree-streamer-in.c (unpack_ts_function_decl_value_fields):
25151 Pack DECL_IS_REPLACEABLE_OPERATOR.
25152 * tree-streamer-out.c (pack_ts_function_decl_value_fields):
25153 Unpack the field here.
25154 * tree.h (DECL_IS_REPLACEABLE_OPERATOR): New.
25155 (DECL_IS_REPLACEABLE_OPERATOR_NEW_P): New.
25156 (DECL_IS_REPLACEABLE_OPERATOR_DELETE_P): New.
25157 * cgraph.c (cgraph_node::dump): Dump if an operator is replaceable.
25158 * ipa-icf.c (sem_item::compare_referenced_symbol_properties): Compare
25159 replaceable operator flags.
25160
25161 2020-04-08 Dennis Zhang <dennis.zhang@arm.com>
25162 Matthew Malcomson <matthew.malcomson@arm.com>
25163
25164 * config/arm/arm-builtins.c (CX_IMM_QUALIFIERS): New macro.
25165 (CX_UNARY_QUALIFIERS, CX_BINARY_QUALIFIERS): Likewise.
25166 (CX_TERNARY_QUALIFIERS): Likewise.
25167 (ARM_BUILTIN_CDE_PATTERN_START): Likewise.
25168 (ARM_BUILTIN_CDE_PATTERN_END): Likewise.
25169 (arm_init_acle_builtins): Initialize CDE builtins.
25170 (arm_expand_acle_builtin): Check CDE constant operands.
25171 * config/arm/arm.h (ARM_CDE_CONST_COPROC): New macro to set the range
25172 of CDE constant operand.
25173 * config/arm/arm.c (arm_hard_regno_mode_ok): Support DImode for
25174 TARGET_VFP_BASE.
25175 (ARM_VCDE_CONST_1, ARM_VCDE_CONST_2, ARM_VCDE_CONST_3): Likewise.
25176 * config/arm/arm_cde.h (__arm_vcx1_u32): New macro of ACLE interface.
25177 (__arm_vcx1a_u32, __arm_vcx2_u32, __arm_vcx2a_u32): Likewise.
25178 (__arm_vcx3_u32, __arm_vcx3a_u32, __arm_vcx1d_u64): Likewise.
25179 (__arm_vcx1da_u64, __arm_vcx2d_u64, __arm_vcx2da_u64): Likewise.
25180 (__arm_vcx3d_u64, __arm_vcx3da_u64): Likewise.
25181 * config/arm/arm_cde_builtins.def: New file.
25182 * config/arm/iterators.md (V_reg): New attribute of SI.
25183 * config/arm/predicates.md (const_int_coproc_operand): New.
25184 (const_int_vcde1_operand, const_int_vcde2_operand): New.
25185 (const_int_vcde3_operand): New.
25186 * config/arm/unspecs.md (UNSPEC_VCDE, UNSPEC_VCDEA): New.
25187 * config/arm/vfp.md (arm_vcx1<mode>): New entry.
25188 (arm_vcx1a<mode>, arm_vcx2<mode>, arm_vcx2a<mode>): Likewise.
25189 (arm_vcx3<mode>, arm_vcx3a<mode>): Likewise.
25190
25191 2020-04-08 Dennis Zhang <dennis.zhang@arm.com>
25192
25193 * config.gcc: Add arm_cde.h.
25194 * config/arm/arm-c.c (arm_cpu_builtins): Define or undefine
25195 __ARM_FEATURE_CDE and __ARM_FEATURE_CDE_COPROC.
25196 * config/arm/arm-cpus.in (cdecp0, cdecp1, ..., cdecp7): New options.
25197 * config/arm/arm.c (arm_option_reconfigure_globals): Configure
25198 arm_arch_cde and arm_arch_cde_coproc to store the feature bits.
25199 * config/arm/arm.h (TARGET_CDE): New macro.
25200 * config/arm/arm_cde.h: New file.
25201 * doc/invoke.texi: Document CDE options +cdecp[0-7].
25202 * doc/sourcebuild.texi (arm_v8m_main_cde_ok): Document new target
25203 supports option.
25204 (arm_v8m_main_cde_fp, arm_v8_1m_main_cde_mve): Likewise.
25205
25206 2020-04-08 Jakub Jelinek <jakub@redhat.com>
25207
25208 PR rtl-optimization/94516
25209 * postreload.c: Include rtl-iter.h.
25210 (reload_cse_move2add): Handle SP autoinc here by FOR_EACH_SUBRTX_VAR
25211 looking for all MEMs with RTX_AUTOINC operand.
25212 (move2add_note_store): Remove {PRE,POST}_{INC,DEC} handling.
25213
25214 2020-04-08 Tobias Burnus <tobias@codesourcery.com>
25215
25216 * omp-grid.c (grid_eliminate_combined_simd_part): Use
25217 OMP_CLAUSE_CODE to access the omp clause code.
25218
25219 2020-04-07 Jeff Law <law@redhat.com>
25220
25221 PR rtl-optimization/92264
25222 * config/h8300/h8300.md (mov;add peephole2): Avoid applying when
25223 the destination is the stack pointer.
25224
25225 2020-04-07 Jakub Jelinek <jakub@redhat.com>
25226
25227 PR rtl-optimization/94291
25228 PR rtl-optimization/84169
25229 * combine.c (try_combine): For split_i2i3, don't assume SET_DEST
25230 must be a REG or SUBREG of REG; if it is not one of these, don't
25231 update LOG_LINKs.
25232
25233 2020-04-07 Richard Biener <rguenther@suse.de>
25234
25235 PR middle-end/94479
25236 * gimplify.c (gimplify_addr_expr): Also consider generated
25237 MEM_REFs.
25238
25239 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
25240
25241 * config/arm/arm_mve.h: Add C++ polymorphism and fix preserve MACROs.
25242
25243 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
25244
25245 * config/arm/arm_mve.h: Cast some pointers to expected types.
25246
25247 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
25248
25249 * config/arm/arm_mve.h: Replace all uses of vuninitializedq_* with the
25250 same with '__arm_' prefix.
25251
25252 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
25253
25254 * config/arm/mve.md (mve_vec_extract*): Allow memory operands in set.
25255
25256 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
25257
25258 * config/arm/arm.c (arm_mve_immediate_check): Removed.
25259 * config/arm/mve.md (MVE_pred2, MVE_constraint2): Added FP types.
25260 (mve_vcvtq_n_to_f_*, mve_vcvtq_n_from_f_*, mve_vqshrnbq_n_*,
25261 mve_vqshrntq_n_*, mve_vqshrunbq_n_s*, mve_vqshruntq_n_s*,
25262 mve_vcvtq_m_n_from_f_*, mve_vcvtq_m_n_to_f_*, mve_vqshrnbq_m_n_*,
25263 mve_vqrshruntq_m_n_s*, mve_vqshrunbq_m_n_s*,
25264 mve_vqshruntq_m_n_s*): Fixed immediate constraints.
25265
25266 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
25267
25268 * config/arm/arm.d (ashldi3): Don't use lsll for constant 32-bit shifts.
25269
25270 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
25271
25272 * config/arm/arm_mve.h: Fix v[id]wdup intrinsics.
25273 * config/arm/mve/md: Fix v[id]wdup patterns.
25274
25275 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
25276
25277 * config/arm/arm.c (output_move_neon): Deal with label + offset cases.
25278 * config/arm/mve.md (*mve_mov<mode>): Handle const vectors.
25279
25280 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
25281
25282 * config/arm/arm_mve.h: Remove use of typeof for addr pointer parameters
25283 and remove const_ptr enums.
25284
25285 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
25286
25287 * config/arm/arm_mve.h (vsubq_n): Merge with...
25288 (vsubq): ... this.
25289 (vmulq_n): Merge with...
25290 (vmulq): ... this.
25291 (__ARM_mve_typeid): Simplify scalar and constant detection.
25292
25293 2020-04-07 Jakub Jelinek <jakub@redhat.com>
25294
25295 PR target/94509
25296 * config/i386/i386-expand.c (expand_vec_perm_pshufb): Fix the check
25297 for inter-lane permutation for 64-byte modes.
25298
25299 PR target/94488
25300 * config/aarch64/aarch64-simd.md (ashl<mode>3, lshr<mode>3,
25301 ashr<mode>3): Force operands[2] into reg whenever it is not CONST_INT.
25302 Assume it is a REG after that instead of testing it and doing FAIL
25303 otherwise. Formatting fix.
25304
25305 2020-04-07 Sebastian Huber <sebastian.huber@embedded-brains.de>
25306
25307 * config/rs6000/t-rtems: Delete mcpu=8540 multilib.
25308
25309 2020-04-07 Jakub Jelinek <jakub@redhat.com>
25310
25311 PR target/94500
25312 * config/i386/i386-expand.c (emit_reduc_half): For V{64QI,32HI}mode
25313 handle i < 64 using avx512bw_lshrv4ti3. Formatting fixes.
25314
25315 2020-04-06 Jakub Jelinek <jakub@redhat.com>
25316
25317 * cselib.c (cselib_subst_to_values): For SP_DERIVED_VALUE_P
25318 + const0_rtx return the SP_DERIVED_VALUE_P.
25319
25320 2020-04-06 Richard Sandiford <richard.sandiford@arm.com>
25321
25322 PR rtl-optimization/92989
25323 * lra-lives.c (process_bb_lives): Do not treat eh_return data
25324 registers as being live at the beginning of the EH receiver.
25325
25326 2020-04-05 Zachary Spytz <zspytz@gmail.com>
25327
25328 * extend.texi: Add free to list of ISO C90 functions that
25329 are recognized by the compiler.
25330
25331 2020-04-05 Nagaraju Mekala <nmekala@xilix.com>
25332
25333 * config/microblaze/microblaze.c (microblaze_must_save_register): Check
25334 for fast_interrupt.
25335
25336 * config/microblaze/microblaze.md (trap): Update output pattern.
25337
25338 2020-04-04 Hannes Domani <ssbssa@yahoo.de>
25339 Jakub Jelinek <jakub@redhat.com>
25340
25341 PR debug/94459
25342 * dwarf2out.c (gen_subprogram_die): Look through references, pointers,
25343 arrays, pointer-to-members, function types and qualifiers when
25344 checking if in-class DIE had an 'auto' or 'decltype(auto)' return type
25345 to emit type again on definition.
25346
25347 2020-04-04 Jan Hubicka <hubicka@ucw.cz>
25348
25349 PR ipa/93940
25350 * ipa-fnsummary.c (vrp_will_run_p): New function.
25351 (fre_will_run_p): New function.
25352 (evaluate_properties_for_edge): Use it.
25353 * ipa-inline.c (can_inline_edge_by_limits_p): Do not inline
25354 !optimize_debug to optimize_debug.
25355
25356 2020-04-04 Jakub Jelinek <jakub@redhat.com>
25357
25358 PR rtl-optimization/94468
25359 * cselib.c (references_value_p): Formatting fix.
25360 (cselib_useless_value_p): New function.
25361 (discard_useless_locs, discard_useless_values,
25362 cselib_invalidate_regno_val, cselib_invalidate_mem,
25363 cselib_record_set): Use it instead of
25364 v->locs == 0 && !PRESERVED_VALUE_P (v->val_rtx).
25365
25366 PR debug/94441
25367 * tree-iterator.h (expr_single): Declare.
25368 * tree-iterator.c (expr_single): New function.
25369 * tree.h (protected_set_expr_location_if_unset): Declare.
25370 * tree.c (protected_set_expr_location): Use expr_single.
25371 (protected_set_expr_location_if_unset): New function.
25372
25373 2020-04-03 Jeff Law <law@redhat.com>
25374
25375 PR rtl-optimization/92264
25376 * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Handle
25377 reloading of auto-increment addressing modes.
25378
25379 2020-04-03 H.J. Lu <hongjiu.lu@intel.com>
25380
25381 PR target/94467
25382 * config/i386/sse.md (ssse3_pshufbv8qi3): Mark scratch operand
25383 as earlyclobber.
25384
25385 2020-04-03 Jeff Law <law@redhat.com>
25386
25387 PR rtl-optimization/92264
25388 * config/m32r/m32r.c (m32r_output_block_move): Properly account for
25389 post-increment addressing of source operands as well as residuals
25390 when computing any adjustments to the input pointer.
25391
25392 2020-04-03 Jakub Jelinek <jakub@redhat.com>
25393
25394 PR target/94460
25395 * config/i386/sse.md (avx2_ph<plusminus_mnemonic>wv16hi3,
25396 avx2_ph<plusminus_mnemonic>dv8si3): Fix up RTL pattern to do
25397 second half of first lane from first lane of second operand and
25398 first half of second lane from second lane of first operand.
25399
25400 2020-04-03 Andre Vieira <andre.simoesdiasvieira@arm.com>
25401
25402 * config/arm/arm_mve.h: Condition the header file on __ARM_FEATURE_MVE.
25403
25404 2020-04-03 Tamar Christina <tamar.christina@arm.com>
25405
25406 PR target/94396
25407 * common/config/aarch64/aarch64-common.c
25408 (aarch64_get_extension_string_for_isa_flags): Handle default flags.
25409
25410 2020-04-03 Richard Biener <rguenther@suse.de>
25411
25412 PR middle-end/94465
25413 * tree.c (array_ref_low_bound): Deal with released SSA names
25414 in index position.
25415
25416 2020-04-03 Kwok Cheung Yeung <kcy@codesourcery.com>
25417
25418 * config/gcn/gcn.c (print_operand): Handle unordered comparison
25419 operators.
25420 * config/gcn/predicates.md (gcn_fp_compare_operator): Add unordered
25421 comparison operators.
25422
25423 2020-04-03 Kewen Lin <linkw@gcc.gnu.org>
25424
25425 PR tree-optimization/94443
25426 * tree-vect-loop.c (vectorizable_live_operation): Use
25427 gsi_insert_seq_before to replace gsi_insert_before.
25428
25429 2020-04-03 Martin Liska <mliska@suse.cz>
25430
25431 PR ipa/94445
25432 * ipa-icf-gimple.c (func_checker::compare_gimple_call):
25433 Compare type attributes for gimple_call_fntypes.
25434
25435 2020-04-02 Sandra Loosemore <sandra@codesourcery.com>
25436
25437 * alias.c (get_alias_set): Fix comment typos.
25438
25439 2020-04-02 Fritz Reese <foreese@gcc.gnu.org>
25440
25441 PR fortran/85982
25442 * fortran/decl.c (match_attr_spec): Lump COMP_STRUCTURE/COMP_MAP into
25443 attribute checking used by TYPE.
25444
25445 2020-04-02 Martin Jambor <mjambor@suse.cz>
25446
25447 PR ipa/92676
25448 * ipa-sra.c (struct caller_issues): New fields candidate and
25449 call_from_outside_comdat.
25450 (check_for_caller_issues): Check for calls from outsied of
25451 candidate's same_comdat_group.
25452 (check_all_callers_for_issues): Set up issues.candidate, check result
25453 of the new check.
25454 (mark_callers_calls_comdat_local): New function.
25455 (process_isra_node_results): Set calls_comdat_local of callers if
25456 appropriate.
25457
25458 2020-04-02 Richard Biener <rguenther@suse.de>
25459
25460 PR c/94392
25461 * common.opt (ffinite-loops): Initialize to zero.
25462 * opts.c (default_options_table): Remove OPT_ffinite_loops
25463 entry.
25464 * cfgloop.h (loop::finite_p): New member.
25465 * cfgloopmanip.c (copy_loop_info): Copy finite_p.
25466 * ipa-icf-gimple.c (func_checker::compare_loops): Compare
25467 finite_p.
25468 * lto-streamer-in.c (input_cfg): Stream finite_p.
25469 * lto-streamer-out.c (output_cfg): Likewise.
25470 * tree-cfg.c (replace_loop_annotate): Initialize finite_p
25471 from flag_finite_loops at CFG build time.
25472 * tree-ssa-loop-niter.c (finite_loop_p): Check the loops
25473 finite_p flag instead of flag_finite_loops.
25474 * doc/invoke.texi (ffinite-loops): Adjust documentation of
25475 default setting.
25476
25477 2020-04-02 Richard Biener <rguenther@suse.de>
25478
25479 PR debug/94450
25480 * dwarf2out.c (dwarf2out_early_finish): Remove code emitting
25481 DW_TAG_imported_unit.
25482
25483 2020-04-02 Maciej W. Rozycki <macro@wdc.com>
25484
25485 * doc/install.texi (Specific) <riscv32-*-elf, riscv32-*-linux>
25486 <riscv64-*-elf, riscv64-*-linux>: Update binutils requirement to
25487 2.30.
25488
25489 2020-04-02 Kewen Lin <linkw@gcc.gnu.org>
25490
25491 PR tree-optimization/94401
25492 * tree-vect-loop.c (vectorizable_load): Handle VMAT_CONTIGUOUS_REVERSE
25493 access type when loading halves of vector to avoid peeling for gaps.
25494
25495 2020-04-02 Jakub Jelinek <jakub@redhat.com>
25496
25497 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add a space in
25498 between a string literal and MIPS_SYSVERSION_SPEC macro.
25499
25500 2020-04-02 Martin Jambor <mjambor@suse.cz>
25501
25502 * doc/invoke.texi (Optimize Options): Document sra-max-propagations.
25503
25504 2020-04-02 Jakub Jelinek <jakub@redhat.com>
25505
25506 PR rtl-optimization/92264
25507 * params.opt (-param=max-find-base-term-values=): Decrease default
25508 from 2000 to 200.
25509
25510 PR rtl-optimization/92264
25511 * rtl.h (struct rtx_def): Mention that call bit is used as
25512 SP_DERIVED_VALUE_P in cselib.c.
25513 * cselib.c (SP_DERIVED_VALUE_P): Define.
25514 (PRESERVED_VALUE_P, SP_BASED_VALUE_P): Move definitions earlier.
25515 (cselib_hasher::equal): Handle equality between SP_DERIVED_VALUE_P
25516 val_rtx and sp based expression where offsets cancel each other.
25517 (preserve_constants_and_equivs): Formatting fix.
25518 (cselib_reset_table): Add reverse op loc to SP_DERIVED_VALUE_P
25519 locs list for cfa_base_preserved_val if needed. Formatting fix.
25520 (autoinc_split): If the to be returned value is a REG, MEM or
25521 VALUE which has SP_DERIVED_VALUE_P + CONST_INT as one of its
25522 locs, return the SP_DERIVED_VALUE_P VALUE and adjust *off.
25523 (rtx_equal_for_cselib_1): Call autoinc_split even if both
25524 expressions are PLUS in Pmode with CONST_INT second operands.
25525 Handle SP_DERIVED_VALUE_P cases.
25526 (cselib_hash_plus_const_int): New function.
25527 (cselib_hash_rtx): Use it for PLUS in Pmode with CONST_INT
25528 second operand, as well as for PRE_DEC etc. that ought to be
25529 hashed the same way.
25530 (cselib_subst_to_values): Substitute PLUS with Pmode and
25531 CONST_INT operand if the first operand is a VALUE which has
25532 SP_DERIVED_VALUE_P + CONST_INT as one of its locs for the
25533 SP_DERIVED_VALUE_P + adjusted offset.
25534 (cselib_lookup_1): When creating a new VALUE for stack_pointer_rtx,
25535 set SP_DERIVED_VALUE_P on it. Set PRESERVED_VALUE_P when adding
25536 SP_DERIVED_VALUE_P PRESERVED_VALUE_P subseted VALUE location.
25537 * var-tracking.c (vt_initialize): Call cselib_add_permanent_equiv
25538 on the sp value before calling cselib_add_permanent_equiv on the
25539 cfa_base value.
25540 * dse.c (check_for_inc_dec_1, check_for_inc_dec): Punt on RTX_AUTOINC
25541 in the insn without REG_INC note.
25542 (replace_read): Punt on RTX_AUTOINC in the *loc being replaced.
25543 Punt on invalid insns added by copy_to_mode_reg. Formatting fixes.
25544
25545 PR target/94435
25546 * config/aarch64/aarch64.c (aarch64_gen_compare_reg_maybe_ze): For
25547 y_mode E_[QH]Imode and y being a CONST_INT, change y_mode to SImode.
25548
25549 2020-04-02 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
25550
25551 PR target/94317
25552 * config/arm/arm-builtins.c (LDRGBWBXU_QUALIFIERS): Define.
25553 (LDRGBWBXU_Z_QUALIFIERS): Likewise.
25554 * config/arm/arm_mve.h (__arm_vldrdq_gather_base_wb_s64): Modify
25555 intrinsic defintion by adding a new builtin call to writeback into base
25556 address.
25557 (__arm_vldrdq_gather_base_wb_u64): Likewise.
25558 (__arm_vldrdq_gather_base_wb_z_s64): Likewise.
25559 (__arm_vldrdq_gather_base_wb_z_u64): Likewise.
25560 (__arm_vldrwq_gather_base_wb_s32): Likewise.
25561 (__arm_vldrwq_gather_base_wb_u32): Likewise.
25562 (__arm_vldrwq_gather_base_wb_z_s32): Likewise.
25563 (__arm_vldrwq_gather_base_wb_z_u32): Likewise.
25564 (__arm_vldrwq_gather_base_wb_f32): Likewise.
25565 (__arm_vldrwq_gather_base_wb_z_f32): Likewise.
25566 * config/arm/arm_mve_builtins.def (vldrwq_gather_base_wb_z_u): Modify
25567 builtin's qualifier.
25568 (vldrdq_gather_base_wb_z_u): Likewise.
25569 (vldrwq_gather_base_wb_u): Likewise.
25570 (vldrdq_gather_base_wb_u): Likewise.
25571 (vldrwq_gather_base_wb_z_s): Likewise.
25572 (vldrwq_gather_base_wb_z_f): Likewise.
25573 (vldrdq_gather_base_wb_z_s): Likewise.
25574 (vldrwq_gather_base_wb_s): Likewise.
25575 (vldrwq_gather_base_wb_f): Likewise.
25576 (vldrdq_gather_base_wb_s): Likewise.
25577 (vldrwq_gather_base_nowb_z_u): Define builtin.
25578 (vldrdq_gather_base_nowb_z_u): Likewise.
25579 (vldrwq_gather_base_nowb_u): Likewise.
25580 (vldrdq_gather_base_nowb_u): Likewise.
25581 (vldrwq_gather_base_nowb_z_s): Likewise.
25582 (vldrwq_gather_base_nowb_z_f): Likewise.
25583 (vldrdq_gather_base_nowb_z_s): Likewise.
25584 (vldrwq_gather_base_nowb_s): Likewise.
25585 (vldrwq_gather_base_nowb_f): Likewise.
25586 (vldrdq_gather_base_nowb_s): Likewise.
25587 * config/arm/mve.md (mve_vldrwq_gather_base_nowb_<supf>v4si): Define RTL
25588 pattern.
25589 (mve_vldrwq_gather_base_wb_<supf>v4si): Modify RTL pattern.
25590 (mve_vldrwq_gather_base_nowb_z_<supf>v4si): Define RTL pattern.
25591 (mve_vldrwq_gather_base_wb_z_<supf>v4si): Modify RTL pattern.
25592 (mve_vldrwq_gather_base_wb_fv4sf): Modify RTL pattern.
25593 (mve_vldrwq_gather_base_nowb_fv4sf): Define RTL pattern.
25594 (mve_vldrwq_gather_base_wb_z_fv4sf): Modify RTL pattern.
25595 (mve_vldrwq_gather_base_nowb_z_fv4sf): Define RTL pattern.
25596 (mve_vldrdq_gather_base_nowb_<supf>v4di): Define RTL pattern.
25597 (mve_vldrdq_gather_base_wb_<supf>v4di): Modify RTL pattern.
25598 (mve_vldrdq_gather_base_nowb_z_<supf>v4di): Define RTL pattern.
25599 (mve_vldrdq_gather_base_wb_z_<supf>v4di): Modify RTL pattern.
25600
25601 2020-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
25602
25603 * config/s390/vector.md ("<ti*>add<mode>3", "mul<mode>3")
25604 ("and<mode>3", "notand<mode>3", "ior<mode>3", "ior_not<mode>3")
25605 ("xor<mode>3", "notxor<mode>3", "smin<mode>3", "smax<mode>3")
25606 ("umin<mode>3", "umax<mode>3", "vec_widen_smult_even_<mode>")
25607 ("vec_widen_umult_even_<mode>", "vec_widen_smult_odd_<mode>")
25608 ("vec_widen_umult_odd_<mode>", "add<mode>3", "sub<mode>3")
25609 ("mul<mode>3", "fma<mode>4", "fms<mode>4", "neg_fma<mode>4")
25610 ("neg_fms<mode>4", "*smax<mode>3_vxe", "*smaxv2df3_vx")
25611 ("*smin<mode>3_vxe", "*sminv2df3_vx"): Remove % constraint
25612 modifier.
25613 ("vec_widen_umult_lo_<mode>", "vec_widen_umult_hi_<mode>")
25614 ("vec_widen_smult_lo_<mode>", "vec_widen_smult_hi_<mode>"):
25615 Remove constraints from expander.
25616 * config/s390/vx-builtins.md ("vacc<bhfgq>_<mode>", "vacq")
25617 ("vacccq", "vec_avg<mode>", "vec_avgu<mode>", "vec_vmal<mode>")
25618 ("vec_vmah<mode>", "vec_vmalh<mode>", "vec_vmae<mode>")
25619 ("vec_vmale<mode>", "vec_vmao<mode>", "vec_vmalo<mode>")
25620 ("vec_smulh<mode>", "vec_umulh<mode>", "vec_nor<mode>3")
25621 ("vfmin<mode>", "vfmax<mode>"): Remove % constraint modifier.
25622
25623 2020-04-01 Peter Bergner <bergner@linux.ibm.com>
25624
25625 PR rtl-optimization/94123
25626 * lower-subreg.c (pass_lower_subreg3::gate): Remove test for
25627 flag_split_wide_types_early.
25628
25629 2020-04-01 Joerg Sonnenberger <joerg@bec.de>
25630
25631 * doc/extend.texi (Common Function Attributes): Fix typo.
25632
25633 2020-04-01 Segher Boessenkool <segher@kernel.crashing.org>
25634
25635 PR target/94420
25636 * config/rs6000/rs6000.md (*tocref<mode> for P): Add insn condition
25637 on operands[1].
25638
25639 2020-04-01 Zackery Spytz <zspytz@gmail.com>
25640
25641 * doc/extend.texi: Fix a typo in the documentation of the
25642 copy function attribute.
25643
25644 2020-04-01 Jakub Jelinek <jakub@redhat.com>
25645
25646 PR middle-end/94423
25647 * tree-object-size.c (pass_object_sizes::execute): Don't call
25648 replace_uses_by for SSA_NAME_OCCURS_IN_ABNORMAL_PHI lhs, instead
25649 call replace_call_with_value.
25650
25651 2020-04-01 Kewen Lin <linkw@gcc.gnu.org>
25652
25653 PR tree-optimization/94043
25654 * tree-vect-loop.c (vectorizable_live_operation): Generate loop-closed
25655 phi for vec_lhs and use it for lane extraction.
25656
25657 2020-03-31 Felix Yang <felix.yang@huawei.com>
25658
25659 PR tree-optimization/94398
25660 * tree-vect-stmts.c (vectorizable_store): Instead of calling
25661 vect_supportable_dr_alignment, set alignment_support_scheme to
25662 dr_unaligned_supported for gather-scatter accesses.
25663 (vectorizable_load): Likewise.
25664
25665 2020-03-31 Andrew Stubbs <ams@codesourcery.com>
25666
25667 * config/gcn/gcn-valu.md (V_QI, V_HI, V_HF, V_SI, V_SF, V_DI, V_DF):
25668 New mode iterators.
25669 (vnsi, VnSI, vndi, VnDI): New mode attributes.
25670 (mov<mode>): Use <VnDI> in place of V64DI.
25671 (mov<mode>_exec): Likewise.
25672 (mov<mode>_sgprbase): Likewise.
25673 (reload_out<mode>): Likewise.
25674 (*vec_set<mode>_1): Use GET_MODE_NUNITS instead of constant 64.
25675 (gather_load<mode>v64si): Rename to ...
25676 (gather_load<mode><vnsi>): ... this, and use <VnSI> in place of V64SI,
25677 and <VnDI> in place of V64DI.
25678 (gather<mode>_insn_1offset<exec>): Use <VnDI> in place of V64DI.
25679 (gather<mode>_insn_1offset_ds<exec>): Use <VnSI> in place of V64SI.
25680 (gather<mode>_insn_2offsets<exec>): Use <VnSI> and <VnDI>.
25681 (scatter_store<mode>v64si): Rename to ...
25682 (scatter_store<mode><vnsi>): ... this, and use <VnSI> and <VnDI>.
25683 (scatter<mode>_expr<exec_scatter>): Use <VnSI> and <VnDI>.
25684 (scatter<mode>_insn_1offset<exec_scatter>): Likewise.
25685 (scatter<mode>_insn_1offset_ds<exec_scatter>): Likewise.
25686 (scatter<mode>_insn_2offsets<exec_scatter>): Likewise.
25687 (ds_bpermute<mode>): Use <VnSI>.
25688 (addv64si3_vcc<exec_vcc>): Rename to ...
25689 (add<mode>3_vcc<exec_vcc>): ... this, and use V_SI.
25690 (addv64si3_vcc_dup<exec_vcc>): Rename to ...
25691 (add<mode>3_vcc_dup<exec_vcc>): ... this, and use V_SI.
25692 (addcv64si3<exec_vcc>): Rename to ...
25693 (addc<mode>3<exec_vcc>): ... this, and use V_SI.
25694 (subv64si3_vcc<exec_vcc>): Rename to ...
25695 (sub<mode>3_vcc<exec_vcc>): ... this, and use V_SI.
25696 (subcv64si3<exec_vcc>): Rename to ...
25697 (subc<mode>3<exec_vcc>): ... this, and use V_SI.
25698 (addv64di3): Rename to ...
25699 (add<mode>3): ... this, and use V_DI.
25700 (addv64di3_exec): Rename to ...
25701 (add<mode>3_exec): ... this, and use V_DI.
25702 (subv64di3): Rename to ...
25703 (sub<mode>3): ... this, and use V_DI.
25704 (subv64di3_exec): Rename to ...
25705 (sub<mode>3_exec): ... this, and use V_DI.
25706 (addv64di3_zext): Rename to ...
25707 (add<mode>3_zext): ... this, and use V_DI and <VnSI>.
25708 (addv64di3_zext_exec): Rename to ...
25709 (add<mode>3_zext_exec): ... this, and use V_DI and <VnSI>.
25710 (addv64di3_zext_dup): Rename to ...
25711 (add<mode>3_zext_dup): ... this, and use V_DI and <VnSI>.
25712 (addv64di3_zext_dup_exec): Rename to ...
25713 (add<mode>3_zext_dup_exec): ... this, and use V_DI and <VnSI>.
25714 (addv64di3_zext_dup2): Rename to ...
25715 (add<mode>3_zext_dup2): ... this, and use V_DI and <VnSI>.
25716 (addv64di3_zext_dup2_exec): Rename to ...
25717 (add<mode>3_zext_dup2_exec): ... this, and use V_DI and <VnSI>.
25718 (addv64di3_sext_dup2): Rename to ...
25719 (add<mode>3_sext_dup2): ... this, and use V_DI and <VnSI>.
25720 (addv64di3_sext_dup2_exec): Rename to ...
25721 (add<mode>3_sext_dup2_exec): ... this, and use V_DI and <VnSI>.
25722 (<su>mulv64si3_highpart<exec>): Rename to ...
25723 (<su>mul<mode>3_highpart<exec>): ... this and use V_SI and <VnDI>.
25724 (mulv64di3): Rename to ...
25725 (mul<mode>3): ... this, and use V_DI and <VnSI>.
25726 (mulv64di3_exec): Rename to ...
25727 (mul<mode>3_exec): ... this, and use V_DI and <VnSI>.
25728 (mulv64di3_zext): Rename to ...
25729 (mul<mode>3_zext): ... this, and use V_DI and <VnSI>.
25730 (mulv64di3_zext_exec): Rename to ...
25731 (mul<mode>3_zext_exec): ... this, and use V_DI and <VnSI>.
25732 (mulv64di3_zext_dup2): Rename to ...
25733 (mul<mode>3_zext_dup2): ... this, and use V_DI and <VnSI>.
25734 (mulv64di3_zext_dup2_exec): Rename to ...
25735 (mul<mode>3_zext_dup2_exec): ... this, and use V_DI and <VnSI>.
25736 (<expander>v64di3): Rename to ...
25737 (<expander><mode>3): ... this, and use V_DI and <VnSI>.
25738 (<expander>v64di3_exec): Rename to ...
25739 (<expander><mode>3_exec): ... this, and use V_DI and <VnSI>.
25740 (<expander>v64si3<exec>): Rename to ...
25741 (<expander><mode>3<exec>): ... this, and use V_SI and <VnSI>.
25742 (v<expander>v64si3<exec>): Rename to ...
25743 (v<expander><mode>3<exec>): ... this, and use V_SI and <VnSI>.
25744 (<expander>v64si3<exec>): Rename to ...
25745 (<expander><vnsi>3<exec>): ... this, and use V_SI.
25746 (subv64df3<exec>): Rename to ...
25747 (sub<mode>3<exec>): ... this, and use V_DF.
25748 (truncv64di<mode>2): Rename to ...
25749 (trunc<vndi><mode>2): ... this, and use <VnDI>.
25750 (truncv64di<mode>2_exec): Rename to ...
25751 (trunc<vndi><mode>2_exec): ... this, and use <VnDI>.
25752 (<convop><mode>v64di2): Rename to ...
25753 (<convop><mode><vndi>2): ... this, and use <VnDI>.
25754 (<convop><mode>v64di2_exec): Rename to ...
25755 (<convop><mode><vndi>2_exec): ... this, and use <VnDI>.
25756 (vec_cmp<u>v64qidi): Rename to ...
25757 (vec_cmp<u><mode>di): ... this, and use <VnSI>.
25758 (vec_cmp<u>v64qidi_exec): Rename to ...
25759 (vec_cmp<u><mode>di_exec): ... this, and use <VnSI>.
25760 (vcond_mask_<mode>di): Use <VnDI>.
25761 (maskload<mode>di): Likewise.
25762 (maskstore<mode>di): Likewise.
25763 (mask_gather_load<mode>v64si): Rename to ...
25764 (mask_gather_load<mode><vnsi>): ... this, and use <VnSI> and <VnDI>.
25765 (mask_scatter_store<mode>v64si): Rename to ...
25766 (mask_scatter_store<mode><vnsi>): ... this, and use <VnSI> and <VnDI>.
25767 (*<reduc_op>_dpp_shr_v64di): Rename to ...
25768 (*<reduc_op>_dpp_shr_<mode>): ... this, and use V_DI and <VnSI>.
25769 (*plus_carry_in_dpp_shr_v64si): Rename to ...
25770 (*plus_carry_in_dpp_shr_<mode>): ... this, and use V_SI.
25771 (*plus_carry_dpp_shr_v64di): Rename to ...
25772 (*plus_carry_dpp_shr_<mode>): ... this, and use V_DI and <VnSI>.
25773 (vec_seriesv64si): Rename to ...
25774 (vec_series<mode>): ... this, and use V_SI.
25775 (vec_seriesv64di): Rename to ...
25776 (vec_series<mode>): ... this, and use V_DI.
25777
25778 2020-03-31 Claudiu Zissulescu <claziss@synopsys.com>
25779
25780 * config/arc/arc.c (arc_print_operand): Use
25781 HOST_WIDE_INT_PRINT_DEC macro.
25782
25783 2020-03-31 Claudiu Zissulescu <claziss@synopsys.com>
25784
25785 * config/arc/arc.h (ASM_FORMAT_PRIVATE_NAME): Fix it.
25786
25787 2020-03-31 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
25788
25789 * config/arm/arm_mve.h (vbicq): Define MVE intrinsic polymorphic
25790 variant.
25791 (__arm_vbicq): Likewise.
25792
25793 2020-03-31 Vineet Gupta <vgupta@synopsys.com>
25794
25795 * config/arc/linux.h: GLIBC_DYNAMIC_LINKER support BE/arc700.
25796
25797 2020-03-31 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
25798
25799 * config/arm/arm_mve.h (vaddlvq): Move the polymorphic variant to the
25800 common section of both MVE Integer and MVE Floating Point.
25801 (vaddvq): Likewise.
25802 (vaddlvq_p): Likewise.
25803 (vaddvaq): Likewise.
25804 (vaddvq_p): Likewise.
25805 (vcmpcsq): Likewise.
25806 (vmlsdavxq): Likewise.
25807 (vmlsdavq): Likewise.
25808 (vmladavxq): Likewise.
25809 (vmladavq): Likewise.
25810 (vminvq): Likewise.
25811 (vminavq): Likewise.
25812 (vmaxvq): Likewise.
25813 (vmaxavq): Likewise.
25814 (vmlaldavq): Likewise.
25815 (vcmphiq): Likewise.
25816 (vaddlvaq): Likewise.
25817 (vrmlaldavhq): Likewise.
25818 (vrmlaldavhxq): Likewise.
25819 (vrmlsldavhq): Likewise.
25820 (vrmlsldavhxq): Likewise.
25821 (vmlsldavxq): Likewise.
25822 (vmlsldavq): Likewise.
25823 (vabavq): Likewise.
25824 (vrmlaldavhaq): Likewise.
25825 (vcmpgeq_m_n): Likewise.
25826 (vmlsdavxq_p): Likewise.
25827 (vmlsdavq_p): Likewise.
25828 (vmlsdavaxq): Likewise.
25829 (vmlsdavaq): Likewise.
25830 (vaddvaq_p): Likewise.
25831 (vcmpcsq_m_n): Likewise.
25832 (vcmpcsq_m): Likewise.
25833 (vmladavxq_p): Likewise.
25834 (vmladavq_p): Likewise.
25835 (vmladavaxq): Likewise.
25836 (vmladavaq): Likewise.
25837 (vminvq_p): Likewise.
25838 (vminavq_p): Likewise.
25839 (vmaxvq_p): Likewise.
25840 (vmaxavq_p): Likewise.
25841 (vcmphiq_m): Likewise.
25842 (vaddlvaq_p): Likewise.
25843 (vmlaldavaq): Likewise.
25844 (vmlaldavaxq): Likewise.
25845 (vmlaldavq_p): Likewise.
25846 (vmlaldavxq_p): Likewise.
25847 (vmlsldavaq): Likewise.
25848 (vmlsldavaxq): Likewise.
25849 (vmlsldavq_p): Likewise.
25850 (vmlsldavxq_p): Likewise.
25851 (vrmlaldavhaxq): Likewise.
25852 (vrmlaldavhq_p): Likewise.
25853 (vrmlaldavhxq_p): Likewise.
25854 (vrmlsldavhaq): Likewise.
25855 (vrmlsldavhaxq): Likewise.
25856 (vrmlsldavhq_p): Likewise.
25857 (vrmlsldavhxq_p): Likewise.
25858 (vabavq_p): Likewise.
25859 (vmladavaq_p): Likewise.
25860 (vstrbq_scatter_offset): Likewise.
25861 (vstrbq_p): Likewise.
25862 (vstrbq_scatter_offset_p): Likewise.
25863 (vstrdq_scatter_base_p): Likewise.
25864 (vstrdq_scatter_base): Likewise.
25865 (vstrdq_scatter_offset_p): Likewise.
25866 (vstrdq_scatter_offset): Likewise.
25867 (vstrdq_scatter_shifted_offset_p): Likewise.
25868 (vstrdq_scatter_shifted_offset): Likewise.
25869 (vmaxq_x): Likewise.
25870 (vminq_x): Likewise.
25871 (vmovlbq_x): Likewise.
25872 (vmovltq_x): Likewise.
25873 (vmulhq_x): Likewise.
25874 (vmullbq_int_x): Likewise.
25875 (vmullbq_poly_x): Likewise.
25876 (vmulltq_int_x): Likewise.
25877 (vmulltq_poly_x): Likewise.
25878 (vstrbq): Likewise.
25879
25880 2020-03-31 Jakub Jelinek <jakub@redhat.com>
25881
25882 PR target/94368
25883 * config/aarch64/constraints.md (Uph): New constraint.
25884 * config/aarch64/atomics.md (cas_short_expected_imm): New mode attr.
25885 (@aarch64_compare_and_swap<mode>): Use it instead of n in operand 2's
25886 constraint.
25887
25888 2020-03-31 Marc Glisse <marc.glisse@inria.fr>
25889 Jakub Jelinek <jakub@redhat.com>
25890
25891 PR middle-end/94412
25892 * fold-const.c (fold_binary_loc) <case TRUNC_DIV_EXPR>: Use
25893 ANY_INTEGRAL_TYPE_P instead of INTEGRAL_TYPE_P.
25894
25895 2020-03-31 Jakub Jelinek <jakub@redhat.com>
25896
25897 PR tree-optimization/94403
25898 * gimple-ssa-store-merging.c (verify_symbolic_number_p): Allow also
25899 ENUMERAL_TYPE lhs_type.
25900
25901 PR rtl-optimization/94344
25902 * tree-ssa-forwprop.c (simplify_rotate): Handle also same precision
25903 conversions, either on both operands of |^+ or just one. Handle
25904 also extra same precision conversion on RSHIFT_EXPR first operand
25905 provided RSHIFT_EXPR is performed in unsigned type.
25906
25907 2020-03-30 David Malcolm <dmalcolm@redhat.com>
25908
25909 * lra.c (finish_insn_code_data_once): Set the array elements
25910 to NULL after freeing them.
25911
25912 2020-03-30 Andreas Schwab <schwab@suse.de>
25913
25914 * config/host-linux.c (TRY_EMPTY_VM_SPACE) [__riscv && __LP64__]:
25915 Define.
25916
25917 2020-03-30 Will Schmidt <will_schmidt@vnet.ibm.com>
25918
25919 * config/rs6000/rs6000-call.c altivec_init_builtins(): Remove code
25920 to skip defining builtins based on builtin_mask.
25921
25922 2020-03-30 Jakub Jelinek <jakub@redhat.com>
25923
25924 PR target/94343
25925 * config/i386/sse.md (<mask_codefor>one_cmpl<mode>2<mask_name>): If
25926 !TARGET_AVX512VL, use 512-bit vpternlog and make sure the input
25927 operand is a register. Don't enable masked variants for V*[QH]Imode.
25928
25929 PR target/93069
25930 * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Use
25931 <store_mask_constraint> instead of m in output operand constraint.
25932 (vec_extract_hi_<mode><mask_name>): Use <mask_operand2> instead of
25933 %{%3%}.
25934
25935 2020-03-30 Alan Modra <amodra@gmail.com>
25936
25937 * config/rs6000/rs6000.c (rs6000_call_aix): Emit cookie to pattern.
25938 (rs6000_indirect_call_template_1): Adjust to suit.
25939 * config/rs6000/rs6000.md (call_local): Merge call_local32,
25940 call_local64, and call_local_aix.
25941 (call_value_local): Simlarly.
25942 (call_nonlocal_aix, call_value_nonlocal_aix): Adjust rtl to suit,
25943 and disable pattern when CALL_LONG.
25944 (call_indirect_aix, call_value_indirect_aix): Adjust rtl.
25945 (call_indirect_elfv2, call_indirect_pcrel): Likewise.
25946 (call_value_indirect_elfv2, call_value_indirect_pcrel): Likewise.
25947
25948 2020-03-29 H.J. Lu <hongjiu.lu@intel.com>
25949
25950 PR driver/94381
25951 * doc/invoke.texi: Update -falign-functions, -falign-loops and
25952 -falign-jumps documentation.
25953
25954 2020-03-29 Martin Liska <mliska@suse.cz>
25955
25956 PR ipa/94363
25957 * cgraphunit.c (process_function_and_variable_attributes): Remove
25958 double 'attribute' words.
25959
25960 2020-03-29 John David Anglin <dave.anglin@bell.net>
25961
25962 * config/pa/pa.c (pa_asm_output_aligned_bss): Delete duplicate
25963 .align output.
25964
25965 2020-03-28 Jakub Jelinek <jakub@redhat.com>
25966
25967 PR c/93573
25968 * c-decl.c (grokdeclarator): After issuing errors, set size_int_const
25969 to true after setting size to integer_one_node.
25970
25971 PR tree-optimization/94329
25972 * tree-ssa-reassoc.c (reassociate_bb): When calling reassoc_remove_stmt
25973 on the last stmt in a bb, make sure gsi_prev isn't done immediately
25974 after gsi_last_bb.
25975
25976 2020-03-27 Alan Modra <amodra@gmail.com>
25977
25978 PR target/94145
25979 * config/rs6000/rs6000.c (rs6000_longcall_ref): Use unspec_volatile
25980 for PLT16_LO and PLT_PCREL.
25981 * config/rs6000/rs6000.md (UNSPEC_PLT16_LO, UNSPEC_PLT_PCREL): Remove.
25982 (UNSPECV_PLT16_LO, UNSPECV_PLT_PCREL): Define.
25983 (pltseq_plt16_lo_, pltseq_plt_pcrel): Use unspec_volatile.
25984
25985 2020-03-27 Martin Sebor <msebor@redhat.com>
25986
25987 PR c++/94098
25988 * calls.c (init_attr_rdwr_indices): Iterate over all access attributes.
25989
25990 2020-03-27 Andrew Stubbs <ams@codesourcery.com>
25991
25992 * config/gcn/gcn-valu.md:
25993 (VEC_SUBDWORD_MODE): Rename to V_QIHI throughout.
25994 (VEC_1REG_MODE): Delete.
25995 (VEC_1REG_ALT): Delete.
25996 (VEC_ALL1REG_MODE): Rename to V_1REG throughout.
25997 (VEC_1REG_INT_MODE): Delete.
25998 (VEC_ALL1REG_INT_MODE): Rename to V_INT_1REG throughout.
25999 (VEC_ALL1REG_INT_ALT): Rename to V_INT_1REG_ALT throughout.
26000 (VEC_2REG_MODE): Rename to V_2REG throughout.
26001 (VEC_REG_MODE): Rename to V_noHI throughout.
26002 (VEC_ALLREG_MODE): Rename to V_ALL throughout.
26003 (VEC_ALLREG_ALT): Rename to V_ALL_ALT throughout.
26004 (VEC_ALLREG_INT_MODE): Rename to V_INT throughout.
26005 (VEC_INT_MODE): Delete.
26006 (VEC_FP_MODE): Rename to V_FP throughout and move to top.
26007 (VEC_FP_1REG_MODE): Rename to V_FP_1REG throughout and move to top.
26008 (FP_MODE): Delete and replace with FP throughout.
26009 (FP_1REG_MODE): Delete and replace with FP_1REG throughout.
26010 (VCMP_MODE): Rename to V_noQI throughout and move to top.
26011 (VCMP_MODE_INT): Rename to V_INT_noQI throughout and move to top.
26012 * config/gcn/gcn.md (FP): New mode iterator.
26013 (FP_1REG): New mode iterator.
26014
26015 2020-03-27 David Malcolm <dmalcolm@redhat.com>
26016
26017 * doc/invoke.texi (-fdump-analyzer-supergraph): Document that this
26018 now emits two .dot files.
26019 * graphviz.cc (graphviz_out::begin_tr): Only emit a TR, not a TD.
26020 (graphviz_out::end_tr): Only close a TR, not a TD.
26021 (graphviz_out::begin_td): New.
26022 (graphviz_out::end_td): New.
26023 (graphviz_out::begin_trtd): New, replacing the old implementation
26024 of graphviz_out::begin_tr.
26025 (graphviz_out::end_tdtr): New, replacing the old implementation
26026 of graphviz_out::end_tr.
26027 * graphviz.h (graphviz_out::begin_td): New decl.
26028 (graphviz_out::end_td): New decl.
26029 (graphviz_out::begin_trtd): New decl.
26030 (graphviz_out::end_tdtr): New decl.
26031
26032 2020-03-27 Richard Biener <rguenther@suse.de>
26033
26034 PR debug/94273
26035 * dwarf2out.c (should_emit_struct_debug): Return false for
26036 DINFO_LEVEL_TERSE.
26037
26038 2020-03-27 Richard Biener <rguenther@suse.de>
26039
26040 PR tree-optimization/94352
26041 * tree-ssa-propagate.c (ssa_prop_init): Move seeding of the
26042 worklist ...
26043 (ssa_propagation_engine::ssa_propagate): ... here after
26044 initializing curr_order.
26045
26046 2020-03-27 Kewen Lin <linkw@gcc.gnu.org>
26047
26048 PR tree-optimization/90332
26049 * tree-vect-stmts.c (vector_vector_composition_type): New function.
26050 (get_group_load_store_type): Adjust to call
26051 vector_vector_composition_type, extend it to construct with scalar
26052 types.
26053 (vectorizable_load): Likewise.
26054
26055 2020-03-27 Roman Zhuykov <zhroma@ispras.ru>
26056
26057 * ddg.c (create_ddg_dep_from_intra_loop_link): Remove assertions.
26058 (create_ddg_dep_no_link): Likewise.
26059 (add_cross_iteration_register_deps): Move debug instruction check.
26060 Other minor refactoring.
26061 (add_intra_loop_mem_dep): Do not check for debug instructions.
26062 (add_inter_loop_mem_dep): Likewise.
26063 (build_intra_loop_deps): Likewise.
26064 (create_ddg): Do not include debug insns into the graph.
26065 * ddg.h (struct ddg): Remove num_debug field.
26066 * modulo-sched.c (doloop_register_get): Adjust condition.
26067 (res_MII): Remove DDG num_debug field usage.
26068 (sms_schedule_by_order): Use assertion against debug insns.
26069 (ps_has_conflicts): Drop debug insn check.
26070
26071 2020-03-26 Jakub Jelinek <jakub@redhat.com>
26072
26073 PR debug/94323
26074 * tree.c (protected_set_expr_location): Recurse on STATEMENT_LIST
26075 that contains exactly one non-DEBUG_BEGIN_STMT statement.
26076
26077 PR debug/94281
26078 * gimple.h (gimple_seq_first_nondebug_stmt): New function.
26079 (gimple_seq_last_nondebug_stmt): Don't return NULL if seq contains
26080 a single non-debug stmt followed by one or more debug stmts.
26081 * gimplify.c (gimplify_body): Use gimple_seq_first_nondebug_stmt
26082 instead of gimple_seq_first_stmt, use gimple_seq_first_nondebug_stmt
26083 and gimple_seq_last_nondebug_stmt instead of gimple_seq_first and
26084 gimple_seq_last to check if outer_stmt gbind could be reused and
26085 if yes and it is surrounded by any debug stmts, move them into the
26086 gbind body.
26087
26088 PR rtl-optimization/92264
26089 * var-tracking.c (add_stores): Call cselib_set_value_sp_based even
26090 for sp based values in !frame_pointer_needed
26091 && !ACCUMULATE_OUTGOING_ARGS functions.
26092
26093 2020-03-26 Felix Yang <felix.yang@huawei.com>
26094
26095 PR tree-optimization/94269
26096 * tree-ssa-math-opts.c (convert_plusminus_to_widen): Restrict
26097 this
26098 operation to single basic block.
26099
26100 2020-03-25 Jeff Law <law@redhat.com>
26101
26102 PR rtl-optimization/90275
26103 * config/sh/sh.md (mov_neg_si_t): Clobber the T register in the
26104 pattern.
26105
26106 2020-03-25 Jakub Jelinek <jakub@redhat.com>
26107
26108 PR target/94292
26109 * config/arm/arm.c (arm_gen_dicompare_reg): Set mode of COMPARE to
26110 mode rather than VOIDmode.
26111
26112 2020-03-25 Martin Sebor <msebor@redhat.com>
26113
26114 PR middle-end/94004
26115 * gimple-ssa-warn-alloca.c (pass_walloca::execute): Issue warnings
26116 even for alloca calls resulting from system macro expansion.
26117 Include inlining context in all warnings.
26118
26119 2020-03-25 Richard Sandiford <richard.sandiford@arm.com>
26120
26121 PR target/94254
26122 * config/rs6000/rs6000.c (rs6000_can_change_mode_class): Allow
26123 FPRs to change between SDmode and DDmode.
26124
26125 2020-03-25 Martin Sebor <msebor@redhat.com>
26126
26127 PR tree-optimization/94131
26128 * gimple-fold.c (get_range_strlen_tree): Fail for variable-length
26129 types and decls.
26130 * tree-ssa-strlen.c (get_range_strlen_dynamic): Avoid assuming
26131 types have constant sizes.
26132
26133 2020-03-25 Martin Liska <mliska@suse.cz>
26134
26135 PR lto/94259
26136 * configure.ac: Report error only when --with-zstd
26137 is used.
26138 * configure: Regenerate.
26139
26140 2020-03-25 Jakub Jelinek <jakub@redhat.com>
26141
26142 PR target/94308
26143 * config/i386/i386-features.c (ix86_add_reg_usage_to_vzeroupper): Set
26144 INSN_CODE (insn) to -1 when changing the pattern.
26145
26146 2020-03-25 Martin Liska <mliska@suse.cz>
26147
26148 PR target/93274
26149 PR ipa/94271
26150 * config/i386/i386-features.c (make_resolver_func): Drop
26151 public flag for resolver.
26152 * config/rs6000/rs6000.c (make_resolver_func): Add comdat
26153 group for resolver and drop public flag if possible.
26154 * multiple_target.c (create_dispatcher_calls): Drop unique_name
26155 and resolution as we want to enable LTO privatization of the default
26156 symbol.
26157
26158 2020-03-25 Martin Liska <mliska@suse.cz>
26159
26160 PR lto/94259
26161 * configure.ac: Respect --without-zstd and report
26162 error when we can't find header file with --with-zstd.
26163 * configure: Regenerate.
26164
26165 2020-03-25 Jakub Jelinek <jakub@redhat.com>
26166
26167 PR middle-end/94303
26168 * varasm.c (output_constructor_array_range): If local->index
26169 RANGE_EXPR doesn't start at the current location in the constructor,
26170 skip needed number of bytes using assemble_zeros or assert we don't
26171 go backwards.
26172
26173 PR c++/94223
26174 * langhooks.c (lhd_set_decl_assembler_name): Use a static ulong
26175 counter instead of DECL_UID.
26176
26177 PR tree-optimization/94300
26178 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): If pd.offset
26179 is positive, make sure that off + size isn't larger than needed_len.
26180
26181 2020-03-25 Richard Biener <rguenther@suse.de>
26182 Jakub Jelinek <jakub@redhat.com>
26183
26184 PR debug/94283
26185 * tree-if-conv.c (ifcvt_local_dce): Delete dead statements backwards.
26186
26187 2020-03-24 Christophe Lyon <christophe.lyon@linaro.org>
26188
26189 * doc/sourcebuild.texi (ARM-specific attributes): Add
26190 arm_fp_dp_ok.
26191 (Features for dg-add-options): Add arm_fp_dp.
26192
26193 2020-03-24 John David Anglin <danglin@gcc.gnu.org>
26194
26195 PR lto/94249
26196 * config/pa/pa.h (TARGET_CPU_CPP_BUILTINS): Define __BIG_ENDIAN__.
26197
26198 2020-03-24 Tobias Burnus <tobias@codesourcery.com>
26199
26200 PR libgomp/81689
26201 * omp-offload.c (omp_finish_file): Fix target-link handling if
26202 targetm_common.have_named_sections is false.
26203
26204 2020-03-24 Jakub Jelinek <jakub@redhat.com>
26205
26206 PR target/94286
26207 * config/arm/arm.md (subvdi4, usubvsi4, usubvdi4): Use gen_int_mode
26208 instead of GEN_INT.
26209
26210 PR debug/94285
26211 * tree-ssa-loop-manip.c (create_iv): If after, set stmt location to
26212 e->goto_locus even if gsi_bb (*incr_pos) contains only debug stmts.
26213 If not after and at *incr_pos is a debug stmt, set stmt location to
26214 location of next non-debug stmt after it if any.
26215
26216 PR debug/94283
26217 * tree-if-conv.c (ifcvt_local_dce): For gimple debug stmts, just set
26218 GF_PLF_2, but don't add them to worklist. Don't add an assigment to
26219 worklist or set GF_PLF_2 just because it is used in a debug stmt in
26220 another bb. Formatting improvements.
26221
26222 PR debug/94277
26223 * cgraphunit.c (check_global_declaration): For DECL_EXTERNAL and
26224 non-TREE_PUBLIC non-DECL_ARTIFICIAL FUNCTION_DECLs, set TREE_PUBLIC
26225 regardless of whether TREE_NO_WARNING is set on it or whether
26226 warn_unused_function is true or not.
26227
26228 2020-03-23 Jeff Law <law@redhat.com>
26229
26230 PR rtl-optimization/90275
26231 PR target/94238
26232 PR target/94144
26233 * simplify-rtx.c (comparison_code_valid_for_mode): New function.
26234 (simplify_logical_relational_operation): Use it.
26235
26236 2020-03-23 Jakub Jelinek <jakub@redhat.com>
26237
26238 PR c++/91993
26239 * tree.c (get_narrower): Handle COMPOUND_EXPR by recursing on
26240 ultimate rhs and if returned something different, reconstructing
26241 the COMPOUND_EXPRs.
26242
26243 2020-03-23 Lewis Hyatt <lhyatt@gmail.com>
26244
26245 * opts.c (print_filtered_help): Improve the help text for alias options.
26246
26247 2020-03-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
26248 Andre Vieira <andre.simoesdiasvieira@arm.com>
26249 Mihail Ionescu <mihail.ionescu@arm.com>
26250
26251 * config/arm/arm_mve.h (vshlcq_m_s8): Define macro.
26252 (vshlcq_m_u8): Likewise.
26253 (vshlcq_m_s16): Likewise.
26254 (vshlcq_m_u16): Likewise.
26255 (vshlcq_m_s32): Likewise.
26256 (vshlcq_m_u32): Likewise.
26257 (__arm_vshlcq_m_s8): Define intrinsic.
26258 (__arm_vshlcq_m_u8): Likewise.
26259 (__arm_vshlcq_m_s16): Likewise.
26260 (__arm_vshlcq_m_u16): Likewise.
26261 (__arm_vshlcq_m_s32): Likewise.
26262 (__arm_vshlcq_m_u32): Likewise.
26263 (vshlcq_m): Define polymorphic variant.
26264 * config/arm/arm_mve_builtins.def (QUADOP_NONE_NONE_UNONE_IMM_UNONE):
26265 Use builtin qualifier.
26266 (QUADOP_UNONE_UNONE_UNONE_IMM_UNONE): Likewise.
26267 * config/arm/mve.md (mve_vshlcq_m_vec_<supf><mode>): Define RTL pattern.
26268 (mve_vshlcq_m_carry_<supf><mode>): Likewise.
26269 (mve_vshlcq_m_<supf><mode>): Likewise.
26270
26271 2020-03-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
26272
26273 * config/arm/arm-builtins.c (LSLL_QUALIFIERS): Define builtin qualifier.
26274 (UQSHL_QUALIFIERS): Likewise.
26275 (ASRL_QUALIFIERS): Likewise.
26276 (SQSHL_QUALIFIERS): Likewise.
26277 * config/arm/arm_mve.h (__ARM_BIG_ENDIAN): Check to not support MVE in
26278 Big-Endian Mode.
26279 (sqrshr): Define macro.
26280 (sqrshrl): Likewise.
26281 (sqrshrl_sat48): Likewise.
26282 (sqshl): Likewise.
26283 (sqshll): Likewise.
26284 (srshr): Likewise.
26285 (srshrl): Likewise.
26286 (uqrshl): Likewise.
26287 (uqrshll): Likewise.
26288 (uqrshll_sat48): Likewise.
26289 (uqshl): Likewise.
26290 (uqshll): Likewise.
26291 (urshr): Likewise.
26292 (urshrl): Likewise.
26293 (lsll): Likewise.
26294 (asrl): Likewise.
26295 (__arm_lsll): Define intrinsic.
26296 (__arm_asrl): Likewise.
26297 (__arm_uqrshll): Likewise.
26298 (__arm_uqrshll_sat48): Likewise.
26299 (__arm_sqrshrl): Likewise.
26300 (__arm_sqrshrl_sat48): Likewise.
26301 (__arm_uqshll): Likewise.
26302 (__arm_urshrl): Likewise.
26303 (__arm_srshrl): Likewise.
26304 (__arm_sqshll): Likewise.
26305 (__arm_uqrshl): Likewise.
26306 (__arm_sqrshr): Likewise.
26307 (__arm_uqshl): Likewise.
26308 (__arm_urshr): Likewise.
26309 (__arm_sqshl): Likewise.
26310 (__arm_srshr): Likewise.
26311 * config/arm/arm_mve_builtins.def (LSLL_QUALIFIERS): Use builtin
26312 qualifier.
26313 (UQSHL_QUALIFIERS): Likewise.
26314 (ASRL_QUALIFIERS): Likewise.
26315 (SQSHL_QUALIFIERS): Likewise.
26316 * config/arm/mve.md (mve_uqrshll_sat<supf>_di): Define RTL pattern.
26317 (mve_sqrshrl_sat<supf>_di): Likewise.
26318 (mve_uqrshl_si): Likewise.
26319 (mve_sqrshr_si): Likewise.
26320 (mve_uqshll_di): Likewise.
26321 (mve_urshrl_di): Likewise.
26322 (mve_uqshl_si): Likewise.
26323 (mve_urshr_si): Likewise.
26324 (mve_sqshl_si): Likewise.
26325 (mve_srshr_si): Likewise.
26326 (mve_srshrl_di): Likewise.
26327 (mve_sqshll_di): Likewise.
26328
26329 2020-03-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
26330 Andre Vieira <andre.simoesdiasvieira@arm.com>
26331 Mihail Ionescu <mihail.ionescu@arm.com>
26332
26333 * config/arm/arm_mve.h (vsetq_lane_f16): Define macro.
26334 (vsetq_lane_f32): Likewise.
26335 (vsetq_lane_s16): Likewise.
26336 (vsetq_lane_s32): Likewise.
26337 (vsetq_lane_s8): Likewise.
26338 (vsetq_lane_s64): Likewise.
26339 (vsetq_lane_u8): Likewise.
26340 (vsetq_lane_u16): Likewise.
26341 (vsetq_lane_u32): Likewise.
26342 (vsetq_lane_u64): Likewise.
26343 (vgetq_lane_f16): Likewise.
26344 (vgetq_lane_f32): Likewise.
26345 (vgetq_lane_s16): Likewise.
26346 (vgetq_lane_s32): Likewise.
26347 (vgetq_lane_s8): Likewise.
26348 (vgetq_lane_s64): Likewise.
26349 (vgetq_lane_u8): Likewise.
26350 (vgetq_lane_u16): Likewise.
26351 (vgetq_lane_u32): Likewise.
26352 (vgetq_lane_u64): Likewise.
26353 (__ARM_NUM_LANES): Likewise.
26354 (__ARM_LANEQ): Likewise.
26355 (__ARM_CHECK_LANEQ): Likewise.
26356 (__arm_vsetq_lane_s16): Define intrinsic.
26357 (__arm_vsetq_lane_s32): Likewise.
26358 (__arm_vsetq_lane_s8): Likewise.
26359 (__arm_vsetq_lane_s64): Likewise.
26360 (__arm_vsetq_lane_u8): Likewise.
26361 (__arm_vsetq_lane_u16): Likewise.
26362 (__arm_vsetq_lane_u32): Likewise.
26363 (__arm_vsetq_lane_u64): Likewise.
26364 (__arm_vgetq_lane_s16): Likewise.
26365 (__arm_vgetq_lane_s32): Likewise.
26366 (__arm_vgetq_lane_s8): Likewise.
26367 (__arm_vgetq_lane_s64): Likewise.
26368 (__arm_vgetq_lane_u8): Likewise.
26369 (__arm_vgetq_lane_u16): Likewise.
26370 (__arm_vgetq_lane_u32): Likewise.
26371 (__arm_vgetq_lane_u64): Likewise.
26372 (__arm_vsetq_lane_f16): Likewise.
26373 (__arm_vsetq_lane_f32): Likewise.
26374 (__arm_vgetq_lane_f16): Likewise.
26375 (__arm_vgetq_lane_f32): Likewise.
26376 (vgetq_lane): Define polymorphic variant.
26377 (vsetq_lane): Likewise.
26378 * config/arm/mve.md (mve_vec_extract<mode><V_elem_l>): Define RTL
26379 pattern.
26380 (mve_vec_extractv2didi): Likewise.
26381 (mve_vec_extract_sext_internal<mode>): Likewise.
26382 (mve_vec_extract_zext_internal<mode>): Likewise.
26383 (mve_vec_set<mode>_internal): Likewise.
26384 (mve_vec_setv2di_internal): Likewise.
26385 * config/arm/neon.md (vec_set<mode>): Move RTL pattern to vec-common.md
26386 file.
26387 (vec_extract<mode><V_elem_l>): Rename to
26388 "neon_vec_extract<mode><V_elem_l>".
26389 (vec_extractv2didi): Rename to "neon_vec_extractv2didi".
26390 * config/arm/vec-common.md (vec_extract<mode><V_elem_l>): Define RTL
26391 pattern common for MVE and NEON.
26392 (vec_set<mode>): Move RTL pattern from neon.md and modify to accept both
26393 MVE and NEON.
26394
26395 2020-03-23 Andre Vieira <andre.simoesdiasvieira@arm.com>
26396
26397 * config/arm/mve.md (earlyclobber_32): New mode attribute.
26398 (mve_vrev64q_*, mve_vcaddq*, mve_vhcaddq_*, mve_vcmulq_*,
26399 mve_vmull[bt]q_*, mve_vqdmull[bt]q_*): Add appropriate early clobbers.
26400
26401 2020-03-23 Richard Biener <rguenther@suse.de>
26402
26403 PR tree-optimization/94261
26404 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove
26405 IL operand swapping code.
26406 (vect_slp_rearrange_stmts): Do not arrange isomorphic
26407 nodes that would need operation code adjustments.
26408
26409 2020-03-23 Tobias Burnus <tobias@codesourcery.com>
26410
26411 * doc/install.texi (amdgcn-*-amdhsa): Renamed
26412 from amdgcn-unknown-amdhsa; change
26413 amdgcn-unknown-amdhsa to amdgcn-amdhsa.
26414
26415 2020-03-23 Richard Biener <rguenther@suse.de>
26416
26417 PR ipa/94245
26418 * ipa-prop.c (ipa_read_jump_function): Build the ADDR_EXRP
26419 directly rather than also folding it via build_fold_addr_expr.
26420
26421 2020-03-23 Richard Biener <rguenther@suse.de>
26422
26423 PR tree-optimization/94266
26424 * tree-ssa-forwprop.c (pass_forwprop::execute): Do not propagate
26425 addresses of TARGET_MEM_REFs.
26426
26427 2020-03-23 Martin Liska <mliska@suse.cz>
26428
26429 PR ipa/94250
26430 * symtab.c (symtab_node::clone_references): Save speculative_id
26431 as ref may be overwritten by create_reference.
26432 (symtab_node::clone_referring): Likewise.
26433 (symtab_node::clone_reference): Likewise.
26434
26435 2020-03-22 Iain Sandoe <iain@sandoe.co.uk>
26436
26437 * config/i386/darwin.h (JUMP_TABLES_IN_TEXT_SECTION): Remove
26438 references to Darwin.
26439 * config/i386/i386.h (JUMP_TABLES_IN_TEXT_SECTION): Define this
26440 unconditionally and comment on why.
26441
26442 2020-03-21 Iain Sandoe <iain@sandoe.co.uk>
26443
26444 * config/darwin.c (darwin_mergeable_constant_section): Collect
26445 section anchor checks into the caller.
26446 (machopic_select_section): Collect section anchor checks into
26447 the determination of 'effective zero-size' objects. When the
26448 size is unknown, assume it is non-zero, and thus return the
26449 'generic' section for the DECL.
26450
26451 2020-03-21 Iain Sandoe <iain@sandoe.co.uk>
26452
26453 PR target/93694
26454 * config/darwin.opt: Amend options descriptions.
26455
26456 2020-03-21 Richard Sandiford <richard.sandiford@arm.com>
26457
26458 PR rtl-optimization/94052
26459 * lra-constraints.c (simplify_operand_subreg): Reload the inner
26460 register of a paradoxical subreg if simplify_subreg_regno fails
26461 to give a valid hard register for the outer mode.
26462
26463 2020-03-20 Martin Jambor <mjambor@suse.cz>
26464
26465 PR tree-optimization/93435
26466 * params.opt (sra-max-propagations): New parameter.
26467 * tree-sra.c (propagation_budget): New variable.
26468 (budget_for_propagation_access): New function.
26469 (propagate_subaccesses_from_rhs): Use it.
26470 (propagate_subaccesses_from_lhs): Likewise.
26471 (propagate_all_subaccesses): Set up and destroy propagation_budget.
26472
26473 2020-03-20 Carl Love <cel@us.ibm.com>
26474
26475 PR/target 87583
26476 * config/rs6000/rs6000.c (rs6000_option_override_internal):
26477 Add check for TARGET_FPRND for Power 7 or newer.
26478
26479 2020-03-20 Jan Hubicka <hubicka@ucw.cz>
26480
26481 PR ipa/93347
26482 * cgraph.c (symbol_table::create_edge): Update calls_comdat_local flag.
26483 (cgraph_edge::redirect_callee): Move here; likewise.
26484 (cgraph_node::remove_callees): Update calls_comdat_local flag.
26485 (cgraph_node::verify_node): Verify that calls_comdat_local flag match
26486 reality.
26487 (cgraph_node::check_calls_comdat_local_p): New member function.
26488 * cgraph.h (cgraph_node::check_calls_comdat_local_p): Declare.
26489 (cgraph_edge::redirect_callee): Move offline.
26490 * ipa-fnsummary.c (compute_fn_summary): Do not compute
26491 calls_comdat_local flag here.
26492 * ipa-inline-transform.c (inline_call): Fix updating of
26493 calls_comdat_local flag.
26494 * ipa-split.c (split_function): Use true instead of 1 to set the flag.
26495 * symtab.c (symtab_node::add_to_same_comdat_group): Update
26496 calls_comdat_local flag.
26497
26498 2020-03-20 Richard Biener <rguenther@suse.de>
26499
26500 * tree-vect-slp.c (vect_analyze_slp_instance): Dump SLP tree
26501 from the possibly modified root.
26502
26503 2020-03-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
26504 Andre Vieira <andre.simoesdiasvieira@arm.com>
26505 Mihail Ionescu <mihail.ionescu@arm.com>
26506
26507 * config/arm/arm_mve.h (vst1q_p_u8): Define macro.
26508 (vst1q_p_s8): Likewise.
26509 (vst2q_s8): Likewise.
26510 (vst2q_u8): Likewise.
26511 (vld1q_z_u8): Likewise.
26512 (vld1q_z_s8): Likewise.
26513 (vld2q_s8): Likewise.
26514 (vld2q_u8): Likewise.
26515 (vld4q_s8): Likewise.
26516 (vld4q_u8): Likewise.
26517 (vst1q_p_u16): Likewise.
26518 (vst1q_p_s16): Likewise.
26519 (vst2q_s16): Likewise.
26520 (vst2q_u16): Likewise.
26521 (vld1q_z_u16): Likewise.
26522 (vld1q_z_s16): Likewise.
26523 (vld2q_s16): Likewise.
26524 (vld2q_u16): Likewise.
26525 (vld4q_s16): Likewise.
26526 (vld4q_u16): Likewise.
26527 (vst1q_p_u32): Likewise.
26528 (vst1q_p_s32): Likewise.
26529 (vst2q_s32): Likewise.
26530 (vst2q_u32): Likewise.
26531 (vld1q_z_u32): Likewise.
26532 (vld1q_z_s32): Likewise.
26533 (vld2q_s32): Likewise.
26534 (vld2q_u32): Likewise.
26535 (vld4q_s32): Likewise.
26536 (vld4q_u32): Likewise.
26537 (vld4q_f16): Likewise.
26538 (vld2q_f16): Likewise.
26539 (vld1q_z_f16): Likewise.
26540 (vst2q_f16): Likewise.
26541 (vst1q_p_f16): Likewise.
26542 (vld4q_f32): Likewise.
26543 (vld2q_f32): Likewise.
26544 (vld1q_z_f32): Likewise.
26545 (vst2q_f32): Likewise.
26546 (vst1q_p_f32): Likewise.
26547 (__arm_vst1q_p_u8): Define intrinsic.
26548 (__arm_vst1q_p_s8): Likewise.
26549 (__arm_vst2q_s8): Likewise.
26550 (__arm_vst2q_u8): Likewise.
26551 (__arm_vld1q_z_u8): Likewise.
26552 (__arm_vld1q_z_s8): Likewise.
26553 (__arm_vld2q_s8): Likewise.
26554 (__arm_vld2q_u8): Likewise.
26555 (__arm_vld4q_s8): Likewise.
26556 (__arm_vld4q_u8): Likewise.
26557 (__arm_vst1q_p_u16): Likewise.
26558 (__arm_vst1q_p_s16): Likewise.
26559 (__arm_vst2q_s16): Likewise.
26560 (__arm_vst2q_u16): Likewise.
26561 (__arm_vld1q_z_u16): Likewise.
26562 (__arm_vld1q_z_s16): Likewise.
26563 (__arm_vld2q_s16): Likewise.
26564 (__arm_vld2q_u16): Likewise.
26565 (__arm_vld4q_s16): Likewise.
26566 (__arm_vld4q_u16): Likewise.
26567 (__arm_vst1q_p_u32): Likewise.
26568 (__arm_vst1q_p_s32): Likewise.
26569 (__arm_vst2q_s32): Likewise.
26570 (__arm_vst2q_u32): Likewise.
26571 (__arm_vld1q_z_u32): Likewise.
26572 (__arm_vld1q_z_s32): Likewise.
26573 (__arm_vld2q_s32): Likewise.
26574 (__arm_vld2q_u32): Likewise.
26575 (__arm_vld4q_s32): Likewise.
26576 (__arm_vld4q_u32): Likewise.
26577 (__arm_vld4q_f16): Likewise.
26578 (__arm_vld2q_f16): Likewise.
26579 (__arm_vld1q_z_f16): Likewise.
26580 (__arm_vst2q_f16): Likewise.
26581 (__arm_vst1q_p_f16): Likewise.
26582 (__arm_vld4q_f32): Likewise.
26583 (__arm_vld2q_f32): Likewise.
26584 (__arm_vld1q_z_f32): Likewise.
26585 (__arm_vst2q_f32): Likewise.
26586 (__arm_vst1q_p_f32): Likewise.
26587 (vld1q_z): Define polymorphic variant.
26588 (vld2q): Likewise.
26589 (vld4q): Likewise.
26590 (vst1q_p): Likewise.
26591 (vst2q): Likewise.
26592 * config/arm/arm_mve_builtins.def (STORE1): Use builtin qualifier.
26593 (LOAD1): Likewise.
26594 * config/arm/mve.md (mve_vst2q<mode>): Define RTL pattern.
26595 (mve_vld2q<mode>): Likewise.
26596 (mve_vld4q<mode>): Likewise.
26597
26598 2020-03-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
26599 Andre Vieira <andre.simoesdiasvieira@arm.com>
26600 Mihail Ionescu <mihail.ionescu@arm.com>
26601
26602 * config/arm/arm-builtins.c (ARM_BUILTIN_GET_FPSCR_NZCVQC): Define.
26603 (ARM_BUILTIN_SET_FPSCR_NZCVQC): Likewise.
26604 (arm_init_mve_builtins): Add "__builtin_arm_get_fpscr_nzcvqc" and
26605 "__builtin_arm_set_fpscr_nzcvqc" to arm_builtin_decls array.
26606 (arm_expand_builtin): Define case ARM_BUILTIN_GET_FPSCR_NZCVQC
26607 and ARM_BUILTIN_SET_FPSCR_NZCVQC.
26608 * config/arm/arm_mve.h (vadciq_s32): Define macro.
26609 (vadciq_u32): Likewise.
26610 (vadciq_m_s32): Likewise.
26611 (vadciq_m_u32): Likewise.
26612 (vadcq_s32): Likewise.
26613 (vadcq_u32): Likewise.
26614 (vadcq_m_s32): Likewise.
26615 (vadcq_m_u32): Likewise.
26616 (vsbciq_s32): Likewise.
26617 (vsbciq_u32): Likewise.
26618 (vsbciq_m_s32): Likewise.
26619 (vsbciq_m_u32): Likewise.
26620 (vsbcq_s32): Likewise.
26621 (vsbcq_u32): Likewise.
26622 (vsbcq_m_s32): Likewise.
26623 (vsbcq_m_u32): Likewise.
26624 (__arm_vadciq_s32): Define intrinsic.
26625 (__arm_vadciq_u32): Likewise.
26626 (__arm_vadciq_m_s32): Likewise.
26627 (__arm_vadciq_m_u32): Likewise.
26628 (__arm_vadcq_s32): Likewise.
26629 (__arm_vadcq_u32): Likewise.
26630 (__arm_vadcq_m_s32): Likewise.
26631 (__arm_vadcq_m_u32): Likewise.
26632 (__arm_vsbciq_s32): Likewise.
26633 (__arm_vsbciq_u32): Likewise.
26634 (__arm_vsbciq_m_s32): Likewise.
26635 (__arm_vsbciq_m_u32): Likewise.
26636 (__arm_vsbcq_s32): Likewise.
26637 (__arm_vsbcq_u32): Likewise.
26638 (__arm_vsbcq_m_s32): Likewise.
26639 (__arm_vsbcq_m_u32): Likewise.
26640 (vadciq_m): Define polymorphic variant.
26641 (vadciq): Likewise.
26642 (vadcq_m): Likewise.
26643 (vadcq): Likewise.
26644 (vsbciq_m): Likewise.
26645 (vsbciq): Likewise.
26646 (vsbcq_m): Likewise.
26647 (vsbcq): Likewise.
26648 * config/arm/arm_mve_builtins.def (BINOP_NONE_NONE_NONE): Use builtin
26649 qualifier.
26650 (BINOP_UNONE_UNONE_UNONE): Likewise.
26651 (QUADOP_NONE_NONE_NONE_NONE_UNONE): Likewise.
26652 (QUADOP_UNONE_UNONE_UNONE_UNONE_UNONE): Likewise.
26653 * config/arm/mve.md (VADCIQ): Define iterator.
26654 (VADCIQ_M): Likewise.
26655 (VSBCQ): Likewise.
26656 (VSBCQ_M): Likewise.
26657 (VSBCIQ): Likewise.
26658 (VSBCIQ_M): Likewise.
26659 (VADCQ): Likewise.
26660 (VADCQ_M): Likewise.
26661 (mve_vadciq_m_<supf>v4si): Define RTL pattern.
26662 (mve_vadciq_<supf>v4si): Likewise.
26663 (mve_vadcq_m_<supf>v4si): Likewise.
26664 (mve_vadcq_<supf>v4si): Likewise.
26665 (mve_vsbciq_m_<supf>v4si): Likewise.
26666 (mve_vsbciq_<supf>v4si): Likewise.
26667 (mve_vsbcq_m_<supf>v4si): Likewise.
26668 (mve_vsbcq_<supf>v4si): Likewise.
26669 (get_fpscr_nzcvqc): Define isns.
26670 (set_fpscr_nzcvqc): Define isns.
26671 * config/arm/unspecs.md (UNSPEC_GET_FPSCR_NZCVQC): Define.
26672 (UNSPEC_SET_FPSCR_NZCVQC): Define.
26673
26674 2020-03-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
26675
26676 * config/arm/arm_mve.h (vddupq_x_n_u8): Define macro.
26677 (vddupq_x_n_u16): Likewise.
26678 (vddupq_x_n_u32): Likewise.
26679 (vddupq_x_wb_u8): Likewise.
26680 (vddupq_x_wb_u16): Likewise.
26681 (vddupq_x_wb_u32): Likewise.
26682 (vdwdupq_x_n_u8): Likewise.
26683 (vdwdupq_x_n_u16): Likewise.
26684 (vdwdupq_x_n_u32): Likewise.
26685 (vdwdupq_x_wb_u8): Likewise.
26686 (vdwdupq_x_wb_u16): Likewise.
26687 (vdwdupq_x_wb_u32): Likewise.
26688 (vidupq_x_n_u8): Likewise.
26689 (vidupq_x_n_u16): Likewise.
26690 (vidupq_x_n_u32): Likewise.
26691 (vidupq_x_wb_u8): Likewise.
26692 (vidupq_x_wb_u16): Likewise.
26693 (vidupq_x_wb_u32): Likewise.
26694 (viwdupq_x_n_u8): Likewise.
26695 (viwdupq_x_n_u16): Likewise.
26696 (viwdupq_x_n_u32): Likewise.
26697 (viwdupq_x_wb_u8): Likewise.
26698 (viwdupq_x_wb_u16): Likewise.
26699 (viwdupq_x_wb_u32): Likewise.
26700 (vdupq_x_n_s8): Likewise.
26701 (vdupq_x_n_s16): Likewise.
26702 (vdupq_x_n_s32): Likewise.
26703 (vdupq_x_n_u8): Likewise.
26704 (vdupq_x_n_u16): Likewise.
26705 (vdupq_x_n_u32): Likewise.
26706 (vminq_x_s8): Likewise.
26707 (vminq_x_s16): Likewise.
26708 (vminq_x_s32): Likewise.
26709 (vminq_x_u8): Likewise.
26710 (vminq_x_u16): Likewise.
26711 (vminq_x_u32): Likewise.
26712 (vmaxq_x_s8): Likewise.
26713 (vmaxq_x_s16): Likewise.
26714 (vmaxq_x_s32): Likewise.
26715 (vmaxq_x_u8): Likewise.
26716 (vmaxq_x_u16): Likewise.
26717 (vmaxq_x_u32): Likewise.
26718 (vabdq_x_s8): Likewise.
26719 (vabdq_x_s16): Likewise.
26720 (vabdq_x_s32): Likewise.
26721 (vabdq_x_u8): Likewise.
26722 (vabdq_x_u16): Likewise.
26723 (vabdq_x_u32): Likewise.
26724 (vabsq_x_s8): Likewise.
26725 (vabsq_x_s16): Likewise.
26726 (vabsq_x_s32): Likewise.
26727 (vaddq_x_s8): Likewise.
26728 (vaddq_x_s16): Likewise.
26729 (vaddq_x_s32): Likewise.
26730 (vaddq_x_n_s8): Likewise.
26731 (vaddq_x_n_s16): Likewise.
26732 (vaddq_x_n_s32): Likewise.
26733 (vaddq_x_u8): Likewise.
26734 (vaddq_x_u16): Likewise.
26735 (vaddq_x_u32): Likewise.
26736 (vaddq_x_n_u8): Likewise.
26737 (vaddq_x_n_u16): Likewise.
26738 (vaddq_x_n_u32): Likewise.
26739 (vclsq_x_s8): Likewise.
26740 (vclsq_x_s16): Likewise.
26741 (vclsq_x_s32): Likewise.
26742 (vclzq_x_s8): Likewise.
26743 (vclzq_x_s16): Likewise.
26744 (vclzq_x_s32): Likewise.
26745 (vclzq_x_u8): Likewise.
26746 (vclzq_x_u16): Likewise.
26747 (vclzq_x_u32): Likewise.
26748 (vnegq_x_s8): Likewise.
26749 (vnegq_x_s16): Likewise.
26750 (vnegq_x_s32): Likewise.
26751 (vmulhq_x_s8): Likewise.
26752 (vmulhq_x_s16): Likewise.
26753 (vmulhq_x_s32): Likewise.
26754 (vmulhq_x_u8): Likewise.
26755 (vmulhq_x_u16): Likewise.
26756 (vmulhq_x_u32): Likewise.
26757 (vmullbq_poly_x_p8): Likewise.
26758 (vmullbq_poly_x_p16): Likewise.
26759 (vmullbq_int_x_s8): Likewise.
26760 (vmullbq_int_x_s16): Likewise.
26761 (vmullbq_int_x_s32): Likewise.
26762 (vmullbq_int_x_u8): Likewise.
26763 (vmullbq_int_x_u16): Likewise.
26764 (vmullbq_int_x_u32): Likewise.
26765 (vmulltq_poly_x_p8): Likewise.
26766 (vmulltq_poly_x_p16): Likewise.
26767 (vmulltq_int_x_s8): Likewise.
26768 (vmulltq_int_x_s16): Likewise.
26769 (vmulltq_int_x_s32): Likewise.
26770 (vmulltq_int_x_u8): Likewise.
26771 (vmulltq_int_x_u16): Likewise.
26772 (vmulltq_int_x_u32): Likewise.
26773 (vmulq_x_s8): Likewise.
26774 (vmulq_x_s16): Likewise.
26775 (vmulq_x_s32): Likewise.
26776 (vmulq_x_n_s8): Likewise.
26777 (vmulq_x_n_s16): Likewise.
26778 (vmulq_x_n_s32): Likewise.
26779 (vmulq_x_u8): Likewise.
26780 (vmulq_x_u16): Likewise.
26781 (vmulq_x_u32): Likewise.
26782 (vmulq_x_n_u8): Likewise.
26783 (vmulq_x_n_u16): Likewise.
26784 (vmulq_x_n_u32): Likewise.
26785 (vsubq_x_s8): Likewise.
26786 (vsubq_x_s16): Likewise.
26787 (vsubq_x_s32): Likewise.
26788 (vsubq_x_n_s8): Likewise.
26789 (vsubq_x_n_s16): Likewise.
26790 (vsubq_x_n_s32): Likewise.
26791 (vsubq_x_u8): Likewise.
26792 (vsubq_x_u16): Likewise.
26793 (vsubq_x_u32): Likewise.
26794 (vsubq_x_n_u8): Likewise.
26795 (vsubq_x_n_u16): Likewise.
26796 (vsubq_x_n_u32): Likewise.
26797 (vcaddq_rot90_x_s8): Likewise.
26798 (vcaddq_rot90_x_s16): Likewise.
26799 (vcaddq_rot90_x_s32): Likewise.
26800 (vcaddq_rot90_x_u8): Likewise.
26801 (vcaddq_rot90_x_u16): Likewise.
26802 (vcaddq_rot90_x_u32): Likewise.
26803 (vcaddq_rot270_x_s8): Likewise.
26804 (vcaddq_rot270_x_s16): Likewise.
26805 (vcaddq_rot270_x_s32): Likewise.
26806 (vcaddq_rot270_x_u8): Likewise.
26807 (vcaddq_rot270_x_u16): Likewise.
26808 (vcaddq_rot270_x_u32): Likewise.
26809 (vhaddq_x_n_s8): Likewise.
26810 (vhaddq_x_n_s16): Likewise.
26811 (vhaddq_x_n_s32): Likewise.
26812 (vhaddq_x_n_u8): Likewise.
26813 (vhaddq_x_n_u16): Likewise.
26814 (vhaddq_x_n_u32): Likewise.
26815 (vhaddq_x_s8): Likewise.
26816 (vhaddq_x_s16): Likewise.
26817 (vhaddq_x_s32): Likewise.
26818 (vhaddq_x_u8): Likewise.
26819 (vhaddq_x_u16): Likewise.
26820 (vhaddq_x_u32): Likewise.
26821 (vhcaddq_rot90_x_s8): Likewise.
26822 (vhcaddq_rot90_x_s16): Likewise.
26823 (vhcaddq_rot90_x_s32): Likewise.
26824 (vhcaddq_rot270_x_s8): Likewise.
26825 (vhcaddq_rot270_x_s16): Likewise.
26826 (vhcaddq_rot270_x_s32): Likewise.
26827 (vhsubq_x_n_s8): Likewise.
26828 (vhsubq_x_n_s16): Likewise.
26829 (vhsubq_x_n_s32): Likewise.
26830 (vhsubq_x_n_u8): Likewise.
26831 (vhsubq_x_n_u16): Likewise.
26832 (vhsubq_x_n_u32): Likewise.
26833 (vhsubq_x_s8): Likewise.
26834 (vhsubq_x_s16): Likewise.
26835 (vhsubq_x_s32): Likewise.
26836 (vhsubq_x_u8): Likewise.
26837 (vhsubq_x_u16): Likewise.
26838 (vhsubq_x_u32): Likewise.
26839 (vrhaddq_x_s8): Likewise.
26840 (vrhaddq_x_s16): Likewise.
26841 (vrhaddq_x_s32): Likewise.
26842 (vrhaddq_x_u8): Likewise.
26843 (vrhaddq_x_u16): Likewise.
26844 (vrhaddq_x_u32): Likewise.
26845 (vrmulhq_x_s8): Likewise.
26846 (vrmulhq_x_s16): Likewise.
26847 (vrmulhq_x_s32): Likewise.
26848 (vrmulhq_x_u8): Likewise.
26849 (vrmulhq_x_u16): Likewise.
26850 (vrmulhq_x_u32): Likewise.
26851 (vandq_x_s8): Likewise.
26852 (vandq_x_s16): Likewise.
26853 (vandq_x_s32): Likewise.
26854 (vandq_x_u8): Likewise.
26855 (vandq_x_u16): Likewise.
26856 (vandq_x_u32): Likewise.
26857 (vbicq_x_s8): Likewise.
26858 (vbicq_x_s16): Likewise.
26859 (vbicq_x_s32): Likewise.
26860 (vbicq_x_u8): Likewise.
26861 (vbicq_x_u16): Likewise.
26862 (vbicq_x_u32): Likewise.
26863 (vbrsrq_x_n_s8): Likewise.
26864 (vbrsrq_x_n_s16): Likewise.
26865 (vbrsrq_x_n_s32): Likewise.
26866 (vbrsrq_x_n_u8): Likewise.
26867 (vbrsrq_x_n_u16): Likewise.
26868 (vbrsrq_x_n_u32): Likewise.
26869 (veorq_x_s8): Likewise.
26870 (veorq_x_s16): Likewise.
26871 (veorq_x_s32): Likewise.
26872 (veorq_x_u8): Likewise.
26873 (veorq_x_u16): Likewise.
26874 (veorq_x_u32): Likewise.
26875 (vmovlbq_x_s8): Likewise.
26876 (vmovlbq_x_s16): Likewise.
26877 (vmovlbq_x_u8): Likewise.
26878 (vmovlbq_x_u16): Likewise.
26879 (vmovltq_x_s8): Likewise.
26880 (vmovltq_x_s16): Likewise.
26881 (vmovltq_x_u8): Likewise.
26882 (vmovltq_x_u16): Likewise.
26883 (vmvnq_x_s8): Likewise.
26884 (vmvnq_x_s16): Likewise.
26885 (vmvnq_x_s32): Likewise.
26886 (vmvnq_x_u8): Likewise.
26887 (vmvnq_x_u16): Likewise.
26888 (vmvnq_x_u32): Likewise.
26889 (vmvnq_x_n_s16): Likewise.
26890 (vmvnq_x_n_s32): Likewise.
26891 (vmvnq_x_n_u16): Likewise.
26892 (vmvnq_x_n_u32): Likewise.
26893 (vornq_x_s8): Likewise.
26894 (vornq_x_s16): Likewise.
26895 (vornq_x_s32): Likewise.
26896 (vornq_x_u8): Likewise.
26897 (vornq_x_u16): Likewise.
26898 (vornq_x_u32): Likewise.
26899 (vorrq_x_s8): Likewise.
26900 (vorrq_x_s16): Likewise.
26901 (vorrq_x_s32): Likewise.
26902 (vorrq_x_u8): Likewise.
26903 (vorrq_x_u16): Likewise.
26904 (vorrq_x_u32): Likewise.
26905 (vrev16q_x_s8): Likewise.
26906 (vrev16q_x_u8): Likewise.
26907 (vrev32q_x_s8): Likewise.
26908 (vrev32q_x_s16): Likewise.
26909 (vrev32q_x_u8): Likewise.
26910 (vrev32q_x_u16): Likewise.
26911 (vrev64q_x_s8): Likewise.
26912 (vrev64q_x_s16): Likewise.
26913 (vrev64q_x_s32): Likewise.
26914 (vrev64q_x_u8): Likewise.
26915 (vrev64q_x_u16): Likewise.
26916 (vrev64q_x_u32): Likewise.
26917 (vrshlq_x_s8): Likewise.
26918 (vrshlq_x_s16): Likewise.
26919 (vrshlq_x_s32): Likewise.
26920 (vrshlq_x_u8): Likewise.
26921 (vrshlq_x_u16): Likewise.
26922 (vrshlq_x_u32): Likewise.
26923 (vshllbq_x_n_s8): Likewise.
26924 (vshllbq_x_n_s16): Likewise.
26925 (vshllbq_x_n_u8): Likewise.
26926 (vshllbq_x_n_u16): Likewise.
26927 (vshlltq_x_n_s8): Likewise.
26928 (vshlltq_x_n_s16): Likewise.
26929 (vshlltq_x_n_u8): Likewise.
26930 (vshlltq_x_n_u16): Likewise.
26931 (vshlq_x_s8): Likewise.
26932 (vshlq_x_s16): Likewise.
26933 (vshlq_x_s32): Likewise.
26934 (vshlq_x_u8): Likewise.
26935 (vshlq_x_u16): Likewise.
26936 (vshlq_x_u32): Likewise.
26937 (vshlq_x_n_s8): Likewise.
26938 (vshlq_x_n_s16): Likewise.
26939 (vshlq_x_n_s32): Likewise.
26940 (vshlq_x_n_u8): Likewise.
26941 (vshlq_x_n_u16): Likewise.
26942 (vshlq_x_n_u32): Likewise.
26943 (vrshrq_x_n_s8): Likewise.
26944 (vrshrq_x_n_s16): Likewise.
26945 (vrshrq_x_n_s32): Likewise.
26946 (vrshrq_x_n_u8): Likewise.
26947 (vrshrq_x_n_u16): Likewise.
26948 (vrshrq_x_n_u32): Likewise.
26949 (vshrq_x_n_s8): Likewise.
26950 (vshrq_x_n_s16): Likewise.
26951 (vshrq_x_n_s32): Likewise.
26952 (vshrq_x_n_u8): Likewise.
26953 (vshrq_x_n_u16): Likewise.
26954 (vshrq_x_n_u32): Likewise.
26955 (vdupq_x_n_f16): Likewise.
26956 (vdupq_x_n_f32): Likewise.
26957 (vminnmq_x_f16): Likewise.
26958 (vminnmq_x_f32): Likewise.
26959 (vmaxnmq_x_f16): Likewise.
26960 (vmaxnmq_x_f32): Likewise.
26961 (vabdq_x_f16): Likewise.
26962 (vabdq_x_f32): Likewise.
26963 (vabsq_x_f16): Likewise.
26964 (vabsq_x_f32): Likewise.
26965 (vaddq_x_f16): Likewise.
26966 (vaddq_x_f32): Likewise.
26967 (vaddq_x_n_f16): Likewise.
26968 (vaddq_x_n_f32): Likewise.
26969 (vnegq_x_f16): Likewise.
26970 (vnegq_x_f32): Likewise.
26971 (vmulq_x_f16): Likewise.
26972 (vmulq_x_f32): Likewise.
26973 (vmulq_x_n_f16): Likewise.
26974 (vmulq_x_n_f32): Likewise.
26975 (vsubq_x_f16): Likewise.
26976 (vsubq_x_f32): Likewise.
26977 (vsubq_x_n_f16): Likewise.
26978 (vsubq_x_n_f32): Likewise.
26979 (vcaddq_rot90_x_f16): Likewise.
26980 (vcaddq_rot90_x_f32): Likewise.
26981 (vcaddq_rot270_x_f16): Likewise.
26982 (vcaddq_rot270_x_f32): Likewise.
26983 (vcmulq_x_f16): Likewise.
26984 (vcmulq_x_f32): Likewise.
26985 (vcmulq_rot90_x_f16): Likewise.
26986 (vcmulq_rot90_x_f32): Likewise.
26987 (vcmulq_rot180_x_f16): Likewise.
26988 (vcmulq_rot180_x_f32): Likewise.
26989 (vcmulq_rot270_x_f16): Likewise.
26990 (vcmulq_rot270_x_f32): Likewise.
26991 (vcvtaq_x_s16_f16): Likewise.
26992 (vcvtaq_x_s32_f32): Likewise.
26993 (vcvtaq_x_u16_f16): Likewise.
26994 (vcvtaq_x_u32_f32): Likewise.
26995 (vcvtnq_x_s16_f16): Likewise.
26996 (vcvtnq_x_s32_f32): Likewise.
26997 (vcvtnq_x_u16_f16): Likewise.
26998 (vcvtnq_x_u32_f32): Likewise.
26999 (vcvtpq_x_s16_f16): Likewise.
27000 (vcvtpq_x_s32_f32): Likewise.
27001 (vcvtpq_x_u16_f16): Likewise.
27002 (vcvtpq_x_u32_f32): Likewise.
27003 (vcvtmq_x_s16_f16): Likewise.
27004 (vcvtmq_x_s32_f32): Likewise.
27005 (vcvtmq_x_u16_f16): Likewise.
27006 (vcvtmq_x_u32_f32): Likewise.
27007 (vcvtbq_x_f32_f16): Likewise.
27008 (vcvttq_x_f32_f16): Likewise.
27009 (vcvtq_x_f16_u16): Likewise.
27010 (vcvtq_x_f16_s16): Likewise.
27011 (vcvtq_x_f32_s32): Likewise.
27012 (vcvtq_x_f32_u32): Likewise.
27013 (vcvtq_x_n_f16_s16): Likewise.
27014 (vcvtq_x_n_f16_u16): Likewise.
27015 (vcvtq_x_n_f32_s32): Likewise.
27016 (vcvtq_x_n_f32_u32): Likewise.
27017 (vcvtq_x_s16_f16): Likewise.
27018 (vcvtq_x_s32_f32): Likewise.
27019 (vcvtq_x_u16_f16): Likewise.
27020 (vcvtq_x_u32_f32): Likewise.
27021 (vcvtq_x_n_s16_f16): Likewise.
27022 (vcvtq_x_n_s32_f32): Likewise.
27023 (vcvtq_x_n_u16_f16): Likewise.
27024 (vcvtq_x_n_u32_f32): Likewise.
27025 (vrndq_x_f16): Likewise.
27026 (vrndq_x_f32): Likewise.
27027 (vrndnq_x_f16): Likewise.
27028 (vrndnq_x_f32): Likewise.
27029 (vrndmq_x_f16): Likewise.
27030 (vrndmq_x_f32): Likewise.
27031 (vrndpq_x_f16): Likewise.
27032 (vrndpq_x_f32): Likewise.
27033 (vrndaq_x_f16): Likewise.
27034 (vrndaq_x_f32): Likewise.
27035 (vrndxq_x_f16): Likewise.
27036 (vrndxq_x_f32): Likewise.
27037 (vandq_x_f16): Likewise.
27038 (vandq_x_f32): Likewise.
27039 (vbicq_x_f16): Likewise.
27040 (vbicq_x_f32): Likewise.
27041 (vbrsrq_x_n_f16): Likewise.
27042 (vbrsrq_x_n_f32): Likewise.
27043 (veorq_x_f16): Likewise.
27044 (veorq_x_f32): Likewise.
27045 (vornq_x_f16): Likewise.
27046 (vornq_x_f32): Likewise.
27047 (vorrq_x_f16): Likewise.
27048 (vorrq_x_f32): Likewise.
27049 (vrev32q_x_f16): Likewise.
27050 (vrev64q_x_f16): Likewise.
27051 (vrev64q_x_f32): Likewise.
27052 (__arm_vddupq_x_n_u8): Define intrinsic.
27053 (__arm_vddupq_x_n_u16): Likewise.
27054 (__arm_vddupq_x_n_u32): Likewise.
27055 (__arm_vddupq_x_wb_u8): Likewise.
27056 (__arm_vddupq_x_wb_u16): Likewise.
27057 (__arm_vddupq_x_wb_u32): Likewise.
27058 (__arm_vdwdupq_x_n_u8): Likewise.
27059 (__arm_vdwdupq_x_n_u16): Likewise.
27060 (__arm_vdwdupq_x_n_u32): Likewise.
27061 (__arm_vdwdupq_x_wb_u8): Likewise.
27062 (__arm_vdwdupq_x_wb_u16): Likewise.
27063 (__arm_vdwdupq_x_wb_u32): Likewise.
27064 (__arm_vidupq_x_n_u8): Likewise.
27065 (__arm_vidupq_x_n_u16): Likewise.
27066 (__arm_vidupq_x_n_u32): Likewise.
27067 (__arm_vidupq_x_wb_u8): Likewise.
27068 (__arm_vidupq_x_wb_u16): Likewise.
27069 (__arm_vidupq_x_wb_u32): Likewise.
27070 (__arm_viwdupq_x_n_u8): Likewise.
27071 (__arm_viwdupq_x_n_u16): Likewise.
27072 (__arm_viwdupq_x_n_u32): Likewise.
27073 (__arm_viwdupq_x_wb_u8): Likewise.
27074 (__arm_viwdupq_x_wb_u16): Likewise.
27075 (__arm_viwdupq_x_wb_u32): Likewise.
27076 (__arm_vdupq_x_n_s8): Likewise.
27077 (__arm_vdupq_x_n_s16): Likewise.
27078 (__arm_vdupq_x_n_s32): Likewise.
27079 (__arm_vdupq_x_n_u8): Likewise.
27080 (__arm_vdupq_x_n_u16): Likewise.
27081 (__arm_vdupq_x_n_u32): Likewise.
27082 (__arm_vminq_x_s8): Likewise.
27083 (__arm_vminq_x_s16): Likewise.
27084 (__arm_vminq_x_s32): Likewise.
27085 (__arm_vminq_x_u8): Likewise.
27086 (__arm_vminq_x_u16): Likewise.
27087 (__arm_vminq_x_u32): Likewise.
27088 (__arm_vmaxq_x_s8): Likewise.
27089 (__arm_vmaxq_x_s16): Likewise.
27090 (__arm_vmaxq_x_s32): Likewise.
27091 (__arm_vmaxq_x_u8): Likewise.
27092 (__arm_vmaxq_x_u16): Likewise.
27093 (__arm_vmaxq_x_u32): Likewise.
27094 (__arm_vabdq_x_s8): Likewise.
27095 (__arm_vabdq_x_s16): Likewise.
27096 (__arm_vabdq_x_s32): Likewise.
27097 (__arm_vabdq_x_u8): Likewise.
27098 (__arm_vabdq_x_u16): Likewise.
27099 (__arm_vabdq_x_u32): Likewise.
27100 (__arm_vabsq_x_s8): Likewise.
27101 (__arm_vabsq_x_s16): Likewise.
27102 (__arm_vabsq_x_s32): Likewise.
27103 (__arm_vaddq_x_s8): Likewise.
27104 (__arm_vaddq_x_s16): Likewise.
27105 (__arm_vaddq_x_s32): Likewise.
27106 (__arm_vaddq_x_n_s8): Likewise.
27107 (__arm_vaddq_x_n_s16): Likewise.
27108 (__arm_vaddq_x_n_s32): Likewise.
27109 (__arm_vaddq_x_u8): Likewise.
27110 (__arm_vaddq_x_u16): Likewise.
27111 (__arm_vaddq_x_u32): Likewise.
27112 (__arm_vaddq_x_n_u8): Likewise.
27113 (__arm_vaddq_x_n_u16): Likewise.
27114 (__arm_vaddq_x_n_u32): Likewise.
27115 (__arm_vclsq_x_s8): Likewise.
27116 (__arm_vclsq_x_s16): Likewise.
27117 (__arm_vclsq_x_s32): Likewise.
27118 (__arm_vclzq_x_s8): Likewise.
27119 (__arm_vclzq_x_s16): Likewise.
27120 (__arm_vclzq_x_s32): Likewise.
27121 (__arm_vclzq_x_u8): Likewise.
27122 (__arm_vclzq_x_u16): Likewise.
27123 (__arm_vclzq_x_u32): Likewise.
27124 (__arm_vnegq_x_s8): Likewise.
27125 (__arm_vnegq_x_s16): Likewise.
27126 (__arm_vnegq_x_s32): Likewise.
27127 (__arm_vmulhq_x_s8): Likewise.
27128 (__arm_vmulhq_x_s16): Likewise.
27129 (__arm_vmulhq_x_s32): Likewise.
27130 (__arm_vmulhq_x_u8): Likewise.
27131 (__arm_vmulhq_x_u16): Likewise.
27132 (__arm_vmulhq_x_u32): Likewise.
27133 (__arm_vmullbq_poly_x_p8): Likewise.
27134 (__arm_vmullbq_poly_x_p16): Likewise.
27135 (__arm_vmullbq_int_x_s8): Likewise.
27136 (__arm_vmullbq_int_x_s16): Likewise.
27137 (__arm_vmullbq_int_x_s32): Likewise.
27138 (__arm_vmullbq_int_x_u8): Likewise.
27139 (__arm_vmullbq_int_x_u16): Likewise.
27140 (__arm_vmullbq_int_x_u32): Likewise.
27141 (__arm_vmulltq_poly_x_p8): Likewise.
27142 (__arm_vmulltq_poly_x_p16): Likewise.
27143 (__arm_vmulltq_int_x_s8): Likewise.
27144 (__arm_vmulltq_int_x_s16): Likewise.
27145 (__arm_vmulltq_int_x_s32): Likewise.
27146 (__arm_vmulltq_int_x_u8): Likewise.
27147 (__arm_vmulltq_int_x_u16): Likewise.
27148 (__arm_vmulltq_int_x_u32): Likewise.
27149 (__arm_vmulq_x_s8): Likewise.
27150 (__arm_vmulq_x_s16): Likewise.
27151 (__arm_vmulq_x_s32): Likewise.
27152 (__arm_vmulq_x_n_s8): Likewise.
27153 (__arm_vmulq_x_n_s16): Likewise.
27154 (__arm_vmulq_x_n_s32): Likewise.
27155 (__arm_vmulq_x_u8): Likewise.
27156 (__arm_vmulq_x_u16): Likewise.
27157 (__arm_vmulq_x_u32): Likewise.
27158 (__arm_vmulq_x_n_u8): Likewise.
27159 (__arm_vmulq_x_n_u16): Likewise.
27160 (__arm_vmulq_x_n_u32): Likewise.
27161 (__arm_vsubq_x_s8): Likewise.
27162 (__arm_vsubq_x_s16): Likewise.
27163 (__arm_vsubq_x_s32): Likewise.
27164 (__arm_vsubq_x_n_s8): Likewise.
27165 (__arm_vsubq_x_n_s16): Likewise.
27166 (__arm_vsubq_x_n_s32): Likewise.
27167 (__arm_vsubq_x_u8): Likewise.
27168 (__arm_vsubq_x_u16): Likewise.
27169 (__arm_vsubq_x_u32): Likewise.
27170 (__arm_vsubq_x_n_u8): Likewise.
27171 (__arm_vsubq_x_n_u16): Likewise.
27172 (__arm_vsubq_x_n_u32): Likewise.
27173 (__arm_vcaddq_rot90_x_s8): Likewise.
27174 (__arm_vcaddq_rot90_x_s16): Likewise.
27175 (__arm_vcaddq_rot90_x_s32): Likewise.
27176 (__arm_vcaddq_rot90_x_u8): Likewise.
27177 (__arm_vcaddq_rot90_x_u16): Likewise.
27178 (__arm_vcaddq_rot90_x_u32): Likewise.
27179 (__arm_vcaddq_rot270_x_s8): Likewise.
27180 (__arm_vcaddq_rot270_x_s16): Likewise.
27181 (__arm_vcaddq_rot270_x_s32): Likewise.
27182 (__arm_vcaddq_rot270_x_u8): Likewise.
27183 (__arm_vcaddq_rot270_x_u16): Likewise.
27184 (__arm_vcaddq_rot270_x_u32): Likewise.
27185 (__arm_vhaddq_x_n_s8): Likewise.
27186 (__arm_vhaddq_x_n_s16): Likewise.
27187 (__arm_vhaddq_x_n_s32): Likewise.
27188 (__arm_vhaddq_x_n_u8): Likewise.
27189 (__arm_vhaddq_x_n_u16): Likewise.
27190 (__arm_vhaddq_x_n_u32): Likewise.
27191 (__arm_vhaddq_x_s8): Likewise.
27192 (__arm_vhaddq_x_s16): Likewise.
27193 (__arm_vhaddq_x_s32): Likewise.
27194 (__arm_vhaddq_x_u8): Likewise.
27195 (__arm_vhaddq_x_u16): Likewise.
27196 (__arm_vhaddq_x_u32): Likewise.
27197 (__arm_vhcaddq_rot90_x_s8): Likewise.
27198 (__arm_vhcaddq_rot90_x_s16): Likewise.
27199 (__arm_vhcaddq_rot90_x_s32): Likewise.
27200 (__arm_vhcaddq_rot270_x_s8): Likewise.
27201 (__arm_vhcaddq_rot270_x_s16): Likewise.
27202 (__arm_vhcaddq_rot270_x_s32): Likewise.
27203 (__arm_vhsubq_x_n_s8): Likewise.
27204 (__arm_vhsubq_x_n_s16): Likewise.
27205 (__arm_vhsubq_x_n_s32): Likewise.
27206 (__arm_vhsubq_x_n_u8): Likewise.
27207 (__arm_vhsubq_x_n_u16): Likewise.
27208 (__arm_vhsubq_x_n_u32): Likewise.
27209 (__arm_vhsubq_x_s8): Likewise.
27210 (__arm_vhsubq_x_s16): Likewise.
27211 (__arm_vhsubq_x_s32): Likewise.
27212 (__arm_vhsubq_x_u8): Likewise.
27213 (__arm_vhsubq_x_u16): Likewise.
27214 (__arm_vhsubq_x_u32): Likewise.
27215 (__arm_vrhaddq_x_s8): Likewise.
27216 (__arm_vrhaddq_x_s16): Likewise.
27217 (__arm_vrhaddq_x_s32): Likewise.
27218 (__arm_vrhaddq_x_u8): Likewise.
27219 (__arm_vrhaddq_x_u16): Likewise.
27220 (__arm_vrhaddq_x_u32): Likewise.
27221 (__arm_vrmulhq_x_s8): Likewise.
27222 (__arm_vrmulhq_x_s16): Likewise.
27223 (__arm_vrmulhq_x_s32): Likewise.
27224 (__arm_vrmulhq_x_u8): Likewise.
27225 (__arm_vrmulhq_x_u16): Likewise.
27226 (__arm_vrmulhq_x_u32): Likewise.
27227 (__arm_vandq_x_s8): Likewise.
27228 (__arm_vandq_x_s16): Likewise.
27229 (__arm_vandq_x_s32): Likewise.
27230 (__arm_vandq_x_u8): Likewise.
27231 (__arm_vandq_x_u16): Likewise.
27232 (__arm_vandq_x_u32): Likewise.
27233 (__arm_vbicq_x_s8): Likewise.
27234 (__arm_vbicq_x_s16): Likewise.
27235 (__arm_vbicq_x_s32): Likewise.
27236 (__arm_vbicq_x_u8): Likewise.
27237 (__arm_vbicq_x_u16): Likewise.
27238 (__arm_vbicq_x_u32): Likewise.
27239 (__arm_vbrsrq_x_n_s8): Likewise.
27240 (__arm_vbrsrq_x_n_s16): Likewise.
27241 (__arm_vbrsrq_x_n_s32): Likewise.
27242 (__arm_vbrsrq_x_n_u8): Likewise.
27243 (__arm_vbrsrq_x_n_u16): Likewise.
27244 (__arm_vbrsrq_x_n_u32): Likewise.
27245 (__arm_veorq_x_s8): Likewise.
27246 (__arm_veorq_x_s16): Likewise.
27247 (__arm_veorq_x_s32): Likewise.
27248 (__arm_veorq_x_u8): Likewise.
27249 (__arm_veorq_x_u16): Likewise.
27250 (__arm_veorq_x_u32): Likewise.
27251 (__arm_vmovlbq_x_s8): Likewise.
27252 (__arm_vmovlbq_x_s16): Likewise.
27253 (__arm_vmovlbq_x_u8): Likewise.
27254 (__arm_vmovlbq_x_u16): Likewise.
27255 (__arm_vmovltq_x_s8): Likewise.
27256 (__arm_vmovltq_x_s16): Likewise.
27257 (__arm_vmovltq_x_u8): Likewise.
27258 (__arm_vmovltq_x_u16): Likewise.
27259 (__arm_vmvnq_x_s8): Likewise.
27260 (__arm_vmvnq_x_s16): Likewise.
27261 (__arm_vmvnq_x_s32): Likewise.
27262 (__arm_vmvnq_x_u8): Likewise.
27263 (__arm_vmvnq_x_u16): Likewise.
27264 (__arm_vmvnq_x_u32): Likewise.
27265 (__arm_vmvnq_x_n_s16): Likewise.
27266 (__arm_vmvnq_x_n_s32): Likewise.
27267 (__arm_vmvnq_x_n_u16): Likewise.
27268 (__arm_vmvnq_x_n_u32): Likewise.
27269 (__arm_vornq_x_s8): Likewise.
27270 (__arm_vornq_x_s16): Likewise.
27271 (__arm_vornq_x_s32): Likewise.
27272 (__arm_vornq_x_u8): Likewise.
27273 (__arm_vornq_x_u16): Likewise.
27274 (__arm_vornq_x_u32): Likewise.
27275 (__arm_vorrq_x_s8): Likewise.
27276 (__arm_vorrq_x_s16): Likewise.
27277 (__arm_vorrq_x_s32): Likewise.
27278 (__arm_vorrq_x_u8): Likewise.
27279 (__arm_vorrq_x_u16): Likewise.
27280 (__arm_vorrq_x_u32): Likewise.
27281 (__arm_vrev16q_x_s8): Likewise.
27282 (__arm_vrev16q_x_u8): Likewise.
27283 (__arm_vrev32q_x_s8): Likewise.
27284 (__arm_vrev32q_x_s16): Likewise.
27285 (__arm_vrev32q_x_u8): Likewise.
27286 (__arm_vrev32q_x_u16): Likewise.
27287 (__arm_vrev64q_x_s8): Likewise.
27288 (__arm_vrev64q_x_s16): Likewise.
27289 (__arm_vrev64q_x_s32): Likewise.
27290 (__arm_vrev64q_x_u8): Likewise.
27291 (__arm_vrev64q_x_u16): Likewise.
27292 (__arm_vrev64q_x_u32): Likewise.
27293 (__arm_vrshlq_x_s8): Likewise.
27294 (__arm_vrshlq_x_s16): Likewise.
27295 (__arm_vrshlq_x_s32): Likewise.
27296 (__arm_vrshlq_x_u8): Likewise.
27297 (__arm_vrshlq_x_u16): Likewise.
27298 (__arm_vrshlq_x_u32): Likewise.
27299 (__arm_vshllbq_x_n_s8): Likewise.
27300 (__arm_vshllbq_x_n_s16): Likewise.
27301 (__arm_vshllbq_x_n_u8): Likewise.
27302 (__arm_vshllbq_x_n_u16): Likewise.
27303 (__arm_vshlltq_x_n_s8): Likewise.
27304 (__arm_vshlltq_x_n_s16): Likewise.
27305 (__arm_vshlltq_x_n_u8): Likewise.
27306 (__arm_vshlltq_x_n_u16): Likewise.
27307 (__arm_vshlq_x_s8): Likewise.
27308 (__arm_vshlq_x_s16): Likewise.
27309 (__arm_vshlq_x_s32): Likewise.
27310 (__arm_vshlq_x_u8): Likewise.
27311 (__arm_vshlq_x_u16): Likewise.
27312 (__arm_vshlq_x_u32): Likewise.
27313 (__arm_vshlq_x_n_s8): Likewise.
27314 (__arm_vshlq_x_n_s16): Likewise.
27315 (__arm_vshlq_x_n_s32): Likewise.
27316 (__arm_vshlq_x_n_u8): Likewise.
27317 (__arm_vshlq_x_n_u16): Likewise.
27318 (__arm_vshlq_x_n_u32): Likewise.
27319 (__arm_vrshrq_x_n_s8): Likewise.
27320 (__arm_vrshrq_x_n_s16): Likewise.
27321 (__arm_vrshrq_x_n_s32): Likewise.
27322 (__arm_vrshrq_x_n_u8): Likewise.
27323 (__arm_vrshrq_x_n_u16): Likewise.
27324 (__arm_vrshrq_x_n_u32): Likewise.
27325 (__arm_vshrq_x_n_s8): Likewise.
27326 (__arm_vshrq_x_n_s16): Likewise.
27327 (__arm_vshrq_x_n_s32): Likewise.
27328 (__arm_vshrq_x_n_u8): Likewise.
27329 (__arm_vshrq_x_n_u16): Likewise.
27330 (__arm_vshrq_x_n_u32): Likewise.
27331 (__arm_vdupq_x_n_f16): Likewise.
27332 (__arm_vdupq_x_n_f32): Likewise.
27333 (__arm_vminnmq_x_f16): Likewise.
27334 (__arm_vminnmq_x_f32): Likewise.
27335 (__arm_vmaxnmq_x_f16): Likewise.
27336 (__arm_vmaxnmq_x_f32): Likewise.
27337 (__arm_vabdq_x_f16): Likewise.
27338 (__arm_vabdq_x_f32): Likewise.
27339 (__arm_vabsq_x_f16): Likewise.
27340 (__arm_vabsq_x_f32): Likewise.
27341 (__arm_vaddq_x_f16): Likewise.
27342 (__arm_vaddq_x_f32): Likewise.
27343 (__arm_vaddq_x_n_f16): Likewise.
27344 (__arm_vaddq_x_n_f32): Likewise.
27345 (__arm_vnegq_x_f16): Likewise.
27346 (__arm_vnegq_x_f32): Likewise.
27347 (__arm_vmulq_x_f16): Likewise.
27348 (__arm_vmulq_x_f32): Likewise.
27349 (__arm_vmulq_x_n_f16): Likewise.
27350 (__arm_vmulq_x_n_f32): Likewise.
27351 (__arm_vsubq_x_f16): Likewise.
27352 (__arm_vsubq_x_f32): Likewise.
27353 (__arm_vsubq_x_n_f16): Likewise.
27354 (__arm_vsubq_x_n_f32): Likewise.
27355 (__arm_vcaddq_rot90_x_f16): Likewise.
27356 (__arm_vcaddq_rot90_x_f32): Likewise.
27357 (__arm_vcaddq_rot270_x_f16): Likewise.
27358 (__arm_vcaddq_rot270_x_f32): Likewise.
27359 (__arm_vcmulq_x_f16): Likewise.
27360 (__arm_vcmulq_x_f32): Likewise.
27361 (__arm_vcmulq_rot90_x_f16): Likewise.
27362 (__arm_vcmulq_rot90_x_f32): Likewise.
27363 (__arm_vcmulq_rot180_x_f16): Likewise.
27364 (__arm_vcmulq_rot180_x_f32): Likewise.
27365 (__arm_vcmulq_rot270_x_f16): Likewise.
27366 (__arm_vcmulq_rot270_x_f32): Likewise.
27367 (__arm_vcvtaq_x_s16_f16): Likewise.
27368 (__arm_vcvtaq_x_s32_f32): Likewise.
27369 (__arm_vcvtaq_x_u16_f16): Likewise.
27370 (__arm_vcvtaq_x_u32_f32): Likewise.
27371 (__arm_vcvtnq_x_s16_f16): Likewise.
27372 (__arm_vcvtnq_x_s32_f32): Likewise.
27373 (__arm_vcvtnq_x_u16_f16): Likewise.
27374 (__arm_vcvtnq_x_u32_f32): Likewise.
27375 (__arm_vcvtpq_x_s16_f16): Likewise.
27376 (__arm_vcvtpq_x_s32_f32): Likewise.
27377 (__arm_vcvtpq_x_u16_f16): Likewise.
27378 (__arm_vcvtpq_x_u32_f32): Likewise.
27379 (__arm_vcvtmq_x_s16_f16): Likewise.
27380 (__arm_vcvtmq_x_s32_f32): Likewise.
27381 (__arm_vcvtmq_x_u16_f16): Likewise.
27382 (__arm_vcvtmq_x_u32_f32): Likewise.
27383 (__arm_vcvtbq_x_f32_f16): Likewise.
27384 (__arm_vcvttq_x_f32_f16): Likewise.
27385 (__arm_vcvtq_x_f16_u16): Likewise.
27386 (__arm_vcvtq_x_f16_s16): Likewise.
27387 (__arm_vcvtq_x_f32_s32): Likewise.
27388 (__arm_vcvtq_x_f32_u32): Likewise.
27389 (__arm_vcvtq_x_n_f16_s16): Likewise.
27390 (__arm_vcvtq_x_n_f16_u16): Likewise.
27391 (__arm_vcvtq_x_n_f32_s32): Likewise.
27392 (__arm_vcvtq_x_n_f32_u32): Likewise.
27393 (__arm_vcvtq_x_s16_f16): Likewise.
27394 (__arm_vcvtq_x_s32_f32): Likewise.
27395 (__arm_vcvtq_x_u16_f16): Likewise.
27396 (__arm_vcvtq_x_u32_f32): Likewise.
27397 (__arm_vcvtq_x_n_s16_f16): Likewise.
27398 (__arm_vcvtq_x_n_s32_f32): Likewise.
27399 (__arm_vcvtq_x_n_u16_f16): Likewise.
27400 (__arm_vcvtq_x_n_u32_f32): Likewise.
27401 (__arm_vrndq_x_f16): Likewise.
27402 (__arm_vrndq_x_f32): Likewise.
27403 (__arm_vrndnq_x_f16): Likewise.
27404 (__arm_vrndnq_x_f32): Likewise.
27405 (__arm_vrndmq_x_f16): Likewise.
27406 (__arm_vrndmq_x_f32): Likewise.
27407 (__arm_vrndpq_x_f16): Likewise.
27408 (__arm_vrndpq_x_f32): Likewise.
27409 (__arm_vrndaq_x_f16): Likewise.
27410 (__arm_vrndaq_x_f32): Likewise.
27411 (__arm_vrndxq_x_f16): Likewise.
27412 (__arm_vrndxq_x_f32): Likewise.
27413 (__arm_vandq_x_f16): Likewise.
27414 (__arm_vandq_x_f32): Likewise.
27415 (__arm_vbicq_x_f16): Likewise.
27416 (__arm_vbicq_x_f32): Likewise.
27417 (__arm_vbrsrq_x_n_f16): Likewise.
27418 (__arm_vbrsrq_x_n_f32): Likewise.
27419 (__arm_veorq_x_f16): Likewise.
27420 (__arm_veorq_x_f32): Likewise.
27421 (__arm_vornq_x_f16): Likewise.
27422 (__arm_vornq_x_f32): Likewise.
27423 (__arm_vorrq_x_f16): Likewise.
27424 (__arm_vorrq_x_f32): Likewise.
27425 (__arm_vrev32q_x_f16): Likewise.
27426 (__arm_vrev64q_x_f16): Likewise.
27427 (__arm_vrev64q_x_f32): Likewise.
27428 (vabdq_x): Define polymorphic variant.
27429 (vabsq_x): Likewise.
27430 (vaddq_x): Likewise.
27431 (vandq_x): Likewise.
27432 (vbicq_x): Likewise.
27433 (vbrsrq_x): Likewise.
27434 (vcaddq_rot270_x): Likewise.
27435 (vcaddq_rot90_x): Likewise.
27436 (vcmulq_rot180_x): Likewise.
27437 (vcmulq_rot270_x): Likewise.
27438 (vcmulq_x): Likewise.
27439 (vcvtq_x): Likewise.
27440 (vcvtq_x_n): Likewise.
27441 (vcvtnq_m): Likewise.
27442 (veorq_x): Likewise.
27443 (vmaxnmq_x): Likewise.
27444 (vminnmq_x): Likewise.
27445 (vmulq_x): Likewise.
27446 (vnegq_x): Likewise.
27447 (vornq_x): Likewise.
27448 (vorrq_x): Likewise.
27449 (vrev32q_x): Likewise.
27450 (vrev64q_x): Likewise.
27451 (vrndaq_x): Likewise.
27452 (vrndmq_x): Likewise.
27453 (vrndnq_x): Likewise.
27454 (vrndpq_x): Likewise.
27455 (vrndq_x): Likewise.
27456 (vrndxq_x): Likewise.
27457 (vsubq_x): Likewise.
27458 (vcmulq_rot90_x): Likewise.
27459 (vadciq): Likewise.
27460 (vclsq_x): Likewise.
27461 (vclzq_x): Likewise.
27462 (vhaddq_x): Likewise.
27463 (vhcaddq_rot270_x): Likewise.
27464 (vhcaddq_rot90_x): Likewise.
27465 (vhsubq_x): Likewise.
27466 (vmaxq_x): Likewise.
27467 (vminq_x): Likewise.
27468 (vmovlbq_x): Likewise.
27469 (vmovltq_x): Likewise.
27470 (vmulhq_x): Likewise.
27471 (vmullbq_int_x): Likewise.
27472 (vmullbq_poly_x): Likewise.
27473 (vmulltq_int_x): Likewise.
27474 (vmulltq_poly_x): Likewise.
27475 (vmvnq_x): Likewise.
27476 (vrev16q_x): Likewise.
27477 (vrhaddq_x): Likewise.
27478 (vrmulhq_x): Likewise.
27479 (vrshlq_x): Likewise.
27480 (vrshrq_x): Likewise.
27481 (vshllbq_x): Likewise.
27482 (vshlltq_x): Likewise.
27483 (vshlq_x_n): Likewise.
27484 (vshlq_x): Likewise.
27485 (vdwdupq_x_u8): Likewise.
27486 (vdwdupq_x_u16): Likewise.
27487 (vdwdupq_x_u32): Likewise.
27488 (viwdupq_x_u8): Likewise.
27489 (viwdupq_x_u16): Likewise.
27490 (viwdupq_x_u32): Likewise.
27491 (vidupq_x_u8): Likewise.
27492 (vddupq_x_u8): Likewise.
27493 (vidupq_x_u16): Likewise.
27494 (vddupq_x_u16): Likewise.
27495 (vidupq_x_u32): Likewise.
27496 (vddupq_x_u32): Likewise.
27497 (vshrq_x): Likewise.
27498
27499 2020-03-20 Richard Biener <rguenther@suse.de>
27500
27501 * tree-vect-slp.c (vect_analyze_slp_instance): Push the stmts
27502 to vectorize for CTOR defs.
27503
27504 2020-03-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
27505 Andre Vieira <andre.simoesdiasvieira@arm.com>
27506 Mihail Ionescu <mihail.ionescu@arm.com>
27507
27508 * config/arm/arm-builtins.c (LDRGBWBS_QUALIFIERS): Define builtin
27509 qualifier.
27510 (LDRGBWBU_QUALIFIERS): Likewise.
27511 (LDRGBWBS_Z_QUALIFIERS): Likewise.
27512 (LDRGBWBU_Z_QUALIFIERS): Likewise.
27513 (STRSBWBS_QUALIFIERS): Likewise.
27514 (STRSBWBU_QUALIFIERS): Likewise.
27515 (STRSBWBS_P_QUALIFIERS): Likewise.
27516 (STRSBWBU_P_QUALIFIERS): Likewise.
27517 * config/arm/arm_mve.h (vldrdq_gather_base_wb_s64): Define macro.
27518 (vldrdq_gather_base_wb_u64): Likewise.
27519 (vldrdq_gather_base_wb_z_s64): Likewise.
27520 (vldrdq_gather_base_wb_z_u64): Likewise.
27521 (vldrwq_gather_base_wb_f32): Likewise.
27522 (vldrwq_gather_base_wb_s32): Likewise.
27523 (vldrwq_gather_base_wb_u32): Likewise.
27524 (vldrwq_gather_base_wb_z_f32): Likewise.
27525 (vldrwq_gather_base_wb_z_s32): Likewise.
27526 (vldrwq_gather_base_wb_z_u32): Likewise.
27527 (vstrdq_scatter_base_wb_p_s64): Likewise.
27528 (vstrdq_scatter_base_wb_p_u64): Likewise.
27529 (vstrdq_scatter_base_wb_s64): Likewise.
27530 (vstrdq_scatter_base_wb_u64): Likewise.
27531 (vstrwq_scatter_base_wb_p_s32): Likewise.
27532 (vstrwq_scatter_base_wb_p_f32): Likewise.
27533 (vstrwq_scatter_base_wb_p_u32): Likewise.
27534 (vstrwq_scatter_base_wb_s32): Likewise.
27535 (vstrwq_scatter_base_wb_u32): Likewise.
27536 (vstrwq_scatter_base_wb_f32): Likewise.
27537 (__arm_vldrdq_gather_base_wb_s64): Define intrinsic.
27538 (__arm_vldrdq_gather_base_wb_u64): Likewise.
27539 (__arm_vldrdq_gather_base_wb_z_s64): Likewise.
27540 (__arm_vldrdq_gather_base_wb_z_u64): Likewise.
27541 (__arm_vldrwq_gather_base_wb_s32): Likewise.
27542 (__arm_vldrwq_gather_base_wb_u32): Likewise.
27543 (__arm_vldrwq_gather_base_wb_z_s32): Likewise.
27544 (__arm_vldrwq_gather_base_wb_z_u32): Likewise.
27545 (__arm_vstrdq_scatter_base_wb_s64): Likewise.
27546 (__arm_vstrdq_scatter_base_wb_u64): Likewise.
27547 (__arm_vstrdq_scatter_base_wb_p_s64): Likewise.
27548 (__arm_vstrdq_scatter_base_wb_p_u64): Likewise.
27549 (__arm_vstrwq_scatter_base_wb_p_s32): Likewise.
27550 (__arm_vstrwq_scatter_base_wb_p_u32): Likewise.
27551 (__arm_vstrwq_scatter_base_wb_s32): Likewise.
27552 (__arm_vstrwq_scatter_base_wb_u32): Likewise.
27553 (__arm_vldrwq_gather_base_wb_f32): Likewise.
27554 (__arm_vldrwq_gather_base_wb_z_f32): Likewise.
27555 (__arm_vstrwq_scatter_base_wb_f32): Likewise.
27556 (__arm_vstrwq_scatter_base_wb_p_f32): Likewise.
27557 (vstrwq_scatter_base_wb): Define polymorphic variant.
27558 (vstrwq_scatter_base_wb_p): Likewise.
27559 (vstrdq_scatter_base_wb_p): Likewise.
27560 (vstrdq_scatter_base_wb): Likewise.
27561 * config/arm/arm_mve_builtins.def (LDRGBWBS_QUALIFIERS): Use builtin
27562 qualifier.
27563 * config/arm/mve.md (mve_vstrwq_scatter_base_wb_<supf>v4si): Define RTL
27564 pattern.
27565 (mve_vstrwq_scatter_base_wb_add_<supf>v4si): Likewise.
27566 (mve_vstrwq_scatter_base_wb_<supf>v4si_insn): Likewise.
27567 (mve_vstrwq_scatter_base_wb_p_<supf>v4si): Likewise.
27568 (mve_vstrwq_scatter_base_wb_p_add_<supf>v4si): Likewise.
27569 (mve_vstrwq_scatter_base_wb_p_<supf>v4si_insn): Likewise.
27570 (mve_vstrwq_scatter_base_wb_fv4sf): Likewise.
27571 (mve_vstrwq_scatter_base_wb_add_fv4sf): Likewise.
27572 (mve_vstrwq_scatter_base_wb_fv4sf_insn): Likewise.
27573 (mve_vstrwq_scatter_base_wb_p_fv4sf): Likewise.
27574 (mve_vstrwq_scatter_base_wb_p_add_fv4sf): Likewise.
27575 (mve_vstrwq_scatter_base_wb_p_fv4sf_insn): Likewise.
27576 (mve_vstrdq_scatter_base_wb_<supf>v2di): Likewise.
27577 (mve_vstrdq_scatter_base_wb_add_<supf>v2di): Likewise.
27578 (mve_vstrdq_scatter_base_wb_<supf>v2di_insn): Likewise.
27579 (mve_vstrdq_scatter_base_wb_p_<supf>v2di): Likewise.
27580 (mve_vstrdq_scatter_base_wb_p_add_<supf>v2di): Likewise.
27581 (mve_vstrdq_scatter_base_wb_p_<supf>v2di_insn): Likewise.
27582 (mve_vldrwq_gather_base_wb_<supf>v4si): Likewise.
27583 (mve_vldrwq_gather_base_wb_<supf>v4si_insn): Likewise.
27584 (mve_vldrwq_gather_base_wb_z_<supf>v4si): Likewise.
27585 (mve_vldrwq_gather_base_wb_z_<supf>v4si_insn): Likewise.
27586 (mve_vldrwq_gather_base_wb_fv4sf): Likewise.
27587 (mve_vldrwq_gather_base_wb_fv4sf_insn): Likewise.
27588 (mve_vldrwq_gather_base_wb_z_fv4sf): Likewise.
27589 (mve_vldrwq_gather_base_wb_z_fv4sf_insn): Likewise.
27590 (mve_vldrdq_gather_base_wb_<supf>v2di): Likewise.
27591 (mve_vldrdq_gather_base_wb_<supf>v2di_insn): Likewise.
27592 (mve_vldrdq_gather_base_wb_z_<supf>v2di): Likewise.
27593 (mve_vldrdq_gather_base_wb_z_<supf>v2di_insn): Likewise.
27594
27595 2020-03-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
27596 Andre Vieira <andre.simoesdiasvieira@arm.com>
27597 Mihail Ionescu <mihail.ionescu@arm.com>
27598
27599 * config/arm/arm-builtins.c
27600 (QUINOP_UNONE_UNONE_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Define quinary
27601 builtin qualifier.
27602 * config/arm/arm_mve.h (vddupq_m_n_u8): Define macro.
27603 (vddupq_m_n_u32): Likewise.
27604 (vddupq_m_n_u16): Likewise.
27605 (vddupq_m_wb_u8): Likewise.
27606 (vddupq_m_wb_u16): Likewise.
27607 (vddupq_m_wb_u32): Likewise.
27608 (vddupq_n_u8): Likewise.
27609 (vddupq_n_u32): Likewise.
27610 (vddupq_n_u16): Likewise.
27611 (vddupq_wb_u8): Likewise.
27612 (vddupq_wb_u16): Likewise.
27613 (vddupq_wb_u32): Likewise.
27614 (vdwdupq_m_n_u8): Likewise.
27615 (vdwdupq_m_n_u32): Likewise.
27616 (vdwdupq_m_n_u16): Likewise.
27617 (vdwdupq_m_wb_u8): Likewise.
27618 (vdwdupq_m_wb_u32): Likewise.
27619 (vdwdupq_m_wb_u16): Likewise.
27620 (vdwdupq_n_u8): Likewise.
27621 (vdwdupq_n_u32): Likewise.
27622 (vdwdupq_n_u16): Likewise.
27623 (vdwdupq_wb_u8): Likewise.
27624 (vdwdupq_wb_u32): Likewise.
27625 (vdwdupq_wb_u16): Likewise.
27626 (vidupq_m_n_u8): Likewise.
27627 (vidupq_m_n_u32): Likewise.
27628 (vidupq_m_n_u16): Likewise.
27629 (vidupq_m_wb_u8): Likewise.
27630 (vidupq_m_wb_u16): Likewise.
27631 (vidupq_m_wb_u32): Likewise.
27632 (vidupq_n_u8): Likewise.
27633 (vidupq_n_u32): Likewise.
27634 (vidupq_n_u16): Likewise.
27635 (vidupq_wb_u8): Likewise.
27636 (vidupq_wb_u16): Likewise.
27637 (vidupq_wb_u32): Likewise.
27638 (viwdupq_m_n_u8): Likewise.
27639 (viwdupq_m_n_u32): Likewise.
27640 (viwdupq_m_n_u16): Likewise.
27641 (viwdupq_m_wb_u8): Likewise.
27642 (viwdupq_m_wb_u32): Likewise.
27643 (viwdupq_m_wb_u16): Likewise.
27644 (viwdupq_n_u8): Likewise.
27645 (viwdupq_n_u32): Likewise.
27646 (viwdupq_n_u16): Likewise.
27647 (viwdupq_wb_u8): Likewise.
27648 (viwdupq_wb_u32): Likewise.
27649 (viwdupq_wb_u16): Likewise.
27650 (__arm_vddupq_m_n_u8): Define intrinsic.
27651 (__arm_vddupq_m_n_u32): Likewise.
27652 (__arm_vddupq_m_n_u16): Likewise.
27653 (__arm_vddupq_m_wb_u8): Likewise.
27654 (__arm_vddupq_m_wb_u16): Likewise.
27655 (__arm_vddupq_m_wb_u32): Likewise.
27656 (__arm_vddupq_n_u8): Likewise.
27657 (__arm_vddupq_n_u32): Likewise.
27658 (__arm_vddupq_n_u16): Likewise.
27659 (__arm_vdwdupq_m_n_u8): Likewise.
27660 (__arm_vdwdupq_m_n_u32): Likewise.
27661 (__arm_vdwdupq_m_n_u16): Likewise.
27662 (__arm_vdwdupq_m_wb_u8): Likewise.
27663 (__arm_vdwdupq_m_wb_u32): Likewise.
27664 (__arm_vdwdupq_m_wb_u16): Likewise.
27665 (__arm_vdwdupq_n_u8): Likewise.
27666 (__arm_vdwdupq_n_u32): Likewise.
27667 (__arm_vdwdupq_n_u16): Likewise.
27668 (__arm_vdwdupq_wb_u8): Likewise.
27669 (__arm_vdwdupq_wb_u32): Likewise.
27670 (__arm_vdwdupq_wb_u16): Likewise.
27671 (__arm_vidupq_m_n_u8): Likewise.
27672 (__arm_vidupq_m_n_u32): Likewise.
27673 (__arm_vidupq_m_n_u16): Likewise.
27674 (__arm_vidupq_n_u8): Likewise.
27675 (__arm_vidupq_m_wb_u8): Likewise.
27676 (__arm_vidupq_m_wb_u16): Likewise.
27677 (__arm_vidupq_m_wb_u32): Likewise.
27678 (__arm_vidupq_n_u32): Likewise.
27679 (__arm_vidupq_n_u16): Likewise.
27680 (__arm_vidupq_wb_u8): Likewise.
27681 (__arm_vidupq_wb_u16): Likewise.
27682 (__arm_vidupq_wb_u32): Likewise.
27683 (__arm_vddupq_wb_u8): Likewise.
27684 (__arm_vddupq_wb_u16): Likewise.
27685 (__arm_vddupq_wb_u32): Likewise.
27686 (__arm_viwdupq_m_n_u8): Likewise.
27687 (__arm_viwdupq_m_n_u32): Likewise.
27688 (__arm_viwdupq_m_n_u16): Likewise.
27689 (__arm_viwdupq_m_wb_u8): Likewise.
27690 (__arm_viwdupq_m_wb_u32): Likewise.
27691 (__arm_viwdupq_m_wb_u16): Likewise.
27692 (__arm_viwdupq_n_u8): Likewise.
27693 (__arm_viwdupq_n_u32): Likewise.
27694 (__arm_viwdupq_n_u16): Likewise.
27695 (__arm_viwdupq_wb_u8): Likewise.
27696 (__arm_viwdupq_wb_u32): Likewise.
27697 (__arm_viwdupq_wb_u16): Likewise.
27698 (vidupq_m): Define polymorphic variant.
27699 (vddupq_m): Likewise.
27700 (vidupq_u16): Likewise.
27701 (vidupq_u32): Likewise.
27702 (vidupq_u8): Likewise.
27703 (vddupq_u16): Likewise.
27704 (vddupq_u32): Likewise.
27705 (vddupq_u8): Likewise.
27706 (viwdupq_m): Likewise.
27707 (viwdupq_u16): Likewise.
27708 (viwdupq_u32): Likewise.
27709 (viwdupq_u8): Likewise.
27710 (vdwdupq_m): Likewise.
27711 (vdwdupq_u16): Likewise.
27712 (vdwdupq_u32): Likewise.
27713 (vdwdupq_u8): Likewise.
27714 * config/arm/arm_mve_builtins.def
27715 (QUINOP_UNONE_UNONE_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Use builtin
27716 qualifier.
27717 * config/arm/mve.md (mve_vidupq_n_u<mode>): Define RTL pattern.
27718 (mve_vidupq_u<mode>_insn): Likewise.
27719 (mve_vidupq_m_n_u<mode>): Likewise.
27720 (mve_vidupq_m_wb_u<mode>_insn): Likewise.
27721 (mve_vddupq_n_u<mode>): Likewise.
27722 (mve_vddupq_u<mode>_insn): Likewise.
27723 (mve_vddupq_m_n_u<mode>): Likewise.
27724 (mve_vddupq_m_wb_u<mode>_insn): Likewise.
27725 (mve_vdwdupq_n_u<mode>): Likewise.
27726 (mve_vdwdupq_wb_u<mode>): Likewise.
27727 (mve_vdwdupq_wb_u<mode>_insn): Likewise.
27728 (mve_vdwdupq_m_n_u<mode>): Likewise.
27729 (mve_vdwdupq_m_wb_u<mode>): Likewise.
27730 (mve_vdwdupq_m_wb_u<mode>_insn): Likewise.
27731 (mve_viwdupq_n_u<mode>): Likewise.
27732 (mve_viwdupq_wb_u<mode>): Likewise.
27733 (mve_viwdupq_wb_u<mode>_insn): Likewise.
27734 (mve_viwdupq_m_n_u<mode>): Likewise.
27735 (mve_viwdupq_m_wb_u<mode>): Likewise.
27736 (mve_viwdupq_m_wb_u<mode>_insn): Likewise.
27737
27738 2020-03-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
27739
27740 * config/arm/arm_mve.h (vreinterpretq_s16_s32): Define macro.
27741 (vreinterpretq_s16_s64): Likewise.
27742 (vreinterpretq_s16_s8): Likewise.
27743 (vreinterpretq_s16_u16): Likewise.
27744 (vreinterpretq_s16_u32): Likewise.
27745 (vreinterpretq_s16_u64): Likewise.
27746 (vreinterpretq_s16_u8): Likewise.
27747 (vreinterpretq_s32_s16): Likewise.
27748 (vreinterpretq_s32_s64): Likewise.
27749 (vreinterpretq_s32_s8): Likewise.
27750 (vreinterpretq_s32_u16): Likewise.
27751 (vreinterpretq_s32_u32): Likewise.
27752 (vreinterpretq_s32_u64): Likewise.
27753 (vreinterpretq_s32_u8): Likewise.
27754 (vreinterpretq_s64_s16): Likewise.
27755 (vreinterpretq_s64_s32): Likewise.
27756 (vreinterpretq_s64_s8): Likewise.
27757 (vreinterpretq_s64_u16): Likewise.
27758 (vreinterpretq_s64_u32): Likewise.
27759 (vreinterpretq_s64_u64): Likewise.
27760 (vreinterpretq_s64_u8): Likewise.
27761 (vreinterpretq_s8_s16): Likewise.
27762 (vreinterpretq_s8_s32): Likewise.
27763 (vreinterpretq_s8_s64): Likewise.
27764 (vreinterpretq_s8_u16): Likewise.
27765 (vreinterpretq_s8_u32): Likewise.
27766 (vreinterpretq_s8_u64): Likewise.
27767 (vreinterpretq_s8_u8): Likewise.
27768 (vreinterpretq_u16_s16): Likewise.
27769 (vreinterpretq_u16_s32): Likewise.
27770 (vreinterpretq_u16_s64): Likewise.
27771 (vreinterpretq_u16_s8): Likewise.
27772 (vreinterpretq_u16_u32): Likewise.
27773 (vreinterpretq_u16_u64): Likewise.
27774 (vreinterpretq_u16_u8): Likewise.
27775 (vreinterpretq_u32_s16): Likewise.
27776 (vreinterpretq_u32_s32): Likewise.
27777 (vreinterpretq_u32_s64): Likewise.
27778 (vreinterpretq_u32_s8): Likewise.
27779 (vreinterpretq_u32_u16): Likewise.
27780 (vreinterpretq_u32_u64): Likewise.
27781 (vreinterpretq_u32_u8): Likewise.
27782 (vreinterpretq_u64_s16): Likewise.
27783 (vreinterpretq_u64_s32): Likewise.
27784 (vreinterpretq_u64_s64): Likewise.
27785 (vreinterpretq_u64_s8): Likewise.
27786 (vreinterpretq_u64_u16): Likewise.
27787 (vreinterpretq_u64_u32): Likewise.
27788 (vreinterpretq_u64_u8): Likewise.
27789 (vreinterpretq_u8_s16): Likewise.
27790 (vreinterpretq_u8_s32): Likewise.
27791 (vreinterpretq_u8_s64): Likewise.
27792 (vreinterpretq_u8_s8): Likewise.
27793 (vreinterpretq_u8_u16): Likewise.
27794 (vreinterpretq_u8_u32): Likewise.
27795 (vreinterpretq_u8_u64): Likewise.
27796 (vreinterpretq_s32_f16): Likewise.
27797 (vreinterpretq_s32_f32): Likewise.
27798 (vreinterpretq_u16_f16): Likewise.
27799 (vreinterpretq_u16_f32): Likewise.
27800 (vreinterpretq_u32_f16): Likewise.
27801 (vreinterpretq_u32_f32): Likewise.
27802 (vreinterpretq_u64_f16): Likewise.
27803 (vreinterpretq_u64_f32): Likewise.
27804 (vreinterpretq_u8_f16): Likewise.
27805 (vreinterpretq_u8_f32): Likewise.
27806 (vreinterpretq_f16_f32): Likewise.
27807 (vreinterpretq_f16_s16): Likewise.
27808 (vreinterpretq_f16_s32): Likewise.
27809 (vreinterpretq_f16_s64): Likewise.
27810 (vreinterpretq_f16_s8): Likewise.
27811 (vreinterpretq_f16_u16): Likewise.
27812 (vreinterpretq_f16_u32): Likewise.
27813 (vreinterpretq_f16_u64): Likewise.
27814 (vreinterpretq_f16_u8): Likewise.
27815 (vreinterpretq_f32_f16): Likewise.
27816 (vreinterpretq_f32_s16): Likewise.
27817 (vreinterpretq_f32_s32): Likewise.
27818 (vreinterpretq_f32_s64): Likewise.
27819 (vreinterpretq_f32_s8): Likewise.
27820 (vreinterpretq_f32_u16): Likewise.
27821 (vreinterpretq_f32_u32): Likewise.
27822 (vreinterpretq_f32_u64): Likewise.
27823 (vreinterpretq_f32_u8): Likewise.
27824 (vreinterpretq_s16_f16): Likewise.
27825 (vreinterpretq_s16_f32): Likewise.
27826 (vreinterpretq_s64_f16): Likewise.
27827 (vreinterpretq_s64_f32): Likewise.
27828 (vreinterpretq_s8_f16): Likewise.
27829 (vreinterpretq_s8_f32): Likewise.
27830 (vuninitializedq_u8): Likewise.
27831 (vuninitializedq_u16): Likewise.
27832 (vuninitializedq_u32): Likewise.
27833 (vuninitializedq_u64): Likewise.
27834 (vuninitializedq_s8): Likewise.
27835 (vuninitializedq_s16): Likewise.
27836 (vuninitializedq_s32): Likewise.
27837 (vuninitializedq_s64): Likewise.
27838 (vuninitializedq_f16): Likewise.
27839 (vuninitializedq_f32): Likewise.
27840 (__arm_vuninitializedq_u8): Define intrinsic.
27841 (__arm_vuninitializedq_u16): Likewise.
27842 (__arm_vuninitializedq_u32): Likewise.
27843 (__arm_vuninitializedq_u64): Likewise.
27844 (__arm_vuninitializedq_s8): Likewise.
27845 (__arm_vuninitializedq_s16): Likewise.
27846 (__arm_vuninitializedq_s32): Likewise.
27847 (__arm_vuninitializedq_s64): Likewise.
27848 (__arm_vreinterpretq_s16_s32): Likewise.
27849 (__arm_vreinterpretq_s16_s64): Likewise.
27850 (__arm_vreinterpretq_s16_s8): Likewise.
27851 (__arm_vreinterpretq_s16_u16): Likewise.
27852 (__arm_vreinterpretq_s16_u32): Likewise.
27853 (__arm_vreinterpretq_s16_u64): Likewise.
27854 (__arm_vreinterpretq_s16_u8): Likewise.
27855 (__arm_vreinterpretq_s32_s16): Likewise.
27856 (__arm_vreinterpretq_s32_s64): Likewise.
27857 (__arm_vreinterpretq_s32_s8): Likewise.
27858 (__arm_vreinterpretq_s32_u16): Likewise.
27859 (__arm_vreinterpretq_s32_u32): Likewise.
27860 (__arm_vreinterpretq_s32_u64): Likewise.
27861 (__arm_vreinterpretq_s32_u8): Likewise.
27862 (__arm_vreinterpretq_s64_s16): Likewise.
27863 (__arm_vreinterpretq_s64_s32): Likewise.
27864 (__arm_vreinterpretq_s64_s8): Likewise.
27865 (__arm_vreinterpretq_s64_u16): Likewise.
27866 (__arm_vreinterpretq_s64_u32): Likewise.
27867 (__arm_vreinterpretq_s64_u64): Likewise.
27868 (__arm_vreinterpretq_s64_u8): Likewise.
27869 (__arm_vreinterpretq_s8_s16): Likewise.
27870 (__arm_vreinterpretq_s8_s32): Likewise.
27871 (__arm_vreinterpretq_s8_s64): Likewise.
27872 (__arm_vreinterpretq_s8_u16): Likewise.
27873 (__arm_vreinterpretq_s8_u32): Likewise.
27874 (__arm_vreinterpretq_s8_u64): Likewise.
27875 (__arm_vreinterpretq_s8_u8): Likewise.
27876 (__arm_vreinterpretq_u16_s16): Likewise.
27877 (__arm_vreinterpretq_u16_s32): Likewise.
27878 (__arm_vreinterpretq_u16_s64): Likewise.
27879 (__arm_vreinterpretq_u16_s8): Likewise.
27880 (__arm_vreinterpretq_u16_u32): Likewise.
27881 (__arm_vreinterpretq_u16_u64): Likewise.
27882 (__arm_vreinterpretq_u16_u8): Likewise.
27883 (__arm_vreinterpretq_u32_s16): Likewise.
27884 (__arm_vreinterpretq_u32_s32): Likewise.
27885 (__arm_vreinterpretq_u32_s64): Likewise.
27886 (__arm_vreinterpretq_u32_s8): Likewise.
27887 (__arm_vreinterpretq_u32_u16): Likewise.
27888 (__arm_vreinterpretq_u32_u64): Likewise.
27889 (__arm_vreinterpretq_u32_u8): Likewise.
27890 (__arm_vreinterpretq_u64_s16): Likewise.
27891 (__arm_vreinterpretq_u64_s32): Likewise.
27892 (__arm_vreinterpretq_u64_s64): Likewise.
27893 (__arm_vreinterpretq_u64_s8): Likewise.
27894 (__arm_vreinterpretq_u64_u16): Likewise.
27895 (__arm_vreinterpretq_u64_u32): Likewise.
27896 (__arm_vreinterpretq_u64_u8): Likewise.
27897 (__arm_vreinterpretq_u8_s16): Likewise.
27898 (__arm_vreinterpretq_u8_s32): Likewise.
27899 (__arm_vreinterpretq_u8_s64): Likewise.
27900 (__arm_vreinterpretq_u8_s8): Likewise.
27901 (__arm_vreinterpretq_u8_u16): Likewise.
27902 (__arm_vreinterpretq_u8_u32): Likewise.
27903 (__arm_vreinterpretq_u8_u64): Likewise.
27904 (__arm_vuninitializedq_f16): Likewise.
27905 (__arm_vuninitializedq_f32): Likewise.
27906 (__arm_vreinterpretq_s32_f16): Likewise.
27907 (__arm_vreinterpretq_s32_f32): Likewise.
27908 (__arm_vreinterpretq_s16_f16): Likewise.
27909 (__arm_vreinterpretq_s16_f32): Likewise.
27910 (__arm_vreinterpretq_s64_f16): Likewise.
27911 (__arm_vreinterpretq_s64_f32): Likewise.
27912 (__arm_vreinterpretq_s8_f16): Likewise.
27913 (__arm_vreinterpretq_s8_f32): Likewise.
27914 (__arm_vreinterpretq_u16_f16): Likewise.
27915 (__arm_vreinterpretq_u16_f32): Likewise.
27916 (__arm_vreinterpretq_u32_f16): Likewise.
27917 (__arm_vreinterpretq_u32_f32): Likewise.
27918 (__arm_vreinterpretq_u64_f16): Likewise.
27919 (__arm_vreinterpretq_u64_f32): Likewise.
27920 (__arm_vreinterpretq_u8_f16): Likewise.
27921 (__arm_vreinterpretq_u8_f32): Likewise.
27922 (__arm_vreinterpretq_f16_f32): Likewise.
27923 (__arm_vreinterpretq_f16_s16): Likewise.
27924 (__arm_vreinterpretq_f16_s32): Likewise.
27925 (__arm_vreinterpretq_f16_s64): Likewise.
27926 (__arm_vreinterpretq_f16_s8): Likewise.
27927 (__arm_vreinterpretq_f16_u16): Likewise.
27928 (__arm_vreinterpretq_f16_u32): Likewise.
27929 (__arm_vreinterpretq_f16_u64): Likewise.
27930 (__arm_vreinterpretq_f16_u8): Likewise.
27931 (__arm_vreinterpretq_f32_f16): Likewise.
27932 (__arm_vreinterpretq_f32_s16): Likewise.
27933 (__arm_vreinterpretq_f32_s32): Likewise.
27934 (__arm_vreinterpretq_f32_s64): Likewise.
27935 (__arm_vreinterpretq_f32_s8): Likewise.
27936 (__arm_vreinterpretq_f32_u16): Likewise.
27937 (__arm_vreinterpretq_f32_u32): Likewise.
27938 (__arm_vreinterpretq_f32_u64): Likewise.
27939 (__arm_vreinterpretq_f32_u8): Likewise.
27940 (vuninitializedq): Define polymorphic variant.
27941 (vreinterpretq_f16): Likewise.
27942 (vreinterpretq_f32): Likewise.
27943 (vreinterpretq_s16): Likewise.
27944 (vreinterpretq_s32): Likewise.
27945 (vreinterpretq_s64): Likewise.
27946 (vreinterpretq_s8): Likewise.
27947 (vreinterpretq_u16): Likewise.
27948 (vreinterpretq_u32): Likewise.
27949 (vreinterpretq_u64): Likewise.
27950 (vreinterpretq_u8): Likewise.
27951
27952 2020-03-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
27953 Andre Vieira <andre.simoesdiasvieira@arm.com>
27954 Mihail Ionescu <mihail.ionescu@arm.com>
27955
27956 * config/arm/arm_mve.h (vaddq_s8): Define macro.
27957 (vaddq_s16): Likewise.
27958 (vaddq_s32): Likewise.
27959 (vaddq_u8): Likewise.
27960 (vaddq_u16): Likewise.
27961 (vaddq_u32): Likewise.
27962 (vaddq_f16): Likewise.
27963 (vaddq_f32): Likewise.
27964 (__arm_vaddq_s8): Define intrinsic.
27965 (__arm_vaddq_s16): Likewise.
27966 (__arm_vaddq_s32): Likewise.
27967 (__arm_vaddq_u8): Likewise.
27968 (__arm_vaddq_u16): Likewise.
27969 (__arm_vaddq_u32): Likewise.
27970 (__arm_vaddq_f16): Likewise.
27971 (__arm_vaddq_f32): Likewise.
27972 (vaddq): Define polymorphic variant.
27973 * config/arm/iterators.md (VNIM): Define mode iterator for common types
27974 Neon, IWMMXT and MVE.
27975 (VNINOTM): Likewise.
27976 * config/arm/mve.md (mve_vaddq<mode>): Define RTL pattern.
27977 (mve_vaddq_f<mode>): Define RTL pattern.
27978 * config/arm/neon.md (add<mode>3): Rename to addv4hf3 RTL pattern.
27979 (addv8hf3_neon): Define RTL pattern.
27980 * config/arm/vec-common.md (add<mode>3): Modify standard add RTL pattern
27981 to support MVE.
27982 (addv8hf3): Define standard RTL pattern for MVE and Neon.
27983 (add<mode>3): Modify existing standard add RTL pattern for Neon and IWMMXT.
27984
27985 2020-03-20 Martin Liska <mliska@suse.cz>
27986
27987 PR ipa/94232
27988 * ipa-cp.c (ipa_get_jf_ancestor_result): Use offset in bytes. Previously
27989 build_ref_for_offset function was used and it transforms off to bytes
27990 from bits.
27991
27992 2020-03-20 Richard Biener <rguenther@suse.de>
27993
27994 PR tree-optimization/94266
27995 * gimple-ssa-sprintf.c (get_origin_and_offset): Use the
27996 type of the underlying object to adjust for the containing
27997 field if available.
27998
27999 2020-03-20 Andre Vieira <andre.simoesdiasvieira@arm.com>
28000
28001 * config/arm/unspecs.md (UNSPEC_GET_FPSCR): Rename this to ...
28002 (VUNSPEC_GET_FPSCR): ... this, and move it to vunspec.
28003 * config/arm/vfp.md: (get_fpscr, set_fpscr): Revert to old patterns.
28004
28005 2020-03-20 Andre Vieira <andre.simoesdiasvieira@arm.com>
28006
28007 * config/arm/mve.md (mve_mov<mode>): Fix R->R case.
28008
28009 2020-03-20 Jakub Jelinek <jakub@redhat.com>
28010
28011 PR tree-optimization/94224
28012 * gimple-ssa-store-merging.c
28013 (imm_store_chain_info::coalesce_immediate): Don't consider overlapping
28014 or adjacent INTEGER_CST rhs_code stores as mergeable if they have
28015 different lp_nr.
28016
28017 2020-03-20 Andre Vieira <andre.simoesdiasvieira@arm.com>
28018
28019 * config/arm/arm.md (define_attr "conds"): Fix logic for neon and mve.
28020
28021 2020-03-19 Jan Hubicka <hubicka@ucw.cz>
28022
28023 PR ipa/94202
28024 * cgraph.c (cgraph_node::function_symbol): Fix availability computation.
28025 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
28026
28027 2020-03-19 Jan Hubicka <hubicka@ucw.cz>
28028
28029 PR ipa/92372
28030 * cgraphunit.c (process_function_and_variable_attributes): warn
28031 for flatten attribute on alias.
28032 * ipa-inline.c (ipa_inline): Do not ICE on flatten attribute on alias.
28033
28034 2020-03-19 Martin Liska <mliska@suse.cz>
28035
28036 * lto-section-in.c: Add ext_symtab.
28037 * lto-streamer-out.c (write_symbol_extension_info): New.
28038 (produce_symtab_extension): New.
28039 (produce_asm_for_decls): Stream also produce_symtab_extension.
28040 * lto-streamer.h (enum lto_section_type): New section.
28041
28042 2020-03-19 Jakub Jelinek <jakub@redhat.com>
28043
28044 PR tree-optimization/94211
28045 * tree-ssa-phiopt.c (value_replacement): Use estimate_num_insns_seq
28046 instead of estimate_num_insns for bb_seq (middle_bb). Rename
28047 emtpy_or_with_defined_p variable to empty_or_with_defined_p, adjust
28048 all uses.
28049
28050 2020-03-19 Richard Biener <rguenther@suse.de>
28051
28052 PR ipa/94217
28053 * ipa-cp.c (ipa_get_jf_ancestor_result): Avoid build_fold_addr_expr
28054 and build_ref_for_offset.
28055
28056 2020-03-19 Richard Biener <rguenther@suse.de>
28057
28058 PR middle-end/94216
28059 * fold-const.c (fold_binary_loc): Avoid using
28060 build_fold_addr_expr when we really want an ADDR_EXPR.
28061
28062 2020-03-18 Segher Boessenkool <segher@kernel.crashing.org>
28063
28064 * config/rs6000/constraints.md (wd, wf, wi, ws, ww): New undocumented
28065 aliases for "wa".
28066
28067 2020-03-12 Richard Sandiford <richard.sandiford@arm.com>
28068
28069 PR rtl-optimization/90275
28070 * cse.c (cse_insn): Delete no-op register moves too.
28071
28072 2020-03-18 Martin Sebor <msebor@redhat.com>
28073
28074 PR ipa/92799
28075 * cgraphunit.c (process_function_and_variable_attributes): Also
28076 complain about weakref function definitions and drop all effects
28077 of the attribute.
28078
28079 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
28080 Mihail Ionescu <mihail.ionescu@arm.com>
28081 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
28082
28083 * config/arm/arm_mve.h (vstrdq_scatter_base_p_s64): Define macro.
28084 (vstrdq_scatter_base_p_u64): Likewise.
28085 (vstrdq_scatter_base_s64): Likewise.
28086 (vstrdq_scatter_base_u64): Likewise.
28087 (vstrdq_scatter_offset_p_s64): Likewise.
28088 (vstrdq_scatter_offset_p_u64): Likewise.
28089 (vstrdq_scatter_offset_s64): Likewise.
28090 (vstrdq_scatter_offset_u64): Likewise.
28091 (vstrdq_scatter_shifted_offset_p_s64): Likewise.
28092 (vstrdq_scatter_shifted_offset_p_u64): Likewise.
28093 (vstrdq_scatter_shifted_offset_s64): Likewise.
28094 (vstrdq_scatter_shifted_offset_u64): Likewise.
28095 (vstrhq_scatter_offset_f16): Likewise.
28096 (vstrhq_scatter_offset_p_f16): Likewise.
28097 (vstrhq_scatter_shifted_offset_f16): Likewise.
28098 (vstrhq_scatter_shifted_offset_p_f16): Likewise.
28099 (vstrwq_scatter_base_f32): Likewise.
28100 (vstrwq_scatter_base_p_f32): Likewise.
28101 (vstrwq_scatter_offset_f32): Likewise.
28102 (vstrwq_scatter_offset_p_f32): Likewise.
28103 (vstrwq_scatter_offset_p_s32): Likewise.
28104 (vstrwq_scatter_offset_p_u32): Likewise.
28105 (vstrwq_scatter_offset_s32): Likewise.
28106 (vstrwq_scatter_offset_u32): Likewise.
28107 (vstrwq_scatter_shifted_offset_f32): Likewise.
28108 (vstrwq_scatter_shifted_offset_p_f32): Likewise.
28109 (vstrwq_scatter_shifted_offset_p_s32): Likewise.
28110 (vstrwq_scatter_shifted_offset_p_u32): Likewise.
28111 (vstrwq_scatter_shifted_offset_s32): Likewise.
28112 (vstrwq_scatter_shifted_offset_u32): Likewise.
28113 (__arm_vstrdq_scatter_base_p_s64): Define intrinsic.
28114 (__arm_vstrdq_scatter_base_p_u64): Likewise.
28115 (__arm_vstrdq_scatter_base_s64): Likewise.
28116 (__arm_vstrdq_scatter_base_u64): Likewise.
28117 (__arm_vstrdq_scatter_offset_p_s64): Likewise.
28118 (__arm_vstrdq_scatter_offset_p_u64): Likewise.
28119 (__arm_vstrdq_scatter_offset_s64): Likewise.
28120 (__arm_vstrdq_scatter_offset_u64): Likewise.
28121 (__arm_vstrdq_scatter_shifted_offset_p_s64): Likewise.
28122 (__arm_vstrdq_scatter_shifted_offset_p_u64): Likewise.
28123 (__arm_vstrdq_scatter_shifted_offset_s64): Likewise.
28124 (__arm_vstrdq_scatter_shifted_offset_u64): Likewise.
28125 (__arm_vstrwq_scatter_offset_p_s32): Likewise.
28126 (__arm_vstrwq_scatter_offset_p_u32): Likewise.
28127 (__arm_vstrwq_scatter_offset_s32): Likewise.
28128 (__arm_vstrwq_scatter_offset_u32): Likewise.
28129 (__arm_vstrwq_scatter_shifted_offset_p_s32): Likewise.
28130 (__arm_vstrwq_scatter_shifted_offset_p_u32): Likewise.
28131 (__arm_vstrwq_scatter_shifted_offset_s32): Likewise.
28132 (__arm_vstrwq_scatter_shifted_offset_u32): Likewise.
28133 (__arm_vstrhq_scatter_offset_f16): Likewise.
28134 (__arm_vstrhq_scatter_offset_p_f16): Likewise.
28135 (__arm_vstrhq_scatter_shifted_offset_f16): Likewise.
28136 (__arm_vstrhq_scatter_shifted_offset_p_f16): Likewise.
28137 (__arm_vstrwq_scatter_base_f32): Likewise.
28138 (__arm_vstrwq_scatter_base_p_f32): Likewise.
28139 (__arm_vstrwq_scatter_offset_f32): Likewise.
28140 (__arm_vstrwq_scatter_offset_p_f32): Likewise.
28141 (__arm_vstrwq_scatter_shifted_offset_f32): Likewise.
28142 (__arm_vstrwq_scatter_shifted_offset_p_f32): Likewise.
28143 (vstrhq_scatter_offset): Define polymorphic variant.
28144 (vstrhq_scatter_offset_p): Likewise.
28145 (vstrhq_scatter_shifted_offset): Likewise.
28146 (vstrhq_scatter_shifted_offset_p): Likewise.
28147 (vstrwq_scatter_base): Likewise.
28148 (vstrwq_scatter_base_p): Likewise.
28149 (vstrwq_scatter_offset): Likewise.
28150 (vstrwq_scatter_offset_p): Likewise.
28151 (vstrwq_scatter_shifted_offset): Likewise.
28152 (vstrwq_scatter_shifted_offset_p): Likewise.
28153 (vstrdq_scatter_base_p): Likewise.
28154 (vstrdq_scatter_base): Likewise.
28155 (vstrdq_scatter_offset_p): Likewise.
28156 (vstrdq_scatter_offset): Likewise.
28157 (vstrdq_scatter_shifted_offset_p): Likewise.
28158 (vstrdq_scatter_shifted_offset): Likewise.
28159 * config/arm/arm_mve_builtins.def (STRSBS): Use builtin qualifier.
28160 (STRSBS_P): Likewise.
28161 (STRSBU): Likewise.
28162 (STRSBU_P): Likewise.
28163 (STRSS): Likewise.
28164 (STRSS_P): Likewise.
28165 (STRSU): Likewise.
28166 (STRSU_P): Likewise.
28167 * config/arm/constraints.md (Ri): Define.
28168 * config/arm/mve.md (VSTRDSBQ): Define iterator.
28169 (VSTRDSOQ): Likewise.
28170 (VSTRDSSOQ): Likewise.
28171 (VSTRWSOQ): Likewise.
28172 (VSTRWSSOQ): Likewise.
28173 (mve_vstrdq_scatter_base_p_<supf>v2di): Define RTL pattern.
28174 (mve_vstrdq_scatter_base_<supf>v2di): Likewise.
28175 (mve_vstrdq_scatter_offset_p_<supf>v2di): Likewise.
28176 (mve_vstrdq_scatter_offset_<supf>v2di): Likewise.
28177 (mve_vstrdq_scatter_shifted_offset_p_<supf>v2di): Likewise.
28178 (mve_vstrdq_scatter_shifted_offset_<supf>v2di): Likewise.
28179 (mve_vstrhq_scatter_offset_fv8hf): Likewise.
28180 (mve_vstrhq_scatter_offset_p_fv8hf): Likewise.
28181 (mve_vstrhq_scatter_shifted_offset_fv8hf): Likewise.
28182 (mve_vstrhq_scatter_shifted_offset_p_fv8hf): Likewise.
28183 (mve_vstrwq_scatter_base_fv4sf): Likewise.
28184 (mve_vstrwq_scatter_base_p_fv4sf): Likewise.
28185 (mve_vstrwq_scatter_offset_fv4sf): Likewise.
28186 (mve_vstrwq_scatter_offset_p_fv4sf): Likewise.
28187 (mve_vstrwq_scatter_offset_p_<supf>v4si): Likewise.
28188 (mve_vstrwq_scatter_offset_<supf>v4si): Likewise.
28189 (mve_vstrwq_scatter_shifted_offset_fv4sf): Likewise.
28190 (mve_vstrwq_scatter_shifted_offset_p_fv4sf): Likewise.
28191 (mve_vstrwq_scatter_shifted_offset_p_<supf>v4si): Likewise.
28192 (mve_vstrwq_scatter_shifted_offset_<supf>v4si): Likewise.
28193 * config/arm/predicates.md (Ri): Define predicate to check immediate
28194 is the range +/-1016 and multiple of 8.
28195
28196 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
28197 Mihail Ionescu <mihail.ionescu@arm.com>
28198 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
28199
28200 * config/arm/arm_mve.h (vst1q_f32): Define macro.
28201 (vst1q_f16): Likewise.
28202 (vst1q_s8): Likewise.
28203 (vst1q_s32): Likewise.
28204 (vst1q_s16): Likewise.
28205 (vst1q_u8): Likewise.
28206 (vst1q_u32): Likewise.
28207 (vst1q_u16): Likewise.
28208 (vstrhq_f16): Likewise.
28209 (vstrhq_scatter_offset_s32): Likewise.
28210 (vstrhq_scatter_offset_s16): Likewise.
28211 (vstrhq_scatter_offset_u32): Likewise.
28212 (vstrhq_scatter_offset_u16): Likewise.
28213 (vstrhq_scatter_offset_p_s32): Likewise.
28214 (vstrhq_scatter_offset_p_s16): Likewise.
28215 (vstrhq_scatter_offset_p_u32): Likewise.
28216 (vstrhq_scatter_offset_p_u16): Likewise.
28217 (vstrhq_scatter_shifted_offset_s32): Likewise.
28218 (vstrhq_scatter_shifted_offset_s16): Likewise.
28219 (vstrhq_scatter_shifted_offset_u32): Likewise.
28220 (vstrhq_scatter_shifted_offset_u16): Likewise.
28221 (vstrhq_scatter_shifted_offset_p_s32): Likewise.
28222 (vstrhq_scatter_shifted_offset_p_s16): Likewise.
28223 (vstrhq_scatter_shifted_offset_p_u32): Likewise.
28224 (vstrhq_scatter_shifted_offset_p_u16): Likewise.
28225 (vstrhq_s32): Likewise.
28226 (vstrhq_s16): Likewise.
28227 (vstrhq_u32): Likewise.
28228 (vstrhq_u16): Likewise.
28229 (vstrhq_p_f16): Likewise.
28230 (vstrhq_p_s32): Likewise.
28231 (vstrhq_p_s16): Likewise.
28232 (vstrhq_p_u32): Likewise.
28233 (vstrhq_p_u16): Likewise.
28234 (vstrwq_f32): Likewise.
28235 (vstrwq_s32): Likewise.
28236 (vstrwq_u32): Likewise.
28237 (vstrwq_p_f32): Likewise.
28238 (vstrwq_p_s32): Likewise.
28239 (vstrwq_p_u32): Likewise.
28240 (__arm_vst1q_s8): Define intrinsic.
28241 (__arm_vst1q_s32): Likewise.
28242 (__arm_vst1q_s16): Likewise.
28243 (__arm_vst1q_u8): Likewise.
28244 (__arm_vst1q_u32): Likewise.
28245 (__arm_vst1q_u16): Likewise.
28246 (__arm_vstrhq_scatter_offset_s32): Likewise.
28247 (__arm_vstrhq_scatter_offset_s16): Likewise.
28248 (__arm_vstrhq_scatter_offset_u32): Likewise.
28249 (__arm_vstrhq_scatter_offset_u16): Likewise.
28250 (__arm_vstrhq_scatter_offset_p_s32): Likewise.
28251 (__arm_vstrhq_scatter_offset_p_s16): Likewise.
28252 (__arm_vstrhq_scatter_offset_p_u32): Likewise.
28253 (__arm_vstrhq_scatter_offset_p_u16): Likewise.
28254 (__arm_vstrhq_scatter_shifted_offset_s32): Likewise.
28255 (__arm_vstrhq_scatter_shifted_offset_s16): Likewise.
28256 (__arm_vstrhq_scatter_shifted_offset_u32): Likewise.
28257 (__arm_vstrhq_scatter_shifted_offset_u16): Likewise.
28258 (__arm_vstrhq_scatter_shifted_offset_p_s32): Likewise.
28259 (__arm_vstrhq_scatter_shifted_offset_p_s16): Likewise.
28260 (__arm_vstrhq_scatter_shifted_offset_p_u32): Likewise.
28261 (__arm_vstrhq_scatter_shifted_offset_p_u16): Likewise.
28262 (__arm_vstrhq_s32): Likewise.
28263 (__arm_vstrhq_s16): Likewise.
28264 (__arm_vstrhq_u32): Likewise.
28265 (__arm_vstrhq_u16): Likewise.
28266 (__arm_vstrhq_p_s32): Likewise.
28267 (__arm_vstrhq_p_s16): Likewise.
28268 (__arm_vstrhq_p_u32): Likewise.
28269 (__arm_vstrhq_p_u16): Likewise.
28270 (__arm_vstrwq_s32): Likewise.
28271 (__arm_vstrwq_u32): Likewise.
28272 (__arm_vstrwq_p_s32): Likewise.
28273 (__arm_vstrwq_p_u32): Likewise.
28274 (__arm_vstrwq_p_f32): Likewise.
28275 (__arm_vstrwq_f32): Likewise.
28276 (__arm_vst1q_f32): Likewise.
28277 (__arm_vst1q_f16): Likewise.
28278 (__arm_vstrhq_f16): Likewise.
28279 (__arm_vstrhq_p_f16): Likewise.
28280 (vst1q): Define polymorphic variant.
28281 (vstrhq): Likewise.
28282 (vstrhq_p): Likewise.
28283 (vstrhq_scatter_offset_p): Likewise.
28284 (vstrhq_scatter_offset): Likewise.
28285 (vstrhq_scatter_shifted_offset_p): Likewise.
28286 (vstrhq_scatter_shifted_offset): Likewise.
28287 (vstrwq_p): Likewise.
28288 (vstrwq): Likewise.
28289 * config/arm/arm_mve_builtins.def (STRS): Use builtin qualifier.
28290 (STRS_P): Likewise.
28291 (STRSS): Likewise.
28292 (STRSS_P): Likewise.
28293 (STRSU): Likewise.
28294 (STRSU_P): Likewise.
28295 (STRU): Likewise.
28296 (STRU_P): Likewise.
28297 * config/arm/mve.md (VST1Q): Define iterator.
28298 (VSTRHSOQ): Likewise.
28299 (VSTRHSSOQ): Likewise.
28300 (VSTRHQ): Likewise.
28301 (VSTRWQ): Likewise.
28302 (mve_vstrhq_fv8hf): Define RTL pattern.
28303 (mve_vstrhq_p_fv8hf): Likewise.
28304 (mve_vstrhq_p_<supf><mode>): Likewise.
28305 (mve_vstrhq_scatter_offset_p_<supf><mode>): Likewise.
28306 (mve_vstrhq_scatter_offset_<supf><mode>): Likewise.
28307 (mve_vstrhq_scatter_shifted_offset_p_<supf><mode>): Likewise.
28308 (mve_vstrhq_scatter_shifted_offset_<supf><mode>): Likewise.
28309 (mve_vstrhq_<supf><mode>): Likewise.
28310 (mve_vstrwq_fv4sf): Likewise.
28311 (mve_vstrwq_p_fv4sf): Likewise.
28312 (mve_vstrwq_p_<supf>v4si): Likewise.
28313 (mve_vstrwq_<supf>v4si): Likewise.
28314 (mve_vst1q_f<mode>): Define expand.
28315 (mve_vst1q_<supf><mode>): Likewise.
28316
28317 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
28318 Mihail Ionescu <mihail.ionescu@arm.com>
28319 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
28320
28321 * config/arm/arm_mve.h (vld1q_s8): Define macro.
28322 (vld1q_s32): Likewise.
28323 (vld1q_s16): Likewise.
28324 (vld1q_u8): Likewise.
28325 (vld1q_u32): Likewise.
28326 (vld1q_u16): Likewise.
28327 (vldrhq_gather_offset_s32): Likewise.
28328 (vldrhq_gather_offset_s16): Likewise.
28329 (vldrhq_gather_offset_u32): Likewise.
28330 (vldrhq_gather_offset_u16): Likewise.
28331 (vldrhq_gather_offset_z_s32): Likewise.
28332 (vldrhq_gather_offset_z_s16): Likewise.
28333 (vldrhq_gather_offset_z_u32): Likewise.
28334 (vldrhq_gather_offset_z_u16): Likewise.
28335 (vldrhq_gather_shifted_offset_s32): Likewise.
28336 (vldrhq_gather_shifted_offset_s16): Likewise.
28337 (vldrhq_gather_shifted_offset_u32): Likewise.
28338 (vldrhq_gather_shifted_offset_u16): Likewise.
28339 (vldrhq_gather_shifted_offset_z_s32): Likewise.
28340 (vldrhq_gather_shifted_offset_z_s16): Likewise.
28341 (vldrhq_gather_shifted_offset_z_u32): Likewise.
28342 (vldrhq_gather_shifted_offset_z_u16): Likewise.
28343 (vldrhq_s32): Likewise.
28344 (vldrhq_s16): Likewise.
28345 (vldrhq_u32): Likewise.
28346 (vldrhq_u16): Likewise.
28347 (vldrhq_z_s32): Likewise.
28348 (vldrhq_z_s16): Likewise.
28349 (vldrhq_z_u32): Likewise.
28350 (vldrhq_z_u16): Likewise.
28351 (vldrwq_s32): Likewise.
28352 (vldrwq_u32): Likewise.
28353 (vldrwq_z_s32): Likewise.
28354 (vldrwq_z_u32): Likewise.
28355 (vld1q_f32): Likewise.
28356 (vld1q_f16): Likewise.
28357 (vldrhq_f16): Likewise.
28358 (vldrhq_z_f16): Likewise.
28359 (vldrwq_f32): Likewise.
28360 (vldrwq_z_f32): Likewise.
28361 (__arm_vld1q_s8): Define intrinsic.
28362 (__arm_vld1q_s32): Likewise.
28363 (__arm_vld1q_s16): Likewise.
28364 (__arm_vld1q_u8): Likewise.
28365 (__arm_vld1q_u32): Likewise.
28366 (__arm_vld1q_u16): Likewise.
28367 (__arm_vldrhq_gather_offset_s32): Likewise.
28368 (__arm_vldrhq_gather_offset_s16): Likewise.
28369 (__arm_vldrhq_gather_offset_u32): Likewise.
28370 (__arm_vldrhq_gather_offset_u16): Likewise.
28371 (__arm_vldrhq_gather_offset_z_s32): Likewise.
28372 (__arm_vldrhq_gather_offset_z_s16): Likewise.
28373 (__arm_vldrhq_gather_offset_z_u32): Likewise.
28374 (__arm_vldrhq_gather_offset_z_u16): Likewise.
28375 (__arm_vldrhq_gather_shifted_offset_s32): Likewise.
28376 (__arm_vldrhq_gather_shifted_offset_s16): Likewise.
28377 (__arm_vldrhq_gather_shifted_offset_u32): Likewise.
28378 (__arm_vldrhq_gather_shifted_offset_u16): Likewise.
28379 (__arm_vldrhq_gather_shifted_offset_z_s32): Likewise.
28380 (__arm_vldrhq_gather_shifted_offset_z_s16): Likewise.
28381 (__arm_vldrhq_gather_shifted_offset_z_u32): Likewise.
28382 (__arm_vldrhq_gather_shifted_offset_z_u16): Likewise.
28383 (__arm_vldrhq_s32): Likewise.
28384 (__arm_vldrhq_s16): Likewise.
28385 (__arm_vldrhq_u32): Likewise.
28386 (__arm_vldrhq_u16): Likewise.
28387 (__arm_vldrhq_z_s32): Likewise.
28388 (__arm_vldrhq_z_s16): Likewise.
28389 (__arm_vldrhq_z_u32): Likewise.
28390 (__arm_vldrhq_z_u16): Likewise.
28391 (__arm_vldrwq_s32): Likewise.
28392 (__arm_vldrwq_u32): Likewise.
28393 (__arm_vldrwq_z_s32): Likewise.
28394 (__arm_vldrwq_z_u32): Likewise.
28395 (__arm_vld1q_f32): Likewise.
28396 (__arm_vld1q_f16): Likewise.
28397 (__arm_vldrwq_f32): Likewise.
28398 (__arm_vldrwq_z_f32): Likewise.
28399 (__arm_vldrhq_z_f16): Likewise.
28400 (__arm_vldrhq_f16): Likewise.
28401 (vld1q): Define polymorphic variant.
28402 (vldrhq_gather_offset): Likewise.
28403 (vldrhq_gather_offset_z): Likewise.
28404 (vldrhq_gather_shifted_offset): Likewise.
28405 (vldrhq_gather_shifted_offset_z): Likewise.
28406 * config/arm/arm_mve_builtins.def (LDRU): Use builtin qualifier.
28407 (LDRS): Likewise.
28408 (LDRU_Z): Likewise.
28409 (LDRS_Z): Likewise.
28410 (LDRGU_Z): Likewise.
28411 (LDRGU): Likewise.
28412 (LDRGS_Z): Likewise.
28413 (LDRGS): Likewise.
28414 * config/arm/mve.md (MVE_H_ELEM): Define mode iterator.
28415 (V_sz_elem1): Likewise.
28416 (VLD1Q): Define iterator.
28417 (VLDRHGOQ): Likewise.
28418 (VLDRHGSOQ): Likewise.
28419 (VLDRHQ): Likewise.
28420 (VLDRWQ): Likewise.
28421 (mve_vldrhq_fv8hf): Define RTL pattern.
28422 (mve_vldrhq_gather_offset_<supf><mode>): Likewise.
28423 (mve_vldrhq_gather_offset_z_<supf><mode>): Likewise.
28424 (mve_vldrhq_gather_shifted_offset_<supf><mode>): Likewise.
28425 (mve_vldrhq_gather_shifted_offset_z_<supf><mode>): Likewise.
28426 (mve_vldrhq_<supf><mode>): Likewise.
28427 (mve_vldrhq_z_fv8hf): Likewise.
28428 (mve_vldrhq_z_<supf><mode>): Likewise.
28429 (mve_vldrwq_fv4sf): Likewise.
28430 (mve_vldrwq_<supf>v4si): Likewise.
28431 (mve_vldrwq_z_fv4sf): Likewise.
28432 (mve_vldrwq_z_<supf>v4si): Likewise.
28433 (mve_vld1q_f<mode>): Define RTL expand pattern.
28434 (mve_vld1q_<supf><mode>): Likewise.
28435
28436 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
28437 Mihail Ionescu <mihail.ionescu@arm.com>
28438 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
28439
28440 * config/arm/arm_mve.h (vld1q_s8): Define macro.
28441 (vld1q_s32): Likewise.
28442 (vld1q_s16): Likewise.
28443 (vld1q_u8): Likewise.
28444 (vld1q_u32): Likewise.
28445 (vld1q_u16): Likewise.
28446 (vldrhq_gather_offset_s32): Likewise.
28447 (vldrhq_gather_offset_s16): Likewise.
28448 (vldrhq_gather_offset_u32): Likewise.
28449 (vldrhq_gather_offset_u16): Likewise.
28450 (vldrhq_gather_offset_z_s32): Likewise.
28451 (vldrhq_gather_offset_z_s16): Likewise.
28452 (vldrhq_gather_offset_z_u32): Likewise.
28453 (vldrhq_gather_offset_z_u16): Likewise.
28454 (vldrhq_gather_shifted_offset_s32): Likewise.
28455 (vldrhq_gather_shifted_offset_s16): Likewise.
28456 (vldrhq_gather_shifted_offset_u32): Likewise.
28457 (vldrhq_gather_shifted_offset_u16): Likewise.
28458 (vldrhq_gather_shifted_offset_z_s32): Likewise.
28459 (vldrhq_gather_shifted_offset_z_s16): Likewise.
28460 (vldrhq_gather_shifted_offset_z_u32): Likewise.
28461 (vldrhq_gather_shifted_offset_z_u16): Likewise.
28462 (vldrhq_s32): Likewise.
28463 (vldrhq_s16): Likewise.
28464 (vldrhq_u32): Likewise.
28465 (vldrhq_u16): Likewise.
28466 (vldrhq_z_s32): Likewise.
28467 (vldrhq_z_s16): Likewise.
28468 (vldrhq_z_u32): Likewise.
28469 (vldrhq_z_u16): Likewise.
28470 (vldrwq_s32): Likewise.
28471 (vldrwq_u32): Likewise.
28472 (vldrwq_z_s32): Likewise.
28473 (vldrwq_z_u32): Likewise.
28474 (vld1q_f32): Likewise.
28475 (vld1q_f16): Likewise.
28476 (vldrhq_f16): Likewise.
28477 (vldrhq_z_f16): Likewise.
28478 (vldrwq_f32): Likewise.
28479 (vldrwq_z_f32): Likewise.
28480 (__arm_vld1q_s8): Define intrinsic.
28481 (__arm_vld1q_s32): Likewise.
28482 (__arm_vld1q_s16): Likewise.
28483 (__arm_vld1q_u8): Likewise.
28484 (__arm_vld1q_u32): Likewise.
28485 (__arm_vld1q_u16): Likewise.
28486 (__arm_vldrhq_gather_offset_s32): Likewise.
28487 (__arm_vldrhq_gather_offset_s16): Likewise.
28488 (__arm_vldrhq_gather_offset_u32): Likewise.
28489 (__arm_vldrhq_gather_offset_u16): Likewise.
28490 (__arm_vldrhq_gather_offset_z_s32): Likewise.
28491 (__arm_vldrhq_gather_offset_z_s16): Likewise.
28492 (__arm_vldrhq_gather_offset_z_u32): Likewise.
28493 (__arm_vldrhq_gather_offset_z_u16): Likewise.
28494 (__arm_vldrhq_gather_shifted_offset_s32): Likewise.
28495 (__arm_vldrhq_gather_shifted_offset_s16): Likewise.
28496 (__arm_vldrhq_gather_shifted_offset_u32): Likewise.
28497 (__arm_vldrhq_gather_shifted_offset_u16): Likewise.
28498 (__arm_vldrhq_gather_shifted_offset_z_s32): Likewise.
28499 (__arm_vldrhq_gather_shifted_offset_z_s16): Likewise.
28500 (__arm_vldrhq_gather_shifted_offset_z_u32): Likewise.
28501 (__arm_vldrhq_gather_shifted_offset_z_u16): Likewise.
28502 (__arm_vldrhq_s32): Likewise.
28503 (__arm_vldrhq_s16): Likewise.
28504 (__arm_vldrhq_u32): Likewise.
28505 (__arm_vldrhq_u16): Likewise.
28506 (__arm_vldrhq_z_s32): Likewise.
28507 (__arm_vldrhq_z_s16): Likewise.
28508 (__arm_vldrhq_z_u32): Likewise.
28509 (__arm_vldrhq_z_u16): Likewise.
28510 (__arm_vldrwq_s32): Likewise.
28511 (__arm_vldrwq_u32): Likewise.
28512 (__arm_vldrwq_z_s32): Likewise.
28513 (__arm_vldrwq_z_u32): Likewise.
28514 (__arm_vld1q_f32): Likewise.
28515 (__arm_vld1q_f16): Likewise.
28516 (__arm_vldrwq_f32): Likewise.
28517 (__arm_vldrwq_z_f32): Likewise.
28518 (__arm_vldrhq_z_f16): Likewise.
28519 (__arm_vldrhq_f16): Likewise.
28520 (vld1q): Define polymorphic variant.
28521 (vldrhq_gather_offset): Likewise.
28522 (vldrhq_gather_offset_z): Likewise.
28523 (vldrhq_gather_shifted_offset): Likewise.
28524 (vldrhq_gather_shifted_offset_z): Likewise.
28525 * config/arm/arm_mve_builtins.def (LDRU): Use builtin qualifier.
28526 (LDRS): Likewise.
28527 (LDRU_Z): Likewise.
28528 (LDRS_Z): Likewise.
28529 (LDRGU_Z): Likewise.
28530 (LDRGU): Likewise.
28531 (LDRGS_Z): Likewise.
28532 (LDRGS): Likewise.
28533 * config/arm/mve.md (MVE_H_ELEM): Define mode iterator.
28534 (V_sz_elem1): Likewise.
28535 (VLD1Q): Define iterator.
28536 (VLDRHGOQ): Likewise.
28537 (VLDRHGSOQ): Likewise.
28538 (VLDRHQ): Likewise.
28539 (VLDRWQ): Likewise.
28540 (mve_vldrhq_fv8hf): Define RTL pattern.
28541 (mve_vldrhq_gather_offset_<supf><mode>): Likewise.
28542 (mve_vldrhq_gather_offset_z_<supf><mode>): Likewise.
28543 (mve_vldrhq_gather_shifted_offset_<supf><mode>): Likewise.
28544 (mve_vldrhq_gather_shifted_offset_z_<supf><mode>): Likewise.
28545 (mve_vldrhq_<supf><mode>): Likewise.
28546 (mve_vldrhq_z_fv8hf): Likewise.
28547 (mve_vldrhq_z_<supf><mode>): Likewise.
28548 (mve_vldrwq_fv4sf): Likewise.
28549 (mve_vldrwq_<supf>v4si): Likewise.
28550 (mve_vldrwq_z_fv4sf): Likewise.
28551 (mve_vldrwq_z_<supf>v4si): Likewise.
28552 (mve_vld1q_f<mode>): Define RTL expand pattern.
28553 (mve_vld1q_<supf><mode>): Likewise.
28554
28555 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
28556 Mihail Ionescu <mihail.ionescu@arm.com>
28557 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
28558
28559 * config/arm/arm-builtins.c (LDRGBS_Z_QUALIFIERS): Define builtin
28560 qualifier.
28561 (LDRGBU_Z_QUALIFIERS): Likewise.
28562 (LDRGS_Z_QUALIFIERS): Likewise.
28563 (LDRGU_Z_QUALIFIERS): Likewise.
28564 (LDRS_Z_QUALIFIERS): Likewise.
28565 (LDRU_Z_QUALIFIERS): Likewise.
28566 * config/arm/arm_mve.h (vldrbq_gather_offset_z_s16): Define macro.
28567 (vldrbq_gather_offset_z_u8): Likewise.
28568 (vldrbq_gather_offset_z_s32): Likewise.
28569 (vldrbq_gather_offset_z_u16): Likewise.
28570 (vldrbq_gather_offset_z_u32): Likewise.
28571 (vldrbq_gather_offset_z_s8): Likewise.
28572 (vldrbq_z_s16): Likewise.
28573 (vldrbq_z_u8): Likewise.
28574 (vldrbq_z_s8): Likewise.
28575 (vldrbq_z_s32): Likewise.
28576 (vldrbq_z_u16): Likewise.
28577 (vldrbq_z_u32): Likewise.
28578 (vldrwq_gather_base_z_u32): Likewise.
28579 (vldrwq_gather_base_z_s32): Likewise.
28580 (__arm_vldrbq_gather_offset_z_s8): Define intrinsic.
28581 (__arm_vldrbq_gather_offset_z_s32): Likewise.
28582 (__arm_vldrbq_gather_offset_z_s16): Likewise.
28583 (__arm_vldrbq_gather_offset_z_u8): Likewise.
28584 (__arm_vldrbq_gather_offset_z_u32): Likewise.
28585 (__arm_vldrbq_gather_offset_z_u16): Likewise.
28586 (__arm_vldrbq_z_s8): Likewise.
28587 (__arm_vldrbq_z_s32): Likewise.
28588 (__arm_vldrbq_z_s16): Likewise.
28589 (__arm_vldrbq_z_u8): Likewise.
28590 (__arm_vldrbq_z_u32): Likewise.
28591 (__arm_vldrbq_z_u16): Likewise.
28592 (__arm_vldrwq_gather_base_z_s32): Likewise.
28593 (__arm_vldrwq_gather_base_z_u32): Likewise.
28594 (vldrbq_gather_offset_z): Define polymorphic variant.
28595 * config/arm/arm_mve_builtins.def (LDRGBS_Z_QUALIFIERS): Use builtin
28596 qualifier.
28597 (LDRGBU_Z_QUALIFIERS): Likewise.
28598 (LDRGS_Z_QUALIFIERS): Likewise.
28599 (LDRGU_Z_QUALIFIERS): Likewise.
28600 (LDRS_Z_QUALIFIERS): Likewise.
28601 (LDRU_Z_QUALIFIERS): Likewise.
28602 * config/arm/mve.md (mve_vldrbq_gather_offset_z_<supf><mode>): Define
28603 RTL pattern.
28604 (mve_vldrbq_z_<supf><mode>): Likewise.
28605 (mve_vldrwq_gather_base_z_<supf>v4si): Likewise.
28606
28607 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
28608 Mihail Ionescu <mihail.ionescu@arm.com>
28609 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
28610
28611 * config/arm/arm-builtins.c (STRS_P_QUALIFIERS): Define builtin
28612 qualifier.
28613 (STRU_P_QUALIFIERS): Likewise.
28614 (STRSU_P_QUALIFIERS): Likewise.
28615 (STRSS_P_QUALIFIERS): Likewise.
28616 (STRSBS_P_QUALIFIERS): Likewise.
28617 (STRSBU_P_QUALIFIERS): Likewise.
28618 * config/arm/arm_mve.h (vstrbq_p_s8): Define macro.
28619 (vstrbq_p_s32): Likewise.
28620 (vstrbq_p_s16): Likewise.
28621 (vstrbq_p_u8): Likewise.
28622 (vstrbq_p_u32): Likewise.
28623 (vstrbq_p_u16): Likewise.
28624 (vstrbq_scatter_offset_p_s8): Likewise.
28625 (vstrbq_scatter_offset_p_s32): Likewise.
28626 (vstrbq_scatter_offset_p_s16): Likewise.
28627 (vstrbq_scatter_offset_p_u8): Likewise.
28628 (vstrbq_scatter_offset_p_u32): Likewise.
28629 (vstrbq_scatter_offset_p_u16): Likewise.
28630 (vstrwq_scatter_base_p_s32): Likewise.
28631 (vstrwq_scatter_base_p_u32): Likewise.
28632 (__arm_vstrbq_p_s8): Define intrinsic.
28633 (__arm_vstrbq_p_s32): Likewise.
28634 (__arm_vstrbq_p_s16): Likewise.
28635 (__arm_vstrbq_p_u8): Likewise.
28636 (__arm_vstrbq_p_u32): Likewise.
28637 (__arm_vstrbq_p_u16): Likewise.
28638 (__arm_vstrbq_scatter_offset_p_s8): Likewise.
28639 (__arm_vstrbq_scatter_offset_p_s32): Likewise.
28640 (__arm_vstrbq_scatter_offset_p_s16): Likewise.
28641 (__arm_vstrbq_scatter_offset_p_u8): Likewise.
28642 (__arm_vstrbq_scatter_offset_p_u32): Likewise.
28643 (__arm_vstrbq_scatter_offset_p_u16): Likewise.
28644 (__arm_vstrwq_scatter_base_p_s32): Likewise.
28645 (__arm_vstrwq_scatter_base_p_u32): Likewise.
28646 (vstrbq_p): Define polymorphic variant.
28647 (vstrbq_scatter_offset_p): Likewise.
28648 (vstrwq_scatter_base_p): Likewise.
28649 * config/arm/arm_mve_builtins.def (STRS_P_QUALIFIERS): Use builtin
28650 qualifier.
28651 (STRU_P_QUALIFIERS): Likewise.
28652 (STRSU_P_QUALIFIERS): Likewise.
28653 (STRSS_P_QUALIFIERS): Likewise.
28654 (STRSBS_P_QUALIFIERS): Likewise.
28655 (STRSBU_P_QUALIFIERS): Likewise.
28656 * config/arm/mve.md (mve_vstrbq_scatter_offset_p_<supf><mode>): Define
28657 RTL pattern.
28658 (mve_vstrwq_scatter_base_p_<supf>v4si): Likewise.
28659 (mve_vstrbq_p_<supf><mode>): Likewise.
28660
28661 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
28662 Mihail Ionescu <mihail.ionescu@arm.com>
28663 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
28664
28665 * config/arm/arm-builtins.c (LDRGU_QUALIFIERS): Define builtin
28666 qualifier.
28667 (LDRGS_QUALIFIERS): Likewise.
28668 (LDRS_QUALIFIERS): Likewise.
28669 (LDRU_QUALIFIERS): Likewise.
28670 (LDRGBS_QUALIFIERS): Likewise.
28671 (LDRGBU_QUALIFIERS): Likewise.
28672 * config/arm/arm_mve.h (vldrbq_gather_offset_u8): Define macro.
28673 (vldrbq_gather_offset_s8): Likewise.
28674 (vldrbq_s8): Likewise.
28675 (vldrbq_u8): Likewise.
28676 (vldrbq_gather_offset_u16): Likewise.
28677 (vldrbq_gather_offset_s16): Likewise.
28678 (vldrbq_s16): Likewise.
28679 (vldrbq_u16): Likewise.
28680 (vldrbq_gather_offset_u32): Likewise.
28681 (vldrbq_gather_offset_s32): Likewise.
28682 (vldrbq_s32): Likewise.
28683 (vldrbq_u32): Likewise.
28684 (vldrwq_gather_base_s32): Likewise.
28685 (vldrwq_gather_base_u32): Likewise.
28686 (__arm_vldrbq_gather_offset_u8): Define intrinsic.
28687 (__arm_vldrbq_gather_offset_s8): Likewise.
28688 (__arm_vldrbq_s8): Likewise.
28689 (__arm_vldrbq_u8): Likewise.
28690 (__arm_vldrbq_gather_offset_u16): Likewise.
28691 (__arm_vldrbq_gather_offset_s16): Likewise.
28692 (__arm_vldrbq_s16): Likewise.
28693 (__arm_vldrbq_u16): Likewise.
28694 (__arm_vldrbq_gather_offset_u32): Likewise.
28695 (__arm_vldrbq_gather_offset_s32): Likewise.
28696 (__arm_vldrbq_s32): Likewise.
28697 (__arm_vldrbq_u32): Likewise.
28698 (__arm_vldrwq_gather_base_s32): Likewise.
28699 (__arm_vldrwq_gather_base_u32): Likewise.
28700 (vldrbq_gather_offset): Define polymorphic variant.
28701 * config/arm/arm_mve_builtins.def (LDRGU_QUALIFIERS): Use builtin
28702 qualifier.
28703 (LDRGS_QUALIFIERS): Likewise.
28704 (LDRS_QUALIFIERS): Likewise.
28705 (LDRU_QUALIFIERS): Likewise.
28706 (LDRGBS_QUALIFIERS): Likewise.
28707 (LDRGBU_QUALIFIERS): Likewise.
28708 * config/arm/mve.md (VLDRBGOQ): Define iterator.
28709 (VLDRBQ): Likewise.
28710 (VLDRWGBQ): Likewise.
28711 (mve_vldrbq_gather_offset_<supf><mode>): Define RTL pattern.
28712 (mve_vldrbq_<supf><mode>): Likewise.
28713 (mve_vldrwq_gather_base_<supf>v4si): Likewise.
28714
28715 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
28716 Mihail Ionescu <mihail.ionescu@arm.com>
28717 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
28718
28719 * config/arm/arm-builtins.c (STRS_QUALIFIERS): Define builtin qualifier.
28720 (STRU_QUALIFIERS): Likewise.
28721 (STRSS_QUALIFIERS): Likewise.
28722 (STRSU_QUALIFIERS): Likewise.
28723 (STRSBS_QUALIFIERS): Likewise.
28724 (STRSBU_QUALIFIERS): Likewise.
28725 * config/arm/arm_mve.h (vstrbq_s8): Define macro.
28726 (vstrbq_u8): Likewise.
28727 (vstrbq_u16): Likewise.
28728 (vstrbq_scatter_offset_s8): Likewise.
28729 (vstrbq_scatter_offset_u8): Likewise.
28730 (vstrbq_scatter_offset_u16): Likewise.
28731 (vstrbq_s16): Likewise.
28732 (vstrbq_u32): Likewise.
28733 (vstrbq_scatter_offset_s16): Likewise.
28734 (vstrbq_scatter_offset_u32): Likewise.
28735 (vstrbq_s32): Likewise.
28736 (vstrbq_scatter_offset_s32): Likewise.
28737 (vstrwq_scatter_base_s32): Likewise.
28738 (vstrwq_scatter_base_u32): Likewise.
28739 (__arm_vstrbq_scatter_offset_s8): Define intrinsic.
28740 (__arm_vstrbq_scatter_offset_s32): Likewise.
28741 (__arm_vstrbq_scatter_offset_s16): Likewise.
28742 (__arm_vstrbq_scatter_offset_u8): Likewise.
28743 (__arm_vstrbq_scatter_offset_u32): Likewise.
28744 (__arm_vstrbq_scatter_offset_u16): Likewise.
28745 (__arm_vstrbq_s8): Likewise.
28746 (__arm_vstrbq_s32): Likewise.
28747 (__arm_vstrbq_s16): Likewise.
28748 (__arm_vstrbq_u8): Likewise.
28749 (__arm_vstrbq_u32): Likewise.
28750 (__arm_vstrbq_u16): Likewise.
28751 (__arm_vstrwq_scatter_base_s32): Likewise.
28752 (__arm_vstrwq_scatter_base_u32): Likewise.
28753 (vstrbq): Define polymorphic variant.
28754 (vstrbq_scatter_offset): Likewise.
28755 (vstrwq_scatter_base): Likewise.
28756 * config/arm/arm_mve_builtins.def (STRS_QUALIFIERS): Use builtin
28757 qualifier.
28758 (STRU_QUALIFIERS): Likewise.
28759 (STRSS_QUALIFIERS): Likewise.
28760 (STRSU_QUALIFIERS): Likewise.
28761 (STRSBS_QUALIFIERS): Likewise.
28762 (STRSBU_QUALIFIERS): Likewise.
28763 * config/arm/mve.md (MVE_B_ELEM): Define mode attribute iterator.
28764 (VSTRWSBQ): Define iterators.
28765 (VSTRBSOQ): Likewise.
28766 (VSTRBQ): Likewise.
28767 (mve_vstrbq_<supf><mode>): Define RTL pattern.
28768 (mve_vstrbq_scatter_offset_<supf><mode>): Likewise.
28769 (mve_vstrwq_scatter_base_<supf>v4si): Likewise.
28770
28771 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
28772 Mihail Ionescu <mihail.ionescu@arm.com>
28773 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
28774
28775 * config/arm/arm_mve.h (vabdq_m_f32): Define macro.
28776 (vabdq_m_f16): Likewise.
28777 (vaddq_m_f32): Likewise.
28778 (vaddq_m_f16): Likewise.
28779 (vaddq_m_n_f32): Likewise.
28780 (vaddq_m_n_f16): Likewise.
28781 (vandq_m_f32): Likewise.
28782 (vandq_m_f16): Likewise.
28783 (vbicq_m_f32): Likewise.
28784 (vbicq_m_f16): Likewise.
28785 (vbrsrq_m_n_f32): Likewise.
28786 (vbrsrq_m_n_f16): Likewise.
28787 (vcaddq_rot270_m_f32): Likewise.
28788 (vcaddq_rot270_m_f16): Likewise.
28789 (vcaddq_rot90_m_f32): Likewise.
28790 (vcaddq_rot90_m_f16): Likewise.
28791 (vcmlaq_m_f32): Likewise.
28792 (vcmlaq_m_f16): Likewise.
28793 (vcmlaq_rot180_m_f32): Likewise.
28794 (vcmlaq_rot180_m_f16): Likewise.
28795 (vcmlaq_rot270_m_f32): Likewise.
28796 (vcmlaq_rot270_m_f16): Likewise.
28797 (vcmlaq_rot90_m_f32): Likewise.
28798 (vcmlaq_rot90_m_f16): Likewise.
28799 (vcmulq_m_f32): Likewise.
28800 (vcmulq_m_f16): Likewise.
28801 (vcmulq_rot180_m_f32): Likewise.
28802 (vcmulq_rot180_m_f16): Likewise.
28803 (vcmulq_rot270_m_f32): Likewise.
28804 (vcmulq_rot270_m_f16): Likewise.
28805 (vcmulq_rot90_m_f32): Likewise.
28806 (vcmulq_rot90_m_f16): Likewise.
28807 (vcvtq_m_n_s32_f32): Likewise.
28808 (vcvtq_m_n_s16_f16): Likewise.
28809 (vcvtq_m_n_u32_f32): Likewise.
28810 (vcvtq_m_n_u16_f16): Likewise.
28811 (veorq_m_f32): Likewise.
28812 (veorq_m_f16): Likewise.
28813 (vfmaq_m_f32): Likewise.
28814 (vfmaq_m_f16): Likewise.
28815 (vfmaq_m_n_f32): Likewise.
28816 (vfmaq_m_n_f16): Likewise.
28817 (vfmasq_m_n_f32): Likewise.
28818 (vfmasq_m_n_f16): Likewise.
28819 (vfmsq_m_f32): Likewise.
28820 (vfmsq_m_f16): Likewise.
28821 (vmaxnmq_m_f32): Likewise.
28822 (vmaxnmq_m_f16): Likewise.
28823 (vminnmq_m_f32): Likewise.
28824 (vminnmq_m_f16): Likewise.
28825 (vmulq_m_f32): Likewise.
28826 (vmulq_m_f16): Likewise.
28827 (vmulq_m_n_f32): Likewise.
28828 (vmulq_m_n_f16): Likewise.
28829 (vornq_m_f32): Likewise.
28830 (vornq_m_f16): Likewise.
28831 (vorrq_m_f32): Likewise.
28832 (vorrq_m_f16): Likewise.
28833 (vsubq_m_f32): Likewise.
28834 (vsubq_m_f16): Likewise.
28835 (vsubq_m_n_f32): Likewise.
28836 (vsubq_m_n_f16): Likewise.
28837 (__attribute__): Likewise.
28838 (__arm_vabdq_m_f32): Likewise.
28839 (__arm_vabdq_m_f16): Likewise.
28840 (__arm_vaddq_m_f32): Likewise.
28841 (__arm_vaddq_m_f16): Likewise.
28842 (__arm_vaddq_m_n_f32): Likewise.
28843 (__arm_vaddq_m_n_f16): Likewise.
28844 (__arm_vandq_m_f32): Likewise.
28845 (__arm_vandq_m_f16): Likewise.
28846 (__arm_vbicq_m_f32): Likewise.
28847 (__arm_vbicq_m_f16): Likewise.
28848 (__arm_vbrsrq_m_n_f32): Likewise.
28849 (__arm_vbrsrq_m_n_f16): Likewise.
28850 (__arm_vcaddq_rot270_m_f32): Likewise.
28851 (__arm_vcaddq_rot270_m_f16): Likewise.
28852 (__arm_vcaddq_rot90_m_f32): Likewise.
28853 (__arm_vcaddq_rot90_m_f16): Likewise.
28854 (__arm_vcmlaq_m_f32): Likewise.
28855 (__arm_vcmlaq_m_f16): Likewise.
28856 (__arm_vcmlaq_rot180_m_f32): Likewise.
28857 (__arm_vcmlaq_rot180_m_f16): Likewise.
28858 (__arm_vcmlaq_rot270_m_f32): Likewise.
28859 (__arm_vcmlaq_rot270_m_f16): Likewise.
28860 (__arm_vcmlaq_rot90_m_f32): Likewise.
28861 (__arm_vcmlaq_rot90_m_f16): Likewise.
28862 (__arm_vcmulq_m_f32): Likewise.
28863 (__arm_vcmulq_m_f16): Likewise.
28864 (__arm_vcmulq_rot180_m_f32): Define intrinsic.
28865 (__arm_vcmulq_rot180_m_f16): Likewise.
28866 (__arm_vcmulq_rot270_m_f32): Likewise.
28867 (__arm_vcmulq_rot270_m_f16): Likewise.
28868 (__arm_vcmulq_rot90_m_f32): Likewise.
28869 (__arm_vcmulq_rot90_m_f16): Likewise.
28870 (__arm_vcvtq_m_n_s32_f32): Likewise.
28871 (__arm_vcvtq_m_n_s16_f16): Likewise.
28872 (__arm_vcvtq_m_n_u32_f32): Likewise.
28873 (__arm_vcvtq_m_n_u16_f16): Likewise.
28874 (__arm_veorq_m_f32): Likewise.
28875 (__arm_veorq_m_f16): Likewise.
28876 (__arm_vfmaq_m_f32): Likewise.
28877 (__arm_vfmaq_m_f16): Likewise.
28878 (__arm_vfmaq_m_n_f32): Likewise.
28879 (__arm_vfmaq_m_n_f16): Likewise.
28880 (__arm_vfmasq_m_n_f32): Likewise.
28881 (__arm_vfmasq_m_n_f16): Likewise.
28882 (__arm_vfmsq_m_f32): Likewise.
28883 (__arm_vfmsq_m_f16): Likewise.
28884 (__arm_vmaxnmq_m_f32): Likewise.
28885 (__arm_vmaxnmq_m_f16): Likewise.
28886 (__arm_vminnmq_m_f32): Likewise.
28887 (__arm_vminnmq_m_f16): Likewise.
28888 (__arm_vmulq_m_f32): Likewise.
28889 (__arm_vmulq_m_f16): Likewise.
28890 (__arm_vmulq_m_n_f32): Likewise.
28891 (__arm_vmulq_m_n_f16): Likewise.
28892 (__arm_vornq_m_f32): Likewise.
28893 (__arm_vornq_m_f16): Likewise.
28894 (__arm_vorrq_m_f32): Likewise.
28895 (__arm_vorrq_m_f16): Likewise.
28896 (__arm_vsubq_m_f32): Likewise.
28897 (__arm_vsubq_m_f16): Likewise.
28898 (__arm_vsubq_m_n_f32): Likewise.
28899 (__arm_vsubq_m_n_f16): Likewise.
28900 (vabdq_m): Define polymorphic variant.
28901 (vaddq_m): Likewise.
28902 (vaddq_m_n): Likewise.
28903 (vandq_m): Likewise.
28904 (vbicq_m): Likewise.
28905 (vbrsrq_m_n): Likewise.
28906 (vcaddq_rot270_m): Likewise.
28907 (vcaddq_rot90_m): Likewise.
28908 (vcmlaq_m): Likewise.
28909 (vcmlaq_rot180_m): Likewise.
28910 (vcmlaq_rot270_m): Likewise.
28911 (vcmlaq_rot90_m): Likewise.
28912 (vcmulq_m): Likewise.
28913 (vcmulq_rot180_m): Likewise.
28914 (vcmulq_rot270_m): Likewise.
28915 (vcmulq_rot90_m): Likewise.
28916 (veorq_m): Likewise.
28917 (vfmaq_m): Likewise.
28918 (vfmaq_m_n): Likewise.
28919 (vfmasq_m_n): Likewise.
28920 (vfmsq_m): Likewise.
28921 (vmaxnmq_m): Likewise.
28922 (vminnmq_m): Likewise.
28923 (vmulq_m): Likewise.
28924 (vmulq_m_n): Likewise.
28925 (vornq_m): Likewise.
28926 (vsubq_m): Likewise.
28927 (vsubq_m_n): Likewise.
28928 (vorrq_m): Likewise.
28929 * config/arm/arm_mve_builtins.def (QUADOP_NONE_NONE_NONE_IMM_UNONE): Use
28930 builtin qualifier.
28931 (QUADOP_NONE_NONE_NONE_NONE_UNONE): Likewise.
28932 (QUADOP_UNONE_UNONE_NONE_IMM_UNONE): Likewise.
28933 * config/arm/mve.md (mve_vabdq_m_f<mode>): Define RTL pattern.
28934 (mve_vaddq_m_f<mode>): Likewise.
28935 (mve_vaddq_m_n_f<mode>): Likewise.
28936 (mve_vandq_m_f<mode>): Likewise.
28937 (mve_vbicq_m_f<mode>): Likewise.
28938 (mve_vbrsrq_m_n_f<mode>): Likewise.
28939 (mve_vcaddq_rot270_m_f<mode>): Likewise.
28940 (mve_vcaddq_rot90_m_f<mode>): Likewise.
28941 (mve_vcmlaq_m_f<mode>): Likewise.
28942 (mve_vcmlaq_rot180_m_f<mode>): Likewise.
28943 (mve_vcmlaq_rot270_m_f<mode>): Likewise.
28944 (mve_vcmlaq_rot90_m_f<mode>): Likewise.
28945 (mve_vcmulq_m_f<mode>): Likewise.
28946 (mve_vcmulq_rot180_m_f<mode>): Likewise.
28947 (mve_vcmulq_rot270_m_f<mode>): Likewise.
28948 (mve_vcmulq_rot90_m_f<mode>): Likewise.
28949 (mve_veorq_m_f<mode>): Likewise.
28950 (mve_vfmaq_m_f<mode>): Likewise.
28951 (mve_vfmaq_m_n_f<mode>): Likewise.
28952 (mve_vfmasq_m_n_f<mode>): Likewise.
28953 (mve_vfmsq_m_f<mode>): Likewise.
28954 (mve_vmaxnmq_m_f<mode>): Likewise.
28955 (mve_vminnmq_m_f<mode>): Likewise.
28956 (mve_vmulq_m_f<mode>): Likewise.
28957 (mve_vmulq_m_n_f<mode>): Likewise.
28958 (mve_vornq_m_f<mode>): Likewise.
28959 (mve_vorrq_m_f<mode>): Likewise.
28960 (mve_vsubq_m_f<mode>): Likewise.
28961 (mve_vsubq_m_n_f<mode>): Likewise.
28962
28963 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
28964 Mihail Ionescu <mihail.ionescu@arm.com>
28965 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
28966
28967 * config/arm/arm-protos.h (arm_mve_immediate_check):
28968 * config/arm/arm.c (arm_mve_immediate_check): Define fuction to check
28969 mode and interger value.
28970 * config/arm/arm_mve.h (vmlaldavaq_p_s32): Define macro.
28971 (vmlaldavaq_p_s16): Likewise.
28972 (vmlaldavaq_p_u32): Likewise.
28973 (vmlaldavaq_p_u16): Likewise.
28974 (vmlaldavaxq_p_s32): Likewise.
28975 (vmlaldavaxq_p_s16): Likewise.
28976 (vmlaldavaxq_p_u32): Likewise.
28977 (vmlaldavaxq_p_u16): Likewise.
28978 (vmlsldavaq_p_s32): Likewise.
28979 (vmlsldavaq_p_s16): Likewise.
28980 (vmlsldavaxq_p_s32): Likewise.
28981 (vmlsldavaxq_p_s16): Likewise.
28982 (vmullbq_poly_m_p8): Likewise.
28983 (vmullbq_poly_m_p16): Likewise.
28984 (vmulltq_poly_m_p8): Likewise.
28985 (vmulltq_poly_m_p16): Likewise.
28986 (vqdmullbq_m_n_s32): Likewise.
28987 (vqdmullbq_m_n_s16): Likewise.
28988 (vqdmullbq_m_s32): Likewise.
28989 (vqdmullbq_m_s16): Likewise.
28990 (vqdmulltq_m_n_s32): Likewise.
28991 (vqdmulltq_m_n_s16): Likewise.
28992 (vqdmulltq_m_s32): Likewise.
28993 (vqdmulltq_m_s16): Likewise.
28994 (vqrshrnbq_m_n_s32): Likewise.
28995 (vqrshrnbq_m_n_s16): Likewise.
28996 (vqrshrnbq_m_n_u32): Likewise.
28997 (vqrshrnbq_m_n_u16): Likewise.
28998 (vqrshrntq_m_n_s32): Likewise.
28999 (vqrshrntq_m_n_s16): Likewise.
29000 (vqrshrntq_m_n_u32): Likewise.
29001 (vqrshrntq_m_n_u16): Likewise.
29002 (vqrshrunbq_m_n_s32): Likewise.
29003 (vqrshrunbq_m_n_s16): Likewise.
29004 (vqrshruntq_m_n_s32): Likewise.
29005 (vqrshruntq_m_n_s16): Likewise.
29006 (vqshrnbq_m_n_s32): Likewise.
29007 (vqshrnbq_m_n_s16): Likewise.
29008 (vqshrnbq_m_n_u32): Likewise.
29009 (vqshrnbq_m_n_u16): Likewise.
29010 (vqshrntq_m_n_s32): Likewise.
29011 (vqshrntq_m_n_s16): Likewise.
29012 (vqshrntq_m_n_u32): Likewise.
29013 (vqshrntq_m_n_u16): Likewise.
29014 (vqshrunbq_m_n_s32): Likewise.
29015 (vqshrunbq_m_n_s16): Likewise.
29016 (vqshruntq_m_n_s32): Likewise.
29017 (vqshruntq_m_n_s16): Likewise.
29018 (vrmlaldavhaq_p_s32): Likewise.
29019 (vrmlaldavhaq_p_u32): Likewise.
29020 (vrmlaldavhaxq_p_s32): Likewise.
29021 (vrmlsldavhaq_p_s32): Likewise.
29022 (vrmlsldavhaxq_p_s32): Likewise.
29023 (vrshrnbq_m_n_s32): Likewise.
29024 (vrshrnbq_m_n_s16): Likewise.
29025 (vrshrnbq_m_n_u32): Likewise.
29026 (vrshrnbq_m_n_u16): Likewise.
29027 (vrshrntq_m_n_s32): Likewise.
29028 (vrshrntq_m_n_s16): Likewise.
29029 (vrshrntq_m_n_u32): Likewise.
29030 (vrshrntq_m_n_u16): Likewise.
29031 (vshllbq_m_n_s8): Likewise.
29032 (vshllbq_m_n_s16): Likewise.
29033 (vshllbq_m_n_u8): Likewise.
29034 (vshllbq_m_n_u16): Likewise.
29035 (vshlltq_m_n_s8): Likewise.
29036 (vshlltq_m_n_s16): Likewise.
29037 (vshlltq_m_n_u8): Likewise.
29038 (vshlltq_m_n_u16): Likewise.
29039 (vshrnbq_m_n_s32): Likewise.
29040 (vshrnbq_m_n_s16): Likewise.
29041 (vshrnbq_m_n_u32): Likewise.
29042 (vshrnbq_m_n_u16): Likewise.
29043 (vshrntq_m_n_s32): Likewise.
29044 (vshrntq_m_n_s16): Likewise.
29045 (vshrntq_m_n_u32): Likewise.
29046 (vshrntq_m_n_u16): Likewise.
29047 (__arm_vmlaldavaq_p_s32): Define intrinsic.
29048 (__arm_vmlaldavaq_p_s16): Likewise.
29049 (__arm_vmlaldavaq_p_u32): Likewise.
29050 (__arm_vmlaldavaq_p_u16): Likewise.
29051 (__arm_vmlaldavaxq_p_s32): Likewise.
29052 (__arm_vmlaldavaxq_p_s16): Likewise.
29053 (__arm_vmlaldavaxq_p_u32): Likewise.
29054 (__arm_vmlaldavaxq_p_u16): Likewise.
29055 (__arm_vmlsldavaq_p_s32): Likewise.
29056 (__arm_vmlsldavaq_p_s16): Likewise.
29057 (__arm_vmlsldavaxq_p_s32): Likewise.
29058 (__arm_vmlsldavaxq_p_s16): Likewise.
29059 (__arm_vmullbq_poly_m_p8): Likewise.
29060 (__arm_vmullbq_poly_m_p16): Likewise.
29061 (__arm_vmulltq_poly_m_p8): Likewise.
29062 (__arm_vmulltq_poly_m_p16): Likewise.
29063 (__arm_vqdmullbq_m_n_s32): Likewise.
29064 (__arm_vqdmullbq_m_n_s16): Likewise.
29065 (__arm_vqdmullbq_m_s32): Likewise.
29066 (__arm_vqdmullbq_m_s16): Likewise.
29067 (__arm_vqdmulltq_m_n_s32): Likewise.
29068 (__arm_vqdmulltq_m_n_s16): Likewise.
29069 (__arm_vqdmulltq_m_s32): Likewise.
29070 (__arm_vqdmulltq_m_s16): Likewise.
29071 (__arm_vqrshrnbq_m_n_s32): Likewise.
29072 (__arm_vqrshrnbq_m_n_s16): Likewise.
29073 (__arm_vqrshrnbq_m_n_u32): Likewise.
29074 (__arm_vqrshrnbq_m_n_u16): Likewise.
29075 (__arm_vqrshrntq_m_n_s32): Likewise.
29076 (__arm_vqrshrntq_m_n_s16): Likewise.
29077 (__arm_vqrshrntq_m_n_u32): Likewise.
29078 (__arm_vqrshrntq_m_n_u16): Likewise.
29079 (__arm_vqrshrunbq_m_n_s32): Likewise.
29080 (__arm_vqrshrunbq_m_n_s16): Likewise.
29081 (__arm_vqrshruntq_m_n_s32): Likewise.
29082 (__arm_vqrshruntq_m_n_s16): Likewise.
29083 (__arm_vqshrnbq_m_n_s32): Likewise.
29084 (__arm_vqshrnbq_m_n_s16): Likewise.
29085 (__arm_vqshrnbq_m_n_u32): Likewise.
29086 (__arm_vqshrnbq_m_n_u16): Likewise.
29087 (__arm_vqshrntq_m_n_s32): Likewise.
29088 (__arm_vqshrntq_m_n_s16): Likewise.
29089 (__arm_vqshrntq_m_n_u32): Likewise.
29090 (__arm_vqshrntq_m_n_u16): Likewise.
29091 (__arm_vqshrunbq_m_n_s32): Likewise.
29092 (__arm_vqshrunbq_m_n_s16): Likewise.
29093 (__arm_vqshruntq_m_n_s32): Likewise.
29094 (__arm_vqshruntq_m_n_s16): Likewise.
29095 (__arm_vrmlaldavhaq_p_s32): Likewise.
29096 (__arm_vrmlaldavhaq_p_u32): Likewise.
29097 (__arm_vrmlaldavhaxq_p_s32): Likewise.
29098 (__arm_vrmlsldavhaq_p_s32): Likewise.
29099 (__arm_vrmlsldavhaxq_p_s32): Likewise.
29100 (__arm_vrshrnbq_m_n_s32): Likewise.
29101 (__arm_vrshrnbq_m_n_s16): Likewise.
29102 (__arm_vrshrnbq_m_n_u32): Likewise.
29103 (__arm_vrshrnbq_m_n_u16): Likewise.
29104 (__arm_vrshrntq_m_n_s32): Likewise.
29105 (__arm_vrshrntq_m_n_s16): Likewise.
29106 (__arm_vrshrntq_m_n_u32): Likewise.
29107 (__arm_vrshrntq_m_n_u16): Likewise.
29108 (__arm_vshllbq_m_n_s8): Likewise.
29109 (__arm_vshllbq_m_n_s16): Likewise.
29110 (__arm_vshllbq_m_n_u8): Likewise.
29111 (__arm_vshllbq_m_n_u16): Likewise.
29112 (__arm_vshlltq_m_n_s8): Likewise.
29113 (__arm_vshlltq_m_n_s16): Likewise.
29114 (__arm_vshlltq_m_n_u8): Likewise.
29115 (__arm_vshlltq_m_n_u16): Likewise.
29116 (__arm_vshrnbq_m_n_s32): Likewise.
29117 (__arm_vshrnbq_m_n_s16): Likewise.
29118 (__arm_vshrnbq_m_n_u32): Likewise.
29119 (__arm_vshrnbq_m_n_u16): Likewise.
29120 (__arm_vshrntq_m_n_s32): Likewise.
29121 (__arm_vshrntq_m_n_s16): Likewise.
29122 (__arm_vshrntq_m_n_u32): Likewise.
29123 (__arm_vshrntq_m_n_u16): Likewise.
29124 (vmullbq_poly_m): Define polymorphic variant.
29125 (vmulltq_poly_m): Likewise.
29126 (vshllbq_m): Likewise.
29127 (vshrntq_m_n): Likewise.
29128 (vshrnbq_m_n): Likewise.
29129 (vshlltq_m_n): Likewise.
29130 (vshllbq_m_n): Likewise.
29131 (vrshrntq_m_n): Likewise.
29132 (vrshrnbq_m_n): Likewise.
29133 (vqshruntq_m_n): Likewise.
29134 (vqshrunbq_m_n): Likewise.
29135 (vqdmullbq_m_n): Likewise.
29136 (vqdmullbq_m): Likewise.
29137 (vqdmulltq_m_n): Likewise.
29138 (vqdmulltq_m): Likewise.
29139 (vqrshrnbq_m_n): Likewise.
29140 (vqrshrntq_m_n): Likewise.
29141 (vqrshrunbq_m_n): Likewise.
29142 (vqrshruntq_m_n): Likewise.
29143 (vqshrnbq_m_n): Likewise.
29144 (vqshrntq_m_n): Likewise.
29145 * config/arm/arm_mve_builtins.def (QUADOP_NONE_NONE_NONE_IMM_UNONE): Use
29146 builtin qualifiers.
29147 (QUADOP_NONE_NONE_NONE_NONE_UNONE): Likewise.
29148 (QUADOP_UNONE_UNONE_NONE_IMM_UNONE): Likewise.
29149 (QUADOP_UNONE_UNONE_UNONE_IMM_UNONE): Likewise.
29150 (QUADOP_UNONE_UNONE_UNONE_UNONE_UNONE): Likewise.
29151 * config/arm/mve.md (VMLALDAVAQ_P): Define iterator.
29152 (VMLALDAVAXQ_P): Likewise.
29153 (VQRSHRNBQ_M_N): Likewise.
29154 (VQRSHRNTQ_M_N): Likewise.
29155 (VQSHRNBQ_M_N): Likewise.
29156 (VQSHRNTQ_M_N): Likewise.
29157 (VRSHRNBQ_M_N): Likewise.
29158 (VRSHRNTQ_M_N): Likewise.
29159 (VSHLLBQ_M_N): Likewise.
29160 (VSHLLTQ_M_N): Likewise.
29161 (VSHRNBQ_M_N): Likewise.
29162 (VSHRNTQ_M_N): Likewise.
29163 (mve_vmlaldavaq_p_<supf><mode>): Define RTL pattern.
29164 (mve_vmlaldavaxq_p_<supf><mode>): Likewise.
29165 (mve_vqrshrnbq_m_n_<supf><mode>): Likewise.
29166 (mve_vqrshrntq_m_n_<supf><mode>): Likewise.
29167 (mve_vqshrnbq_m_n_<supf><mode>): Likewise.
29168 (mve_vqshrntq_m_n_<supf><mode>): Likewise.
29169 (mve_vrmlaldavhaq_p_sv4si): Likewise.
29170 (mve_vrshrnbq_m_n_<supf><mode>): Likewise.
29171 (mve_vrshrntq_m_n_<supf><mode>): Likewise.
29172 (mve_vshllbq_m_n_<supf><mode>): Likewise.
29173 (mve_vshlltq_m_n_<supf><mode>): Likewise.
29174 (mve_vshrnbq_m_n_<supf><mode>): Likewise.
29175 (mve_vshrntq_m_n_<supf><mode>): Likewise.
29176 (mve_vmlsldavaq_p_s<mode>): Likewise.
29177 (mve_vmlsldavaxq_p_s<mode>): Likewise.
29178 (mve_vmullbq_poly_m_p<mode>): Likewise.
29179 (mve_vmulltq_poly_m_p<mode>): Likewise.
29180 (mve_vqdmullbq_m_n_s<mode>): Likewise.
29181 (mve_vqdmullbq_m_s<mode>): Likewise.
29182 (mve_vqdmulltq_m_n_s<mode>): Likewise.
29183 (mve_vqdmulltq_m_s<mode>): Likewise.
29184 (mve_vqrshrunbq_m_n_s<mode>): Likewise.
29185 (mve_vqrshruntq_m_n_s<mode>): Likewise.
29186 (mve_vqshrunbq_m_n_s<mode>): Likewise.
29187 (mve_vqshruntq_m_n_s<mode>): Likewise.
29188 (mve_vrmlaldavhaq_p_uv4si): Likewise.
29189 (mve_vrmlaldavhaxq_p_sv4si): Likewise.
29190 (mve_vrmlsldavhaq_p_sv4si): Likewise.
29191 (mve_vrmlsldavhaxq_p_sv4si): Likewise.
29192
29193 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
29194 Mihail Ionescu <mihail.ionescu@arm.com>
29195 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
29196
29197 * config/arm/arm_mve.h (vabdq_m_s8): Define macro.
29198 (vabdq_m_s32): Likewise.
29199 (vabdq_m_s16): Likewise.
29200 (vabdq_m_u8): Likewise.
29201 (vabdq_m_u32): Likewise.
29202 (vabdq_m_u16): Likewise.
29203 (vaddq_m_n_s8): Likewise.
29204 (vaddq_m_n_s32): Likewise.
29205 (vaddq_m_n_s16): Likewise.
29206 (vaddq_m_n_u8): Likewise.
29207 (vaddq_m_n_u32): Likewise.
29208 (vaddq_m_n_u16): Likewise.
29209 (vaddq_m_s8): Likewise.
29210 (vaddq_m_s32): Likewise.
29211 (vaddq_m_s16): Likewise.
29212 (vaddq_m_u8): Likewise.
29213 (vaddq_m_u32): Likewise.
29214 (vaddq_m_u16): Likewise.
29215 (vandq_m_s8): Likewise.
29216 (vandq_m_s32): Likewise.
29217 (vandq_m_s16): Likewise.
29218 (vandq_m_u8): Likewise.
29219 (vandq_m_u32): Likewise.
29220 (vandq_m_u16): Likewise.
29221 (vbicq_m_s8): Likewise.
29222 (vbicq_m_s32): Likewise.
29223 (vbicq_m_s16): Likewise.
29224 (vbicq_m_u8): Likewise.
29225 (vbicq_m_u32): Likewise.
29226 (vbicq_m_u16): Likewise.
29227 (vbrsrq_m_n_s8): Likewise.
29228 (vbrsrq_m_n_s32): Likewise.
29229 (vbrsrq_m_n_s16): Likewise.
29230 (vbrsrq_m_n_u8): Likewise.
29231 (vbrsrq_m_n_u32): Likewise.
29232 (vbrsrq_m_n_u16): Likewise.
29233 (vcaddq_rot270_m_s8): Likewise.
29234 (vcaddq_rot270_m_s32): Likewise.
29235 (vcaddq_rot270_m_s16): Likewise.
29236 (vcaddq_rot270_m_u8): Likewise.
29237 (vcaddq_rot270_m_u32): Likewise.
29238 (vcaddq_rot270_m_u16): Likewise.
29239 (vcaddq_rot90_m_s8): Likewise.
29240 (vcaddq_rot90_m_s32): Likewise.
29241 (vcaddq_rot90_m_s16): Likewise.
29242 (vcaddq_rot90_m_u8): Likewise.
29243 (vcaddq_rot90_m_u32): Likewise.
29244 (vcaddq_rot90_m_u16): Likewise.
29245 (veorq_m_s8): Likewise.
29246 (veorq_m_s32): Likewise.
29247 (veorq_m_s16): Likewise.
29248 (veorq_m_u8): Likewise.
29249 (veorq_m_u32): Likewise.
29250 (veorq_m_u16): Likewise.
29251 (vhaddq_m_n_s8): Likewise.
29252 (vhaddq_m_n_s32): Likewise.
29253 (vhaddq_m_n_s16): Likewise.
29254 (vhaddq_m_n_u8): Likewise.
29255 (vhaddq_m_n_u32): Likewise.
29256 (vhaddq_m_n_u16): Likewise.
29257 (vhaddq_m_s8): Likewise.
29258 (vhaddq_m_s32): Likewise.
29259 (vhaddq_m_s16): Likewise.
29260 (vhaddq_m_u8): Likewise.
29261 (vhaddq_m_u32): Likewise.
29262 (vhaddq_m_u16): Likewise.
29263 (vhcaddq_rot270_m_s8): Likewise.
29264 (vhcaddq_rot270_m_s32): Likewise.
29265 (vhcaddq_rot270_m_s16): Likewise.
29266 (vhcaddq_rot90_m_s8): Likewise.
29267 (vhcaddq_rot90_m_s32): Likewise.
29268 (vhcaddq_rot90_m_s16): Likewise.
29269 (vhsubq_m_n_s8): Likewise.
29270 (vhsubq_m_n_s32): Likewise.
29271 (vhsubq_m_n_s16): Likewise.
29272 (vhsubq_m_n_u8): Likewise.
29273 (vhsubq_m_n_u32): Likewise.
29274 (vhsubq_m_n_u16): Likewise.
29275 (vhsubq_m_s8): Likewise.
29276 (vhsubq_m_s32): Likewise.
29277 (vhsubq_m_s16): Likewise.
29278 (vhsubq_m_u8): Likewise.
29279 (vhsubq_m_u32): Likewise.
29280 (vhsubq_m_u16): Likewise.
29281 (vmaxq_m_s8): Likewise.
29282 (vmaxq_m_s32): Likewise.
29283 (vmaxq_m_s16): Likewise.
29284 (vmaxq_m_u8): Likewise.
29285 (vmaxq_m_u32): Likewise.
29286 (vmaxq_m_u16): Likewise.
29287 (vminq_m_s8): Likewise.
29288 (vminq_m_s32): Likewise.
29289 (vminq_m_s16): Likewise.
29290 (vminq_m_u8): Likewise.
29291 (vminq_m_u32): Likewise.
29292 (vminq_m_u16): Likewise.
29293 (vmladavaq_p_s8): Likewise.
29294 (vmladavaq_p_s32): Likewise.
29295 (vmladavaq_p_s16): Likewise.
29296 (vmladavaq_p_u8): Likewise.
29297 (vmladavaq_p_u32): Likewise.
29298 (vmladavaq_p_u16): Likewise.
29299 (vmladavaxq_p_s8): Likewise.
29300 (vmladavaxq_p_s32): Likewise.
29301 (vmladavaxq_p_s16): Likewise.
29302 (vmlaq_m_n_s8): Likewise.
29303 (vmlaq_m_n_s32): Likewise.
29304 (vmlaq_m_n_s16): Likewise.
29305 (vmlaq_m_n_u8): Likewise.
29306 (vmlaq_m_n_u32): Likewise.
29307 (vmlaq_m_n_u16): Likewise.
29308 (vmlasq_m_n_s8): Likewise.
29309 (vmlasq_m_n_s32): Likewise.
29310 (vmlasq_m_n_s16): Likewise.
29311 (vmlasq_m_n_u8): Likewise.
29312 (vmlasq_m_n_u32): Likewise.
29313 (vmlasq_m_n_u16): Likewise.
29314 (vmlsdavaq_p_s8): Likewise.
29315 (vmlsdavaq_p_s32): Likewise.
29316 (vmlsdavaq_p_s16): Likewise.
29317 (vmlsdavaxq_p_s8): Likewise.
29318 (vmlsdavaxq_p_s32): Likewise.
29319 (vmlsdavaxq_p_s16): Likewise.
29320 (vmulhq_m_s8): Likewise.
29321 (vmulhq_m_s32): Likewise.
29322 (vmulhq_m_s16): Likewise.
29323 (vmulhq_m_u8): Likewise.
29324 (vmulhq_m_u32): Likewise.
29325 (vmulhq_m_u16): Likewise.
29326 (vmullbq_int_m_s8): Likewise.
29327 (vmullbq_int_m_s32): Likewise.
29328 (vmullbq_int_m_s16): Likewise.
29329 (vmullbq_int_m_u8): Likewise.
29330 (vmullbq_int_m_u32): Likewise.
29331 (vmullbq_int_m_u16): Likewise.
29332 (vmulltq_int_m_s8): Likewise.
29333 (vmulltq_int_m_s32): Likewise.
29334 (vmulltq_int_m_s16): Likewise.
29335 (vmulltq_int_m_u8): Likewise.
29336 (vmulltq_int_m_u32): Likewise.
29337 (vmulltq_int_m_u16): Likewise.
29338 (vmulq_m_n_s8): Likewise.
29339 (vmulq_m_n_s32): Likewise.
29340 (vmulq_m_n_s16): Likewise.
29341 (vmulq_m_n_u8): Likewise.
29342 (vmulq_m_n_u32): Likewise.
29343 (vmulq_m_n_u16): Likewise.
29344 (vmulq_m_s8): Likewise.
29345 (vmulq_m_s32): Likewise.
29346 (vmulq_m_s16): Likewise.
29347 (vmulq_m_u8): Likewise.
29348 (vmulq_m_u32): Likewise.
29349 (vmulq_m_u16): Likewise.
29350 (vornq_m_s8): Likewise.
29351 (vornq_m_s32): Likewise.
29352 (vornq_m_s16): Likewise.
29353 (vornq_m_u8): Likewise.
29354 (vornq_m_u32): Likewise.
29355 (vornq_m_u16): Likewise.
29356 (vorrq_m_s8): Likewise.
29357 (vorrq_m_s32): Likewise.
29358 (vorrq_m_s16): Likewise.
29359 (vorrq_m_u8): Likewise.
29360 (vorrq_m_u32): Likewise.
29361 (vorrq_m_u16): Likewise.
29362 (vqaddq_m_n_s8): Likewise.
29363 (vqaddq_m_n_s32): Likewise.
29364 (vqaddq_m_n_s16): Likewise.
29365 (vqaddq_m_n_u8): Likewise.
29366 (vqaddq_m_n_u32): Likewise.
29367 (vqaddq_m_n_u16): Likewise.
29368 (vqaddq_m_s8): Likewise.
29369 (vqaddq_m_s32): Likewise.
29370 (vqaddq_m_s16): Likewise.
29371 (vqaddq_m_u8): Likewise.
29372 (vqaddq_m_u32): Likewise.
29373 (vqaddq_m_u16): Likewise.
29374 (vqdmladhq_m_s8): Likewise.
29375 (vqdmladhq_m_s32): Likewise.
29376 (vqdmladhq_m_s16): Likewise.
29377 (vqdmladhxq_m_s8): Likewise.
29378 (vqdmladhxq_m_s32): Likewise.
29379 (vqdmladhxq_m_s16): Likewise.
29380 (vqdmlahq_m_n_s8): Likewise.
29381 (vqdmlahq_m_n_s32): Likewise.
29382 (vqdmlahq_m_n_s16): Likewise.
29383 (vqdmlahq_m_n_u8): Likewise.
29384 (vqdmlahq_m_n_u32): Likewise.
29385 (vqdmlahq_m_n_u16): Likewise.
29386 (vqdmlsdhq_m_s8): Likewise.
29387 (vqdmlsdhq_m_s32): Likewise.
29388 (vqdmlsdhq_m_s16): Likewise.
29389 (vqdmlsdhxq_m_s8): Likewise.
29390 (vqdmlsdhxq_m_s32): Likewise.
29391 (vqdmlsdhxq_m_s16): Likewise.
29392 (vqdmulhq_m_n_s8): Likewise.
29393 (vqdmulhq_m_n_s32): Likewise.
29394 (vqdmulhq_m_n_s16): Likewise.
29395 (vqdmulhq_m_s8): Likewise.
29396 (vqdmulhq_m_s32): Likewise.
29397 (vqdmulhq_m_s16): Likewise.
29398 (vqrdmladhq_m_s8): Likewise.
29399 (vqrdmladhq_m_s32): Likewise.
29400 (vqrdmladhq_m_s16): Likewise.
29401 (vqrdmladhxq_m_s8): Likewise.
29402 (vqrdmladhxq_m_s32): Likewise.
29403 (vqrdmladhxq_m_s16): Likewise.
29404 (vqrdmlahq_m_n_s8): Likewise.
29405 (vqrdmlahq_m_n_s32): Likewise.
29406 (vqrdmlahq_m_n_s16): Likewise.
29407 (vqrdmlahq_m_n_u8): Likewise.
29408 (vqrdmlahq_m_n_u32): Likewise.
29409 (vqrdmlahq_m_n_u16): Likewise.
29410 (vqrdmlashq_m_n_s8): Likewise.
29411 (vqrdmlashq_m_n_s32): Likewise.
29412 (vqrdmlashq_m_n_s16): Likewise.
29413 (vqrdmlashq_m_n_u8): Likewise.
29414 (vqrdmlashq_m_n_u32): Likewise.
29415 (vqrdmlashq_m_n_u16): Likewise.
29416 (vqrdmlsdhq_m_s8): Likewise.
29417 (vqrdmlsdhq_m_s32): Likewise.
29418 (vqrdmlsdhq_m_s16): Likewise.
29419 (vqrdmlsdhxq_m_s8): Likewise.
29420 (vqrdmlsdhxq_m_s32): Likewise.
29421 (vqrdmlsdhxq_m_s16): Likewise.
29422 (vqrdmulhq_m_n_s8): Likewise.
29423 (vqrdmulhq_m_n_s32): Likewise.
29424 (vqrdmulhq_m_n_s16): Likewise.
29425 (vqrdmulhq_m_s8): Likewise.
29426 (vqrdmulhq_m_s32): Likewise.
29427 (vqrdmulhq_m_s16): Likewise.
29428 (vqrshlq_m_s8): Likewise.
29429 (vqrshlq_m_s32): Likewise.
29430 (vqrshlq_m_s16): Likewise.
29431 (vqrshlq_m_u8): Likewise.
29432 (vqrshlq_m_u32): Likewise.
29433 (vqrshlq_m_u16): Likewise.
29434 (vqshlq_m_n_s8): Likewise.
29435 (vqshlq_m_n_s32): Likewise.
29436 (vqshlq_m_n_s16): Likewise.
29437 (vqshlq_m_n_u8): Likewise.
29438 (vqshlq_m_n_u32): Likewise.
29439 (vqshlq_m_n_u16): Likewise.
29440 (vqshlq_m_s8): Likewise.
29441 (vqshlq_m_s32): Likewise.
29442 (vqshlq_m_s16): Likewise.
29443 (vqshlq_m_u8): Likewise.
29444 (vqshlq_m_u32): Likewise.
29445 (vqshlq_m_u16): Likewise.
29446 (vqsubq_m_n_s8): Likewise.
29447 (vqsubq_m_n_s32): Likewise.
29448 (vqsubq_m_n_s16): Likewise.
29449 (vqsubq_m_n_u8): Likewise.
29450 (vqsubq_m_n_u32): Likewise.
29451 (vqsubq_m_n_u16): Likewise.
29452 (vqsubq_m_s8): Likewise.
29453 (vqsubq_m_s32): Likewise.
29454 (vqsubq_m_s16): Likewise.
29455 (vqsubq_m_u8): Likewise.
29456 (vqsubq_m_u32): Likewise.
29457 (vqsubq_m_u16): Likewise.
29458 (vrhaddq_m_s8): Likewise.
29459 (vrhaddq_m_s32): Likewise.
29460 (vrhaddq_m_s16): Likewise.
29461 (vrhaddq_m_u8): Likewise.
29462 (vrhaddq_m_u32): Likewise.
29463 (vrhaddq_m_u16): Likewise.
29464 (vrmulhq_m_s8): Likewise.
29465 (vrmulhq_m_s32): Likewise.
29466 (vrmulhq_m_s16): Likewise.
29467 (vrmulhq_m_u8): Likewise.
29468 (vrmulhq_m_u32): Likewise.
29469 (vrmulhq_m_u16): Likewise.
29470 (vrshlq_m_s8): Likewise.
29471 (vrshlq_m_s32): Likewise.
29472 (vrshlq_m_s16): Likewise.
29473 (vrshlq_m_u8): Likewise.
29474 (vrshlq_m_u32): Likewise.
29475 (vrshlq_m_u16): Likewise.
29476 (vrshrq_m_n_s8): Likewise.
29477 (vrshrq_m_n_s32): Likewise.
29478 (vrshrq_m_n_s16): Likewise.
29479 (vrshrq_m_n_u8): Likewise.
29480 (vrshrq_m_n_u32): Likewise.
29481 (vrshrq_m_n_u16): Likewise.
29482 (vshlq_m_n_s8): Likewise.
29483 (vshlq_m_n_s32): Likewise.
29484 (vshlq_m_n_s16): Likewise.
29485 (vshlq_m_n_u8): Likewise.
29486 (vshlq_m_n_u32): Likewise.
29487 (vshlq_m_n_u16): Likewise.
29488 (vshrq_m_n_s8): Likewise.
29489 (vshrq_m_n_s32): Likewise.
29490 (vshrq_m_n_s16): Likewise.
29491 (vshrq_m_n_u8): Likewise.
29492 (vshrq_m_n_u32): Likewise.
29493 (vshrq_m_n_u16): Likewise.
29494 (vsliq_m_n_s8): Likewise.
29495 (vsliq_m_n_s32): Likewise.
29496 (vsliq_m_n_s16): Likewise.
29497 (vsliq_m_n_u8): Likewise.
29498 (vsliq_m_n_u32): Likewise.
29499 (vsliq_m_n_u16): Likewise.
29500 (vsubq_m_n_s8): Likewise.
29501 (vsubq_m_n_s32): Likewise.
29502 (vsubq_m_n_s16): Likewise.
29503 (vsubq_m_n_u8): Likewise.
29504 (vsubq_m_n_u32): Likewise.
29505 (vsubq_m_n_u16): Likewise.
29506 (__arm_vabdq_m_s8): Define intrinsic.
29507 (__arm_vabdq_m_s32): Likewise.
29508 (__arm_vabdq_m_s16): Likewise.
29509 (__arm_vabdq_m_u8): Likewise.
29510 (__arm_vabdq_m_u32): Likewise.
29511 (__arm_vabdq_m_u16): Likewise.
29512 (__arm_vaddq_m_n_s8): Likewise.
29513 (__arm_vaddq_m_n_s32): Likewise.
29514 (__arm_vaddq_m_n_s16): Likewise.
29515 (__arm_vaddq_m_n_u8): Likewise.
29516 (__arm_vaddq_m_n_u32): Likewise.
29517 (__arm_vaddq_m_n_u16): Likewise.
29518 (__arm_vaddq_m_s8): Likewise.
29519 (__arm_vaddq_m_s32): Likewise.
29520 (__arm_vaddq_m_s16): Likewise.
29521 (__arm_vaddq_m_u8): Likewise.
29522 (__arm_vaddq_m_u32): Likewise.
29523 (__arm_vaddq_m_u16): Likewise.
29524 (__arm_vandq_m_s8): Likewise.
29525 (__arm_vandq_m_s32): Likewise.
29526 (__arm_vandq_m_s16): Likewise.
29527 (__arm_vandq_m_u8): Likewise.
29528 (__arm_vandq_m_u32): Likewise.
29529 (__arm_vandq_m_u16): Likewise.
29530 (__arm_vbicq_m_s8): Likewise.
29531 (__arm_vbicq_m_s32): Likewise.
29532 (__arm_vbicq_m_s16): Likewise.
29533 (__arm_vbicq_m_u8): Likewise.
29534 (__arm_vbicq_m_u32): Likewise.
29535 (__arm_vbicq_m_u16): Likewise.
29536 (__arm_vbrsrq_m_n_s8): Likewise.
29537 (__arm_vbrsrq_m_n_s32): Likewise.
29538 (__arm_vbrsrq_m_n_s16): Likewise.
29539 (__arm_vbrsrq_m_n_u8): Likewise.
29540 (__arm_vbrsrq_m_n_u32): Likewise.
29541 (__arm_vbrsrq_m_n_u16): Likewise.
29542 (__arm_vcaddq_rot270_m_s8): Likewise.
29543 (__arm_vcaddq_rot270_m_s32): Likewise.
29544 (__arm_vcaddq_rot270_m_s16): Likewise.
29545 (__arm_vcaddq_rot270_m_u8): Likewise.
29546 (__arm_vcaddq_rot270_m_u32): Likewise.
29547 (__arm_vcaddq_rot270_m_u16): Likewise.
29548 (__arm_vcaddq_rot90_m_s8): Likewise.
29549 (__arm_vcaddq_rot90_m_s32): Likewise.
29550 (__arm_vcaddq_rot90_m_s16): Likewise.
29551 (__arm_vcaddq_rot90_m_u8): Likewise.
29552 (__arm_vcaddq_rot90_m_u32): Likewise.
29553 (__arm_vcaddq_rot90_m_u16): Likewise.
29554 (__arm_veorq_m_s8): Likewise.
29555 (__arm_veorq_m_s32): Likewise.
29556 (__arm_veorq_m_s16): Likewise.
29557 (__arm_veorq_m_u8): Likewise.
29558 (__arm_veorq_m_u32): Likewise.
29559 (__arm_veorq_m_u16): Likewise.
29560 (__arm_vhaddq_m_n_s8): Likewise.
29561 (__arm_vhaddq_m_n_s32): Likewise.
29562 (__arm_vhaddq_m_n_s16): Likewise.
29563 (__arm_vhaddq_m_n_u8): Likewise.
29564 (__arm_vhaddq_m_n_u32): Likewise.
29565 (__arm_vhaddq_m_n_u16): Likewise.
29566 (__arm_vhaddq_m_s8): Likewise.
29567 (__arm_vhaddq_m_s32): Likewise.
29568 (__arm_vhaddq_m_s16): Likewise.
29569 (__arm_vhaddq_m_u8): Likewise.
29570 (__arm_vhaddq_m_u32): Likewise.
29571 (__arm_vhaddq_m_u16): Likewise.
29572 (__arm_vhcaddq_rot270_m_s8): Likewise.
29573 (__arm_vhcaddq_rot270_m_s32): Likewise.
29574 (__arm_vhcaddq_rot270_m_s16): Likewise.
29575 (__arm_vhcaddq_rot90_m_s8): Likewise.
29576 (__arm_vhcaddq_rot90_m_s32): Likewise.
29577 (__arm_vhcaddq_rot90_m_s16): Likewise.
29578 (__arm_vhsubq_m_n_s8): Likewise.
29579 (__arm_vhsubq_m_n_s32): Likewise.
29580 (__arm_vhsubq_m_n_s16): Likewise.
29581 (__arm_vhsubq_m_n_u8): Likewise.
29582 (__arm_vhsubq_m_n_u32): Likewise.
29583 (__arm_vhsubq_m_n_u16): Likewise.
29584 (__arm_vhsubq_m_s8): Likewise.
29585 (__arm_vhsubq_m_s32): Likewise.
29586 (__arm_vhsubq_m_s16): Likewise.
29587 (__arm_vhsubq_m_u8): Likewise.
29588 (__arm_vhsubq_m_u32): Likewise.
29589 (__arm_vhsubq_m_u16): Likewise.
29590 (__arm_vmaxq_m_s8): Likewise.
29591 (__arm_vmaxq_m_s32): Likewise.
29592 (__arm_vmaxq_m_s16): Likewise.
29593 (__arm_vmaxq_m_u8): Likewise.
29594 (__arm_vmaxq_m_u32): Likewise.
29595 (__arm_vmaxq_m_u16): Likewise.
29596 (__arm_vminq_m_s8): Likewise.
29597 (__arm_vminq_m_s32): Likewise.
29598 (__arm_vminq_m_s16): Likewise.
29599 (__arm_vminq_m_u8): Likewise.
29600 (__arm_vminq_m_u32): Likewise.
29601 (__arm_vminq_m_u16): Likewise.
29602 (__arm_vmladavaq_p_s8): Likewise.
29603 (__arm_vmladavaq_p_s32): Likewise.
29604 (__arm_vmladavaq_p_s16): Likewise.
29605 (__arm_vmladavaq_p_u8): Likewise.
29606 (__arm_vmladavaq_p_u32): Likewise.
29607 (__arm_vmladavaq_p_u16): Likewise.
29608 (__arm_vmladavaxq_p_s8): Likewise.
29609 (__arm_vmladavaxq_p_s32): Likewise.
29610 (__arm_vmladavaxq_p_s16): Likewise.
29611 (__arm_vmlaq_m_n_s8): Likewise.
29612 (__arm_vmlaq_m_n_s32): Likewise.
29613 (__arm_vmlaq_m_n_s16): Likewise.
29614 (__arm_vmlaq_m_n_u8): Likewise.
29615 (__arm_vmlaq_m_n_u32): Likewise.
29616 (__arm_vmlaq_m_n_u16): Likewise.
29617 (__arm_vmlasq_m_n_s8): Likewise.
29618 (__arm_vmlasq_m_n_s32): Likewise.
29619 (__arm_vmlasq_m_n_s16): Likewise.
29620 (__arm_vmlasq_m_n_u8): Likewise.
29621 (__arm_vmlasq_m_n_u32): Likewise.
29622 (__arm_vmlasq_m_n_u16): Likewise.
29623 (__arm_vmlsdavaq_p_s8): Likewise.
29624 (__arm_vmlsdavaq_p_s32): Likewise.
29625 (__arm_vmlsdavaq_p_s16): Likewise.
29626 (__arm_vmlsdavaxq_p_s8): Likewise.
29627 (__arm_vmlsdavaxq_p_s32): Likewise.
29628 (__arm_vmlsdavaxq_p_s16): Likewise.
29629 (__arm_vmulhq_m_s8): Likewise.
29630 (__arm_vmulhq_m_s32): Likewise.
29631 (__arm_vmulhq_m_s16): Likewise.
29632 (__arm_vmulhq_m_u8): Likewise.
29633 (__arm_vmulhq_m_u32): Likewise.
29634 (__arm_vmulhq_m_u16): Likewise.
29635 (__arm_vmullbq_int_m_s8): Likewise.
29636 (__arm_vmullbq_int_m_s32): Likewise.
29637 (__arm_vmullbq_int_m_s16): Likewise.
29638 (__arm_vmullbq_int_m_u8): Likewise.
29639 (__arm_vmullbq_int_m_u32): Likewise.
29640 (__arm_vmullbq_int_m_u16): Likewise.
29641 (__arm_vmulltq_int_m_s8): Likewise.
29642 (__arm_vmulltq_int_m_s32): Likewise.
29643 (__arm_vmulltq_int_m_s16): Likewise.
29644 (__arm_vmulltq_int_m_u8): Likewise.
29645 (__arm_vmulltq_int_m_u32): Likewise.
29646 (__arm_vmulltq_int_m_u16): Likewise.
29647 (__arm_vmulq_m_n_s8): Likewise.
29648 (__arm_vmulq_m_n_s32): Likewise.
29649 (__arm_vmulq_m_n_s16): Likewise.
29650 (__arm_vmulq_m_n_u8): Likewise.
29651 (__arm_vmulq_m_n_u32): Likewise.
29652 (__arm_vmulq_m_n_u16): Likewise.
29653 (__arm_vmulq_m_s8): Likewise.
29654 (__arm_vmulq_m_s32): Likewise.
29655 (__arm_vmulq_m_s16): Likewise.
29656 (__arm_vmulq_m_u8): Likewise.
29657 (__arm_vmulq_m_u32): Likewise.
29658 (__arm_vmulq_m_u16): Likewise.
29659 (__arm_vornq_m_s8): Likewise.
29660 (__arm_vornq_m_s32): Likewise.
29661 (__arm_vornq_m_s16): Likewise.
29662 (__arm_vornq_m_u8): Likewise.
29663 (__arm_vornq_m_u32): Likewise.
29664 (__arm_vornq_m_u16): Likewise.
29665 (__arm_vorrq_m_s8): Likewise.
29666 (__arm_vorrq_m_s32): Likewise.
29667 (__arm_vorrq_m_s16): Likewise.
29668 (__arm_vorrq_m_u8): Likewise.
29669 (__arm_vorrq_m_u32): Likewise.
29670 (__arm_vorrq_m_u16): Likewise.
29671 (__arm_vqaddq_m_n_s8): Likewise.
29672 (__arm_vqaddq_m_n_s32): Likewise.
29673 (__arm_vqaddq_m_n_s16): Likewise.
29674 (__arm_vqaddq_m_n_u8): Likewise.
29675 (__arm_vqaddq_m_n_u32): Likewise.
29676 (__arm_vqaddq_m_n_u16): Likewise.
29677 (__arm_vqaddq_m_s8): Likewise.
29678 (__arm_vqaddq_m_s32): Likewise.
29679 (__arm_vqaddq_m_s16): Likewise.
29680 (__arm_vqaddq_m_u8): Likewise.
29681 (__arm_vqaddq_m_u32): Likewise.
29682 (__arm_vqaddq_m_u16): Likewise.
29683 (__arm_vqdmladhq_m_s8): Likewise.
29684 (__arm_vqdmladhq_m_s32): Likewise.
29685 (__arm_vqdmladhq_m_s16): Likewise.
29686 (__arm_vqdmladhxq_m_s8): Likewise.
29687 (__arm_vqdmladhxq_m_s32): Likewise.
29688 (__arm_vqdmladhxq_m_s16): Likewise.
29689 (__arm_vqdmlahq_m_n_s8): Likewise.
29690 (__arm_vqdmlahq_m_n_s32): Likewise.
29691 (__arm_vqdmlahq_m_n_s16): Likewise.
29692 (__arm_vqdmlahq_m_n_u8): Likewise.
29693 (__arm_vqdmlahq_m_n_u32): Likewise.
29694 (__arm_vqdmlahq_m_n_u16): Likewise.
29695 (__arm_vqdmlsdhq_m_s8): Likewise.
29696 (__arm_vqdmlsdhq_m_s32): Likewise.
29697 (__arm_vqdmlsdhq_m_s16): Likewise.
29698 (__arm_vqdmlsdhxq_m_s8): Likewise.
29699 (__arm_vqdmlsdhxq_m_s32): Likewise.
29700 (__arm_vqdmlsdhxq_m_s16): Likewise.
29701 (__arm_vqdmulhq_m_n_s8): Likewise.
29702 (__arm_vqdmulhq_m_n_s32): Likewise.
29703 (__arm_vqdmulhq_m_n_s16): Likewise.
29704 (__arm_vqdmulhq_m_s8): Likewise.
29705 (__arm_vqdmulhq_m_s32): Likewise.
29706 (__arm_vqdmulhq_m_s16): Likewise.
29707 (__arm_vqrdmladhq_m_s8): Likewise.
29708 (__arm_vqrdmladhq_m_s32): Likewise.
29709 (__arm_vqrdmladhq_m_s16): Likewise.
29710 (__arm_vqrdmladhxq_m_s8): Likewise.
29711 (__arm_vqrdmladhxq_m_s32): Likewise.
29712 (__arm_vqrdmladhxq_m_s16): Likewise.
29713 (__arm_vqrdmlahq_m_n_s8): Likewise.
29714 (__arm_vqrdmlahq_m_n_s32): Likewise.
29715 (__arm_vqrdmlahq_m_n_s16): Likewise.
29716 (__arm_vqrdmlahq_m_n_u8): Likewise.
29717 (__arm_vqrdmlahq_m_n_u32): Likewise.
29718 (__arm_vqrdmlahq_m_n_u16): Likewise.
29719 (__arm_vqrdmlashq_m_n_s8): Likewise.
29720 (__arm_vqrdmlashq_m_n_s32): Likewise.
29721 (__arm_vqrdmlashq_m_n_s16): Likewise.
29722 (__arm_vqrdmlashq_m_n_u8): Likewise.
29723 (__arm_vqrdmlashq_m_n_u32): Likewise.
29724 (__arm_vqrdmlashq_m_n_u16): Likewise.
29725 (__arm_vqrdmlsdhq_m_s8): Likewise.
29726 (__arm_vqrdmlsdhq_m_s32): Likewise.
29727 (__arm_vqrdmlsdhq_m_s16): Likewise.
29728 (__arm_vqrdmlsdhxq_m_s8): Likewise.
29729 (__arm_vqrdmlsdhxq_m_s32): Likewise.
29730 (__arm_vqrdmlsdhxq_m_s16): Likewise.
29731 (__arm_vqrdmulhq_m_n_s8): Likewise.
29732 (__arm_vqrdmulhq_m_n_s32): Likewise.
29733 (__arm_vqrdmulhq_m_n_s16): Likewise.
29734 (__arm_vqrdmulhq_m_s8): Likewise.
29735 (__arm_vqrdmulhq_m_s32): Likewise.
29736 (__arm_vqrdmulhq_m_s16): Likewise.
29737 (__arm_vqrshlq_m_s8): Likewise.
29738 (__arm_vqrshlq_m_s32): Likewise.
29739 (__arm_vqrshlq_m_s16): Likewise.
29740 (__arm_vqrshlq_m_u8): Likewise.
29741 (__arm_vqrshlq_m_u32): Likewise.
29742 (__arm_vqrshlq_m_u16): Likewise.
29743 (__arm_vqshlq_m_n_s8): Likewise.
29744 (__arm_vqshlq_m_n_s32): Likewise.
29745 (__arm_vqshlq_m_n_s16): Likewise.
29746 (__arm_vqshlq_m_n_u8): Likewise.
29747 (__arm_vqshlq_m_n_u32): Likewise.
29748 (__arm_vqshlq_m_n_u16): Likewise.
29749 (__arm_vqshlq_m_s8): Likewise.
29750 (__arm_vqshlq_m_s32): Likewise.
29751 (__arm_vqshlq_m_s16): Likewise.
29752 (__arm_vqshlq_m_u8): Likewise.
29753 (__arm_vqshlq_m_u32): Likewise.
29754 (__arm_vqshlq_m_u16): Likewise.
29755 (__arm_vqsubq_m_n_s8): Likewise.
29756 (__arm_vqsubq_m_n_s32): Likewise.
29757 (__arm_vqsubq_m_n_s16): Likewise.
29758 (__arm_vqsubq_m_n_u8): Likewise.
29759 (__arm_vqsubq_m_n_u32): Likewise.
29760 (__arm_vqsubq_m_n_u16): Likewise.
29761 (__arm_vqsubq_m_s8): Likewise.
29762 (__arm_vqsubq_m_s32): Likewise.
29763 (__arm_vqsubq_m_s16): Likewise.
29764 (__arm_vqsubq_m_u8): Likewise.
29765 (__arm_vqsubq_m_u32): Likewise.
29766 (__arm_vqsubq_m_u16): Likewise.
29767 (__arm_vrhaddq_m_s8): Likewise.
29768 (__arm_vrhaddq_m_s32): Likewise.
29769 (__arm_vrhaddq_m_s16): Likewise.
29770 (__arm_vrhaddq_m_u8): Likewise.
29771 (__arm_vrhaddq_m_u32): Likewise.
29772 (__arm_vrhaddq_m_u16): Likewise.
29773 (__arm_vrmulhq_m_s8): Likewise.
29774 (__arm_vrmulhq_m_s32): Likewise.
29775 (__arm_vrmulhq_m_s16): Likewise.
29776 (__arm_vrmulhq_m_u8): Likewise.
29777 (__arm_vrmulhq_m_u32): Likewise.
29778 (__arm_vrmulhq_m_u16): Likewise.
29779 (__arm_vrshlq_m_s8): Likewise.
29780 (__arm_vrshlq_m_s32): Likewise.
29781 (__arm_vrshlq_m_s16): Likewise.
29782 (__arm_vrshlq_m_u8): Likewise.
29783 (__arm_vrshlq_m_u32): Likewise.
29784 (__arm_vrshlq_m_u16): Likewise.
29785 (__arm_vrshrq_m_n_s8): Likewise.
29786 (__arm_vrshrq_m_n_s32): Likewise.
29787 (__arm_vrshrq_m_n_s16): Likewise.
29788 (__arm_vrshrq_m_n_u8): Likewise.
29789 (__arm_vrshrq_m_n_u32): Likewise.
29790 (__arm_vrshrq_m_n_u16): Likewise.
29791 (__arm_vshlq_m_n_s8): Likewise.
29792 (__arm_vshlq_m_n_s32): Likewise.
29793 (__arm_vshlq_m_n_s16): Likewise.
29794 (__arm_vshlq_m_n_u8): Likewise.
29795 (__arm_vshlq_m_n_u32): Likewise.
29796 (__arm_vshlq_m_n_u16): Likewise.
29797 (__arm_vshrq_m_n_s8): Likewise.
29798 (__arm_vshrq_m_n_s32): Likewise.
29799 (__arm_vshrq_m_n_s16): Likewise.
29800 (__arm_vshrq_m_n_u8): Likewise.
29801 (__arm_vshrq_m_n_u32): Likewise.
29802 (__arm_vshrq_m_n_u16): Likewise.
29803 (__arm_vsliq_m_n_s8): Likewise.
29804 (__arm_vsliq_m_n_s32): Likewise.
29805 (__arm_vsliq_m_n_s16): Likewise.
29806 (__arm_vsliq_m_n_u8): Likewise.
29807 (__arm_vsliq_m_n_u32): Likewise.
29808 (__arm_vsliq_m_n_u16): Likewise.
29809 (__arm_vsubq_m_n_s8): Likewise.
29810 (__arm_vsubq_m_n_s32): Likewise.
29811 (__arm_vsubq_m_n_s16): Likewise.
29812 (__arm_vsubq_m_n_u8): Likewise.
29813 (__arm_vsubq_m_n_u32): Likewise.
29814 (__arm_vsubq_m_n_u16): Likewise.
29815 (vqdmladhq_m): Define polymorphic variant.
29816 (vqdmladhxq_m): Likewise.
29817 (vqdmlsdhq_m): Likewise.
29818 (vqdmlsdhxq_m): Likewise.
29819 (vabdq_m): Likewise.
29820 (vandq_m): Likewise.
29821 (vbicq_m): Likewise.
29822 (vbrsrq_m_n): Likewise.
29823 (vcaddq_rot270_m): Likewise.
29824 (vcaddq_rot90_m): Likewise.
29825 (veorq_m): Likewise.
29826 (vmaxq_m): Likewise.
29827 (vminq_m): Likewise.
29828 (vmladavaq_p): Likewise.
29829 (vmlaq_m_n): Likewise.
29830 (vmlasq_m_n): Likewise.
29831 (vmulhq_m): Likewise.
29832 (vmullbq_int_m): Likewise.
29833 (vmulltq_int_m): Likewise.
29834 (vornq_m): Likewise.
29835 (vorrq_m): Likewise.
29836 (vqdmlahq_m_n): Likewise.
29837 (vqrdmlahq_m_n): Likewise.
29838 (vqrdmlashq_m_n): Likewise.
29839 (vqrshlq_m): Likewise.
29840 (vqshlq_m_n): Likewise.
29841 (vqshlq_m): Likewise.
29842 (vrhaddq_m): Likewise.
29843 (vrmulhq_m): Likewise.
29844 (vrshlq_m): Likewise.
29845 (vrshrq_m_n): Likewise.
29846 (vshlq_m_n): Likewise.
29847 (vshrq_m_n): Likewise.
29848 (vsliq_m): Likewise.
29849 (vaddq_m_n): Likewise.
29850 (vaddq_m): Likewise.
29851 (vhaddq_m_n): Likewise.
29852 (vhaddq_m): Likewise.
29853 (vhcaddq_rot270_m): Likewise.
29854 (vhcaddq_rot90_m): Likewise.
29855 (vhsubq_m): Likewise.
29856 (vhsubq_m_n): Likewise.
29857 (vmulq_m_n): Likewise.
29858 (vmulq_m): Likewise.
29859 (vqaddq_m_n): Likewise.
29860 (vqaddq_m): Likewise.
29861 (vqdmulhq_m_n): Likewise.
29862 (vqdmulhq_m): Likewise.
29863 (vsubq_m_n): Likewise.
29864 (vsliq_m_n): Likewise.
29865 (vqsubq_m_n): Likewise.
29866 (vqsubq_m): Likewise.
29867 (vqrdmulhq_m): Likewise.
29868 (vqrdmulhq_m_n): Likewise.
29869 (vqrdmlsdhxq_m): Likewise.
29870 (vqrdmlsdhq_m): Likewise.
29871 (vqrdmladhq_m): Likewise.
29872 (vqrdmladhxq_m): Likewise.
29873 (vmlsdavaxq_p): Likewise.
29874 (vmlsdavaq_p): Likewise.
29875 (vmladavaxq_p): Likewise.
29876 * config/arm/arm_mve_builtins.def (QUADOP_NONE_NONE_NONE_IMM_UNONE): Use
29877 builtin qualifier.
29878 (QUADOP_NONE_NONE_NONE_NONE_UNONE): Likewise.
29879 (QUADOP_UNONE_UNONE_UNONE_IMM_UNONE): Likewise.
29880 (QUADOP_UNONE_UNONE_UNONE_NONE_UNONE): Likewise.
29881 (QUADOP_UNONE_UNONE_UNONE_UNONE_UNONE): Likewise.
29882 * config/arm/mve.md (VHSUBQ_M): Define iterators.
29883 (VSLIQ_M_N): Likewise.
29884 (VQRDMLAHQ_M_N): Likewise.
29885 (VRSHLQ_M): Likewise.
29886 (VMINQ_M): Likewise.
29887 (VMULLBQ_INT_M): Likewise.
29888 (VMULHQ_M): Likewise.
29889 (VMULQ_M): Likewise.
29890 (VHSUBQ_M_N): Likewise.
29891 (VHADDQ_M_N): Likewise.
29892 (VORRQ_M): Likewise.
29893 (VRMULHQ_M): Likewise.
29894 (VQADDQ_M): Likewise.
29895 (VRSHRQ_M_N): Likewise.
29896 (VQSUBQ_M_N): Likewise.
29897 (VADDQ_M): Likewise.
29898 (VORNQ_M): Likewise.
29899 (VQDMLAHQ_M_N): Likewise.
29900 (VRHADDQ_M): Likewise.
29901 (VQSHLQ_M): Likewise.
29902 (VANDQ_M): Likewise.
29903 (VBICQ_M): Likewise.
29904 (VSHLQ_M_N): Likewise.
29905 (VCADDQ_ROT270_M): Likewise.
29906 (VQRSHLQ_M): Likewise.
29907 (VQADDQ_M_N): Likewise.
29908 (VADDQ_M_N): Likewise.
29909 (VMAXQ_M): Likewise.
29910 (VQSUBQ_M): Likewise.
29911 (VMLASQ_M_N): Likewise.
29912 (VMLADAVAQ_P): Likewise.
29913 (VBRSRQ_M_N): Likewise.
29914 (VMULQ_M_N): Likewise.
29915 (VCADDQ_ROT90_M): Likewise.
29916 (VMULLTQ_INT_M): Likewise.
29917 (VEORQ_M): Likewise.
29918 (VSHRQ_M_N): Likewise.
29919 (VSUBQ_M_N): Likewise.
29920 (VHADDQ_M): Likewise.
29921 (VABDQ_M): Likewise.
29922 (VQRDMLASHQ_M_N): Likewise.
29923 (VMLAQ_M_N): Likewise.
29924 (VQSHLQ_M_N): Likewise.
29925 (mve_vabdq_m_<supf><mode>): Define RTL pattern.
29926 (mve_vaddq_m_n_<supf><mode>): Likewise.
29927 (mve_vaddq_m_<supf><mode>): Likewise.
29928 (mve_vandq_m_<supf><mode>): Likewise.
29929 (mve_vbicq_m_<supf><mode>): Likewise.
29930 (mve_vbrsrq_m_n_<supf><mode>): Likewise.
29931 (mve_vcaddq_rot270_m_<supf><mode>): Likewise.
29932 (mve_vcaddq_rot90_m_<supf><mode>): Likewise.
29933 (mve_veorq_m_<supf><mode>): Likewise.
29934 (mve_vhaddq_m_n_<supf><mode>): Likewise.
29935 (mve_vhaddq_m_<supf><mode>): Likewise.
29936 (mve_vhsubq_m_n_<supf><mode>): Likewise.
29937 (mve_vhsubq_m_<supf><mode>): Likewise.
29938 (mve_vmaxq_m_<supf><mode>): Likewise.
29939 (mve_vminq_m_<supf><mode>): Likewise.
29940 (mve_vmladavaq_p_<supf><mode>): Likewise.
29941 (mve_vmlaq_m_n_<supf><mode>): Likewise.
29942 (mve_vmlasq_m_n_<supf><mode>): Likewise.
29943 (mve_vmulhq_m_<supf><mode>): Likewise.
29944 (mve_vmullbq_int_m_<supf><mode>): Likewise.
29945 (mve_vmulltq_int_m_<supf><mode>): Likewise.
29946 (mve_vmulq_m_n_<supf><mode>): Likewise.
29947 (mve_vmulq_m_<supf><mode>): Likewise.
29948 (mve_vornq_m_<supf><mode>): Likewise.
29949 (mve_vorrq_m_<supf><mode>): Likewise.
29950 (mve_vqaddq_m_n_<supf><mode>): Likewise.
29951 (mve_vqaddq_m_<supf><mode>): Likewise.
29952 (mve_vqdmlahq_m_n_<supf><mode>): Likewise.
29953 (mve_vqrdmlahq_m_n_<supf><mode>): Likewise.
29954 (mve_vqrdmlashq_m_n_<supf><mode>): Likewise.
29955 (mve_vqrshlq_m_<supf><mode>): Likewise.
29956 (mve_vqshlq_m_n_<supf><mode>): Likewise.
29957 (mve_vqshlq_m_<supf><mode>): Likewise.
29958 (mve_vqsubq_m_n_<supf><mode>): Likewise.
29959 (mve_vqsubq_m_<supf><mode>): Likewise.
29960 (mve_vrhaddq_m_<supf><mode>): Likewise.
29961 (mve_vrmulhq_m_<supf><mode>): Likewise.
29962 (mve_vrshlq_m_<supf><mode>): Likewise.
29963 (mve_vrshrq_m_n_<supf><mode>): Likewise.
29964 (mve_vshlq_m_n_<supf><mode>): Likewise.
29965 (mve_vshrq_m_n_<supf><mode>): Likewise.
29966 (mve_vsliq_m_n_<supf><mode>): Likewise.
29967 (mve_vsubq_m_n_<supf><mode>): Likewise.
29968 (mve_vhcaddq_rot270_m_s<mode>): Likewise.
29969 (mve_vhcaddq_rot90_m_s<mode>): Likewise.
29970 (mve_vmladavaxq_p_s<mode>): Likewise.
29971 (mve_vmlsdavaq_p_s<mode>): Likewise.
29972 (mve_vmlsdavaxq_p_s<mode>): Likewise.
29973 (mve_vqdmladhq_m_s<mode>): Likewise.
29974 (mve_vqdmladhxq_m_s<mode>): Likewise.
29975 (mve_vqdmlsdhq_m_s<mode>): Likewise.
29976 (mve_vqdmlsdhxq_m_s<mode>): Likewise.
29977 (mve_vqdmulhq_m_n_s<mode>): Likewise.
29978 (mve_vqdmulhq_m_s<mode>): Likewise.
29979 (mve_vqrdmladhq_m_s<mode>): Likewise.
29980 (mve_vqrdmladhxq_m_s<mode>): Likewise.
29981 (mve_vqrdmlsdhq_m_s<mode>): Likewise.
29982 (mve_vqrdmlsdhxq_m_s<mode>): Likewise.
29983 (mve_vqrdmulhq_m_n_s<mode>): Likewise.
29984 (mve_vqrdmulhq_m_s<mode>): Likewise.
29985
29986 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
29987 Mihail Ionescu <mihail.ionescu@arm.com>
29988 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
29989
29990 * config/arm/arm-builtins.c (QUADOP_UNONE_UNONE_NONE_NONE_UNONE_QUALIFIERS):
29991 Define builtin qualifier.
29992 (QUADOP_NONE_NONE_NONE_NONE_UNONE_QUALIFIERS): Likewise.
29993 (QUADOP_NONE_NONE_NONE_IMM_UNONE_QUALIFIERS): Likewise.
29994 (QUADOP_UNONE_UNONE_UNONE_UNONE_UNONE_QUALIFIERS): Likewise.
29995 (QUADOP_UNONE_UNONE_NONE_IMM_UNONE_QUALIFIERS): Likewise.
29996 (QUADOP_NONE_NONE_UNONE_IMM_UNONE_QUALIFIERS): Likewise.
29997 (QUADOP_UNONE_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Likewise.
29998 (QUADOP_UNONE_UNONE_UNONE_NONE_UNONE_QUALIFIERS): Likewise.
29999 * config/arm/arm_mve.h (vsriq_m_n_s8): Define macro.
30000 (vsubq_m_s8): Likewise.
30001 (vcvtq_m_n_f16_u16): Likewise.
30002 (vqshluq_m_n_s8): Likewise.
30003 (vabavq_p_s8): Likewise.
30004 (vsriq_m_n_u8): Likewise.
30005 (vshlq_m_u8): Likewise.
30006 (vsubq_m_u8): Likewise.
30007 (vabavq_p_u8): Likewise.
30008 (vshlq_m_s8): Likewise.
30009 (vcvtq_m_n_f16_s16): Likewise.
30010 (vsriq_m_n_s16): Likewise.
30011 (vsubq_m_s16): Likewise.
30012 (vcvtq_m_n_f32_u32): Likewise.
30013 (vqshluq_m_n_s16): Likewise.
30014 (vabavq_p_s16): Likewise.
30015 (vsriq_m_n_u16): Likewise.
30016 (vshlq_m_u16): Likewise.
30017 (vsubq_m_u16): Likewise.
30018 (vabavq_p_u16): Likewise.
30019 (vshlq_m_s16): Likewise.
30020 (vcvtq_m_n_f32_s32): Likewise.
30021 (vsriq_m_n_s32): Likewise.
30022 (vsubq_m_s32): Likewise.
30023 (vqshluq_m_n_s32): Likewise.
30024 (vabavq_p_s32): Likewise.
30025 (vsriq_m_n_u32): Likewise.
30026 (vshlq_m_u32): Likewise.
30027 (vsubq_m_u32): Likewise.
30028 (vabavq_p_u32): Likewise.
30029 (vshlq_m_s32): Likewise.
30030 (__arm_vsriq_m_n_s8): Define intrinsic.
30031 (__arm_vsubq_m_s8): Likewise.
30032 (__arm_vqshluq_m_n_s8): Likewise.
30033 (__arm_vabavq_p_s8): Likewise.
30034 (__arm_vsriq_m_n_u8): Likewise.
30035 (__arm_vshlq_m_u8): Likewise.
30036 (__arm_vsubq_m_u8): Likewise.
30037 (__arm_vabavq_p_u8): Likewise.
30038 (__arm_vshlq_m_s8): Likewise.
30039 (__arm_vsriq_m_n_s16): Likewise.
30040 (__arm_vsubq_m_s16): Likewise.
30041 (__arm_vqshluq_m_n_s16): Likewise.
30042 (__arm_vabavq_p_s16): Likewise.
30043 (__arm_vsriq_m_n_u16): Likewise.
30044 (__arm_vshlq_m_u16): Likewise.
30045 (__arm_vsubq_m_u16): Likewise.
30046 (__arm_vabavq_p_u16): Likewise.
30047 (__arm_vshlq_m_s16): Likewise.
30048 (__arm_vsriq_m_n_s32): Likewise.
30049 (__arm_vsubq_m_s32): Likewise.
30050 (__arm_vqshluq_m_n_s32): Likewise.
30051 (__arm_vabavq_p_s32): Likewise.
30052 (__arm_vsriq_m_n_u32): Likewise.
30053 (__arm_vshlq_m_u32): Likewise.
30054 (__arm_vsubq_m_u32): Likewise.
30055 (__arm_vabavq_p_u32): Likewise.
30056 (__arm_vshlq_m_s32): Likewise.
30057 (__arm_vcvtq_m_n_f16_u16): Likewise.
30058 (__arm_vcvtq_m_n_f16_s16): Likewise.
30059 (__arm_vcvtq_m_n_f32_u32): Likewise.
30060 (__arm_vcvtq_m_n_f32_s32): Likewise.
30061 (vcvtq_m_n): Define polymorphic variant.
30062 (vqshluq_m_n): Likewise.
30063 (vshlq_m): Likewise.
30064 (vsriq_m_n): Likewise.
30065 (vsubq_m): Likewise.
30066 (vabavq_p): Likewise.
30067 * config/arm/arm_mve_builtins.def
30068 (QUADOP_UNONE_UNONE_NONE_NONE_UNONE_QUALIFIERS): Use builtin qualifier.
30069 (QUADOP_NONE_NONE_NONE_NONE_UNONE_QUALIFIERS): Likewise.
30070 (QUADOP_NONE_NONE_NONE_IMM_UNONE_QUALIFIERS): Likewise.
30071 (QUADOP_UNONE_UNONE_UNONE_UNONE_UNONE_QUALIFIERS): Likewise.
30072 (QUADOP_UNONE_UNONE_NONE_IMM_UNONE_QUALIFIERS): Likewise.
30073 (QUADOP_NONE_NONE_UNONE_IMM_UNONE_QUALIFIERS): Likewise.
30074 (QUADOP_UNONE_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Likewise.
30075 (QUADOP_UNONE_UNONE_UNONE_NONE_UNONE_QUALIFIERS): Likewise.
30076 * config/arm/mve.md (VABAVQ_P): Define iterator.
30077 (VSHLQ_M): Likewise.
30078 (VSRIQ_M_N): Likewise.
30079 (VSUBQ_M): Likewise.
30080 (VCVTQ_M_N_TO_F): Likewise.
30081 (mve_vabavq_p_<supf><mode>): Define RTL pattern.
30082 (mve_vqshluq_m_n_s<mode>): Likewise.
30083 (mve_vshlq_m_<supf><mode>): Likewise.
30084 (mve_vsriq_m_n_<supf><mode>): Likewise.
30085 (mve_vsubq_m_<supf><mode>): Likewise.
30086 (mve_vcvtq_m_n_to_f_<supf><mode>): Likewise.
30087
30088 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
30089 Mihail Ionescu <mihail.ionescu@arm.com>
30090 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
30091
30092 * config/arm/arm_mve.h (vrmlaldavhaxq_s32): Define macro.
30093 (vrmlsldavhaq_s32): Likewise.
30094 (vrmlsldavhaxq_s32): Likewise.
30095 (vaddlvaq_p_s32): Likewise.
30096 (vcvtbq_m_f16_f32): Likewise.
30097 (vcvtbq_m_f32_f16): Likewise.
30098 (vcvttq_m_f16_f32): Likewise.
30099 (vcvttq_m_f32_f16): Likewise.
30100 (vrev16q_m_s8): Likewise.
30101 (vrev32q_m_f16): Likewise.
30102 (vrmlaldavhq_p_s32): Likewise.
30103 (vrmlaldavhxq_p_s32): Likewise.
30104 (vrmlsldavhq_p_s32): Likewise.
30105 (vrmlsldavhxq_p_s32): Likewise.
30106 (vaddlvaq_p_u32): Likewise.
30107 (vrev16q_m_u8): Likewise.
30108 (vrmlaldavhq_p_u32): Likewise.
30109 (vmvnq_m_n_s16): Likewise.
30110 (vorrq_m_n_s16): Likewise.
30111 (vqrshrntq_n_s16): Likewise.
30112 (vqshrnbq_n_s16): Likewise.
30113 (vqshrntq_n_s16): Likewise.
30114 (vrshrnbq_n_s16): Likewise.
30115 (vrshrntq_n_s16): Likewise.
30116 (vshrnbq_n_s16): Likewise.
30117 (vshrntq_n_s16): Likewise.
30118 (vcmlaq_f16): Likewise.
30119 (vcmlaq_rot180_f16): Likewise.
30120 (vcmlaq_rot270_f16): Likewise.
30121 (vcmlaq_rot90_f16): Likewise.
30122 (vfmaq_f16): Likewise.
30123 (vfmaq_n_f16): Likewise.
30124 (vfmasq_n_f16): Likewise.
30125 (vfmsq_f16): Likewise.
30126 (vmlaldavaq_s16): Likewise.
30127 (vmlaldavaxq_s16): Likewise.
30128 (vmlsldavaq_s16): Likewise.
30129 (vmlsldavaxq_s16): Likewise.
30130 (vabsq_m_f16): Likewise.
30131 (vcvtmq_m_s16_f16): Likewise.
30132 (vcvtnq_m_s16_f16): Likewise.
30133 (vcvtpq_m_s16_f16): Likewise.
30134 (vcvtq_m_s16_f16): Likewise.
30135 (vdupq_m_n_f16): Likewise.
30136 (vmaxnmaq_m_f16): Likewise.
30137 (vmaxnmavq_p_f16): Likewise.
30138 (vmaxnmvq_p_f16): Likewise.
30139 (vminnmaq_m_f16): Likewise.
30140 (vminnmavq_p_f16): Likewise.
30141 (vminnmvq_p_f16): Likewise.
30142 (vmlaldavq_p_s16): Likewise.
30143 (vmlaldavxq_p_s16): Likewise.
30144 (vmlsldavq_p_s16): Likewise.
30145 (vmlsldavxq_p_s16): Likewise.
30146 (vmovlbq_m_s8): Likewise.
30147 (vmovltq_m_s8): Likewise.
30148 (vmovnbq_m_s16): Likewise.
30149 (vmovntq_m_s16): Likewise.
30150 (vnegq_m_f16): Likewise.
30151 (vpselq_f16): Likewise.
30152 (vqmovnbq_m_s16): Likewise.
30153 (vqmovntq_m_s16): Likewise.
30154 (vrev32q_m_s8): Likewise.
30155 (vrev64q_m_f16): Likewise.
30156 (vrndaq_m_f16): Likewise.
30157 (vrndmq_m_f16): Likewise.
30158 (vrndnq_m_f16): Likewise.
30159 (vrndpq_m_f16): Likewise.
30160 (vrndq_m_f16): Likewise.
30161 (vrndxq_m_f16): Likewise.
30162 (vcmpeqq_m_n_f16): Likewise.
30163 (vcmpgeq_m_f16): Likewise.
30164 (vcmpgeq_m_n_f16): Likewise.
30165 (vcmpgtq_m_f16): Likewise.
30166 (vcmpgtq_m_n_f16): Likewise.
30167 (vcmpleq_m_f16): Likewise.
30168 (vcmpleq_m_n_f16): Likewise.
30169 (vcmpltq_m_f16): Likewise.
30170 (vcmpltq_m_n_f16): Likewise.
30171 (vcmpneq_m_f16): Likewise.
30172 (vcmpneq_m_n_f16): Likewise.
30173 (vmvnq_m_n_u16): Likewise.
30174 (vorrq_m_n_u16): Likewise.
30175 (vqrshruntq_n_s16): Likewise.
30176 (vqshrunbq_n_s16): Likewise.
30177 (vqshruntq_n_s16): Likewise.
30178 (vcvtmq_m_u16_f16): Likewise.
30179 (vcvtnq_m_u16_f16): Likewise.
30180 (vcvtpq_m_u16_f16): Likewise.
30181 (vcvtq_m_u16_f16): Likewise.
30182 (vqmovunbq_m_s16): Likewise.
30183 (vqmovuntq_m_s16): Likewise.
30184 (vqrshrntq_n_u16): Likewise.
30185 (vqshrnbq_n_u16): Likewise.
30186 (vqshrntq_n_u16): Likewise.
30187 (vrshrnbq_n_u16): Likewise.
30188 (vrshrntq_n_u16): Likewise.
30189 (vshrnbq_n_u16): Likewise.
30190 (vshrntq_n_u16): Likewise.
30191 (vmlaldavaq_u16): Likewise.
30192 (vmlaldavaxq_u16): Likewise.
30193 (vmlaldavq_p_u16): Likewise.
30194 (vmlaldavxq_p_u16): Likewise.
30195 (vmovlbq_m_u8): Likewise.
30196 (vmovltq_m_u8): Likewise.
30197 (vmovnbq_m_u16): Likewise.
30198 (vmovntq_m_u16): Likewise.
30199 (vqmovnbq_m_u16): Likewise.
30200 (vqmovntq_m_u16): Likewise.
30201 (vrev32q_m_u8): Likewise.
30202 (vmvnq_m_n_s32): Likewise.
30203 (vorrq_m_n_s32): Likewise.
30204 (vqrshrntq_n_s32): Likewise.
30205 (vqshrnbq_n_s32): Likewise.
30206 (vqshrntq_n_s32): Likewise.
30207 (vrshrnbq_n_s32): Likewise.
30208 (vrshrntq_n_s32): Likewise.
30209 (vshrnbq_n_s32): Likewise.
30210 (vshrntq_n_s32): Likewise.
30211 (vcmlaq_f32): Likewise.
30212 (vcmlaq_rot180_f32): Likewise.
30213 (vcmlaq_rot270_f32): Likewise.
30214 (vcmlaq_rot90_f32): Likewise.
30215 (vfmaq_f32): Likewise.
30216 (vfmaq_n_f32): Likewise.
30217 (vfmasq_n_f32): Likewise.
30218 (vfmsq_f32): Likewise.
30219 (vmlaldavaq_s32): Likewise.
30220 (vmlaldavaxq_s32): Likewise.
30221 (vmlsldavaq_s32): Likewise.
30222 (vmlsldavaxq_s32): Likewise.
30223 (vabsq_m_f32): Likewise.
30224 (vcvtmq_m_s32_f32): Likewise.
30225 (vcvtnq_m_s32_f32): Likewise.
30226 (vcvtpq_m_s32_f32): Likewise.
30227 (vcvtq_m_s32_f32): Likewise.
30228 (vdupq_m_n_f32): Likewise.
30229 (vmaxnmaq_m_f32): Likewise.
30230 (vmaxnmavq_p_f32): Likewise.
30231 (vmaxnmvq_p_f32): Likewise.
30232 (vminnmaq_m_f32): Likewise.
30233 (vminnmavq_p_f32): Likewise.
30234 (vminnmvq_p_f32): Likewise.
30235 (vmlaldavq_p_s32): Likewise.
30236 (vmlaldavxq_p_s32): Likewise.
30237 (vmlsldavq_p_s32): Likewise.
30238 (vmlsldavxq_p_s32): Likewise.
30239 (vmovlbq_m_s16): Likewise.
30240 (vmovltq_m_s16): Likewise.
30241 (vmovnbq_m_s32): Likewise.
30242 (vmovntq_m_s32): Likewise.
30243 (vnegq_m_f32): Likewise.
30244 (vpselq_f32): Likewise.
30245 (vqmovnbq_m_s32): Likewise.
30246 (vqmovntq_m_s32): Likewise.
30247 (vrev32q_m_s16): Likewise.
30248 (vrev64q_m_f32): Likewise.
30249 (vrndaq_m_f32): Likewise.
30250 (vrndmq_m_f32): Likewise.
30251 (vrndnq_m_f32): Likewise.
30252 (vrndpq_m_f32): Likewise.
30253 (vrndq_m_f32): Likewise.
30254 (vrndxq_m_f32): Likewise.
30255 (vcmpeqq_m_n_f32): Likewise.
30256 (vcmpgeq_m_f32): Likewise.
30257 (vcmpgeq_m_n_f32): Likewise.
30258 (vcmpgtq_m_f32): Likewise.
30259 (vcmpgtq_m_n_f32): Likewise.
30260 (vcmpleq_m_f32): Likewise.
30261 (vcmpleq_m_n_f32): Likewise.
30262 (vcmpltq_m_f32): Likewise.
30263 (vcmpltq_m_n_f32): Likewise.
30264 (vcmpneq_m_f32): Likewise.
30265 (vcmpneq_m_n_f32): Likewise.
30266 (vmvnq_m_n_u32): Likewise.
30267 (vorrq_m_n_u32): Likewise.
30268 (vqrshruntq_n_s32): Likewise.
30269 (vqshrunbq_n_s32): Likewise.
30270 (vqshruntq_n_s32): Likewise.
30271 (vcvtmq_m_u32_f32): Likewise.
30272 (vcvtnq_m_u32_f32): Likewise.
30273 (vcvtpq_m_u32_f32): Likewise.
30274 (vcvtq_m_u32_f32): Likewise.
30275 (vqmovunbq_m_s32): Likewise.
30276 (vqmovuntq_m_s32): Likewise.
30277 (vqrshrntq_n_u32): Likewise.
30278 (vqshrnbq_n_u32): Likewise.
30279 (vqshrntq_n_u32): Likewise.
30280 (vrshrnbq_n_u32): Likewise.
30281 (vrshrntq_n_u32): Likewise.
30282 (vshrnbq_n_u32): Likewise.
30283 (vshrntq_n_u32): Likewise.
30284 (vmlaldavaq_u32): Likewise.
30285 (vmlaldavaxq_u32): Likewise.
30286 (vmlaldavq_p_u32): Likewise.
30287 (vmlaldavxq_p_u32): Likewise.
30288 (vmovlbq_m_u16): Likewise.
30289 (vmovltq_m_u16): Likewise.
30290 (vmovnbq_m_u32): Likewise.
30291 (vmovntq_m_u32): Likewise.
30292 (vqmovnbq_m_u32): Likewise.
30293 (vqmovntq_m_u32): Likewise.
30294 (vrev32q_m_u16): Likewise.
30295 (__arm_vrmlaldavhaxq_s32): Define intrinsic.
30296 (__arm_vrmlsldavhaq_s32): Likewise.
30297 (__arm_vrmlsldavhaxq_s32): Likewise.
30298 (__arm_vaddlvaq_p_s32): Likewise.
30299 (__arm_vrev16q_m_s8): Likewise.
30300 (__arm_vrmlaldavhq_p_s32): Likewise.
30301 (__arm_vrmlaldavhxq_p_s32): Likewise.
30302 (__arm_vrmlsldavhq_p_s32): Likewise.
30303 (__arm_vrmlsldavhxq_p_s32): Likewise.
30304 (__arm_vaddlvaq_p_u32): Likewise.
30305 (__arm_vrev16q_m_u8): Likewise.
30306 (__arm_vrmlaldavhq_p_u32): Likewise.
30307 (__arm_vmvnq_m_n_s16): Likewise.
30308 (__arm_vorrq_m_n_s16): Likewise.
30309 (__arm_vqrshrntq_n_s16): Likewise.
30310 (__arm_vqshrnbq_n_s16): Likewise.
30311 (__arm_vqshrntq_n_s16): Likewise.
30312 (__arm_vrshrnbq_n_s16): Likewise.
30313 (__arm_vrshrntq_n_s16): Likewise.
30314 (__arm_vshrnbq_n_s16): Likewise.
30315 (__arm_vshrntq_n_s16): Likewise.
30316 (__arm_vmlaldavaq_s16): Likewise.
30317 (__arm_vmlaldavaxq_s16): Likewise.
30318 (__arm_vmlsldavaq_s16): Likewise.
30319 (__arm_vmlsldavaxq_s16): Likewise.
30320 (__arm_vmlaldavq_p_s16): Likewise.
30321 (__arm_vmlaldavxq_p_s16): Likewise.
30322 (__arm_vmlsldavq_p_s16): Likewise.
30323 (__arm_vmlsldavxq_p_s16): Likewise.
30324 (__arm_vmovlbq_m_s8): Likewise.
30325 (__arm_vmovltq_m_s8): Likewise.
30326 (__arm_vmovnbq_m_s16): Likewise.
30327 (__arm_vmovntq_m_s16): Likewise.
30328 (__arm_vqmovnbq_m_s16): Likewise.
30329 (__arm_vqmovntq_m_s16): Likewise.
30330 (__arm_vrev32q_m_s8): Likewise.
30331 (__arm_vmvnq_m_n_u16): Likewise.
30332 (__arm_vorrq_m_n_u16): Likewise.
30333 (__arm_vqrshruntq_n_s16): Likewise.
30334 (__arm_vqshrunbq_n_s16): Likewise.
30335 (__arm_vqshruntq_n_s16): Likewise.
30336 (__arm_vqmovunbq_m_s16): Likewise.
30337 (__arm_vqmovuntq_m_s16): Likewise.
30338 (__arm_vqrshrntq_n_u16): Likewise.
30339 (__arm_vqshrnbq_n_u16): Likewise.
30340 (__arm_vqshrntq_n_u16): Likewise.
30341 (__arm_vrshrnbq_n_u16): Likewise.
30342 (__arm_vrshrntq_n_u16): Likewise.
30343 (__arm_vshrnbq_n_u16): Likewise.
30344 (__arm_vshrntq_n_u16): Likewise.
30345 (__arm_vmlaldavaq_u16): Likewise.
30346 (__arm_vmlaldavaxq_u16): Likewise.
30347 (__arm_vmlaldavq_p_u16): Likewise.
30348 (__arm_vmlaldavxq_p_u16): Likewise.
30349 (__arm_vmovlbq_m_u8): Likewise.
30350 (__arm_vmovltq_m_u8): Likewise.
30351 (__arm_vmovnbq_m_u16): Likewise.
30352 (__arm_vmovntq_m_u16): Likewise.
30353 (__arm_vqmovnbq_m_u16): Likewise.
30354 (__arm_vqmovntq_m_u16): Likewise.
30355 (__arm_vrev32q_m_u8): Likewise.
30356 (__arm_vmvnq_m_n_s32): Likewise.
30357 (__arm_vorrq_m_n_s32): Likewise.
30358 (__arm_vqrshrntq_n_s32): Likewise.
30359 (__arm_vqshrnbq_n_s32): Likewise.
30360 (__arm_vqshrntq_n_s32): Likewise.
30361 (__arm_vrshrnbq_n_s32): Likewise.
30362 (__arm_vrshrntq_n_s32): Likewise.
30363 (__arm_vshrnbq_n_s32): Likewise.
30364 (__arm_vshrntq_n_s32): Likewise.
30365 (__arm_vmlaldavaq_s32): Likewise.
30366 (__arm_vmlaldavaxq_s32): Likewise.
30367 (__arm_vmlsldavaq_s32): Likewise.
30368 (__arm_vmlsldavaxq_s32): Likewise.
30369 (__arm_vmlaldavq_p_s32): Likewise.
30370 (__arm_vmlaldavxq_p_s32): Likewise.
30371 (__arm_vmlsldavq_p_s32): Likewise.
30372 (__arm_vmlsldavxq_p_s32): Likewise.
30373 (__arm_vmovlbq_m_s16): Likewise.
30374 (__arm_vmovltq_m_s16): Likewise.
30375 (__arm_vmovnbq_m_s32): Likewise.
30376 (__arm_vmovntq_m_s32): Likewise.
30377 (__arm_vqmovnbq_m_s32): Likewise.
30378 (__arm_vqmovntq_m_s32): Likewise.
30379 (__arm_vrev32q_m_s16): Likewise.
30380 (__arm_vmvnq_m_n_u32): Likewise.
30381 (__arm_vorrq_m_n_u32): Likewise.
30382 (__arm_vqrshruntq_n_s32): Likewise.
30383 (__arm_vqshrunbq_n_s32): Likewise.
30384 (__arm_vqshruntq_n_s32): Likewise.
30385 (__arm_vqmovunbq_m_s32): Likewise.
30386 (__arm_vqmovuntq_m_s32): Likewise.
30387 (__arm_vqrshrntq_n_u32): Likewise.
30388 (__arm_vqshrnbq_n_u32): Likewise.
30389 (__arm_vqshrntq_n_u32): Likewise.
30390 (__arm_vrshrnbq_n_u32): Likewise.
30391 (__arm_vrshrntq_n_u32): Likewise.
30392 (__arm_vshrnbq_n_u32): Likewise.
30393 (__arm_vshrntq_n_u32): Likewise.
30394 (__arm_vmlaldavaq_u32): Likewise.
30395 (__arm_vmlaldavaxq_u32): Likewise.
30396 (__arm_vmlaldavq_p_u32): Likewise.
30397 (__arm_vmlaldavxq_p_u32): Likewise.
30398 (__arm_vmovlbq_m_u16): Likewise.
30399 (__arm_vmovltq_m_u16): Likewise.
30400 (__arm_vmovnbq_m_u32): Likewise.
30401 (__arm_vmovntq_m_u32): Likewise.
30402 (__arm_vqmovnbq_m_u32): Likewise.
30403 (__arm_vqmovntq_m_u32): Likewise.
30404 (__arm_vrev32q_m_u16): Likewise.
30405 (__arm_vcvtbq_m_f16_f32): Likewise.
30406 (__arm_vcvtbq_m_f32_f16): Likewise.
30407 (__arm_vcvttq_m_f16_f32): Likewise.
30408 (__arm_vcvttq_m_f32_f16): Likewise.
30409 (__arm_vrev32q_m_f16): Likewise.
30410 (__arm_vcmlaq_f16): Likewise.
30411 (__arm_vcmlaq_rot180_f16): Likewise.
30412 (__arm_vcmlaq_rot270_f16): Likewise.
30413 (__arm_vcmlaq_rot90_f16): Likewise.
30414 (__arm_vfmaq_f16): Likewise.
30415 (__arm_vfmaq_n_f16): Likewise.
30416 (__arm_vfmasq_n_f16): Likewise.
30417 (__arm_vfmsq_f16): Likewise.
30418 (__arm_vabsq_m_f16): Likewise.
30419 (__arm_vcvtmq_m_s16_f16): Likewise.
30420 (__arm_vcvtnq_m_s16_f16): Likewise.
30421 (__arm_vcvtpq_m_s16_f16): Likewise.
30422 (__arm_vcvtq_m_s16_f16): Likewise.
30423 (__arm_vdupq_m_n_f16): Likewise.
30424 (__arm_vmaxnmaq_m_f16): Likewise.
30425 (__arm_vmaxnmavq_p_f16): Likewise.
30426 (__arm_vmaxnmvq_p_f16): Likewise.
30427 (__arm_vminnmaq_m_f16): Likewise.
30428 (__arm_vminnmavq_p_f16): Likewise.
30429 (__arm_vminnmvq_p_f16): Likewise.
30430 (__arm_vnegq_m_f16): Likewise.
30431 (__arm_vpselq_f16): Likewise.
30432 (__arm_vrev64q_m_f16): Likewise.
30433 (__arm_vrndaq_m_f16): Likewise.
30434 (__arm_vrndmq_m_f16): Likewise.
30435 (__arm_vrndnq_m_f16): Likewise.
30436 (__arm_vrndpq_m_f16): Likewise.
30437 (__arm_vrndq_m_f16): Likewise.
30438 (__arm_vrndxq_m_f16): Likewise.
30439 (__arm_vcmpeqq_m_n_f16): Likewise.
30440 (__arm_vcmpgeq_m_f16): Likewise.
30441 (__arm_vcmpgeq_m_n_f16): Likewise.
30442 (__arm_vcmpgtq_m_f16): Likewise.
30443 (__arm_vcmpgtq_m_n_f16): Likewise.
30444 (__arm_vcmpleq_m_f16): Likewise.
30445 (__arm_vcmpleq_m_n_f16): Likewise.
30446 (__arm_vcmpltq_m_f16): Likewise.
30447 (__arm_vcmpltq_m_n_f16): Likewise.
30448 (__arm_vcmpneq_m_f16): Likewise.
30449 (__arm_vcmpneq_m_n_f16): Likewise.
30450 (__arm_vcvtmq_m_u16_f16): Likewise.
30451 (__arm_vcvtnq_m_u16_f16): Likewise.
30452 (__arm_vcvtpq_m_u16_f16): Likewise.
30453 (__arm_vcvtq_m_u16_f16): Likewise.
30454 (__arm_vcmlaq_f32): Likewise.
30455 (__arm_vcmlaq_rot180_f32): Likewise.
30456 (__arm_vcmlaq_rot270_f32): Likewise.
30457 (__arm_vcmlaq_rot90_f32): Likewise.
30458 (__arm_vfmaq_f32): Likewise.
30459 (__arm_vfmaq_n_f32): Likewise.
30460 (__arm_vfmasq_n_f32): Likewise.
30461 (__arm_vfmsq_f32): Likewise.
30462 (__arm_vabsq_m_f32): Likewise.
30463 (__arm_vcvtmq_m_s32_f32): Likewise.
30464 (__arm_vcvtnq_m_s32_f32): Likewise.
30465 (__arm_vcvtpq_m_s32_f32): Likewise.
30466 (__arm_vcvtq_m_s32_f32): Likewise.
30467 (__arm_vdupq_m_n_f32): Likewise.
30468 (__arm_vmaxnmaq_m_f32): Likewise.
30469 (__arm_vmaxnmavq_p_f32): Likewise.
30470 (__arm_vmaxnmvq_p_f32): Likewise.
30471 (__arm_vminnmaq_m_f32): Likewise.
30472 (__arm_vminnmavq_p_f32): Likewise.
30473 (__arm_vminnmvq_p_f32): Likewise.
30474 (__arm_vnegq_m_f32): Likewise.
30475 (__arm_vpselq_f32): Likewise.
30476 (__arm_vrev64q_m_f32): Likewise.
30477 (__arm_vrndaq_m_f32): Likewise.
30478 (__arm_vrndmq_m_f32): Likewise.
30479 (__arm_vrndnq_m_f32): Likewise.
30480 (__arm_vrndpq_m_f32): Likewise.
30481 (__arm_vrndq_m_f32): Likewise.
30482 (__arm_vrndxq_m_f32): Likewise.
30483 (__arm_vcmpeqq_m_n_f32): Likewise.
30484 (__arm_vcmpgeq_m_f32): Likewise.
30485 (__arm_vcmpgeq_m_n_f32): Likewise.
30486 (__arm_vcmpgtq_m_f32): Likewise.
30487 (__arm_vcmpgtq_m_n_f32): Likewise.
30488 (__arm_vcmpleq_m_f32): Likewise.
30489 (__arm_vcmpleq_m_n_f32): Likewise.
30490 (__arm_vcmpltq_m_f32): Likewise.
30491 (__arm_vcmpltq_m_n_f32): Likewise.
30492 (__arm_vcmpneq_m_f32): Likewise.
30493 (__arm_vcmpneq_m_n_f32): Likewise.
30494 (__arm_vcvtmq_m_u32_f32): Likewise.
30495 (__arm_vcvtnq_m_u32_f32): Likewise.
30496 (__arm_vcvtpq_m_u32_f32): Likewise.
30497 (__arm_vcvtq_m_u32_f32): Likewise.
30498 (vcvtq_m): Define polymorphic variant.
30499 (vabsq_m): Likewise.
30500 (vcmlaq): Likewise.
30501 (vcmlaq_rot180): Likewise.
30502 (vcmlaq_rot270): Likewise.
30503 (vcmlaq_rot90): Likewise.
30504 (vcmpeqq_m_n): Likewise.
30505 (vcmpgeq_m_n): Likewise.
30506 (vrndxq_m): Likewise.
30507 (vrndq_m): Likewise.
30508 (vrndpq_m): Likewise.
30509 (vcmpgtq_m_n): Likewise.
30510 (vcmpgtq_m): Likewise.
30511 (vcmpleq_m): Likewise.
30512 (vcmpleq_m_n): Likewise.
30513 (vcmpltq_m_n): Likewise.
30514 (vcmpltq_m): Likewise.
30515 (vcmpneq_m): Likewise.
30516 (vcmpneq_m_n): Likewise.
30517 (vcvtbq_m): Likewise.
30518 (vcvttq_m): Likewise.
30519 (vcvtmq_m): Likewise.
30520 (vcvtnq_m): Likewise.
30521 (vcvtpq_m): Likewise.
30522 (vdupq_m_n): Likewise.
30523 (vfmaq_n): Likewise.
30524 (vfmaq): Likewise.
30525 (vfmasq_n): Likewise.
30526 (vfmsq): Likewise.
30527 (vmaxnmaq_m): Likewise.
30528 (vmaxnmavq_m): Likewise.
30529 (vmaxnmvq_m): Likewise.
30530 (vmaxnmavq_p): Likewise.
30531 (vmaxnmvq_p): Likewise.
30532 (vminnmaq_m): Likewise.
30533 (vminnmavq_p): Likewise.
30534 (vminnmvq_p): Likewise.
30535 (vrndnq_m): Likewise.
30536 (vrndaq_m): Likewise.
30537 (vrndmq_m): Likewise.
30538 (vrev64q_m): Likewise.
30539 (vrev32q_m): Likewise.
30540 (vpselq): Likewise.
30541 (vnegq_m): Likewise.
30542 (vcmpgeq_m): Likewise.
30543 (vshrntq_n): Likewise.
30544 (vrshrntq_n): Likewise.
30545 (vmovlbq_m): Likewise.
30546 (vmovnbq_m): Likewise.
30547 (vmovntq_m): Likewise.
30548 (vmvnq_m_n): Likewise.
30549 (vmvnq_m): Likewise.
30550 (vshrnbq_n): Likewise.
30551 (vrshrnbq_n): Likewise.
30552 (vqshruntq_n): Likewise.
30553 (vrev16q_m): Likewise.
30554 (vqshrunbq_n): Likewise.
30555 (vqshrntq_n): Likewise.
30556 (vqrshruntq_n): Likewise.
30557 (vqrshrntq_n): Likewise.
30558 (vqshrnbq_n): Likewise.
30559 (vqmovuntq_m): Likewise.
30560 (vqmovntq_m): Likewise.
30561 (vqmovnbq_m): Likewise.
30562 (vorrq_m_n): Likewise.
30563 (vmovltq_m): Likewise.
30564 (vqmovunbq_m): Likewise.
30565 (vaddlvaq_p): Likewise.
30566 (vmlaldavaq): Likewise.
30567 (vmlaldavaxq): Likewise.
30568 (vmlaldavq_p): Likewise.
30569 (vmlaldavxq_p): Likewise.
30570 (vmlsldavaq): Likewise.
30571 (vmlsldavaxq): Likewise.
30572 (vmlsldavq_p): Likewise.
30573 (vmlsldavxq_p): Likewise.
30574 (vrmlaldavhaxq): Likewise.
30575 (vrmlaldavhq_p): Likewise.
30576 (vrmlaldavhxq_p): Likewise.
30577 (vrmlsldavhaq): Likewise.
30578 (vrmlsldavhaxq): Likewise.
30579 (vrmlsldavhq_p): Likewise.
30580 (vrmlsldavhxq_p): Likewise.
30581 * config/arm/arm_mve_builtins.def (TERNOP_NONE_NONE_IMM_UNONE): Use
30582 builtin qualifier.
30583 (TERNOP_NONE_NONE_NONE_IMM): Likewise.
30584 (TERNOP_NONE_NONE_NONE_NONE): Likewise.
30585 (TERNOP_NONE_NONE_NONE_UNONE): Likewise.
30586 (TERNOP_UNONE_NONE_NONE_UNONE): Likewise.
30587 (TERNOP_UNONE_UNONE_IMM_UNONE): Likewise.
30588 (TERNOP_UNONE_UNONE_NONE_IMM): Likewise.
30589 (TERNOP_UNONE_UNONE_NONE_UNONE): Likewise.
30590 (TERNOP_UNONE_UNONE_UNONE_IMM): Likewise.
30591 (TERNOP_UNONE_UNONE_UNONE_UNONE): Likewise.
30592 * config/arm/mve.md (MVE_constraint3): Define mode attribute iterator.
30593 (MVE_pred3): Likewise.
30594 (MVE_constraint1): Likewise.
30595 (MVE_pred1): Likewise.
30596 (VMLALDAVQ_P): Define iterator.
30597 (VQMOVNBQ_M): Likewise.
30598 (VMOVLTQ_M): Likewise.
30599 (VMOVNBQ_M): Likewise.
30600 (VRSHRNTQ_N): Likewise.
30601 (VORRQ_M_N): Likewise.
30602 (VREV32Q_M): Likewise.
30603 (VREV16Q_M): Likewise.
30604 (VQRSHRNTQ_N): Likewise.
30605 (VMOVNTQ_M): Likewise.
30606 (VMOVLBQ_M): Likewise.
30607 (VMLALDAVAQ): Likewise.
30608 (VQSHRNBQ_N): Likewise.
30609 (VSHRNBQ_N): Likewise.
30610 (VRSHRNBQ_N): Likewise.
30611 (VMLALDAVXQ_P): Likewise.
30612 (VQMOVNTQ_M): Likewise.
30613 (VMVNQ_M_N): Likewise.
30614 (VQSHRNTQ_N): Likewise.
30615 (VMLALDAVAXQ): Likewise.
30616 (VSHRNTQ_N): Likewise.
30617 (VCVTMQ_M): Likewise.
30618 (VCVTNQ_M): Likewise.
30619 (VCVTPQ_M): Likewise.
30620 (VCVTQ_M_N_FROM_F): Likewise.
30621 (VCVTQ_M_FROM_F): Likewise.
30622 (VRMLALDAVHQ_P): Likewise.
30623 (VADDLVAQ_P): Likewise.
30624 (mve_vrndq_m_f<mode>): Define RTL pattern.
30625 (mve_vabsq_m_f<mode>): Likewise.
30626 (mve_vaddlvaq_p_<supf>v4si): Likewise.
30627 (mve_vcmlaq_f<mode>): Likewise.
30628 (mve_vcmlaq_rot180_f<mode>): Likewise.
30629 (mve_vcmlaq_rot270_f<mode>): Likewise.
30630 (mve_vcmlaq_rot90_f<mode>): Likewise.
30631 (mve_vcmpeqq_m_n_f<mode>): Likewise.
30632 (mve_vcmpgeq_m_f<mode>): Likewise.
30633 (mve_vcmpgeq_m_n_f<mode>): Likewise.
30634 (mve_vcmpgtq_m_f<mode>): Likewise.
30635 (mve_vcmpgtq_m_n_f<mode>): Likewise.
30636 (mve_vcmpleq_m_f<mode>): Likewise.
30637 (mve_vcmpleq_m_n_f<mode>): Likewise.
30638 (mve_vcmpltq_m_f<mode>): Likewise.
30639 (mve_vcmpltq_m_n_f<mode>): Likewise.
30640 (mve_vcmpneq_m_f<mode>): Likewise.
30641 (mve_vcmpneq_m_n_f<mode>): Likewise.
30642 (mve_vcvtbq_m_f16_f32v8hf): Likewise.
30643 (mve_vcvtbq_m_f32_f16v4sf): Likewise.
30644 (mve_vcvttq_m_f16_f32v8hf): Likewise.
30645 (mve_vcvttq_m_f32_f16v4sf): Likewise.
30646 (mve_vdupq_m_n_f<mode>): Likewise.
30647 (mve_vfmaq_f<mode>): Likewise.
30648 (mve_vfmaq_n_f<mode>): Likewise.
30649 (mve_vfmasq_n_f<mode>): Likewise.
30650 (mve_vfmsq_f<mode>): Likewise.
30651 (mve_vmaxnmaq_m_f<mode>): Likewise.
30652 (mve_vmaxnmavq_p_f<mode>): Likewise.
30653 (mve_vmaxnmvq_p_f<mode>): Likewise.
30654 (mve_vminnmaq_m_f<mode>): Likewise.
30655 (mve_vminnmavq_p_f<mode>): Likewise.
30656 (mve_vminnmvq_p_f<mode>): Likewise.
30657 (mve_vmlaldavaq_<supf><mode>): Likewise.
30658 (mve_vmlaldavaxq_<supf><mode>): Likewise.
30659 (mve_vmlaldavq_p_<supf><mode>): Likewise.
30660 (mve_vmlaldavxq_p_<supf><mode>): Likewise.
30661 (mve_vmlsldavaq_s<mode>): Likewise.
30662 (mve_vmlsldavaxq_s<mode>): Likewise.
30663 (mve_vmlsldavq_p_s<mode>): Likewise.
30664 (mve_vmlsldavxq_p_s<mode>): Likewise.
30665 (mve_vmovlbq_m_<supf><mode>): Likewise.
30666 (mve_vmovltq_m_<supf><mode>): Likewise.
30667 (mve_vmovnbq_m_<supf><mode>): Likewise.
30668 (mve_vmovntq_m_<supf><mode>): Likewise.
30669 (mve_vmvnq_m_n_<supf><mode>): Likewise.
30670 (mve_vnegq_m_f<mode>): Likewise.
30671 (mve_vorrq_m_n_<supf><mode>): Likewise.
30672 (mve_vpselq_f<mode>): Likewise.
30673 (mve_vqmovnbq_m_<supf><mode>): Likewise.
30674 (mve_vqmovntq_m_<supf><mode>): Likewise.
30675 (mve_vqmovunbq_m_s<mode>): Likewise.
30676 (mve_vqmovuntq_m_s<mode>): Likewise.
30677 (mve_vqrshrntq_n_<supf><mode>): Likewise.
30678 (mve_vqrshruntq_n_s<mode>): Likewise.
30679 (mve_vqshrnbq_n_<supf><mode>): Likewise.
30680 (mve_vqshrntq_n_<supf><mode>): Likewise.
30681 (mve_vqshrunbq_n_s<mode>): Likewise.
30682 (mve_vqshruntq_n_s<mode>): Likewise.
30683 (mve_vrev32q_m_fv8hf): Likewise.
30684 (mve_vrev32q_m_<supf><mode>): Likewise.
30685 (mve_vrev64q_m_f<mode>): Likewise.
30686 (mve_vrmlaldavhaxq_sv4si): Likewise.
30687 (mve_vrmlaldavhxq_p_sv4si): Likewise.
30688 (mve_vrmlsldavhaxq_sv4si): Likewise.
30689 (mve_vrmlsldavhq_p_sv4si): Likewise.
30690 (mve_vrmlsldavhxq_p_sv4si): Likewise.
30691 (mve_vrndaq_m_f<mode>): Likewise.
30692 (mve_vrndmq_m_f<mode>): Likewise.
30693 (mve_vrndnq_m_f<mode>): Likewise.
30694 (mve_vrndpq_m_f<mode>): Likewise.
30695 (mve_vrndxq_m_f<mode>): Likewise.
30696 (mve_vrshrnbq_n_<supf><mode>): Likewise.
30697 (mve_vrshrntq_n_<supf><mode>): Likewise.
30698 (mve_vshrnbq_n_<supf><mode>): Likewise.
30699 (mve_vshrntq_n_<supf><mode>): Likewise.
30700 (mve_vcvtmq_m_<supf><mode>): Likewise.
30701 (mve_vcvtpq_m_<supf><mode>): Likewise.
30702 (mve_vcvtnq_m_<supf><mode>): Likewise.
30703 (mve_vcvtq_m_n_from_f_<supf><mode>): Likewise.
30704 (mve_vrev16q_m_<supf>v16qi): Likewise.
30705 (mve_vcvtq_m_from_f_<supf><mode>): Likewise.
30706 (mve_vrmlaldavhq_p_<supf>v4si): Likewise.
30707 (mve_vrmlsldavhaq_sv4si): Likewise.
30708
30709 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
30710 Mihail Ionescu <mihail.ionescu@arm.com>
30711 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
30712
30713 * config/arm/arm_mve.h (vpselq_u8): Define macro.
30714 (vpselq_s8): Likewise.
30715 (vrev64q_m_u8): Likewise.
30716 (vqrdmlashq_n_u8): Likewise.
30717 (vqrdmlahq_n_u8): Likewise.
30718 (vqdmlahq_n_u8): Likewise.
30719 (vmvnq_m_u8): Likewise.
30720 (vmlasq_n_u8): Likewise.
30721 (vmlaq_n_u8): Likewise.
30722 (vmladavq_p_u8): Likewise.
30723 (vmladavaq_u8): Likewise.
30724 (vminvq_p_u8): Likewise.
30725 (vmaxvq_p_u8): Likewise.
30726 (vdupq_m_n_u8): Likewise.
30727 (vcmpneq_m_u8): Likewise.
30728 (vcmpneq_m_n_u8): Likewise.
30729 (vcmphiq_m_u8): Likewise.
30730 (vcmphiq_m_n_u8): Likewise.
30731 (vcmpeqq_m_u8): Likewise.
30732 (vcmpeqq_m_n_u8): Likewise.
30733 (vcmpcsq_m_u8): Likewise.
30734 (vcmpcsq_m_n_u8): Likewise.
30735 (vclzq_m_u8): Likewise.
30736 (vaddvaq_p_u8): Likewise.
30737 (vsriq_n_u8): Likewise.
30738 (vsliq_n_u8): Likewise.
30739 (vshlq_m_r_u8): Likewise.
30740 (vrshlq_m_n_u8): Likewise.
30741 (vqshlq_m_r_u8): Likewise.
30742 (vqrshlq_m_n_u8): Likewise.
30743 (vminavq_p_s8): Likewise.
30744 (vminaq_m_s8): Likewise.
30745 (vmaxavq_p_s8): Likewise.
30746 (vmaxaq_m_s8): Likewise.
30747 (vcmpneq_m_s8): Likewise.
30748 (vcmpneq_m_n_s8): Likewise.
30749 (vcmpltq_m_s8): Likewise.
30750 (vcmpltq_m_n_s8): Likewise.
30751 (vcmpleq_m_s8): Likewise.
30752 (vcmpleq_m_n_s8): Likewise.
30753 (vcmpgtq_m_s8): Likewise.
30754 (vcmpgtq_m_n_s8): Likewise.
30755 (vcmpgeq_m_s8): Likewise.
30756 (vcmpgeq_m_n_s8): Likewise.
30757 (vcmpeqq_m_s8): Likewise.
30758 (vcmpeqq_m_n_s8): Likewise.
30759 (vshlq_m_r_s8): Likewise.
30760 (vrshlq_m_n_s8): Likewise.
30761 (vrev64q_m_s8): Likewise.
30762 (vqshlq_m_r_s8): Likewise.
30763 (vqrshlq_m_n_s8): Likewise.
30764 (vqnegq_m_s8): Likewise.
30765 (vqabsq_m_s8): Likewise.
30766 (vnegq_m_s8): Likewise.
30767 (vmvnq_m_s8): Likewise.
30768 (vmlsdavxq_p_s8): Likewise.
30769 (vmlsdavq_p_s8): Likewise.
30770 (vmladavxq_p_s8): Likewise.
30771 (vmladavq_p_s8): Likewise.
30772 (vminvq_p_s8): Likewise.
30773 (vmaxvq_p_s8): Likewise.
30774 (vdupq_m_n_s8): Likewise.
30775 (vclzq_m_s8): Likewise.
30776 (vclsq_m_s8): Likewise.
30777 (vaddvaq_p_s8): Likewise.
30778 (vabsq_m_s8): Likewise.
30779 (vqrdmlsdhxq_s8): Likewise.
30780 (vqrdmlsdhq_s8): Likewise.
30781 (vqrdmlashq_n_s8): Likewise.
30782 (vqrdmlahq_n_s8): Likewise.
30783 (vqrdmladhxq_s8): Likewise.
30784 (vqrdmladhq_s8): Likewise.
30785 (vqdmlsdhxq_s8): Likewise.
30786 (vqdmlsdhq_s8): Likewise.
30787 (vqdmlahq_n_s8): Likewise.
30788 (vqdmladhxq_s8): Likewise.
30789 (vqdmladhq_s8): Likewise.
30790 (vmlsdavaxq_s8): Likewise.
30791 (vmlsdavaq_s8): Likewise.
30792 (vmlasq_n_s8): Likewise.
30793 (vmlaq_n_s8): Likewise.
30794 (vmladavaxq_s8): Likewise.
30795 (vmladavaq_s8): Likewise.
30796 (vsriq_n_s8): Likewise.
30797 (vsliq_n_s8): Likewise.
30798 (vpselq_u16): Likewise.
30799 (vpselq_s16): Likewise.
30800 (vrev64q_m_u16): Likewise.
30801 (vqrdmlashq_n_u16): Likewise.
30802 (vqrdmlahq_n_u16): Likewise.
30803 (vqdmlahq_n_u16): Likewise.
30804 (vmvnq_m_u16): Likewise.
30805 (vmlasq_n_u16): Likewise.
30806 (vmlaq_n_u16): Likewise.
30807 (vmladavq_p_u16): Likewise.
30808 (vmladavaq_u16): Likewise.
30809 (vminvq_p_u16): Likewise.
30810 (vmaxvq_p_u16): Likewise.
30811 (vdupq_m_n_u16): Likewise.
30812 (vcmpneq_m_u16): Likewise.
30813 (vcmpneq_m_n_u16): Likewise.
30814 (vcmphiq_m_u16): Likewise.
30815 (vcmphiq_m_n_u16): Likewise.
30816 (vcmpeqq_m_u16): Likewise.
30817 (vcmpeqq_m_n_u16): Likewise.
30818 (vcmpcsq_m_u16): Likewise.
30819 (vcmpcsq_m_n_u16): Likewise.
30820 (vclzq_m_u16): Likewise.
30821 (vaddvaq_p_u16): Likewise.
30822 (vsriq_n_u16): Likewise.
30823 (vsliq_n_u16): Likewise.
30824 (vshlq_m_r_u16): Likewise.
30825 (vrshlq_m_n_u16): Likewise.
30826 (vqshlq_m_r_u16): Likewise.
30827 (vqrshlq_m_n_u16): Likewise.
30828 (vminavq_p_s16): Likewise.
30829 (vminaq_m_s16): Likewise.
30830 (vmaxavq_p_s16): Likewise.
30831 (vmaxaq_m_s16): Likewise.
30832 (vcmpneq_m_s16): Likewise.
30833 (vcmpneq_m_n_s16): Likewise.
30834 (vcmpltq_m_s16): Likewise.
30835 (vcmpltq_m_n_s16): Likewise.
30836 (vcmpleq_m_s16): Likewise.
30837 (vcmpleq_m_n_s16): Likewise.
30838 (vcmpgtq_m_s16): Likewise.
30839 (vcmpgtq_m_n_s16): Likewise.
30840 (vcmpgeq_m_s16): Likewise.
30841 (vcmpgeq_m_n_s16): Likewise.
30842 (vcmpeqq_m_s16): Likewise.
30843 (vcmpeqq_m_n_s16): Likewise.
30844 (vshlq_m_r_s16): Likewise.
30845 (vrshlq_m_n_s16): Likewise.
30846 (vrev64q_m_s16): Likewise.
30847 (vqshlq_m_r_s16): Likewise.
30848 (vqrshlq_m_n_s16): Likewise.
30849 (vqnegq_m_s16): Likewise.
30850 (vqabsq_m_s16): Likewise.
30851 (vnegq_m_s16): Likewise.
30852 (vmvnq_m_s16): Likewise.
30853 (vmlsdavxq_p_s16): Likewise.
30854 (vmlsdavq_p_s16): Likewise.
30855 (vmladavxq_p_s16): Likewise.
30856 (vmladavq_p_s16): Likewise.
30857 (vminvq_p_s16): Likewise.
30858 (vmaxvq_p_s16): Likewise.
30859 (vdupq_m_n_s16): Likewise.
30860 (vclzq_m_s16): Likewise.
30861 (vclsq_m_s16): Likewise.
30862 (vaddvaq_p_s16): Likewise.
30863 (vabsq_m_s16): Likewise.
30864 (vqrdmlsdhxq_s16): Likewise.
30865 (vqrdmlsdhq_s16): Likewise.
30866 (vqrdmlashq_n_s16): Likewise.
30867 (vqrdmlahq_n_s16): Likewise.
30868 (vqrdmladhxq_s16): Likewise.
30869 (vqrdmladhq_s16): Likewise.
30870 (vqdmlsdhxq_s16): Likewise.
30871 (vqdmlsdhq_s16): Likewise.
30872 (vqdmlahq_n_s16): Likewise.
30873 (vqdmladhxq_s16): Likewise.
30874 (vqdmladhq_s16): Likewise.
30875 (vmlsdavaxq_s16): Likewise.
30876 (vmlsdavaq_s16): Likewise.
30877 (vmlasq_n_s16): Likewise.
30878 (vmlaq_n_s16): Likewise.
30879 (vmladavaxq_s16): Likewise.
30880 (vmladavaq_s16): Likewise.
30881 (vsriq_n_s16): Likewise.
30882 (vsliq_n_s16): Likewise.
30883 (vpselq_u32): Likewise.
30884 (vpselq_s32): Likewise.
30885 (vrev64q_m_u32): Likewise.
30886 (vqrdmlashq_n_u32): Likewise.
30887 (vqrdmlahq_n_u32): Likewise.
30888 (vqdmlahq_n_u32): Likewise.
30889 (vmvnq_m_u32): Likewise.
30890 (vmlasq_n_u32): Likewise.
30891 (vmlaq_n_u32): Likewise.
30892 (vmladavq_p_u32): Likewise.
30893 (vmladavaq_u32): Likewise.
30894 (vminvq_p_u32): Likewise.
30895 (vmaxvq_p_u32): Likewise.
30896 (vdupq_m_n_u32): Likewise.
30897 (vcmpneq_m_u32): Likewise.
30898 (vcmpneq_m_n_u32): Likewise.
30899 (vcmphiq_m_u32): Likewise.
30900 (vcmphiq_m_n_u32): Likewise.
30901 (vcmpeqq_m_u32): Likewise.
30902 (vcmpeqq_m_n_u32): Likewise.
30903 (vcmpcsq_m_u32): Likewise.
30904 (vcmpcsq_m_n_u32): Likewise.
30905 (vclzq_m_u32): Likewise.
30906 (vaddvaq_p_u32): Likewise.
30907 (vsriq_n_u32): Likewise.
30908 (vsliq_n_u32): Likewise.
30909 (vshlq_m_r_u32): Likewise.
30910 (vrshlq_m_n_u32): Likewise.
30911 (vqshlq_m_r_u32): Likewise.
30912 (vqrshlq_m_n_u32): Likewise.
30913 (vminavq_p_s32): Likewise.
30914 (vminaq_m_s32): Likewise.
30915 (vmaxavq_p_s32): Likewise.
30916 (vmaxaq_m_s32): Likewise.
30917 (vcmpneq_m_s32): Likewise.
30918 (vcmpneq_m_n_s32): Likewise.
30919 (vcmpltq_m_s32): Likewise.
30920 (vcmpltq_m_n_s32): Likewise.
30921 (vcmpleq_m_s32): Likewise.
30922 (vcmpleq_m_n_s32): Likewise.
30923 (vcmpgtq_m_s32): Likewise.
30924 (vcmpgtq_m_n_s32): Likewise.
30925 (vcmpgeq_m_s32): Likewise.
30926 (vcmpgeq_m_n_s32): Likewise.
30927 (vcmpeqq_m_s32): Likewise.
30928 (vcmpeqq_m_n_s32): Likewise.
30929 (vshlq_m_r_s32): Likewise.
30930 (vrshlq_m_n_s32): Likewise.
30931 (vrev64q_m_s32): Likewise.
30932 (vqshlq_m_r_s32): Likewise.
30933 (vqrshlq_m_n_s32): Likewise.
30934 (vqnegq_m_s32): Likewise.
30935 (vqabsq_m_s32): Likewise.
30936 (vnegq_m_s32): Likewise.
30937 (vmvnq_m_s32): Likewise.
30938 (vmlsdavxq_p_s32): Likewise.
30939 (vmlsdavq_p_s32): Likewise.
30940 (vmladavxq_p_s32): Likewise.
30941 (vmladavq_p_s32): Likewise.
30942 (vminvq_p_s32): Likewise.
30943 (vmaxvq_p_s32): Likewise.
30944 (vdupq_m_n_s32): Likewise.
30945 (vclzq_m_s32): Likewise.
30946 (vclsq_m_s32): Likewise.
30947 (vaddvaq_p_s32): Likewise.
30948 (vabsq_m_s32): Likewise.
30949 (vqrdmlsdhxq_s32): Likewise.
30950 (vqrdmlsdhq_s32): Likewise.
30951 (vqrdmlashq_n_s32): Likewise.
30952 (vqrdmlahq_n_s32): Likewise.
30953 (vqrdmladhxq_s32): Likewise.
30954 (vqrdmladhq_s32): Likewise.
30955 (vqdmlsdhxq_s32): Likewise.
30956 (vqdmlsdhq_s32): Likewise.
30957 (vqdmlahq_n_s32): Likewise.
30958 (vqdmladhxq_s32): Likewise.
30959 (vqdmladhq_s32): Likewise.
30960 (vmlsdavaxq_s32): Likewise.
30961 (vmlsdavaq_s32): Likewise.
30962 (vmlasq_n_s32): Likewise.
30963 (vmlaq_n_s32): Likewise.
30964 (vmladavaxq_s32): Likewise.
30965 (vmladavaq_s32): Likewise.
30966 (vsriq_n_s32): Likewise.
30967 (vsliq_n_s32): Likewise.
30968 (vpselq_u64): Likewise.
30969 (vpselq_s64): Likewise.
30970 (__arm_vpselq_u8): Define intrinsic.
30971 (__arm_vpselq_s8): Likewise.
30972 (__arm_vrev64q_m_u8): Likewise.
30973 (__arm_vqrdmlashq_n_u8): Likewise.
30974 (__arm_vqrdmlahq_n_u8): Likewise.
30975 (__arm_vqdmlahq_n_u8): Likewise.
30976 (__arm_vmvnq_m_u8): Likewise.
30977 (__arm_vmlasq_n_u8): Likewise.
30978 (__arm_vmlaq_n_u8): Likewise.
30979 (__arm_vmladavq_p_u8): Likewise.
30980 (__arm_vmladavaq_u8): Likewise.
30981 (__arm_vminvq_p_u8): Likewise.
30982 (__arm_vmaxvq_p_u8): Likewise.
30983 (__arm_vdupq_m_n_u8): Likewise.
30984 (__arm_vcmpneq_m_u8): Likewise.
30985 (__arm_vcmpneq_m_n_u8): Likewise.
30986 (__arm_vcmphiq_m_u8): Likewise.
30987 (__arm_vcmphiq_m_n_u8): Likewise.
30988 (__arm_vcmpeqq_m_u8): Likewise.
30989 (__arm_vcmpeqq_m_n_u8): Likewise.
30990 (__arm_vcmpcsq_m_u8): Likewise.
30991 (__arm_vcmpcsq_m_n_u8): Likewise.
30992 (__arm_vclzq_m_u8): Likewise.
30993 (__arm_vaddvaq_p_u8): Likewise.
30994 (__arm_vsriq_n_u8): Likewise.
30995 (__arm_vsliq_n_u8): Likewise.
30996 (__arm_vshlq_m_r_u8): Likewise.
30997 (__arm_vrshlq_m_n_u8): Likewise.
30998 (__arm_vqshlq_m_r_u8): Likewise.
30999 (__arm_vqrshlq_m_n_u8): Likewise.
31000 (__arm_vminavq_p_s8): Likewise.
31001 (__arm_vminaq_m_s8): Likewise.
31002 (__arm_vmaxavq_p_s8): Likewise.
31003 (__arm_vmaxaq_m_s8): Likewise.
31004 (__arm_vcmpneq_m_s8): Likewise.
31005 (__arm_vcmpneq_m_n_s8): Likewise.
31006 (__arm_vcmpltq_m_s8): Likewise.
31007 (__arm_vcmpltq_m_n_s8): Likewise.
31008 (__arm_vcmpleq_m_s8): Likewise.
31009 (__arm_vcmpleq_m_n_s8): Likewise.
31010 (__arm_vcmpgtq_m_s8): Likewise.
31011 (__arm_vcmpgtq_m_n_s8): Likewise.
31012 (__arm_vcmpgeq_m_s8): Likewise.
31013 (__arm_vcmpgeq_m_n_s8): Likewise.
31014 (__arm_vcmpeqq_m_s8): Likewise.
31015 (__arm_vcmpeqq_m_n_s8): Likewise.
31016 (__arm_vshlq_m_r_s8): Likewise.
31017 (__arm_vrshlq_m_n_s8): Likewise.
31018 (__arm_vrev64q_m_s8): Likewise.
31019 (__arm_vqshlq_m_r_s8): Likewise.
31020 (__arm_vqrshlq_m_n_s8): Likewise.
31021 (__arm_vqnegq_m_s8): Likewise.
31022 (__arm_vqabsq_m_s8): Likewise.
31023 (__arm_vnegq_m_s8): Likewise.
31024 (__arm_vmvnq_m_s8): Likewise.
31025 (__arm_vmlsdavxq_p_s8): Likewise.
31026 (__arm_vmlsdavq_p_s8): Likewise.
31027 (__arm_vmladavxq_p_s8): Likewise.
31028 (__arm_vmladavq_p_s8): Likewise.
31029 (__arm_vminvq_p_s8): Likewise.
31030 (__arm_vmaxvq_p_s8): Likewise.
31031 (__arm_vdupq_m_n_s8): Likewise.
31032 (__arm_vclzq_m_s8): Likewise.
31033 (__arm_vclsq_m_s8): Likewise.
31034 (__arm_vaddvaq_p_s8): Likewise.
31035 (__arm_vabsq_m_s8): Likewise.
31036 (__arm_vqrdmlsdhxq_s8): Likewise.
31037 (__arm_vqrdmlsdhq_s8): Likewise.
31038 (__arm_vqrdmlashq_n_s8): Likewise.
31039 (__arm_vqrdmlahq_n_s8): Likewise.
31040 (__arm_vqrdmladhxq_s8): Likewise.
31041 (__arm_vqrdmladhq_s8): Likewise.
31042 (__arm_vqdmlsdhxq_s8): Likewise.
31043 (__arm_vqdmlsdhq_s8): Likewise.
31044 (__arm_vqdmlahq_n_s8): Likewise.
31045 (__arm_vqdmladhxq_s8): Likewise.
31046 (__arm_vqdmladhq_s8): Likewise.
31047 (__arm_vmlsdavaxq_s8): Likewise.
31048 (__arm_vmlsdavaq_s8): Likewise.
31049 (__arm_vmlasq_n_s8): Likewise.
31050 (__arm_vmlaq_n_s8): Likewise.
31051 (__arm_vmladavaxq_s8): Likewise.
31052 (__arm_vmladavaq_s8): Likewise.
31053 (__arm_vsriq_n_s8): Likewise.
31054 (__arm_vsliq_n_s8): Likewise.
31055 (__arm_vpselq_u16): Likewise.
31056 (__arm_vpselq_s16): Likewise.
31057 (__arm_vrev64q_m_u16): Likewise.
31058 (__arm_vqrdmlashq_n_u16): Likewise.
31059 (__arm_vqrdmlahq_n_u16): Likewise.
31060 (__arm_vqdmlahq_n_u16): Likewise.
31061 (__arm_vmvnq_m_u16): Likewise.
31062 (__arm_vmlasq_n_u16): Likewise.
31063 (__arm_vmlaq_n_u16): Likewise.
31064 (__arm_vmladavq_p_u16): Likewise.
31065 (__arm_vmladavaq_u16): Likewise.
31066 (__arm_vminvq_p_u16): Likewise.
31067 (__arm_vmaxvq_p_u16): Likewise.
31068 (__arm_vdupq_m_n_u16): Likewise.
31069 (__arm_vcmpneq_m_u16): Likewise.
31070 (__arm_vcmpneq_m_n_u16): Likewise.
31071 (__arm_vcmphiq_m_u16): Likewise.
31072 (__arm_vcmphiq_m_n_u16): Likewise.
31073 (__arm_vcmpeqq_m_u16): Likewise.
31074 (__arm_vcmpeqq_m_n_u16): Likewise.
31075 (__arm_vcmpcsq_m_u16): Likewise.
31076 (__arm_vcmpcsq_m_n_u16): Likewise.
31077 (__arm_vclzq_m_u16): Likewise.
31078 (__arm_vaddvaq_p_u16): Likewise.
31079 (__arm_vsriq_n_u16): Likewise.
31080 (__arm_vsliq_n_u16): Likewise.
31081 (__arm_vshlq_m_r_u16): Likewise.
31082 (__arm_vrshlq_m_n_u16): Likewise.
31083 (__arm_vqshlq_m_r_u16): Likewise.
31084 (__arm_vqrshlq_m_n_u16): Likewise.
31085 (__arm_vminavq_p_s16): Likewise.
31086 (__arm_vminaq_m_s16): Likewise.
31087 (__arm_vmaxavq_p_s16): Likewise.
31088 (__arm_vmaxaq_m_s16): Likewise.
31089 (__arm_vcmpneq_m_s16): Likewise.
31090 (__arm_vcmpneq_m_n_s16): Likewise.
31091 (__arm_vcmpltq_m_s16): Likewise.
31092 (__arm_vcmpltq_m_n_s16): Likewise.
31093 (__arm_vcmpleq_m_s16): Likewise.
31094 (__arm_vcmpleq_m_n_s16): Likewise.
31095 (__arm_vcmpgtq_m_s16): Likewise.
31096 (__arm_vcmpgtq_m_n_s16): Likewise.
31097 (__arm_vcmpgeq_m_s16): Likewise.
31098 (__arm_vcmpgeq_m_n_s16): Likewise.
31099 (__arm_vcmpeqq_m_s16): Likewise.
31100 (__arm_vcmpeqq_m_n_s16): Likewise.
31101 (__arm_vshlq_m_r_s16): Likewise.
31102 (__arm_vrshlq_m_n_s16): Likewise.
31103 (__arm_vrev64q_m_s16): Likewise.
31104 (__arm_vqshlq_m_r_s16): Likewise.
31105 (__arm_vqrshlq_m_n_s16): Likewise.
31106 (__arm_vqnegq_m_s16): Likewise.
31107 (__arm_vqabsq_m_s16): Likewise.
31108 (__arm_vnegq_m_s16): Likewise.
31109 (__arm_vmvnq_m_s16): Likewise.
31110 (__arm_vmlsdavxq_p_s16): Likewise.
31111 (__arm_vmlsdavq_p_s16): Likewise.
31112 (__arm_vmladavxq_p_s16): Likewise.
31113 (__arm_vmladavq_p_s16): Likewise.
31114 (__arm_vminvq_p_s16): Likewise.
31115 (__arm_vmaxvq_p_s16): Likewise.
31116 (__arm_vdupq_m_n_s16): Likewise.
31117 (__arm_vclzq_m_s16): Likewise.
31118 (__arm_vclsq_m_s16): Likewise.
31119 (__arm_vaddvaq_p_s16): Likewise.
31120 (__arm_vabsq_m_s16): Likewise.
31121 (__arm_vqrdmlsdhxq_s16): Likewise.
31122 (__arm_vqrdmlsdhq_s16): Likewise.
31123 (__arm_vqrdmlashq_n_s16): Likewise.
31124 (__arm_vqrdmlahq_n_s16): Likewise.
31125 (__arm_vqrdmladhxq_s16): Likewise.
31126 (__arm_vqrdmladhq_s16): Likewise.
31127 (__arm_vqdmlsdhxq_s16): Likewise.
31128 (__arm_vqdmlsdhq_s16): Likewise.
31129 (__arm_vqdmlahq_n_s16): Likewise.
31130 (__arm_vqdmladhxq_s16): Likewise.
31131 (__arm_vqdmladhq_s16): Likewise.
31132 (__arm_vmlsdavaxq_s16): Likewise.
31133 (__arm_vmlsdavaq_s16): Likewise.
31134 (__arm_vmlasq_n_s16): Likewise.
31135 (__arm_vmlaq_n_s16): Likewise.
31136 (__arm_vmladavaxq_s16): Likewise.
31137 (__arm_vmladavaq_s16): Likewise.
31138 (__arm_vsriq_n_s16): Likewise.
31139 (__arm_vsliq_n_s16): Likewise.
31140 (__arm_vpselq_u32): Likewise.
31141 (__arm_vpselq_s32): Likewise.
31142 (__arm_vrev64q_m_u32): Likewise.
31143 (__arm_vqrdmlashq_n_u32): Likewise.
31144 (__arm_vqrdmlahq_n_u32): Likewise.
31145 (__arm_vqdmlahq_n_u32): Likewise.
31146 (__arm_vmvnq_m_u32): Likewise.
31147 (__arm_vmlasq_n_u32): Likewise.
31148 (__arm_vmlaq_n_u32): Likewise.
31149 (__arm_vmladavq_p_u32): Likewise.
31150 (__arm_vmladavaq_u32): Likewise.
31151 (__arm_vminvq_p_u32): Likewise.
31152 (__arm_vmaxvq_p_u32): Likewise.
31153 (__arm_vdupq_m_n_u32): Likewise.
31154 (__arm_vcmpneq_m_u32): Likewise.
31155 (__arm_vcmpneq_m_n_u32): Likewise.
31156 (__arm_vcmphiq_m_u32): Likewise.
31157 (__arm_vcmphiq_m_n_u32): Likewise.
31158 (__arm_vcmpeqq_m_u32): Likewise.
31159 (__arm_vcmpeqq_m_n_u32): Likewise.
31160 (__arm_vcmpcsq_m_u32): Likewise.
31161 (__arm_vcmpcsq_m_n_u32): Likewise.
31162 (__arm_vclzq_m_u32): Likewise.
31163 (__arm_vaddvaq_p_u32): Likewise.
31164 (__arm_vsriq_n_u32): Likewise.
31165 (__arm_vsliq_n_u32): Likewise.
31166 (__arm_vshlq_m_r_u32): Likewise.
31167 (__arm_vrshlq_m_n_u32): Likewise.
31168 (__arm_vqshlq_m_r_u32): Likewise.
31169 (__arm_vqrshlq_m_n_u32): Likewise.
31170 (__arm_vminavq_p_s32): Likewise.
31171 (__arm_vminaq_m_s32): Likewise.
31172 (__arm_vmaxavq_p_s32): Likewise.
31173 (__arm_vmaxaq_m_s32): Likewise.
31174 (__arm_vcmpneq_m_s32): Likewise.
31175 (__arm_vcmpneq_m_n_s32): Likewise.
31176 (__arm_vcmpltq_m_s32): Likewise.
31177 (__arm_vcmpltq_m_n_s32): Likewise.
31178 (__arm_vcmpleq_m_s32): Likewise.
31179 (__arm_vcmpleq_m_n_s32): Likewise.
31180 (__arm_vcmpgtq_m_s32): Likewise.
31181 (__arm_vcmpgtq_m_n_s32): Likewise.
31182 (__arm_vcmpgeq_m_s32): Likewise.
31183 (__arm_vcmpgeq_m_n_s32): Likewise.
31184 (__arm_vcmpeqq_m_s32): Likewise.
31185 (__arm_vcmpeqq_m_n_s32): Likewise.
31186 (__arm_vshlq_m_r_s32): Likewise.
31187 (__arm_vrshlq_m_n_s32): Likewise.
31188 (__arm_vrev64q_m_s32): Likewise.
31189 (__arm_vqshlq_m_r_s32): Likewise.
31190 (__arm_vqrshlq_m_n_s32): Likewise.
31191 (__arm_vqnegq_m_s32): Likewise.
31192 (__arm_vqabsq_m_s32): Likewise.
31193 (__arm_vnegq_m_s32): Likewise.
31194 (__arm_vmvnq_m_s32): Likewise.
31195 (__arm_vmlsdavxq_p_s32): Likewise.
31196 (__arm_vmlsdavq_p_s32): Likewise.
31197 (__arm_vmladavxq_p_s32): Likewise.
31198 (__arm_vmladavq_p_s32): Likewise.
31199 (__arm_vminvq_p_s32): Likewise.
31200 (__arm_vmaxvq_p_s32): Likewise.
31201 (__arm_vdupq_m_n_s32): Likewise.
31202 (__arm_vclzq_m_s32): Likewise.
31203 (__arm_vclsq_m_s32): Likewise.
31204 (__arm_vaddvaq_p_s32): Likewise.
31205 (__arm_vabsq_m_s32): Likewise.
31206 (__arm_vqrdmlsdhxq_s32): Likewise.
31207 (__arm_vqrdmlsdhq_s32): Likewise.
31208 (__arm_vqrdmlashq_n_s32): Likewise.
31209 (__arm_vqrdmlahq_n_s32): Likewise.
31210 (__arm_vqrdmladhxq_s32): Likewise.
31211 (__arm_vqrdmladhq_s32): Likewise.
31212 (__arm_vqdmlsdhxq_s32): Likewise.
31213 (__arm_vqdmlsdhq_s32): Likewise.
31214 (__arm_vqdmlahq_n_s32): Likewise.
31215 (__arm_vqdmladhxq_s32): Likewise.
31216 (__arm_vqdmladhq_s32): Likewise.
31217 (__arm_vmlsdavaxq_s32): Likewise.
31218 (__arm_vmlsdavaq_s32): Likewise.
31219 (__arm_vmlasq_n_s32): Likewise.
31220 (__arm_vmlaq_n_s32): Likewise.
31221 (__arm_vmladavaxq_s32): Likewise.
31222 (__arm_vmladavaq_s32): Likewise.
31223 (__arm_vsriq_n_s32): Likewise.
31224 (__arm_vsliq_n_s32): Likewise.
31225 (__arm_vpselq_u64): Likewise.
31226 (__arm_vpselq_s64): Likewise.
31227 (vcmpneq_m_n): Define polymorphic variant.
31228 (vcmpneq_m): Likewise.
31229 (vqrdmlsdhq): Likewise.
31230 (vqrdmlsdhxq): Likewise.
31231 (vqrshlq_m_n): Likewise.
31232 (vqshlq_m_r): Likewise.
31233 (vrev64q_m): Likewise.
31234 (vrshlq_m_n): Likewise.
31235 (vshlq_m_r): Likewise.
31236 (vsliq_n): Likewise.
31237 (vsriq_n): Likewise.
31238 (vqrdmlashq_n): Likewise.
31239 (vqrdmlahq): Likewise.
31240 (vqrdmladhxq): Likewise.
31241 (vqrdmladhq): Likewise.
31242 (vqnegq_m): Likewise.
31243 (vqdmlsdhxq): Likewise.
31244 (vabsq_m): Likewise.
31245 (vclsq_m): Likewise.
31246 (vclzq_m): Likewise.
31247 (vcmpgeq_m): Likewise.
31248 (vcmpgeq_m_n): Likewise.
31249 (vdupq_m_n): Likewise.
31250 (vmaxaq_m): Likewise.
31251 (vmlaq_n): Likewise.
31252 (vmlasq_n): Likewise.
31253 (vmvnq_m): Likewise.
31254 (vnegq_m): Likewise.
31255 (vpselq): Likewise.
31256 (vqdmlahq_n): Likewise.
31257 (vqrdmlahq_n): Likewise.
31258 (vqdmlsdhq): Likewise.
31259 (vqdmladhq): Likewise.
31260 (vqabsq_m): Likewise.
31261 (vminaq_m): Likewise.
31262 (vrmlaldavhaq): Likewise.
31263 (vmlsdavxq_p): Likewise.
31264 (vmlsdavq_p): Likewise.
31265 (vmlsdavaxq): Likewise.
31266 (vmlsdavaq): Likewise.
31267 (vaddvaq_p): Likewise.
31268 (vcmpcsq_m_n): Likewise.
31269 (vcmpcsq_m): Likewise.
31270 (vcmpeqq_m_n): Likewise.
31271 (vcmpeqq_m): Likewise.
31272 (vmladavxq_p): Likewise.
31273 (vmladavq_p): Likewise.
31274 (vmladavaxq): Likewise.
31275 (vmladavaq): Likewise.
31276 (vminvq_p): Likewise.
31277 (vminavq_p): Likewise.
31278 (vmaxvq_p): Likewise.
31279 (vmaxavq_p): Likewise.
31280 (vcmpltq_m_n): Likewise.
31281 (vcmpltq_m): Likewise.
31282 (vcmpleq_m): Likewise.
31283 (vcmpleq_m_n): Likewise.
31284 (vcmphiq_m_n): Likewise.
31285 (vcmphiq_m): Likewise.
31286 (vcmpgtq_m_n): Likewise.
31287 (vcmpgtq_m): Likewise.
31288 * config/arm/arm_mve_builtins.def (TERNOP_NONE_NONE_NONE_IMM): Use
31289 builtin qualifier.
31290 (TERNOP_NONE_NONE_NONE_NONE): Likewise.
31291 (TERNOP_NONE_NONE_NONE_UNONE): Likewise.
31292 (TERNOP_UNONE_NONE_NONE_UNONE): Likewise.
31293 (TERNOP_UNONE_UNONE_NONE_UNONE): Likewise.
31294 (TERNOP_UNONE_UNONE_UNONE_IMM): Likewise.
31295 (TERNOP_UNONE_UNONE_UNONE_UNONE): Likewise.
31296 * config/arm/constraints.md (Rc): Define constraint to check constant is
31297 in the range of 0 to 15.
31298 (Re): Define constraint to check constant is in the range of 0 to 31.
31299 * config/arm/mve.md (VADDVAQ_P): Define iterator.
31300 (VCLZQ_M): Likewise.
31301 (VCMPEQQ_M_N): Likewise.
31302 (VCMPEQQ_M): Likewise.
31303 (VCMPNEQ_M_N): Likewise.
31304 (VCMPNEQ_M): Likewise.
31305 (VDUPQ_M_N): Likewise.
31306 (VMAXVQ_P): Likewise.
31307 (VMINVQ_P): Likewise.
31308 (VMLADAVAQ): Likewise.
31309 (VMLADAVQ_P): Likewise.
31310 (VMLAQ_N): Likewise.
31311 (VMLASQ_N): Likewise.
31312 (VMVNQ_M): Likewise.
31313 (VPSELQ): Likewise.
31314 (VQDMLAHQ_N): Likewise.
31315 (VQRDMLAHQ_N): Likewise.
31316 (VQRDMLASHQ_N): Likewise.
31317 (VQRSHLQ_M_N): Likewise.
31318 (VQSHLQ_M_R): Likewise.
31319 (VREV64Q_M): Likewise.
31320 (VRSHLQ_M_N): Likewise.
31321 (VSHLQ_M_R): Likewise.
31322 (VSLIQ_N): Likewise.
31323 (VSRIQ_N): Likewise.
31324 (mve_vabsq_m_s<mode>): Define RTL pattern.
31325 (mve_vaddvaq_p_<supf><mode>): Likewise.
31326 (mve_vclsq_m_s<mode>): Likewise.
31327 (mve_vclzq_m_<supf><mode>): Likewise.
31328 (mve_vcmpcsq_m_n_u<mode>): Likewise.
31329 (mve_vcmpcsq_m_u<mode>): Likewise.
31330 (mve_vcmpeqq_m_n_<supf><mode>): Likewise.
31331 (mve_vcmpeqq_m_<supf><mode>): Likewise.
31332 (mve_vcmpgeq_m_n_s<mode>): Likewise.
31333 (mve_vcmpgeq_m_s<mode>): Likewise.
31334 (mve_vcmpgtq_m_n_s<mode>): Likewise.
31335 (mve_vcmpgtq_m_s<mode>): Likewise.
31336 (mve_vcmphiq_m_n_u<mode>): Likewise.
31337 (mve_vcmphiq_m_u<mode>): Likewise.
31338 (mve_vcmpleq_m_n_s<mode>): Likewise.
31339 (mve_vcmpleq_m_s<mode>): Likewise.
31340 (mve_vcmpltq_m_n_s<mode>): Likewise.
31341 (mve_vcmpltq_m_s<mode>): Likewise.
31342 (mve_vcmpneq_m_n_<supf><mode>): Likewise.
31343 (mve_vcmpneq_m_<supf><mode>): Likewise.
31344 (mve_vdupq_m_n_<supf><mode>): Likewise.
31345 (mve_vmaxaq_m_s<mode>): Likewise.
31346 (mve_vmaxavq_p_s<mode>): Likewise.
31347 (mve_vmaxvq_p_<supf><mode>): Likewise.
31348 (mve_vminaq_m_s<mode>): Likewise.
31349 (mve_vminavq_p_s<mode>): Likewise.
31350 (mve_vminvq_p_<supf><mode>): Likewise.
31351 (mve_vmladavaq_<supf><mode>): Likewise.
31352 (mve_vmladavq_p_<supf><mode>): Likewise.
31353 (mve_vmladavxq_p_s<mode>): Likewise.
31354 (mve_vmlaq_n_<supf><mode>): Likewise.
31355 (mve_vmlasq_n_<supf><mode>): Likewise.
31356 (mve_vmlsdavq_p_s<mode>): Likewise.
31357 (mve_vmlsdavxq_p_s<mode>): Likewise.
31358 (mve_vmvnq_m_<supf><mode>): Likewise.
31359 (mve_vnegq_m_s<mode>): Likewise.
31360 (mve_vpselq_<supf><mode>): Likewise.
31361 (mve_vqabsq_m_s<mode>): Likewise.
31362 (mve_vqdmlahq_n_<supf><mode>): Likewise.
31363 (mve_vqnegq_m_s<mode>): Likewise.
31364 (mve_vqrdmladhq_s<mode>): Likewise.
31365 (mve_vqrdmladhxq_s<mode>): Likewise.
31366 (mve_vqrdmlahq_n_<supf><mode>): Likewise.
31367 (mve_vqrdmlashq_n_<supf><mode>): Likewise.
31368 (mve_vqrdmlsdhq_s<mode>): Likewise.
31369 (mve_vqrdmlsdhxq_s<mode>): Likewise.
31370 (mve_vqrshlq_m_n_<supf><mode>): Likewise.
31371 (mve_vqshlq_m_r_<supf><mode>): Likewise.
31372 (mve_vrev64q_m_<supf><mode>): Likewise.
31373 (mve_vrshlq_m_n_<supf><mode>): Likewise.
31374 (mve_vshlq_m_r_<supf><mode>): Likewise.
31375 (mve_vsliq_n_<supf><mode>): Likewise.
31376 (mve_vsriq_n_<supf><mode>): Likewise.
31377 (mve_vqdmlsdhxq_s<mode>): Likewise.
31378 (mve_vqdmlsdhq_s<mode>): Likewise.
31379 (mve_vqdmladhxq_s<mode>): Likewise.
31380 (mve_vqdmladhq_s<mode>): Likewise.
31381 (mve_vmlsdavaxq_s<mode>): Likewise.
31382 (mve_vmlsdavaq_s<mode>): Likewise.
31383 (mve_vmladavaxq_s<mode>): Likewise.
31384 * config/arm/predicates.md (mve_imm_15):Define predicate to check the
31385 matching constraint Rc.
31386 (mve_imm_31): Define predicate to check the matching constraint Re.
31387
31388 2020-03-18 Andrew Stubbs <ams@codesourcery.com>
31389
31390 * config/gcn/gcn-valu.md (vec_cmp<mode>di): Set operand 1 to DImode.
31391 (vec_cmp<mode>di_dup): Likewise.
31392 * config/gcn/gcn.h (STORE_FLAG_VALUE): Set to -1.
31393
31394 2020-03-18 Andrew Stubbs <ams@codesourcery.com>
31395
31396 * config/gcn/gcn-valu.md (COND_MODE): Delete.
31397 (COND_INT_MODE): Delete.
31398 (cond_op): Add "mult".
31399 (cond_<expander><mode>): Use VEC_ALLREG_MODE.
31400 (cond_<expander><mode>): Use VEC_ALLREG_INT_MODE.
31401
31402 2020-03-18 Richard Biener <rguenther@suse.de>
31403
31404 PR middle-end/94206
31405 * gimple-fold.c (gimple_fold_builtin_memset): Avoid using
31406 partial int modes or not mode-precision integer types for
31407 the store.
31408
31409 2020-03-18 Jakub Jelinek <jakub@redhat.com>
31410
31411 * asan.c (get_mem_refs_of_builtin_call): Fix up duplicated word issue
31412 in a comment.
31413 * config/arc/arc.c (frame_stack_add): Likewise.
31414 * gimple-loop-versioning.cc (loop_versioning::analyze_arbitrary_term):
31415 Likewise.
31416 * ipa-predicate.c (predicate::remap_after_inlining): Likewise.
31417 * tree-ssa-strlen.h (handle_printf_call): Likewise.
31418 * tree-ssa-strlen.c (is_strlen_related_p): Likewise.
31419 * optinfo-emit-json.cc (optrecord_json_writer::add_record): Likewise.
31420
31421 2020-03-18 Duan bo <duanbo3@huawei.com>
31422
31423 PR target/94201
31424 * config/aarch64/aarch64.md (ldr_got_tiny): Delete.
31425 (@ldr_got_tiny_<mode>): New pattern.
31426 (ldr_got_tiny_sidi): Likewise.
31427 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Use
31428 them to handle SYMBOL_TINY_GOT for ILP32.
31429
31430 2020-03-18 Richard Sandiford <richard.sandiford@arm.com>
31431
31432 * config/aarch64/aarch64.c (aarch64_sve_abi): Treat p12-p15 as
31433 call-preserved for SVE PCS functions.
31434 (aarch64_layout_frame): Cope with up to 12 predicate save slots.
31435 Optimize the case in which there are no following vector save slots.
31436
31437 2020-03-18 Richard Biener <rguenther@suse.de>
31438
31439 PR middle-end/94188
31440 * fold-const.c (build_fold_addr_expr): Convert address to
31441 correct type.
31442 * asan.c (maybe_create_ssa_name): Strip useless type conversions.
31443 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Use build1
31444 to build the ADDR_EXPR which we don't really want to simplify.
31445 * tree-ssa-dom.c (record_equivalences_from_stmt): Likewise.
31446 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Likewise.
31447 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
31448 (simplify_builtin_call): Strip useless type conversions.
31449 * tree-ssa-strlen.c (new_strinfo): Likewise.
31450
31451 2020-03-17 Alexey Neyman <stilor@att.net>
31452
31453 PR debug/93751
31454 * dwarf2out.c (gen_decl_die): Proceed to generating the DIE if
31455 the debug level is terse and the declaration is public. Do not
31456 generate type info.
31457 (dwarf2out_decl): Same.
31458 (add_type_attribute): Return immediately if debug level is
31459 terse.
31460
31461 2020-03-17 Richard Sandiford <richard.sandiford@arm.com>
31462
31463 * config/aarch64/iterators.md (Vmtype): Handle V4BF and V8BF.
31464
31465 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
31466 Mihail Ionescu <mihail.ionescu@arm.com>
31467 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
31468
31469 * config/arm/arm-builtins.c (TERNOP_UNONE_UNONE_UNONE_IMM_QUALIFIERS):
31470 Define qualifier for ternary operands.
31471 (TERNOP_UNONE_UNONE_NONE_NONE_QUALIFIERS): Likewise.
31472 (TERNOP_UNONE_NONE_UNONE_IMM_QUALIFIERS): Likewise.
31473 (TERNOP_NONE_NONE_UNONE_IMM_QUALIFIERS): Likewise.
31474 (TERNOP_UNONE_UNONE_NONE_IMM_QUALIFIERS): Likewise.
31475 (TERNOP_UNONE_UNONE_NONE_UNONE_QUALIFIERS): Likewise.
31476 (TERNOP_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Likewise.
31477 (TERNOP_UNONE_NONE_NONE_UNONE_QUALIFIERS): Likewise.
31478 (TERNOP_NONE_NONE_NONE_IMM_QUALIFIERS): Likewise.
31479 (TERNOP_NONE_NONE_NONE_UNONE_QUALIFIERS): Likewise.
31480 (TERNOP_NONE_NONE_IMM_UNONE_QUALIFIERS): Likewise.
31481 (TERNOP_NONE_NONE_UNONE_UNONE_QUALIFIERS): Likewise.
31482 (TERNOP_UNONE_UNONE_UNONE_UNONE_QUALIFIERS): Likewise.
31483 (TERNOP_NONE_NONE_NONE_NONE_QUALIFIERS): Likewise.
31484 * config/arm/arm_mve.h (vabavq_s8): Define macro.
31485 (vabavq_s16): Likewise.
31486 (vabavq_s32): Likewise.
31487 (vbicq_m_n_s16): Likewise.
31488 (vbicq_m_n_s32): Likewise.
31489 (vbicq_m_n_u16): Likewise.
31490 (vbicq_m_n_u32): Likewise.
31491 (vcmpeqq_m_f16): Likewise.
31492 (vcmpeqq_m_f32): Likewise.
31493 (vcvtaq_m_s16_f16): Likewise.
31494 (vcvtaq_m_u16_f16): Likewise.
31495 (vcvtaq_m_s32_f32): Likewise.
31496 (vcvtaq_m_u32_f32): Likewise.
31497 (vcvtq_m_f16_s16): Likewise.
31498 (vcvtq_m_f16_u16): Likewise.
31499 (vcvtq_m_f32_s32): Likewise.
31500 (vcvtq_m_f32_u32): Likewise.
31501 (vqrshrnbq_n_s16): Likewise.
31502 (vqrshrnbq_n_u16): Likewise.
31503 (vqrshrnbq_n_s32): Likewise.
31504 (vqrshrnbq_n_u32): Likewise.
31505 (vqrshrunbq_n_s16): Likewise.
31506 (vqrshrunbq_n_s32): Likewise.
31507 (vrmlaldavhaq_s32): Likewise.
31508 (vrmlaldavhaq_u32): Likewise.
31509 (vshlcq_s8): Likewise.
31510 (vshlcq_u8): Likewise.
31511 (vshlcq_s16): Likewise.
31512 (vshlcq_u16): Likewise.
31513 (vshlcq_s32): Likewise.
31514 (vshlcq_u32): Likewise.
31515 (vabavq_u8): Likewise.
31516 (vabavq_u16): Likewise.
31517 (vabavq_u32): Likewise.
31518 (__arm_vabavq_s8): Define intrinsic.
31519 (__arm_vabavq_s16): Likewise.
31520 (__arm_vabavq_s32): Likewise.
31521 (__arm_vabavq_u8): Likewise.
31522 (__arm_vabavq_u16): Likewise.
31523 (__arm_vabavq_u32): Likewise.
31524 (__arm_vbicq_m_n_s16): Likewise.
31525 (__arm_vbicq_m_n_s32): Likewise.
31526 (__arm_vbicq_m_n_u16): Likewise.
31527 (__arm_vbicq_m_n_u32): Likewise.
31528 (__arm_vqrshrnbq_n_s16): Likewise.
31529 (__arm_vqrshrnbq_n_u16): Likewise.
31530 (__arm_vqrshrnbq_n_s32): Likewise.
31531 (__arm_vqrshrnbq_n_u32): Likewise.
31532 (__arm_vqrshrunbq_n_s16): Likewise.
31533 (__arm_vqrshrunbq_n_s32): Likewise.
31534 (__arm_vrmlaldavhaq_s32): Likewise.
31535 (__arm_vrmlaldavhaq_u32): Likewise.
31536 (__arm_vshlcq_s8): Likewise.
31537 (__arm_vshlcq_u8): Likewise.
31538 (__arm_vshlcq_s16): Likewise.
31539 (__arm_vshlcq_u16): Likewise.
31540 (__arm_vshlcq_s32): Likewise.
31541 (__arm_vshlcq_u32): Likewise.
31542 (__arm_vcmpeqq_m_f16): Likewise.
31543 (__arm_vcmpeqq_m_f32): Likewise.
31544 (__arm_vcvtaq_m_s16_f16): Likewise.
31545 (__arm_vcvtaq_m_u16_f16): Likewise.
31546 (__arm_vcvtaq_m_s32_f32): Likewise.
31547 (__arm_vcvtaq_m_u32_f32): Likewise.
31548 (__arm_vcvtq_m_f16_s16): Likewise.
31549 (__arm_vcvtq_m_f16_u16): Likewise.
31550 (__arm_vcvtq_m_f32_s32): Likewise.
31551 (__arm_vcvtq_m_f32_u32): Likewise.
31552 (vcvtaq_m): Define polymorphic variant.
31553 (vcvtq_m): Likewise.
31554 (vabavq): Likewise.
31555 (vshlcq): Likewise.
31556 (vbicq_m_n): Likewise.
31557 (vqrshrnbq_n): Likewise.
31558 (vqrshrunbq_n): Likewise.
31559 * config/arm/arm_mve_builtins.def
31560 (TERNOP_UNONE_UNONE_UNONE_IMM_QUALIFIERS): Use the builtin qualifer.
31561 (TERNOP_UNONE_UNONE_NONE_NONE_QUALIFIERS): Likewise.
31562 (TERNOP_UNONE_NONE_UNONE_IMM_QUALIFIERS): Likewise.
31563 (TERNOP_NONE_NONE_UNONE_IMM_QUALIFIERS): Likewise.
31564 (TERNOP_UNONE_UNONE_NONE_IMM_QUALIFIERS): Likewise.
31565 (TERNOP_UNONE_UNONE_NONE_UNONE_QUALIFIERS): Likewise.
31566 (TERNOP_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Likewise.
31567 (TERNOP_UNONE_NONE_NONE_UNONE_QUALIFIERS): Likewise.
31568 (TERNOP_NONE_NONE_NONE_IMM_QUALIFIERS): Likewise.
31569 (TERNOP_NONE_NONE_NONE_UNONE_QUALIFIERS): Likewise.
31570 (TERNOP_NONE_NONE_IMM_UNONE_QUALIFIERS): Likewise.
31571 (TERNOP_NONE_NONE_UNONE_UNONE_QUALIFIERS): Likewise.
31572 (TERNOP_UNONE_UNONE_UNONE_UNONE_QUALIFIERS): Likewise.
31573 (TERNOP_NONE_NONE_NONE_NONE_QUALIFIERS): Likewise.
31574 * config/arm/mve.md (VBICQ_M_N): Define iterator.
31575 (VCVTAQ_M): Likewise.
31576 (VCVTQ_M_TO_F): Likewise.
31577 (VQRSHRNBQ_N): Likewise.
31578 (VABAVQ): Likewise.
31579 (VSHLCQ): Likewise.
31580 (VRMLALDAVHAQ): Likewise.
31581 (mve_vbicq_m_n_<supf><mode>): Define RTL pattern.
31582 (mve_vcmpeqq_m_f<mode>): Likewise.
31583 (mve_vcvtaq_m_<supf><mode>): Likewise.
31584 (mve_vcvtq_m_to_f_<supf><mode>): Likewise.
31585 (mve_vqrshrnbq_n_<supf><mode>): Likewise.
31586 (mve_vqrshrunbq_n_s<mode>): Likewise.
31587 (mve_vrmlaldavhaq_<supf>v4si): Likewise.
31588 (mve_vabavq_<supf><mode>): Likewise.
31589 (mve_vshlcq_<supf><mode>): Likewise.
31590 (mve_vshlcq_<supf><mode>): Likewise.
31591 (mve_vshlcq_vec_<supf><mode>): Define RTL expand.
31592 (mve_vshlcq_carry_<supf><mode>): Likewise.
31593
31594 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
31595 Mihail Ionescu <mihail.ionescu@arm.com>
31596 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
31597
31598 * config/arm/arm_mve.h (vqmovntq_u16): Define macro.
31599 (vqmovnbq_u16): Likewise.
31600 (vmulltq_poly_p8): Likewise.
31601 (vmullbq_poly_p8): Likewise.
31602 (vmovntq_u16): Likewise.
31603 (vmovnbq_u16): Likewise.
31604 (vmlaldavxq_u16): Likewise.
31605 (vmlaldavq_u16): Likewise.
31606 (vqmovuntq_s16): Likewise.
31607 (vqmovunbq_s16): Likewise.
31608 (vshlltq_n_u8): Likewise.
31609 (vshllbq_n_u8): Likewise.
31610 (vorrq_n_u16): Likewise.
31611 (vbicq_n_u16): Likewise.
31612 (vcmpneq_n_f16): Likewise.
31613 (vcmpneq_f16): Likewise.
31614 (vcmpltq_n_f16): Likewise.
31615 (vcmpltq_f16): Likewise.
31616 (vcmpleq_n_f16): Likewise.
31617 (vcmpleq_f16): Likewise.
31618 (vcmpgtq_n_f16): Likewise.
31619 (vcmpgtq_f16): Likewise.
31620 (vcmpgeq_n_f16): Likewise.
31621 (vcmpgeq_f16): Likewise.
31622 (vcmpeqq_n_f16): Likewise.
31623 (vcmpeqq_f16): Likewise.
31624 (vsubq_f16): Likewise.
31625 (vqmovntq_s16): Likewise.
31626 (vqmovnbq_s16): Likewise.
31627 (vqdmulltq_s16): Likewise.
31628 (vqdmulltq_n_s16): Likewise.
31629 (vqdmullbq_s16): Likewise.
31630 (vqdmullbq_n_s16): Likewise.
31631 (vorrq_f16): Likewise.
31632 (vornq_f16): Likewise.
31633 (vmulq_n_f16): Likewise.
31634 (vmulq_f16): Likewise.
31635 (vmovntq_s16): Likewise.
31636 (vmovnbq_s16): Likewise.
31637 (vmlsldavxq_s16): Likewise.
31638 (vmlsldavq_s16): Likewise.
31639 (vmlaldavxq_s16): Likewise.
31640 (vmlaldavq_s16): Likewise.
31641 (vminnmvq_f16): Likewise.
31642 (vminnmq_f16): Likewise.
31643 (vminnmavq_f16): Likewise.
31644 (vminnmaq_f16): Likewise.
31645 (vmaxnmvq_f16): Likewise.
31646 (vmaxnmq_f16): Likewise.
31647 (vmaxnmavq_f16): Likewise.
31648 (vmaxnmaq_f16): Likewise.
31649 (veorq_f16): Likewise.
31650 (vcmulq_rot90_f16): Likewise.
31651 (vcmulq_rot270_f16): Likewise.
31652 (vcmulq_rot180_f16): Likewise.
31653 (vcmulq_f16): Likewise.
31654 (vcaddq_rot90_f16): Likewise.
31655 (vcaddq_rot270_f16): Likewise.
31656 (vbicq_f16): Likewise.
31657 (vandq_f16): Likewise.
31658 (vaddq_n_f16): Likewise.
31659 (vabdq_f16): Likewise.
31660 (vshlltq_n_s8): Likewise.
31661 (vshllbq_n_s8): Likewise.
31662 (vorrq_n_s16): Likewise.
31663 (vbicq_n_s16): Likewise.
31664 (vqmovntq_u32): Likewise.
31665 (vqmovnbq_u32): Likewise.
31666 (vmulltq_poly_p16): Likewise.
31667 (vmullbq_poly_p16): Likewise.
31668 (vmovntq_u32): Likewise.
31669 (vmovnbq_u32): Likewise.
31670 (vmlaldavxq_u32): Likewise.
31671 (vmlaldavq_u32): Likewise.
31672 (vqmovuntq_s32): Likewise.
31673 (vqmovunbq_s32): Likewise.
31674 (vshlltq_n_u16): Likewise.
31675 (vshllbq_n_u16): Likewise.
31676 (vorrq_n_u32): Likewise.
31677 (vbicq_n_u32): Likewise.
31678 (vcmpneq_n_f32): Likewise.
31679 (vcmpneq_f32): Likewise.
31680 (vcmpltq_n_f32): Likewise.
31681 (vcmpltq_f32): Likewise.
31682 (vcmpleq_n_f32): Likewise.
31683 (vcmpleq_f32): Likewise.
31684 (vcmpgtq_n_f32): Likewise.
31685 (vcmpgtq_f32): Likewise.
31686 (vcmpgeq_n_f32): Likewise.
31687 (vcmpgeq_f32): Likewise.
31688 (vcmpeqq_n_f32): Likewise.
31689 (vcmpeqq_f32): Likewise.
31690 (vsubq_f32): Likewise.
31691 (vqmovntq_s32): Likewise.
31692 (vqmovnbq_s32): Likewise.
31693 (vqdmulltq_s32): Likewise.
31694 (vqdmulltq_n_s32): Likewise.
31695 (vqdmullbq_s32): Likewise.
31696 (vqdmullbq_n_s32): Likewise.
31697 (vorrq_f32): Likewise.
31698 (vornq_f32): Likewise.
31699 (vmulq_n_f32): Likewise.
31700 (vmulq_f32): Likewise.
31701 (vmovntq_s32): Likewise.
31702 (vmovnbq_s32): Likewise.
31703 (vmlsldavxq_s32): Likewise.
31704 (vmlsldavq_s32): Likewise.
31705 (vmlaldavxq_s32): Likewise.
31706 (vmlaldavq_s32): Likewise.
31707 (vminnmvq_f32): Likewise.
31708 (vminnmq_f32): Likewise.
31709 (vminnmavq_f32): Likewise.
31710 (vminnmaq_f32): Likewise.
31711 (vmaxnmvq_f32): Likewise.
31712 (vmaxnmq_f32): Likewise.
31713 (vmaxnmavq_f32): Likewise.
31714 (vmaxnmaq_f32): Likewise.
31715 (veorq_f32): Likewise.
31716 (vcmulq_rot90_f32): Likewise.
31717 (vcmulq_rot270_f32): Likewise.
31718 (vcmulq_rot180_f32): Likewise.
31719 (vcmulq_f32): Likewise.
31720 (vcaddq_rot90_f32): Likewise.
31721 (vcaddq_rot270_f32): Likewise.
31722 (vbicq_f32): Likewise.
31723 (vandq_f32): Likewise.
31724 (vaddq_n_f32): Likewise.
31725 (vabdq_f32): Likewise.
31726 (vshlltq_n_s16): Likewise.
31727 (vshllbq_n_s16): Likewise.
31728 (vorrq_n_s32): Likewise.
31729 (vbicq_n_s32): Likewise.
31730 (vrmlaldavhq_u32): Likewise.
31731 (vctp8q_m): Likewise.
31732 (vctp64q_m): Likewise.
31733 (vctp32q_m): Likewise.
31734 (vctp16q_m): Likewise.
31735 (vaddlvaq_u32): Likewise.
31736 (vrmlsldavhxq_s32): Likewise.
31737 (vrmlsldavhq_s32): Likewise.
31738 (vrmlaldavhxq_s32): Likewise.
31739 (vrmlaldavhq_s32): Likewise.
31740 (vcvttq_f16_f32): Likewise.
31741 (vcvtbq_f16_f32): Likewise.
31742 (vaddlvaq_s32): Likewise.
31743 (__arm_vqmovntq_u16): Define intrinsic.
31744 (__arm_vqmovnbq_u16): Likewise.
31745 (__arm_vmulltq_poly_p8): Likewise.
31746 (__arm_vmullbq_poly_p8): Likewise.
31747 (__arm_vmovntq_u16): Likewise.
31748 (__arm_vmovnbq_u16): Likewise.
31749 (__arm_vmlaldavxq_u16): Likewise.
31750 (__arm_vmlaldavq_u16): Likewise.
31751 (__arm_vqmovuntq_s16): Likewise.
31752 (__arm_vqmovunbq_s16): Likewise.
31753 (__arm_vshlltq_n_u8): Likewise.
31754 (__arm_vshllbq_n_u8): Likewise.
31755 (__arm_vorrq_n_u16): Likewise.
31756 (__arm_vbicq_n_u16): Likewise.
31757 (__arm_vcmpneq_n_f16): Likewise.
31758 (__arm_vcmpneq_f16): Likewise.
31759 (__arm_vcmpltq_n_f16): Likewise.
31760 (__arm_vcmpltq_f16): Likewise.
31761 (__arm_vcmpleq_n_f16): Likewise.
31762 (__arm_vcmpleq_f16): Likewise.
31763 (__arm_vcmpgtq_n_f16): Likewise.
31764 (__arm_vcmpgtq_f16): Likewise.
31765 (__arm_vcmpgeq_n_f16): Likewise.
31766 (__arm_vcmpgeq_f16): Likewise.
31767 (__arm_vcmpeqq_n_f16): Likewise.
31768 (__arm_vcmpeqq_f16): Likewise.
31769 (__arm_vsubq_f16): Likewise.
31770 (__arm_vqmovntq_s16): Likewise.
31771 (__arm_vqmovnbq_s16): Likewise.
31772 (__arm_vqdmulltq_s16): Likewise.
31773 (__arm_vqdmulltq_n_s16): Likewise.
31774 (__arm_vqdmullbq_s16): Likewise.
31775 (__arm_vqdmullbq_n_s16): Likewise.
31776 (__arm_vorrq_f16): Likewise.
31777 (__arm_vornq_f16): Likewise.
31778 (__arm_vmulq_n_f16): Likewise.
31779 (__arm_vmulq_f16): Likewise.
31780 (__arm_vmovntq_s16): Likewise.
31781 (__arm_vmovnbq_s16): Likewise.
31782 (__arm_vmlsldavxq_s16): Likewise.
31783 (__arm_vmlsldavq_s16): Likewise.
31784 (__arm_vmlaldavxq_s16): Likewise.
31785 (__arm_vmlaldavq_s16): Likewise.
31786 (__arm_vminnmvq_f16): Likewise.
31787 (__arm_vminnmq_f16): Likewise.
31788 (__arm_vminnmavq_f16): Likewise.
31789 (__arm_vminnmaq_f16): Likewise.
31790 (__arm_vmaxnmvq_f16): Likewise.
31791 (__arm_vmaxnmq_f16): Likewise.
31792 (__arm_vmaxnmavq_f16): Likewise.
31793 (__arm_vmaxnmaq_f16): Likewise.
31794 (__arm_veorq_f16): Likewise.
31795 (__arm_vcmulq_rot90_f16): Likewise.
31796 (__arm_vcmulq_rot270_f16): Likewise.
31797 (__arm_vcmulq_rot180_f16): Likewise.
31798 (__arm_vcmulq_f16): Likewise.
31799 (__arm_vcaddq_rot90_f16): Likewise.
31800 (__arm_vcaddq_rot270_f16): Likewise.
31801 (__arm_vbicq_f16): Likewise.
31802 (__arm_vandq_f16): Likewise.
31803 (__arm_vaddq_n_f16): Likewise.
31804 (__arm_vabdq_f16): Likewise.
31805 (__arm_vshlltq_n_s8): Likewise.
31806 (__arm_vshllbq_n_s8): Likewise.
31807 (__arm_vorrq_n_s16): Likewise.
31808 (__arm_vbicq_n_s16): Likewise.
31809 (__arm_vqmovntq_u32): Likewise.
31810 (__arm_vqmovnbq_u32): Likewise.
31811 (__arm_vmulltq_poly_p16): Likewise.
31812 (__arm_vmullbq_poly_p16): Likewise.
31813 (__arm_vmovntq_u32): Likewise.
31814 (__arm_vmovnbq_u32): Likewise.
31815 (__arm_vmlaldavxq_u32): Likewise.
31816 (__arm_vmlaldavq_u32): Likewise.
31817 (__arm_vqmovuntq_s32): Likewise.
31818 (__arm_vqmovunbq_s32): Likewise.
31819 (__arm_vshlltq_n_u16): Likewise.
31820 (__arm_vshllbq_n_u16): Likewise.
31821 (__arm_vorrq_n_u32): Likewise.
31822 (__arm_vbicq_n_u32): Likewise.
31823 (__arm_vcmpneq_n_f32): Likewise.
31824 (__arm_vcmpneq_f32): Likewise.
31825 (__arm_vcmpltq_n_f32): Likewise.
31826 (__arm_vcmpltq_f32): Likewise.
31827 (__arm_vcmpleq_n_f32): Likewise.
31828 (__arm_vcmpleq_f32): Likewise.
31829 (__arm_vcmpgtq_n_f32): Likewise.
31830 (__arm_vcmpgtq_f32): Likewise.
31831 (__arm_vcmpgeq_n_f32): Likewise.
31832 (__arm_vcmpgeq_f32): Likewise.
31833 (__arm_vcmpeqq_n_f32): Likewise.
31834 (__arm_vcmpeqq_f32): Likewise.
31835 (__arm_vsubq_f32): Likewise.
31836 (__arm_vqmovntq_s32): Likewise.
31837 (__arm_vqmovnbq_s32): Likewise.
31838 (__arm_vqdmulltq_s32): Likewise.
31839 (__arm_vqdmulltq_n_s32): Likewise.
31840 (__arm_vqdmullbq_s32): Likewise.
31841 (__arm_vqdmullbq_n_s32): Likewise.
31842 (__arm_vorrq_f32): Likewise.
31843 (__arm_vornq_f32): Likewise.
31844 (__arm_vmulq_n_f32): Likewise.
31845 (__arm_vmulq_f32): Likewise.
31846 (__arm_vmovntq_s32): Likewise.
31847 (__arm_vmovnbq_s32): Likewise.
31848 (__arm_vmlsldavxq_s32): Likewise.
31849 (__arm_vmlsldavq_s32): Likewise.
31850 (__arm_vmlaldavxq_s32): Likewise.
31851 (__arm_vmlaldavq_s32): Likewise.
31852 (__arm_vminnmvq_f32): Likewise.
31853 (__arm_vminnmq_f32): Likewise.
31854 (__arm_vminnmavq_f32): Likewise.
31855 (__arm_vminnmaq_f32): Likewise.
31856 (__arm_vmaxnmvq_f32): Likewise.
31857 (__arm_vmaxnmq_f32): Likewise.
31858 (__arm_vmaxnmavq_f32): Likewise.
31859 (__arm_vmaxnmaq_f32): Likewise.
31860 (__arm_veorq_f32): Likewise.
31861 (__arm_vcmulq_rot90_f32): Likewise.
31862 (__arm_vcmulq_rot270_f32): Likewise.
31863 (__arm_vcmulq_rot180_f32): Likewise.
31864 (__arm_vcmulq_f32): Likewise.
31865 (__arm_vcaddq_rot90_f32): Likewise.
31866 (__arm_vcaddq_rot270_f32): Likewise.
31867 (__arm_vbicq_f32): Likewise.
31868 (__arm_vandq_f32): Likewise.
31869 (__arm_vaddq_n_f32): Likewise.
31870 (__arm_vabdq_f32): Likewise.
31871 (__arm_vshlltq_n_s16): Likewise.
31872 (__arm_vshllbq_n_s16): Likewise.
31873 (__arm_vorrq_n_s32): Likewise.
31874 (__arm_vbicq_n_s32): Likewise.
31875 (__arm_vrmlaldavhq_u32): Likewise.
31876 (__arm_vctp8q_m): Likewise.
31877 (__arm_vctp64q_m): Likewise.
31878 (__arm_vctp32q_m): Likewise.
31879 (__arm_vctp16q_m): Likewise.
31880 (__arm_vaddlvaq_u32): Likewise.
31881 (__arm_vrmlsldavhxq_s32): Likewise.
31882 (__arm_vrmlsldavhq_s32): Likewise.
31883 (__arm_vrmlaldavhxq_s32): Likewise.
31884 (__arm_vrmlaldavhq_s32): Likewise.
31885 (__arm_vcvttq_f16_f32): Likewise.
31886 (__arm_vcvtbq_f16_f32): Likewise.
31887 (__arm_vaddlvaq_s32): Likewise.
31888 (vst4q): Define polymorphic variant.
31889 (vrndxq): Likewise.
31890 (vrndq): Likewise.
31891 (vrndpq): Likewise.
31892 (vrndnq): Likewise.
31893 (vrndmq): Likewise.
31894 (vrndaq): Likewise.
31895 (vrev64q): Likewise.
31896 (vnegq): Likewise.
31897 (vdupq_n): Likewise.
31898 (vabsq): Likewise.
31899 (vrev32q): Likewise.
31900 (vcvtbq_f32): Likewise.
31901 (vcvttq_f32): Likewise.
31902 (vcvtq): Likewise.
31903 (vsubq_n): Likewise.
31904 (vbrsrq_n): Likewise.
31905 (vcvtq_n): Likewise.
31906 (vsubq): Likewise.
31907 (vorrq): Likewise.
31908 (vabdq): Likewise.
31909 (vaddq_n): Likewise.
31910 (vandq): Likewise.
31911 (vbicq): Likewise.
31912 (vornq): Likewise.
31913 (vmulq_n): Likewise.
31914 (vmulq): Likewise.
31915 (vcaddq_rot270): Likewise.
31916 (vcmpeqq_n): Likewise.
31917 (vcmpeqq): Likewise.
31918 (vcaddq_rot90): Likewise.
31919 (vcmpgeq_n): Likewise.
31920 (vcmpgeq): Likewise.
31921 (vcmpgtq_n): Likewise.
31922 (vcmpgtq): Likewise.
31923 (vcmpgtq): Likewise.
31924 (vcmpleq_n): Likewise.
31925 (vcmpleq_n): Likewise.
31926 (vcmpleq): Likewise.
31927 (vcmpleq): Likewise.
31928 (vcmpltq_n): Likewise.
31929 (vcmpltq_n): Likewise.
31930 (vcmpltq): Likewise.
31931 (vcmpltq): Likewise.
31932 (vcmpneq_n): Likewise.
31933 (vcmpneq_n): Likewise.
31934 (vcmpneq): Likewise.
31935 (vcmpneq): Likewise.
31936 (vcmulq): Likewise.
31937 (vcmulq): Likewise.
31938 (vcmulq_rot180): Likewise.
31939 (vcmulq_rot180): Likewise.
31940 (vcmulq_rot270): Likewise.
31941 (vcmulq_rot270): Likewise.
31942 (vcmulq_rot90): Likewise.
31943 (vcmulq_rot90): Likewise.
31944 (veorq): Likewise.
31945 (veorq): Likewise.
31946 (vmaxnmaq): Likewise.
31947 (vmaxnmaq): Likewise.
31948 (vmaxnmavq): Likewise.
31949 (vmaxnmavq): Likewise.
31950 (vmaxnmq): Likewise.
31951 (vmaxnmq): Likewise.
31952 (vmaxnmvq): Likewise.
31953 (vmaxnmvq): Likewise.
31954 (vminnmaq): Likewise.
31955 (vminnmaq): Likewise.
31956 (vminnmavq): Likewise.
31957 (vminnmavq): Likewise.
31958 (vminnmq): Likewise.
31959 (vminnmq): Likewise.
31960 (vminnmvq): Likewise.
31961 (vminnmvq): Likewise.
31962 (vbicq_n): Likewise.
31963 (vqmovntq): Likewise.
31964 (vqmovntq): Likewise.
31965 (vqmovnbq): Likewise.
31966 (vqmovnbq): Likewise.
31967 (vmulltq_poly): Likewise.
31968 (vmulltq_poly): Likewise.
31969 (vmullbq_poly): Likewise.
31970 (vmullbq_poly): Likewise.
31971 (vmovntq): Likewise.
31972 (vmovntq): Likewise.
31973 (vmovnbq): Likewise.
31974 (vmovnbq): Likewise.
31975 (vmlaldavxq): Likewise.
31976 (vmlaldavxq): Likewise.
31977 (vqmovuntq): Likewise.
31978 (vqmovuntq): Likewise.
31979 (vshlltq_n): Likewise.
31980 (vshlltq_n): Likewise.
31981 (vshllbq_n): Likewise.
31982 (vshllbq_n): Likewise.
31983 (vorrq_n): Likewise.
31984 (vorrq_n): Likewise.
31985 (vmlaldavq): Likewise.
31986 (vmlaldavq): Likewise.
31987 (vqmovunbq): Likewise.
31988 (vqmovunbq): Likewise.
31989 (vqdmulltq_n): Likewise.
31990 (vqdmulltq_n): Likewise.
31991 (vqdmulltq): Likewise.
31992 (vqdmulltq): Likewise.
31993 (vqdmullbq_n): Likewise.
31994 (vqdmullbq_n): Likewise.
31995 (vqdmullbq): Likewise.
31996 (vqdmullbq): Likewise.
31997 (vaddlvaq): Likewise.
31998 (vaddlvaq): Likewise.
31999 (vrmlaldavhq): Likewise.
32000 (vrmlaldavhq): Likewise.
32001 (vrmlaldavhxq): Likewise.
32002 (vrmlaldavhxq): Likewise.
32003 (vrmlsldavhq): Likewise.
32004 (vrmlsldavhq): Likewise.
32005 (vrmlsldavhxq): Likewise.
32006 (vrmlsldavhxq): Likewise.
32007 (vmlsldavxq): Likewise.
32008 (vmlsldavxq): Likewise.
32009 (vmlsldavq): Likewise.
32010 (vmlsldavq): Likewise.
32011 * config/arm/arm_mve_builtins.def (BINOP_NONE_NONE_IMM): Use it.
32012 (BINOP_NONE_NONE_NONE): Likewise.
32013 (BINOP_UNONE_NONE_NONE): Likewise.
32014 (BINOP_UNONE_UNONE_IMM): Likewise.
32015 (BINOP_UNONE_UNONE_NONE): Likewise.
32016 (BINOP_UNONE_UNONE_UNONE): Likewise.
32017 * config/arm/mve.md (mve_vabdq_f<mode>): Define RTL pattern.
32018 (mve_vaddlvaq_<supf>v4si): Likewise.
32019 (mve_vaddq_n_f<mode>): Likewise.
32020 (mve_vandq_f<mode>): Likewise.
32021 (mve_vbicq_f<mode>): Likewise.
32022 (mve_vbicq_n_<supf><mode>): Likewise.
32023 (mve_vcaddq_rot270_f<mode>): Likewise.
32024 (mve_vcaddq_rot90_f<mode>): Likewise.
32025 (mve_vcmpeqq_f<mode>): Likewise.
32026 (mve_vcmpeqq_n_f<mode>): Likewise.
32027 (mve_vcmpgeq_f<mode>): Likewise.
32028 (mve_vcmpgeq_n_f<mode>): Likewise.
32029 (mve_vcmpgtq_f<mode>): Likewise.
32030 (mve_vcmpgtq_n_f<mode>): Likewise.
32031 (mve_vcmpleq_f<mode>): Likewise.
32032 (mve_vcmpleq_n_f<mode>): Likewise.
32033 (mve_vcmpltq_f<mode>): Likewise.
32034 (mve_vcmpltq_n_f<mode>): Likewise.
32035 (mve_vcmpneq_f<mode>): Likewise.
32036 (mve_vcmpneq_n_f<mode>): Likewise.
32037 (mve_vcmulq_f<mode>): Likewise.
32038 (mve_vcmulq_rot180_f<mode>): Likewise.
32039 (mve_vcmulq_rot270_f<mode>): Likewise.
32040 (mve_vcmulq_rot90_f<mode>): Likewise.
32041 (mve_vctp<mode1>q_mhi): Likewise.
32042 (mve_vcvtbq_f16_f32v8hf): Likewise.
32043 (mve_vcvttq_f16_f32v8hf): Likewise.
32044 (mve_veorq_f<mode>): Likewise.
32045 (mve_vmaxnmaq_f<mode>): Likewise.
32046 (mve_vmaxnmavq_f<mode>): Likewise.
32047 (mve_vmaxnmq_f<mode>): Likewise.
32048 (mve_vmaxnmvq_f<mode>): Likewise.
32049 (mve_vminnmaq_f<mode>): Likewise.
32050 (mve_vminnmavq_f<mode>): Likewise.
32051 (mve_vminnmq_f<mode>): Likewise.
32052 (mve_vminnmvq_f<mode>): Likewise.
32053 (mve_vmlaldavq_<supf><mode>): Likewise.
32054 (mve_vmlaldavxq_<supf><mode>): Likewise.
32055 (mve_vmlsldavq_s<mode>): Likewise.
32056 (mve_vmlsldavxq_s<mode>): Likewise.
32057 (mve_vmovnbq_<supf><mode>): Likewise.
32058 (mve_vmovntq_<supf><mode>): Likewise.
32059 (mve_vmulq_f<mode>): Likewise.
32060 (mve_vmulq_n_f<mode>): Likewise.
32061 (mve_vornq_f<mode>): Likewise.
32062 (mve_vorrq_f<mode>): Likewise.
32063 (mve_vorrq_n_<supf><mode>): Likewise.
32064 (mve_vqdmullbq_n_s<mode>): Likewise.
32065 (mve_vqdmullbq_s<mode>): Likewise.
32066 (mve_vqdmulltq_n_s<mode>): Likewise.
32067 (mve_vqdmulltq_s<mode>): Likewise.
32068 (mve_vqmovnbq_<supf><mode>): Likewise.
32069 (mve_vqmovntq_<supf><mode>): Likewise.
32070 (mve_vqmovunbq_s<mode>): Likewise.
32071 (mve_vqmovuntq_s<mode>): Likewise.
32072 (mve_vrmlaldavhxq_sv4si): Likewise.
32073 (mve_vrmlsldavhq_sv4si): Likewise.
32074 (mve_vrmlsldavhxq_sv4si): Likewise.
32075 (mve_vshllbq_n_<supf><mode>): Likewise.
32076 (mve_vshlltq_n_<supf><mode>): Likewise.
32077 (mve_vsubq_f<mode>): Likewise.
32078 (mve_vmulltq_poly_p<mode>): Likewise.
32079 (mve_vmullbq_poly_p<mode>): Likewise.
32080 (mve_vrmlaldavhq_<supf>v4si): Likewise.
32081
32082 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
32083 Mihail Ionescu <mihail.ionescu@arm.com>
32084 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
32085
32086 * config/arm/arm_mve.h (vsubq_u8): Define macro.
32087 (vsubq_n_u8): Likewise.
32088 (vrmulhq_u8): Likewise.
32089 (vrhaddq_u8): Likewise.
32090 (vqsubq_u8): Likewise.
32091 (vqsubq_n_u8): Likewise.
32092 (vqaddq_u8): Likewise.
32093 (vqaddq_n_u8): Likewise.
32094 (vorrq_u8): Likewise.
32095 (vornq_u8): Likewise.
32096 (vmulq_u8): Likewise.
32097 (vmulq_n_u8): Likewise.
32098 (vmulltq_int_u8): Likewise.
32099 (vmullbq_int_u8): Likewise.
32100 (vmulhq_u8): Likewise.
32101 (vmladavq_u8): Likewise.
32102 (vminvq_u8): Likewise.
32103 (vminq_u8): Likewise.
32104 (vmaxvq_u8): Likewise.
32105 (vmaxq_u8): Likewise.
32106 (vhsubq_u8): Likewise.
32107 (vhsubq_n_u8): Likewise.
32108 (vhaddq_u8): Likewise.
32109 (vhaddq_n_u8): Likewise.
32110 (veorq_u8): Likewise.
32111 (vcmpneq_n_u8): Likewise.
32112 (vcmphiq_u8): Likewise.
32113 (vcmphiq_n_u8): Likewise.
32114 (vcmpeqq_u8): Likewise.
32115 (vcmpeqq_n_u8): Likewise.
32116 (vcmpcsq_u8): Likewise.
32117 (vcmpcsq_n_u8): Likewise.
32118 (vcaddq_rot90_u8): Likewise.
32119 (vcaddq_rot270_u8): Likewise.
32120 (vbicq_u8): Likewise.
32121 (vandq_u8): Likewise.
32122 (vaddvq_p_u8): Likewise.
32123 (vaddvaq_u8): Likewise.
32124 (vaddq_n_u8): Likewise.
32125 (vabdq_u8): Likewise.
32126 (vshlq_r_u8): Likewise.
32127 (vrshlq_u8): Likewise.
32128 (vrshlq_n_u8): Likewise.
32129 (vqshlq_u8): Likewise.
32130 (vqshlq_r_u8): Likewise.
32131 (vqrshlq_u8): Likewise.
32132 (vqrshlq_n_u8): Likewise.
32133 (vminavq_s8): Likewise.
32134 (vminaq_s8): Likewise.
32135 (vmaxavq_s8): Likewise.
32136 (vmaxaq_s8): Likewise.
32137 (vbrsrq_n_u8): Likewise.
32138 (vshlq_n_u8): Likewise.
32139 (vrshrq_n_u8): Likewise.
32140 (vqshlq_n_u8): Likewise.
32141 (vcmpneq_n_s8): Likewise.
32142 (vcmpltq_s8): Likewise.
32143 (vcmpltq_n_s8): Likewise.
32144 (vcmpleq_s8): Likewise.
32145 (vcmpleq_n_s8): Likewise.
32146 (vcmpgtq_s8): Likewise.
32147 (vcmpgtq_n_s8): Likewise.
32148 (vcmpgeq_s8): Likewise.
32149 (vcmpgeq_n_s8): Likewise.
32150 (vcmpeqq_s8): Likewise.
32151 (vcmpeqq_n_s8): Likewise.
32152 (vqshluq_n_s8): Likewise.
32153 (vaddvq_p_s8): Likewise.
32154 (vsubq_s8): Likewise.
32155 (vsubq_n_s8): Likewise.
32156 (vshlq_r_s8): Likewise.
32157 (vrshlq_s8): Likewise.
32158 (vrshlq_n_s8): Likewise.
32159 (vrmulhq_s8): Likewise.
32160 (vrhaddq_s8): Likewise.
32161 (vqsubq_s8): Likewise.
32162 (vqsubq_n_s8): Likewise.
32163 (vqshlq_s8): Likewise.
32164 (vqshlq_r_s8): Likewise.
32165 (vqrshlq_s8): Likewise.
32166 (vqrshlq_n_s8): Likewise.
32167 (vqrdmulhq_s8): Likewise.
32168 (vqrdmulhq_n_s8): Likewise.
32169 (vqdmulhq_s8): Likewise.
32170 (vqdmulhq_n_s8): Likewise.
32171 (vqaddq_s8): Likewise.
32172 (vqaddq_n_s8): Likewise.
32173 (vorrq_s8): Likewise.
32174 (vornq_s8): Likewise.
32175 (vmulq_s8): Likewise.
32176 (vmulq_n_s8): Likewise.
32177 (vmulltq_int_s8): Likewise.
32178 (vmullbq_int_s8): Likewise.
32179 (vmulhq_s8): Likewise.
32180 (vmlsdavxq_s8): Likewise.
32181 (vmlsdavq_s8): Likewise.
32182 (vmladavxq_s8): Likewise.
32183 (vmladavq_s8): Likewise.
32184 (vminvq_s8): Likewise.
32185 (vminq_s8): Likewise.
32186 (vmaxvq_s8): Likewise.
32187 (vmaxq_s8): Likewise.
32188 (vhsubq_s8): Likewise.
32189 (vhsubq_n_s8): Likewise.
32190 (vhcaddq_rot90_s8): Likewise.
32191 (vhcaddq_rot270_s8): Likewise.
32192 (vhaddq_s8): Likewise.
32193 (vhaddq_n_s8): Likewise.
32194 (veorq_s8): Likewise.
32195 (vcaddq_rot90_s8): Likewise.
32196 (vcaddq_rot270_s8): Likewise.
32197 (vbrsrq_n_s8): Likewise.
32198 (vbicq_s8): Likewise.
32199 (vandq_s8): Likewise.
32200 (vaddvaq_s8): Likewise.
32201 (vaddq_n_s8): Likewise.
32202 (vabdq_s8): Likewise.
32203 (vshlq_n_s8): Likewise.
32204 (vrshrq_n_s8): Likewise.
32205 (vqshlq_n_s8): Likewise.
32206 (vsubq_u16): Likewise.
32207 (vsubq_n_u16): Likewise.
32208 (vrmulhq_u16): Likewise.
32209 (vrhaddq_u16): Likewise.
32210 (vqsubq_u16): Likewise.
32211 (vqsubq_n_u16): Likewise.
32212 (vqaddq_u16): Likewise.
32213 (vqaddq_n_u16): Likewise.
32214 (vorrq_u16): Likewise.
32215 (vornq_u16): Likewise.
32216 (vmulq_u16): Likewise.
32217 (vmulq_n_u16): Likewise.
32218 (vmulltq_int_u16): Likewise.
32219 (vmullbq_int_u16): Likewise.
32220 (vmulhq_u16): Likewise.
32221 (vmladavq_u16): Likewise.
32222 (vminvq_u16): Likewise.
32223 (vminq_u16): Likewise.
32224 (vmaxvq_u16): Likewise.
32225 (vmaxq_u16): Likewise.
32226 (vhsubq_u16): Likewise.
32227 (vhsubq_n_u16): Likewise.
32228 (vhaddq_u16): Likewise.
32229 (vhaddq_n_u16): Likewise.
32230 (veorq_u16): Likewise.
32231 (vcmpneq_n_u16): Likewise.
32232 (vcmphiq_u16): Likewise.
32233 (vcmphiq_n_u16): Likewise.
32234 (vcmpeqq_u16): Likewise.
32235 (vcmpeqq_n_u16): Likewise.
32236 (vcmpcsq_u16): Likewise.
32237 (vcmpcsq_n_u16): Likewise.
32238 (vcaddq_rot90_u16): Likewise.
32239 (vcaddq_rot270_u16): Likewise.
32240 (vbicq_u16): Likewise.
32241 (vandq_u16): Likewise.
32242 (vaddvq_p_u16): Likewise.
32243 (vaddvaq_u16): Likewise.
32244 (vaddq_n_u16): Likewise.
32245 (vabdq_u16): Likewise.
32246 (vshlq_r_u16): Likewise.
32247 (vrshlq_u16): Likewise.
32248 (vrshlq_n_u16): Likewise.
32249 (vqshlq_u16): Likewise.
32250 (vqshlq_r_u16): Likewise.
32251 (vqrshlq_u16): Likewise.
32252 (vqrshlq_n_u16): Likewise.
32253 (vminavq_s16): Likewise.
32254 (vminaq_s16): Likewise.
32255 (vmaxavq_s16): Likewise.
32256 (vmaxaq_s16): Likewise.
32257 (vbrsrq_n_u16): Likewise.
32258 (vshlq_n_u16): Likewise.
32259 (vrshrq_n_u16): Likewise.
32260 (vqshlq_n_u16): Likewise.
32261 (vcmpneq_n_s16): Likewise.
32262 (vcmpltq_s16): Likewise.
32263 (vcmpltq_n_s16): Likewise.
32264 (vcmpleq_s16): Likewise.
32265 (vcmpleq_n_s16): Likewise.
32266 (vcmpgtq_s16): Likewise.
32267 (vcmpgtq_n_s16): Likewise.
32268 (vcmpgeq_s16): Likewise.
32269 (vcmpgeq_n_s16): Likewise.
32270 (vcmpeqq_s16): Likewise.
32271 (vcmpeqq_n_s16): Likewise.
32272 (vqshluq_n_s16): Likewise.
32273 (vaddvq_p_s16): Likewise.
32274 (vsubq_s16): Likewise.
32275 (vsubq_n_s16): Likewise.
32276 (vshlq_r_s16): Likewise.
32277 (vrshlq_s16): Likewise.
32278 (vrshlq_n_s16): Likewise.
32279 (vrmulhq_s16): Likewise.
32280 (vrhaddq_s16): Likewise.
32281 (vqsubq_s16): Likewise.
32282 (vqsubq_n_s16): Likewise.
32283 (vqshlq_s16): Likewise.
32284 (vqshlq_r_s16): Likewise.
32285 (vqrshlq_s16): Likewise.
32286 (vqrshlq_n_s16): Likewise.
32287 (vqrdmulhq_s16): Likewise.
32288 (vqrdmulhq_n_s16): Likewise.
32289 (vqdmulhq_s16): Likewise.
32290 (vqdmulhq_n_s16): Likewise.
32291 (vqaddq_s16): Likewise.
32292 (vqaddq_n_s16): Likewise.
32293 (vorrq_s16): Likewise.
32294 (vornq_s16): Likewise.
32295 (vmulq_s16): Likewise.
32296 (vmulq_n_s16): Likewise.
32297 (vmulltq_int_s16): Likewise.
32298 (vmullbq_int_s16): Likewise.
32299 (vmulhq_s16): Likewise.
32300 (vmlsdavxq_s16): Likewise.
32301 (vmlsdavq_s16): Likewise.
32302 (vmladavxq_s16): Likewise.
32303 (vmladavq_s16): Likewise.
32304 (vminvq_s16): Likewise.
32305 (vminq_s16): Likewise.
32306 (vmaxvq_s16): Likewise.
32307 (vmaxq_s16): Likewise.
32308 (vhsubq_s16): Likewise.
32309 (vhsubq_n_s16): Likewise.
32310 (vhcaddq_rot90_s16): Likewise.
32311 (vhcaddq_rot270_s16): Likewise.
32312 (vhaddq_s16): Likewise.
32313 (vhaddq_n_s16): Likewise.
32314 (veorq_s16): Likewise.
32315 (vcaddq_rot90_s16): Likewise.
32316 (vcaddq_rot270_s16): Likewise.
32317 (vbrsrq_n_s16): Likewise.
32318 (vbicq_s16): Likewise.
32319 (vandq_s16): Likewise.
32320 (vaddvaq_s16): Likewise.
32321 (vaddq_n_s16): Likewise.
32322 (vabdq_s16): Likewise.
32323 (vshlq_n_s16): Likewise.
32324 (vrshrq_n_s16): Likewise.
32325 (vqshlq_n_s16): Likewise.
32326 (vsubq_u32): Likewise.
32327 (vsubq_n_u32): Likewise.
32328 (vrmulhq_u32): Likewise.
32329 (vrhaddq_u32): Likewise.
32330 (vqsubq_u32): Likewise.
32331 (vqsubq_n_u32): Likewise.
32332 (vqaddq_u32): Likewise.
32333 (vqaddq_n_u32): Likewise.
32334 (vorrq_u32): Likewise.
32335 (vornq_u32): Likewise.
32336 (vmulq_u32): Likewise.
32337 (vmulq_n_u32): Likewise.
32338 (vmulltq_int_u32): Likewise.
32339 (vmullbq_int_u32): Likewise.
32340 (vmulhq_u32): Likewise.
32341 (vmladavq_u32): Likewise.
32342 (vminvq_u32): Likewise.
32343 (vminq_u32): Likewise.
32344 (vmaxvq_u32): Likewise.
32345 (vmaxq_u32): Likewise.
32346 (vhsubq_u32): Likewise.
32347 (vhsubq_n_u32): Likewise.
32348 (vhaddq_u32): Likewise.
32349 (vhaddq_n_u32): Likewise.
32350 (veorq_u32): Likewise.
32351 (vcmpneq_n_u32): Likewise.
32352 (vcmphiq_u32): Likewise.
32353 (vcmphiq_n_u32): Likewise.
32354 (vcmpeqq_u32): Likewise.
32355 (vcmpeqq_n_u32): Likewise.
32356 (vcmpcsq_u32): Likewise.
32357 (vcmpcsq_n_u32): Likewise.
32358 (vcaddq_rot90_u32): Likewise.
32359 (vcaddq_rot270_u32): Likewise.
32360 (vbicq_u32): Likewise.
32361 (vandq_u32): Likewise.
32362 (vaddvq_p_u32): Likewise.
32363 (vaddvaq_u32): Likewise.
32364 (vaddq_n_u32): Likewise.
32365 (vabdq_u32): Likewise.
32366 (vshlq_r_u32): Likewise.
32367 (vrshlq_u32): Likewise.
32368 (vrshlq_n_u32): Likewise.
32369 (vqshlq_u32): Likewise.
32370 (vqshlq_r_u32): Likewise.
32371 (vqrshlq_u32): Likewise.
32372 (vqrshlq_n_u32): Likewise.
32373 (vminavq_s32): Likewise.
32374 (vminaq_s32): Likewise.
32375 (vmaxavq_s32): Likewise.
32376 (vmaxaq_s32): Likewise.
32377 (vbrsrq_n_u32): Likewise.
32378 (vshlq_n_u32): Likewise.
32379 (vrshrq_n_u32): Likewise.
32380 (vqshlq_n_u32): Likewise.
32381 (vcmpneq_n_s32): Likewise.
32382 (vcmpltq_s32): Likewise.
32383 (vcmpltq_n_s32): Likewise.
32384 (vcmpleq_s32): Likewise.
32385 (vcmpleq_n_s32): Likewise.
32386 (vcmpgtq_s32): Likewise.
32387 (vcmpgtq_n_s32): Likewise.
32388 (vcmpgeq_s32): Likewise.
32389 (vcmpgeq_n_s32): Likewise.
32390 (vcmpeqq_s32): Likewise.
32391 (vcmpeqq_n_s32): Likewise.
32392 (vqshluq_n_s32): Likewise.
32393 (vaddvq_p_s32): Likewise.
32394 (vsubq_s32): Likewise.
32395 (vsubq_n_s32): Likewise.
32396 (vshlq_r_s32): Likewise.
32397 (vrshlq_s32): Likewise.
32398 (vrshlq_n_s32): Likewise.
32399 (vrmulhq_s32): Likewise.
32400 (vrhaddq_s32): Likewise.
32401 (vqsubq_s32): Likewise.
32402 (vqsubq_n_s32): Likewise.
32403 (vqshlq_s32): Likewise.
32404 (vqshlq_r_s32): Likewise.
32405 (vqrshlq_s32): Likewise.
32406 (vqrshlq_n_s32): Likewise.
32407 (vqrdmulhq_s32): Likewise.
32408 (vqrdmulhq_n_s32): Likewise.
32409 (vqdmulhq_s32): Likewise.
32410 (vqdmulhq_n_s32): Likewise.
32411 (vqaddq_s32): Likewise.
32412 (vqaddq_n_s32): Likewise.
32413 (vorrq_s32): Likewise.
32414 (vornq_s32): Likewise.
32415 (vmulq_s32): Likewise.
32416 (vmulq_n_s32): Likewise.
32417 (vmulltq_int_s32): Likewise.
32418 (vmullbq_int_s32): Likewise.
32419 (vmulhq_s32): Likewise.
32420 (vmlsdavxq_s32): Likewise.
32421 (vmlsdavq_s32): Likewise.
32422 (vmladavxq_s32): Likewise.
32423 (vmladavq_s32): Likewise.
32424 (vminvq_s32): Likewise.
32425 (vminq_s32): Likewise.
32426 (vmaxvq_s32): Likewise.
32427 (vmaxq_s32): Likewise.
32428 (vhsubq_s32): Likewise.
32429 (vhsubq_n_s32): Likewise.
32430 (vhcaddq_rot90_s32): Likewise.
32431 (vhcaddq_rot270_s32): Likewise.
32432 (vhaddq_s32): Likewise.
32433 (vhaddq_n_s32): Likewise.
32434 (veorq_s32): Likewise.
32435 (vcaddq_rot90_s32): Likewise.
32436 (vcaddq_rot270_s32): Likewise.
32437 (vbrsrq_n_s32): Likewise.
32438 (vbicq_s32): Likewise.
32439 (vandq_s32): Likewise.
32440 (vaddvaq_s32): Likewise.
32441 (vaddq_n_s32): Likewise.
32442 (vabdq_s32): Likewise.
32443 (vshlq_n_s32): Likewise.
32444 (vrshrq_n_s32): Likewise.
32445 (vqshlq_n_s32): Likewise.
32446 (__arm_vsubq_u8): Define intrinsic.
32447 (__arm_vsubq_n_u8): Likewise.
32448 (__arm_vrmulhq_u8): Likewise.
32449 (__arm_vrhaddq_u8): Likewise.
32450 (__arm_vqsubq_u8): Likewise.
32451 (__arm_vqsubq_n_u8): Likewise.
32452 (__arm_vqaddq_u8): Likewise.
32453 (__arm_vqaddq_n_u8): Likewise.
32454 (__arm_vorrq_u8): Likewise.
32455 (__arm_vornq_u8): Likewise.
32456 (__arm_vmulq_u8): Likewise.
32457 (__arm_vmulq_n_u8): Likewise.
32458 (__arm_vmulltq_int_u8): Likewise.
32459 (__arm_vmullbq_int_u8): Likewise.
32460 (__arm_vmulhq_u8): Likewise.
32461 (__arm_vmladavq_u8): Likewise.
32462 (__arm_vminvq_u8): Likewise.
32463 (__arm_vminq_u8): Likewise.
32464 (__arm_vmaxvq_u8): Likewise.
32465 (__arm_vmaxq_u8): Likewise.
32466 (__arm_vhsubq_u8): Likewise.
32467 (__arm_vhsubq_n_u8): Likewise.
32468 (__arm_vhaddq_u8): Likewise.
32469 (__arm_vhaddq_n_u8): Likewise.
32470 (__arm_veorq_u8): Likewise.
32471 (__arm_vcmpneq_n_u8): Likewise.
32472 (__arm_vcmphiq_u8): Likewise.
32473 (__arm_vcmphiq_n_u8): Likewise.
32474 (__arm_vcmpeqq_u8): Likewise.
32475 (__arm_vcmpeqq_n_u8): Likewise.
32476 (__arm_vcmpcsq_u8): Likewise.
32477 (__arm_vcmpcsq_n_u8): Likewise.
32478 (__arm_vcaddq_rot90_u8): Likewise.
32479 (__arm_vcaddq_rot270_u8): Likewise.
32480 (__arm_vbicq_u8): Likewise.
32481 (__arm_vandq_u8): Likewise.
32482 (__arm_vaddvq_p_u8): Likewise.
32483 (__arm_vaddvaq_u8): Likewise.
32484 (__arm_vaddq_n_u8): Likewise.
32485 (__arm_vabdq_u8): Likewise.
32486 (__arm_vshlq_r_u8): Likewise.
32487 (__arm_vrshlq_u8): Likewise.
32488 (__arm_vrshlq_n_u8): Likewise.
32489 (__arm_vqshlq_u8): Likewise.
32490 (__arm_vqshlq_r_u8): Likewise.
32491 (__arm_vqrshlq_u8): Likewise.
32492 (__arm_vqrshlq_n_u8): Likewise.
32493 (__arm_vminavq_s8): Likewise.
32494 (__arm_vminaq_s8): Likewise.
32495 (__arm_vmaxavq_s8): Likewise.
32496 (__arm_vmaxaq_s8): Likewise.
32497 (__arm_vbrsrq_n_u8): Likewise.
32498 (__arm_vshlq_n_u8): Likewise.
32499 (__arm_vrshrq_n_u8): Likewise.
32500 (__arm_vqshlq_n_u8): Likewise.
32501 (__arm_vcmpneq_n_s8): Likewise.
32502 (__arm_vcmpltq_s8): Likewise.
32503 (__arm_vcmpltq_n_s8): Likewise.
32504 (__arm_vcmpleq_s8): Likewise.
32505 (__arm_vcmpleq_n_s8): Likewise.
32506 (__arm_vcmpgtq_s8): Likewise.
32507 (__arm_vcmpgtq_n_s8): Likewise.
32508 (__arm_vcmpgeq_s8): Likewise.
32509 (__arm_vcmpgeq_n_s8): Likewise.
32510 (__arm_vcmpeqq_s8): Likewise.
32511 (__arm_vcmpeqq_n_s8): Likewise.
32512 (__arm_vqshluq_n_s8): Likewise.
32513 (__arm_vaddvq_p_s8): Likewise.
32514 (__arm_vsubq_s8): Likewise.
32515 (__arm_vsubq_n_s8): Likewise.
32516 (__arm_vshlq_r_s8): Likewise.
32517 (__arm_vrshlq_s8): Likewise.
32518 (__arm_vrshlq_n_s8): Likewise.
32519 (__arm_vrmulhq_s8): Likewise.
32520 (__arm_vrhaddq_s8): Likewise.
32521 (__arm_vqsubq_s8): Likewise.
32522 (__arm_vqsubq_n_s8): Likewise.
32523 (__arm_vqshlq_s8): Likewise.
32524 (__arm_vqshlq_r_s8): Likewise.
32525 (__arm_vqrshlq_s8): Likewise.
32526 (__arm_vqrshlq_n_s8): Likewise.
32527 (__arm_vqrdmulhq_s8): Likewise.
32528 (__arm_vqrdmulhq_n_s8): Likewise.
32529 (__arm_vqdmulhq_s8): Likewise.
32530 (__arm_vqdmulhq_n_s8): Likewise.
32531 (__arm_vqaddq_s8): Likewise.
32532 (__arm_vqaddq_n_s8): Likewise.
32533 (__arm_vorrq_s8): Likewise.
32534 (__arm_vornq_s8): Likewise.
32535 (__arm_vmulq_s8): Likewise.
32536 (__arm_vmulq_n_s8): Likewise.
32537 (__arm_vmulltq_int_s8): Likewise.
32538 (__arm_vmullbq_int_s8): Likewise.
32539 (__arm_vmulhq_s8): Likewise.
32540 (__arm_vmlsdavxq_s8): Likewise.
32541 (__arm_vmlsdavq_s8): Likewise.
32542 (__arm_vmladavxq_s8): Likewise.
32543 (__arm_vmladavq_s8): Likewise.
32544 (__arm_vminvq_s8): Likewise.
32545 (__arm_vminq_s8): Likewise.
32546 (__arm_vmaxvq_s8): Likewise.
32547 (__arm_vmaxq_s8): Likewise.
32548 (__arm_vhsubq_s8): Likewise.
32549 (__arm_vhsubq_n_s8): Likewise.
32550 (__arm_vhcaddq_rot90_s8): Likewise.
32551 (__arm_vhcaddq_rot270_s8): Likewise.
32552 (__arm_vhaddq_s8): Likewise.
32553 (__arm_vhaddq_n_s8): Likewise.
32554 (__arm_veorq_s8): Likewise.
32555 (__arm_vcaddq_rot90_s8): Likewise.
32556 (__arm_vcaddq_rot270_s8): Likewise.
32557 (__arm_vbrsrq_n_s8): Likewise.
32558 (__arm_vbicq_s8): Likewise.
32559 (__arm_vandq_s8): Likewise.
32560 (__arm_vaddvaq_s8): Likewise.
32561 (__arm_vaddq_n_s8): Likewise.
32562 (__arm_vabdq_s8): Likewise.
32563 (__arm_vshlq_n_s8): Likewise.
32564 (__arm_vrshrq_n_s8): Likewise.
32565 (__arm_vqshlq_n_s8): Likewise.
32566 (__arm_vsubq_u16): Likewise.
32567 (__arm_vsubq_n_u16): Likewise.
32568 (__arm_vrmulhq_u16): Likewise.
32569 (__arm_vrhaddq_u16): Likewise.
32570 (__arm_vqsubq_u16): Likewise.
32571 (__arm_vqsubq_n_u16): Likewise.
32572 (__arm_vqaddq_u16): Likewise.
32573 (__arm_vqaddq_n_u16): Likewise.
32574 (__arm_vorrq_u16): Likewise.
32575 (__arm_vornq_u16): Likewise.
32576 (__arm_vmulq_u16): Likewise.
32577 (__arm_vmulq_n_u16): Likewise.
32578 (__arm_vmulltq_int_u16): Likewise.
32579 (__arm_vmullbq_int_u16): Likewise.
32580 (__arm_vmulhq_u16): Likewise.
32581 (__arm_vmladavq_u16): Likewise.
32582 (__arm_vminvq_u16): Likewise.
32583 (__arm_vminq_u16): Likewise.
32584 (__arm_vmaxvq_u16): Likewise.
32585 (__arm_vmaxq_u16): Likewise.
32586 (__arm_vhsubq_u16): Likewise.
32587 (__arm_vhsubq_n_u16): Likewise.
32588 (__arm_vhaddq_u16): Likewise.
32589 (__arm_vhaddq_n_u16): Likewise.
32590 (__arm_veorq_u16): Likewise.
32591 (__arm_vcmpneq_n_u16): Likewise.
32592 (__arm_vcmphiq_u16): Likewise.
32593 (__arm_vcmphiq_n_u16): Likewise.
32594 (__arm_vcmpeqq_u16): Likewise.
32595 (__arm_vcmpeqq_n_u16): Likewise.
32596 (__arm_vcmpcsq_u16): Likewise.
32597 (__arm_vcmpcsq_n_u16): Likewise.
32598 (__arm_vcaddq_rot90_u16): Likewise.
32599 (__arm_vcaddq_rot270_u16): Likewise.
32600 (__arm_vbicq_u16): Likewise.
32601 (__arm_vandq_u16): Likewise.
32602 (__arm_vaddvq_p_u16): Likewise.
32603 (__arm_vaddvaq_u16): Likewise.
32604 (__arm_vaddq_n_u16): Likewise.
32605 (__arm_vabdq_u16): Likewise.
32606 (__arm_vshlq_r_u16): Likewise.
32607 (__arm_vrshlq_u16): Likewise.
32608 (__arm_vrshlq_n_u16): Likewise.
32609 (__arm_vqshlq_u16): Likewise.
32610 (__arm_vqshlq_r_u16): Likewise.
32611 (__arm_vqrshlq_u16): Likewise.
32612 (__arm_vqrshlq_n_u16): Likewise.
32613 (__arm_vminavq_s16): Likewise.
32614 (__arm_vminaq_s16): Likewise.
32615 (__arm_vmaxavq_s16): Likewise.
32616 (__arm_vmaxaq_s16): Likewise.
32617 (__arm_vbrsrq_n_u16): Likewise.
32618 (__arm_vshlq_n_u16): Likewise.
32619 (__arm_vrshrq_n_u16): Likewise.
32620 (__arm_vqshlq_n_u16): Likewise.
32621 (__arm_vcmpneq_n_s16): Likewise.
32622 (__arm_vcmpltq_s16): Likewise.
32623 (__arm_vcmpltq_n_s16): Likewise.
32624 (__arm_vcmpleq_s16): Likewise.
32625 (__arm_vcmpleq_n_s16): Likewise.
32626 (__arm_vcmpgtq_s16): Likewise.
32627 (__arm_vcmpgtq_n_s16): Likewise.
32628 (__arm_vcmpgeq_s16): Likewise.
32629 (__arm_vcmpgeq_n_s16): Likewise.
32630 (__arm_vcmpeqq_s16): Likewise.
32631 (__arm_vcmpeqq_n_s16): Likewise.
32632 (__arm_vqshluq_n_s16): Likewise.
32633 (__arm_vaddvq_p_s16): Likewise.
32634 (__arm_vsubq_s16): Likewise.
32635 (__arm_vsubq_n_s16): Likewise.
32636 (__arm_vshlq_r_s16): Likewise.
32637 (__arm_vrshlq_s16): Likewise.
32638 (__arm_vrshlq_n_s16): Likewise.
32639 (__arm_vrmulhq_s16): Likewise.
32640 (__arm_vrhaddq_s16): Likewise.
32641 (__arm_vqsubq_s16): Likewise.
32642 (__arm_vqsubq_n_s16): Likewise.
32643 (__arm_vqshlq_s16): Likewise.
32644 (__arm_vqshlq_r_s16): Likewise.
32645 (__arm_vqrshlq_s16): Likewise.
32646 (__arm_vqrshlq_n_s16): Likewise.
32647 (__arm_vqrdmulhq_s16): Likewise.
32648 (__arm_vqrdmulhq_n_s16): Likewise.
32649 (__arm_vqdmulhq_s16): Likewise.
32650 (__arm_vqdmulhq_n_s16): Likewise.
32651 (__arm_vqaddq_s16): Likewise.
32652 (__arm_vqaddq_n_s16): Likewise.
32653 (__arm_vorrq_s16): Likewise.
32654 (__arm_vornq_s16): Likewise.
32655 (__arm_vmulq_s16): Likewise.
32656 (__arm_vmulq_n_s16): Likewise.
32657 (__arm_vmulltq_int_s16): Likewise.
32658 (__arm_vmullbq_int_s16): Likewise.
32659 (__arm_vmulhq_s16): Likewise.
32660 (__arm_vmlsdavxq_s16): Likewise.
32661 (__arm_vmlsdavq_s16): Likewise.
32662 (__arm_vmladavxq_s16): Likewise.
32663 (__arm_vmladavq_s16): Likewise.
32664 (__arm_vminvq_s16): Likewise.
32665 (__arm_vminq_s16): Likewise.
32666 (__arm_vmaxvq_s16): Likewise.
32667 (__arm_vmaxq_s16): Likewise.
32668 (__arm_vhsubq_s16): Likewise.
32669 (__arm_vhsubq_n_s16): Likewise.
32670 (__arm_vhcaddq_rot90_s16): Likewise.
32671 (__arm_vhcaddq_rot270_s16): Likewise.
32672 (__arm_vhaddq_s16): Likewise.
32673 (__arm_vhaddq_n_s16): Likewise.
32674 (__arm_veorq_s16): Likewise.
32675 (__arm_vcaddq_rot90_s16): Likewise.
32676 (__arm_vcaddq_rot270_s16): Likewise.
32677 (__arm_vbrsrq_n_s16): Likewise.
32678 (__arm_vbicq_s16): Likewise.
32679 (__arm_vandq_s16): Likewise.
32680 (__arm_vaddvaq_s16): Likewise.
32681 (__arm_vaddq_n_s16): Likewise.
32682 (__arm_vabdq_s16): Likewise.
32683 (__arm_vshlq_n_s16): Likewise.
32684 (__arm_vrshrq_n_s16): Likewise.
32685 (__arm_vqshlq_n_s16): Likewise.
32686 (__arm_vsubq_u32): Likewise.
32687 (__arm_vsubq_n_u32): Likewise.
32688 (__arm_vrmulhq_u32): Likewise.
32689 (__arm_vrhaddq_u32): Likewise.
32690 (__arm_vqsubq_u32): Likewise.
32691 (__arm_vqsubq_n_u32): Likewise.
32692 (__arm_vqaddq_u32): Likewise.
32693 (__arm_vqaddq_n_u32): Likewise.
32694 (__arm_vorrq_u32): Likewise.
32695 (__arm_vornq_u32): Likewise.
32696 (__arm_vmulq_u32): Likewise.
32697 (__arm_vmulq_n_u32): Likewise.
32698 (__arm_vmulltq_int_u32): Likewise.
32699 (__arm_vmullbq_int_u32): Likewise.
32700 (__arm_vmulhq_u32): Likewise.
32701 (__arm_vmladavq_u32): Likewise.
32702 (__arm_vminvq_u32): Likewise.
32703 (__arm_vminq_u32): Likewise.
32704 (__arm_vmaxvq_u32): Likewise.
32705 (__arm_vmaxq_u32): Likewise.
32706 (__arm_vhsubq_u32): Likewise.
32707 (__arm_vhsubq_n_u32): Likewise.
32708 (__arm_vhaddq_u32): Likewise.
32709 (__arm_vhaddq_n_u32): Likewise.
32710 (__arm_veorq_u32): Likewise.
32711 (__arm_vcmpneq_n_u32): Likewise.
32712 (__arm_vcmphiq_u32): Likewise.
32713 (__arm_vcmphiq_n_u32): Likewise.
32714 (__arm_vcmpeqq_u32): Likewise.
32715 (__arm_vcmpeqq_n_u32): Likewise.
32716 (__arm_vcmpcsq_u32): Likewise.
32717 (__arm_vcmpcsq_n_u32): Likewise.
32718 (__arm_vcaddq_rot90_u32): Likewise.
32719 (__arm_vcaddq_rot270_u32): Likewise.
32720 (__arm_vbicq_u32): Likewise.
32721 (__arm_vandq_u32): Likewise.
32722 (__arm_vaddvq_p_u32): Likewise.
32723 (__arm_vaddvaq_u32): Likewise.
32724 (__arm_vaddq_n_u32): Likewise.
32725 (__arm_vabdq_u32): Likewise.
32726 (__arm_vshlq_r_u32): Likewise.
32727 (__arm_vrshlq_u32): Likewise.
32728 (__arm_vrshlq_n_u32): Likewise.
32729 (__arm_vqshlq_u32): Likewise.
32730 (__arm_vqshlq_r_u32): Likewise.
32731 (__arm_vqrshlq_u32): Likewise.
32732 (__arm_vqrshlq_n_u32): Likewise.
32733 (__arm_vminavq_s32): Likewise.
32734 (__arm_vminaq_s32): Likewise.
32735 (__arm_vmaxavq_s32): Likewise.
32736 (__arm_vmaxaq_s32): Likewise.
32737 (__arm_vbrsrq_n_u32): Likewise.
32738 (__arm_vshlq_n_u32): Likewise.
32739 (__arm_vrshrq_n_u32): Likewise.
32740 (__arm_vqshlq_n_u32): Likewise.
32741 (__arm_vcmpneq_n_s32): Likewise.
32742 (__arm_vcmpltq_s32): Likewise.
32743 (__arm_vcmpltq_n_s32): Likewise.
32744 (__arm_vcmpleq_s32): Likewise.
32745 (__arm_vcmpleq_n_s32): Likewise.
32746 (__arm_vcmpgtq_s32): Likewise.
32747 (__arm_vcmpgtq_n_s32): Likewise.
32748 (__arm_vcmpgeq_s32): Likewise.
32749 (__arm_vcmpgeq_n_s32): Likewise.
32750 (__arm_vcmpeqq_s32): Likewise.
32751 (__arm_vcmpeqq_n_s32): Likewise.
32752 (__arm_vqshluq_n_s32): Likewise.
32753 (__arm_vaddvq_p_s32): Likewise.
32754 (__arm_vsubq_s32): Likewise.
32755 (__arm_vsubq_n_s32): Likewise.
32756 (__arm_vshlq_r_s32): Likewise.
32757 (__arm_vrshlq_s32): Likewise.
32758 (__arm_vrshlq_n_s32): Likewise.
32759 (__arm_vrmulhq_s32): Likewise.
32760 (__arm_vrhaddq_s32): Likewise.
32761 (__arm_vqsubq_s32): Likewise.
32762 (__arm_vqsubq_n_s32): Likewise.
32763 (__arm_vqshlq_s32): Likewise.
32764 (__arm_vqshlq_r_s32): Likewise.
32765 (__arm_vqrshlq_s32): Likewise.
32766 (__arm_vqrshlq_n_s32): Likewise.
32767 (__arm_vqrdmulhq_s32): Likewise.
32768 (__arm_vqrdmulhq_n_s32): Likewise.
32769 (__arm_vqdmulhq_s32): Likewise.
32770 (__arm_vqdmulhq_n_s32): Likewise.
32771 (__arm_vqaddq_s32): Likewise.
32772 (__arm_vqaddq_n_s32): Likewise.
32773 (__arm_vorrq_s32): Likewise.
32774 (__arm_vornq_s32): Likewise.
32775 (__arm_vmulq_s32): Likewise.
32776 (__arm_vmulq_n_s32): Likewise.
32777 (__arm_vmulltq_int_s32): Likewise.
32778 (__arm_vmullbq_int_s32): Likewise.
32779 (__arm_vmulhq_s32): Likewise.
32780 (__arm_vmlsdavxq_s32): Likewise.
32781 (__arm_vmlsdavq_s32): Likewise.
32782 (__arm_vmladavxq_s32): Likewise.
32783 (__arm_vmladavq_s32): Likewise.
32784 (__arm_vminvq_s32): Likewise.
32785 (__arm_vminq_s32): Likewise.
32786 (__arm_vmaxvq_s32): Likewise.
32787 (__arm_vmaxq_s32): Likewise.
32788 (__arm_vhsubq_s32): Likewise.
32789 (__arm_vhsubq_n_s32): Likewise.
32790 (__arm_vhcaddq_rot90_s32): Likewise.
32791 (__arm_vhcaddq_rot270_s32): Likewise.
32792 (__arm_vhaddq_s32): Likewise.
32793 (__arm_vhaddq_n_s32): Likewise.
32794 (__arm_veorq_s32): Likewise.
32795 (__arm_vcaddq_rot90_s32): Likewise.
32796 (__arm_vcaddq_rot270_s32): Likewise.
32797 (__arm_vbrsrq_n_s32): Likewise.
32798 (__arm_vbicq_s32): Likewise.
32799 (__arm_vandq_s32): Likewise.
32800 (__arm_vaddvaq_s32): Likewise.
32801 (__arm_vaddq_n_s32): Likewise.
32802 (__arm_vabdq_s32): Likewise.
32803 (__arm_vshlq_n_s32): Likewise.
32804 (__arm_vrshrq_n_s32): Likewise.
32805 (__arm_vqshlq_n_s32): Likewise.
32806 (vsubq): Define polymorphic variant.
32807 (vsubq_n): Likewise.
32808 (vshlq_r): Likewise.
32809 (vrshlq_n): Likewise.
32810 (vrshlq): Likewise.
32811 (vrmulhq): Likewise.
32812 (vrhaddq): Likewise.
32813 (vqsubq_n): Likewise.
32814 (vqsubq): Likewise.
32815 (vqshlq): Likewise.
32816 (vqshlq_r): Likewise.
32817 (vqshluq): Likewise.
32818 (vrshrq_n): Likewise.
32819 (vshlq_n): Likewise.
32820 (vqshluq_n): Likewise.
32821 (vqshlq_n): Likewise.
32822 (vqrshlq_n): Likewise.
32823 (vqrshlq): Likewise.
32824 (vqrdmulhq_n): Likewise.
32825 (vqrdmulhq): Likewise.
32826 (vqdmulhq_n): Likewise.
32827 (vqdmulhq): Likewise.
32828 (vqaddq_n): Likewise.
32829 (vqaddq): Likewise.
32830 (vorrq_n): Likewise.
32831 (vorrq): Likewise.
32832 (vornq): Likewise.
32833 (vmulq_n): Likewise.
32834 (vmulq): Likewise.
32835 (vmulltq_int): Likewise.
32836 (vmullbq_int): Likewise.
32837 (vmulhq): Likewise.
32838 (vminq): Likewise.
32839 (vminaq): Likewise.
32840 (vmaxq): Likewise.
32841 (vmaxaq): Likewise.
32842 (vhsubq_n): Likewise.
32843 (vhsubq): Likewise.
32844 (vhcaddq_rot90): Likewise.
32845 (vhcaddq_rot270): Likewise.
32846 (vhaddq_n): Likewise.
32847 (vhaddq): Likewise.
32848 (veorq): Likewise.
32849 (vcaddq_rot90): Likewise.
32850 (vcaddq_rot270): Likewise.
32851 (vbrsrq_n): Likewise.
32852 (vbicq_n): Likewise.
32853 (vbicq): Likewise.
32854 (vaddq): Likewise.
32855 (vaddq_n): Likewise.
32856 (vandq): Likewise.
32857 (vabdq): Likewise.
32858 * config/arm/arm_mve_builtins.def (BINOP_NONE_NONE_IMM): Use it.
32859 (BINOP_NONE_NONE_NONE): Likewise.
32860 (BINOP_NONE_NONE_UNONE): Likewise.
32861 (BINOP_UNONE_NONE_IMM): Likewise.
32862 (BINOP_UNONE_NONE_NONE): Likewise.
32863 (BINOP_UNONE_UNONE_IMM): Likewise.
32864 (BINOP_UNONE_UNONE_NONE): Likewise.
32865 (BINOP_UNONE_UNONE_UNONE): Likewise.
32866 * config/arm/constraints.md (Ra): Define constraint to check constant is
32867 in the range of 0 to 7.
32868 (Rg): Define constriant to check the constant is one among 1, 2, 4
32869 and 8.
32870 * config/arm/mve.md (mve_vabdq_<supf>): Define RTL pattern.
32871 (mve_vaddq_n_<supf>): Likewise.
32872 (mve_vaddvaq_<supf>): Likewise.
32873 (mve_vaddvq_p_<supf>): Likewise.
32874 (mve_vandq_<supf>): Likewise.
32875 (mve_vbicq_<supf>): Likewise.
32876 (mve_vbrsrq_n_<supf>): Likewise.
32877 (mve_vcaddq_rot270_<supf>): Likewise.
32878 (mve_vcaddq_rot90_<supf>): Likewise.
32879 (mve_vcmpcsq_n_u): Likewise.
32880 (mve_vcmpcsq_u): Likewise.
32881 (mve_vcmpeqq_n_<supf>): Likewise.
32882 (mve_vcmpeqq_<supf>): Likewise.
32883 (mve_vcmpgeq_n_s): Likewise.
32884 (mve_vcmpgeq_s): Likewise.
32885 (mve_vcmpgtq_n_s): Likewise.
32886 (mve_vcmpgtq_s): Likewise.
32887 (mve_vcmphiq_n_u): Likewise.
32888 (mve_vcmphiq_u): Likewise.
32889 (mve_vcmpleq_n_s): Likewise.
32890 (mve_vcmpleq_s): Likewise.
32891 (mve_vcmpltq_n_s): Likewise.
32892 (mve_vcmpltq_s): Likewise.
32893 (mve_vcmpneq_n_<supf>): Likewise.
32894 (mve_vddupq_n_u): Likewise.
32895 (mve_veorq_<supf>): Likewise.
32896 (mve_vhaddq_n_<supf>): Likewise.
32897 (mve_vhaddq_<supf>): Likewise.
32898 (mve_vhcaddq_rot270_s): Likewise.
32899 (mve_vhcaddq_rot90_s): Likewise.
32900 (mve_vhsubq_n_<supf>): Likewise.
32901 (mve_vhsubq_<supf>): Likewise.
32902 (mve_vidupq_n_u): Likewise.
32903 (mve_vmaxaq_s): Likewise.
32904 (mve_vmaxavq_s): Likewise.
32905 (mve_vmaxq_<supf>): Likewise.
32906 (mve_vmaxvq_<supf>): Likewise.
32907 (mve_vminaq_s): Likewise.
32908 (mve_vminavq_s): Likewise.
32909 (mve_vminq_<supf>): Likewise.
32910 (mve_vminvq_<supf>): Likewise.
32911 (mve_vmladavq_<supf>): Likewise.
32912 (mve_vmladavxq_s): Likewise.
32913 (mve_vmlsdavq_s): Likewise.
32914 (mve_vmlsdavxq_s): Likewise.
32915 (mve_vmulhq_<supf>): Likewise.
32916 (mve_vmullbq_int_<supf>): Likewise.
32917 (mve_vmulltq_int_<supf>): Likewise.
32918 (mve_vmulq_n_<supf>): Likewise.
32919 (mve_vmulq_<supf>): Likewise.
32920 (mve_vornq_<supf>): Likewise.
32921 (mve_vorrq_<supf>): Likewise.
32922 (mve_vqaddq_n_<supf>): Likewise.
32923 (mve_vqaddq_<supf>): Likewise.
32924 (mve_vqdmulhq_n_s): Likewise.
32925 (mve_vqdmulhq_s): Likewise.
32926 (mve_vqrdmulhq_n_s): Likewise.
32927 (mve_vqrdmulhq_s): Likewise.
32928 (mve_vqrshlq_n_<supf>): Likewise.
32929 (mve_vqrshlq_<supf>): Likewise.
32930 (mve_vqshlq_n_<supf>): Likewise.
32931 (mve_vqshlq_r_<supf>): Likewise.
32932 (mve_vqshlq_<supf>): Likewise.
32933 (mve_vqshluq_n_s): Likewise.
32934 (mve_vqsubq_n_<supf>): Likewise.
32935 (mve_vqsubq_<supf>): Likewise.
32936 (mve_vrhaddq_<supf>): Likewise.
32937 (mve_vrmulhq_<supf>): Likewise.
32938 (mve_vrshlq_n_<supf>): Likewise.
32939 (mve_vrshlq_<supf>): Likewise.
32940 (mve_vrshrq_n_<supf>): Likewise.
32941 (mve_vshlq_n_<supf>): Likewise.
32942 (mve_vshlq_r_<supf>): Likewise.
32943 (mve_vsubq_n_<supf>): Likewise.
32944 (mve_vsubq_<supf>): Likewise.
32945 * config/arm/predicates.md (mve_imm_7): Define predicate to check
32946 the matching constraint Ra.
32947 (mve_imm_selective_upto_8): Define predicate to check the matching
32948 constraint Rg.
32949
32950 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
32951 Mihail Ionescu <mihail.ionescu@arm.com>
32952 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
32953
32954 * config/arm/arm-builtins.c (BINOP_NONE_NONE_UNONE_QUALIFIERS): Define
32955 qualifier for binary operands.
32956 (BINOP_UNONE_NONE_NONE_QUALIFIERS): Likewise.
32957 (BINOP_UNONE_UNONE_NONE_QUALIFIERS): Likewise.
32958 * config/arm/arm_mve.h (vaddlvq_p_s32): Define macro.
32959 (vaddlvq_p_u32): Likewise.
32960 (vcmpneq_s8): Likewise.
32961 (vcmpneq_s16): Likewise.
32962 (vcmpneq_s32): Likewise.
32963 (vcmpneq_u8): Likewise.
32964 (vcmpneq_u16): Likewise.
32965 (vcmpneq_u32): Likewise.
32966 (vshlq_s8): Likewise.
32967 (vshlq_s16): Likewise.
32968 (vshlq_s32): Likewise.
32969 (vshlq_u8): Likewise.
32970 (vshlq_u16): Likewise.
32971 (vshlq_u32): Likewise.
32972 (__arm_vaddlvq_p_s32): Define intrinsic.
32973 (__arm_vaddlvq_p_u32): Likewise.
32974 (__arm_vcmpneq_s8): Likewise.
32975 (__arm_vcmpneq_s16): Likewise.
32976 (__arm_vcmpneq_s32): Likewise.
32977 (__arm_vcmpneq_u8): Likewise.
32978 (__arm_vcmpneq_u16): Likewise.
32979 (__arm_vcmpneq_u32): Likewise.
32980 (__arm_vshlq_s8): Likewise.
32981 (__arm_vshlq_s16): Likewise.
32982 (__arm_vshlq_s32): Likewise.
32983 (__arm_vshlq_u8): Likewise.
32984 (__arm_vshlq_u16): Likewise.
32985 (__arm_vshlq_u32): Likewise.
32986 (vaddlvq_p): Define polymorphic variant.
32987 (vcmpneq): Likewise.
32988 (vshlq): Likewise.
32989 * config/arm/arm_mve_builtins.def (BINOP_NONE_NONE_UNONE_QUALIFIERS):
32990 Use it.
32991 (BINOP_UNONE_NONE_NONE_QUALIFIERS): Likewise.
32992 (BINOP_UNONE_UNONE_NONE_QUALIFIERS): Likewise.
32993 * config/arm/mve.md (mve_vaddlvq_p_<supf>v4si): Define RTL pattern.
32994 (mve_vcmpneq_<supf><mode>): Likewise.
32995 (mve_vshlq_<supf><mode>): Likewise.
32996
32997 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
32998 Mihail Ionescu <mihail.ionescu@arm.com>
32999 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
33000
33001 * config/arm/arm-builtins.c (BINOP_UNONE_UNONE_IMM_QUALIFIERS): Define
33002 qualifier for binary operands.
33003 (BINOP_UNONE_UNONE_UNONE_QUALIFIERS): Likewise.
33004 (BINOP_UNONE_NONE_IMM_QUALIFIERS): Likewise.
33005 * config/arm/arm_mve.h (vcvtq_n_s16_f16): Define macro.
33006 (vcvtq_n_s32_f32): Likewise.
33007 (vcvtq_n_u16_f16): Likewise.
33008 (vcvtq_n_u32_f32): Likewise.
33009 (vcreateq_u8): Likewise.
33010 (vcreateq_u16): Likewise.
33011 (vcreateq_u32): Likewise.
33012 (vcreateq_u64): Likewise.
33013 (vcreateq_s8): Likewise.
33014 (vcreateq_s16): Likewise.
33015 (vcreateq_s32): Likewise.
33016 (vcreateq_s64): Likewise.
33017 (vshrq_n_s8): Likewise.
33018 (vshrq_n_s16): Likewise.
33019 (vshrq_n_s32): Likewise.
33020 (vshrq_n_u8): Likewise.
33021 (vshrq_n_u16): Likewise.
33022 (vshrq_n_u32): Likewise.
33023 (__arm_vcreateq_u8): Define intrinsic.
33024 (__arm_vcreateq_u16): Likewise.
33025 (__arm_vcreateq_u32): Likewise.
33026 (__arm_vcreateq_u64): Likewise.
33027 (__arm_vcreateq_s8): Likewise.
33028 (__arm_vcreateq_s16): Likewise.
33029 (__arm_vcreateq_s32): Likewise.
33030 (__arm_vcreateq_s64): Likewise.
33031 (__arm_vshrq_n_s8): Likewise.
33032 (__arm_vshrq_n_s16): Likewise.
33033 (__arm_vshrq_n_s32): Likewise.
33034 (__arm_vshrq_n_u8): Likewise.
33035 (__arm_vshrq_n_u16): Likewise.
33036 (__arm_vshrq_n_u32): Likewise.
33037 (__arm_vcvtq_n_s16_f16): Likewise.
33038 (__arm_vcvtq_n_s32_f32): Likewise.
33039 (__arm_vcvtq_n_u16_f16): Likewise.
33040 (__arm_vcvtq_n_u32_f32): Likewise.
33041 (vshrq_n): Define polymorphic variant.
33042 * config/arm/arm_mve_builtins.def (BINOP_UNONE_UNONE_IMM_QUALIFIERS):
33043 Use it.
33044 (BINOP_UNONE_UNONE_UNONE_QUALIFIERS): Likewise.
33045 (BINOP_UNONE_NONE_IMM_QUALIFIERS): Likewise.
33046 * config/arm/constraints.md (Rb): Define constraint to check constant is
33047 in the range of 1 to 8.
33048 (Rf): Define constraint to check constant is in the range of 1 to 32.
33049 * config/arm/mve.md (mve_vcreateq_<supf><mode>): Define RTL pattern.
33050 (mve_vshrq_n_<supf><mode>): Likewise.
33051 (mve_vcvtq_n_from_f_<supf><mode>): Likewise.
33052 * config/arm/predicates.md (mve_imm_8): Define predicate to check
33053 the matching constraint Rb.
33054 (mve_imm_32): Define predicate to check the matching constraint Rf.
33055
33056 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
33057 Mihail Ionescu <mihail.ionescu@arm.com>
33058 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
33059
33060 * config/arm/arm-builtins.c (BINOP_NONE_NONE_NONE_QUALIFIERS): Define
33061 qualifier for binary operands.
33062 (BINOP_NONE_NONE_IMM_QUALIFIERS): Likewise.
33063 (BINOP_NONE_UNONE_IMM_QUALIFIERS): Likewise.
33064 (BINOP_NONE_UNONE_UNONE_QUALIFIERS): Likewise.
33065 * config/arm/arm_mve.h (vsubq_n_f16): Define macro.
33066 (vsubq_n_f32): Likewise.
33067 (vbrsrq_n_f16): Likewise.
33068 (vbrsrq_n_f32): Likewise.
33069 (vcvtq_n_f16_s16): Likewise.
33070 (vcvtq_n_f32_s32): Likewise.
33071 (vcvtq_n_f16_u16): Likewise.
33072 (vcvtq_n_f32_u32): Likewise.
33073 (vcreateq_f16): Likewise.
33074 (vcreateq_f32): Likewise.
33075 (__arm_vsubq_n_f16): Define intrinsic.
33076 (__arm_vsubq_n_f32): Likewise.
33077 (__arm_vbrsrq_n_f16): Likewise.
33078 (__arm_vbrsrq_n_f32): Likewise.
33079 (__arm_vcvtq_n_f16_s16): Likewise.
33080 (__arm_vcvtq_n_f32_s32): Likewise.
33081 (__arm_vcvtq_n_f16_u16): Likewise.
33082 (__arm_vcvtq_n_f32_u32): Likewise.
33083 (__arm_vcreateq_f16): Likewise.
33084 (__arm_vcreateq_f32): Likewise.
33085 (vsubq): Define polymorphic variant.
33086 (vbrsrq): Likewise.
33087 (vcvtq_n): Likewise.
33088 * config/arm/arm_mve_builtins.def (BINOP_NONE_NONE_NONE_QUALIFIERS): Use
33089 it.
33090 (BINOP_NONE_NONE_IMM_QUALIFIERS): Likewise.
33091 (BINOP_NONE_UNONE_IMM_QUALIFIERS): Likewise.
33092 (BINOP_NONE_UNONE_UNONE_QUALIFIERS): Likewise.
33093 * config/arm/constraints.md (Rd): Define constraint to check constant is
33094 in the range of 1 to 16.
33095 * config/arm/mve.md (mve_vsubq_n_f<mode>): Define RTL pattern.
33096 mve_vbrsrq_n_f<mode>: Likewise.
33097 mve_vcvtq_n_to_f_<supf><mode>: Likewise.
33098 mve_vcreateq_f<mode>: Likewise.
33099 * config/arm/predicates.md (mve_imm_16): Define predicate to check
33100 the matching constraint Rd.
33101
33102 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
33103 Mihail Ionescu <mihail.ionescu@arm.com>
33104 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
33105
33106 * config/arm/arm-builtins.c (hi_UP): Define mode.
33107 * config/arm/arm.h (IS_VPR_REGNUM): Move.
33108 * config/arm/arm.md (VPR_REGNUM): Define before APSRQ_REGNUM.
33109 (APSRQ_REGNUM): Modify.
33110 (APSRGE_REGNUM): Modify.
33111 * config/arm/arm_mve.h (vctp16q): Define macro.
33112 (vctp32q): Likewise.
33113 (vctp64q): Likewise.
33114 (vctp8q): Likewise.
33115 (vpnot): Likewise.
33116 (__arm_vctp16q): Define intrinsic.
33117 (__arm_vctp32q): Likewise.
33118 (__arm_vctp64q): Likewise.
33119 (__arm_vctp8q): Likewise.
33120 (__arm_vpnot): Likewise.
33121 * config/arm/arm_mve_builtins.def (UNOP_UNONE_UNONE): Use builtin
33122 qualifier.
33123 * config/arm/mve.md (mve_vctp<mode1>qhi): Define RTL pattern.
33124 (mve_vpnothi): Likewise.
33125
33126 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
33127 Mihail Ionescu <mihail.ionescu@arm.com>
33128 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
33129
33130 * config/arm/arm.h (enum reg_class): Define new class EVEN_REGS.
33131 * config/arm/arm_mve.h (vdupq_n_s8): Define macro.
33132 (vdupq_n_s16): Likewise.
33133 (vdupq_n_s32): Likewise.
33134 (vabsq_s8): Likewise.
33135 (vabsq_s16): Likewise.
33136 (vabsq_s32): Likewise.
33137 (vclsq_s8): Likewise.
33138 (vclsq_s16): Likewise.
33139 (vclsq_s32): Likewise.
33140 (vclzq_s8): Likewise.
33141 (vclzq_s16): Likewise.
33142 (vclzq_s32): Likewise.
33143 (vnegq_s8): Likewise.
33144 (vnegq_s16): Likewise.
33145 (vnegq_s32): Likewise.
33146 (vaddlvq_s32): Likewise.
33147 (vaddvq_s8): Likewise.
33148 (vaddvq_s16): Likewise.
33149 (vaddvq_s32): Likewise.
33150 (vmovlbq_s8): Likewise.
33151 (vmovlbq_s16): Likewise.
33152 (vmovltq_s8): Likewise.
33153 (vmovltq_s16): Likewise.
33154 (vmvnq_s8): Likewise.
33155 (vmvnq_s16): Likewise.
33156 (vmvnq_s32): Likewise.
33157 (vrev16q_s8): Likewise.
33158 (vrev32q_s8): Likewise.
33159 (vrev32q_s16): Likewise.
33160 (vqabsq_s8): Likewise.
33161 (vqabsq_s16): Likewise.
33162 (vqabsq_s32): Likewise.
33163 (vqnegq_s8): Likewise.
33164 (vqnegq_s16): Likewise.
33165 (vqnegq_s32): Likewise.
33166 (vcvtaq_s16_f16): Likewise.
33167 (vcvtaq_s32_f32): Likewise.
33168 (vcvtnq_s16_f16): Likewise.
33169 (vcvtnq_s32_f32): Likewise.
33170 (vcvtpq_s16_f16): Likewise.
33171 (vcvtpq_s32_f32): Likewise.
33172 (vcvtmq_s16_f16): Likewise.
33173 (vcvtmq_s32_f32): Likewise.
33174 (vmvnq_u8): Likewise.
33175 (vmvnq_u16): Likewise.
33176 (vmvnq_u32): Likewise.
33177 (vdupq_n_u8): Likewise.
33178 (vdupq_n_u16): Likewise.
33179 (vdupq_n_u32): Likewise.
33180 (vclzq_u8): Likewise.
33181 (vclzq_u16): Likewise.
33182 (vclzq_u32): Likewise.
33183 (vaddvq_u8): Likewise.
33184 (vaddvq_u16): Likewise.
33185 (vaddvq_u32): Likewise.
33186 (vrev32q_u8): Likewise.
33187 (vrev32q_u16): Likewise.
33188 (vmovltq_u8): Likewise.
33189 (vmovltq_u16): Likewise.
33190 (vmovlbq_u8): Likewise.
33191 (vmovlbq_u16): Likewise.
33192 (vrev16q_u8): Likewise.
33193 (vaddlvq_u32): Likewise.
33194 (vcvtpq_u16_f16): Likewise.
33195 (vcvtpq_u32_f32): Likewise.
33196 (vcvtnq_u16_f16): Likewise.
33197 (vcvtmq_u16_f16): Likewise.
33198 (vcvtmq_u32_f32): Likewise.
33199 (vcvtaq_u16_f16): Likewise.
33200 (vcvtaq_u32_f32): Likewise.
33201 (__arm_vdupq_n_s8): Define intrinsic.
33202 (__arm_vdupq_n_s16): Likewise.
33203 (__arm_vdupq_n_s32): Likewise.
33204 (__arm_vabsq_s8): Likewise.
33205 (__arm_vabsq_s16): Likewise.
33206 (__arm_vabsq_s32): Likewise.
33207 (__arm_vclsq_s8): Likewise.
33208 (__arm_vclsq_s16): Likewise.
33209 (__arm_vclsq_s32): Likewise.
33210 (__arm_vclzq_s8): Likewise.
33211 (__arm_vclzq_s16): Likewise.
33212 (__arm_vclzq_s32): Likewise.
33213 (__arm_vnegq_s8): Likewise.
33214 (__arm_vnegq_s16): Likewise.
33215 (__arm_vnegq_s32): Likewise.
33216 (__arm_vaddlvq_s32): Likewise.
33217 (__arm_vaddvq_s8): Likewise.
33218 (__arm_vaddvq_s16): Likewise.
33219 (__arm_vaddvq_s32): Likewise.
33220 (__arm_vmovlbq_s8): Likewise.
33221 (__arm_vmovlbq_s16): Likewise.
33222 (__arm_vmovltq_s8): Likewise.
33223 (__arm_vmovltq_s16): Likewise.
33224 (__arm_vmvnq_s8): Likewise.
33225 (__arm_vmvnq_s16): Likewise.
33226 (__arm_vmvnq_s32): Likewise.
33227 (__arm_vrev16q_s8): Likewise.
33228 (__arm_vrev32q_s8): Likewise.
33229 (__arm_vrev32q_s16): Likewise.
33230 (__arm_vqabsq_s8): Likewise.
33231 (__arm_vqabsq_s16): Likewise.
33232 (__arm_vqabsq_s32): Likewise.
33233 (__arm_vqnegq_s8): Likewise.
33234 (__arm_vqnegq_s16): Likewise.
33235 (__arm_vqnegq_s32): Likewise.
33236 (__arm_vmvnq_u8): Likewise.
33237 (__arm_vmvnq_u16): Likewise.
33238 (__arm_vmvnq_u32): Likewise.
33239 (__arm_vdupq_n_u8): Likewise.
33240 (__arm_vdupq_n_u16): Likewise.
33241 (__arm_vdupq_n_u32): Likewise.
33242 (__arm_vclzq_u8): Likewise.
33243 (__arm_vclzq_u16): Likewise.
33244 (__arm_vclzq_u32): Likewise.
33245 (__arm_vaddvq_u8): Likewise.
33246 (__arm_vaddvq_u16): Likewise.
33247 (__arm_vaddvq_u32): Likewise.
33248 (__arm_vrev32q_u8): Likewise.
33249 (__arm_vrev32q_u16): Likewise.
33250 (__arm_vmovltq_u8): Likewise.
33251 (__arm_vmovltq_u16): Likewise.
33252 (__arm_vmovlbq_u8): Likewise.
33253 (__arm_vmovlbq_u16): Likewise.
33254 (__arm_vrev16q_u8): Likewise.
33255 (__arm_vaddlvq_u32): Likewise.
33256 (__arm_vcvtpq_u16_f16): Likewise.
33257 (__arm_vcvtpq_u32_f32): Likewise.
33258 (__arm_vcvtnq_u16_f16): Likewise.
33259 (__arm_vcvtmq_u16_f16): Likewise.
33260 (__arm_vcvtmq_u32_f32): Likewise.
33261 (__arm_vcvtaq_u16_f16): Likewise.
33262 (__arm_vcvtaq_u32_f32): Likewise.
33263 (__arm_vcvtaq_s16_f16): Likewise.
33264 (__arm_vcvtaq_s32_f32): Likewise.
33265 (__arm_vcvtnq_s16_f16): Likewise.
33266 (__arm_vcvtnq_s32_f32): Likewise.
33267 (__arm_vcvtpq_s16_f16): Likewise.
33268 (__arm_vcvtpq_s32_f32): Likewise.
33269 (__arm_vcvtmq_s16_f16): Likewise.
33270 (__arm_vcvtmq_s32_f32): Likewise.
33271 (vdupq_n): Define polymorphic variant.
33272 (vabsq): Likewise.
33273 (vclsq): Likewise.
33274 (vclzq): Likewise.
33275 (vnegq): Likewise.
33276 (vaddlvq): Likewise.
33277 (vaddvq): Likewise.
33278 (vmovlbq): Likewise.
33279 (vmovltq): Likewise.
33280 (vmvnq): Likewise.
33281 (vrev16q): Likewise.
33282 (vrev32q): Likewise.
33283 (vqabsq): Likewise.
33284 (vqnegq): Likewise.
33285 * config/arm/arm_mve_builtins.def (UNOP_SNONE_SNONE): Use it.
33286 (UNOP_SNONE_NONE): Likewise.
33287 (UNOP_UNONE_UNONE): Likewise.
33288 (UNOP_UNONE_NONE): Likewise.
33289 * config/arm/constraints.md (e): Define new constriant to allow only
33290 even registers.
33291 * config/arm/mve.md (mve_vqabsq_s<mode>): Define RTL pattern.
33292 (mve_vnegq_s<mode>): Likewise.
33293 (mve_vmvnq_<supf><mode>): Likewise.
33294 (mve_vdupq_n_<supf><mode>): Likewise.
33295 (mve_vclzq_<supf><mode>): Likewise.
33296 (mve_vclsq_s<mode>): Likewise.
33297 (mve_vaddvq_<supf><mode>): Likewise.
33298 (mve_vabsq_s<mode>): Likewise.
33299 (mve_vrev32q_<supf><mode>): Likewise.
33300 (mve_vmovltq_<supf><mode>): Likewise.
33301 (mve_vmovlbq_<supf><mode>): Likewise.
33302 (mve_vcvtpq_<supf><mode>): Likewise.
33303 (mve_vcvtnq_<supf><mode>): Likewise.
33304 (mve_vcvtmq_<supf><mode>): Likewise.
33305 (mve_vcvtaq_<supf><mode>): Likewise.
33306 (mve_vrev16q_<supf>v16qi): Likewise.
33307 (mve_vaddlvq_<supf>v4si): Likewise.
33308
33309 2020-03-17 Jakub Jelinek <jakub@redhat.com>
33310
33311 * lra-spills.c (remove_pseudos): Fix up duplicated word issue in
33312 a dump message.
33313 * tree-sra.c (create_access_replacement): Fix up duplicated word issue
33314 in a comment.
33315 * read-rtl-function.c (find_param_by_name,
33316 function_reader::parse_enum_value, function_reader::get_insn_by_uid):
33317 Likewise.
33318 * spellcheck.c (get_edit_distance_cutoff): Likewise.
33319 * tree-data-ref.c (create_ifn_alias_checks): Likewise.
33320 * tree.def (SWITCH_EXPR): Likewise.
33321 * selftest.c (assert_str_contains): Likewise.
33322 * ipa-param-manipulation.h (class ipa_param_body_adjustments):
33323 Likewise.
33324 * tree-ssa-math-opts.c (convert_expand_mult_copysign): Likewise.
33325 * tree-ssa-loop-split.c (find_vdef_in_loop): Likewise.
33326 * langhooks.h (struct lang_hooks_for_decls): Likewise.
33327 * ipa-prop.h (struct ipa_param_descriptor): Likewise.
33328 * tree-ssa-strlen.c (handle_builtin_string_cmp, handle_store):
33329 Likewise.
33330 * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Likewise.
33331 * tree-ssa-reassoc.c (reassociate_bb): Likewise.
33332 * tree.c (component_ref_size): Likewise.
33333 * hsa-common.c (hsa_init_compilation_unit_data): Likewise.
33334 * gimple-ssa-sprintf.c (get_string_length, format_string,
33335 format_directive): Likewise.
33336 * omp-grid.c (grid_process_kernel_body_copy): Likewise.
33337 * input.c (string_concat_db::get_string_concatenation,
33338 test_lexer_string_locations_ucn4): Likewise.
33339 * cfgexpand.c (pass_expand::execute): Likewise.
33340 * gimple-ssa-warn-restrict.c (builtin_memref::offset_out_of_bounds,
33341 maybe_diag_overlap): Likewise.
33342 * rtl.c (RTX_CODE_HWINT_P_1): Likewise.
33343 * shrink-wrap.c (spread_components): Likewise.
33344 * tree-ssa-dse.c (initialize_ao_ref_for_dse, valid_ao_ref_for_dse):
33345 Likewise.
33346 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
33347 Likewise.
33348 * dwarf2out.c (dwarf2out_early_finish): Likewise.
33349 * gimple-ssa-store-merging.c: Likewise.
33350 * ira-costs.c (record_operand_costs): Likewise.
33351 * tree-vect-loop.c (vectorizable_reduction): Likewise.
33352 * target.def (dispatch): Likewise.
33353 (validate_dims, gen_ccmp_first): Fix up duplicated word issue
33354 in documentation text.
33355 * doc/tm.texi: Regenerated.
33356 * config/i386/x86-tune.def (X86_TUNE_PARTIAL_FLAG_REG_STALL): Fix up
33357 duplicated word issue in a comment.
33358 * config/i386/i386.c (ix86_test_loading_unspec): Likewise.
33359 * config/i386/i386-features.c (remove_partial_avx_dependency):
33360 Likewise.
33361 * config/msp430/msp430.c (msp430_select_section): Likewise.
33362 * config/gcn/gcn-run.c (load_image): Likewise.
33363 * config/aarch64/aarch64-sve.md (sve_ld1r<mode>): Likewise.
33364 * config/aarch64/aarch64.c (aarch64_gen_adjusted_ldpstp): Likewise.
33365 * config/aarch64/falkor-tag-collision-avoidance.c
33366 (single_dest_per_chain): Likewise.
33367 * config/nvptx/nvptx.c (nvptx_record_fndecl): Likewise.
33368 * config/fr30/fr30.c (fr30_arg_partial_bytes): Likewise.
33369 * config/rs6000/rs6000-string.c (expand_cmp_vec_sequence): Likewise.
33370 * config/rs6000/rs6000-p8swap.c (replace_swapped_load_constant):
33371 Likewise.
33372 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Likewise.
33373 * config/rs6000/rs6000.c (rs6000_option_override_internal): Likewise.
33374 * config/rs6000/rs6000-logue.c
33375 (rs6000_emit_probe_stack_range_stack_clash): Likewise.
33376 * config/nds32/nds32-md-auxiliary.c (nds32_split_ashiftdi3): Likewise.
33377 Fix various other issues in the comment.
33378
33379 2020-03-17 Mihail Ionescu <mihail.ionescu@arm.com>
33380
33381 * config/arm/t-rmprofile: create new multilib for
33382 armv8.1-m.main+mve hard float and reuse v8-m.main ones for
33383 v8.1-m.main+mve.
33384
33385 2020-03-17 Jakub Jelinek <jakub@redhat.com>
33386
33387 PR tree-optimization/94015
33388 * tree-ssa-strlen.c (count_nonzero_bytes): Split portions of the
33389 function where EXP is address of the bytes being stored rather than
33390 the bytes themselves into count_nonzero_bytes_addr. Punt on zero
33391 sized MEM_REF. Use VAR_P macro and handle CONST_DECL like VAR_DECLs.
33392 Use ctor_for_folding instead of looking at DECL_INITIAL. Punt before
33393 calling native_encode_expr if host or target doesn't have 8-bit
33394 chars. Formatting fixes.
33395 (count_nonzero_bytes_addr): New function.
33396
33397 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
33398 Mihail Ionescu <mihail.ionescu@arm.com>
33399 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
33400
33401 * config/arm/arm-builtins.c (UNOP_SNONE_SNONE_QUALIFIERS): Define.
33402 (UNOP_SNONE_NONE_QUALIFIERS): Likewise.
33403 (UNOP_SNONE_IMM_QUALIFIERS): Likewise.
33404 (UNOP_UNONE_NONE_QUALIFIERS): Likewise.
33405 (UNOP_UNONE_UNONE_QUALIFIERS): Likewise.
33406 (UNOP_UNONE_IMM_QUALIFIERS): Likewise.
33407 * config/arm/arm_mve.h (vmvnq_n_s16): Define macro.
33408 (vmvnq_n_s32): Likewise.
33409 (vrev64q_s8): Likewise.
33410 (vrev64q_s16): Likewise.
33411 (vrev64q_s32): Likewise.
33412 (vcvtq_s16_f16): Likewise.
33413 (vcvtq_s32_f32): Likewise.
33414 (vrev64q_u8): Likewise.
33415 (vrev64q_u16): Likewise.
33416 (vrev64q_u32): Likewise.
33417 (vmvnq_n_u16): Likewise.
33418 (vmvnq_n_u32): Likewise.
33419 (vcvtq_u16_f16): Likewise.
33420 (vcvtq_u32_f32): Likewise.
33421 (__arm_vmvnq_n_s16): Define intrinsic.
33422 (__arm_vmvnq_n_s32): Likewise.
33423 (__arm_vrev64q_s8): Likewise.
33424 (__arm_vrev64q_s16): Likewise.
33425 (__arm_vrev64q_s32): Likewise.
33426 (__arm_vrev64q_u8): Likewise.
33427 (__arm_vrev64q_u16): Likewise.
33428 (__arm_vrev64q_u32): Likewise.
33429 (__arm_vmvnq_n_u16): Likewise.
33430 (__arm_vmvnq_n_u32): Likewise.
33431 (__arm_vcvtq_s16_f16): Likewise.
33432 (__arm_vcvtq_s32_f32): Likewise.
33433 (__arm_vcvtq_u16_f16): Likewise.
33434 (__arm_vcvtq_u32_f32): Likewise.
33435 (vrev64q): Define polymorphic variant.
33436 * config/arm/arm_mve_builtins.def (UNOP_SNONE_SNONE): Use it.
33437 (UNOP_SNONE_NONE): Likewise.
33438 (UNOP_SNONE_IMM): Likewise.
33439 (UNOP_UNONE_UNONE): Likewise.
33440 (UNOP_UNONE_NONE): Likewise.
33441 (UNOP_UNONE_IMM): Likewise.
33442 * config/arm/mve.md (mve_vrev64q_<supf><mode>): Define RTL pattern.
33443 (mve_vcvtq_from_f_<supf><mode>): Likewise.
33444 (mve_vmvnq_n_<supf><mode>): Likewise.
33445
33446 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
33447 Mihail Ionescu <mihail.ionescu@arm.com>
33448 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
33449
33450 * config/arm/arm-builtins.c (UNOP_NONE_NONE_QUALIFIERS): Define macro.
33451 (UNOP_NONE_SNONE_QUALIFIERS): Likewise.
33452 (UNOP_NONE_UNONE_QUALIFIERS): Likewise.
33453 * config/arm/arm_mve.h (vrndxq_f16): Define macro.
33454 (vrndxq_f32): Likewise.
33455 (vrndq_f16) Likewise.
33456 (vrndq_f32): Likewise.
33457 (vrndpq_f16): Likewise.
33458 (vrndpq_f32): Likewise.
33459 (vrndnq_f16): Likewise.
33460 (vrndnq_f32): Likewise.
33461 (vrndmq_f16): Likewise.
33462 (vrndmq_f32): Likewise.
33463 (vrndaq_f16): Likewise.
33464 (vrndaq_f32): Likewise.
33465 (vrev64q_f16): Likewise.
33466 (vrev64q_f32): Likewise.
33467 (vnegq_f16): Likewise.
33468 (vnegq_f32): Likewise.
33469 (vdupq_n_f16): Likewise.
33470 (vdupq_n_f32): Likewise.
33471 (vabsq_f16): Likewise.
33472 (vabsq_f32): Likewise.
33473 (vrev32q_f16): Likewise.
33474 (vcvttq_f32_f16): Likewise.
33475 (vcvtbq_f32_f16): Likewise.
33476 (vcvtq_f16_s16): Likewise.
33477 (vcvtq_f32_s32): Likewise.
33478 (vcvtq_f16_u16): Likewise.
33479 (vcvtq_f32_u32): Likewise.
33480 (__arm_vrndxq_f16): Define intrinsic.
33481 (__arm_vrndxq_f32): Likewise.
33482 (__arm_vrndq_f16): Likewise.
33483 (__arm_vrndq_f32): Likewise.
33484 (__arm_vrndpq_f16): Likewise.
33485 (__arm_vrndpq_f32): Likewise.
33486 (__arm_vrndnq_f16): Likewise.
33487 (__arm_vrndnq_f32): Likewise.
33488 (__arm_vrndmq_f16): Likewise.
33489 (__arm_vrndmq_f32): Likewise.
33490 (__arm_vrndaq_f16): Likewise.
33491 (__arm_vrndaq_f32): Likewise.
33492 (__arm_vrev64q_f16): Likewise.
33493 (__arm_vrev64q_f32): Likewise.
33494 (__arm_vnegq_f16): Likewise.
33495 (__arm_vnegq_f32): Likewise.
33496 (__arm_vdupq_n_f16): Likewise.
33497 (__arm_vdupq_n_f32): Likewise.
33498 (__arm_vabsq_f16): Likewise.
33499 (__arm_vabsq_f32): Likewise.
33500 (__arm_vrev32q_f16): Likewise.
33501 (__arm_vcvttq_f32_f16): Likewise.
33502 (__arm_vcvtbq_f32_f16): Likewise.
33503 (__arm_vcvtq_f16_s16): Likewise.
33504 (__arm_vcvtq_f32_s32): Likewise.
33505 (__arm_vcvtq_f16_u16): Likewise.
33506 (__arm_vcvtq_f32_u32): Likewise.
33507 (vrndxq): Define polymorphic variants.
33508 (vrndq): Likewise.
33509 (vrndpq): Likewise.
33510 (vrndnq): Likewise.
33511 (vrndmq): Likewise.
33512 (vrndaq): Likewise.
33513 (vrev64q): Likewise.
33514 (vnegq): Likewise.
33515 (vabsq): Likewise.
33516 (vrev32q): Likewise.
33517 (vcvtbq_f32): Likewise.
33518 (vcvttq_f32): Likewise.
33519 (vcvtq): Likewise.
33520 * config/arm/arm_mve_builtins.def (VAR2): Define.
33521 (VAR1): Define.
33522 * config/arm/mve.md (mve_vrndxq_f<mode>): Add RTL pattern.
33523 (mve_vrndq_f<mode>): Likewise.
33524 (mve_vrndpq_f<mode>): Likewise.
33525 (mve_vrndnq_f<mode>): Likewise.
33526 (mve_vrndmq_f<mode>): Likewise.
33527 (mve_vrndaq_f<mode>): Likewise.
33528 (mve_vrev64q_f<mode>): Likewise.
33529 (mve_vnegq_f<mode>): Likewise.
33530 (mve_vdupq_n_f<mode>): Likewise.
33531 (mve_vabsq_f<mode>): Likewise.
33532 (mve_vrev32q_fv8hf): Likewise.
33533 (mve_vcvttq_f32_f16v4sf): Likewise.
33534 (mve_vcvtbq_f32_f16v4sf): Likewise.
33535 (mve_vcvtq_to_f_<supf><mode>): Likewise.
33536
33537 2020-03-16 Andre Vieira <andre.simoesdiasvieira@arm.com>
33538 Mihail Ionescu <mihail.ionescu@arm.com>
33539 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
33540
33541 * config/arm/arm-builtins.c (CF): Define mve_builtin_data.
33542 (VAR1): Define.
33543 (ARM_BUILTIN_MVE_PATTERN_START): Define.
33544 (arm_init_mve_builtins): Define function.
33545 (arm_init_builtins): Add TARGET_HAVE_MVE check.
33546 (arm_expand_builtin_1): Check the range of fcode.
33547 (arm_expand_mve_builtin): Define function to expand MVE builtins.
33548 (arm_expand_builtin): Check the range of fcode.
33549 * config/arm/arm_mve.h (__ARM_FEATURE_MVE): Define MVE floating point
33550 types.
33551 (__ARM_MVE_PRESERVE_USER_NAMESPACE): Define to protect user namespace.
33552 (vst4q_s8): Define macro.
33553 (vst4q_s16): Likewise.
33554 (vst4q_s32): Likewise.
33555 (vst4q_u8): Likewise.
33556 (vst4q_u16): Likewise.
33557 (vst4q_u32): Likewise.
33558 (vst4q_f16): Likewise.
33559 (vst4q_f32): Likewise.
33560 (__arm_vst4q_s8): Define inline builtin.
33561 (__arm_vst4q_s16): Likewise.
33562 (__arm_vst4q_s32): Likewise.
33563 (__arm_vst4q_u8): Likewise.
33564 (__arm_vst4q_u16): Likewise.
33565 (__arm_vst4q_u32): Likewise.
33566 (__arm_vst4q_f16): Likewise.
33567 (__arm_vst4q_f32): Likewise.
33568 (__ARM_mve_typeid): Define macro with MVE types.
33569 (__ARM_mve_coerce): Define macro with _Generic feature.
33570 (vst4q): Define polymorphic variant for different vst4q builtins.
33571 * config/arm/arm_mve_builtins.def: New file.
33572 * config/arm/iterators.md (VSTRUCT): Modify to allow XI and OI
33573 modes in MVE.
33574 * config/arm/mve.md (MVE_VLD_ST): Define iterator.
33575 (unspec): Define unspec.
33576 (mve_vst4q<mode>): Define RTL pattern.
33577 * config/arm/neon.md (mov<mode>): Modify expand to allow XI and OI
33578 modes in MVE.
33579 (neon_mov<mode>): Modify RTL define_insn to allow XI and OI modes
33580 in MVE.
33581 (define_split): Allow OI mode split for MVE after reload.
33582 (define_split): Allow XI mode split for MVE after reload.
33583 * config/arm/t-arm (arm.o): Add entry for arm_mve_builtins.def.
33584 (arm-builtins.o): Likewise.
33585
33586 2020-03-17 Christophe Lyon <christophe.lyon@linaro.org>
33587
33588 * c-typeck.c (process_init_element): Handle constructor_type with
33589 type size represented by POLY_INT_CST.
33590
33591 2020-03-17 Jakub Jelinek <jakub@redhat.com>
33592
33593 PR tree-optimization/94187
33594 * tree-ssa-strlen.c (count_nonzero_bytes): Punt if
33595 nchars - offset < nbytes.
33596
33597 PR middle-end/94189
33598 * builtins.c (expand_builtin_strnlen): Do return NULL_RTX if we would
33599 emit a warning if it was enabled and don't depend on TREE_NO_WARNING
33600 for code-generation.
33601
33602 2020-03-16 Vladimir Makarov <vmakarov@redhat.com>
33603
33604 PR target/94185
33605 * lra-spills.c (remove_pseudos): Do not reuse insn alternative
33606 after changing memory subreg.
33607
33608 2020-03-16 Andre Vieira <andre.simoesdiasvieira@arm.com>
33609 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
33610
33611 * config/arm/arm.c (arm_libcall_uses_aapcs_base): Modify function to add
33612 emulator calls for dobule precision arithmetic operations for MVE.
33613
33614 2020-03-16 Andre Vieira <andre.simoesdiasvieira@arm.com>
33615 Mihail Ionescu <mihail.ionescu@arm.com>
33616 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
33617
33618 * common/config/arm/arm-common.c (arm_asm_auto_mfpu): When vfp_base
33619 feature bit is on and -mfpu=auto is passed as compiler option, do not
33620 generate error on not finding any matching fpu. Because in this case
33621 fpu is not required.
33622 * config/arm/arm-cpus.in (vfp_base): Define feature bit, this bit is
33623 enabled for MVE and also for all VFP extensions.
33624 (VFPv2): Modify fgroup to enable vfp_base feature bit when ever VFPv2
33625 is enabled.
33626 (MVE): Define fgroup to enable feature bits mve, vfp_base and armv7em.
33627 (MVE_FP): Define fgroup to enable feature bits is fgroup MVE and FPv5
33628 along with feature bits mve_float.
33629 (mve): Modify add options in armv8.1-m.main arch for MVE.
33630 (mve.fp): Modify add options in armv8.1-m.main arch for MVE with
33631 floating point.
33632 * config/arm/arm.c (use_return_insn): Replace the
33633 check with TARGET_VFP_BASE.
33634 (thumb2_legitimate_index_p): Replace TARGET_HARD_FLOAT with
33635 TARGET_VFP_BASE.
33636 (arm_rtx_costs_internal): Replace "TARGET_HARD_FLOAT || TARGET_HAVE_MVE"
33637 with TARGET_VFP_BASE, to allow cost calculations for copies in MVE as
33638 well.
33639 (arm_get_vfp_saved_size): Replace TARGET_HARD_FLOAT with
33640 TARGET_VFP_BASE, to allow space calculation for VFP registers in MVE
33641 as well.
33642 (arm_compute_frame_layout): Likewise.
33643 (arm_save_coproc_regs): Likewise.
33644 (arm_fixed_condition_code_regs): Modify to enable using VFPCC_REGNUM
33645 in MVE as well.
33646 (arm_hard_regno_mode_ok): Replace "TARGET_HARD_FLOAT || TARGET_HAVE_MVE"
33647 with equivalent macro TARGET_VFP_BASE.
33648 (arm_expand_epilogue_apcs_frame): Likewise.
33649 (arm_expand_epilogue): Likewise.
33650 (arm_conditional_register_usage): Likewise.
33651 (arm_declare_function_name): Add check to skip printing .fpu directive
33652 in assembly file when TARGET_VFP_BASE is enabled and fpu_to_print is
33653 "softvfp".
33654 * config/arm/arm.h (TARGET_VFP_BASE): Define.
33655 * config/arm/arm.md (arch): Add "mve" to arch.
33656 (eq_attr "arch" "mve"): Enable on TARGET_HAVE_MVE is true.
33657 (vfp_pop_multiple_with_writeback): Replace "TARGET_HARD_FLOAT
33658 || TARGET_HAVE_MVE" with equivalent macro TARGET_VFP_BASE.
33659 * config/arm/constraints.md (Uf): Define to allow modification to FPCCR
33660 in MVE.
33661 * config/arm/thumb2.md (thumb2_movsfcc_soft_insn): Modify target guard
33662 to not allow for MVE.
33663 * config/arm/unspecs.md (UNSPEC_GET_FPSCR): Move to volatile unspecs
33664 enum.
33665 (VUNSPEC_GET_FPSCR): Define.
33666 * config/arm/vfp.md (thumb2_movhi_vfp): Add support for VMSR and VMRS
33667 instructions which move to general-purpose Register from Floating-point
33668 Special register and vice-versa.
33669 (thumb2_movhi_fp16): Likewise.
33670 (thumb2_movsi_vfp): Add support for VMSR and VMRS instructions along
33671 with MCR and MRC instructions which set and get Floating-point Status
33672 and Control Register (FPSCR).
33673 (movdi_vfp): Modify pattern to enable Single-precision scalar float move
33674 in MVE.
33675 (thumb2_movdf_vfp): Modify pattern to enable Double-precision scalar
33676 float move patterns in MVE.
33677 (thumb2_movsfcc_vfp): Modify pattern to enable single float conditional
33678 code move patterns of VFP also in MVE by adding TARGET_VFP_BASE check.
33679 (thumb2_movdfcc_vfp): Modify pattern to enable double float conditional
33680 code move patterns of VFP also in MVE by adding TARGET_VFP_BASE check.
33681 (push_multi_vfp): Add support to use VFP VPUSH pattern for MVE by adding
33682 TARGET_VFP_BASE check.
33683 (set_fpscr): Add support to set FPSCR register for MVE. Modify pattern
33684 using VFPCC_REGNUM as few MVE intrinsics use carry bit of FPSCR
33685 register.
33686 (get_fpscr): Add support to get FPSCR register for MVE. Modify pattern
33687 using VFPCC_REGNUM as few MVE intrinsics use carry bit of FPSCR
33688 register.
33689
33690
33691 2020-03-16 Andre Vieira <andre.simoesdiasvieira@arm.com>
33692 Mihail Ionescu <mihail.ionescu@arm.com>
33693 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
33694
33695 * config.gcc (arm_mve.h): Include mve intrinsics header file.
33696 * config/arm/aout.h (p0): Add new register name for MVE predicated
33697 cases.
33698 * config/arm-builtins.c (ARM_BUILTIN_SIMD_LANE_CHECK): Define macro
33699 common to Neon and MVE.
33700 (ARM_BUILTIN_NEON_LANE_CHECK): Renamed to ARM_BUILTIN_SIMD_LANE_CHECK.
33701 (arm_init_simd_builtin_types): Disable poly types for MVE.
33702 (arm_init_neon_builtins): Move a check to arm_init_builtins function.
33703 (arm_init_builtins): Use ARM_BUILTIN_SIMD_LANE_CHECK instead of
33704 ARM_BUILTIN_NEON_LANE_CHECK.
33705 (mve_dereference_pointer): Add function.
33706 (arm_expand_builtin_args): Call to mve_dereference_pointer when MVE is
33707 enabled.
33708 (arm_expand_neon_builtin): Moved to arm_expand_builtin function.
33709 (arm_expand_builtin): Moved from arm_expand_neon_builtin function.
33710 * config/arm/arm-c.c (__ARM_FEATURE_MVE): Define macro for MVE and MVE
33711 with floating point enabled.
33712 * config/arm/arm-protos.h (neon_immediate_valid_for_move): Renamed to
33713 simd_immediate_valid_for_move.
33714 (simd_immediate_valid_for_move): Renamed from
33715 neon_immediate_valid_for_move function.
33716 * config/arm/arm.c (arm_options_perform_arch_sanity_checks): Generate
33717 error if vfpv2 feature bit is disabled and mve feature bit is also
33718 disabled for HARD_FLOAT_ABI.
33719 (use_return_insn): Check to not push VFP regs for MVE.
33720 (aapcs_vfp_allocate): Add MVE check to have same Procedure Call Standard
33721 as Neon.
33722 (aapcs_vfp_allocate_return_reg): Likewise.
33723 (thumb2_legitimate_address_p): Check to return 0 on valid Thumb-2
33724 address operand for MVE.
33725 (arm_rtx_costs_internal): MVE check to determine cost of rtx.
33726 (neon_valid_immediate): Rename to simd_valid_immediate.
33727 (simd_valid_immediate): Rename from neon_valid_immediate.
33728 (simd_valid_immediate): MVE check on size of vector is 128 bits.
33729 (neon_immediate_valid_for_move): Rename to
33730 simd_immediate_valid_for_move.
33731 (simd_immediate_valid_for_move): Rename from
33732 neon_immediate_valid_for_move.
33733 (neon_immediate_valid_for_logic): Modify call to neon_valid_immediate
33734 function.
33735 (neon_make_constant): Modify call to neon_valid_immediate function.
33736 (neon_vector_mem_operand): Return VFP register for POST_INC or PRE_DEC
33737 for MVE.
33738 (output_move_neon): Add MVE check to generate vldm/vstm instrcutions.
33739 (arm_compute_frame_layout): Calculate space for saved VFP registers for
33740 MVE.
33741 (arm_save_coproc_regs): Save coproc registers for MVE.
33742 (arm_print_operand): Add case 'E' to print memory operands for MVE.
33743 (arm_print_operand_address): Check to print register number for MVE.
33744 (arm_hard_regno_mode_ok): Check for arm hard regno mode ok for MVE.
33745 (arm_modes_tieable_p): Check to allow structure mode for MVE.
33746 (arm_regno_class): Add VPR_REGNUM check.
33747 (arm_expand_epilogue_apcs_frame): MVE check to calculate epilogue code
33748 for APCS frame.
33749 (arm_expand_epilogue): MVE check for enabling pop instructions in
33750 epilogue.
33751 (arm_print_asm_arch_directives): Modify function to disable print of
33752 .arch_extension "mve" and "fp" for cases where MVE is enabled with
33753 "SOFT FLOAT ABI".
33754 (arm_vector_mode_supported_p): Check for modes available in MVE interger
33755 and MVE floating point.
33756 (arm_array_mode_supported_p): Add TARGET_HAVE_MVE check for array mode
33757 pointer support.
33758 (arm_conditional_register_usage): Enable usage of conditional regsiter
33759 for MVE.
33760 (fixed_regs[VPR_REGNUM]): Enable VPR_REG for MVE.
33761 (arm_declare_function_name): Modify function to disable print of
33762 .arch_extension "mve" and "fp" for cases where MVE is enabled with
33763 "SOFT FLOAT ABI".
33764 * config/arm/arm.h (TARGET_HAVE_MVE): Disable for soft float abi and
33765 when target general registers are required.
33766 (TARGET_HAVE_MVE_FLOAT): Likewise.
33767 (FIXED_REGISTERS): Add bit for VFP_REG class which is enabled in arm.c
33768 for MVE.
33769 (CALL_USED_REGISTERS): Set bit for VFP_REG class in CALL_USED_REGISTERS
33770 which indicate this is not available for across function calls.
33771 (FIRST_PSEUDO_REGISTER): Modify.
33772 (VALID_MVE_MODE): Define valid MVE mode.
33773 (VALID_MVE_SI_MODE): Define valid MVE SI mode.
33774 (VALID_MVE_SF_MODE): Define valid MVE SF mode.
33775 (VALID_MVE_STRUCT_MODE): Define valid MVE struct mode.
33776 (VPR_REGNUM): Add Vector Predication Register in arm_regs_in_sequence
33777 for MVE.
33778 (IS_VPR_REGNUM): Macro to check for VPR_REG register.
33779 (REG_ALLOC_ORDER): Add VPR_REGNUM entry.
33780 (enum reg_class): Add VPR_REG entry.
33781 (REG_CLASS_NAMES): Add VPR_REG entry.
33782 * config/arm/arm.md (VPR_REGNUM): Define.
33783 (conds): Check is_mve_type attrbiute to differentiate "conditional" and
33784 "unconditional" instructions.
33785 (arm_movsf_soft_insn): Modify RTL to not allow for MVE.
33786 (movdf_soft_insn): Modify RTL to not allow for MVE.
33787 (vfp_pop_multiple_with_writeback): Enable for MVE.
33788 (include "mve.md"): Include mve.md file.
33789 * config/arm/arm_mve.h: Add MVE intrinsics head file.
33790 * config/arm/constraints.md (Up): Constraint to enable "p0" register in MVE
33791 for vector predicated operands.
33792 * config/arm/iterators.md (VNIM1): Define.
33793 (VNINOTM1): Define.
33794 (VHFBF_split): Define
33795 * config/arm/mve.md: New file.
33796 (mve_mov<mode>): Define RTL for move, store and load in MVE.
33797 (mve_mov<mode>): Define move RTL pattern with vec_duplicate operator for
33798 second operand.
33799 * config/arm/neon.md (neon_immediate_valid_for_move): Rename with
33800 simd_immediate_valid_for_move.
33801 (neon_mov<mode>): Split pattern and move expand pattern "movv8hf" which
33802 is common to MVE and NEON to vec-common.md file.
33803 (vec_init<mode><V_elem_l>): Add TARGET_HAVE_MVE check.
33804 * config/arm/predicates.md (vpr_register_operand): Define.
33805 * config/arm/t-arm: Add mve.md file.
33806 * config/arm/types.md (mve_move): Add MVE instructions mve_move to
33807 attribute "type".
33808 (mve_store): Add MVE instructions mve_store to attribute "type".
33809 (mve_load): Add MVE instructions mve_load to attribute "type".
33810 (is_mve_type): Define attribute.
33811 * config/arm/vec-common.md (mov<mode>): Modify RTL expand to support
33812 standard move patterns in MVE along with NEON and IWMMXT with mode
33813 iterator VNIM1.
33814 (mov<mode>): Modify RTL expand to support standard move patterns in NEON
33815 and IWMMXT with mode iterator V8HF.
33816 (movv8hf): Define RTL expand to support standard "movv8hf" pattern in
33817 NEON and MVE.
33818 * config/arm/vfp.md (neon_immediate_valid_for_move): Rename to
33819 simd_immediate_valid_for_move.
33820
33821
33822 2020-03-16 H.J. Lu <hongjiu.lu@intel.com>
33823
33824 PR target/89229
33825 * config/i386/i386.md (*movsi_internal): Call ix86_output_ssemov
33826 for TYPE_SSEMOV. Remove ext_sse_reg_operand and TARGET_AVX512VL
33827 check.
33828 * config/i386/predicates.md (ext_sse_reg_operand): Removed.
33829
33830 2020-03-16 Jakub Jelinek <jakub@redhat.com>
33831
33832 PR debug/94167
33833 * tree-inline.c (insert_init_stmt): Don't gimple_regimplify_operands
33834 DEBUG_STMTs.
33835
33836 PR tree-optimization/94166
33837 * tree-ssa-reassoc.c (sort_by_mach_mode): Use SSA_NAME_VERSION
33838 as secondary comparison key.
33839
33840 2020-03-16 Bin Cheng <bin.cheng@linux.alibaba.com>
33841
33842 PR tree-optimization/94125
33843 * tree-loop-distribution.c
33844 (loop_distribution::break_alias_scc_partitions): Update post order
33845 number for merged scc.
33846
33847 2020-03-15 H.J. Lu <hongjiu.lu@intel.com>
33848
33849 PR target/89229
33850 * config/i386/i386.c (ix86_output_ssemov): Handle MODE_SI and
33851 MODE_SF.
33852 * config/i386/i386.md (*movsf_internal): Call ix86_output_ssemov
33853 for TYPE_SSEMOV. Remove TARGET_PREFER_AVX256, TARGET_AVX512VL
33854 and ext_sse_reg_operand check.
33855
33856 2020-03-15 Lewis Hyatt <lhyatt@gmail.com>
33857
33858 * common.opt: Avoid redundancy in the help text.
33859 * config/arc/arc.opt: Likewise.
33860 * config/cr16/cr16.opt: Likewise.
33861
33862 2020-03-14 Jakub Jelinek <jakub@redhat.com>
33863
33864 PR middle-end/93566
33865 * tree-nested.c (convert_nonlocal_omp_clauses,
33866 convert_local_omp_clauses): Handle {,in_,task_}reduction clauses
33867 with C/C++ array sections.
33868
33869 2020-03-14 H.J. Lu <hongjiu.lu@intel.com>
33870
33871 PR target/89229
33872 * config/i386/i386.md (*movdi_internal): Call ix86_output_ssemov
33873 for TYPE_SSEMOV. Remove ext_sse_reg_operand and TARGET_AVX512VL
33874 check.
33875
33876 2020-03-14 Jakub Jelinek <jakub@redhat.com>
33877
33878 * gimple-fold.c (gimple_fold_builtin_strncpy): Change
33879 "a an" to "an" in a comment.
33880 * hsa-common.h (is_a_helper): Likewise.
33881 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Likewise.
33882 * config/arc/arc.c (arc600_corereg_hazard): Likewise.
33883 * config/s390/s390.c (s390_indirect_branch_via_thunk): Likewise.
33884
33885 2020-03-13 Aaron Sawdey <acsawdey@linux.ibm.com>
33886
33887 PR target/92379
33888 * config/rs6000/rs6000.c (num_insns_constant_multi): Don't shift a
33889 64-bit value by 64 bits (UB).
33890
33891 2020-03-13 Vladimir Makarov <vmakarov@redhat.com>
33892
33893 PR rtl-optimization/92303
33894 * lra-spills.c (remove_pseudos): Try to simplify memory subreg.
33895
33896 2020-03-13 Segher Boessenkool <segher@kernel.crashing.org>
33897
33898 PR rtl-optimization/94148
33899 PR rtl-optimization/94042
33900 * df-core.c (BB_LAST_CHANGE_AGE): Delete.
33901 (df_worklist_propagate_forward): New parameter last_change_age, use
33902 that instead of bb->aux.
33903 (df_worklist_propagate_backward): Ditto.
33904 (df_worklist_dataflow_doublequeue): Use a local array last_change_age.
33905
33906 2020-03-13 Richard Biener <rguenther@suse.de>
33907
33908 PR tree-optimization/94163
33909 * tree-ssa-pre.c (create_expression_by_pieces): Check
33910 whether alignment would be zero.
33911
33912 2020-03-13 Martin Liska <mliska@suse.cz>
33913
33914 PR lto/94157
33915 * lto-wrapper.c (run_gcc): Use concat for appending
33916 to collect_gcc_options.
33917
33918 2020-03-13 Jakub Jelinek <jakub@redhat.com>
33919
33920 PR target/94121
33921 * config/aarch64/aarch64.c (aarch64_add_offset_1): Use gen_int_mode
33922 instead of GEN_INT.
33923
33924 2020-03-13 H.J. Lu <hongjiu.lu@intel.com>
33925
33926 PR target/89229
33927 * config/i386/i386.c (ix86_output_ssemov): Handle MODE_DF.
33928 * config/i386/i386.md (*movdf_internal): Call ix86_output_ssemov
33929 for TYPE_SSEMOV. Remove TARGET_AVX512F, TARGET_PREFER_AVX256,
33930 TARGET_AVX512VL and ext_sse_reg_operand check.
33931
33932 2020-03-13 Bu Le <bule1@huawei.com>
33933
33934 PR target/94154
33935 * config/aarch64/aarch64.opt (-param=aarch64-float-recp-precision=)
33936 (-param=aarch64-double-recp-precision=): New options.
33937 * doc/invoke.texi: Document them.
33938 * config/aarch64/aarch64.c (aarch64_emit_approx_div): Use them
33939 instead of hard-coding the choice of 1 for float and 2 for double.
33940
33941 2020-03-13 Eric Botcazou <ebotcazou@adacore.com>
33942
33943 PR rtl-optimization/94119
33944 * resource.h (clear_hashed_info_until_next_barrier): Declare.
33945 * resource.c (clear_hashed_info_until_next_barrier): New function.
33946 * reorg.c (add_to_delay_list): Fix formatting.
33947 (relax_delay_slots): Call clear_hashed_info_until_next_barrier on
33948 the next instruction after removing a BARRIER.
33949
33950 2020-03-13 Eric Botcazou <ebotcazou@adacore.com>
33951
33952 PR middle-end/92071
33953 * expmed.c (store_integral_bit_field): For fields larger than a word,
33954 call extract_bit_field on the value if the mode is BLKmode. Remove
33955 specific path for big-endian targets and tidy things up a little bit.
33956
33957 2020-03-12 Richard Sandiford <richard.sandiford@arm.com>
33958
33959 PR rtl-optimization/90275
33960 * cse.c (cse_insn): Delete no-op register moves too.
33961
33962 2020-03-12 Darius Galis <darius.galis@cyberthorstudios.com>
33963
33964 * config/rx/rx.md (CTRLREG_CPEN): Remove.
33965 * config/rx/rx.c (rx_print_operand): Remove CTRLREG_CPEN support.
33966
33967 2020-03-12 Richard Biener <rguenther@suse.de>
33968
33969 PR tree-optimization/94103
33970 * tree-ssa-sccvn.c (visit_reference_op_load): Avoid type
33971 punning when the mode precision is not sufficient.
33972
33973 2020-03-12 H.J. Lu <hongjiu.lu@intel.com>
33974
33975 PR target/89229
33976 * config/i386/i386.c (ix86_output_ssemov): Handle MODE_DI,
33977 MODE_V1DF and MODE_V2SF.
33978 * config/i386/mmx.md (MMXMODE:*mov<mode>_internal): Call
33979 ix86_output_ssemov for TYPE_SSEMOV. Remove ext_sse_reg_operand
33980 check.
33981
33982 2020-03-12 Jakub Jelinek <jakub@redhat.com>
33983
33984 * doc/tm.texi.in (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Change
33985 ASM_OUTPUT_ALIGNED_DECL in description to ASM_OUTPUT_ALIGNED_LOCAL
33986 and ASM_OUTPUT_DECL to ASM_OUTPUT_LOCAL.
33987 * doc/tm.texi: Regenerated.
33988
33989 PR tree-optimization/94130
33990 * tree-ssa-dse.c: Include gimplify.h.
33991 (increment_start_addr): If stmt has lhs, drop the lhs from call and
33992 set it after the call to the original value of the first argument.
33993 Formatting fixes.
33994 (decrement_count): Formatting fix.
33995
33996 2020-03-11 Delia Burduv <delia.burduv@arm.com>
33997
33998 * config/arm/arm-builtins.c
33999 (arm_init_simd_builtin_scalar_types): New.
34000 * config/arm/arm_neon.h (vld2_bf16): Used new builtin type.
34001 (vld2q_bf16): Used new builtin type.
34002 (vld3_bf16): Used new builtin type.
34003 (vld3q_bf16): Used new builtin type.
34004 (vld4_bf16): Used new builtin type.
34005 (vld4q_bf16): Used new builtin type.
34006 (vld2_dup_bf16): Used new builtin type.
34007 (vld2q_dup_bf16): Used new builtin type.
34008 (vld3_dup_bf16): Used new builtin type.
34009 (vld3q_dup_bf16): Used new builtin type.
34010 (vld4_dup_bf16): Used new builtin type.
34011 (vld4q_dup_bf16): Used new builtin type.
34012
34013 2020-03-11 Jakub Jelinek <jakub@redhat.com>
34014
34015 PR target/94134
34016 * config/pdp11/pdp11.c (pdp11_asm_output_var): Call switch_to_section
34017 at the start to switch to data section. Don't print extra newline if
34018 .globl directive has not been emitted.
34019
34020 2020-03-11 Richard Biener <rguenther@suse.de>
34021
34022 * match.pd ((T *)(ptr - ptr-cst) -> &MEM[ptr + -ptr-cst]):
34023 New pattern.
34024
34025 2020-03-11 Eric Botcazou <ebotcazou@adacore.com>
34026
34027 PR middle-end/93961
34028 * tree.c (variably_modified_type_p) <RECORD_TYPE>: Recurse into fields
34029 whose type is a qualified union.
34030
34031 2020-03-11 Jakub Jelinek <jakub@redhat.com>
34032
34033 PR target/94121
34034 * config/aarch64/aarch64.c (aarch64_add_offset_1): Use absu_hwi
34035 instead of abs_hwi, change moffset type to unsigned HOST_WIDE_INT.
34036
34037 PR bootstrap/93962
34038 * value-prof.c (dump_histogram_value): Use abs_hwi instead of
34039 std::abs.
34040 (get_nth_most_common_value): Use abs_hwi instead of abs.
34041
34042 PR middle-end/94111
34043 * dfp.c (decimal_to_binary): Only use decimal128ToString if from->cl
34044 is rvc_normal, otherwise use real_to_decimal to print the number to
34045 string.
34046
34047 PR tree-optimization/94114
34048 * tree-loop-distribution.c (generate_memset_builtin): Call
34049 rewrite_to_non_trapping_overflow even on mem.
34050 (generate_memcpy_builtin): Call rewrite_to_non_trapping_overflow even
34051 on dest and src.
34052
34053 2020-03-10 Jeff Law <law@redhat.com>
34054
34055 * config/bfin/bfin.md (movsi_insv): Add length attribute.
34056
34057 2020-03-10 Jiufu Guo <guojiufu@linux.ibm.com>
34058
34059 PR target/93709
34060 * config/rs6000/rs6000.c (rs6000_emit_p9_fp_minmax): Check
34061 NAN and SIGNED_ZEROR for smax/smin.
34062
34063 2020-03-10 Will Schmidt <will_schmidt@vnet.ibm.com>
34064
34065 PR target/90763
34066 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
34067 clause to handle P9V_BUILTIN_VEC_LXVL with const arguments.
34068
34069 2020-03-10 Roman Zhuykov <zhroma@ispras.ru>
34070
34071 * loop-iv.c (find_simple_exit): Make it static.
34072 * cfgloop.h: Remove the corresponding prototype.
34073
34074 2020-03-10 Roman Zhuykov <zhroma@ispras.ru>
34075
34076 * ddg.c (create_ddg): Fix intendation.
34077 (set_recurrence_length): Likewise.
34078 (create_ddg_all_sccs): Likewise.
34079
34080 2020-03-10 Jakub Jelinek <jakub@redhat.com>
34081
34082 PR target/94088
34083 * config/i386/i386.md (*testqi_ext_3): Call ix86_match_ccmode with
34084 CCZmode instead of CCNOmode if operands[2] has DImode and pos + len
34085 is 32.
34086
34087 2020-03-09 Jason Merrill <jason@redhat.com>
34088
34089 * gdbinit.in (pgs): Fix typo in documentation.
34090
34091 2020-03-09 Vladimir Makarov <vmakarov@redhat.com>
34092
34093 Revert:
34094
34095 2020-02-28 Vladimir Makarov <vmakarov@redhat.com>
34096
34097 PR rtl-optimization/93564
34098 * ira-color.c (assign_hard_reg): Prefer smaller hard regno when we
34099 do not honor reg alloc order.
34100
34101 2020-03-09 Andrew Pinski <apinski@marvell.com>
34102
34103 PR inline-asm/94095
34104 * doc/extend.texi (x86 Operand Modifiers): Fix column
34105 for 'A' modifier.
34106
34107 2020-03-09 Martin Liska <mliska@suse.cz>
34108
34109 PR target/93800
34110 * config/rs6000/rs6000.c (rs6000_option_override_internal):
34111 Remove set of str_align_loops and str_align_jumps as these
34112 should be set in previous 2 conditions in the function.
34113
34114 2020-03-09 Jakub Jelinek <jakub@redhat.com>
34115
34116 PR rtl-optimization/94045
34117 * params.opt (-param=max-find-base-term-values=): New option.
34118 * alias.c (find_base_term): Add cut-off for number of visited VALUEs
34119 in a single toplevel find_base_term call.
34120
34121 2020-03-06 Wilco Dijkstra <wdijkstr@arm.com>
34122
34123 PR target/91598
34124 * config/aarch64/aarch64-builtins.c (TYPES_TERNOPU_LANE): Add define.
34125 * config/aarch64/aarch64-simd.md
34126 (aarch64_vec_<su>mult_lane<Qlane>): Add new insn for widening lane mul.
34127 (aarch64_vec_<su>mlal_lane<Qlane>): Likewise.
34128 * config/aarch64/aarch64-simd-builtins.def: Add intrinsics.
34129 * config/aarch64/arm_neon.h:
34130 (vmlal_lane_s16): Expand using intrinsics rather than inline asm.
34131 (vmlal_lane_u16): Likewise.
34132 (vmlal_lane_s32): Likewise.
34133 (vmlal_lane_u32): Likewise.
34134 (vmlal_laneq_s16): Likewise.
34135 (vmlal_laneq_u16): Likewise.
34136 (vmlal_laneq_s32): Likewise.
34137 (vmlal_laneq_u32): Likewise.
34138 (vmull_lane_s16): Likewise.
34139 (vmull_lane_u16): Likewise.
34140 (vmull_lane_s32): Likewise.
34141 (vmull_lane_u32): Likewise.
34142 (vmull_laneq_s16): Likewise.
34143 (vmull_laneq_u16): Likewise.
34144 (vmull_laneq_s32): Likewise.
34145 (vmull_laneq_u32): Likewise.
34146 * config/aarch64/iterators.md (Vcondtype): New iterator for lane mul.
34147 (Qlane): Likewise.
34148
34149 2020-03-06 Wilco Dijkstra <wdijkstr@arm.com>
34150
34151 * aarch64/aarch64-simd.md (aarch64_mla_elt<mode>): Correct lane syntax.
34152 (aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
34153 (aarch64_mls_elt<mode>): Likewise.
34154 (aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
34155 (aarch64_fma4_elt<mode>): Likewise.
34156 (aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
34157 (aarch64_fma4_elt_to_64v2df): Likewise.
34158 (aarch64_fnma4_elt<mode>): Likewise.
34159 (aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
34160 (aarch64_fnma4_elt_to_64v2df): Likewise.
34161
34162 2020-03-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34163
34164 * config/aarch64/aarch64-sve2.md (@aarch64_sve_<sve_int_op><mode>:
34165 Specify movprfx attribute.
34166 (@aarch64_sve_<sve_int_op>_lane_<mode>): Likewise.
34167
34168 2020-03-06 David Edelsohn <dje.gcc@gmail.com>
34169
34170 PR target/94065
34171 * config/rs6000/aix61.h (TARGET_NO_SUM_IN_TOC): Set to 1 for
34172 cmodel=large.
34173 (TARGET_NO_FP_IN_TOC): Same.
34174 * config/rs6000/aix71.h: Same.
34175 * config/rs6000/aix72.h: Same.
34176
34177 2020-03-06 Andrew Pinski <apinski@marvell.com>
34178 Jeff Law <law@redhat.com>
34179
34180 PR rtl-optimization/93996
34181 * haifa-sched.c (remove_notes): Be more careful when adding
34182 REG_SAVE_NOTE.
34183
34184 2020-03-06 Delia Burduv <delia.burduv@arm.com>
34185
34186 * config/arm/arm_neon.h (vld2_bf16): New.
34187 (vld2q_bf16): New.
34188 (vld3_bf16): New.
34189 (vld3q_bf16): New.
34190 (vld4_bf16): New.
34191 (vld4q_bf16): New.
34192 (vld2_dup_bf16): New.
34193 (vld2q_dup_bf16): New.
34194 (vld3_dup_bf16): New.
34195 (vld3q_dup_bf16): New.
34196 (vld4_dup_bf16): New.
34197 (vld4q_dup_bf16): New.
34198 * config/arm/arm_neon_builtins.def
34199 (vld2): Changed to VAR13 and added v4bf, v8bf
34200 (vld2_dup): Changed to VAR8 and added v4bf, v8bf
34201 (vld3): Changed to VAR13 and added v4bf, v8bf
34202 (vld3_dup): Changed to VAR8 and added v4bf, v8bf
34203 (vld4): Changed to VAR13 and added v4bf, v8bf
34204 (vld4_dup): Changed to VAR8 and added v4bf, v8bf
34205 * config/arm/iterators.md (VDXBF2): New iterator.
34206 *config/arm/neon.md (neon_vld2): Use new iterators.
34207 (neon_vld2_dup<mode): Use new iterators.
34208 (neon_vld3<mode>): Likewise.
34209 (neon_vld3qa<mode>): Likewise.
34210 (neon_vld3qb<mode>): Likewise.
34211 (neon_vld3_dup<mode>): Likewise.
34212 (neon_vld4<mode>): Likewise.
34213 (neon_vld4qa<mode>): Likewise.
34214 (neon_vld4qb<mode>): Likewise.
34215 (neon_vld4_dup<mode>): Likewise.
34216 (neon_vld2_dupv8bf): New.
34217 (neon_vld3_dupv8bf): Likewise.
34218 (neon_vld4_dupv8bf): Likewise.
34219
34220 2020-03-06 Delia Burduv <delia.burduv@arm.com>
34221
34222 * config/arm/arm_neon.h (bfloat16x4x2_t): New typedef.
34223 (bfloat16x8x2_t): New typedef.
34224 (bfloat16x4x3_t): New typedef.
34225 (bfloat16x8x3_t): New typedef.
34226 (bfloat16x4x4_t): New typedef.
34227 (bfloat16x8x4_t): New typedef.
34228 (vst2_bf16): New.
34229 (vst2q_bf16): New.
34230 (vst3_bf16): New.
34231 (vst3q_bf16): New.
34232 (vst4_bf16): New.
34233 (vst4q_bf16): New.
34234 * config/arm/arm-builtins.c (v2bf_UP): Define.
34235 (VAR13): New.
34236 (arm_init_simd_builtin_types): Init Bfloat16x2_t eltype.
34237 * config/arm/arm-modes.def (V2BF): New mode.
34238 * config/arm/arm-simd-builtin-types.def
34239 (Bfloat16x2_t): New entry.
34240 * config/arm/arm_neon_builtins.def
34241 (vst2): Changed to VAR13 and added v4bf, v8bf
34242 (vst3): Changed to VAR13 and added v4bf, v8bf
34243 (vst4): Changed to VAR13 and added v4bf, v8bf
34244 * config/arm/iterators.md (VDXBF): New iterator.
34245 (VQ2BF): New iterator.
34246 *config/arm/neon.md (neon_vst2<mode>): Used new iterators.
34247 (neon_vst2<mode>): Used new iterators.
34248 (neon_vst3<mode>): Used new iterators.
34249 (neon_vst3<mode>): Used new iterators.
34250 (neon_vst3qa<mode>): Used new iterators.
34251 (neon_vst3qb<mode>): Used new iterators.
34252 (neon_vst4<mode>): Used new iterators.
34253 (neon_vst4<mode>): Used new iterators.
34254 (neon_vst4qa<mode>): Used new iterators.
34255 (neon_vst4qb<mode>): Used new iterators.
34256
34257 2020-03-06 Delia Burduv <delia.burduv@arm.com>
34258
34259 * config/aarch64/aarch64-simd-builtins.def
34260 (bfcvtn): New built-in function.
34261 (bfcvtn_q): New built-in function.
34262 (bfcvtn2): New built-in function.
34263 (bfcvt): New built-in function.
34264 * config/aarch64/aarch64-simd.md
34265 (aarch64_bfcvtn<q><mode>): New pattern.
34266 (aarch64_bfcvtn2v8bf): New pattern.
34267 (aarch64_bfcvtbf): New pattern.
34268 * config/aarch64/arm_bf16.h (float32_t): New typedef.
34269 (vcvth_bf16_f32): New intrinsic.
34270 * config/aarch64/arm_bf16.h (vcvt_bf16_f32): New intrinsic.
34271 (vcvtq_low_bf16_f32): New intrinsic.
34272 (vcvtq_high_bf16_f32): New intrinsic.
34273 * config/aarch64/iterators.md (V4SF_TO_BF): New mode iterator.
34274 (UNSPEC_BFCVTN): New UNSPEC.
34275 (UNSPEC_BFCVTN2): New UNSPEC.
34276 (UNSPEC_BFCVT): New UNSPEC.
34277 * config/arm/types.md (bf_cvt): New type.
34278
34279 2020-03-06 Andreas Krebbel <krebbel@linux.ibm.com>
34280
34281 * config/s390/s390.md ("tabort"): Get rid of two consecutive
34282 blanks in format string.
34283
34284 2020-03-05 H.J. Lu <hongjiu.lu@intel.com>
34285
34286 PR target/89229
34287 PR target/89346
34288 * config/i386/i386-protos.h (ix86_output_ssemov): New prototype.
34289 * config/i386/i386.c (ix86_get_ssemov): New function.
34290 (ix86_output_ssemov): Likewise.
34291 * config/i386/sse.md (VMOVE:mov<mode>_internal): Call
34292 ix86_output_ssemov for TYPE_SSEMOV. Remove TARGET_AVX512VL
34293 check.
34294 (*movxi_internal_avx512f): Call ix86_output_ssemov for TYPE_SSEMOV.
34295 (*movoi_internal_avx): Call ix86_output_ssemov for TYPE_SSEMOV.
34296 Remove ext_sse_reg_operand and TARGET_AVX512VL check.
34297 (*movti_internal): Likewise.
34298 (*movtf_internal): Call ix86_output_ssemov for TYPE_SSEMOV.
34299
34300 2020-03-05 Jeff Law <law@redhat.com>
34301
34302 PR tree-optimization/91890
34303 * gimple-ssa-warn-restrict.c (maybe_diag_overlap): Remove LOC argument.
34304 Use gimple_or_expr_nonartificial_location.
34305 (check_bounds_overlap): Drop LOC argument to maybe_diag_access_bounds.
34306 Use gimple_or_expr_nonartificial_location.
34307 * gimple.c (gimple_or_expr_nonartificial_location): New function.
34308 * gimple.h (gimple_or_expr_nonartificial_location): Declare it.
34309 * tree-ssa-strlen.c (maybe_warn_overflow): Use
34310 gimple_or_expr_nonartificial_location.
34311 (maybe_diag_stxncpy_trunc, handle_builtin_stxncpy_strncat): Likewise.
34312 (maybe_warn_pointless_strcmp): Likewise.
34313
34314 2020-03-05 Jakub Jelinek <jakub@redhat.com>
34315
34316 PR target/94046
34317 * config/i386/avx2intrin.h (_mm_mask_i32gather_ps): Fix first cast of
34318 SRC and MASK arguments to __m128 from __m128d.
34319 (_mm256_mask_i32gather_ps): Fix first cast of MASK argument to __m256
34320 from __m256d.
34321 (_mm_mask_i64gather_ps): Fix first cast of MASK argument to __m128
34322 from __m128d.
34323 * config/i386/xopintrin.h (_mm_permute2_pd): Fix first cast of C
34324 argument to __m128i from __m128d.
34325 (_mm256_permute2_pd): Fix first cast of C argument to __m256i from
34326 __m256d.
34327 (_mm_permute2_ps): Fix first cast of C argument to __m128i from __m128.
34328 (_mm256_permute2_ps): Fix first cast of C argument to __m256i from
34329 __m256.
34330
34331 2020-03-05 Delia Burduv <delia.burduv@arm.com>
34332
34333 * config/arm/arm_neon.h (vbfmmlaq_f32): New.
34334 (vbfmlalbq_f32): New.
34335 (vbfmlaltq_f32): New.
34336 (vbfmlalbq_lane_f32): New.
34337 (vbfmlaltq_lane_f32): New.
34338 (vbfmlalbq_laneq_f32): New.
34339 (vbfmlaltq_laneq_f32): New.
34340 * config/arm/arm_neon_builtins.def (vmmla): New.
34341 (vfmab): New.
34342 (vfmat): New.
34343 (vfmab_lane): New.
34344 (vfmat_lane): New.
34345 (vfmab_laneq): New.
34346 (vfmat_laneq): New.
34347 * config/arm/iterators.md (BF_MA): New int iterator.
34348 (bt): New int attribute.
34349 (VQXBF): Copy of VQX with V8BF.
34350 * config/arm/neon.md (neon_vmmlav8bf): New insn.
34351 (neon_vfma<bt>v8bf): New insn.
34352 (neon_vfma<bt>_lanev8bf): New insn.
34353 (neon_vfma<bt>_laneqv8bf): New expand.
34354 (neon_vget_high<mode>): Changed iterator to VQXBF.
34355 * config/arm/unspecs.md (UNSPEC_BFMMLA): New UNSPEC.
34356 (UNSPEC_BFMAB): New UNSPEC.
34357 (UNSPEC_BFMAT): New UNSPEC.
34358
34359 2020-03-05 Jakub Jelinek <jakub@redhat.com>
34360
34361 PR middle-end/93399
34362 * tree-pretty-print.h (pretty_print_string): Declare.
34363 * tree-pretty-print.c (pretty_print_string): Remove forward
34364 declaration, no longer static. Change nbytes parameter type
34365 from unsigned to size_t.
34366 * print-rtl.c (print_value) <case CONST_STRING>: Use
34367 pretty_print_string and for shrink way too long strings.
34368
34369 2020-03-05 Richard Biener <rguenther@suse.de>
34370 Jakub Jelinek <jakub@redhat.com>
34371
34372 PR tree-optimization/93582
34373 * tree-ssa-sccvn.c (vn_reference_lookup_3): Treat POINTER_PLUS_EXPR
34374 last operand as signed when looking for memset offset. Formatting
34375 fix.
34376
34377 2020-03-04 Andrew Pinski <apinski@marvell.com>
34378
34379 PR bootstrap/93962
34380 * value-prof.c (dump_histogram_value): Use std::abs.
34381
34382 2020-03-04 Martin Sebor <msebor@redhat.com>
34383
34384 PR tree-optimization/93986
34385 * tree-ssa-strlen.c (maybe_warn_overflow): Convert all wide_int
34386 operands to the same precision widest_int to avoid ICEs.
34387
34388 2020-03-04 Bill Schmidt <wschmidt@linux.ibm.com>
34389
34390 PR target/87560
34391 * rs6000-cpus.def (OTHER_ALTIVEC_MASKS): New #define.
34392 * rs6000.c (rs6000_disable_incompatible_switches): Add table entry
34393 for OPTION_MASK_ALTIVEC.
34394
34395 2020-03-04 Andreas Krebbel <krebbel@linux.ibm.com>
34396
34397 * config.gcc: Include the glibc-stdint.h header for zTPF.
34398
34399 2020-03-04 Andreas Krebbel <krebbel@linux.ibm.com>
34400
34401 * config/s390/s390.c (s390_secondary_memory_needed): Disallow
34402 direct FPR-GPR copies.
34403 (s390_register_info_gprtofpr): Disallow GPR content to be saved in
34404 FPRs.
34405
34406 2020-03-04 Andreas Krebbel <krebbel@linux.ibm.com>
34407
34408 * config/s390/s390.c (s390_emit_prologue): Specify the 2 new
34409 operands to the prologue_tpf expander.
34410 (s390_emit_epilogue): Likewise.
34411 (s390_option_override_internal): Do error checking and setup for
34412 the new options.
34413 * config/s390/tpf.h (TPF_TRACE_PROLOGUE_CHECK)
34414 (TPF_TRACE_EPILOGUE_CHECK, TPF_TRACE_PROLOGUE_TARGET)
34415 (TPF_TRACE_EPILOGUE_TARGET, TPF_TRACE_PROLOGUE_SKIP_TARGET)
34416 (TPF_TRACE_EPILOGUE_SKIP_TARGET): New macro definitions.
34417 * config/s390/tpf.md ("prologue_tpf", "epilogue_tpf"): Add two new
34418 operands for the check flag and the branch target.
34419 * config/s390/tpf.opt ("mtpf-trace-hook-prologue-check")
34420 ("mtpf-trace-hook-prologue-target")
34421 ("mtpf-trace-hook-epilogue-check")
34422 ("mtpf-trace-hook-epilogue-target", "mtpf-trace-skip"): New
34423 options.
34424 * doc/invoke.texi: Document -mtpf-trace-skip option. The other
34425 options are for debugging purposes and will not be documented
34426 here.
34427
34428 2020-03-04 Jakub Jelinek <jakub@redhat.com>
34429
34430 PR debug/93888
34431 * tree-inline.c (copy_decl_to_var): Copy DECL_BY_REFERENCE flag.
34432
34433 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Add offseti
34434 argument. Change pd argument so that it can be modified. Turn
34435 constant non-CONSTRUCTOR store into non-constant if it is too large.
34436 Adjust offset and size of CONSTRUCTOR or non-constant store to avoid
34437 overflows.
34438 (vn_walk_cb_data::vn_walk_cb_data, vn_reference_lookup_3): Adjust
34439 callers.
34440
34441 2020-02-04 Richard Biener <rguenther@suse.de>
34442
34443 PR tree-optimization/93964
34444 * graphite-isl-ast-to-gimple.c
34445 (gcc_expression_from_isl_ast_expr_id): Add intermediate
34446 conversion for pointer to integer converts.
34447 * graphite-scop-detection.c (assign_parameter_index_in_region):
34448 Relax assert.
34449
34450 2020-03-04 Martin Liska <mliska@suse.cz>
34451
34452 PR c/93886
34453 PR c/93887
34454 * doc/invoke.texi: Clarify --help=language and --help=common
34455 interaction.
34456
34457 2020-03-04 Jakub Jelinek <jakub@redhat.com>
34458
34459 PR tree-optimization/94001
34460 * tree-tailcall.c (process_assignment): Before comparing op1 to
34461 *ass_var, verify *ass_var is non-NULL.
34462
34463 2020-03-04 Kito Cheng <kito.cheng@sifive.com>
34464
34465 PR target/93995
34466 * config/riscv/riscv.c (riscv_emit_float_compare): Using NE to compare
34467 the result of IOR.
34468
34469 2020-03-03 Dennis Zhang <dennis.zhang@arm.com>
34470
34471 * config/arm/arm_bf16.h (vcvtah_f32_bf16, vcvth_bf16_f32): New.
34472 * config/arm/arm_neon.h (vcvt_f32_bf16, vcvtq_low_f32_bf16): New.
34473 (vcvtq_high_f32_bf16, vcvt_bf16_f32): New.
34474 (vcvtq_low_bf16_f32, vcvtq_high_bf16_f32): New.
34475 * config/arm/arm_neon_builtins.def (vbfcvt, vbfcvt_high): New entries.
34476 (vbfcvtv4sf, vbfcvtv4sf_high): Likewise.
34477 * config/arm/iterators.md (VBFCVT, VBFCVTM): New mode iterators.
34478 (V_bf_low, V_bf_cvt_m): New mode attributes.
34479 * config/arm/neon.md (neon_vbfcvtv4sf<VBFCVT:mode>): New.
34480 (neon_vbfcvtv4sf_highv8bf, neon_vbfcvtsf): New.
34481 (neon_vbfcvt<VBFCVT:mode>, neon_vbfcvt_highv8bf): New.
34482 (neon_vbfcvtbf_cvtmode<mode>, neon_vbfcvtbf): New
34483 * config/arm/unspecs.md (UNSPEC_BFCVT, UNSPEC_BFCVT_HIG): New.
34484
34485 2020-03-03 Jakub Jelinek <jakub@redhat.com>
34486
34487 PR tree-optimization/93582
34488 * tree-ssa-sccvn.h (vn_reference_lookup): Add mask argument.
34489 * tree-ssa-sccvn.c (struct vn_walk_cb_data): Add mask and masked_result
34490 members, initialize them in the constructor and if mask is non-NULL,
34491 artificially push_partial_def {} for the portions of the mask that
34492 contain zeros.
34493 (vn_walk_cb_data::finish): If mask is non-NULL, set masked_result to
34494 val and return (void *)-1. Formatting fix.
34495 (vn_reference_lookup_pieces): Adjust vn_walk_cb_data initialization.
34496 Formatting fix.
34497 (vn_reference_lookup): Add mask argument. If non-NULL, don't call
34498 fully_constant_vn_reference_p nor vn_reference_lookup_1 and return
34499 data.mask_result.
34500 (visit_nary_op): Handle BIT_AND_EXPR of a memory load and INTEGER_CST
34501 mask.
34502 (visit_stmt): Formatting fix.
34503
34504 2020-03-03 Richard Biener <rguenther@suse.de>
34505
34506 PR tree-optimization/93946
34507 * alias.h (refs_same_for_tbaa_p): Declare.
34508 * alias.c (refs_same_for_tbaa_p): New function.
34509 * tree-ssa-alias.c (ao_ref_alias_set): For a NULL ref return
34510 zero.
34511 * tree-ssa-scopedtables.h
34512 (avail_exprs_stack::lookup_avail_expr): Add output argument
34513 giving access to the hashtable entry.
34514 * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
34515 Likewise.
34516 * tree-ssa-dom.c: Include alias.h.
34517 (dom_opt_dom_walker::optimize_stmt): Validate TBAA state before
34518 removing redundant store.
34519 * tree-ssa-sccvn.h (vn_reference_s::base_set): New member.
34520 (ao_ref_init_from_vn_reference): Adjust prototype.
34521 (vn_reference_lookup_pieces): Likewise.
34522 (vn_reference_insert_pieces): Likewise.
34523 * tree-ssa-sccvn.c: Track base alias set in addition to alias
34524 set everywhere.
34525 (eliminate_dom_walker::eliminate_stmt): Also check base alias
34526 set when removing redundant stores.
34527 (visit_reference_op_store): Likewise.
34528 * dse.c (record_store): Adjust valdity check for redundant
34529 store removal.
34530
34531 2020-03-03 Jakub Jelinek <jakub@redhat.com>
34532
34533 PR target/26877
34534 * config/s390/s390.h (OPTION_DEFAULT_SPECS): Reorder.
34535
34536 PR rtl-optimization/94002
34537 * explow.c (plus_constant): Punt if cst has VOIDmode and
34538 get_pool_mode is different from mode.
34539
34540 2020-03-03 Claudiu Zissulescu <claziss@synopsys.com>
34541
34542 * config/arc/arc.c (leigitimate_small_data_address_p): Check if an
34543 address has an offset which fits the scalling constraint for a
34544 load/store operation.
34545 (legitimate_scaled_address_p): Update use
34546 leigitimate_small_data_address_p.
34547 (arc_print_operand): Likewise.
34548 (arc_legitimate_address_p): Likewise.
34549 (legitimate_small_data_address_p): Likewise.
34550
34551 2020-03-03 Claudiu Zissulescu <claziss@synopsys.com>
34552
34553 * config/arc/arc.md (fmasf4_fpu): Use accl_operand predicate.
34554 (fnmasf4_fpu): Likewise.
34555
34556 2020-03-03 Claudiu Zissulescu <claziss@synopsys.com>
34557
34558 * config/arc/arc.md (adddi3): Early expand the 64bit operation into
34559 32bit ops.
34560 (subdi3): Likewise.
34561 (adddi3_i): Remove pattern.
34562 (subdi3_i): Likewise.
34563
34564 2020-03-03 Claudiu Zissulescu <claziss@synopsys.com>
34565
34566 * config/arc/arc.md (eh_return): Add length info.
34567
34568 2020-03-02 David Malcolm <dmalcolm@redhat.com>
34569
34570 * doc/invoke.texi (-fanalyzer-show-duplicate-count): New.
34571
34572 2020-03-02 David Malcolm <dmalcolm@redhat.com>
34573
34574 * doc/invoke.texi (Static Analyzer Options): Add
34575 -Wanalyzer-stale-setjmp-buffer to the list of options enabled
34576 by -fanalyzer.
34577
34578 2020-03-02 Uroš Bizjak <ubizjak@gmail.com>
34579
34580 PR target/93997
34581 * config/i386/i386.md (movstrict<mode>): Allow only
34582 registers with VALID_INT_MODE_P modes.
34583
34584 2020-03-02 Andrew Stubbs <ams@codesourcery.com>
34585
34586 * config/gcn/gcn-valu.md (dpp_move<mode>): New.
34587 (reduc_insn): Use 'U' and 'B' operand codes.
34588 (reduc_<reduc_op>_scal_<mode>): Allow all types.
34589 (reduc_<reduc_op>_scal_v64di): Delete.
34590 (*<reduc_op>_dpp_shr_<mode>): Allow all 1reg types.
34591 (*plus_carry_dpp_shr_v64si): Change to ...
34592 (*plus_carry_dpp_shr_<mode>): ... this and allow all 1reg int types.
34593 (mov_from_lane63_v64di): Change to ...
34594 (mov_from_lane63_<mode>): ... this, and allow all 64-bit modes.
34595 * config/gcn/gcn.c (gcn_expand_dpp_shr_insn): Increase buffer size.
34596 Support UNSPEC_MOV_DPP_SHR output formats.
34597 (gcn_expand_reduc_scalar): Add "use_moves" reductions.
34598 Add "use_extends" reductions.
34599 (print_operand_address): Add 'I' and 'U' codes.
34600 * config/gcn/gcn.md (unspec): Add UNSPEC_MOV_DPP_SHR.
34601
34602 2020-03-02 Martin Liska <mliska@suse.cz>
34603
34604 * lto-wrapper.c: Fix typo in comment about
34605 C++ standard version.
34606
34607 2020-03-01 Martin Sebor <msebor@redhat.com>
34608
34609 PR c++/92721
34610 * calls.c (init_attr_rdwr_indices): Correctly handle attribute.
34611
34612 2020-03-01 Martin Sebor <msebor@redhat.com>
34613
34614 PR middle-end/93829
34615 * tree-ssa-strlen.c (count_nonzero_bytes): Set the size to that
34616 of a pointer in the outermost ADDR_EXPRs.
34617
34618 2020-02-28 Jeff Law <law@redhat.com>
34619
34620 * config/v850/v850.h (STATIC_CHAIN_REGNUM): Change to r19.
34621 * config/v850/v850.c (v850_asm_trampoline_template): Update
34622 accordingly.
34623
34624 2020-02-28 Michael Meissner <meissner@linux.ibm.com>
34625
34626 PR target/93937
34627 * config/rs6000/vsx.md (vsx_extract_<mode>_<VS_scalar>mode_var):
34628 Delete insn.
34629
34630 2020-02-28 Martin Liska <mliska@suse.cz>
34631
34632 PR other/93965
34633 * configure.ac: Improve detection of ld_date by requiring
34634 either two dashes or none.
34635 * configure: Regenerate.
34636
34637 2020-02-28 Vladimir Makarov <vmakarov@redhat.com>
34638
34639 PR rtl-optimization/93564
34640 * ira-color.c (assign_hard_reg): Prefer smaller hard regno when we
34641 do not honor reg alloc order.
34642
34643 2020-02-27 Joel Hutton <Joel.Hutton@arm.com>
34644
34645 PR target/87612
34646 * config/aarch64/aarch64.c (aarch64_override_options): Fix
34647 misleading warning string.
34648
34649 2020-02-27 Martin Sebor <msebor@redhat.com>
34650
34651 * doc/invoke.texi (-Wbuiltin-declaration-mismatch): Fix a typo.
34652
34653 2020-02-27 Michael Meissner <meissner@linux.ibm.com>
34654
34655 PR target/93932
34656 * config/rs6000/vsx.md (vsx_extract_<mode>_var, VSX_D iterator):
34657 Split the insn into two parts. This insn only does variable
34658 extract from a register.
34659 (vsx_extract_<mode>_var_load, VSX_D iterator): New insn, do
34660 variable extract from memory.
34661 (vsx_extract_v4sf_var): Split the insn into two parts. This insn
34662 only does variable extract from a register.
34663 (vsx_extract_v4sf_var_load): New insn, do variable extract from
34664 memory.
34665 (vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): Split the insn
34666 into two parts. This insn only does variable extract from a
34667 register.
34668 (vsx_extract_<mode>_var_load, VSX_EXTRACT_I iterator): New insn,
34669 do variable extract from memory.
34670
34671 2020-02-27 Martin Jambor <mjambor@suse.cz>
34672 Feng Xue <fxue@os.amperecomputing.com>
34673
34674 PR ipa/93707
34675 * ipa-cp.c (same_node_or_its_all_contexts_clone_p): Replaced with
34676 new function calls_same_node_or_its_all_contexts_clone_p.
34677 (cgraph_edge_brings_value_p): Use it.
34678 (cgraph_edge_brings_value_p): Likewise.
34679 (self_recursive_pass_through_p): Return false if caller is a clone.
34680 (self_recursive_agg_pass_through_p): Likewise.
34681
34682 2020-02-27 Jan Hubicka <hubicka@ucw.cz>
34683
34684 PR middle-end/92152
34685 * alias.c (ends_tbaa_access_path_p): Break out from ...
34686 (component_uses_parent_alias_set_from): ... here.
34687 * alias.h (ends_tbaa_access_path_p): Declare.
34688 * tree-ssa-alias.c (access_path_may_continue_p): Break out from ...;
34689 handle trailing arrays past end of tbaa access path.
34690 (aliasing_component_refs_p): ... here; likewise.
34691 (nonoverlapping_refs_since_match_p): Track TBAA segment of the access
34692 path; disambiguate also past end of it.
34693 (nonoverlapping_component_refs_p): Use only TBAA segment of the access
34694 path.
34695
34696 2020-02-27 Mihail Ionescu <mihail.ionescu@arm.com>
34697
34698 * (__ARM_NUM_LANES, __arm_lane, __arm_lane_q): Move to the
34699 beginning of the file.
34700 (vcreate_bf16, vcombine_bf16): New.
34701 (vdup_n_bf16, vdupq_n_bf16): New.
34702 (vdup_lane_bf16, vdup_laneq_bf16): New.
34703 (vdupq_lane_bf16, vdupq_laneq_bf16): New.
34704 (vduph_lane_bf16, vduph_laneq_bf16): New.
34705 (vset_lane_bf16, vsetq_lane_bf16): New.
34706 (vget_lane_bf16, vgetq_lane_bf16): New.
34707 (vget_high_bf16, vget_low_bf16): New.
34708 (vreinterpret_bf16_u8, vreinterpretq_bf16_u8): New.
34709 (vreinterpret_bf16_u16, vreinterpretq_bf16_u16): New.
34710 (vreinterpret_bf16_u32, vreinterpretq_bf16_u32): New.
34711 (vreinterpret_bf16_u64, vreinterpretq_bf16_u64): New.
34712 (vreinterpret_bf16_s8, vreinterpretq_bf16_s8): New.
34713 (vreinterpret_bf16_s16, vreinterpretq_bf16_s16): New.
34714 (vreinterpret_bf16_s32, vreinterpretq_bf16_s32): New.
34715 (vreinterpret_bf16_s64, vreinterpretq_bf16_s64): New.
34716 (vreinterpret_bf16_p8, vreinterpretq_bf16_p8): New.
34717 (vreinterpret_bf16_p16, vreinterpretq_bf16_p16): New.
34718 (vreinterpret_bf16_p64, vreinterpretq_bf16_p64): New.
34719 (vreinterpret_bf16_f32, vreinterpretq_bf16_f32): New.
34720 (vreinterpret_bf16_f64, vreinterpretq_bf16_f64): New.
34721 (vreinterpretq_bf16_p128): New.
34722 (vreinterpret_s8_bf16, vreinterpretq_s8_bf16): New.
34723 (vreinterpret_s16_bf16, vreinterpretq_s16_bf16): New.
34724 (vreinterpret_s32_bf16, vreinterpretq_s32_bf16): New.
34725 (vreinterpret_s64_bf16, vreinterpretq_s64_bf16): New.
34726 (vreinterpret_u8_bf16, vreinterpretq_u8_bf16): New.
34727 (vreinterpret_u16_bf16, vreinterpretq_u16_bf16): New.
34728 (vreinterpret_u32_bf16, vreinterpretq_u32_bf16): New.
34729 (vreinterpret_u64_bf16, vreinterpretq_u64_bf16): New.
34730 (vreinterpret_p8_bf16, vreinterpretq_p8_bf16): New.
34731 (vreinterpret_p16_bf16, vreinterpretq_p16_bf16): New.
34732 (vreinterpret_p64_bf16, vreinterpretq_p64_bf16): New.
34733 (vreinterpret_f32_bf16, vreinterpretq_f32_bf16): New.
34734 (vreinterpretq_p128_bf16): New.
34735 * config/arm/arm_neon_builtins.def (VDX): Add V4BF.
34736 (V_elem): Likewise.
34737 (V_elem_l): Likewise.
34738 (VD_LANE): Likewise.
34739 (VQX) Add V8BF.
34740 (V_DOUBLE): Likewise.
34741 (VDQX): Add V4BF and V8BF.
34742 (V_two_elem, V_three_elem, V_four_elem): Likewise.
34743 (V_reg): Likewise.
34744 (V_HALF): Likewise.
34745 (V_double_vector_mode): Likewise.
34746 (V_cmp_result): Likewise.
34747 (V_uf_sclr): Likewise.
34748 (V_sz_elem): Likewise.
34749 (Is_d_reg): Likewise.
34750 (V_mode_nunits): Likewise.
34751 * config/arm/neon.md (neon_vdup_lane): Enable for BFloat16.
34752
34753 2020-02-27 Andrew Stubbs <ams@codesourcery.com>
34754
34755 * config/gcn/gcn-valu.md (VEC_SUBDWORD_MODE): New mode iterator.
34756 (<expander><mode>2<exec>): Change modes to VEC_ALL1REG_INT_MODE.
34757 (<expander><mode>3<exec>): Likewise.
34758 (<expander><mode>3): New.
34759 (v<expander><mode>3): New.
34760 (<expander><mode>3): New.
34761 (<expander><mode>3<exec>): Rename to ...
34762 (<expander>v64si3<exec>): ... this, and change modes to V64SI.
34763 * config/gcn/gcn.md (mnemonic): Use '%B' for not.
34764
34765 2020-02-27 Alexandre Oliva <oliva@adacore.com>
34766
34767 * config/vx-common.h (NO_DOLLAR_IN_LABEL, NO_DOT_IN_LABEL): Leave
34768 them alone on vx7.
34769
34770 2020-02-27 Richard Biener <rguenther@suse.de>
34771
34772 PR tree-optimization/93508
34773 * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle _CHK like
34774 non-_CHK variants. Valueize their length arguments.
34775
34776 2020-02-27 Richard Biener <rguenther@suse.de>
34777
34778 PR tree-optimization/93953
34779 * tree-vect-slp.c (slp_copy_subtree): Avoid keeping a reference
34780 to the hash-map entry.
34781
34782 2020-02-27 Andrew Stubbs <ams@codesourcery.com>
34783
34784 * config/gcn/gcn.md (mov<mode>): Add transformations for BI subregs.
34785
34786 2020-02-27 Mark Williams <mwilliams@fb.com>
34787
34788 * dwarf2out.c (file_name_acquire): Call remap_debug_filename.
34789 * lto-opts.c (lto_write_options): Drop -fdebug-prefix-map,
34790 -ffile-prefix-map and -fmacro-prefix-map.
34791 * lto-streamer-out.c: Include file-prefix-map.h.
34792 (lto_output_location): Remap the file part of locations.
34793
34794 2020-02-27 Jakub Jelinek <jakub@redhat.com>
34795
34796 PR c/93949
34797 * gimplify.c (gimplify_init_constructor): Don't promote readonly
34798 DECL_REGISTER variables to TREE_STATIC.
34799
34800 PR tree-optimization/93582
34801 PR tree-optimization/93945
34802 * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle memset with
34803 non-zero INTEGER_CST second argument and ref->offset or ref->size
34804 not a multiple of BITS_PER_UNIT.
34805
34806 2020-02-27 Jonathan Wakely <jwakely@redhat.com>
34807
34808 * doc/install.texi (Binaries): Update description of BullFreeware.
34809
34810 2020-02-26 Sandra Loosemore <sandra@codesourcery.com>
34811
34812 PR c++/90467
34813
34814 * doc/invoke.texi (Option Summary): Re-alphabetize warnings in
34815 C++ Language Options, Warning Options, and Static Analyzer
34816 Options lists. Document negative form of options enabled by
34817 default. Move some things around to more accurately sort
34818 warnings by category.
34819 (C++ Dialect Options, Warning Options, Static Analyzer
34820 Options): Document negative form of options when enabled by
34821 default. Move some things around to more accurately sort
34822 warnings by category. Add some missing index entries.
34823 Light copy-editing.
34824
34825 2020-02-26 Carl Love <cel@us.ibm.com>
34826
34827 PR target/91276
34828 * doc/extend.texi (PowerPC AltiVec Built-in Functions available on
34829 ISA 2.07): The builtin-function name __builtin_crypto_vpmsumb is only
34830 for the vector unsigned short arguments. It is also listed as the
34831 name of the built-in for arguments vector unsigned short,
34832 vector unsigned int and vector unsigned long long built-ins. The
34833 name of the builtins for these arguments should be:
34834 __builtin_crypto_vpmsumh, __builtin_crypto_vpmsumw and
34835 __builtin_crypto_vpmsumd respectively.
34836
34837 2020-02-26 Richard Biener <rguenther@suse.de>
34838
34839 * tree-vect-slp.c (vect_print_slp_tree): Also dump ref count
34840 and load permutation.
34841
34842 2020-02-26 Richard Sandiford <richard.sandiford@arm.com>
34843
34844 PR middle-end/93843
34845 * optabs-tree.c (supportable_convert_operation): Reject types with
34846 scalar modes.
34847
34848 2020-02-26 David Malcolm <dmalcolm@redhat.com>
34849
34850 * Makefile.in (ANALYZER_OBJS): Add analyzer/bar-chart.o.
34851
34852 2020-02-26 Jakub Jelinek <jakub@redhat.com>
34853
34854 PR tree-optimization/93820
34855 * gimple-ssa-store-merging.c (check_no_overlap): Change RHS_CODE
34856 argument to ALL_INTEGER_CST_P boolean.
34857 (imm_store_chain_info::try_coalesce_bswap): Adjust caller.
34858 (imm_store_chain_info::coalesce_immediate_stores): Likewise. Handle
34859 adjacent INTEGER_CST store into merged_store->only_constants like
34860 overlapping one.
34861
34862 2020-02-25 Jakub Jelinek <jakub@redhat.com>
34863
34864 PR other/93912
34865 * config/sh/sh.c (expand_cbranchdi4): Fix comment typo, probablity
34866 -> probability.
34867 * cfghooks.c (verify_flow_info): Likewise.
34868 * predict.c (combine_predictions_for_bb): Likewise.
34869 * bb-reorder.c (connect_better_edge_p): Likewise. Fix comment typo,
34870 sucessor -> successor.
34871 (find_traces_1_round): Fix comment typo, destinarion -> destination.
34872 * omp-expand.c (expand_oacc_for): Fix comment typo, sucessors ->
34873 successors.
34874 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Fix dump
34875 message typo, sucessors -> successors.
34876
34877 2020-02-25 Martin Sebor <msebor@redhat.com>
34878
34879 * doc/extend.texi (attribute access): Correct an example.
34880
34881 2020-02-25 Mihail Ionescu <mihail.ionescu@arm.com>
34882
34883 * config/aarch64/aarch64-builtins.c (aarch64_scalar_builtin_types):
34884 Add simd_bf.
34885 (aarch64_init_simd_builtin_scalar_types): Register simd_bf.
34886 (VAR15, VAR16): New.
34887 * config/aarch64/iterators.md (VALLDIF): Enable for V4BF and V8BF.
34888 (VD): Enable for V4BF.
34889 (VDC): Likewise.
34890 (VQ): Enable for V8BF.
34891 (VQ2): Likewise.
34892 (VQ_NO2E): Likewise.
34893 (VDBL, Vdbl): Add V4BF.
34894 (V_INT_EQUIV, v_int_equiv): Add V4BF and V8BF.
34895 * config/aarch64/arm_neon.h (bfloat16x4x2_t): New typedef.
34896 (bfloat16x8x2_t): Likewise.
34897 (bfloat16x4x3_t): Likewise.
34898 (bfloat16x8x3_t): Likewise.
34899 (bfloat16x4x4_t): Likewise.
34900 (bfloat16x8x4_t): Likewise.
34901 (vcombine_bf16): New.
34902 (vld1_bf16, vld1_bf16_x2): New.
34903 (vld1_bf16_x3, vld1_bf16_x4): New.
34904 (vld1q_bf16, vld1q_bf16_x2): New.
34905 (vld1q_bf16_x3, vld1q_bf16_x4): New.
34906 (vld1_lane_bf16): New.
34907 (vld1q_lane_bf16): New.
34908 (vld1_dup_bf16): New.
34909 (vld1q_dup_bf16): New.
34910 (vld2_bf16): New.
34911 (vld2q_bf16): New.
34912 (vld2_dup_bf16): New.
34913 (vld2q_dup_bf16): New.
34914 (vld3_bf16): New.
34915 (vld3q_bf16): New.
34916 (vld3_dup_bf16): New.
34917 (vld3q_dup_bf16): New.
34918 (vld4_bf16): New.
34919 (vld4q_bf16): New.
34920 (vld4_dup_bf16): New.
34921 (vld4q_dup_bf16): New.
34922 (vst1_bf16, vst1_bf16_x2): New.
34923 (vst1_bf16_x3, vst1_bf16_x4): New.
34924 (vst1q_bf16, vst1q_bf16_x2): New.
34925 (vst1q_bf16_x3, vst1q_bf16_x4): New.
34926 (vst1_lane_bf16): New.
34927 (vst1q_lane_bf16): New.
34928 (vst2_bf16): New.
34929 (vst2q_bf16): New.
34930 (vst3_bf16): New.
34931 (vst3q_bf16): New.
34932 (vst4_bf16): New.
34933 (vst4q_bf16): New.
34934
34935 2020-02-25 Mihail Ionescu <mihail.ionescu@arm.com>
34936
34937 * config/aarch64/iterators.md (VDQF_F16) Add V4BF and V8BF.
34938 (VALL_F16): Likewise.
34939 (VALLDI_F16): Likewise.
34940 (Vtype): Likewise.
34941 (Vetype): Likewise.
34942 (vswap_width_name): Likewise.
34943 (VSWAP_WIDTH): Likewise.
34944 (Vel): Likewise.
34945 (VEL): Likewise.
34946 (q): Likewise.
34947 * config/aarch64/arm_neon.h (vset_lane_bf16, vsetq_lane_bf16): New.
34948 (vget_lane_bf16, vgetq_lane_bf16): New.
34949 (vcreate_bf16): New.
34950 (vdup_n_bf16, vdupq_n_bf16): New.
34951 (vdup_lane_bf16, vdup_laneq_bf16): New.
34952 (vdupq_lane_bf16, vdupq_laneq_bf16): New.
34953 (vduph_lane_bf16, vduph_laneq_bf16): New.
34954 (vreinterpret_bf16_u8, vreinterpretq_bf16_u8): New.
34955 (vreinterpret_bf16_u16, vreinterpretq_bf16_u16): New.
34956 (vreinterpret_bf16_u32, vreinterpretq_bf16_u32): New.
34957 (vreinterpret_bf16_u64, vreinterpretq_bf16_u64): New.
34958 (vreinterpret_bf16_s8, vreinterpretq_bf16_s8): New.
34959 (vreinterpret_bf16_s16, vreinterpretq_bf16_s16): New.
34960 (vreinterpret_bf16_s32, vreinterpretq_bf16_s32): New.
34961 (vreinterpret_bf16_s64, vreinterpretq_bf16_s64): New.
34962 (vreinterpret_bf16_p8, vreinterpretq_bf16_p8): New.
34963 (vreinterpret_bf16_p16, vreinterpretq_bf16_p16): New.
34964 (vreinterpret_bf16_p64, vreinterpretq_bf16_p64): New
34965 (vreinterpret_bf16_f16, vreinterpretq_bf16_f16): New
34966 (vreinterpret_bf16_f32, vreinterpretq_bf16_f32): New.
34967 (vreinterpret_bf16_f64, vreinterpretq_bf16_f64): New.
34968 (vreinterpretq_bf16_p128): New.
34969 (vreinterpret_s8_bf16, vreinterpretq_s8_bf16): New.
34970 (vreinterpret_s16_bf16, vreinterpretq_s16_bf16): New.
34971 (vreinterpret_s32_bf16, vreinterpretq_s32_bf16): New.
34972 (vreinterpret_s64_bf16, vreinterpretq_s64_bf16): New.
34973 (vreinterpret_u8_bf16, vreinterpretq_u8_bf16): New.
34974 (vreinterpret_u16_bf16, vreinterpretq_u16_bf16): New.
34975 (vreinterpret_u32_bf16, vreinterpretq_u32_bf16): New.
34976 (vreinterpret_u64_bf16, vreinterpretq_u64_bf16): New.
34977 (vreinterpret_p8_bf16, vreinterpretq_p8_bf16): New.
34978 (vreinterpret_p16_bf16, vreinterpretq_p16_bf16): New.
34979 (vreinterpret_p64_bf16, vreinterpretq_p64_bf16): New.
34980 (vreinterpret_f32_bf16, vreinterpretq_f32_bf16): New.
34981 (vreinterpret_f64_bf16,vreinterpretq_f64_bf16): New.
34982 (vreinterpret_f16_bf16,vreinterpretq_f16_bf16): New.
34983 (vreinterpretq_p128_bf16): New.
34984
34985 2020-02-25 Dennis Zhang <dennis.zhang@arm.com>
34986
34987 * config/arm/arm_neon.h (vbfdot_f32, vbfdotq_f32): New
34988 (vbfdot_lane_f32, vbfdotq_laneq_f32): New.
34989 (vbfdot_laneq_f32, vbfdotq_lane_f32): New.
34990 * config/arm/arm_neon_builtins.def (vbfdot): New entry.
34991 (vbfdot_lanev4bf, vbfdot_lanev8bf): Likewise.
34992 * config/arm/iterators.md (VSF2BF): New attribute.
34993 * config/arm/neon.md (neon_vbfdot<VCVTF:mode>): New entry.
34994 (neon_vbfdot_lanev4bf<VCVTF:mode>): Likewise.
34995 (neon_vbfdot_lanev8bf<VCVTF:mode>): Likewise.
34996
34997 2020-02-25 Christophe Lyon <christophe.lyon@linaro.org>
34998
34999 * config/arm/arm.md (required_for_purecode): New attribute.
35000 (enabled): Handle required_for_purecode.
35001 * config/arm/thumb1.md (thumb1_movsi_insn): Add alternative to
35002 work with -mpure-code.
35003
35004 2020-02-25 Jakub Jelinek <jakub@redhat.com>
35005
35006 PR rtl-optimization/93908
35007 * combine.c (find_split_point): For store into ZERO_EXTRACT, and src
35008 with mask.
35009
35010 2019-02-25 Eric Botcazou <ebotcazou@adacore.com>
35011
35012 * dwarf2out.c (dwarf2out_size_function): Run in early-DWARF mode.
35013
35014 2020-02-25 Roman Zhuykov <zhroma@ispras.ru>
35015
35016 * doc/install.texi (--enable-checking): Adjust wording.
35017
35018 2020-02-25 Richard Biener <rguenther@suse.de>
35019
35020 PR tree-optimization/93868
35021 * tree-vect-slp.c (slp_copy_subtree): New function.
35022 (vect_attempt_slp_rearrange_stmts): Copy the SLP tree before
35023 re-arranging stmts in it.
35024
35025 2020-02-25 Jakub Jelinek <jakub@redhat.com>
35026
35027 PR middle-end/93874
35028 * passes.c (pass_manager::dump_passes): Create a cgraph node for the
35029 dummy function and remove it at the end.
35030
35031 PR translation/93864
35032 * config/lm32/lm32.c (lm32_setup_incoming_varargs): Fix comment typo
35033 paramter -> parameter.
35034 * config/aarch64/aarch64.c (aarch64_is_extend_from_extract): Likewise.
35035 * ipa-prop.h (struct ipa_agg_replacement_value): Likewise.
35036
35037 2020-02-24 Roman Zhuykov <zhroma@ispras.ru>
35038
35039 * doc/install.texi (--enable-checking): Properly document current
35040 behavior.
35041 (--enable-stage1-checking): Minor clarification about bootstrap.
35042
35043 2020-02-24 David Malcolm <dmalcolm@redhat.com>
35044
35045 PR analyzer/93032
35046 * doc/invoke.texi (-Wnanalyzer-tainted-array-index): Note that
35047 -fanalyzer-checker=taint is also required.
35048 (-fanalyzer-checker=): Note that providing this option enables the
35049 given checker, and doing so may be required for checkers that are
35050 disabled by default.
35051
35052 2020-02-24 David Malcolm <dmalcolm@redhat.com>
35053
35054 * doc/invoke.texi (-fanalyzer-verbosity=): "2" only shows
35055 significant control flow events; add a "3" which shows all
35056 control flow events; the old "3" becomes "4".
35057
35058 2020-02-24 Jakub Jelinek <jakub@redhat.com>
35059
35060 PR tree-optimization/93582
35061 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Consider
35062 pd.offset and pd.size to be counted in bits rather than bytes, add
35063 support for maxsizei that is not a multiple of BITS_PER_UNIT and
35064 handle bitfield stores and loads.
35065 (vn_reference_lookup_3): Don't call ranges_known_overlap_p with
35066 uncomparable quantities - bytes vs. bits. Allow push_partial_def
35067 on offsets/sizes that aren't multiple of BITS_PER_UNIT and adjust
35068 pd.offset/pd.size to be counted in bits rather than bytes.
35069 Formatting fix. Rename shadowed len variable to buflen.
35070
35071 2020-02-24 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
35072 Kugan Vivekandarajah <kugan.vivekanandarajah@linaro.org>
35073
35074 PR driver/47785
35075 * gcc.c (putenv_COLLECT_AS_OPTIONS): New function.
35076 (driver::main): Call putenv_COLLECT_AS_OPTIONS.
35077 * opts-common.c (parse_options_from_collect_gcc_options): New function.
35078 (prepend_xassembler_to_collect_as_options): Likewise.
35079 * opts.h (parse_options_from_collect_gcc_options): Declare prototype.
35080 (prepend_xassembler_to_collect_as_options): Likewise.
35081 * lto-opts.c (lto_write_options): Stream assembler options
35082 in COLLECT_AS_OPTIONS.
35083 * lto-wrapper.c (xassembler_options_error): New static variable.
35084 (get_options_from_collect_gcc_options): Move parsing options code to
35085 parse_options_from_collect_gcc_options and call it.
35086 (merge_and_complain): Validate -Xassembler options.
35087 (append_compiler_options): Handle OPT_Xassembler.
35088 (run_gcc): Append command line -Xassembler options to
35089 collect_gcc_options.
35090 * doc/invoke.texi: Add documentation about using Xassembler
35091 options with LTO.
35092
35093 2020-02-24 Kito Cheng <kito.cheng@sifive.com>
35094
35095 * config/riscv/riscv.c (riscv_emit_float_compare): Change the code gen
35096 for LTGT.
35097 (riscv_rtx_costs): Update cost model for LTGT.
35098
35099 2020-02-23 Vladimir Makarov <vmakarov@redhat.com>
35100
35101 PR rtl-optimization/93564
35102 * ira-color.c (struct update_cost_queue_elem): New member start.
35103 (queue_update_cost, get_next_update_cost): Add new arg start.
35104 (allocnos_conflict_p): New function.
35105 (update_costs_from_allocno): Add new arg conflict_cost_update_p.
35106 Add checking conflicts with allocnos_conflict_p.
35107 (update_costs_from_prefs, restore_costs_from_copies): Adjust
35108 update_costs_from_allocno calls.
35109 (update_conflict_hard_regno_costs): Add checking conflicts with
35110 allocnos_conflict_p. Adjust calls of queue_update_cost and
35111 get_next_update_cost.
35112 (assign_hard_reg): Adjust calls of queue_update_cost. Add
35113 debugging print.
35114 (bucket_allocno_compare_func): Restore previous version.
35115
35116 2020-02-21 John David Anglin <danglin@gcc.gnu.org>
35117
35118 * config/pa/pa.c (pa_function_value): Fix check for word and
35119 double-word size when handling aggregate return values.
35120 * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Fix to indicate
35121 that homogeneous SFmode and DFmode aggregates are passed and returned
35122 in general registers.
35123
35124 2020-02-21 Jakub Jelinek <jakub@redhat.com>
35125
35126 PR translation/93759
35127 * opts.c (print_filtered_help): Translate help before appending
35128 messages to it rather than after that.
35129
35130 2020-02-19 Richard Sandiford <richard.sandiford@arm.com>
35131
35132 PR rtl-optimization/PR92989
35133 * lra-lives.c (process_bb_lives): Restore the original order
35134 of the bb liveness update. Call make_hard_regno_dead for each
35135 register clobbered at the start of an EH receiver.
35136
35137 2020-02-18 Feng Xue <fxue@os.amperecomputing.com>
35138
35139 PR ipa/93763
35140 * ipa-cp.c (self_recursively_generated_p): Mark self-dependent value as
35141 self-recursively generated.
35142
35143 2020-02-21 Iain Sandoe <iain@sandoe.co.uk>
35144
35145 PR target/93860
35146 * config/darwin-c.c (pop_field_alignment): Adjust quoting of
35147 error string.
35148
35149 2020-02-21 Mihail Ionescu <mihail.ionescu@arm.com>
35150
35151 * doc/sourcebuild.texi (arm_v8_1m_mve_ok):
35152 Document new target supports option.
35153
35154 2020-02-21 Dennis Zhang <dennis.zhang@arm.com>
35155
35156 * config/arm/arm_neon.h (vmmlaq_s32, vmmlaq_u32, vusmmlaq_s32): New.
35157 * config/arm/arm_neon_builtins.def (smmla, ummla, usmmla): New.
35158 * config/arm/iterators.md (MATMUL): New iterator.
35159 (sup): Add UNSPEC_MATMUL_S, UNSPEC_MATMUL_U, and UNSPEC_MATMUL_US.
35160 (mmla_sfx): New attribute.
35161 * config/arm/neon.md (neon_<sup>mmlav16qi): New.
35162 * config/arm/unspecs.md (UNSPEC_MATMUL_S, UNSPEC_MATMUL_U): New.
35163 (UNSPEC_MATMUL_US): New.
35164
35165 2020-02-21 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
35166
35167 * config/arm/arm.md: Prevent scalar shifts from being used when big
35168 endian is enabled.
35169
35170 2020-02-21 Jan Hubicka <hubicka@ucw.cz>
35171 Richard Biener <rguenther@suse.de>
35172
35173 PR tree-optimization/93586
35174 * tree-ssa-alias.c (nonoverlapping_array_refs_p): Finish array walk
35175 after mismatched array refs; do not sure type size information to
35176 recover from unmatched referneces with !flag_strict_aliasing_p.
35177
35178 2020-02-21 Andrew Stubbs <ams@codesourcery.com>
35179
35180 * config/gcn/gcn-valu.md (gather_load<mode>): Rename to ...
35181 (gather_load<mode>v64si): ... this and set operand 2 to V64SI.
35182 (scatter_store<mode>): Rename to ...
35183 (scatter_store<mode>v64si): ... this and set operand 1 to V64SI.
35184 (scatter<mode>_exec): Delete. Move contents ...
35185 (mask_scatter_store<mode>): ... here, and rename that to ...
35186 (mask_gather_load<mode>v64si): ... this. Set operand 2 to V64SI.
35187 Remove mode conversion.
35188 (mask_gather_load<mode>): Rename to ...
35189 (mask_scatter_store<mode>v64si): ... this. Set operand 1 to V64SI.
35190 Remove mode conversion.
35191 * config/gcn/gcn.c (gcn_expand_scaled_offsets): Remove mode conversion.
35192
35193 2020-02-21 Martin Jambor <mjambor@suse.cz>
35194
35195 PR tree-optimization/93845
35196 * tree-sra.c (verify_sra_access_forest): Only test access size of
35197 scalar types.
35198
35199 2020-02-21 Andrew Stubbs <ams@codesourcery.com>
35200
35201 * config/gcn/gcn.c (gcn_hard_regno_mode_ok): Align VGPR pairs.
35202 * config/gcn/gcn-valu.md (addv64di3): Remove early-clobber.
35203 (addv64di3_exec): Likewise.
35204 (subv64di3): Likewise.
35205 (subv64di3_exec): Likewise.
35206 (addv64di3_zext): Likewise.
35207 (addv64di3_zext_exec): Likewise.
35208 (addv64di3_zext_dup): Likewise.
35209 (addv64di3_zext_dup_exec): Likewise.
35210 (addv64di3_zext_dup2): Likewise.
35211 (addv64di3_zext_dup2_exec): Likewise.
35212 (addv64di3_sext_dup2): Likewise.
35213 (addv64di3_sext_dup2_exec): Likewise.
35214 (<expander>v64di3): Likewise.
35215 (<expander>v64di3_exec): Likewise.
35216 (*<reduc_op>_dpp_shr_v64di): Likewise.
35217 (*plus_carry_dpp_shr_v64di): Likewise.
35218 * config/gcn/gcn.md (adddi3): Likewise.
35219 (addptrdi3): Likewise.
35220 (<expander>di3): Likewise.
35221
35222 2020-02-21 Andrew Stubbs <ams@codesourcery.com>
35223
35224 * config/gcn/gcn-valu.md (vec_seriesv64di): Use gen_vec_duplicatev64di.
35225
35226 2020-02-21 Richard Sandiford <richard.sandiford@arm.com>
35227
35228 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Add SVE
35229 support. Use aarch64_emit_mult instead of emitting multiplication
35230 instructions directly.
35231 * config/aarch64/aarch64-sve.md (sqrt<mode>2, rsqrt<mode>2)
35232 (@aarch64_rsqrte<mode>, @aarch64_rsqrts<mode>): New expanders.
35233
35234 2020-02-21 Richard Sandiford <richard.sandiford@arm.com>
35235
35236 * config/aarch64/aarch64.c (aarch64_emit_mult): New function.
35237 (aarch64_emit_approx_div): Add SVE support. Use aarch64_emit_mult
35238 instead of emitting multiplication instructions directly.
35239 * config/aarch64/iterators.md (SVE_COND_FP_BINARY_OPTAB): New iterator.
35240 * config/aarch64/aarch64-sve.md (div<mode>3, @aarch64_frecpe<mode>)
35241 (@aarch64_frecps<mode>): New expanders.
35242
35243 2020-02-21 Richard Sandiford <richard.sandiford@arm.com>
35244
35245 * config/aarch64/aarch64-protos.h (AARCH64_APPROX_MODE): Operate
35246 on and produce uint64_ts rather than ints.
35247 (AARCH64_APPROX_NONE, AARCH64_APPROX_ALL): Change to uint64_ts.
35248 (cpu_approx_modes): Change the fields from unsigned int to uint64_t.
35249
35250 2020-02-21 Richard Sandiford <richard.sandiford@arm.com>
35251
35252 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Don't create
35253 an unused xmsk register when handling approximate rsqrt.
35254
35255 2020-02-21 Richard Sandiford <richard.sandiford@arm.com>
35256
35257 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Fix inverted
35258 flag_finite_math_only condition.
35259
35260 2020-02-20 Uroš Bizjak <ubizjak@gmail.com>
35261
35262 PR target/93828
35263 * config/i386/mmx.md (*vec_extractv2sf_1): Match source operand
35264 to destination operand for shufps alternative.
35265 (*vec_extractv2si_1): Ditto.
35266
35267 2020-02-20 Peter Bergner <bergner@linux.ibm.com>
35268
35269 PR target/93658
35270 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Handle VSX
35271 vector modes.
35272
35273 2020-02-20 Martin Liska <mliska@suse.cz>
35274
35275 PR translation/93831
35276 * config/darwin.c (darwin_override_options): Change 64b to 64-bit mode.
35277
35278 2020-02-20 Martin Liska <mliska@suse.cz>
35279
35280 PR translation/93830
35281 * common/config/avr/avr-common.c: Remote trailing "|".
35282
35283 2020-02-19 Bernd Edlinger <bernd.edlinger@hotmail.de>
35284
35285 * collect2.c (maybe_run_lto_and_relink): Fix typo in
35286 comment.
35287
35288 2020-02-19 Richard Sandiford <richard.sandiford@arm.com>
35289
35290 PR tree-optimization/93767
35291 * tree-vect-data-refs.c (vect_compile_time_alias): Remove the
35292 access-size bias from the offset calculations for negative strides.
35293
35294 2020-02-19 Bernd Edlinger <bernd.edlinger@hotmail.de>
35295
35296 * collect2.c (c_file, o_file): Make const again.
35297 (ldout,lderrout, dump_ld_file): Remove.
35298 (tool_cleanup): Avoid calling not signal-safe functions.
35299 (maybe_run_lto_and_relink): Avoid possible signal handler
35300 access to unintialzed memory (lto_o_files).
35301 (main): Avoid leaking temp files in $TMPDIR.
35302 Initialize c_file/o_file with concat, which avoids exposing
35303 uninitialized memory to signal handler, which calls unlink(!).
35304 Avoid calling maybe_unlink when the main function returns,
35305 since the atexit handler is already doing this.
35306 * collect2.h (dump_ld_file, ldout, lderrout): Remove.
35307
35308 2020-02-19 Martin Jambor <mjambor@suse.cz>
35309
35310 PR tree-optimization/93776
35311 * tree-sra.c (create_access): Do not create zero size accesses.
35312 (get_access_for_expr): Do not search for zero sized accesses.
35313
35314 2020-02-19 Martin Jambor <mjambor@suse.cz>
35315
35316 PR tree-optimization/93667
35317 * tree-sra.c (scalarizable_type_p): Return false if record fields
35318 do not follow wach other.
35319
35320 2020-01-21 Kito Cheng <kito.cheng@sifive.com>
35321
35322 * config/riscv/riscv.c (riscv_output_move) Using fmv.x.w/fmv.w.x
35323 rather than fmv.x.s/fmv.s.x.
35324
35325 2020-02-18 James Greenhalgh <james.greenhalgh@arm.com>
35326
35327 * config/aarch64/aarch64-simd-builtins.def
35328 (intrinsic_vec_smult_lo_): New.
35329 (intrinsic_vec_umult_lo_): Likewise.
35330 (vec_widen_smult_hi_): Likewise.
35331 (vec_widen_umult_hi_): Likewise.
35332 * config/aarch64/aarch64-simd.md
35333 (aarch64_intrinsic_vec_<su>mult_lo_<mode>): New.
35334 * config/aarch64/arm_neon.h (vmull_high_s8): Use intrinsics.
35335 (vmull_high_s16): Likewise.
35336 (vmull_high_s32): Likewise.
35337 (vmull_high_u8): Likewise.
35338 (vmull_high_u16): Likewise.
35339 (vmull_high_u32): Likewise.
35340 (vmull_s8): Likewise.
35341 (vmull_s16): Likewise.
35342 (vmull_s32): Likewise.
35343 (vmull_u8): Likewise.
35344 (vmull_u16): Likewise.
35345 (vmull_u32): Likewise.
35346
35347 2020-02-18 Martin Liska <mliska@suse.cz>
35348
35349 * value-prof.c (stream_out_histogram_value): Restore LTO PGO
35350 bootstrap by missing removal of invalid sanity check.
35351
35352 2020-02-18 Martin Liska <mliska@suse.cz>
35353
35354 PR ipa/92518
35355 * ipa-icf-gimple.c (func_checker::compare_gimple_assign):
35356 Always compare LHS of gimple_assign.
35357
35358 2020-02-18 Martin Liska <mliska@suse.cz>
35359
35360 PR ipa/93583
35361 * cgraph.c (cgraph_node::verify_node): Verify MALLOC attribute
35362 and return type of functions.
35363 * ipa-param-manipulation.c (ipa_param_adjustments::adjust_decl):
35364 Drop MALLOC attribute for void functions.
35365 * ipa-pure-const.c (funct_state_summary_t::duplicate): Drop
35366 malloc_state for a new VOID clone.
35367
35368 2020-02-18 Martin Liska <mliska@suse.cz>
35369
35370 PR ipa/92924
35371 * common.opt: Add -fprofile-reproducibility.
35372 * doc/invoke.texi: Document it.
35373 * value-prof.c (dump_histogram_value):
35374 Document and support behavior for counters[0]
35375 being a negative value.
35376 (get_nth_most_common_value): Handle negative
35377 counters[0] in respect to flag_profile_reproducible.
35378
35379 2020-02-18 Jakub Jelinek <jakub@redhat.com>
35380
35381 PR ipa/93797
35382 * cgraph.c (verify_speculative_call): Use speculative_id instead of
35383 speculative_uid in messages. Remove trailing whitespace from error
35384 message. Use num_speculative_call_targets instead of
35385 num_speculative_targets in a message.
35386 (cgraph_node::verify_node): Use call_stmt instead of cal_stmt in
35387 edge messages and stmt instead of cal_stmt in reference message.
35388
35389 PR tree-optimization/93780
35390 * tree-ssa.c (non_rewritable_lvalue_p): Check valid_vector_subparts_p
35391 before calling build_vector_type.
35392 (execute_update_addresses_taken): Likewise.
35393
35394 PR driver/93796
35395 * params.opt (-param=ipa-max-switch-predicate-bounds=): Fix help
35396 typo, functoin -> function.
35397 * tree.c (free_lang_data_in_decl): Fix comment typo,
35398 functoin -> function.
35399 * ipa-visibility.c (cgraph_externally_visible_p): Likewise.
35400
35401 2020-02-17 David Malcolm <dmalcolm@redhat.com>
35402
35403 * diagnostic.c (print_any_cwe): Don't call get_cwe_url if URLs
35404 won't be printed.
35405 (print_option_information): Don't call get_option_url if URLs
35406 won't be printed.
35407
35408 2020-02-17 Alexandre Oliva <oliva@adacore.com>
35409
35410 * tree-emutls.c (new_emutls_decl, emutls_common_1): Complete
35411 handling of register_common-less targets.
35412
35413 2020-02-17 Martin Liska <mliska@suse.cz>
35414
35415 PR ipa/93760
35416 * ipa-devirt.c (odr_types_equivalent_p): Fix grammar.
35417
35418 2020-02-17 Martin Liska <mliska@suse.cz>
35419
35420 PR translation/93755
35421 * config/rs6000/rs6000.c (rs6000_option_override_internal):
35422 Fix double quotes.
35423
35424 2020-02-17 Martin Liska <mliska@suse.cz>
35425
35426 PR other/93756
35427 * config/rx/elf.opt: Fix typo.
35428
35429 2020-02-17 Richard Biener <rguenther@suse.de>
35430
35431 PR c/86134
35432 * opts-global.c (print_ignored_options): Use inform and
35433 amend message.
35434
35435 2020-02-17 Jiufu Guo <guojiufu@linux.ibm.com>
35436
35437 PR target/93047
35438 * config/rs6000/rs6000.md (untyped_call): Add emit_clobber.
35439
35440 2020-02-16 Uroš Bizjak <ubizjak@gmail.com>
35441
35442 PR target/93743
35443 * config/i386/i386.md (atan2xf3): Swap operands 1 and 2.
35444 (atan2<mode>3): Update operand order in the call to gen_atan2xf3.
35445
35446 2020-02-15 Jason Merrill <jason@redhat.com>
35447
35448 * doc/invoke.texi (C Dialect Options): Add -std=c++20.
35449
35450 2020-02-15 Jakub Jelinek <jakub@redhat.com>
35451
35452 PR tree-optimization/93744
35453 * match.pd (((m1 >/</>=/<= m2) * d -> (m1 >/</>=/<= m2) ? d : 0,
35454 A - ((A - B) & -(C cmp D)) -> (C cmp D) ? B : A,
35455 A + ((B - A) & -(C cmp D)) -> (C cmp D) ? B : A): For GENERIC, make
35456 sure @2 in the first and @1 in the other patterns has no side-effects.
35457
35458 2020-02-15 David Malcolm <dmalcolm@redhat.com>
35459 Bernd Edlinger <bernd.edlinger@hotmail.de>
35460
35461 PR 87488
35462 PR other/93168
35463 * config.in (DIAGNOSTICS_URLS_DEFAULT): New define.
35464 * configure.ac (--with-diagnostics-urls): New configuration
35465 option, based on --with-diagnostics-color.
35466 (DIAGNOSTICS_URLS_DEFAULT): New define.
35467 * config.h: Regenerate.
35468 * configure: Regenerate.
35469 * diagnostic.c (diagnostic_urls_init): Handle -1 for
35470 DIAGNOSTICS_URLS_DEFAULT from configure-time
35471 --with-diagnostics-urls=auto-if-env by querying for a GCC_URLS
35472 and TERM_URLS environment variable.
35473 * diagnostic-url.h (diagnostic_url_format): New enum type.
35474 (diagnostic_urls_enabled_p): rename to...
35475 (determine_url_format): ... this, and change return type.
35476 * diagnostic-color.c (parse_env_vars_for_urls): New helper function.
35477 (auto_enable_urls): Disable URLs on xfce4-terminal, gnome-terminal,
35478 the linux console, and mingw.
35479 (diagnostic_urls_enabled_p): rename to...
35480 (determine_url_format): ... this, and adjust.
35481 * pretty-print.h (pretty_printer::show_urls): rename to...
35482 (pretty_printer::url_format): ... this, and change to enum.
35483 * pretty-print.c (pretty_printer::pretty_printer,
35484 pp_begin_url, pp_end_url, test_urls): Adjust.
35485 * doc/install.texi (--with-diagnostics-urls): Document the new
35486 configuration option.
35487 (--with-diagnostics-color): Document the existing interaction
35488 with GCC_COLORS better.
35489 * doc/invoke.texi (-fdiagnostics-urls): Add GCC_URLS and TERM_URLS
35490 vindex reference. Update description of defaults based on the above.
35491 (-fdiagnostics-color): Update description of how -fdiagnostics-color
35492 interacts with GCC_COLORS.
35493
35494 2020-02-14 Eric Botcazou <ebotcazou@adacore.com>
35495
35496 PR target/93704
35497 * config/sparc/sparc.c (eligible_for_call_delay): Test HAVE_GNU_LD in
35498 conjunction with TARGET_GNU_TLS in early return.
35499
35500 2020-02-14 Alexander Monakov <amonakov@ispras.ru>
35501
35502 * rtlanal.c (rtx_cost): Handle a SET up front. Avoid division if
35503 the mode is not wider than UNITS_PER_WORD.
35504
35505 2020-02-14 Martin Jambor <mjambor@suse.cz>
35506
35507 PR tree-optimization/93516
35508 * tree-sra.c (propagate_subaccesses_from_rhs): Do not create
35509 access of the same type as the parent.
35510 (propagate_subaccesses_from_lhs): Likewise.
35511
35512 2020-02-14 Hongtao Liu <hongtao.liu@intel.com>
35513
35514 PR target/93724
35515 * config/i386/avx512vbmi2intrin.h
35516 (_mm512_shrdi_epi16, _mm512_mask_shrdi_epi16,
35517 _mm512_maskz_shrdi_epi16, _mm512_shrdi_epi32,
35518 _mm512_mask_shrdi_epi32, _mm512_maskz_shrdi_epi32,
35519 _m512_shrdi_epi64, _m512_mask_shrdi_epi64,
35520 _m512_maskz_shrdi_epi64, _mm512_shldi_epi16,
35521 _mm512_mask_shldi_epi16, _mm512_maskz_shldi_epi16,
35522 _mm512_shldi_epi32, _mm512_mask_shldi_epi32,
35523 _mm512_maskz_shldi_epi32, _mm512_shldi_epi64,
35524 _mm512_mask_shldi_epi64, _mm512_maskz_shldi_epi64): Fix typo
35525 of lacking a closing parenthesis.
35526 * config/i386/avx512vbmi2vlintrin.h
35527 (_mm256_shrdi_epi16, _mm256_mask_shrdi_epi16,
35528 _mm256_maskz_shrdi_epi16, _mm256_shrdi_epi32,
35529 _mm256_mask_shrdi_epi32, _mm256_maskz_shrdi_epi32,
35530 _m256_shrdi_epi64, _m256_mask_shrdi_epi64,
35531 _m256_maskz_shrdi_epi64, _mm256_shldi_epi16,
35532 _mm256_mask_shldi_epi16, _mm256_maskz_shldi_epi16,
35533 _mm256_shldi_epi32, _mm256_mask_shldi_epi32,
35534 _mm256_maskz_shldi_epi32, _mm256_shldi_epi64,
35535 _mm256_mask_shldi_epi64, _mm256_maskz_shldi_epi64,
35536 _mm_shrdi_epi16, _mm_mask_shrdi_epi16,
35537 _mm_maskz_shrdi_epi16, _mm_shrdi_epi32,
35538 _mm_mask_shrdi_epi32, _mm_maskz_shrdi_epi32,
35539 _mm_shrdi_epi64, _mm_mask_shrdi_epi64,
35540 _m_maskz_shrdi_epi64, _mm_shldi_epi16,
35541 _mm_mask_shldi_epi16, _mm_maskz_shldi_epi16,
35542 _mm_shldi_epi32, _mm_mask_shldi_epi32,
35543 _mm_maskz_shldi_epi32, _mm_shldi_epi64,
35544 _mm_mask_shldi_epi64, _mm_maskz_shldi_epi64): Ditto.
35545
35546 2020-02-13 H.J. Lu <hongjiu.lu@intel.com>
35547
35548 PR target/93656
35549 * config/i386/i386.c (ix86_trampoline_init): Skip ENDBR32 at
35550 the target function entry.
35551
35552 2020-02-13 Claudiu Zissulescu <claziss@synopsys.com>
35553
35554 * common/config/arc/arc-common.c (arc_option_optimization_table):
35555 Disable if-conversion step when optimized for size.
35556
35557 2020-02-13 Claudiu Zissulescu <claziss@synopsys.com>
35558
35559 * config/arc/arc.c (arc_conditional_register_usage): R0-R3 and
35560 R12-R15 are always in ARCOMPACT16_REGS register class.
35561 * config/arc/arc.opt (mq-class): Deprecate.
35562 * config/arc/constraint.md ("q"): Remove dependency on mq-class
35563 option.
35564 * doc/invoke.texi (mq-class): Update text.
35565 * common/config/arc/arc-common.c (arc_option_optimization_table):
35566 Update list.
35567
35568 2020-02-13 Claudiu Zissulescu <claziss@synopsys.com>
35569
35570 * config/arc/arc.c (arc_insn_cost): New function.
35571 (TARGET_INSN_COST): Define.
35572 * config/arc/arc.md (cost): New attribute.
35573 (add_n): Use arc_nonmemory_operand.
35574 (ashlsi3_insn): Likewise, also update constraints.
35575 (ashrsi3_insn): Likewise.
35576 (rotrsi3): Likewise.
35577 (add_shift): Likewise.
35578 * config/arc/predicates.md (arc_nonmemory_operand): New predicate.
35579
35580 2020-02-13 Claudiu Zissulescu <claziss@synopsys.com>
35581
35582 * config/arc/arc.md (mulsidi_600): Correctly select mlo/mhi
35583 registers.
35584 (umulsidi_600): Likewise.
35585
35586 2020-02-13 Jakub Jelinek <jakub@redhat.com>
35587
35588 PR target/93696
35589 * config/i386/avx512bitalgintrin.h (_mm512_mask_popcnt_epi8,
35590 _mm512_mask_popcnt_epi16, _mm256_mask_popcnt_epi8,
35591 _mm256_mask_popcnt_epi16, _mm_mask_popcnt_epi8,
35592 _mm_mask_popcnt_epi16): Rename __B argument to __A and __A to __W,
35593 pass __A to the builtin followed by __W instead of __A followed by
35594 __B.
35595 * config/i386/avx512vpopcntdqintrin.h (_mm512_mask_popcnt_epi32,
35596 _mm512_mask_popcnt_epi64): Likewise.
35597 * config/i386/avx512vpopcntdqvlintrin.h (_mm_mask_popcnt_epi32,
35598 _mm256_mask_popcnt_epi32, _mm_mask_popcnt_epi64,
35599 _mm256_mask_popcnt_epi64): Likewise.
35600
35601 PR tree-optimization/93582
35602 * fold-const.h (shift_bytes_in_array_left,
35603 shift_bytes_in_array_right): Declare.
35604 * fold-const.c (shift_bytes_in_array_left,
35605 shift_bytes_in_array_right): New function, moved from
35606 gimple-ssa-store-merging.c, no longer static.
35607 * gimple-ssa-store-merging.c (shift_bytes_in_array): Move
35608 to gimple-ssa-store-merging.c and rename to shift_bytes_in_array_left.
35609 (shift_bytes_in_array_right): Move to gimple-ssa-store-merging.c.
35610 (encode_tree_to_bitpos): Use shift_bytes_in_array_left instead of
35611 shift_bytes_in_array.
35612 (verify_shift_bytes_in_array): Rename to ...
35613 (verify_shift_bytes_in_array_left): ... this. Use
35614 shift_bytes_in_array_left instead of shift_bytes_in_array.
35615 (store_merging_c_tests): Call verify_shift_bytes_in_array_left
35616 instead of verify_shift_bytes_in_array.
35617 * tree-ssa-sccvn.c (vn_reference_lookup_3): For native_encode_expr
35618 / native_interpret_expr where the store covers all needed bits,
35619 punt on PDP-endian, otherwise allow all involved offsets and sizes
35620 not to be byte-aligned.
35621
35622 PR target/93673
35623 * config/i386/sse.md (k<code><mode>): Drop mode from last operand and
35624 use const_0_to_255_operand predicate instead of immediate_operand.
35625 (avx512dq_fpclass<mode><mask_scalar_merge_name>,
35626 avx512dq_vmfpclass<mode><mask_scalar_merge_name>,
35627 vgf2p8affineinvqb_<mode><mask_name>,
35628 vgf2p8affineqb_<mode><mask_name>): Drop mode from
35629 const_0_to_255_operand predicated operands.
35630
35631 2020-02-12 Jeff Law <law@redhat.com>
35632
35633 * config/h8300/h8300.md (comparison shortening peepholes): Use
35634 a mode iterator to merge the HImode and SImode peepholes.
35635
35636 2020-02-12 Jakub Jelinek <jakub@redhat.com>
35637
35638 PR middle-end/93663
35639 * real.c (is_even): Make static. Function comment fix.
35640 (is_halfway_below): Make static, don't assert R is not inf/nan,
35641 instead return false for those. Small formatting fixes.
35642
35643 2020-02-12 Martin Sebor <msebor@redhat.com>
35644
35645 PR middle-end/93646
35646 * tree-ssa-strlen.c (handle_builtin_stxncpy): Rename...
35647 (handle_builtin_stxncpy_strncat): ...to this. Change first argument.
35648 Issue only -Wstringop-overflow strncat, never -Wstringop-truncation.
35649 (strlen_check_and_optimize_call): Adjust callee name.
35650
35651 2020-02-12 Jeff Law <law@redhat.com>
35652
35653 * config/h8300/h8300.md (comparison shortening peepholes): Drop
35654 (and (xor)) variant. Combine other two into single peephole.
35655
35656 2020-02-12 Wilco Dijkstra <wdijkstr@arm.com>
35657
35658 PR rtl-optimization/93565
35659 * config/aarch64/aarch64.c (aarch64_rtx_costs): Add CTZ costs.
35660
35661 2020-02-12 Wilco Dijkstra <wdijkstr@arm.com>
35662
35663 * config/aarch64/aarch64-simd.md
35664 (aarch64_zero_extend<GPI:mode>_reduc_plus_<VDQV_E:mode>): New pattern.
35665 * config/aarch64/aarch64.md (popcount<mode>2): Use it instead of
35666 generating separate ADDV and zero_extend patterns.
35667 * config/aarch64/iterators.md (VDQV_E): New iterator.
35668
35669 2020-02-12 Jeff Law <law@redhat.com>
35670
35671 * config/h8300/h8300.md (cpymemsi, movmd): Remove dead patterns,
35672 expanders, splits, etc.
35673 (movmd_internal_<mode>, movmd splitter, movstr, movsd): Likewise.
35674 (stpcpy_internal_<mode>, stpcpy splitter): Likewise.
35675 (peepholes to convert QI/HI mode pushes to SI mode pushes): Likewise.
35676 * config/h8300/h8300.c (h8300_swap_into_er6): Remove unused function.
35677 (h8300_swap_out_of_er6, h8sx_emit_movmd): Likewise
35678 * config/h8300/h8300-protos.h (h8300_swap_into_er6): Remove unused
35679 function prototype.
35680 (h8300_swap_out_of_er6, h8sx_emit_movmd): Likewise.
35681
35682 2020-02-12 Jakub Jelinek <jakub@redhat.com>
35683
35684 PR target/93670
35685 * config/i386/sse.md (VI48F_256_DQ): New mode iterator.
35686 (avx512vl_vextractf128<mode>): Use it instead of VI48F_256. Remove
35687 TARGET_AVX512DQ from condition.
35688 (vec_extract_lo_<mode><mask_name>): Use <mask_avx512dq_condition>
35689 instead of <mask_mode512bit_condition> in condition. If
35690 TARGET_AVX512DQ is false, emit vextract*64x4 instead of
35691 vextract*32x8.
35692 (vec_extract_lo_<mode><mask_name>): Drop <mask_avx512dq_condition>
35693 from condition.
35694
35695 2020-02-12 Kewen Lin <linkw@gcc.gnu.org>
35696
35697 PR target/91052
35698 * ira.c (combine_and_move_insns): Skip multiple_sets def_insn.
35699
35700 2020-02-12 Segher Boessenkool <segher@kernel.crashing.org>
35701
35702 * config/rs6000/rs6000.c (rs6000_debug_print_mode): Don't use sizeof
35703 where strlen is more legible.
35704 (rs6000_builtin_vectorized_libmass): Ditto.
35705 (rs6000_print_options_internal): Ditto.
35706
35707 2020-02-11 Martin Sebor <msebor@redhat.com>
35708
35709 PR tree-optimization/93683
35710 * tree-ssa-alias.c (stmt_kills_ref_p): Avoid using LHS when not set.
35711
35712 2020-02-11 Michael Meissner <meissner@linux.ibm.com>
35713
35714 * config/rs6000/predicates.md (cint34_operand): Rename the
35715 -mprefixed-addr option to be -mprefixed.
35716 * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Rename
35717 the -mprefixed-addr option to be -mprefixed.
35718 (OTHER_FUTURE_MASKS): Likewise.
35719 (POWERPC_MASKS): Likewise.
35720 * config/rs6000/rs6000.c (rs6000_option_override_internal): Rename
35721 the -mprefixed-addr option to be -mprefixed. Change error
35722 messages to refer to -mprefixed.
35723 (num_insns_constant_gpr): Rename the -mprefixed-addr option to be
35724 -mprefixed.
35725 (rs6000_legitimate_offset_address_p): Likewise.
35726 (rs6000_mode_dependent_address): Likewise.
35727 (rs6000_opt_masks): Change the spelling of "-mprefixed-addr" to be
35728 "-mprefixed" for target attributes and pragmas.
35729 (address_to_insn_form): Rename the -mprefixed-addr option to be
35730 -mprefixed.
35731 (rs6000_adjust_insn_length): Likewise.
35732 * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Rename the
35733 -mprefixed-addr option to be -mprefixed.
35734 (ASM_OUTPUT_OPCODE): Likewise.
35735 * config/rs6000/rs6000.md (prefixed insn attribute): Rename the
35736 -mprefixed-addr option to be -mprefixed.
35737 * config/rs6000/rs6000.opt (-mprefixed): Rename the
35738 -mprefixed-addr option to be prefixed. Change the option from
35739 being undocumented to being documented.
35740 * doc/invoke.texi (RS/6000 and PowerPC Options): Document the
35741 -mprefixed option. Update the -mpcrel documentation to mention
35742 -mprefixed.
35743
35744 2020-02-11 Hans-Peter Nilsson <hp@axis.com>
35745
35746 * ira-conflicts.c (print_hard_reg_set): Correct output for sets
35747 including FIRST_PSEUDO_REGISTER - 1.
35748 * ira-color.c (print_hard_reg_set): Ditto.
35749
35750 2020-02-11 Stam Markianos-Wright <stam.markianos-wright@arm.com>
35751
35752 * config/arm/arm-builtins.c (enum arm_type_qualifiers):
35753 (USTERNOP_QUALIFIERS): New define.
35754 (USMAC_LANE_QUADTUP_QUALIFIERS): New define.
35755 (SUMAC_LANE_QUADTUP_QUALIFIERS): New define.
35756 (arm_expand_builtin_args): Add case ARG_BUILTIN_LANE_QUADTUP_INDEX.
35757 (arm_expand_builtin_1): Add qualifier_lane_quadtup_index.
35758 * config/arm/arm_neon.h (vusdot_s32): New.
35759 (vusdot_lane_s32): New.
35760 (vusdotq_lane_s32): New.
35761 (vsudot_lane_s32): New.
35762 (vsudotq_lane_s32): New.
35763 * config/arm/arm_neon_builtins.def (usdot, usdot_lane,sudot_lane): New.
35764 * config/arm/iterators.md (DOTPROD_I8MM): New.
35765 (sup, opsuffix): Add <us/su>.
35766 * config/arm/neon.md (neon_usdot, <us/su>dot_lane: New.
35767 * config/arm/unspecs.md (UNSPEC_DOT_US, UNSPEC_DOT_SU): New.
35768
35769 2020-02-11 Richard Biener <rguenther@suse.de>
35770
35771 PR tree-optimization/93661
35772 PR tree-optimization/93662
35773 * tree-ssa-sccvn.c (vn_reference_lookup_3): Properly guard
35774 tree_to_poly_int64.
35775 * tree-sra.c (get_access_for_expr): Likewise.
35776
35777 2020-02-10 Jakub Jelinek <jakub@redhat.com>
35778
35779 PR target/93637
35780 * config/i386/sse.md (VI_256_AVX2): New mode iterator.
35781 (vcond_mask_<mode><sseintvecmodelower>): Use it instead of VI_256.
35782 Change condition from TARGET_AVX2 to TARGET_AVX.
35783
35784 2020-02-10 Iain Sandoe <iain@sandoe.co.uk>
35785
35786 PR other/93641
35787 * config/darwin-c.c (darwin_cfstring_ref_p): Fix up last
35788 argument of strncmp.
35789
35790 2020-02-10 Hans-Peter Nilsson <hp@axis.com>
35791
35792 Try to generate zero-based comparisons.
35793 * config/cris/cris.c (cris_reduce_compare): New function.
35794 * config/cris/cris-protos.h (cris_reduce_compare): Add prototype.
35795 * config/cris/cris.md ("cbranch<mode>4", "cbranchdi4", "cstoredi4")
35796 (cstore<mode>4"): Apply cris_reduce_compare in expanders.
35797
35798 2020-02-10 Richard Earnshaw <rearnsha@arm.com>
35799
35800 PR target/91913
35801 * config/arm/arm.md (movsi_compare0): Allow SP as a source register
35802 in Thumb state and also as a destination in Arm state. Add T16
35803 variants.
35804
35805 2020-02-10 Hans-Peter Nilsson <hp@axis.com>
35806
35807 * md.texi (Define Subst): Match closing paren in example.
35808
35809 2020-02-10 Jakub Jelinek <jakub@redhat.com>
35810
35811 PR target/58218
35812 PR other/93641
35813 * config/i386/i386.c (x86_64_elf_section_type_flags): Fix up last
35814 arguments of strncmp.
35815
35816 2020-02-10 Feng Xue <fxue@os.amperecomputing.com>
35817
35818 PR ipa/93203
35819 * ipa-cp.c (ipcp_lattice::add_value): Add source with same call edge
35820 but different source value.
35821 (adjust_callers_for_value_intersection): New function.
35822 (gather_edges_for_value): Adjust order of callers to let a
35823 non-self-recursive caller be the first element.
35824 (self_recursive_pass_through_p): Add a new parameter "simple", and
35825 check generalized self-recursive pass-through jump function.
35826 (self_recursive_agg_pass_through_p): Likewise.
35827 (find_more_scalar_values_for_callers_subset): Compute value from
35828 pass-through jump function for self-recursive.
35829 (intersect_with_plats): Cleanup previous implementation code for value
35830 itersection with self-recursive call edge.
35831 (intersect_with_agg_replacements): Likewise.
35832 (intersect_aggregates_with_edge): Deduce value from pass-through jump
35833 function for self-recursive call edge. Cleanup previous implementation
35834 code for value intersection with self-recursive call edge.
35835 (decide_whether_version_node): Remove dead callers and adjust order
35836 to let a non-self-recursive caller be the first element.
35837
35838 2020-02-09 Uroš Bizjak <ubizjak@gmail.com>
35839
35840 * recog.c: Move pass_split_before_sched2 code in front of
35841 pass_split_before_regstack.
35842 (pass_data_split_before_sched2): Rename pass to split3 from split4.
35843 (pass_data_split_before_regstack): Rename pass to split4 from split3.
35844 (rest_of_handle_split_before_sched2): Remove.
35845 (pass_split_before_sched2::execute): Unconditionally call
35846 split_all_insns.
35847 (enable_split_before_sched2): New function.
35848 (pass_split_before_sched2::gate): Use enable_split_before_sched2.
35849 (pass_split_before_regstack::gate): Ditto.
35850 * config/nds32/nds32.c (nds32_split_double_word_load_store_p):
35851 Update name check for renamed split4 pass.
35852 * config/sh/sh.c (register_sh_passes): Update pass insertion
35853 point for renamed split4 pass.
35854
35855 2020-02-09 Jakub Jelinek <jakub@redhat.com>
35856
35857 * gimplify.c (gimplify_adjust_omp_clauses_1): Promote
35858 DECL_IN_CONSTANT_POOL variables into "omp declare target" to avoid
35859 copying them around between host and target.
35860
35861 2020-02-08 Andrew Pinski <apinski@marvell.com>
35862
35863 PR target/91927
35864 * config/aarch64/aarch64-simd.md (movmisalign<mode>): Check
35865 STRICT_ALIGNMENT also.
35866
35867 2020-02-08 Jim Wilson <jimw@sifive.com>
35868
35869 PR target/93532
35870 * config/riscv/riscv.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
35871
35872 2020-02-08 Uroš Bizjak <ubizjak@gmail.com>
35873 Jakub Jelinek <jakub@redhat.com>
35874
35875 PR target/65782
35876 * config/i386/i386.h (CALL_USED_REGISTERS): Make
35877 xmm16-xmm31 call-used even in 64-bit ms-abi.
35878
35879 2020-02-07 Dennis Zhang <dennis.zhang@arm.com>
35880
35881 * config/aarch64/aarch64-simd-builtins.def (simd_smmla): New entry.
35882 (simd_ummla, simd_usmmla): Likewise.
35883 * config/aarch64/aarch64-simd.md (aarch64_simd_<sur>mmlav16qi): New.
35884 * config/aarch64/arm_neon.h (vmmlaq_s32, vmmlaq_u32): New.
35885 (vusmmlaq_s32): New.
35886
35887 2020-02-07 Richard Biener <rguenther@suse.de>
35888
35889 PR middle-end/93519
35890 * tree-inline.c (fold_marked_statements): Do a PRE walk,
35891 skipping unreachable regions.
35892 (optimize_inline_calls): Skip folding stmts when we didn't
35893 inline.
35894
35895 2020-02-07 H.J. Lu <hongjiu.lu@intel.com>
35896
35897 PR target/85667
35898 * config/i386/i386.c (function_arg_ms_64): Add a type argument.
35899 Don't return aggregates with only SFmode and DFmode in SSE
35900 register.
35901 (ix86_function_arg): Pass arg.type to function_arg_ms_64.
35902
35903 2020-02-07 Jakub Jelinek <jakub@redhat.com>
35904
35905 PR target/93122
35906 * config/rs6000/rs6000-logue.c
35907 (rs6000_emit_probe_stack_range_stack_clash): Always use gen_add3_insn,
35908 if it fails, move rs into end_addr and retry. Add
35909 REG_FRAME_RELATED_EXPR note whenever it returns more than one insn or
35910 the insn pattern doesn't describe well what exactly happens to
35911 dwarf2cfi.c.
35912
35913 PR target/93594
35914 * config/i386/predicates.md (avx_identity_operand): Remove.
35915 * config/i386/sse.md (*avx_vec_concat<mode>_1): Remove.
35916 (avx_<castmode><avxsizesuffix>_<castmode>,
35917 avx512f_<castmode><avxsizesuffix>_256<castmode>): Change patterns to
35918 a VEC_CONCAT of the operand and UNSPEC_CAST.
35919 (avx512f_<castmode><avxsizesuffix>_<castmode>): Change pattern to
35920 a VEC_CONCAT of VEC_CONCAT of the operand and UNSPEC_CAST with
35921 UNSPEC_CAST.
35922
35923 PR target/93611
35924 * config/i386/i386.c (ix86_lea_outperforms): Make sure to clear
35925 recog_data.insn if distance_non_agu_define changed it.
35926
35927 2020-02-06 Michael Meissner <meissner@linux.ibm.com>
35928
35929 PR target/93569
35930 * config/rs6000/rs6000.c (reg_to_non_prefixed): Before ISA 3.0
35931 we only had X-FORM (reg+reg) addressing for vectors. Also before
35932 ISA 3.0, we only had X-FORM addressing for scalars in the
35933 traditional Altivec registers.
35934
35935 2020-02-06 <zhongyunde@huawei.com>
35936 Vladimir Makarov <vmakarov@redhat.com>
35937
35938 PR rtl-optimization/93561
35939 * lra-assigns.c (spill_for): Check that tested hard regno is not out of
35940 hard register range.
35941
35942 2020-02-06 Richard Sandiford <richard.sandiford@arm.com>
35943
35944 * config/aarch64/aarch64.md (aarch64_movk<mode>): Add a type
35945 attribute.
35946
35947 2020-02-06 Segher Boessenkool <segher@kernel.crashing.org>
35948
35949 * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Handle the case
35950 where the low and the high 32 bits are equal to each other specially,
35951 with an rldimi instruction.
35952
35953 2020-02-06 Mihail Ionescu <mihail.ionescu@arm.com>
35954
35955 * config/arm/arm-cpus.in: Set profile M for armv8.1-m.main.
35956
35957 2020-02-06 Mihail Ionescu <mihail.ionescu@arm.com>
35958
35959 * config/arm/arm-tables.opt: Regenerate.
35960
35961 2020-02-06 Richard Sandiford <richard.sandiford@arm.com>
35962
35963 PR target/87763
35964 * config/aarch64/aarch64-protos.h (aarch64_movk_shift): Declare.
35965 * config/aarch64/aarch64.c (aarch64_movk_shift): New function.
35966 * config/aarch64/aarch64.md (aarch64_movk<mode>): New pattern.
35967
35968 2020-02-06 Richard Sandiford <richard.sandiford@arm.com>
35969
35970 PR rtl-optimization/87763
35971 * config/aarch64/aarch64.md (*ashiftsi_extvdi_bfiz): New pattern.
35972
35973 2020-02-06 Delia Burduv <delia.burduv@arm.com>
35974
35975 * config/aarch64/aarch64-simd-builtins.def
35976 (bfmlaq): New built-in function.
35977 (bfmlalb): New built-in function.
35978 (bfmlalt): New built-in function.
35979 (bfmlalb_lane): New built-in function.
35980 (bfmlalt_lane): New built-in function.
35981 * config/aarch64/aarch64-simd.md
35982 (aarch64_bfmmlaqv4sf): New pattern.
35983 (aarch64_bfmlal<bt>v4sf): New pattern.
35984 (aarch64_bfmlal<bt>_lane<q>v4sf): New pattern.
35985 * config/aarch64/arm_neon.h (vbfmmlaq_f32): New intrinsic.
35986 (vbfmlalbq_f32): New intrinsic.
35987 (vbfmlaltq_f32): New intrinsic.
35988 (vbfmlalbq_lane_f32): New intrinsic.
35989 (vbfmlaltq_lane_f32): New intrinsic.
35990 (vbfmlalbq_laneq_f32): New intrinsic.
35991 (vbfmlaltq_laneq_f32): New intrinsic.
35992 * config/aarch64/iterators.md (BF_MLA): New int iterator.
35993 (bt): New int attribute.
35994
35995 2020-02-06 Uroš Bizjak <ubizjak@gmail.com>
35996
35997 * config/i386/i386.md (*pushtf): Emit "#" instead of
35998 calling gcc_unreachable in insn output.
35999 (*pushxf): Ditto.
36000 (*pushdf): Ditto.
36001 (*pushsf_rex64): Ditto for alternatives other than 1.
36002 (*pushsf): Ditto for alternatives other than 1.
36003
36004 2020-02-06 Martin Liska <mliska@suse.cz>
36005
36006 PR gcov-profile/91971
36007 PR gcov-profile/93466
36008 * coverage.c (coverage_init): Revert mangling of
36009 path into filename. It can lead to huge filename length.
36010 Creation of subfolders seem more natural.
36011
36012 2020-02-06 Stam Markianos-Wright <stam.markianos-wright@arm.com>
36013
36014 PR target/93300
36015 * config/arm/arm.c (arm_block_arith_comp_libfuncs_for_mode): New.
36016 (arm_init_libfuncs): Add BFmode support to block spurious BF libfuncs.
36017 Use arm_block_arith_comp_libfuncs_for_mode for HFmode.
36018
36019 2020-02-06 Jakub Jelinek <jakub@redhat.com>
36020
36021 PR target/93594
36022 * config/i386/predicates.md (avx_identity_operand): New predicate.
36023 * config/i386/sse.md (*avx_vec_concat<mode>_1): New
36024 define_insn_and_split.
36025
36026 PR libgomp/93515
36027 * omp-low.c (use_pointer_for_field): For nested constructs, also
36028 look for map clauses on target construct.
36029 (scan_omp_1_stmt) <case GIMPLE_OMP_TARGET>: Bump temporarily
36030 taskreg_nesting_level.
36031
36032 PR libgomp/93515
36033 * gimplify.c (gimplify_scan_omp_clauses) <do_notice>: If adding
36034 shared clause, call omp_notice_variable on outer context if any.
36035
36036 2020-02-05 Jason Merrill <jason@redhat.com>
36037
36038 PR c++/92003
36039 * symtab.c (symtab_node::nonzero_address): A DECL_COMDAT decl has
36040 non-zero address even if weak and not yet defined.
36041
36042 2020-02-05 Martin Sebor <msebor@redhat.com>
36043
36044 PR tree-optimization/92765
36045 * gimple-fold.c (get_range_strlen_tree): Handle MEM_REF and PARM_DECL.
36046 * tree-ssa-strlen.c (compute_string_length): Remove.
36047 (determine_min_objsize): Remove.
36048 (get_len_or_size): Add an argument. Call get_range_strlen_dynamic.
36049 Avoid using type size as the upper bound on string length.
36050 (handle_builtin_string_cmp): Add an argument. Adjust.
36051 (strlen_check_and_optimize_call): Pass additional argument to
36052 handle_builtin_string_cmp.
36053
36054 2020-02-05 Uroš Bizjak <ubizjak@gmail.com>
36055
36056 * config/i386/i386.md (*pushdi2_rex64 peephole2): Remove.
36057 (*pushdi2_rex64 peephole2): Unconditionally split after
36058 epilogue_completed.
36059 (*ashl<mode>3_doubleword): Ditto.
36060 (*<shift_insn><mode>3_doubleword): Ditto.
36061
36062 2020-02-05 Michael Meissner <meissner@linux.ibm.com>
36063
36064 PR target/93568
36065 * config/rs6000/rs6000.c (get_vector_offset): Fix
36066
36067 2020-02-05 Andrew Stubbs <ams@codesourcery.com>
36068
36069 * config/gcn/t-gcn-hsa (MULTILIB_OPTIONS): Use / not space.
36070
36071 2020-02-05 David Malcolm <dmalcolm@redhat.com>
36072
36073 * doc/analyzer.texi
36074 (Special Functions for Debugging the Analyzer): Update description
36075 of __analyzer_dump_exploded_nodes.
36076
36077 2020-02-05 Jakub Jelinek <jakub@redhat.com>
36078
36079 PR target/92190
36080 * config/i386/i386-features.c (ix86_add_reg_usage_to_vzeroupper): Only
36081 include sets and not clobbers in the vzeroupper pattern.
36082 * config/i386/sse.md (*avx_vzeroupper): Require in insn condition that
36083 the parallel has 17 (64-bit) or 9 (32-bit) elts.
36084 (*avx_vzeroupper_1): New define_insn_and_split.
36085
36086 PR target/92190
36087 * recog.c (pass_split_after_reload::gate): For STACK_REGS targets,
36088 don't run when !optimize.
36089 (pass_split_before_regstack::gate): For STACK_REGS targets, run even
36090 when !optimize.
36091
36092 2020-02-05 Richard Biener <rguenther@suse.de>
36093
36094 PR middle-end/90648
36095 * genmatch.c (dt_node::gen_kids_1): Emit number of argument
36096 checks before matching calls.
36097
36098 2020-02-05 Jakub Jelinek <jakub@redhat.com>
36099
36100 * tree-ssa-alias.c (aliasing_matching_component_refs_p): Fix up
36101 function comment typo.
36102
36103 PR middle-end/93555
36104 * omp-simd-clone.c (expand_simd_clones): If simd_clone_mangle or
36105 simd_clone_create failed when i == 0, adjust clone->nargs by
36106 clone->inbranch.
36107
36108 2020-02-05 Martin Liska <mliska@suse.cz>
36109
36110 PR c++/92717
36111 * doc/invoke.texi: Document that one should
36112 not combine ASLR and -fpch.
36113
36114 2020-02-04 Richard Biener <rguenther@suse.de>
36115
36116 PR tree-optimization/93538
36117 * match.pd (addr EQ/NE ptr): Amend to handle &ptr->x EQ/NE ptr.
36118
36119 2020-02-04 Richard Biener <rguenther@suse.de>
36120
36121 PR tree-optimization/91123
36122 * tree-ssa-sccvn.c (vn_walk_cb_data::finish): New method.
36123 (vn_walk_cb_data::last_vuse): New member.
36124 (vn_walk_cb_data::saved_operands): Likewsie.
36125 (vn_walk_cb_data::~vn_walk_cb_data): Release saved_operands.
36126 (vn_walk_cb_data::push_partial_def): Use finish.
36127 (vn_reference_lookup_2): Update last_vuse and use finish if
36128 we've saved operands.
36129 (vn_reference_lookup_3): Use finish and update calls to
36130 push_partial_defs everywhere. When translating through
36131 memcpy or aggregate copies save off operands and alias-set.
36132 (eliminate_dom_walker::eliminate_stmt): Restore VN_WALKREWRITE
36133 operation for redundant store removal.
36134
36135 2020-02-04 Richard Biener <rguenther@suse.de>
36136
36137 PR tree-optimization/92819
36138 * tree-ssa-forwprop.c (simplify_vector_constructor): Avoid
36139 generating more stmts than before.
36140
36141 2020-02-04 Martin Liska <mliska@suse.cz>
36142
36143 * config/arm/arm.c (arm_gen_far_branch): Move the function
36144 outside of selftests.
36145
36146 2020-02-03 Michael Meissner <meissner@linux.ibm.com>
36147
36148 * config/rs6000/rs6000.c (adjust_vec_address_pcrel): New helper
36149 function to adjust PC-relative vector addresses.
36150 (rs6000_adjust_vec_address): Call adjust_vec_address_pcrel to
36151 handle vectors with PC-relative addresses.
36152
36153 2020-02-03 Michael Meissner <meissner@linux.ibm.com>
36154
36155 * config/rs6000/rs6000.c (reg_to_non_prefixed): Add forward
36156 reference.
36157 (hard_reg_and_mode_to_addr_mask): Delete.
36158 (rs6000_adjust_vec_address): If the original vector address
36159 was REG+REG or REG+OFFSET and the element is not zero, do the add
36160 of the elements in the original address before adding the offset
36161 for the vector element. Use address_to_insn_form to validate the
36162 address using the register being loaded, rather than guessing
36163 whether the address is a DS-FORM or DQ-FORM address.
36164
36165 2020-02-03 Michael Meissner <meissner@linux.ibm.com>
36166
36167 * config/rs6000/rs6000.c (get_vector_offset): New helper function
36168 to calculate the offset in memory from the start of a vector of a
36169 particular element. Add code to keep the element number in
36170 bounds if the element number is variable.
36171 (rs6000_adjust_vec_address): Move calculation of offset of the
36172 vector element to get_vector_offset.
36173 (rs6000_split_vec_extract_var): Do not do the initial AND of
36174 element here, move the code to get_vector_offset.
36175
36176 2020-02-03 Michael Meissner <meissner@linux.ibm.com>
36177
36178 * config/rs6000/rs6000.c (rs6000_adjust_vec_address): Add some
36179 gcc_asserts.
36180
36181 2020-02-03 Segher Boessenkool <segher@kernel.crashing.org>
36182
36183 * config/rs6000/constraints.md: Improve documentation.
36184
36185 2020-02-03 Richard Earnshaw <rearnsha@arm.com>
36186
36187 PR target/93548
36188 * config/arm/t-arm: ($(srcdir)/config/arm/arm-tune.md)
36189 ($(srcdir)/config/arm/arm-tables.opt): Use move-if-change.
36190
36191 2020-02-03 Andrew Stubbs <ams@codesourcery.com>
36192
36193 * config.gcc: Remove "carrizo" support.
36194 * config/gcn/gcn-opts.h (processor_type): Likewise.
36195 * config/gcn/gcn.c (gcn_omp_device_kind_arch_isa): Likewise.
36196 * config/gcn/gcn.opt (gpu_type): Likewise.
36197 * config/gcn/t-omp-device: Likewise.
36198
36199 2020-02-03 Stam Markianos-Wright <stam.markianos-wright@arm.com>
36200
36201 PR target/91816
36202 * config/arm/arm-protos.h: New function arm_gen_far_branch prototype.
36203 * config/arm/arm.c (arm_gen_far_branch): New function
36204 arm_gen_far_branch.
36205 * config/arm/arm.md: Update b<cond> for Thumb2 range checks.
36206
36207 2020-02-03 Julian Brown <julian@codesourcery.com>
36208 Tobias Burnus <tobias@codesourcery.com>
36209
36210 * doc/invoke.texi: Update mention of OpenACC version to 2.6.
36211
36212 2020-02-03 Jakub Jelinek <jakub@redhat.com>
36213
36214 PR target/93533
36215 * config/s390/s390.md (popcounthi2_z196): Fix up expander to emit
36216 valid RTL to sum up the lowest and second lowest bytes of the popcnt
36217 result.
36218
36219 2020-02-02 Vladimir Makarov <vmakarov@redhat.com>
36220
36221 PR rtl-optimization/91333
36222 * ira-color.c (struct allocno_color_data): Add member
36223 hard_reg_prefs.
36224 (init_allocno_threads): Set the member up.
36225 (bucket_allocno_compare_func): Add compare hard reg
36226 prefs.
36227
36228 2020-01-31 Sandra Loosemore <sandra@codesourcery.com>
36229
36230 nios2: Support for GOT-relative DW_EH_PE_datarel encoding.
36231
36232 * configure.ac [nios2-*-*]: Check HAVE_AS_NIOS2_GOTOFF_RELOCATION.
36233 * config.in: Regenerated.
36234 * configure: Regenerated.
36235 * config/nios2/nios2.h (ASM_PREFERRED_EH_DATA_FORMAT): Fix handling
36236 for PIC when HAVE_AS_NIOS2_GOTOFF_RELOCATION.
36237 (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): New.
36238
36239 2020-02-01 Andrew Burgess <andrew.burgess@embecosm.com>
36240
36241 * configure: Regenerate.
36242
36243 2020-01-31 Vladimir Makarov <vmakarov@redhat.com>
36244
36245 PR rtl-optimization/91333
36246 * ira-color.c (bucket_allocno_compare_func): Move conflict hard
36247 reg preferences comparison up.
36248
36249 2020-01-31 Richard Sandiford <richard.sandiford@arm.com>
36250
36251 * config/aarch64/aarch64.h (TARGET_SVE_BF16): New macro.
36252 * config/aarch64/aarch64-sve-builtins-sve2.h (svcvtnt): Move to
36253 aarch64-sve-builtins-base.h.
36254 * config/aarch64/aarch64-sve-builtins-sve2.cc (svcvtnt): Move to
36255 aarch64-sve-builtins-base.cc.
36256 * config/aarch64/aarch64-sve-builtins-base.h (svbfdot, svbfdot_lane)
36257 (svbfmlalb, svbfmlalb_lane, svbfmlalt, svbfmlalt_lane, svbfmmla)
36258 (svcvtnt): Declare.
36259 * config/aarch64/aarch64-sve-builtins-base.cc (svbfdot, svbfdot_lane)
36260 (svbfmlalb, svbfmlalb_lane, svbfmlalt, svbfmlalt_lane, svbfmmla)
36261 (svcvtnt): New functions.
36262 * config/aarch64/aarch64-sve-builtins-base.def (svbfdot, svbfdot_lane)
36263 (svbfmlalb, svbfmlalb_lane, svbfmlalt, svbfmlalt_lane, svbfmmla)
36264 (svcvtnt): New functions.
36265 (svcvt): Add a form that converts f32 to bf16.
36266 * config/aarch64/aarch64-sve-builtins-shapes.h (ternary_bfloat)
36267 (ternary_bfloat_lane, ternary_bfloat_lanex2, ternary_bfloat_opt_n):
36268 Declare.
36269 * config/aarch64/aarch64-sve-builtins-shapes.cc (parse_element_type):
36270 Treat B as bfloat16_t.
36271 (ternary_bfloat_lane_base): New class.
36272 (ternary_bfloat_def): Likewise.
36273 (ternary_bfloat): New shape.
36274 (ternary_bfloat_lane_def): New class.
36275 (ternary_bfloat_lane): New shape.
36276 (ternary_bfloat_lanex2_def): New class.
36277 (ternary_bfloat_lanex2): New shape.
36278 (ternary_bfloat_opt_n_def): New class.
36279 (ternary_bfloat_opt_n): New shape.
36280 * config/aarch64/aarch64-sve-builtins.cc (TYPES_cvt_bfloat): New macro.
36281 * config/aarch64/aarch64-sve.md (@aarch64_sve_<sve_fp_op>vnx4sf)
36282 (@aarch64_sve_<sve_fp_op>_lanevnx4sf): New patterns.
36283 (@aarch64_sve_<optab>_trunc<VNx4SF_ONLY:mode><VNx8BF_ONLY:mode>)
36284 (@cond_<optab>_trunc<VNx4SF_ONLY:mode><VNx8BF_ONLY:mode>): Likewise.
36285 (*cond_<optab>_trunc<VNx4SF_ONLY:mode><VNx8BF_ONLY:mode>): Likewise.
36286 (@aarch64_sve_cvtnt<VNx8BF_ONLY:mode>): Likewise.
36287 * config/aarch64/aarch64-sve2.md (@aarch64_sve2_cvtnt<mode>): Key
36288 the pattern off the narrow mode instead of the wider one.
36289 * config/aarch64/iterators.md (VNx8BF_ONLY): New mode iterator.
36290 (UNSPEC_BFMLALB, UNSPEC_BFMLALT, UNSPEC_BFMMLA): New unspecs.
36291 (sve_fp_op): Handle them.
36292 (SVE_BFLOAT_TERNARY_LONG): New int itertor.
36293 (SVE_BFLOAT_TERNARY_LONG_LANE): Likewise.
36294
36295 2020-01-31 Richard Sandiford <richard.sandiford@arm.com>
36296
36297 * config/aarch64/arm_sve.h: Include arm_bf16.h.
36298 * config/aarch64/aarch64-modes.def (BF): Move definition before
36299 VECTOR_MODES. Remove separate VECTOR_MODES for V4BF and V8BF.
36300 (SVE_MODES): Handle BF modes.
36301 * config/aarch64/aarch64.c (aarch64_classify_vector_mode): Handle
36302 BF modes.
36303 (aarch64_full_sve_mode): Likewise.
36304 * config/aarch64/iterators.md (SVE_STRUCT): Add VNx16BF, VNx24BF
36305 and VNx32BF.
36306 (SVE_FULL, SVE_FULL_HSD, SVE_ALL): Add VNx8BF.
36307 (Vetype, Vesize, Vctype, VEL, Vel, VEL_INT, V128, v128, vwcore)
36308 (V_INT_EQUIV, v_int_equiv, V_FP_EQUIV, v_fp_equiv, vector_count)
36309 (insn_length, VSINGLE, vsingle, VPRED, vpred, VDOUBLE): Handle the
36310 new SVE BF modes.
36311 * config/aarch64/aarch64-sve-builtins.h (TYPE_bfloat): New
36312 type_class_index.
36313 * config/aarch64/aarch64-sve-builtins.cc (TYPES_all_arith): New macro.
36314 (TYPES_all_data): Add bf16.
36315 (TYPES_reinterpret1, TYPES_reinterpret): Likewise.
36316 (register_tuple_type): Increase buffer size.
36317 * config/aarch64/aarch64-sve-builtins.def (svbfloat16_t): New type.
36318 (bf16): New type suffix.
36319 * config/aarch64/aarch64-sve-builtins-base.def (svabd, svadd, svaddv)
36320 (svcmpeq, svcmpge, svcmpgt, svcmple, svcmplt, svcmpne, svmad, svmax)
36321 (svmaxv, svmin, svminv, svmla, svmls, svmsb, svmul, svsub, svsubr):
36322 Change type from all_data to all_arith.
36323 * config/aarch64/aarch64-sve-builtins-sve2.def (svaddp, svmaxp)
36324 (svminp): Likewise.
36325
36326 2020-01-31 Dennis Zhang <dennis.zhang@arm.com>
36327 Matthew Malcomson <matthew.malcomson@arm.com>
36328 Richard Sandiford <richard.sandiford@arm.com>
36329
36330 * doc/invoke.texi (f32mm): Document new AArch64 -march= extension.
36331 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
36332 __ARM_FEATURE_SVE_MATMUL_INT8, __ARM_FEATURE_SVE_MATMUL_FP32 and
36333 __ARM_FEATURE_SVE_MATMUL_FP64 as appropriate. Don't define
36334 __ARM_FEATURE_MATMUL_FP64.
36335 * config/aarch64/aarch64-option-extensions.def (fp, simd, fp16)
36336 (sve): Add AARCH64_FL_F32MM to the list of extensions that should
36337 be disabled at the same time.
36338 (f32mm): New extension.
36339 * config/aarch64/aarch64.h (AARCH64_FL_F32MM): New macro.
36340 (AARCH64_FL_F64MM): Bump to the next bit up.
36341 (AARCH64_ISA_F32MM, TARGET_SVE_I8MM, TARGET_F32MM, TARGET_SVE_F32MM)
36342 (TARGET_SVE_F64MM): New macros.
36343 * config/aarch64/iterators.md (SVE_MATMULF): New mode iterator.
36344 (UNSPEC_FMMLA, UNSPEC_SMATMUL, UNSPEC_UMATMUL, UNSPEC_USMATMUL)
36345 (UNSPEC_TRN1Q, UNSPEC_TRN2Q, UNSPEC_UZP1Q, UNSPEC_UZP2Q, UNSPEC_ZIP1Q)
36346 (UNSPEC_ZIP2Q): New unspeccs.
36347 (DOTPROD_US_ONLY, PERMUTEQ, MATMUL, FMMLA): New int iterators.
36348 (optab, sur, perm_insn): Handle the new unspecs.
36349 (sve_fp_op): Handle UNSPEC_FMMLA. Resort.
36350 * config/aarch64/aarch64-sve.md (@aarch64_sve_ld1ro<mode>): Use
36351 TARGET_SVE_F64MM instead of separate tests.
36352 (@aarch64_<DOTPROD_US_ONLY:sur>dot_prod<vsi2qi>): New pattern.
36353 (@aarch64_<DOTPROD_US_ONLY:sur>dot_prod_lane<vsi2qi>): Likewise.
36354 (@aarch64_sve_add_<MATMUL:optab><vsi2qi>): Likewise.
36355 (@aarch64_sve_<FMMLA:sve_fp_op><mode>): Likewise.
36356 (@aarch64_sve_<PERMUTEQ:optab><mode>): Likewise.
36357 * config/aarch64/aarch64-sve-builtins.cc (TYPES_s_float): New macro.
36358 (TYPES_s_float_hsd_integer, TYPES_s_float_sd_integer): Use it.
36359 (TYPES_s_signed): New macro.
36360 (TYPES_s_integer): Use it.
36361 (TYPES_d_float): New macro.
36362 (TYPES_d_data): Use it.
36363 * config/aarch64/aarch64-sve-builtins-shapes.h (mmla): Declare.
36364 (ternary_intq_uintq_lane, ternary_intq_uintq_opt_n, ternary_uintq_intq)
36365 (ternary_uintq_intq_lane, ternary_uintq_intq_opt_n): Likewise.
36366 * config/aarch64/aarch64-sve-builtins-shapes.cc (mmla_def): New class.
36367 (svmmla): New shape.
36368 (ternary_resize2_opt_n_base): Add TYPE_CLASS2 and TYPE_CLASS3
36369 template parameters.
36370 (ternary_resize2_lane_base): Likewise.
36371 (ternary_resize2_base): New class.
36372 (ternary_qq_lane_base): Likewise.
36373 (ternary_intq_uintq_lane_def): Likewise.
36374 (ternary_intq_uintq_lane): New shape.
36375 (ternary_intq_uintq_opt_n_def): New class
36376 (ternary_intq_uintq_opt_n): New shape.
36377 (ternary_qq_lane_def): Inherit from ternary_qq_lane_base.
36378 (ternary_uintq_intq_def): New class.
36379 (ternary_uintq_intq): New shape.
36380 (ternary_uintq_intq_lane_def): New class.
36381 (ternary_uintq_intq_lane): New shape.
36382 (ternary_uintq_intq_opt_n_def): New class.
36383 (ternary_uintq_intq_opt_n): New shape.
36384 * config/aarch64/aarch64-sve-builtins-base.h (svmmla, svsudot)
36385 (svsudot_lane, svtrn1q, svtrn2q, svusdot, svusdot_lane, svusmmla)
36386 (svuzp1q, svuzp2q, svzip1q, svzip2q): Declare.
36387 * config/aarch64/aarch64-sve-builtins-base.cc (svdot_lane_impl):
36388 Generalize to...
36389 (svdotprod_lane_impl): ...this new class.
36390 (svmmla_impl, svusdot_impl): New classes.
36391 (svdot_lane): Update to use svdotprod_lane_impl.
36392 (svmmla, svsudot, svsudot_lane, svtrn1q, svtrn2q, svusdot)
36393 (svusdot_lane, svusmmla, svuzp1q, svuzp2q, svzip1q, svzip2q): New
36394 functions.
36395 * config/aarch64/aarch64-sve-builtins-base.def (svmmla): New base
36396 function, with no types defined.
36397 (svmmla, svusmmla, svsudot, svsudot_lane, svusdot, svusdot_lane): New
36398 AARCH64_FL_I8MM functions.
36399 (svmmla): New AARCH64_FL_F32MM function.
36400 (svld1ro): Depend only on AARCH64_FL_F64MM, not on AARCH64_FL_V8_6.
36401 (svmmla, svtrn1q, svtrn2q, svuz1q, svuz2q, svzip1q, svzip2q): New
36402 AARCH64_FL_F64MM function.
36403 (REQUIRED_EXTENSIONS):
36404
36405 2020-01-31 Andrew Stubbs <ams@codesourcery.com>
36406
36407 * config/gcn/gcn-valu.md (addv64di3_exec): Allow one '0' in each
36408 alternative only.
36409
36410 2020-01-31 Uroš Bizjak <ubizjak@gmail.com>
36411
36412 * config/i386/i386.md (*movoi_internal_avx): Do not check for
36413 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL. Remove MODE_V8SF handling.
36414 (*movti_internal): Do not check for
36415 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL.
36416 (*movtf_internal): Move check for TARGET_SSE2 and size optimization
36417 just after check for TARGET_AVX.
36418 (*movdf_internal): Ditto.
36419 * config/i386/mmx.md (*mov<mode>_internal): Do not check for
36420 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL.
36421 * config/i386/sse.md (mov<mode>_internal): Only check
36422 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL with V2DFmode. Move check
36423 for TARGET_SSE2 and size optimization just after check for TARGET_AVX.
36424 (<sse>_andnot<mode>3<mask_name>): Move check for
36425 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL after check for TARGET_AVX.
36426 (<code><mode>3<mask_name>): Ditto.
36427 (*andnot<mode>3): Ditto.
36428 (*andnottf3): Ditto.
36429 (*<code><mode>3): Ditto.
36430 (*<code>tf3): Ditto.
36431 (*andnot<VI:mode>3): Remove
36432 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL handling.
36433 (<mask_codefor><code><VI48_AVX_AVX512F:mode>3<mask_name>): Ditto.
36434 (*<code><VI12_AVX_AVX512F:mode>3): Ditto.
36435 (sse4_1_blendv<ssemodesuffix>): Ditto.
36436 * config/i386/x86-tune.def (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL):
36437 Explain that tune applies to 128bit instructions only.
36438
36439 2020-01-31 Kwok Cheung Yeung <kcy@codesourcery.com>
36440
36441 * config/gcn/mkoffload.c (process_asm): Add sgpr_count and vgpr_count
36442 to definition of hsa_kernel_description. Parse assembly to find SGPR
36443 and VGPR count of kernel and store in hsa_kernel_description.
36444
36445 2020-01-31 Tamar Christina <tamar.christina@arm.com>
36446
36447 PR rtl-optimization/91838
36448 * simplify-rtx.c (simplify_binary_operation_1): Update LSHIFTRT case
36449 to truncate if allowed or reject combination.
36450
36451 2020-01-31 Andrew Stubbs <ams@codesourcery.com>
36452
36453 * tree-ssa-loop-ivopts.c (get_iv): Use sizetype for zero-step.
36454 (find_inv_vars_cb): Likewise.
36455
36456 2020-01-31 David Malcolm <dmalcolm@redhat.com>
36457
36458 * calls.c (special_function_p): Split out the check for DECL_NAME
36459 being non-NULL and fndecl being extern at file scope into a
36460 new maybe_special_function_p and call it. Drop check for fndecl
36461 being non-NULL that was after a usage of DECL_NAME (fndecl).
36462 * tree.h (maybe_special_function_p): New inline function.
36463
36464 2020-01-30 Andrew Stubbs <ams@codesourcery.com>
36465
36466 * config/gcn/gcn-valu.md (gather<mode>_exec): Move contents ...
36467 (mask_gather_load<mode>): ... here, and zero-initialize the
36468 destination.
36469 (maskload<mode>di): Zero-initialize the destination.
36470 * config/gcn/gcn.c:
36471
36472 2020-01-30 David Malcolm <dmalcolm@redhat.com>
36473
36474 PR analyzer/93356
36475 * doc/analyzer.texi (Limitations): Note that constraints on
36476 floating-point values are currently ignored.
36477
36478 2020-01-30 Jakub Jelinek <jakub@redhat.com>
36479
36480 PR lto/93384
36481 * symtab.c (symtab_node::noninterposable_alias): If localalias
36482 already exists, but is not usable, append numbers after it until
36483 a unique name is found. Formatting fix.
36484
36485 PR middle-end/93505
36486 * combine.c (simplify_comparison) <case ROTATE>: Punt on out of range
36487 rotate counts.
36488
36489 2020-01-30 Andrew Stubbs <ams@codesourcery.com>
36490
36491 * config/gcn/gcn.c (print_operand): Handle LTGT.
36492 * config/gcn/predicates.md (gcn_fp_compare_operator): Allow ltgt.
36493
36494 2020-01-30 Richard Biener <rguenther@suse.de>
36495
36496 * tree-pretty-print.c (dump_generic_node): Wrap VECTOR_CST
36497 and CONSTRUCTOR in _Literal (type) with TDF_GIMPLE.
36498
36499 2020-01-30 John David Anglin <danglin@gcc.gnu.org>
36500
36501 * config/pa/pa.c (pa_elf_select_rtx_section): Place function pointers
36502 without a DECL in .data.rel.ro.local.
36503
36504 2020-01-30 Jakub Jelinek <jakub@redhat.com>
36505
36506 PR target/93494
36507 * config/arm/arm.md (uaddvdi4): Actually emit what gen_uaddvsi4
36508 returned.
36509
36510 PR target/91824
36511 * config/i386/sse.md
36512 (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_zext): Renamed to ...
36513 (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_<u>ext): ... this. Use
36514 any_extend code iterator instead of always zero_extend.
36515 (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_zext_lt): Renamed to ...
36516 (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_<u>ext_lt): ... this.
36517 Use any_extend code iterator instead of always zero_extend.
36518 (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_zext_shift): Renamed to ...
36519 (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_<u>ext_shift): ... this.
36520 Use any_extend code iterator instead of always zero_extend.
36521 (*sse2_pmovmskb_ext): New define_insn.
36522 (*sse2_pmovmskb_ext_lt): New define_insn_and_split.
36523
36524 PR target/91824
36525 * config/i386/i386.md (*popcountsi2_zext): New define_insn_and_split.
36526 (*popcountsi2_zext_falsedep): New define_insn.
36527
36528 2020-01-30 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
36529
36530 * config.in: Regenerated.
36531 * configure: Regenerated.
36532
36533 2020-01-29 Tobias Burnus <tobias@codesourcery.com>
36534
36535 PR bootstrap/93409
36536 * config/gcn/gcn-hsa.h (ASM_SPEC): Add -mattr=-code-object-v3 as
36537 LLVM's assembler changed the default in version 9.
36538
36539 2020-01-24 Jeff Law <law@redhat.com>
36540
36541 PR tree-optimization/89689
36542 * builtins.def (BUILT_IN_OBJECT_SIZE): Make it const rather than pure.
36543
36544 2020-01-29 Richard Sandiford <richard.sandiford@arm.com>
36545
36546 Revert:
36547
36548 2020-01-28 Richard Sandiford <richard.sandiford@arm.com>
36549
36550 PR rtl-optimization/87763
36551 * simplify-rtx.c (simplify_truncation): Extend sign/zero_extract
36552 simplification to handle subregs as well as bare regs.
36553 * config/i386/i386.md (*testqi_ext_3): Match QI extracts too.
36554
36555 2020-01-29 Joel Hutton <Joel.Hutton@arm.com>
36556
36557 PR target/93221
36558 * ira.c (ira): Revert use of simplified LRA algorithm.
36559
36560 2020-01-29 Martin Jambor <mjambor@suse.cz>
36561
36562 PR tree-optimization/92706
36563 * tree-sra.c (struct access): Fields first_link, last_link,
36564 next_queued and grp_queued renamed to first_rhs_link, last_rhs_link,
36565 next_rhs_queued and grp_rhs_queued respectively, new fields
36566 first_lhs_link, last_lhs_link, next_lhs_queued and grp_lhs_queued.
36567 (struct assign_link): Field next renamed to next_rhs, new field
36568 next_lhs. Updated comment.
36569 (work_queue_head): Renamed to rhs_work_queue_head.
36570 (lhs_work_queue_head): New variable.
36571 (add_link_to_lhs): New function.
36572 (relink_to_new_repr): Also relink LHS lists.
36573 (add_access_to_work_queue): Renamed to add_access_to_rhs_work_queue.
36574 (add_access_to_lhs_work_queue): New function.
36575 (pop_access_from_work_queue): Renamed to
36576 pop_access_from_rhs_work_queue.
36577 (pop_access_from_lhs_work_queue): New function.
36578 (build_accesses_from_assign): Also add links to LHS lists and to LHS
36579 work_queue.
36580 (child_would_conflict_in_lacc): Renamed to
36581 child_would_conflict_in_acc. Adjusted parameter names.
36582 (create_artificial_child_access): New parameter set_grp_read, use it.
36583 (subtree_mark_written_and_enqueue): Renamed to
36584 subtree_mark_written_and_rhs_enqueue.
36585 (propagate_subaccesses_across_link): Renamed to
36586 propagate_subaccesses_from_rhs.
36587 (propagate_subaccesses_from_lhs): New function.
36588 (propagate_all_subaccesses): Also propagate subaccesses from LHSs to
36589 RHSs.
36590
36591 2020-01-29 Martin Jambor <mjambor@suse.cz>
36592
36593 PR tree-optimization/92706
36594 * tree-sra.c (struct access): Adjust comment of
36595 grp_total_scalarization.
36596 (find_access_in_subtree): Look for single children spanning an entire
36597 access.
36598 (scalarizable_type_p): Allow register accesses, adjust callers.
36599 (completely_scalarize): Remove function.
36600 (scalarize_elem): Likewise.
36601 (create_total_scalarization_access): Likewise.
36602 (sort_and_splice_var_accesses): Do not track total scalarization
36603 flags.
36604 (analyze_access_subtree): New parameter totally, adjust to new meaning
36605 of grp_total_scalarization.
36606 (analyze_access_trees): Pass new parameter to analyze_access_subtree.
36607 (can_totally_scalarize_forest_p): New function.
36608 (create_total_scalarization_access): Likewise.
36609 (create_total_access_and_reshape): Likewise.
36610 (total_should_skip_creating_access): Likewise.
36611 (totally_scalarize_subtree): Likewise.
36612 (analyze_all_variable_accesses): Perform total scalarization after
36613 subaccess propagation using the new functions above.
36614 (initialize_constant_pool_replacements): Output initializers by
36615 traversing the access tree.
36616
36617 2020-01-29 Martin Jambor <mjambor@suse.cz>
36618
36619 * tree-sra.c (verify_sra_access_forest): New function.
36620 (verify_all_sra_access_forests): Likewise.
36621 (create_artificial_child_access): Set parent.
36622 (analyze_all_variable_accesses): Call the verifier.
36623
36624 2020-01-28 Jan Hubicka <hubicka@ucw.cz>
36625
36626 * cgraph.c (cgraph_edge::resolve_speculation): Only lookup direct edge
36627 if called on indirect edge.
36628 (cgraph_edge::redirect_call_stmt_to_callee): Lookup indirect edge of
36629 speculative call if needed.
36630
36631 2020-01-29 Richard Biener <rguenther@suse.de>
36632
36633 PR tree-optimization/93428
36634 * tree-vect-slp.c (vect_build_slp_tree_2): Compute the load
36635 permutation when the load node is created.
36636 (vect_analyze_slp_instance): Re-use it here.
36637
36638 2020-01-28 Jan Hubicka <hubicka@ucw.cz>
36639
36640 * ipa-prop.c (update_indirect_edges_after_inlining): Fix warning.
36641
36642 2020-01-28 Vladimir Makarov <vmakarov@redhat.com>
36643
36644 PR rtl-optimization/93272
36645 * ira-lives.c (process_out_of_region_eh_regs): New function.
36646 (process_bb_node_lives): Call it.
36647
36648 2020-01-28 Jan Hubicka <hubicka@ucw.cz>
36649
36650 * coverage.c (read_counts_file): Make error message lowercase.
36651
36652 2020-01-28 Jan Hubicka <hubicka@ucw.cz>
36653
36654 * profile-count.c (profile_quality_display_names): Fix ordering.
36655
36656 2020-01-28 Jan Hubicka <hubicka@ucw.cz>
36657
36658 PR lto/93318
36659 * cgraph.c (cgraph_add_edge_to_call_site_hash): Update call site
36660 hash only when edge is first within the sequence.
36661 (cgraph_edge::set_call_stmt): Update handling of speculative calls.
36662 (symbol_table::create_edge): Do not set target_prob.
36663 (cgraph_edge::remove_caller): Watch for speculative calls when updating
36664 the call site hash.
36665 (cgraph_edge::make_speculative): Drop target_prob parameter.
36666 (cgraph_edge::speculative_call_info): Remove.
36667 (cgraph_edge::first_speculative_call_target): New member function.
36668 (update_call_stmt_hash_for_removing_direct_edge): New function.
36669 (cgraph_edge::resolve_speculation): Rewrite to new API.
36670 (cgraph_edge::speculative_call_for_target): New member function.
36671 (cgraph_edge::make_direct): Rewrite to new API; fix handling of
36672 multiple speculation targets.
36673 (cgraph_edge::redirect_call_stmt_to_callee): Likewise; fix updating
36674 of profile.
36675 (verify_speculative_call): Verify that targets form an interval.
36676 * cgraph.h (cgraph_edge::speculative_call_info): Remove.
36677 (cgraph_edge::first_speculative_call_target): New member function.
36678 (cgraph_edge::next_speculative_call_target): New member function.
36679 (cgraph_edge::speculative_call_target_ref): New member function.
36680 (cgraph_edge;:speculative_call_indirect_edge): New member funtion.
36681 (cgraph_edge): Remove target_prob.
36682 * cgraphclones.c (cgraph_node::set_call_stmt_including_clones):
36683 Fix handling of speculative calls.
36684 * ipa-devirt.c (ipa_devirt): Fix handling of speculative cals.
36685 * ipa-fnsummary.c (analyze_function_body): Likewise.
36686 * ipa-inline.c (speculation_useful_p): Use new speculative call API.
36687 * ipa-profile.c (dump_histogram): Fix formating.
36688 (ipa_profile_generate_summary): Watch for overflows.
36689 (ipa_profile): Do not require probablity to be 1/2; update to new API.
36690 * ipa-prop.c (ipa_make_edge_direct_to_target): Update to new API.
36691 (update_indirect_edges_after_inlining): Update to new API.
36692 * ipa-utils.c (ipa_merge_profiles): Rewrite merging of speculative call
36693 profiles.
36694 * profile-count.h: (profile_probability::adjusted): New.
36695 * tree-inline.c (copy_bb): Update to new speculative call API; fix
36696 updating of profile.
36697 * value-prof.c (gimple_ic_transform): Rename to ...
36698 (dump_ic_profile): ... this one; update dumping.
36699 (stream_in_histogram_value): Fix formating.
36700 (gimple_value_profile_transformations): Update.
36701
36702 2020-01-28 H.J. Lu <hongjiu.lu@intel.com>
36703
36704 PR target/91461
36705 * config/i386/i386.md (*movoi_internal_avx): Remove
36706 TARGET_SSE_TYPELESS_STORES check.
36707 (*movti_internal): Prefer TARGET_AVX over
36708 TARGET_SSE_TYPELESS_STORES.
36709 (*movtf_internal): Likewise.
36710 * config/i386/sse.md (mov<mode>_internal): Prefer TARGET_AVX over
36711 TARGET_SSE_TYPELESS_STORES. Remove "<MODE_SIZE> == 16" check
36712 from TARGET_SSE_TYPELESS_STORES.
36713
36714 2020-01-28 David Malcolm <dmalcolm@redhat.com>
36715
36716 * diagnostic-core.h (warning_at): Rename overload to...
36717 (warning_meta): ...this.
36718 (emit_diagnostic_valist): Delete decl of overload taking
36719 diagnostic_metadata.
36720 * diagnostic.c (emit_diagnostic_valist): Likewise for defn.
36721 (warning_at): Rename overload taking diagnostic_metadata to...
36722 (warning_meta): ...this.
36723
36724 2020-01-28 Richard Biener <rguenther@suse.de>
36725
36726 PR tree-optimization/93439
36727 * tree-parloops.c (create_loop_fn): Move clique bookkeeping...
36728 * tree-cfg.c (move_sese_region_to_fn): ... here.
36729 (verify_types_in_gimple_reference): Verify used cliques are
36730 tracked.
36731
36732 2020-01-28 H.J. Lu <hongjiu.lu@intel.com>
36733
36734 PR target/91399
36735 * config/i386/i386-options.c (set_ix86_tune_features): Add an
36736 argument of a pointer to struct gcc_options and pass it to
36737 parse_mtune_ctrl_str.
36738 (ix86_function_specific_restore): Pass opts to
36739 set_ix86_tune_features.
36740 (ix86_option_override_internal): Likewise.
36741 (parse_mtune_ctrl_str): Add an argument of a pointer to struct
36742 gcc_options and use it for x_ix86_tune_ctrl_string.
36743
36744 2020-01-28 Richard Sandiford <richard.sandiford@arm.com>
36745
36746 PR rtl-optimization/87763
36747 * simplify-rtx.c (simplify_truncation): Extend sign/zero_extract
36748 simplification to handle subregs as well as bare regs.
36749 * config/i386/i386.md (*testqi_ext_3): Match QI extracts too.
36750
36751 2020-01-28 Richard Sandiford <richard.sandiford@arm.com>
36752
36753 * tree-vect-loop.c (vectorizable_reduction): Fail gracefully
36754 for reduction chains that (now) include a call.
36755
36756 2020-01-28 Richard Sandiford <richard.sandiford@arm.com>
36757
36758 PR tree-optimization/92822
36759 * tree-ssa-forwprop.c (simplify_vector_constructor): When filling
36760 out the don't-care elements of a vector whose significant elements
36761 are duplicates, make the don't-care elements duplicates too.
36762
36763 2020-01-28 Richard Sandiford <richard.sandiford@arm.com>
36764
36765 PR tree-optimization/93434
36766 * tree-predcom.c (split_data_refs_to_components): Record which
36767 components have had aliasing loads removed. Prevent store-store
36768 commoning for all such components.
36769
36770 2020-01-28 Jakub Jelinek <jakub@redhat.com>
36771
36772 PR target/93418
36773 * config/i386/i386.c (ix86_fold_builtin) <do_shift>: If mask is not
36774 -1 or is_vshift is true, use new_vector with number of elts npatterns
36775 rather than new_unary_operation.
36776
36777 PR tree-optimization/93454
36778 * gimple-fold.c (fold_array_ctor_reference): Perform
36779 elt_size.to_uhwi () just once, instead of calling it in every
36780 iteration. Punt if that value is above size of the temporary
36781 buffer. Decrease third native_encode_expr argument when
36782 bufoff + elt_sz is above size of buf.
36783
36784 2020-01-27 Joseph Myers <joseph@codesourcery.com>
36785
36786 * config/mips/mips.c (mips_declare_object_name)
36787 [USE_GNU_UNIQUE_OBJECT]: Support use of gnu_unique_object.
36788
36789 2020-01-27 Martin Liska <mliska@suse.cz>
36790
36791 PR gcov-profile/93403
36792 * tree-profile.c (gimple_init_gcov_profiler): Generate
36793 both __gcov_indirect_call_profiler_v4 and
36794 __gcov_indirect_call_profiler_v4_atomic.
36795
36796 2020-01-27 Richard Sandiford <richard.sandiford@arm.com>
36797
36798 PR target/92822
36799 * config/aarch64/aarch64-simd.md (aarch64_get_half<mode>): New
36800 expander.
36801 (@aarch64_split_simd_mov<mode>): Use it.
36802 (aarch64_simd_mov_from_<mode>low): Add a GPR alternative.
36803 Leave the vec_extract patterns to handle 2-element vectors.
36804 (aarch64_simd_mov_from_<mode>high): Likewise.
36805 (vec_extract<VQMOV_NO2E:mode><Vhalf>): New expander.
36806 (vec_extractv2dfv1df): Likewise.
36807
36808 2020-01-27 Richard Sandiford <richard.sandiford@arm.com>
36809
36810 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Match
36811 jump conditions for *compare_condjump<GPI:mode>.
36812
36813 2020-01-27 David Malcolm <dmalcolm@redhat.com>
36814
36815 PR analyzer/93276
36816 * digraph.cc (test_edge::test_edge): Specify template for base
36817 class initializer.
36818
36819 2020-01-27 Claudiu Zissulescu <claziss@synopsys.com>
36820
36821 * config/arc/arc.c (arc_rtx_costs): Update mul64 cost.
36822
36823 2020-01-27 Claudiu Zissulescu <claziss@synopsys.com>
36824
36825 * config/arc/arc-protos.h (gen_mlo): Remove.
36826 (gen_mhi): Likewise.
36827 * config/arc/arc.c (AUX_MULHI): Define.
36828 (arc_must_save_reister): Special handling for r58/59.
36829 (arc_compute_frame_size): Consider mlo/mhi registers.
36830 (arc_save_callee_saves): Emit fp/sp move only when emit_move
36831 paramter is true.
36832 (arc_conditional_register_usage): Remove TARGET_BIG_ENDIAN from
36833 mlo/mhi name selection.
36834 (arc_restore_callee_saves): Don't early restore blink when ISR.
36835 (arc_expand_prologue): Add mlo/mhi saving.
36836 (arc_expand_epilogue): Add mlo/mhi restoring.
36837 (gen_mlo): Remove.
36838 (gen_mhi): Remove.
36839 * config/arc/arc.h (DBX_REGISTER_NUMBER): Correct register
36840 numbering when MUL64 option is used.
36841 (DWARF2_FRAME_REG_OUT): Define.
36842 * config/arc/arc.md (arc600_stall): New pattern.
36843 (VUNSPEC_ARC_ARC600_STALL): Define.
36844 (mulsi64): Use correct mlo/mhi registers.
36845 (mulsi_600): Clean it up.
36846 * config/arc/predicates.md (mlo_operand): Remove any dependency on
36847 TARGET_BIG_ENDIAN.
36848 (mhi_operand): Likewise.
36849
36850 2020-01-27 Claudiu Zissulescu <claziss@synopsys.com>
36851 Petro Karashchenko <petro.karashchenko@ring.com>
36852
36853 * config/arc/arc.c (arc_is_uncached_mem_p): Check struct
36854 attributes if needed.
36855 (prepare_move_operands): Generate special unspec instruction for
36856 direct access.
36857 (arc_isuncached_mem_p): Propagate uncached attribute to each
36858 structure member.
36859 * config/arc/arc.md (VUNSPEC_ARC_LDDI): Define.
36860 (VUNSPEC_ARC_STDI): Likewise.
36861 (ALLI): New mode iterator.
36862 (mALLI): New mode attribute.
36863 (lddi): New instruction pattern.
36864 (stdi): Likewise.
36865 (stdidi_split): Split instruction for architectures which are not
36866 supporting ll64 option.
36867 (lddidi_split): Likewise.
36868
36869 2020-01-27 Richard Sandiford <richard.sandiford@arm.com>
36870
36871 PR rtl-optimization/92989
36872 * lra-lives.c (process_bb_lives): Update the live-in set before
36873 processing additional clobbers.
36874
36875 2020-01-27 Richard Sandiford <richard.sandiford@arm.com>
36876
36877 PR rtl-optimization/93170
36878 * cselib.c (cselib_invalidate_regno_val): New function, split out
36879 from...
36880 (cselib_invalidate_regno): ...here.
36881 (cselib_invalidated_by_call_p): New function.
36882 (cselib_process_insn): Iterate over all the hard-register entries in
36883 REG_VALUES and invalidate any that cross call-clobbered registers.
36884
36885 2020-01-27 Richard Sandiford <richard.sandiford@arm.com>
36886
36887 * dojump.c (split_comparison): Use HONOR_NANS rather than
36888 HONOR_SNANS when splitting LTGT.
36889
36890 2020-01-27 Martin Liska <mliska@suse.cz>
36891
36892 PR driver/91220
36893 * opts.c (print_filtered_help): Exclude language-specific
36894 options from --help=common unless enabled in all FEs.
36895
36896 2020-01-27 Martin Liska <mliska@suse.cz>
36897
36898 * opts.c (print_help): Exclude params from
36899 all except --help=param.
36900
36901 2020-01-27 Martin Liska <mliska@suse.cz>
36902
36903 PR target/93274
36904 * config/i386/i386-features.c (make_resolver_func):
36905 Align the code with ppc64 target implementation.
36906 Do not generate a unique name for resolver function.
36907
36908 2020-01-27 Richard Biener <rguenther@suse.de>
36909
36910 PR tree-optimization/93397
36911 * tree-vect-slp.c (vect_analyze_slp_instance): Delay
36912 converted reduction chain SLP graph adjustment.
36913
36914 2020-01-26 Marek Polacek <polacek@redhat.com>
36915
36916 PR sanitizer/93436
36917 * sanopt.c (sanitize_rewrite_addressable_params): Avoid crash on
36918 null DECL_NAME.
36919
36920 2020-01-26 Jason Merrill <jason@redhat.com>
36921
36922 PR c++/92601
36923 * tree.c (verify_type_variant): Only verify TYPE_NEEDS_CONSTRUCTING
36924 of complete types.
36925
36926 2020-01-26 Darius Galis <darius.galis@cyberthorstudios.com>
36927
36928 * config/rx/rx.md (setmemsi): Added rx_allow_string_insns constraint
36929 (rx_setmem): Likewise.
36930
36931 2020-01-26 Jakub Jelinek <jakub@redhat.com>
36932
36933 PR target/93412
36934 * config/i386/i386.md (*addv<dwi>4_doubleword, *subv<dwi>4_doubleword):
36935 Use nonimmediate_operand instead of x86_64_hilo_general_operand and
36936 drop <di> from constraint of last operand.
36937
36938 PR target/93430
36939 * config/i386/sse.md (*avx_vperm_broadcast_<mode>): Disallow for
36940 TARGET_AVX2 and V4DFmode not in the split condition, but in the
36941 pattern condition, though allow { 0, 0, 0, 0 } broadcast always.
36942
36943 2020-01-25 Feng Xue <fxue@os.amperecomputing.com>
36944
36945 PR ipa/93166
36946 * ipa-cp.c (get_info_about_necessary_edges): Remove value
36947 check assertion.
36948
36949 2020-01-24 Jeff Law <law@redhat.com>
36950
36951 PR tree-optimization/92788
36952 * tree-ssa-threadedge.c (thread_across_edge): Check EDGE_COMPLEX
36953 not EDGE_ABNORMAL.
36954
36955 2020-01-24 Jakub Jelinek <jakub@redhat.com>
36956
36957 PR target/93395
36958 * config/i386/sse.md (*avx_vperm_broadcast_v4sf,
36959 *avx_vperm_broadcast_<mode>,
36960 <sse2_avx_avx512f>_vpermil<mode><mask_name>,
36961 *<sse2_avx_avx512f>_vpermilp<mode><mask_name>):
36962 Move before avx2_perm<mode>/avx512f_perm<mode>.
36963
36964 PR target/93376
36965 * simplify-rtx.c (simplify_const_unary_operation,
36966 simplify_const_binary_operation): Punt for mode precision above
36967 MAX_BITSIZE_MODE_ANY_INT.
36968
36969 2020-01-24 Andrew Pinski <apinski@marvell.com>
36970
36971 * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): Change
36972 alu.shift_reg to 0.
36973
36974 2020-01-24 Jeff Law <law@redhat.com>
36975
36976 PR target/13721
36977 * config/h8300/h8300.c (h8300_print_operand): Only call byte_reg
36978 for REGs. Call output_operand_lossage to get more reasonable
36979 diagnostics.
36980
36981 2020-01-24 Andrew Stubbs <ams@codesourcery.com>
36982
36983 * config/gcn/gcn-valu.md (vec_cmp<mode>di): Use
36984 gcn_fp_compare_operator.
36985 (vec_cmpu<mode>di): Use gcn_compare_operator.
36986 (vec_cmp<u>v64qidi): Use gcn_compare_operator.
36987 (vec_cmp<mode>di_exec): Use gcn_fp_compare_operator.
36988 (vec_cmpu<mode>di_exec): Use gcn_compare_operator.
36989 (vec_cmp<u>v64qidi_exec): Use gcn_compare_operator.
36990 (vec_cmp<mode>di_dup): Use gcn_fp_compare_operator.
36991 (vec_cmp<mode>di_dup_exec): Use gcn_fp_compare_operator.
36992 (vcond<VEC_ALLREG_MODE:mode><VEC_ALLREG_ALT:mode>): Use
36993 gcn_fp_compare_operator.
36994 (vcond<VEC_ALLREG_MODE:mode><VEC_ALLREG_ALT:mode>_exec): Use
36995 gcn_fp_compare_operator.
36996 (vcondu<VEC_ALLREG_MODE:mode><VEC_ALLREG_INT_MODE:mode>): Use
36997 gcn_fp_compare_operator.
36998 (vcondu<VEC_ALLREG_MODE:mode><VEC_ALLREG_INT_MODE:mode>_exec): Use
36999 gcn_fp_compare_operator.
37000
37001 2020-01-24 Maciej W. Rozycki <macro@wdc.com>
37002
37003 * doc/install.texi (Cross-Compiler-Specific Options): Document
37004 `--with-toolexeclibdir' option.
37005
37006 2020-01-24 Hans-Peter Nilsson <hp@axis.com>
37007
37008 * target.def (flags_regnum): Also mention effect on delay slot filling.
37009 * doc/tm.texi: Regenerate.
37010
37011 2020-01-23 Jeff Law <law@redhat.com>
37012
37013 PR translation/90162
37014 * config/h8300/h8300.c (h8300_option_override): Fix diagnostic text.
37015
37016 2020-01-23 Mikael Tillenius <mti-1@tillenius.com>
37017
37018 PR target/92269
37019 * config/h8300/h8300.h (FUNCTION_PROFILER): Fix emission of
37020 profiling label
37021
37022 2020-01-23 Jakub Jelinek <jakub@redhat.com>
37023
37024 PR rtl-optimization/93402
37025 * postreload.c (reload_combine_recognize_pattern): Don't try to adjust
37026 USE insns.
37027
37028 2020-01-23 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
37029
37030 * config.in: Regenerated.
37031 * config/mips/linux.h (NEED_INDICATE_EXEC_STACK): Define to 1
37032 for TARGET_LIBC_GNUSTACK.
37033 * configure: Regenerated.
37034 * configure.ac: Define TARGET_LIBC_GNUSTACK if glibc version is
37035 found to be 2.31 or greater.
37036
37037 2020-01-23 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
37038
37039 * config/mips/linux.h (NEED_INDICATE_EXEC_STACK): Define to
37040 TARGET_SOFT_FLOAT.
37041 * config/mips/mips.c (TARGET_ASM_FILE_END): Define to ...
37042 (mips_asm_file_end): New function. Delegate to
37043 file_end_indicate_exec_stack if NEED_INDICATE_EXEC_STACK is true.
37044 * config/mips/mips.h (NEED_INDICATE_EXEC_STACK): Define to 0.
37045
37046 2020-01-23 Jakub Jelinek <jakub@redhat.com>
37047
37048 PR target/93376
37049 * config/i386/i386-modes.def (POImode): New mode.
37050 (MAX_BITSIZE_MODE_ANY_INT): Change from 128 to 160.
37051 * config/i386/i386.md (DPWI): New mode attribute.
37052 (addv<mode>4, subv<mode>4): Use <DPWI> instead of <DWI>.
37053 (QWI): Rename to...
37054 (QPWI): ... this. Use POI instead of OI for TImode.
37055 (*addv<dwi>4_doubleword, *addv<dwi>4_doubleword_1,
37056 *subv<dwi>4_doubleword, *subv<dwi>4_doubleword_1): Use <QPWI>
37057 instead of <QWI>.
37058
37059 2020-01-23 Richard Sandiford <richard.sandiford@arm.com>
37060
37061 PR target/93341
37062 * config/aarch64/aarch64.md (UNSPEC_SPECULATION_TRACKER_REV): New
37063 unspec.
37064 (speculation_tracker_rev): New pattern.
37065 * config/aarch64/aarch64-speculation.cc (aarch64_do_track_speculation):
37066 Use speculation_tracker_rev to track the inverse condition.
37067
37068 2020-01-23 Richard Biener <rguenther@suse.de>
37069
37070 PR tree-optimization/93381
37071 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Take
37072 alias-set of the def as argument and record the first one.
37073 (vn_walk_cb_data::first_set): New member.
37074 (vn_reference_lookup_3): Pass the alias-set of the current def
37075 to push_partial_def. Fix alias-set used in the aggregate copy
37076 case.
37077 (vn_reference_lookup): Consistently set *last_vuse_ptr.
37078 * real.c (clear_significand_below): Fix out-of-bound access.
37079
37080 2020-01-23 Jakub Jelinek <jakub@redhat.com>
37081
37082 PR target/93346
37083 * config/i386/i386.md (*bmi2_bzhi_<mode>3_2, *bmi2_bzhi_<mode>3_3):
37084 New define_insn patterns.
37085
37086 2020-01-23 Richard Sandiford <richard.sandiford@arm.com>
37087
37088 * doc/sourcebuild.texi (check-function-bodies): Add an
37089 optional target/xfail selector.
37090
37091 2020-01-23 Richard Sandiford <richard.sandiford@arm.com>
37092
37093 PR rtl-optimization/93124
37094 * auto-inc-dec.c (merge_in_block): Don't add auto inc/decs to
37095 bare USE and CLOBBER insns.
37096
37097 2020-01-22 Andrew Pinski <apinski@marvell.com>
37098
37099 * config/arc/arc.c (output_short_suffix): Check insn for nullness.
37100
37101 2020-01-22 David Malcolm <dmalcolm@redhat.com>
37102
37103 PR analyzer/93307
37104 * gdbinit.in (break-on-saved-diagnostic): Update for move of
37105 diagnostic_manager into "ana" namespace.
37106 * selftest-run-tests.c (selftest::run_tests): Update for move of
37107 selftest::run_analyzer_selftests to
37108 ana::selftest::run_analyzer_selftests.
37109
37110 2020-01-22 Richard Sandiford <richard.sandiford@arm.com>
37111
37112 * cfgexpand.c (union_stack_vars): Update the size.
37113
37114 2020-01-22 Richard Biener <rguenther@suse.de>
37115
37116 PR tree-optimization/93381
37117 * tree-ssa-structalias.c (find_func_aliases): Assume offsetting
37118 throughout, handle all conversions the same.
37119
37120 2020-01-22 Jakub Jelinek <jakub@redhat.com>
37121
37122 PR target/93335
37123 * config/aarch64/aarch64.c (aarch64_expand_subvti): Only use
37124 gen_subdi3_compare1_imm if low_in2 satisfies aarch64_plus_immediate
37125 predicate, not whenever it is CONST_INT. Otherwise, force_reg it.
37126 Call force_reg on high_in2 unconditionally.
37127
37128 2020-01-22 Martin Liska <mliska@suse.cz>
37129
37130 PR tree-optimization/92924
37131 * profile.c (compute_value_histograms): Divide
37132 all counter values.
37133
37134 2020-01-22 Jakub Jelinek <jakub@redhat.com>
37135
37136 PR target/91298
37137 * output.h (assemble_name_resolve): Declare.
37138 * varasm.c (assemble_name_resolve): New function.
37139 (assemble_name): Use it.
37140 * config/i386/i386.h (ASM_OUTPUT_SYMBOL_REF): Define.
37141
37142 2020-01-22 Joseph Myers <joseph@codesourcery.com>
37143
37144 * doc/sourcebuild.texi (Texinfo Manuals, Front End): Refer to
37145 update_web_docs_git instead of update_web_docs_svn.
37146
37147 2020-01-21 Andrew Pinski <apinski@marvell.com>
37148
37149 PR target/9311
37150 * config/aarch64/aarch64.md (tlsgd_small_<mode>): Have operand 0
37151 as PTR mode. Have operand 1 as being modeless, it can be P mode.
37152 (*tlsgd_small_<mode>): Likewise.
37153 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately)
37154 <case SYMBOL_SMALL_TLSGD>: Call gen_tlsgd_small_* with a ptr_mode
37155 register. Convert that register back to dest using convert_mode.
37156
37157 2020-01-21 Jim Wilson <jimw@sifive.com>
37158
37159 * config/riscv/riscv-sr.c (riscv_sr_match_prologue): Use INTVAL
37160 instead of XINT.
37161
37162 2020-01-21 H.J. Lu <hongjiu.lu@intel.com>
37163 Uros Bizjak <ubizjak@gmail.com>
37164
37165 PR target/93319
37166 * config/i386/i386.c (ix86_tls_module_base): Replace Pmode
37167 with ptr_mode.
37168 (legitimize_tls_address): Do GNU2 TLS address computation in
37169 ptr_mode and zero-extend result to Pmode.
37170 * config/i386/i386.md (@tls_dynamic_gnu2_64_<mode>): Replace
37171 :P with :PTR and Pmode with ptr_mode.
37172 (*tls_dynamic_gnu2_lea_64_<mode>): Likewise.
37173 (*tls_dynamic_gnu2_call_64_<mode>): Likewise.
37174 (*tls_dynamic_gnu2_combine_64_<mode>): Likewise.
37175
37176 2020-01-21 Jakub Jelinek <jakub@redhat.com>
37177
37178 PR target/93333
37179 * config/riscv/riscv.c (riscv_rtx_costs) <case ZERO_EXTRACT>: Verify
37180 the last two operands are CONST_INT_P before using them as such.
37181
37182 2020-01-21 Richard Sandiford <richard.sandiford@arm.com>
37183
37184 * config/aarch64/aarch64-sve-builtins.def: Use get_typenode_from_name
37185 to get the integer element types.
37186
37187 2020-01-21 Richard Sandiford <richard.sandiford@arm.com>
37188
37189 * config/aarch64/aarch64-sve-builtins.h
37190 (function_expander::convert_to_pmode): Declare.
37191 * config/aarch64/aarch64-sve-builtins.cc
37192 (function_expander::convert_to_pmode): New function.
37193 (function_expander::get_contiguous_base): Use it.
37194 (function_expander::prepare_gather_address_operands): Likewise.
37195 * config/aarch64/aarch64-sve-builtins-sve2.cc
37196 (svwhilerw_svwhilewr_impl::expand): Likewise.
37197
37198 2020-01-21 Szabolcs Nagy <szabolcs.nagy@arm.com>
37199
37200 PR target/92424
37201 * config/aarch64/aarch64.c (aarch64_declare_function_name): Set
37202 cfun->machine->label_is_assembled.
37203 (aarch64_print_patchable_function_entry): New.
37204 (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY): Define.
37205 * config/aarch64/aarch64.h (struct machine_function): New field,
37206 label_is_assembled.
37207
37208 2020-01-21 David Malcolm <dmalcolm@redhat.com>
37209
37210 PR ipa/93315
37211 * ipa-profile.c (ipa_profile): Delete call_sums and set it to
37212 NULL on exit.
37213
37214 2020-01-18 Jan Hubicka <hubicka@ucw.cz>
37215
37216 PR lto/93318
37217 * cgraph.c (cgraph_edge::resolve_speculation,
37218 cgraph_edge::redirect_call_stmt_to_callee): Fix update of
37219 call_stmt_site_hash.
37220
37221 2020-01-21 Martin Liska <mliska@suse.cz>
37222
37223 * config/rs6000/rs6000.c (common_mode_defined): Remove
37224 unused variable.
37225
37226 2020-01-21 Richard Biener <rguenther@suse.de>
37227
37228 PR tree-optimization/92328
37229 * tree-ssa-sccvn.c (vn_reference_lookup_3): Preserve
37230 type when value-numbering same-sized store by inserting a
37231 VIEW_CONVERT_EXPR.
37232 (eliminate_dom_walker::eliminate_stmt): When eliminating
37233 a redundant store handle bit-reinterpretation of the same value.
37234
37235 2020-01-21 Andrew Pinski <apinski@marvel.com>
37236
37237 PR tree-opt/93321
37238 * tree-into-ssa.c (prepare_block_for_update_1): Split out
37239 from ...
37240 (prepare_block_for_update): This. Use a worklist instead of
37241 recursing.
37242
37243 2020-01-21 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
37244
37245 * config/arm/arm.c (clear_operation_p):
37246 Initialise last_regno, skip first iteration
37247 based on the first_set value and use ints instead
37248 of the unnecessary HOST_WIDE_INTs.
37249
37250 2020-01-21 Jakub Jelinek <jakub@redhat.com>
37251
37252 PR target/93073
37253 * config/rs6000/rs6000.c (rs6000_emit_cmove): If using fsel, punt for
37254 compare_mode other than SFmode or DFmode.
37255
37256 2020-01-21 Kito Cheng <kito.cheng@sifive.com>
37257
37258 PR target/93304
37259 * config/riscv/riscv-protos.h (riscv_hard_regno_rename_ok): New.
37260 * config/riscv/riscv.c (riscv_hard_regno_rename_ok): New.
37261 * config/riscv/riscv.h (HARD_REGNO_RENAME_OK): Defined.
37262
37263 2020-01-20 Wilco Dijkstra <wdijkstr@arm.com>
37264
37265 * config/aarch64/aarch64.c (neoversen1_tunings): Set jump_align to 4.
37266
37267 2020-01-20 Andrew Pinski <apinski@marvell.com>
37268
37269 PR middle-end/93242
37270 * targhooks.c (default_print_patchable_function_entry): Use
37271 output_asm_insn to emit the nop instruction.
37272
37273 2020-01-20 Fangrui Song <maskray@google.com>
37274
37275 PR middle-end/93194
37276 * targhooks.c (default_print_patchable_function_entry): Align to
37277 POINTER_SIZE.
37278
37279 2020-01-20 H.J. Lu <hongjiu.lu@intel.com>
37280
37281 PR target/93319
37282 * config/i386/i386.c (legitimize_tls_address): Pass Pmode to
37283 gen_tls_dynamic_gnu2_64. Compute GNU2 TLS address in ptr_mode.
37284 * config/i386/i386.md (tls_dynamic_gnu2_64): Renamed to ...
37285 (@tls_dynamic_gnu2_64_<mode>): This. Replace DI with P.
37286 (*tls_dynamic_gnu2_lea_64): Renamed to ...
37287 (*tls_dynamic_gnu2_lea_64_<mode>): This. Replace DI with P.
37288 Remove the {q} suffix from lea.
37289 (*tls_dynamic_gnu2_call_64): Renamed to ...
37290 (*tls_dynamic_gnu2_call_64_<mode>): This. Replace DI with P.
37291 (*tls_dynamic_gnu2_combine_64): Renamed to ...
37292 (*tls_dynamic_gnu2_combine_64_<mode>): This. Replace DI with P.
37293 Pass Pmode to gen_tls_dynamic_gnu2_64.
37294
37295 2020-01-20 Wilco Dijkstra <wdijkstr@arm.com>
37296
37297 * config/aarch64/aarch64.h (SLOW_BYTE_ACCESS): Set to 1.
37298
37299 2020-01-20 Richard Sandiford <richard.sandiford@arm.com>
37300
37301 * config/aarch64/aarch64-sve-builtins-base.cc
37302 (svld1ro_impl::memory_vector_mode): Remove parameter name.
37303
37304 2020-01-20 Richard Biener <rguenther@suse.de>
37305
37306 PR debug/92763
37307 * dwarf2out.c (prune_unused_types): Unconditionally mark
37308 called function DIEs.
37309
37310 2020-01-20 Martin Liska <mliska@suse.cz>
37311
37312 PR tree-optimization/93199
37313 * tree-eh.c (struct leh_state): Add
37314 new field outer_non_cleanup.
37315 (cleanup_is_dead_in): Pass leh_state instead
37316 of eh_region. Add a checking that state->outer_non_cleanup
37317 points to outer non-clean up region.
37318 (lower_try_finally): Record outer_non_cleanup
37319 for this_state.
37320 (lower_catch): Likewise.
37321 (lower_eh_filter): Likewise.
37322 (lower_eh_must_not_throw): Likewise.
37323 (lower_cleanup): Likewise.
37324
37325 2020-01-20 Richard Biener <rguenther@suse.de>
37326
37327 PR tree-optimization/93094
37328 * tree-vectorizer.h (vect_loop_versioning): Adjust.
37329 (vect_transform_loop): Likewise.
37330 * tree-vectorizer.c (try_vectorize_loop_1): Pass down
37331 loop_vectorized_call to vect_transform_loop.
37332 * tree-vect-loop.c (vect_transform_loop): Pass down
37333 loop_vectorized_call to vect_loop_versioning.
37334 * tree-vect-loop-manip.c (vect_loop_versioning): Use
37335 the earlier discovered loop_vectorized_call.
37336
37337 2020-01-19 Eric S. Raymond <esr@thyrsus.com>
37338
37339 * doc/contribute.texi: Update for SVN -> Git transition.
37340 * doc/install.texi: Likewise.
37341
37342 2020-01-18 Jan Hubicka <hubicka@ucw.cz>
37343
37344 PR lto/93318
37345 * cgraph.c (cgraph_edge::make_speculative): Increase number of
37346 speculative targets.
37347 (verify_speculative_call): New function
37348 (cgraph_node::verify_node): Use it.
37349 * ipa-profile.c (ipa_profile): Fix formating; do not set number of
37350 speculations.
37351
37352 2020-01-18 Jan Hubicka <hubicka@ucw.cz>
37353
37354 PR lto/93318
37355 * cgraph.c (cgraph_edge::resolve_speculation): Fix foramting.
37356 (cgraph_edge::make_direct): Remove all indirect targets.
37357 (cgraph_edge::redirect_call_stmt_to_callee): Use make_direct..
37358 (cgraph_node::verify_node): Verify that only one call_stmt or
37359 lto_stmt_uid is set.
37360 * cgraphclones.c (cgraph_edge::clone): Set only one call_stmt or
37361 lto_stmt_uid.
37362 * lto-cgraph.c (lto_output_edge): Simplify streaming of stmt.
37363 (lto_output_ref): Simplify streaming of stmt.
37364 * lto-streamer-in.c (fixup_call_stmt_edges_1): Clear lto_stmt_uid.
37365
37366 2020-01-18 Tamar Christina <tamar.christina@arm.com>
37367
37368 * config/aarch64/aarch64-sve-builtins-base.cc (memory_vector_mode):
37369 Mark parameter unused.
37370
37371 2020-01-18 Hans-Peter Nilsson <hp@axis.com>
37372
37373 * config.gcc <obsolete targets>: Add crisv32-*-* and cris-*-linux*
37374
37375 2019-01-18 Gerald Pfeifer <gerald@pfeifer.com>
37376
37377 * varpool.c (ctor_useable_for_folding_p): Fix grammar.
37378
37379 2020-01-18 Iain Sandoe <iain@sandoe.co.uk>
37380
37381 * Makefile.in: Add coroutine-passes.o.
37382 * builtin-types.def (BT_CONST_SIZE): New.
37383 (BT_FN_BOOL_PTR): New.
37384 (BT_FN_PTR_PTR_CONST_SIZE_BOOL): New.
37385 * builtins.def (DEF_COROUTINE_BUILTIN): New.
37386 * coroutine-builtins.def: New file.
37387 * coroutine-passes.cc: New file.
37388 * function.h (struct GTY function): Add a bit to indicate that the
37389 function is a coroutine component.
37390 * internal-fn.c (expand_CO_FRAME): New.
37391 (expand_CO_YIELD): New.
37392 (expand_CO_SUSPN): New.
37393 (expand_CO_ACTOR): New.
37394 * internal-fn.def (CO_ACTOR): New.
37395 (CO_YIELD): New.
37396 (CO_SUSPN): New.
37397 (CO_FRAME): New.
37398 * passes.def: Add pass_coroutine_lower_builtins,
37399 pass_coroutine_early_expand_ifns.
37400 * tree-pass.h (make_pass_coroutine_lower_builtins): New.
37401 (make_pass_coroutine_early_expand_ifns): New.
37402 * doc/invoke.texi: Document the fcoroutines command line
37403 switch.
37404
37405 2020-01-18 Jakub Jelinek <jakub@redhat.com>
37406
37407 * config/arm/vfp.md (*clear_vfp_multiple): Remove unused variable.
37408
37409 PR target/93312
37410 * config/arm/arm.c (clear_operation_p): Don't use REGNO until
37411 after checking the argument is a REG. Don't use REGNO (reg)
37412 again to set last_regno, reuse regno variable instead.
37413
37414 2020-01-17 David Malcolm <dmalcolm@redhat.com>
37415
37416 * doc/analyzer.texi (Limitations): Add note about NaN.
37417
37418 2020-01-17 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
37419 Sudakshina Das <sudi.das@arm.com>
37420
37421 * config/arm/arm.md (ashldi3): Generate thumb2_lsll for both reg
37422 and valid immediate.
37423 (ashrdi3): Generate thumb2_asrl for both reg and valid immediate.
37424 (lshrdi3): Generate thumb2_lsrl for valid immediates.
37425 * config/arm/constraints.md (Pg): New.
37426 * config/arm/predicates.md (long_shift_imm): New.
37427 (arm_reg_or_long_shift_imm): Likewise.
37428 * config/arm/thumb2.md (thumb2_asrl): New immediate alternative.
37429 (thumb2_lsll): Likewise.
37430 (thumb2_lsrl): New.
37431
37432 2020-01-17 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
37433 Sudakshina Das <sudi.das@arm.com>
37434
37435 * config/arm/arm.md (ashldi3): Generate thumb2_lsll for TARGET_HAVE_MVE.
37436 (ashrdi3): Generate thumb2_asrl for TARGET_HAVE_MVE.
37437 * config/arm/arm.c (arm_hard_regno_mode_ok): Allocate even odd
37438 register pairs for doubleword quantities for ARMv8.1M-Mainline.
37439 * config/arm/thumb2.md (thumb2_asrl): New.
37440 (thumb2_lsll): Likewise.
37441
37442 2020-01-17 Jakub Jelinek <jakub@redhat.com>
37443
37444 * config/arm/arm.c (cmse_nonsecure_call_inline_register_clear): Remove
37445 unused variable.
37446
37447 2020-01-17 Alexander Monakov <amonakov@ispras.ru>
37448
37449 * gdbinit.in (help-gcc-hooks): New command.
37450 (pp, pr, prl, pt, pct, pgg, pgq, pgs, pge, pmz, ptc, pdn, ptn, pdd, prc,
37451 pi, pbm, pel, trt): Take $arg0 instead of $ if supplied. Update
37452 documentation.
37453
37454 2020-01-17 Matthew Malcomson <matthew.malcomson@arm.com>
37455
37456 * config/aarch64/aarch64-sve.md (@aarch64_sve_ld1ro<mode>): Use the
37457 correct target macro.
37458
37459 2020-01-17 Matthew Malcomson <matthew.malcomson@arm.com>
37460
37461 * config/aarch64/aarch64-protos.h
37462 (aarch64_sve_ld1ro_operand_p): New.
37463 * config/aarch64/aarch64-sve-builtins-base.cc
37464 (class load_replicate): New.
37465 (class svld1ro_impl): New.
37466 (class svld1rq_impl): Change to inherit from load_replicate.
37467 (svld1ro): New sve intrinsic function base.
37468 * config/aarch64/aarch64-sve-builtins-base.def (svld1ro):
37469 New DEF_SVE_FUNCTION.
37470 * config/aarch64/aarch64-sve-builtins-base.h
37471 (svld1ro): New decl.
37472 * config/aarch64/aarch64-sve-builtins.cc
37473 (function_expander::add_mem_operand): Modify assert to allow
37474 OImode.
37475 * config/aarch64/aarch64-sve.md (@aarch64_sve_ld1ro<mode>): New
37476 pattern.
37477 * config/aarch64/aarch64.c
37478 (aarch64_sve_ld1rq_operand_p): Implement in terms of ...
37479 (aarch64_sve_ld1rq_ld1ro_operand_p): This.
37480 (aarch64_sve_ld1ro_operand_p): New.
37481 * config/aarch64/aarch64.md (UNSPEC_LD1RO): New unspec.
37482 * config/aarch64/constraints.md (UOb,UOh,UOw,UOd): New.
37483 * config/aarch64/predicates.md
37484 (aarch64_sve_ld1ro_operand_{b,h,w,d}): New.
37485
37486 2020-01-17 Matthew Malcomson <matthew.malcomson@arm.com>
37487
37488 * config/aarch64/aarch64-c.c (_ARM_FEATURE_MATMUL_FLOAT64):
37489 Introduce this ACLE specified predefined macro.
37490 * config/aarch64/aarch64-option-extensions.def (f64mm): New.
37491 (fp): Disabling this disables f64mm.
37492 (simd): Disabling this disables f64mm.
37493 (fp16): Disabling this disables f64mm.
37494 (sve): Disabling this disables f64mm.
37495 * config/aarch64/aarch64.h (AARCH64_FL_F64MM): New.
37496 (AARCH64_ISA_F64MM): New.
37497 (TARGET_F64MM): New.
37498 * doc/invoke.texi (f64mm): Document new option.
37499
37500 2020-01-17 Wilco Dijkstra <wdijkstr@arm.com>
37501
37502 * config/aarch64/aarch64.c (generic_tunings): Add branch fusion.
37503 (neoversen1_tunings): Likewise.
37504
37505 2020-01-17 Wilco Dijkstra <wdijkstr@arm.com>
37506
37507 PR target/92692
37508 * config/aarch64/aarch64.c (aarch64_split_compare_and_swap)
37509 Add assert to ensure prolog has been emitted.
37510 (aarch64_split_atomic_op): Likewise.
37511 * config/aarch64/atomics.md (aarch64_compare_and_swap<mode>)
37512 Use epilogue_completed rather than reload_completed.
37513 (aarch64_atomic_exchange<mode>): Likewise.
37514 (aarch64_atomic_<atomic_optab><mode>): Likewise.
37515 (atomic_nand<mode>): Likewise.
37516 (aarch64_atomic_fetch_<atomic_optab><mode>): Likewise.
37517 (atomic_fetch_nand<mode>): Likewise.
37518 (aarch64_atomic_<atomic_optab>_fetch<mode>): Likewise.
37519 (atomic_nand_fetch<mode>): Likewise.
37520
37521 2020-01-17 Richard Sandiford <richard.sandiford@arm.com>
37522
37523 PR target/93133
37524 * config/aarch64/aarch64.h (REVERSIBLE_CC_MODE): Return false
37525 for FP modes.
37526 (REVERSE_CONDITION): Delete.
37527 * config/aarch64/iterators.md (CC_ONLY): New mode iterator.
37528 (CCFP_CCFPE): Likewise.
37529 (e): New mode attribute.
37530 * config/aarch64/aarch64.md (ccmp<GPI:mode>): Rename to...
37531 (@ccmp<CC_ONLY:mode><GPI:mode>): ...this, using CC_ONLY instead of CC.
37532 (fccmp<GPF:mode>, fccmpe<GPF:mode>): Merge into...
37533 (@ccmp<CCFP_CCFPE:mode><GPF:mode>): ...this combined pattern.
37534 (@ccmp<CC_ONLY:mode><GPI:mode>_rev): New pattern.
37535 (@ccmp<CCFP_CCFPE:mode><GPF:mode>_rev): Likewise.
37536 * config/aarch64/aarch64.c (aarch64_gen_compare_reg): Update
37537 name of generator from gen_ccmpdi to gen_ccmpccdi.
37538 (aarch64_gen_ccmp_next): Use code_for_ccmp. If we want to reverse
37539 the previous comparison but aren't able to, use the new ccmp_rev
37540 patterns instead.
37541
37542 2020-01-17 Richard Sandiford <richard.sandiford@arm.com>
37543
37544 * gimplify.c (gimplify_return_expr): Use poly_int_tree_p rather
37545 than testing directly for INTEGER_CST.
37546 (gimplify_target_expr, gimplify_omp_depend): Likewise.
37547
37548 2020-01-17 Jakub Jelinek <jakub@redhat.com>
37549
37550 PR tree-optimization/93292
37551 * tree-vect-stmts.c (vectorizable_comparison): Punt also if
37552 get_vectype_for_scalar_type returns NULL.
37553
37554 2020-01-16 Jan Hubicka <hubicka@ucw.cz>
37555
37556 * params.opt (-param=max-predicted-iterations): Increase range from 0.
37557 * predict.c (estimate_loops): Add 1 to param_max_predicted_iterations.
37558
37559 2020-01-16 Jan Hubicka <hubicka@ucw.cz>
37560
37561 * ipa-fnsummary.c (estimate_calls_size_and_time): Fix formating of
37562 dump.
37563 * params.opt: (max-predicted-iterations): Set bounds.
37564 * predict.c (real_almost_one, real_br_prob_base,
37565 real_inv_br_prob_base, real_one_half, real_bb_freq_max): Remove.
37566 (propagate_freq): Add max_cyclic_prob parameter; cap cyclic
37567 probabilities; do not truncate to reg_br_prob_bases.
37568 (estimate_loops_at_level): Pass max_cyclic_prob.
37569 (estimate_loops): Compute max_cyclic_prob.
37570 (estimate_bb_frequencies): Do not initialize real_*; update calculation
37571 of back edge prob.
37572 * profile-count.c (profile_probability::to_sreal): New.
37573 * profile-count.h (class sreal): Move up in file.
37574 (profile_probability::to_sreal): Declare.
37575
37576 2020-01-16 Stam Markianos-Wright <stam.markianos-wright@arm.com>
37577
37578 * config/arm/arm.c
37579 (arm_invalid_conversion): New function for target hook.
37580 (arm_invalid_unary_op): New function for target hook.
37581 (arm_invalid_binary_op): New function for target hook.
37582
37583 2020-01-16 Stam Markianos-Wright <stam.markianos-wright@arm.com>
37584
37585 * config.gcc: Add arm_bf16.h.
37586 * config/arm/arm-builtins.c (arm_mangle_builtin_type): Fix comment.
37587 (arm_simd_builtin_std_type): Add BFmode.
37588 (arm_init_simd_builtin_types): Define element types for vector types.
37589 (arm_init_bf16_types): New function.
37590 (arm_init_builtins): Add arm_init_bf16_types function call.
37591 * config/arm/arm-modes.def: Add BFmode and V4BF, V8BF vector modes.
37592 * config/arm/arm-simd-builtin-types.def: Add V4BF, V8BF.
37593 * config/arm/arm.c (aapcs_vfp_sub_candidate): Add BFmode.
37594 (arm_hard_regno_mode_ok): Add BFmode and tidy up statements.
37595 (arm_vector_mode_supported_p): Add V4BF, V8BF.
37596 (arm_mangle_type): Add __bf16.
37597 * config/arm/arm.h: Add V4BF, V8BF to VALID_NEON_DREG_MODE,
37598 VALID_NEON_QREG_MODE respectively. Add export arm_bf16_type_node,
37599 arm_bf16_ptr_type_node.
37600 * config/arm/arm.md: Add BFmode to movhf expand, mov pattern and
37601 define_split between ARM registers.
37602 * config/arm/arm_bf16.h: New file.
37603 * config/arm/arm_neon.h: Add arm_bf16.h and Bfloat vector types.
37604 * config/arm/iterators.md: (ANY64_BF, VDXMOV, VHFBF, HFBF, fporbf): New.
37605 (VQXMOV): Add V8BF.
37606 * config/arm/neon.md: Add BF vector types to movhf NEON move patterns.
37607 * config/arm/vfp.md: Add BFmode to movhf patterns.
37608
37609 2020-01-16 Mihail Ionescu <mihail.ionescu@arm.com>
37610 Andre Vieira <andre.simoesdiasvieira@arm.com>
37611
37612 * config/arm/arm-cpus.in (mve, mve_float): New features.
37613 (dsp, mve, mve.fp): New options.
37614 * config/arm/arm.h (TARGET_HAVE_MVE, TARGET_HAVE_MVE_FLOAT): Define.
37615 * config/arm/t-rmprofile: Map v8.1-M multilibs to v8-M.
37616 * doc/invoke.texi: Document the armv8.1-m mve and dps options.
37617
37618 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
37619 Thomas Preud'homme <thomas.preudhomme@arm.com>
37620
37621 * config/arm/arm-cpus.in (ARMv8_1m_main): Redefine as an extension to
37622 Armv8-M Mainline.
37623 * config/arm/arm.c (arm_options_perform_arch_sanity_checks): Remove
37624 error for using -mcmse when targeting Armv8.1-M Mainline.
37625
37626 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
37627 Thomas Preud'homme <thomas.preudhomme@arm.com>
37628
37629 * config/arm/arm.md (nonsecure_call_internal): Do not force memory
37630 address in r4 when targeting Armv8.1-M Mainline.
37631 (nonsecure_call_value_internal): Likewise.
37632 * config/arm/thumb2.md (nonsecure_call_reg_thumb2): Make memory address
37633 a register match_operand again. Emit BLXNS when targeting
37634 Armv8.1-M Mainline.
37635 (nonsecure_call_value_reg_thumb2): Likewise.
37636
37637 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
37638 Thomas Preud'homme <thomas.preudhomme@arm.com>
37639
37640 * config/arm/arm.c (arm_add_cfa_adjust_cfa_note): Declare early.
37641 (cmse_nonsecure_call_inline_register_clear): Define new lazy_fpclear
37642 variable as true when floating-point ABI is not hard. Replace
37643 check against TARGET_HARD_FLOAT_ABI by checks against lazy_fpclear.
37644 Generate VLSTM and VLLDM instruction respectively before and
37645 after a function call to cmse_nonsecure_call function.
37646 * config/arm/unspecs.md (VUNSPEC_VLSTM): Define unspec.
37647 (VUNSPEC_VLLDM): Likewise.
37648 * config/arm/vfp.md (lazy_store_multiple_insn): New define_insn.
37649 (lazy_load_multiple_insn): Likewise.
37650
37651 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
37652 Thomas Preud'homme <thomas.preudhomme@arm.com>
37653
37654 * config/arm/arm.c (vfp_emit_fstmd): Declare early.
37655 (arm_emit_vfp_multi_reg_pop): Likewise.
37656 (cmse_nonsecure_call_inline_register_clear): Abstract number of VFP
37657 registers to clear in max_fp_regno. Emit VPUSH and VPOP to save and
37658 restore callee-saved VFP registers.
37659
37660 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
37661 Thomas Preud'homme <thomas.preudhomme@arm.com>
37662
37663 * config/arm/arm.c (arm_emit_multi_reg_pop): Declare early.
37664 (cmse_nonsecure_call_clear_caller_saved): Rename into ...
37665 (cmse_nonsecure_call_inline_register_clear): This. Save and clear
37666 callee-saved GPRs as well as clear ip register before doing a nonsecure
37667 call then restore callee-saved GPRs after it when targeting
37668 Armv8.1-M Mainline.
37669 (arm_reorg): Adapt to function rename.
37670
37671 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
37672 Thomas Preud'homme <thomas.preudhomme@arm.com>
37673
37674 * config/arm/arm-protos.h (clear_operation_p): Adapt prototype.
37675 * config/arm/arm.c (clear_operation_p): Extend to be able to check a
37676 clear_vfp_multiple pattern based on a new vfp parameter.
37677 (cmse_clear_registers): Generate VSCCLRM to clear VFP registers when
37678 targeting Armv8.1-M Mainline.
37679 (cmse_nonsecure_entry_clear_before_return): Clear VFP registers
37680 unconditionally when targeting Armv8.1-M Mainline architecture. Check
37681 whether VFP registers are available before looking call_used_regs for a
37682 VFP register.
37683 * config/arm/predicates.md (clear_multiple_operation): Adapt to change
37684 of prototype of clear_operation_p.
37685 (clear_vfp_multiple_operation): New predicate.
37686 * config/arm/unspecs.md (VUNSPEC_VSCCLRM_VPR): New volatile unspec.
37687 * config/arm/vfp.md (clear_vfp_multiple): New define_insn.
37688
37689 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
37690 Thomas Preud'homme <thomas.preudhomme@arm.com>
37691
37692 * config/arm/arm-protos.h (clear_operation_p): Declare.
37693 * config/arm/arm.c (clear_operation_p): New function.
37694 (cmse_clear_registers): Generate clear_multiple instruction pattern if
37695 targeting Armv8.1-M Mainline or successor.
37696 (output_return_instruction): Only output APSR register clearing if
37697 Armv8.1-M Mainline instructions not available.
37698 (thumb_exit): Likewise.
37699 * config/arm/predicates.md (clear_multiple_operation): New predicate.
37700 * config/arm/thumb2.md (clear_apsr): New define_insn.
37701 (clear_multiple): Likewise.
37702 * config/arm/unspecs.md (VUNSPEC_CLRM_APSR): New volatile unspec.
37703
37704 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
37705 Thomas Preud'homme <thomas.preudhomme@arm.com>
37706
37707 * config/arm/arm.c (fp_sysreg_names): Declare and define.
37708 (use_return_insn): Also return false for Armv8.1-M Mainline.
37709 (output_return_instruction): Skip FPSCR clearing if Armv8.1-M
37710 Mainline instructions are available.
37711 (arm_compute_frame_layout): Allocate space in frame for FPCXTNS
37712 when targeting Armv8.1-M Mainline Security Extensions.
37713 (arm_expand_prologue): Save FPCXTNS if this is an Armv8.1-M
37714 Mainline entry function.
37715 (cmse_nonsecure_entry_clear_before_return): Clear IP and r4 if
37716 targeting Armv8.1-M Mainline or successor.
37717 (arm_expand_epilogue): Fix indentation of caller-saved register
37718 clearing. Restore FPCXTNS if this is an Armv8.1-M Mainline
37719 entry function.
37720 * config/arm/arm.h (TARGET_HAVE_FP_CMSE): New macro.
37721 (FP_SYSREGS): Likewise.
37722 (enum vfp_sysregs_encoding): Define enum.
37723 (fp_sysreg_names): Declare.
37724 * config/arm/unspecs.md (VUNSPEC_VSTR_VLDR): New volatile unspec.
37725 * config/arm/vfp.md (push_fpsysreg_insn): New define_insn.
37726 (pop_fpsysreg_insn): Likewise.
37727
37728 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
37729 Thomas Preud'homme <thomas.preudhomme@arm.com>
37730
37731 * config/arm/arm-cpus.in (armv8_1m_main): New feature.
37732 (ARMv4, ARMv4t, ARMv5t, ARMv5te, ARMv5tej, ARMv6, ARMv6j, ARMv6k,
37733 ARMv6z, ARMv6kz, ARMv6zk, ARMv6t2, ARMv6m, ARMv7, ARMv7a, ARMv7ve,
37734 ARMv7r, ARMv7m, ARMv7em, ARMv8a, ARMv8_1a, ARMv8_2a, ARMv8_3a,
37735 ARMv8_4a, ARMv8_5a, ARMv8m_base, ARMv8m_main, ARMv8r): Reindent.
37736 (ARMv8_1m_main): New feature group.
37737 (armv8.1-m.main): New architecture.
37738 * config/arm/arm-tables.opt: Regenerate.
37739 * config/arm/arm.c (arm_arch8_1m_main): Define and default initialize.
37740 (arm_option_reconfigure_globals): Initialize arm_arch8_1m_main.
37741 (arm_options_perform_arch_sanity_checks): Error out when targeting
37742 Armv8.1-M Mainline Security Extensions.
37743 * config/arm/arm.h (arm_arch8_1m_main): Declare.
37744
37745 2020-01-16 Stam Markianos-Wright <stam.markianos-wright@arm.com>
37746
37747 * config/aarch64/aarch64-simd-builtins.def (aarch64_bfdot,
37748 aarch64_bfdot_lane, aarch64_bfdot_laneq): New.
37749 * config/aarch64/aarch64-simd.md (aarch64_bfdot, aarch64_bfdot_lane,
37750 aarch64_bfdot_laneq): New.
37751 * config/aarch64/arm_bf16.h (vbfdot_f32, vbfdotq_f32,
37752 vbfdot_lane_f32, vbfdotq_lane_f32, vbfdot_laneq_f32,
37753 vbfdotq_laneq_f32): New.
37754 * config/aarch64/iterators.md (UNSPEC_BFDOT, Vbfdottype,
37755 VBFMLA_W, VBF): New.
37756 (isquadop): Add V4BF, V8BF.
37757
37758 2020-01-16 Stam Markianos-Wright <stam.markianos-wright@arm.com>
37759
37760 * config/aarch64/aarch64-builtins.c: (enum aarch64_type_qualifiers):
37761 New qualifier_lane_quadtup_index, TYPES_TERNOP_SSUS,
37762 TYPES_QUADOPSSUS_LANE_QUADTUP, TYPES_QUADOPSSSU_LANE_QUADTUP.
37763 (aarch64_simd_expand_args): Add case SIMD_ARG_LANE_QUADTUP_INDEX.
37764 (aarch64_simd_expand_builtin): Add qualifier_lane_quadtup_index.
37765 * config/aarch64/aarch64-simd-builtins.def (usdot, usdot_lane,
37766 usdot_laneq, sudot_lane,sudot_laneq): New.
37767 * config/aarch64/aarch64-simd.md (aarch64_usdot): New.
37768 (aarch64_<sur>dot_lane): New.
37769 * config/aarch64/arm_neon.h (vusdot_s32): New.
37770 (vusdotq_s32): New.
37771 (vusdot_lane_s32): New.
37772 (vsudot_lane_s32): New.
37773 * config/aarch64/iterators.md (DOTPROD_I8MM): New iterator.
37774 (UNSPEC_USDOT, UNSPEC_SUDOT): New unspecs.
37775
37776 2020-01-16 Martin Liska <mliska@suse.cz>
37777
37778 * value-prof.c (dump_histogram_value): Fix
37779 obvious spacing issue.
37780
37781 2020-01-16 Andrew Pinski <apinski@marvell.com>
37782
37783 * tree-ssa-sccvn.c(vn_reference_lookup_3): Check lhs for
37784 !storage_order_barrier_p.
37785
37786 2020-01-16 Andrew Pinski <apinski@marvell.com>
37787
37788 * sched-int.h (_dep): Add unused bit-field field for the padding.
37789 * sched-deps.c (init_dep_1): Init unused field.
37790
37791 2020-01-16 Andrew Pinski <apinski@marvell.com>
37792
37793 * optabs.h (create_expand_operand): Initialize target field also.
37794
37795 2020-01-16 Andre Vieira <andre.simoesdiasvieira@arm.com>
37796
37797 PR tree-optimization/92429
37798 * tree-ssa-loop-niter.h (simplify_replace_tree): Add parameter.
37799 * tree-ssa-loop-niter.c (simplify_replace_tree): Add parameter to
37800 control folding.
37801 * tree-vect-loop.c (update_epilogue_vinfo): Do not fold when replacing
37802 tree.
37803
37804 2020-01-16 Richard Sandiford <richard.sandiford@arm.com>
37805
37806 * config/aarch64/aarch64.c (aarch64_split_sve_subreg_move): Apply
37807 aarch64_sve_int_mode to each mode.
37808
37809 2020-01-15 David Malcolm <dmalcolm@redhat.com>
37810
37811 * doc/analyzer.texi (Overview): Add note about
37812 -fdump-ipa-analyzer.
37813
37814 2020-01-15 Wilco Dijkstra <wdijkstr@arm.com>
37815
37816 PR tree-optimization/93231
37817 * tree-ssa-forwprop.c (optimize_count_trailing_zeroes): Check
37818 input_type is unsigned. Use tree_to_shwi for shift constant.
37819 Check CST_STRING element size is CHAR_TYPE_SIZE bits.
37820 (simplify_count_trailing_zeroes): Add test to handle known non-zero
37821 inputs more efficiently.
37822
37823 2020-01-15 Uroš Bizjak <ubizjak@gmail.com>
37824
37825 * config/i386/i386.md (*movsf_internal): Do not require
37826 SSE2 ISA for alternatives 14 and 15.
37827
37828 2020-01-15 Richard Biener <rguenther@suse.de>
37829
37830 PR middle-end/93273
37831 * tree-eh.c (sink_clobbers): If we already visited the destination
37832 block do not defer insertion.
37833 (pass_lower_eh_dispatch::execute): Maintain BB_VISITED for
37834 the purpose of defered insertion.
37835
37836 2020-01-15 Jakub Jelinek <jakub@redhat.com>
37837
37838 * BASE-VER: Bump to 10.0.1.
37839
37840 2020-01-15 Richard Sandiford <richard.sandiford@arm.com>
37841
37842 PR tree-optimization/93247
37843 * tree-vect-loop.c (update_epilogue_loop_vinfo): Check the access
37844 type of the stmt that we're going to vectorize.
37845
37846 2020-01-15 Richard Sandiford <richard.sandiford@arm.com>
37847
37848 * tree-vect-slp.c (vectorize_slp_instance_root_stmt): Use a
37849 VIEW_CONVERT_EXPR if the vectorized constructor has a diffeent
37850 type from the lhs.
37851
37852 2020-01-15 Martin Liska <mliska@suse.cz>
37853
37854 * ipa-profile.c (ipa_profile_read_edge_summary): Do not allow
37855 2 calls of streamer_read_hwi in a function call.
37856
37857 2020-01-15 Richard Biener <rguenther@suse.de>
37858
37859 * alias.c (record_alias_subset): Avoid redundant work when
37860 subset is already recorded.
37861
37862 2020-01-14 David Malcolm <dmalcolm@redhat.com>
37863
37864 * doc/invoke.texi (-fdiagnostics-show-cwe): Add note that some of
37865 the analyzer options provide CWE identifiers.
37866
37867 2020-01-14 David Malcolm <dmalcolm@redhat.com>
37868
37869 * tree-diagnostic-path.cc (path_summary::event_range::print):
37870 When testing for UNKNOWN_LOCATION, look through ad-hoc wrappers
37871 using get_pure_location.
37872
37873 2020-01-15 Jakub Jelinek <jakub@redhat.com>
37874
37875 PR tree-optimization/93262
37876 * tree-ssa-dse.c (maybe_trim_memstar_call): For *_chk builtins,
37877 perform head trimming only if the last argument is constant,
37878 either all ones, or larger or equal to head trim, in the latter
37879 case decrease the last argument by head_trim.
37880
37881 PR tree-optimization/93249
37882 * tree-ssa-dse.c: Include builtins.h and gimple-fold.h.
37883 (maybe_trim_memstar_call): Move head_trim and tail_trim vars to
37884 function body scope, reindent. For BUILTIN_IN_STRNCPY*, don't
37885 perform head trim unless we can prove there are no '\0' chars
37886 from the source among the first head_trim chars.
37887
37888 2020-01-14 David Malcolm <dmalcolm@redhat.com>
37889
37890 * Makefile.in (ANALYZER_OBJS): Add analyzer/function-set.o.
37891
37892 2020-01-15 Jakub Jelinek <jakub@redhat.com>
37893
37894 PR target/93009
37895 * config/i386/sse.md
37896 (*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_1,
37897 *<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_1,
37898 *<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_1,
37899 *<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_1): Use
37900 just a single alternative instead of two, make operands 1 and 2
37901 commutative.
37902
37903 2020-01-14 Jan Hubicka <hubicka@ucw.cz>
37904
37905 PR lto/91576
37906 * ipa-devirt.c (odr_types_equivalent_p): Compare TREE_ADDRESSABLE and
37907 TYPE_MODE.
37908
37909 2020-01-14 David Malcolm <dmalcolm@redhat.com>
37910
37911 * Makefile.in (lang_opt_files): Add analyzer.opt.
37912 (ANALYZER_OBJS): New.
37913 (OBJS): Add digraph.o, graphviz.o, ordered-hash-map-tests.o,
37914 tristate.o and ANALYZER_OBJS.
37915 (TEXI_GCCINT_FILES): Add analyzer.texi.
37916 * common.opt (-fanalyzer): New driver option.
37917 * config.in: Regenerate.
37918 * configure: Regenerate.
37919 * configure.ac (--disable-analyzer, ENABLE_ANALYZER): New option.
37920 (gccdepdir): Also create depdir for "analyzer" subdir.
37921 * digraph.cc: New file.
37922 * digraph.h: New file.
37923 * doc/analyzer.texi: New file.
37924 * doc/gccint.texi ("Static Analyzer") New menu item.
37925 (analyzer.texi): Include it.
37926 * doc/invoke.texi ("Static Analyzer Options"): New list and new section.
37927 ("Warning Options"): Add static analysis warnings to the list.
37928 (-Wno-analyzer-double-fclose): New option.
37929 (-Wno-analyzer-double-free): New option.
37930 (-Wno-analyzer-exposure-through-output-file): New option.
37931 (-Wno-analyzer-file-leak): New option.
37932 (-Wno-analyzer-free-of-non-heap): New option.
37933 (-Wno-analyzer-malloc-leak): New option.
37934 (-Wno-analyzer-possible-null-argument): New option.
37935 (-Wno-analyzer-possible-null-dereference): New option.
37936 (-Wno-analyzer-null-argument): New option.
37937 (-Wno-analyzer-null-dereference): New option.
37938 (-Wno-analyzer-stale-setjmp-buffer): New option.
37939 (-Wno-analyzer-tainted-array-index): New option.
37940 (-Wno-analyzer-use-after-free): New option.
37941 (-Wno-analyzer-use-of-pointer-in-stale-stack-frame): New option.
37942 (-Wno-analyzer-use-of-uninitialized-value): New option.
37943 (-Wanalyzer-too-complex): New option.
37944 (-fanalyzer-call-summaries): New warning.
37945 (-fanalyzer-checker=): New warning.
37946 (-fanalyzer-fine-grained): New warning.
37947 (-fno-analyzer-state-merge): New warning.
37948 (-fno-analyzer-state-purge): New warning.
37949 (-fanalyzer-transitivity): New warning.
37950 (-fanalyzer-verbose-edges): New warning.
37951 (-fanalyzer-verbose-state-changes): New warning.
37952 (-fanalyzer-verbosity=): New warning.
37953 (-fdump-analyzer): New warning.
37954 (-fdump-analyzer-callgraph): New warning.
37955 (-fdump-analyzer-exploded-graph): New warning.
37956 (-fdump-analyzer-exploded-nodes): New warning.
37957 (-fdump-analyzer-exploded-nodes-2): New warning.
37958 (-fdump-analyzer-exploded-nodes-3): New warning.
37959 (-fdump-analyzer-supergraph): New warning.
37960 * doc/sourcebuild.texi (dg-require-dot): New.
37961 (dg-check-dot): New.
37962 * gdbinit.in (break-on-saved-diagnostic): New command.
37963 * graphviz.cc: New file.
37964 * graphviz.h: New file.
37965 * ordered-hash-map-tests.cc: New file.
37966 * ordered-hash-map.h: New file.
37967 * passes.def (pass_analyzer): Add before
37968 pass_ipa_whole_program_visibility.
37969 * selftest-run-tests.c (selftest::run_tests): Call
37970 selftest::ordered_hash_map_tests_cc_tests.
37971 * selftest.h (selftest::ordered_hash_map_tests_cc_tests): New
37972 decl.
37973 * shortest-paths.h: New file.
37974 * timevar.def (TV_ANALYZER): New timevar.
37975 (TV_ANALYZER_SUPERGRAPH): Likewise.
37976 (TV_ANALYZER_STATE_PURGE): Likewise.
37977 (TV_ANALYZER_PLAN): Likewise.
37978 (TV_ANALYZER_SCC): Likewise.
37979 (TV_ANALYZER_WORKLIST): Likewise.
37980 (TV_ANALYZER_DUMP): Likewise.
37981 (TV_ANALYZER_DIAGNOSTICS): Likewise.
37982 (TV_ANALYZER_SHORTEST_PATHS): Likewise.
37983 * tree-pass.h (make_pass_analyzer): New decl.
37984 * tristate.cc: New file.
37985 * tristate.h: New file.
37986
37987 2020-01-14 Uroš Bizjak <ubizjak@gmail.com>
37988
37989 PR target/93254
37990 * config/i386/i386.md (*movsf_internal): Require SSE2 ISA for
37991 alternatives 9 and 10.
37992
37993 2020-01-14 David Malcolm <dmalcolm@redhat.com>
37994
37995 * attribs.c (excl_hash_traits::empty_zero_p): New static constant.
37996 * gcov.c (function_start_pair_hash::empty_zero_p): Likewise.
37997 * graphite.c (struct sese_scev_hash::empty_zero_p): Likewise.
37998 * hash-map-tests.c (selftest::test_nonzero_empty_key): New selftest.
37999 (selftest::hash_map_tests_c_tests): Call it.
38000 * hash-map-traits.h (simple_hashmap_traits::empty_zero_p):
38001 New static constant, using the value of = H::empty_zero_p.
38002 (unbounded_hashmap_traits::empty_zero_p): Likewise, using the value
38003 from default_hash_traits <Value>.
38004 * hash-map.h (hash_map::empty_zero_p): Likewise, using the value
38005 from Traits.
38006 * hash-set-tests.c (value_hash_traits::empty_zero_p): Likewise.
38007 * hash-table.h (hash_table::alloc_entries): Guard the loop of
38008 calls to mark_empty with !Descriptor::empty_zero_p.
38009 (hash_table::empty_slow): Conditionalize the memset call with a
38010 check that Descriptor::empty_zero_p; otherwise, loop through the
38011 entries calling mark_empty on them.
38012 * hash-traits.h (int_hash::empty_zero_p): New static constant.
38013 (pointer_hash::empty_zero_p): Likewise.
38014 (pair_hash::empty_zero_p): Likewise.
38015 * ipa-devirt.c (default_hash_traits <type_pair>::empty_zero_p):
38016 Likewise.
38017 * ipa-prop.c (ipa_bit_ggc_hash_traits::empty_zero_p): Likewise.
38018 (ipa_vr_ggc_hash_traits::empty_zero_p): Likewise.
38019 * profile.c (location_triplet_hash::empty_zero_p): Likewise.
38020 * sanopt.c (sanopt_tree_triplet_hash::empty_zero_p): Likewise.
38021 (sanopt_tree_couple_hash::empty_zero_p): Likewise.
38022 * tree-hasher.h (int_tree_hasher::empty_zero_p): Likewise.
38023 * tree-ssa-sccvn.c (vn_ssa_aux_hasher::empty_zero_p): Likewise.
38024 * tree-vect-slp.c (bst_traits::empty_zero_p): Likewise.
38025 * tree-vectorizer.h
38026 (default_hash_traits<scalar_cond_masked_key>::empty_zero_p):
38027 Likewise.
38028
38029 2020-01-14 Kewen Lin <linkw@gcc.gnu.org>
38030
38031 * cfgloopanal.c (average_num_loop_insns): Free bbs when early return,
38032 fix typo on return value.
38033
38034 2020-01-14 Xiong Hu Luo <luoxhu@linux.ibm.com>
38035
38036 PR ipa/69678
38037 * cgraph.c (symbol_table::create_edge): Init speculative_id and
38038 target_prob.
38039 (cgraph_edge::make_speculative): Add param for setting speculative_id
38040 and target_prob.
38041 (cgraph_edge::speculative_call_info): Update comments and find reference
38042 by speculative_id for multiple indirect targets.
38043 (cgraph_edge::resolve_speculation): Decrease the speculations
38044 for indirect edge, drop it's speculative if not direct target
38045 left. Update comments.
38046 (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
38047 (cgraph_node::dump): Print num_speculative_call_targets.
38048 (cgraph_node::verify_node): Don't report error if speculative
38049 edge not include statement.
38050 (cgraph_edge::num_speculative_call_targets_p): New function.
38051 * cgraph.h (int common_target_id): Remove.
38052 (int common_target_probability): Remove.
38053 (num_speculative_call_targets): New variable.
38054 (make_speculative): Add param for setting speculative_id.
38055 (cgraph_edge::num_speculative_call_targets_p): New declare.
38056 (target_prob): New variable.
38057 (speculative_id): New variable.
38058 * ipa-fnsummary.c (analyze_function_body): Create and duplicate
38059 call summaries for multiple speculative call targets.
38060 * cgraphclones.c (cgraph_node::create_clone): Clone speculative_id.
38061 * ipa-profile.c (struct speculative_call_target): New struct.
38062 (class speculative_call_summary): New class.
38063 (class speculative_call_summaries): New class.
38064 (call_sums): New variable.
38065 (ipa_profile_generate_summary): Generate indirect multiple targets summaries.
38066 (ipa_profile_write_edge_summary): New function.
38067 (ipa_profile_write_summary): Stream out indirect multiple targets summaries.
38068 (ipa_profile_dump_all_summaries): New function.
38069 (ipa_profile_read_edge_summary): New function.
38070 (ipa_profile_read_summary_section): New function.
38071 (ipa_profile_read_summary): Stream in indirect multiple targets summaries.
38072 (ipa_profile): Generate num_speculative_call_targets from
38073 profile summaries.
38074 * ipa-ref.h (speculative_id): New variable.
38075 * ipa-utils.c (ipa_merge_profiles): Update with target_prob.
38076 * lto-cgraph.c (lto_output_edge): Remove indirect common_target_id and
38077 common_target_probability. Stream out speculative_id and
38078 num_speculative_call_targets.
38079 (input_edge): Likewise.
38080 * predict.c (dump_prediction): Remove edges count assert to be
38081 precise.
38082 * symtab.c (symtab_node::create_reference): Init speculative_id.
38083 (symtab_node::clone_references): Clone speculative_id.
38084 (symtab_node::clone_referring): Clone speculative_id.
38085 (symtab_node::clone_reference): Clone speculative_id.
38086 (symtab_node::clear_stmts_in_references): Clear speculative_id.
38087 * tree-inline.c (copy_bb): Duplicate all the speculative edges
38088 if indirect call contains multiple speculative targets.
38089 * value-prof.h (check_ic_target): Remove.
38090 * value-prof.c (gimple_value_profile_transformations):
38091 Use void function gimple_ic_transform.
38092 * value-prof.c (gimple_ic_transform): Handle topn case.
38093 Fix comment typos. Change it to a void function.
38094
38095 2020-01-13 Andrew Pinski <apinski@marvell.com>
38096
38097 * config/aarch64/aarch64-cores.def (octeontx2): New define.
38098 (octeontx2t98): New define.
38099 (octeontx2t96): New define.
38100 (octeontx2t93): New define.
38101 (octeontx2f95): New define.
38102 (octeontx2f95n): New define.
38103 (octeontx2f95mm): New define.
38104 * config/aarch64/aarch64-tune.md: Regenerate.
38105 * doc/invoke.texi (-mcpu=): Document the new cpu types.
38106
38107 2020-01-13 Jason Merrill <jason@redhat.com>
38108
38109 PR c++/33799 - destroy return value if local cleanup throws.
38110 * gimplify.c (gimplify_return_expr): Handle COMPOUND_EXPR.
38111
38112 2020-01-13 Martin Liska <mliska@suse.cz>
38113
38114 * ipa-cp.c (get_max_overall_size): Use newly
38115 renamed param param_ipa_cp_unit_growth.
38116 * params.opt: Remove legacy param name.
38117
38118 2020-01-13 Martin Sebor <msebor@redhat.com>
38119
38120 PR tree-optimization/93213
38121 * tree-ssa-strlen.c (handle_store): Only allow single-byte nul-over-nul
38122 stores to be eliminated.
38123
38124 2020-01-13 Martin Liska <mliska@suse.cz>
38125
38126 * opts.c (print_help): Do not print CL_PARAM
38127 and CL_WARNING for CL_OPTIMIZATION.
38128
38129 2020-01-13 Jonathan Wakely <jwakely@redhat.com>
38130
38131 PR driver/92757
38132 * doc/invoke.texi (Warning Options): Add caveat about some warnings
38133 depending on optimization settings.
38134
38135 2020-01-13 Jakub Jelinek <jakub@redhat.com>
38136
38137 PR tree-optimization/90838
38138 * tree-ssa-forwprop.c (simplify_count_trailing_zeroes): Use
38139 SCALAR_INT_TYPE_MODE directly in CTZ_DEFINED_VALUE_AT_ZERO macro
38140 argument rather than to initialize temporary for targets that
38141 don't use the mode argument at all. Initialize ctzval to avoid
38142 warning at -O0.
38143
38144 2020-01-10 Thomas Schwinge <thomas@codesourcery.com>
38145
38146 * tree.h (OMP_CLAUSE_USE_DEVICE_PTR_IF_PRESENT): New definition.
38147 * tree-core.h: Document it.
38148 * gimplify.c (gimplify_omp_workshare): Set it.
38149 * omp-low.c (lower_omp_target): Use it.
38150 * tree-pretty-print.c (dump_omp_clause): Print it.
38151
38152 * omp-low.c (lower_omp_target) <OMP_CLAUSE_USE_DEVICE_PTR etc.>:
38153 Assert that for OpenACC we always have 'GOMP_MAP_USE_DEVICE_PTR'.
38154
38155 2020-01-10 David Malcolm <dmalcolm@redhat.com>
38156
38157 * Makefile.in (OBJS): Add tree-diagnostic-path.o.
38158 * common.opt (fdiagnostics-path-format=): New option.
38159 (diagnostic_path_format): New enum.
38160 (fdiagnostics-show-path-depths): New option.
38161 * coretypes.h (diagnostic_event_id_t): New forward decl.
38162 * diagnostic-color.c (color_dict): Add "path".
38163 * diagnostic-event-id.h: New file.
38164 * diagnostic-format-json.cc (json_from_expanded_location): Make
38165 non-static.
38166 (json_end_diagnostic): Call context->make_json_for_path if it
38167 exists and the diagnostic has a path.
38168 (diagnostic_output_format_init): Clear context->print_path.
38169 * diagnostic-path.h: New file.
38170 * diagnostic-show-locus.c (colorizer::set_range): Special-case
38171 when printing a run of events in a diagnostic_path so that they
38172 all get the same color.
38173 (layout::m_diagnostic_path_p): New field.
38174 (layout::layout): Initialize it.
38175 (layout::print_any_labels): Don't colorize the label text for an
38176 event in a diagnostic_path.
38177 (gcc_rich_location::add_location_if_nearby): Add
38178 "restrict_to_current_line_spans" and "label" params. Pass the
38179 former to layout.maybe_add_location_range; pass the latter
38180 when calling add_range.
38181 * diagnostic.c: Include "diagnostic-path.h".
38182 (diagnostic_initialize): Initialize context->path_format and
38183 context->show_path_depths.
38184 (diagnostic_show_any_path): New function.
38185 (diagnostic_path::interprocedural_p): New function.
38186 (diagnostic_report_diagnostic): Call diagnostic_show_any_path.
38187 (simple_diagnostic_path::num_events): New function.
38188 (simple_diagnostic_path::get_event): New function.
38189 (simple_diagnostic_path::add_event): New function.
38190 (simple_diagnostic_event::simple_diagnostic_event): New ctor.
38191 (simple_diagnostic_event::~simple_diagnostic_event): New dtor.
38192 (debug): New overload taking a diagnostic_path *.
38193 * diagnostic.def (DK_DIAGNOSTIC_PATH): New.
38194 * diagnostic.h (enum diagnostic_path_format): New enum.
38195 (json::value): New forward decl.
38196 (diagnostic_context::path_format): New field.
38197 (diagnostic_context::show_path_depths): New field.
38198 (diagnostic_context::print_path): New callback field.
38199 (diagnostic_context::make_json_for_path): New callback field.
38200 (diagnostic_show_any_path): New decl.
38201 (json_from_expanded_location): New decl.
38202 * doc/invoke.texi (-fdiagnostics-path-format=): New option.
38203 (-fdiagnostics-show-path-depths): New option.
38204 (-fdiagnostics-color): Add "path" to description of default
38205 GCC_COLORS; describe it.
38206 (-fdiagnostics-format=json): Document how diagnostic paths are
38207 represented in the JSON output format.
38208 * gcc-rich-location.h (gcc_rich_location::add_location_if_nearby):
38209 Add optional params "restrict_to_current_line_spans" and "label".
38210 * opts.c (common_handle_option): Handle
38211 OPT_fdiagnostics_path_format_ and
38212 OPT_fdiagnostics_show_path_depths.
38213 * pretty-print.c: Include "diagnostic-event-id.h".
38214 (pp_format): Implement "%@" format code for printing
38215 diagnostic_event_id_t *.
38216 (selftest::test_pp_format): Add tests for "%@".
38217 * selftest-run-tests.c (selftest::run_tests): Call
38218 selftest::tree_diagnostic_path_cc_tests.
38219 * selftest.h (selftest::tree_diagnostic_path_cc_tests): New decl.
38220 * toplev.c (general_init): Initialize global_dc->path_format and
38221 global_dc->show_path_depths.
38222 * tree-diagnostic-path.cc: New file.
38223 * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Make
38224 non-static. Drop "diagnostic" param in favor of storing the
38225 original value of "where" and re-using it.
38226 (virt_loc_aware_diagnostic_finalizer): Update for dropped param of
38227 maybe_unwind_expanded_macro_loc.
38228 (tree_diagnostics_defaults): Initialize context->print_path and
38229 context->make_json_for_path.
38230 * tree-diagnostic.h (default_tree_diagnostic_path_printer): New
38231 decl.
38232 (default_tree_make_json_for_path): New decl.
38233 (maybe_unwind_expanded_macro_loc): New decl.
38234
38235 2020-01-10 Jakub Jelinek <jakub@redhat.com>
38236
38237 PR tree-optimization/93210
38238 * fold-const.h (native_encode_initializer,
38239 can_native_interpret_type_p): Declare.
38240 * fold-const.c (native_encode_string): Fix up handling with off != -1,
38241 simplify.
38242 (native_encode_initializer): New function, moved from dwarf2out.c.
38243 Adjust to native_encode_expr compatible arguments, including dry-run
38244 and partial extraction modes. Don't handle STRING_CST.
38245 (can_native_interpret_type_p): No longer static.
38246 * gimple-fold.c (fold_ctor_reference): For native_encode_expr, verify
38247 offset / BITS_PER_UNIT fits into int and don't call it if
38248 can_native_interpret_type_p fails. If suboff is NULL and for
38249 CONSTRUCTOR fold_{,non}array_ctor_reference returns NULL, retry with
38250 native_encode_initializer.
38251 (fold_const_aggregate_ref_1): Formatting fix.
38252 * dwarf2out.c (native_encode_initializer): Moved to fold-const.c.
38253 (tree_add_const_value_attribute): Adjust caller.
38254
38255 PR tree-optimization/90838
38256 * tree-ssa-forwprop.c (simplify_count_trailing_zeroes): Use
38257 SCALAR_INT_TYPE_MODE instead of TYPE_MODE as operand of
38258 CTZ_DEFINED_VALUE_AT_ZERO.
38259
38260 2020-01-10 Vladimir Makarov <vmakarov@redhat.com>
38261
38262 PR inline-asm/93027
38263 * lra-constraints.c (match_reload): Permit input operands have the
38264 same mode as output while other input operands have a different
38265 mode.
38266
38267 2020-01-10 Wilco Dijkstra <wdijkstr@arm.com>
38268
38269 PR tree-optimization/90838
38270 * tree-ssa-forwprop.c (check_ctz_array): Add new function.
38271 (check_ctz_string): Likewise.
38272 (optimize_count_trailing_zeroes): Likewise.
38273 (simplify_count_trailing_zeroes): Likewise.
38274 (pass_forwprop::execute): Try ctz simplification.
38275 * match.pd: Add matching for ctz idioms.
38276
38277 2020-01-10 Stam Markianos-Wright <stam.markianos-wright@arm.com>
38278
38279 * config/aarch64/aarch64.c (aarch64_invalid_conversion): New function
38280 for target hook.
38281 (aarch64_invalid_unary_op): New function for target hook.
38282 (aarch64_invalid_binary_op): New function for target hook.
38283
38284 2020-01-10 Stam Markianos-Wright <stam.markianos-wright@arm.com>
38285
38286 * config.gcc: Add arm_bf16.h.
38287 * config/aarch64/aarch64-builtins.c
38288 (aarch64_simd_builtin_std_type): Add BFmode.
38289 (aarch64_init_simd_builtin_types): Define element types for vector
38290 types.
38291 (aarch64_init_bf16_types): New function.
38292 (aarch64_general_init_builtins): Add arm_init_bf16_types function call.
38293 * config/aarch64/aarch64-modes.def: Add BFmode and V4BF, V8BF vector
38294 modes.
38295 * config/aarch64/aarch64-simd-builtin-types.def: Add BF SIMD types.
38296 * config/aarch64/aarch64-simd.md: Add BF vector types to NEON move
38297 patterns.
38298 * config/aarch64/aarch64.h (AARCH64_VALID_SIMD_DREG_MODE): Add V4BF.
38299 (AARCH64_VALID_SIMD_QREG_MODE): Add V8BF.
38300 * config/aarch64/aarch64.c
38301 (aarch64_classify_vector_mode): Add support for BF types.
38302 (aarch64_gimplify_va_arg_expr): Add support for BF types.
38303 (aarch64_vq_mode): Add support for BF types.
38304 (aarch64_simd_container_mode): Add support for BF types.
38305 (aarch64_mangle_type): Add support for BF scalar type.
38306 * config/aarch64/aarch64.md: Add BFmode to movhf pattern.
38307 * config/aarch64/arm_bf16.h: New file.
38308 * config/aarch64/arm_neon.h: Add arm_bf16.h and Bfloat vector types.
38309 * config/aarch64/iterators.md: Add BF types to mode attributes.
38310 (HFBF, GPF_TF_F16_MOV, VDMOV, VQMOV, VQMOV_NO2Em VALL_F16MOV): New.
38311
38312 2020-01-10 Jason Merrill <jason@redhat.com>
38313
38314 PR c++/93173 - incorrect tree sharing.
38315 * gimplify.c (copy_if_shared): No longer static.
38316 * gimplify.h: Declare it.
38317
38318 2020-01-10 Richard Sandiford <richard.sandiford@arm.com>
38319
38320 * doc/invoke.texi (-msve-vector-bits=): Document that
38321 -msve-vector-bits=128 now generates VL-specific code for
38322 little-endian targets.
38323 * config/aarch64/aarch64-sve-builtins.cc (register_builtin_types): Use
38324 build_vector_type_for_mode to construct the data vector types.
38325 * config/aarch64/aarch64.c (aarch64_convert_sve_vector_bits): Generate
38326 VL-specific code for -msve-vector-bits=128 on little-endian targets.
38327 (aarch64_simd_container_mode): Always prefer Advanced SIMD modes
38328 for 128-bit vectors.
38329
38330 2020-01-10 Richard Sandiford <richard.sandiford@arm.com>
38331
38332 * config/aarch64/aarch64.c (aarch64_evpc_sel): Fix gen_vcond_mask
38333 invocation.
38334
38335 2020-01-10 Richard Sandiford <richard.sandiford@arm.com>
38336
38337 * config/aarch64/aarch64-builtins.c
38338 (aarch64_builtin_vectorized_function): Check for specific vector modes,
38339 rather than checking the number of elements and the element mode.
38340
38341 2020-01-10 Richard Sandiford <richard.sandiford@arm.com>
38342
38343 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
38344 get_related_vectype_for_scalar_type rather than build_vector_type
38345 to create the index type for a conditional reduction.
38346
38347 2020-01-10 Richard Sandiford <richard.sandiford@arm.com>
38348
38349 * tree-vect-loop.c (update_epilogue_loop_vinfo): Update DR_REF
38350 for any type of gather or scatter, including strided accesses.
38351
38352 2020-01-10 Andre Vieira <andre.simoesdiasvieira@arm.com>
38353
38354 * tree-vectorizer.h (get_dr_vinfo_offset): Add missing function
38355 comment.
38356
38357 2020-01-10 Andre Vieira <andre.simoesdiasvieira@arm.com>
38358
38359 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Use
38360 get_dr_vinfo_offset
38361 * tree-vect-loop.c (update_epilogue_loop_vinfo): Remove orig_drs_init
38362 parameter and its use to reset DR_OFFSET's.
38363 (vect_transform_loop): Remove orig_drs_init argument.
38364 * tree-vect-loop-manip.c (vect_update_init_of_dr): Update the offset
38365 member of dr_vec_info rather than the offset of the associated
38366 data_reference's innermost_loop_behavior.
38367 (vect_update_init_of_dr): Pass dr_vec_info instead of data_reference.
38368 (vect_do_peeling): Remove orig_drs_init parameter and its construction.
38369 * tree-vect-stmts.c (check_scan_store): Replace use of DR_OFFSET with
38370 get_dr_vinfo_offset.
38371 (vectorizable_store): Likewise.
38372 (vectorizable_load): Likewise.
38373
38374 2020-01-10 Richard Biener <rguenther@suse.de>
38375
38376 * gimple-ssa-store-merging
38377 (pass_store_merging::terminate_all_aliasing_chains): Cache alias info.
38378
38379 2020-01-10 Martin Liska <mliska@suse.cz>
38380
38381 PR ipa/93217
38382 * ipa-inline-analysis.c (offline_size): Make proper parenthesis
38383 encapsulation that was there before r280040.
38384
38385 2020-01-10 Richard Biener <rguenther@suse.de>
38386
38387 PR middle-end/93199
38388 * tree-eh.c (sink_clobbers): Move clobbers to out-of-IL
38389 sequences to avoid walking them again for secondary opportunities.
38390 (pass_lower_eh_dispatch::execute): Instead actually insert
38391 them here.
38392
38393 2020-01-10 Richard Biener <rguenther@suse.de>
38394
38395 PR middle-end/93199
38396 * tree-eh.c (redirect_eh_edge_1): Avoid some work if possible.
38397 (cleanup_all_empty_eh): Walk landing pads in reverse order to
38398 avoid quadraticness.
38399
38400 2020-01-10 Martin Jambor <mjambor@suse.cz>
38401
38402 * params.opt (param_ipa_sra_max_replacements): Mark as Optimization.
38403 * ipa-sra.c (pull_accesses_from_callee): New parameter caller, use it
38404 to get param_ipa_sra_max_replacements.
38405 (param_splitting_across_edge): Pass the caller to
38406 pull_accesses_from_callee.
38407
38408 2020-01-10 Martin Jambor <mjambor@suse.cz>
38409
38410 * params.opt (param_ipcp_unit_growth): Mark as Optimization.
38411 * ipa-cp.c (max_new_size): Removed.
38412 (orig_overall_size): New variable.
38413 (get_max_overall_size): New function.
38414 (estimate_local_effects): Use it. Adjust dump.
38415 (decide_about_value): Likewise.
38416 (ipcp_propagate_stage): Do not calculate max_new_size, just store
38417 orig_overall_size. Adjust dump.
38418 (ipa_cp_c_finalize): Clear orig_overall_size instead of max_new_size.
38419
38420 2020-01-10 Martin Jambor <mjambor@suse.cz>
38421
38422 * params.opt (param_ipa_max_agg_items): Mark as Optimization
38423 * ipa-cp.c (merge_agg_lats_step): New parameter max_agg_items, use
38424 instead of param_ipa_max_agg_items.
38425 (merge_aggregate_lattices): Extract param_ipa_max_agg_items from
38426 optimization info for the callee.
38427
38428 2020-01-09 Kwok Cheung Yeung <kcy@codesourcery.com>
38429
38430 * lto-streamer-in.c (input_function): Remove streamed-in inline debug
38431 markers if debug_inline_points is false.
38432
38433 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
38434
38435 * config.gcc (aarch64*-*-*): Add aarch64-sve-builtins-sve2.o to
38436 extra_objs.
38437 * config/aarch64/t-aarch64 (aarch64-sve-builtins.o): Depend on
38438 aarch64-sve-builtins-base.def, aarch64-sve-builtins-sve2.def and
38439 aarch64-sve-builtins-sve2.h.
38440 (aarch64-sve-builtins-sve2.o): New rule.
38441 * config/aarch64/aarch64.h (AARCH64_ISA_SVE2_AES): New macro.
38442 (AARCH64_ISA_SVE2_BITPERM, AARCH64_ISA_SVE2_SHA3): Likewise.
38443 (AARCH64_ISA_SVE2_SM4, TARGET_SVE2_AES, TARGET_SVE2_BITPERM): Likewise.
38444 (TARGET_SVE2_SHA, TARGET_SVE2_SM4): Likewise.
38445 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Handle
38446 TARGET_SVE2_AES, TARGET_SVE2_BITPERM, TARGET_SVE2_SHA3 and
38447 TARGET_SVE2_SM4.
38448 * config/aarch64/aarch64-sve.md: Update comments with SVE2
38449 instructions that are handled here.
38450 (@cond_asrd<mode>): Generalize to...
38451 (@cond_<SVE_INT_SHIFT_IMM:sve_int_op><mode>): ...this.
38452 (*cond_asrd<mode>_2): Generalize to...
38453 (*cond_<SVE_INT_SHIFT_IMM:sve_int_op><mode>_2): ...this.
38454 (*cond_asrd<mode>_z): Generalize to...
38455 (*cond_<SVE_INT_SHIFT_IMM:sve_int_op><mode>_z): ...this.
38456 * config/aarch64/aarch64.md (UNSPEC_LDNT1_GATHER): New unspec.
38457 (UNSPEC_STNT1_SCATTER, UNSPEC_WHILEGE, UNSPEC_WHILEGT): Likewise.
38458 (UNSPEC_WHILEHI, UNSPEC_WHILEHS): Likewise.
38459 * config/aarch64/aarch64-sve2.md (@aarch64_gather_ldnt<mode>): New
38460 pattern.
38461 (@aarch64_gather_ldnt_<ANY_EXTEND:optab><SVE_FULL_SDI:mode><SVE_PARTIAL_I:mode>)
38462 (@aarch64_scatter_stnt<mode>): Likewise.
38463 (@aarch64_scatter_stnt_<SVE_FULL_SDI:mode><SVE_PARTIAL_I:mode>)
38464 (@aarch64_mul_lane_<mode>): Likewise.
38465 (@aarch64_sve_suqadd<mode>_const): Likewise.
38466 (*<sur>h<addsub><mode>): Generalize to...
38467 (@aarch64_pred_<SVE2_COND_INT_BINARY_REV:sve_int_op><mode>): ...this
38468 new pattern.
38469 (@cond_<SVE2_COND_INT_BINARY:sve_int_op><mode>): New expander.
38470 (*cond_<SVE2_COND_INT_BINARY:sve_int_op><mode>_2): New pattern.
38471 (*cond_<SVE2_COND_INT_BINARY:sve_int_op><mode>_3): Likewise.
38472 (*cond_<SVE2_COND_INT_BINARY:sve_int_op><mode>_any): Likewise.
38473 (*cond_<SVE2_COND_INT_BINARY_NOREV:sve_int_op><mode>_z): Likewise.
38474 (@aarch64_sve_<SVE2_INT_BINARY:sve_int_op><mode>):: Likewise.
38475 (@aarch64_sve_<SVE2_INT_BINARY:sve_int_op>_lane_<mode>): Likewise.
38476 (@aarch64_pred_<SVE2_COND_INT_SHIFT:sve_int_op><mode>): Likewise.
38477 (@cond_<SVE2_COND_INT_SHIFT:sve_int_op><mode>): New expander.
38478 (*cond_<SVE2_COND_INT_SHIFT:sve_int_op><mode>_2): New pattern.
38479 (*cond_<SVE2_COND_INT_SHIFT:sve_int_op><mode>_3): Likewise.
38480 (*cond_<SVE2_COND_INT_SHIFT:sve_int_op><mode>_any): Likewise.
38481 (@aarch64_sve_<SVE2_INT_TERNARY:sve_int_op><mode>): Likewise.
38482 (@aarch64_sve_<SVE2_INT_TERNARY_LANE:sve_int_op>_lane_<mode>)
38483 (@aarch64_sve_add_mul_lane_<mode>): Likewise.
38484 (@aarch64_sve_sub_mul_lane_<mode>): Likewise.
38485 (@aarch64_sve2_xar<mode>): Likewise.
38486 (@aarch64_sve2_bcax<mode>): Likewise.
38487 (*aarch64_sve2_eor3<mode>): Rename to...
38488 (@aarch64_sve2_eor3<mode>): ...this.
38489 (@aarch64_sve2_bsl<mode>): New expander.
38490 (@aarch64_sve2_nbsl<mode>): Likewise.
38491 (@aarch64_sve2_bsl1n<mode>): Likewise.
38492 (@aarch64_sve2_bsl2n<mode>): Likewise.
38493 (@aarch64_sve_add_<SHIFTRT:sve_int_op><mode>): Likewise.
38494 (*aarch64_sve2_sra<mode>): Add MOVPRFX support.
38495 (@aarch64_sve_add_<VRSHR_N:sve_int_op><mode>): New pattern.
38496 (@aarch64_sve_<SVE2_INT_SHIFT_INSERT:sve_int_op><mode>): Likewise.
38497 (@aarch64_sve2_<USMAX:su>aba<mode>): New expander.
38498 (*aarch64_sve2_<USMAX:su>aba<mode>): New pattern.
38499 (@aarch64_sve_<SVE2_INT_BINARY_WIDE:sve_int_op><mode>): Likewise.
38500 (<su>mull<bt><Vwide>): Generalize to...
38501 (@aarch64_sve_<SVE2_INT_BINARY_LONG:sve_int_op><mode>): ...this new
38502 pattern.
38503 (@aarch64_sve_<SVE2_INT_BINARY_LONG_lANE:sve_int_op>_lane_<mode>)
38504 (@aarch64_sve_<SVE2_INT_SHIFT_IMM_LONG:sve_int_op><mode>)
38505 (@aarch64_sve_add_<SVE2_INT_ADD_BINARY_LONG:sve_int_op><mode>)
38506 (@aarch64_sve_add_<SVE2_INT_ADD_BINARY_LONG_LANE:sve_int_op>_lane_<mode>)
38507 (@aarch64_sve_qadd_<SVE2_INT_QADD_BINARY_LONG:sve_int_op><mode>)
38508 (@aarch64_sve_qadd_<SVE2_INT_QADD_BINARY_LONG_LANE:sve_int_op>_lane_<mode>)
38509 (@aarch64_sve_sub_<SVE2_INT_SUB_BINARY_LONG:sve_int_op><mode>)
38510 (@aarch64_sve_sub_<SVE2_INT_SUB_BINARY_LONG_LANE:sve_int_op>_lane_<mode>)
38511 (@aarch64_sve_qsub_<SVE2_INT_QSUB_BINARY_LONG:sve_int_op><mode>)
38512 (@aarch64_sve_qsub_<SVE2_INT_QSUB_BINARY_LONG_LANE:sve_int_op>_lane_<mode>)
38513 (@aarch64_sve_<SVE2_FP_TERNARY_LONG:sve_fp_op><mode>): New patterns.
38514 (@aarch64_<SVE2_FP_TERNARY_LONG_LANE:sve_fp_op>_lane_<mode>)
38515 (@aarch64_sve_<SVE2_INT_UNARY_NARROWB:sve_int_op><mode>): Likewise.
38516 (@aarch64_sve_<SVE2_INT_UNARY_NARROWT:sve_int_op><mode>): Likewise.
38517 (@aarch64_sve_<SVE2_INT_BINARY_NARROWB:sve_int_op><mode>): Likewise.
38518 (@aarch64_sve_<SVE2_INT_BINARY_NARROWT:sve_int_op><mode>): Likewise.
38519 (<SHRNB:r>shrnb<mode>): Generalize to...
38520 (@aarch64_sve_<SVE2_INT_SHIFT_IMM_NARROWB:sve_int_op><mode>): ...this
38521 new pattern.
38522 (<SHRNT:r>shrnt<mode>): Generalize to...
38523 (@aarch64_sve_<SVE2_INT_SHIFT_IMM_NARROWT:sve_int_op><mode>): ...this
38524 new pattern.
38525 (@aarch64_pred_<SVE2_INT_BINARY_PAIR:sve_int_op><mode>): New pattern.
38526 (@aarch64_pred_<SVE2_FP_BINARY_PAIR:sve_fp_op><mode>): Likewise.
38527 (@cond_<SVE2_INT_BINARY_PAIR_LONG:sve_int_op><mode>): New expander.
38528 (*cond_<SVE2_INT_BINARY_PAIR_LONG:sve_int_op><mode>_2): New pattern.
38529 (*cond_<SVE2_INT_BINARY_PAIR_LONG:sve_int_op><mode>_z): Likewise.
38530 (@aarch64_sve_<SVE2_INT_CADD:optab><mode>): Likewise.
38531 (@aarch64_sve_<SVE2_INT_CMLA:optab><mode>): Likewise.
38532 (@aarch64_<SVE2_INT_CMLA:optab>_lane_<mode>): Likewise.
38533 (@aarch64_sve_<SVE2_INT_CDOT:optab><mode>): Likewise.
38534 (@aarch64_<SVE2_INT_CDOT:optab>_lane_<mode>): Likewise.
38535 (@aarch64_pred_<SVE2_COND_FP_UNARY_LONG:sve_fp_op><mode>): Likewise.
38536 (@cond_<SVE2_COND_FP_UNARY_LONG:sve_fp_op><mode>): New expander.
38537 (*cond_<SVE2_COND_FP_UNARY_LONG:sve_fp_op><mode>): New pattern.
38538 (@aarch64_sve2_cvtnt<mode>): Likewise.
38539 (@aarch64_pred_<SVE2_COND_FP_UNARY_NARROWB:sve_fp_op><mode>): Likewise.
38540 (@cond_<SVE2_COND_FP_UNARY_NARROWB:sve_fp_op><mode>): New expander.
38541 (*cond_<SVE2_COND_FP_UNARY_NARROWB:sve_fp_op><mode>_any): New pattern.
38542 (@aarch64_sve2_cvtxnt<mode>): Likewise.
38543 (@aarch64_pred_<SVE2_U32_UNARY:sve_int_op><mode>): Likewise.
38544 (@cond_<SVE2_U32_UNARY:sve_int_op><mode>): New expander.
38545 (*cond_<SVE2_U32_UNARY:sve_int_op><mode>): New pattern.
38546 (@aarch64_pred_<SVE2_COND_INT_UNARY_FP:sve_fp_op><mode>): Likewise.
38547 (@cond_<SVE2_COND_INT_UNARY_FP:sve_fp_op><mode>): New expander.
38548 (*cond_<SVE2_COND_INT_UNARY_FP:sve_fp_op><mode>): New pattern.
38549 (@aarch64_sve2_pmul<mode>): Likewise.
38550 (@aarch64_sve_<SVE2_PMULL:optab><mode>): Likewise.
38551 (@aarch64_sve_<SVE2_PMULL_PAIR:optab><mode>): Likewise.
38552 (@aarch64_sve2_tbl2<mode>): Likewise.
38553 (@aarch64_sve2_tbx<mode>): Likewise.
38554 (@aarch64_sve_<SVE2_INT_BITPERM:sve_int_op><mode>): Likewise.
38555 (@aarch64_sve2_histcnt<mode>): Likewise.
38556 (@aarch64_sve2_histseg<mode>): Likewise.
38557 (@aarch64_pred_<SVE2_MATCH:sve_int_op><mode>): Likewise.
38558 (*aarch64_pred_<SVE2_MATCH:sve_int_op><mode>_cc): Likewise.
38559 (*aarch64_pred_<SVE2_MATCH:sve_int_op><mode>_ptest): Likewise.
38560 (aarch64_sve2_aes<CRYPTO_AES:aes_op>): Likewise.
38561 (aarch64_sve2_aes<CRYPTO_AESMC:aesmc_op>): Likewise.
38562 (*aarch64_sve2_aese_fused, *aarch64_sve2_aesd_fused): Likewise.
38563 (aarch64_sve2_rax1, aarch64_sve2_sm4e, aarch64_sve2_sm4ekey): Likewise.
38564 (<su>mulh<r>s<mode>3): Update after above pattern name changes.
38565 * config/aarch64/iterators.md (VNx16QI_ONLY, VNx4SF_ONLY)
38566 (SVE_STRUCT2, SVE_FULL_BHI, SVE_FULL_HSI, SVE_FULL_HDI)
38567 (SVE2_PMULL_PAIR_I): New mode iterators.
38568 (UNSPEC_ADCLB, UNSPEC_ADCLT, UNSPEC_ADDHNB, UNSPEC_ADDHNT, UNSPEC_BDEP)
38569 (UNSPEC_BEXT, UNSPEC_BGRP, UNSPEC_CADD90, UNSPEC_CADD270, UNSPEC_CDOT)
38570 (UNSPEC_CDOT90, UNSPEC_CDOT180, UNSPEC_CDOT270, UNSPEC_CMLA)
38571 (UNSPEC_CMLA90, UNSPEC_CMLA180, UNSPEC_CMLA270, UNSPEC_COND_FCVTLT)
38572 (UNSPEC_COND_FCVTNT, UNSPEC_COND_FCVTX, UNSPEC_COND_FCVTXNT)
38573 (UNSPEC_COND_FLOGB, UNSPEC_EORBT, UNSPEC_EORTB, UNSPEC_FADDP)
38574 (UNSPEC_FMAXP, UNSPEC_FMAXNMP, UNSPEC_FMLALB, UNSPEC_FMLALT)
38575 (UNSPEC_FMLSLB, UNSPEC_FMLSLT, UNSPEC_FMINP, UNSPEC_FMINNMP)
38576 (UNSPEC_HISTCNT, UNSPEC_HISTSEG, UNSPEC_MATCH, UNSPEC_NMATCH)
38577 (UNSPEC_PMULLB, UNSPEC_PMULLB_PAIR, UNSPEC_PMULLT, UNSPEC_PMULLT_PAIR)
38578 (UNSPEC_RADDHNB, UNSPEC_RADDHNT, UNSPEC_RSUBHNB, UNSPEC_RSUBHNT)
38579 (UNSPEC_SLI, UNSPEC_SRI, UNSPEC_SABDLB, UNSPEC_SABDLT, UNSPEC_SADDLB)
38580 (UNSPEC_SADDLBT, UNSPEC_SADDLT, UNSPEC_SADDWB, UNSPEC_SADDWT)
38581 (UNSPEC_SBCLB, UNSPEC_SBCLT, UNSPEC_SMAXP, UNSPEC_SMINP)
38582 (UNSPEC_SQCADD90, UNSPEC_SQCADD270, UNSPEC_SQDMULLB, UNSPEC_SQDMULLBT)
38583 (UNSPEC_SQDMULLT, UNSPEC_SQRDCMLAH, UNSPEC_SQRDCMLAH90)
38584 (UNSPEC_SQRDCMLAH180, UNSPEC_SQRDCMLAH270, UNSPEC_SQRSHRNB)
38585 (UNSPEC_SQRSHRNT, UNSPEC_SQRSHRUNB, UNSPEC_SQRSHRUNT, UNSPEC_SQSHRNB)
38586 (UNSPEC_SQSHRNT, UNSPEC_SQSHRUNB, UNSPEC_SQSHRUNT, UNSPEC_SQXTNB)
38587 (UNSPEC_SQXTNT, UNSPEC_SQXTUNB, UNSPEC_SQXTUNT, UNSPEC_SSHLLB)
38588 (UNSPEC_SSHLLT, UNSPEC_SSUBLB, UNSPEC_SSUBLBT, UNSPEC_SSUBLT)
38589 (UNSPEC_SSUBLTB, UNSPEC_SSUBWB, UNSPEC_SSUBWT, UNSPEC_SUBHNB)
38590 (UNSPEC_SUBHNT, UNSPEC_TBL2, UNSPEC_UABDLB, UNSPEC_UABDLT)
38591 (UNSPEC_UADDLB, UNSPEC_UADDLT, UNSPEC_UADDWB, UNSPEC_UADDWT)
38592 (UNSPEC_UMAXP, UNSPEC_UMINP, UNSPEC_UQRSHRNB, UNSPEC_UQRSHRNT)
38593 (UNSPEC_UQSHRNB, UNSPEC_UQSHRNT, UNSPEC_UQXTNB, UNSPEC_UQXTNT)
38594 (UNSPEC_USHLLB, UNSPEC_USHLLT, UNSPEC_USUBLB, UNSPEC_USUBLT)
38595 (UNSPEC_USUBWB, UNSPEC_USUBWT): New unspecs.
38596 (UNSPEC_SMULLB, UNSPEC_SMULLT, UNSPEC_UMULLB, UNSPEC_UMULLT)
38597 (UNSPEC_SMULHS, UNSPEC_SMULHRS, UNSPEC_UMULHS, UNSPEC_UMULHRS)
38598 (UNSPEC_RSHRNB, UNSPEC_RSHRNT, UNSPEC_SHRNB, UNSPEC_SHRNT): Move
38599 further down file.
38600 (VNARROW, Ventype): New mode attributes.
38601 (Vewtype): Handle VNx2DI. Fix typo in comment.
38602 (VDOUBLE): New mode attribute.
38603 (sve_lane_con): Handle VNx8HI.
38604 (SVE_INT_UNARY): Include ss_abs and ss_neg for TARGET_SVE2.
38605 (SVE_INT_BINARY): Likewise ss_plus, us_plus, ss_minus and us_minus.
38606 (sve_int_op, sve_int_op_rev): Handle the above codes.
38607 (sve_pred_int_rhs2_operand): Likewise.
38608 (MULLBT, SHRNB, SHRNT): Delete.
38609 (SVE_INT_SHIFT_IMM): New int iterator.
38610 (SVE_WHILE): Add UNSPEC_WHILEGE, UNSPEC_WHILEGT, UNSPEC_WHILEHI
38611 and UNSPEC_WHILEHS for TARGET_SVE2.
38612 (SVE2_U32_UNARY, SVE2_INT_UNARY_NARROWB, SVE2_INT_UNARY_NARROWT)
38613 (SVE2_INT_BINARY, SVE2_INT_BINARY_LANE, SVE2_INT_BINARY_LONG)
38614 (SVE2_INT_BINARY_LONG_LANE, SVE2_INT_BINARY_NARROWB)
38615 (SVE2_INT_BINARY_NARROWT, SVE2_INT_BINARY_PAIR, SVE2_FP_BINARY_PAIR)
38616 (SVE2_INT_BINARY_PAIR_LONG, SVE2_INT_BINARY_WIDE): New int iterators.
38617 (SVE2_INT_SHIFT_IMM_LONG, SVE2_INT_SHIFT_IMM_NARROWB): Likewise.
38618 (SVE2_INT_SHIFT_IMM_NARROWT, SVE2_INT_SHIFT_INSERT, SVE2_INT_CADD)
38619 (SVE2_INT_BITPERM, SVE2_INT_TERNARY, SVE2_INT_TERNARY_LANE): Likewise.
38620 (SVE2_FP_TERNARY_LONG, SVE2_FP_TERNARY_LONG_LANE, SVE2_INT_CMLA)
38621 (SVE2_INT_CDOT, SVE2_INT_ADD_BINARY_LONG, SVE2_INT_QADD_BINARY_LONG)
38622 (SVE2_INT_SUB_BINARY_LONG, SVE2_INT_QSUB_BINARY_LONG): Likewise.
38623 (SVE2_INT_ADD_BINARY_LONG_LANE, SVE2_INT_QADD_BINARY_LONG_LANE)
38624 (SVE2_INT_SUB_BINARY_LONG_LANE, SVE2_INT_QSUB_BINARY_LONG_LANE)
38625 (SVE2_COND_INT_UNARY_FP, SVE2_COND_FP_UNARY_LONG): Likewise.
38626 (SVE2_COND_FP_UNARY_NARROWB, SVE2_COND_INT_BINARY): Likewise.
38627 (SVE2_COND_INT_BINARY_NOREV, SVE2_COND_INT_BINARY_REV): Likewise.
38628 (SVE2_COND_INT_SHIFT, SVE2_MATCH, SVE2_PMULL): Likewise.
38629 (optab): Handle the new unspecs.
38630 (su, r): Remove entries for UNSPEC_SHRNB, UNSPEC_SHRNT, UNSPEC_RSHRNB
38631 and UNSPEC_RSHRNT.
38632 (lr): Handle the new unspecs.
38633 (bt): Delete.
38634 (cmp_op, while_optab_cmp, sve_int_op): Handle the new unspecs.
38635 (sve_int_op_rev, sve_int_add_op, sve_int_qadd_op, sve_int_sub_op)
38636 (sve_int_qsub_op): New int attributes.
38637 (sve_fp_op, rot): Handle the new unspecs.
38638 * config/aarch64/aarch64-sve-builtins.h
38639 (function_resolver::require_matching_pointer_type): Declare.
38640 (function_resolver::resolve_unary): Add an optional boolean argument.
38641 (function_resolver::finish_opt_n_resolution): Add an optional
38642 type_suffix_index argument.
38643 (gimple_folder::redirect_call): Declare.
38644 (gimple_expander::prepare_gather_address_operands): Add an optional
38645 bool parameter.
38646 * config/aarch64/aarch64-sve-builtins.cc: Include
38647 aarch64-sve-builtins-sve2.h.
38648 (TYPES_b_unsigned, TYPES_b_integer, TYPES_bh_integer): New macros.
38649 (TYPES_bs_unsigned, TYPES_hs_signed, TYPES_hs_integer): Likewise.
38650 (TYPES_hd_unsigned, TYPES_hsd_signed): Likewise.
38651 (TYPES_hsd_integer): Use TYPES_hsd_signed.
38652 (TYPES_s_float_hsd_integer, TYPES_s_float_sd_integer): New macros.
38653 (TYPES_s_unsigned): Likewise.
38654 (TYPES_s_integer): Use TYPES_s_unsigned.
38655 (TYPES_sd_signed, TYPES_sd_unsigned): New macros.
38656 (TYPES_sd_integer): Use them.
38657 (TYPES_d_unsigned): New macro.
38658 (TYPES_d_integer): Use it.
38659 (TYPES_d_data, TYPES_cvt_long, TYPES_cvt_narrow_s): New macros.
38660 (TYPES_cvt_narrow): Likewise.
38661 (DEF_SVE_TYPES_ARRAY): Include the new types macros above.
38662 (preds_mx): New variable.
38663 (function_builder::add_overloaded_function): Allow the new feature
38664 set to be more restrictive than the original one.
38665 (function_resolver::infer_pointer_type): Remove qualifiers from
38666 the pointer type before printing it.
38667 (function_resolver::require_matching_pointer_type): New function.
38668 (function_resolver::resolve_sv_displacement): Handle functions
38669 that don't support 32-bit vector indices or svint32_t vector offsets.
38670 (function_resolver::finish_opt_n_resolution): Take the inferred type
38671 as a separate argument.
38672 (function_resolver::resolve_unary): Optionally treat all forms in
38673 the same way as normal merging functions.
38674 (gimple_folder::redirect_call): New function.
38675 (function_expander::prepare_gather_address_operands): Add an argument
38676 that says whether scaled forms are available. If they aren't,
38677 handle scaling of vector indices and don't add the extension and
38678 scaling operands.
38679 (function_expander::map_to_unspecs): If aarch64_sve isn't available,
38680 fall back to using cond_* instead.
38681 * config/aarch64/aarch64-sve-builtins-functions.h (rtx_code_function):
38682 Split out the member variables into...
38683 (rtx_code_function_base): ...this new base class.
38684 (rtx_code_function_rotated): Inherit rtx_code_function_base.
38685 (unspec_based_function): Split out the member variables into...
38686 (unspec_based_function_base): ...this new base class.
38687 (unspec_based_function_rotated): Inherit unspec_based_function_base.
38688 (unspec_based_function_exact_insn): New class.
38689 (unspec_based_add_function, unspec_based_add_lane_function)
38690 (unspec_based_lane_function, unspec_based_pred_function)
38691 (unspec_based_qadd_function, unspec_based_qadd_lane_function)
38692 (unspec_based_qsub_function, unspec_based_qsub_lane_function)
38693 (unspec_based_sub_function, unspec_based_sub_lane_function): New
38694 typedefs.
38695 (unspec_based_fused_function): New class.
38696 (unspec_based_mla_function, unspec_based_mls_function): New typedefs.
38697 (unspec_based_fused_lane_function): New class.
38698 (unspec_based_mla_lane_function, unspec_based_mls_lane_function): New
38699 typedefs.
38700 (CODE_FOR_MODE1): New macro.
38701 (fixed_insn_function): New class.
38702 (while_comparison): Likewise.
38703 * config/aarch64/aarch64-sve-builtins-shapes.h (binary_long_lane)
38704 (binary_long_opt_n, binary_narrowb_opt_n, binary_narrowt_opt_n)
38705 (binary_to_uint, binary_wide, binary_wide_opt_n, compare, compare_ptr)
38706 (load_ext_gather_index_restricted, load_ext_gather_offset_restricted)
38707 (load_gather_sv_restricted, shift_left_imm_long): Declare.
38708 (shift_left_imm_to_uint, shift_right_imm_narrowb): Likewise.
38709 (shift_right_imm_narrowt, shift_right_imm_narrowb_to_uint): Likewise.
38710 (shift_right_imm_narrowt_to_uint, store_scatter_index_restricted)
38711 (store_scatter_offset_restricted, tbl_tuple, ternary_long_lane)
38712 (ternary_long_opt_n, ternary_qq_lane_rotate, ternary_qq_rotate)
38713 (ternary_shift_left_imm, ternary_shift_right_imm, ternary_uint)
38714 (unary_convert_narrowt, unary_long, unary_narrowb, unary_narrowt)
38715 (unary_narrowb_to_uint, unary_narrowt_to_uint, unary_to_int): Likewise.
38716 * config/aarch64/aarch64-sve-builtins-shapes.cc (apply_predication):
38717 Also add an initial argument for unary_convert_narrowt, regardless
38718 of the predication type.
38719 (build_32_64): Allow loads and stores to specify MODE_none.
38720 (build_sv_index64, build_sv_uint_offset): New functions.
38721 (long_type_suffix): New function.
38722 (binary_imm_narrowb_base, binary_imm_narrowt_base): New classes.
38723 (binary_imm_long_base, load_gather_sv_base): Likewise.
38724 (shift_right_imm_narrow_wrapper, ternary_shift_imm_base): Likewise.
38725 (ternary_resize2_opt_n_base, ternary_resize2_lane_base): Likewise.
38726 (unary_narrowb_base, unary_narrowt_base): Likewise.
38727 (binary_long_lane_def, binary_long_lane): New shape.
38728 (binary_long_opt_n_def, binary_long_opt_n): Likewise.
38729 (binary_narrowb_opt_n_def, binary_narrowb_opt_n): Likewise.
38730 (binary_narrowt_opt_n_def, binary_narrowt_opt_n): Likewise.
38731 (binary_to_uint_def, binary_to_uint): Likewise.
38732 (binary_wide_def, binary_wide): Likewise.
38733 (binary_wide_opt_n_def, binary_wide_opt_n): Likewise.
38734 (compare_def, compare): Likewise.
38735 (compare_ptr_def, compare_ptr): Likewise.
38736 (load_ext_gather_index_restricted_def,
38737 load_ext_gather_index_restricted): Likewise.
38738 (load_ext_gather_offset_restricted_def,
38739 load_ext_gather_offset_restricted): Likewise.
38740 (load_gather_sv_def): Inherit from load_gather_sv_base.
38741 (load_gather_sv_restricted_def, load_gather_sv_restricted): New shape.
38742 (shift_left_imm_def, shift_left_imm): Likewise.
38743 (shift_left_imm_long_def, shift_left_imm_long): Likewise.
38744 (shift_left_imm_to_uint_def, shift_left_imm_to_uint): Likewise.
38745 (store_scatter_index_restricted_def,
38746 store_scatter_index_restricted): Likewise.
38747 (store_scatter_offset_restricted_def,
38748 store_scatter_offset_restricted): Likewise.
38749 (tbl_tuple_def, tbl_tuple): Likewise.
38750 (ternary_long_lane_def, ternary_long_lane): Likewise.
38751 (ternary_long_opt_n_def, ternary_long_opt_n): Likewise.
38752 (ternary_qq_lane_def): Inherit from ternary_resize2_lane_base.
38753 (ternary_qq_lane_rotate_def, ternary_qq_lane_rotate): New shape
38754 (ternary_qq_opt_n_def): Inherit from ternary_resize2_opt_n_base.
38755 (ternary_qq_rotate_def, ternary_qq_rotate): New shape.
38756 (ternary_shift_left_imm_def, ternary_shift_left_imm): Likewise.
38757 (ternary_shift_right_imm_def, ternary_shift_right_imm): Likewise.
38758 (ternary_uint_def, ternary_uint): Likewise.
38759 (unary_convert): Fix typo in comment.
38760 (unary_convert_narrowt_def, unary_convert_narrowt): New shape.
38761 (unary_long_def, unary_long): Likewise.
38762 (unary_narrowb_def, unary_narrowb): Likewise.
38763 (unary_narrowt_def, unary_narrowt): Likewise.
38764 (unary_narrowb_to_uint_def, unary_narrowb_to_uint): Likewise.
38765 (unary_narrowt_to_uint_def, unary_narrowt_to_uint): Likewise.
38766 (unary_to_int_def, unary_to_int): Likewise.
38767 * config/aarch64/aarch64-sve-builtins-base.cc (unspec_cmla)
38768 (unspec_fcmla, unspec_cond_fcmla, expand_mla_mls_lane): New functions.
38769 (svasrd_impl): Delete.
38770 (svcadd_impl::expand): Handle integer operations too.
38771 (svcmla_impl::expand, svcmla_lane::expand): Likewise, using the
38772 new functions to derive the unspec numbers.
38773 (svmla_svmls_lane_impl): Replace with...
38774 (svmla_lane_impl, svmls_lane_impl): ...these new classes. Handle
38775 integer operations too.
38776 (svwhile_impl): Rename to...
38777 (svwhilelx_impl): ...this and inherit from while_comparison.
38778 (svasrd): Use unspec_based_function.
38779 (svmla_lane): Use svmla_lane_impl.
38780 (svmls_lane): Use svmls_lane_impl.
38781 (svrecpe, svrsqrte): Handle unsigned integer operations too.
38782 (svwhilele, svwhilelt): Use svwhilelx_impl.
38783 * config/aarch64/aarch64-sve-builtins-sve2.h: New file.
38784 * config/aarch64/aarch64-sve-builtins-sve2.cc: Likewise.
38785 * config/aarch64/aarch64-sve-builtins-sve2.def: Likewise.
38786 * config/aarch64/aarch64-sve-builtins.def: Include
38787 aarch64-sve-builtins-sve2.def.
38788
38789 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
38790
38791 * config/aarch64/aarch64-protos.h (aarch64_sve_arith_immediate_p)
38792 (aarch64_sve_sqadd_sqsub_immediate_p): Add a machine_mode argument.
38793 * config/aarch64/aarch64.c (aarch64_sve_arith_immediate_p)
38794 (aarch64_sve_sqadd_sqsub_immediate_p): Likewise. Handle scalar
38795 immediates as well as vector ones.
38796 * config/aarch64/predicates.md (aarch64_sve_arith_immediate)
38797 (aarch64_sve_sub_arith_immediate, aarch64_sve_qadd_immediate)
38798 (aarch64_sve_qsub_immediate): Update calls accordingly.
38799
38800 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
38801
38802 * config/aarch64/aarch64-sve2.md: Add banner comments.
38803 (<su>mulh<r>s<mode>3): Move further up file.
38804 (<su>mull<bt><Vwide>, <r>shrnb<mode>, <r>shrnt<mode>)
38805 (*aarch64_sve2_sra<mode>): Move further down file.
38806 * config/aarch64/t-aarch64 (s-check-sve-md): Check aarch64-sve2.md too.
38807
38808 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
38809
38810 * config/aarch64/iterators.md (SVE_WHILE): Add UNSPEC_WHILERW
38811 and UNSPEC_WHILEWR.
38812 (while_optab_cmp): Handle them.
38813 * config/aarch64/aarch64-sve.md
38814 (*while_<while_optab_cmp><GPI:mode><PRED_ALL:mode>_ptest): Make public
38815 and add a "@" marker.
38816 * config/aarch64/aarch64-sve2.md (check_<raw_war>_ptrs<mode>): Use it
38817 instead of gen_aarch64_sve2_while_ptest.
38818 (@aarch64_sve2_while<cmp_op><GPI:mode><PRED_ALL:mode>_ptest): Delete.
38819
38820 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
38821
38822 * config/aarch64/aarch64.md (UNSPEC_WHILE_LE): Rename to...
38823 (UNSPEC_WHILELE): ...this.
38824 (UNSPEC_WHILE_LO): Rename to...
38825 (UNSPEC_WHILELO): ...this.
38826 (UNSPEC_WHILE_LS): Rename to...
38827 (UNSPEC_WHILELS): ...this.
38828 (UNSPEC_WHILE_LT): Rename to...
38829 (UNSPEC_WHILELT): ...this.
38830 * config/aarch64/iterators.md (SVE_WHILE): Update accordingly.
38831 (cmp_op, while_optab_cmp): Likewise.
38832 * config/aarch64/aarch64.c (aarch64_sve_move_pred_via_while): Likewise.
38833 * config/aarch64/aarch64-sve-builtins-base.cc (svwhilele): Likewise.
38834 (svwhilelt): Likewise.
38835
38836 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
38837
38838 * config/aarch64/aarch64-sve-builtins-shapes.h (unary_count): Delete.
38839 (unary_to_uint): Define.
38840 * config/aarch64/aarch64-sve-builtins-shapes.cc (unary_count_def)
38841 (unary_count): Rename to...
38842 (unary_to_uint_def, unary_to_uint): ...this.
38843 * config/aarch64/aarch64-sve-builtins-base.def: Update accordingly.
38844
38845 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
38846
38847 * config/aarch64/aarch64-sve-builtins-functions.h
38848 (code_for_mode_function): New class.
38849 (CODE_FOR_MODE0, QUIET_CODE_FOR_MODE0): New macros.
38850 * config/aarch64/aarch64-sve-builtins-base.cc (svcompact_impl)
38851 (svext_impl, svmul_lane_impl, svsplice_impl, svtmad_impl): Delete.
38852 (svcompact, svext, svsplice): Use QUIET_CODE_FOR_MODE0.
38853 (svmul_lane, svtmad): Use CODE_FOR_MODE0.
38854
38855 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
38856
38857 * config/aarch64/iterators.md (addsub): New code attribute.
38858 * config/aarch64/aarch64-simd.md (aarch64_<su_optab><optab><mode>):
38859 Re-express as...
38860 (aarch64_<su_optab>q<addsub><mode>): ...this, making the same change
38861 in the asm string and attributes. Fix indentation.
38862 * config/aarch64/aarch64-sve.md (@aarch64_<su_optab><optab><mode>):
38863 Re-express as...
38864 (@aarch64_sve_<optab><mode>): ...this.
38865 * config/aarch64/aarch64-sve-builtins.h
38866 (function_expander::expand_signed_unpred_op): Delete.
38867 * config/aarch64/aarch64-sve-builtins.cc
38868 (function_expander::expand_signed_unpred_op): Likewise.
38869 (function_expander::map_to_rtx_codes): If the optab isn't defined,
38870 try using code_for_aarch64_sve instead.
38871 * config/aarch64/aarch64-sve-builtins-base.cc (svqadd_impl): Delete.
38872 (svqsub_impl): Likewise.
38873 (svqadd, svqsub): Use rtx_code_function instead.
38874
38875 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
38876
38877 * config/aarch64/iterators.md (SRHSUB, URHSUB): Delete.
38878 (HADDSUB, sur, addsub): Remove them.
38879
38880 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
38881
38882 * tree-nrv.c (pass_return_slot::execute): Handle all internal
38883 functions the same way, rather than singling out those that
38884 aren't mapped directly to optabs.
38885
38886 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
38887
38888 * target.def (compatible_vector_types_p): New target hook.
38889 * hooks.h (hook_bool_const_tree_const_tree_true): Declare.
38890 * hooks.c (hook_bool_const_tree_const_tree_true): New function.
38891 * doc/tm.texi.in (TARGET_COMPATIBLE_VECTOR_TYPES_P): New hook.
38892 * doc/tm.texi: Regenerate.
38893 * gimple-expr.c: Include target.h.
38894 (useless_type_conversion_p): Use targetm.compatible_vector_types_p.
38895 * config/aarch64/aarch64.c (aarch64_compatible_vector_types_p): New
38896 function.
38897 (TARGET_COMPATIBLE_VECTOR_TYPES_P): Define.
38898 * config/aarch64/aarch64-sve-builtins.cc (gimple_folder::convert_pred):
38899 Use the original predicate if it already has a suitable type.
38900
38901 2020-01-09 Martin Jambor <mjambor@suse.cz>
38902
38903 * cgraph.h (cgraph_edge): Make remove, set_call_stmt, make_direct,
38904 resolve_speculation and redirect_call_stmt_to_callee static. Change
38905 return type of set_call_stmt to cgraph_edge *.
38906 * auto-profile.c (afdo_indirect_call): Adjust call to
38907 redirect_call_stmt_to_callee.
38908 * cgraph.c (cgraph_edge::set_call_stmt): Make return cgraph-edge *,
38909 make the this pointer explicit, adjust self-recursive calls and the
38910 call top make_direct. Return the resulting edge.
38911 (cgraph_edge::remove): Make this pointer explicit.
38912 (cgraph_edge::resolve_speculation): Likewise, adjust call to remove.
38913 (cgraph_edge::make_direct): Likewise, adjust call to
38914 resolve_speculation.
38915 (cgraph_edge::redirect_call_stmt_to_callee): Likewise, also adjust
38916 call to set_call_stmt.
38917 (cgraph_update_edges_for_call_stmt_node): Update call to
38918 set_call_stmt and remove.
38919 * cgraphclones.c (cgraph_node::set_call_stmt_including_clones):
38920 Renamed edge to master_edge. Adjusted calls to set_call_stmt.
38921 (cgraph_node::create_edge_including_clones): Moved "first" definition
38922 of edge to the block where it was used. Adjusted calls to
38923 set_call_stmt.
38924 (cgraph_node::remove_symbol_and_inline_clones): Adjust call to
38925 cgraph_edge::remove.
38926 * cgraphunit.c (walk_polymorphic_call_targets): Adjusted calls to
38927 make_direct and redirect_call_stmt_to_callee.
38928 * ipa-fnsummary.c (redirect_to_unreachable): Adjust calls to
38929 resolve_speculation and make_direct.
38930 * ipa-inline-transform.c (inline_transform): Adjust call to
38931 redirect_call_stmt_to_callee.
38932 (check_speculations_1):: Adjust call to resolve_speculation.
38933 * ipa-inline.c (resolve_noninline_speculation): Adjust call to
38934 resolve-speculation.
38935 (inline_small_functions): Adjust call to resolve_speculation.
38936 (ipa_inline): Likewise.
38937 * ipa-prop.c (ipa_make_edge_direct_to_target): Adjust call to
38938 make_direct.
38939 * ipa-visibility.c (function_and_variable_visibility): Make iteration
38940 safe with regards to edge removal, adjust calls to
38941 redirect_call_stmt_to_callee.
38942 * ipa.c (walk_polymorphic_call_targets): Adjust calls to make_direct
38943 and redirect_call_stmt_to_callee.
38944 * multiple_target.c (create_dispatcher_calls): Adjust call to
38945 redirect_call_stmt_to_callee
38946 (redirect_to_specific_clone): Likewise.
38947 * tree-cfgcleanup.c (delete_unreachable_blocks_update_callgraph):
38948 Adjust calls to cgraph_edge::remove.
38949 * tree-inline.c (copy_bb): Adjust call to set_call_stmt.
38950 (redirect_all_calls): Adjust call to redirect_call_stmt_to_callee.
38951 (expand_call_inline): Adjust call to cgraph_edge::remove.
38952
38953 2020-01-09 Martin Liska <mliska@suse.cz>
38954
38955 * params.opt: Set Optimization for
38956 param_max_speculative_devirt_maydefs.
38957
38958 2020-01-09 Martin Sebor <msebor@redhat.com>
38959
38960 PR middle-end/93200
38961 PR fortran/92956
38962 * builtins.c (compute_objsize): Avoid handling MEM_REFs of vector type.
38963
38964 2020-01-09 Martin Liska <mliska@suse.cz>
38965
38966 * auto-profile.c (auto_profile): Use opt_for_fn
38967 for a parameter.
38968 * ipa-cp.c (ipcp_lattice::add_value): Likewise.
38969 (propagate_vals_across_arith_jfunc): Likewise.
38970 (hint_time_bonus): Likewise.
38971 (incorporate_penalties): Likewise.
38972 (good_cloning_opportunity_p): Likewise.
38973 (perform_estimation_of_a_value): Likewise.
38974 (estimate_local_effects): Likewise.
38975 (ipcp_propagate_stage): Likewise.
38976 * ipa-fnsummary.c (decompose_param_expr): Likewise.
38977 (set_switch_stmt_execution_predicate): Likewise.
38978 (analyze_function_body): Likewise.
38979 * ipa-inline-analysis.c (offline_size): Likewise.
38980 * ipa-inline.c (early_inliner): Likewise.
38981 * ipa-prop.c (ipa_analyze_node): Likewise.
38982 (ipcp_transform_function): Likewise.
38983 * ipa-sra.c (process_scan_results): Likewise.
38984 (ipa_sra_summarize_function): Likewise.
38985 * params.opt: Rename ipcp-unit-growth to
38986 ipa-cp-unit-growth. Add Optimization for various
38987 IPA-related parameters.
38988
38989 2020-01-09 Richard Biener <rguenther@suse.de>
38990
38991 PR middle-end/93054
38992 * gimplify.c (gimplify_expr): Deal with NOP definitions.
38993
38994 2020-01-09 Richard Biener <rguenther@suse.de>
38995
38996 PR tree-optimization/93040
38997 * gimple-ssa-store-merging.c (find_bswap_or_nop): Raise search limit.
38998
38999 2020-01-09 Georg-Johann Lay <avr@gjlay.de>
39000
39001 * common/config/avr/avr-common.c (avr_option_optimization_table)
39002 [OPT_LEVELS_1_PLUS]: Set -fsplit-wide-types-early.
39003
39004 2020-01-09 Martin Liska <mliska@suse.cz>
39005
39006 * cgraphclones.c (symbol_table::materialize_all_clones):
39007 Use cgraph_node::dump_name.
39008
39009 2020-01-09 Jakub Jelinek <jakub@redhat.com>
39010
39011 PR inline-asm/93202
39012 * config/riscv/riscv.c (riscv_print_operand_reloc): Use
39013 output_operand_lossage instead of gcc_unreachable.
39014 * doc/md.texi (riscv f constraint): Fix typo.
39015
39016 PR target/93141
39017 * config/i386/i386.md (subv<mode>4): Use SWIDWI iterator instead of
39018 SWI. Use <general_hilo_operand> instead of <general_operand>. Use
39019 CONST_SCALAR_INT_P instead of CONST_INT_P.
39020 (*subv<mode>4_1): Rename to ...
39021 (subv<mode>4_1): ... this.
39022 (*subv<dwi>4_doubleword, *addv<dwi>4_doubleword_1): New
39023 define_insn_and_split patterns.
39024 (*subv<mode>4_overflow_1, *addv<mode>4_overflow_2): New define_insn
39025 patterns.
39026
39027 2020-01-08 David Malcolm <dmalcolm@redhat.com>
39028
39029 * vec.c (class selftest::count_dtor): New class.
39030 (selftest::test_auto_delete_vec): New test.
39031 (selftest::vec_c_tests): Call it.
39032 * vec.h (class auto_delete_vec): New class template.
39033 (auto_delete_vec<T>::~auto_delete_vec): New dtor.
39034
39035 2020-01-08 David Malcolm <dmalcolm@redhat.com>
39036
39037 * sbitmap.h (auto_sbitmap): Add operator const_sbitmap.
39038
39039 2020-01-08 Jim Wilson <jimw@sifive.com>
39040
39041 * config/riscv/riscv.c (riscv_legitimize_tls_address): Ifdef out
39042 use of TLS_MODEL_LOCAL_EXEC when not pic.
39043
39044 2020-01-08 David Malcolm <dmalcolm@redhat.com>
39045
39046 * hash-map-tests.c (selftest::test_map_of_strings_to_int): Fix
39047 memory leak.
39048
39049 2020-01-08 Jakub Jelinek <jakub@redhat.com>
39050
39051 PR target/93187
39052 * config/i386/i386.md (*stack_protect_set_2_<mode> peephole2,
39053 *stack_protect_set_3 peephole2): Also check that the second
39054 insns source is general_operand.
39055
39056 PR target/93174
39057 * config/i386/i386.md (addcarry<mode>_0): Use nonimmediate_operand
39058 predicate for output operand instead of register_operand.
39059 (addcarry<mode>, addcarry<mode>_1): Likewise. Add alternative with
39060 memory destination and non-memory operands[2].
39061
39062 2020-01-08 Martin Liska <mliska@suse.cz>
39063
39064 * cgraph.c (cgraph_node::dump): Use ::dump_name or
39065 ::dump_asm_name instead of (::name or ::asm_name).
39066 * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
39067 * cgraphunit.c (walk_polymorphic_call_targets): Likewise.
39068 (analyze_functions): Likewise.
39069 (expand_all_functions): Likewise.
39070 * ipa-cp.c (ipcp_cloning_candidate_p): Likewise.
39071 (propagate_bits_across_jump_function): Likewise.
39072 (dump_profile_updates): Likewise.
39073 (ipcp_store_bits_results): Likewise.
39074 (ipcp_store_vr_results): Likewise.
39075 * ipa-devirt.c (dump_targets): Likewise.
39076 * ipa-fnsummary.c (analyze_function_body): Likewise.
39077 * ipa-hsa.c (check_warn_node_versionable): Likewise.
39078 (process_hsa_functions): Likewise.
39079 * ipa-icf.c (sem_item_optimizer::merge_classes): Likewise.
39080 (set_alias_uids): Likewise.
39081 * ipa-inline-transform.c (save_inline_function_body): Likewise.
39082 * ipa-inline.c (recursive_inlining): Likewise.
39083 (inline_to_all_callers_1): Likewise.
39084 (ipa_inline): Likewise.
39085 * ipa-profile.c (ipa_propagate_frequency_1): Likewise.
39086 (ipa_propagate_frequency): Likewise.
39087 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
39088 (remove_described_reference): Likewise.
39089 * ipa-pure-const.c (worse_state): Likewise.
39090 (check_retval_uses): Likewise.
39091 (analyze_function): Likewise.
39092 (propagate_pure_const): Likewise.
39093 (propagate_nothrow): Likewise.
39094 (dump_malloc_lattice): Likewise.
39095 (propagate_malloc): Likewise.
39096 (pass_local_pure_const::execute): Likewise.
39097 * ipa-visibility.c (optimize_weakref): Likewise.
39098 (function_and_variable_visibility): Likewise.
39099 * ipa.c (symbol_table::remove_unreachable_nodes): Likewise.
39100 (ipa_discover_variable_flags): Likewise.
39101 * lto-streamer-out.c (output_function): Likewise.
39102 (output_constructor): Likewise.
39103 * tree-inline.c (copy_bb): Likewise.
39104 * tree-ssa-structalias.c (ipa_pta_execute): Likewise.
39105 * varpool.c (symbol_table::remove_unreferenced_decls): Likewise.
39106
39107 2020-01-08 Richard Biener <rguenther@suse.de>
39108
39109 PR middle-end/93199
39110 * tree-eh.c (sink_clobbers): Update virtual operands for
39111 the first and last stmt only. Add a dry-run capability.
39112 (pass_lower_eh_dispatch::execute): Perform clobber sinking
39113 after CFG manipulations and in RPO order to catch all
39114 secondary opportunities reliably.
39115
39116 2020-01-08 Georg-Johann Lay <avr@gjlay.de>
39117
39118 PR target/93182
39119 * doc/invoke.texi (AVR Options) <-nodevicespecs>: Document.
39120
39121 2019-01-08 Richard Biener <rguenther@suse.de>
39122
39123 PR middle-end/93199
39124 * gimple-fold.c (rewrite_to_defined_overflow): Mark stmt modified.
39125 * tree-ssa-loop-im.c (move_computations_worker): Properly adjust
39126 virtual operand, also updating SSA use.
39127 * gimple-loop-interchange.cc (loop_cand::undo_simple_reduction):
39128 Update stmt after resetting virtual operand.
39129 (tree_loop_interchange::move_code_to_inner_loop): Likewise.
39130 * gimple-iterator.c (gsi_remove): When not removing the stmt
39131 permanently do not delink immediate uses or mark the stmt modified.
39132
39133 2020-01-08 Martin Liska <mliska@suse.cz>
39134
39135 * ipa-fnsummary.c (dump_ipa_call_summary): Use symtab_node::dump_name.
39136 (ipa_call_context::estimate_size_and_time): Likewise.
39137 (inline_analyze_function): Likewise.
39138
39139 2020-01-08 Martin Liska <mliska@suse.cz>
39140
39141 * cgraph.c (cgraph_node::dump): Use systematically
39142 dump_asm_name.
39143
39144 2020-01-08 Georg-Johann Lay <avr@gjlay.de>
39145
39146 Add -nodevicespecs option for avr.
39147
39148 PR target/93182
39149 * config/avr/avr.opt (-nodevicespecs): New driver option.
39150 * config/avr/driver-avr.c (avr_devicespecs_file): Only issue
39151 "-specs=device-specs/..." if that option is not set.
39152 * doc/invoke.texi (AVR Options) <-nodevicespecs>: Document.
39153
39154 2020-01-08 Georg-Johann Lay <avr@gjlay.de>
39155
39156 Implement 64-bit double functions for avr.
39157
39158 PR target/92055
39159 * config.gcc (tm_defines) [target=avr]: Support --with-libf7,
39160 --with-double-comparison.
39161 * doc/install.texi: Document them.
39162 * config/avr/avr-c.c (avr_cpu_cpp_builtins)
39163 <WITH_LIBF7_LIBGCC, WITH_LIBF7_MATH, WITH_LIBF7_MATH_SYMBOLS>
39164 <WITH_DOUBLE_COMPARISON>: New built-in defines.
39165 * doc/invoke.texi (AVR Built-in Macros): Document them.
39166 * config/avr/avr-protos.h (avr_float_lib_compare_returns_bool): New.
39167 * config/avr/avr.c (avr_float_lib_compare_returns_bool): New function.
39168 * config/avr/avr.h (FLOAT_LIB_COMPARE_RETURNS_BOOL): New macro.
39169
39170 2020-01-08 Richard Earnshaw <rearnsha@arm.com>
39171
39172 PR target/93188
39173 * config/arm/t-multilib (MULTILIB_MATCHES): Add rules to match
39174 armv7-a{+mp,+sec,+mp+sec} to appropriate armv7 multilib variants
39175 when only building rm-profile multilibs.
39176
39177 2020-01-08 Feng Xue <fxue@os.amperecomputing.com>
39178
39179 PR ipa/93084
39180 * ipa-cp.c (self_recursively_generated_p): Find matched aggregate
39181 lattice for a value to check.
39182 (propagate_vals_across_arith_jfunc): Add an assertion to ensure
39183 finite propagation in self-recursive scc.
39184
39185 2020-01-08 Luo Xiong Hu <luoxhu@linux.ibm.com>
39186
39187 * ipa-inline.c (caller_growth_limits): Restore the AND.
39188
39189 2020-01-07 Andrew Stubbs <ams@codesourcery.com>
39190
39191 * config/gcn/gcn-valu.md (VEC_1REG_INT_ALT): Delete iterator.
39192 (VEC_ALLREG_ALT): New iterator.
39193 (VEC_ALLREG_INT_MODE): New iterator.
39194 (VCMP_MODE): New iterator.
39195 (VCMP_MODE_INT): New iterator.
39196 (vec_cmpu<mode>di): Use VCMP_MODE_INT.
39197 (vec_cmp<u>v64qidi): New define_expand.
39198 (vec_cmp<mode>di_exec): Use VCMP_MODE.
39199 (vec_cmpu<mode>di_exec): New define_expand.
39200 (vec_cmp<u>v64qidi_exec): New define_expand.
39201 (vec_cmp<mode>di_dup): Use VCMP_MODE.
39202 (vec_cmp<mode>di_dup_exec): Use VCMP_MODE.
39203 (vcond<VEC_ALL1REG_MODE:mode><VEC_1REG_ALT:mode>): Rename ...
39204 (vcond<VEC_ALLREG_MODE:mode><VEC_ALLREG_ALT:mode>): ... to this.
39205 (vcond<VEC_ALL1REG_MODE:mode><VEC_1REG_ALT:mode>_exec): Rename ...
39206 (vcond<VEC_ALLREG_MODE:mode><VEC_ALLREG_ALT:mode>_exec): ... to this.
39207 (vcondu<VEC_ALL1REG_MODE:mode><VEC_1REG_INT_ALT:mode>): Rename ...
39208 (vcondu<VEC_ALLREG_MODE:mode><VEC_ALLREG_INT_MODE:mode>): ... to this.
39209 (vcondu<VEC_ALL1REG_MODE:mode><VEC_1REG_INT_ALT:mode>_exec): Rename ...
39210 (vcondu<VEC_ALLREG_MODE:mode><VEC_ALLREG_INT_MODE:mode>_exec): ... to
39211 this.
39212 * config/gcn/gcn.c (print_operand): Fix 8 and 16 bit suffixes.
39213 * config/gcn/gcn.md (expander): Add sign_extend and zero_extend.
39214
39215 2020-01-07 Andrew Stubbs <ams@codesourcery.com>
39216
39217 * config/gcn/constraints.md (DA): Update description and match.
39218 (DB): Likewise.
39219 (Db): New constraint.
39220 * config/gcn/gcn-protos.h (gcn_inline_constant64_p): Add second
39221 parameter.
39222 * config/gcn/gcn.c (gcn_inline_constant64_p): Add 'mixed' parameter.
39223 Implement 'Db' mixed immediate type.
39224 * config/gcn/gcn-valu.md (addcv64si3<exec_vcc>): Rework constraints.
39225 (addcv64si3_dup<exec_vcc>): Delete.
39226 (subcv64si3<exec_vcc>): Rework constraints.
39227 (addv64di3): Rework constraints.
39228 (addv64di3_exec): Rework constraints.
39229 (subv64di3): Rework constraints.
39230 (addv64di3_dup): Delete.
39231 (addv64di3_dup_exec): Delete.
39232 (addv64di3_zext): Rework constraints.
39233 (addv64di3_zext_exec): Rework constraints.
39234 (addv64di3_zext_dup): Rework constraints.
39235 (addv64di3_zext_dup_exec): Rework constraints.
39236 (addv64di3_zext_dup2): Rework constraints.
39237 (addv64di3_zext_dup2_exec): Rework constraints.
39238 (addv64di3_sext_dup2): Rework constraints.
39239 (addv64di3_sext_dup2_exec): Rework constraints.
39240
39241 2020-01-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
39242
39243 * doc/sourcebuild.texi (arm_little_endian, arm_nothumb): Documented
39244 existing target checks.
39245
39246 2020-01-07 Richard Biener <rguenther@suse.de>
39247
39248 * doc/install.texi: Bump minimal supported MPC version.
39249
39250 2020-01-07 Richard Sandiford <richard.sandiford@arm.com>
39251
39252 * langhooks-def.h (lhd_simulate_enum_decl): Declare.
39253 (LANG_HOOKS_SIMULATE_ENUM_DECL): Use it.
39254 * langhooks.c: Include stor-layout.h.
39255 (lhd_simulate_enum_decl): New function.
39256 * config/aarch64/aarch64-sve-builtins.cc (init_builtins): Call
39257 handle_arm_sve_h for the LTO frontend.
39258 (register_vector_type): Cope with null returns from pushdecl.
39259
39260 2020-01-07 Richard Sandiford <richard.sandiford@arm.com>
39261
39262 * config/aarch64/aarch64-protos.h (aarch64_sve::svbool_type_p)
39263 (aarch64_sve::nvectors_if_data_type): Replace with...
39264 (aarch64_sve::builtin_type_p): ...this.
39265 * config/aarch64/aarch64-sve-builtins.cc: Include attribs.h.
39266 (find_vector_type): Delete.
39267 (add_sve_type_attribute): New function.
39268 (lookup_sve_type_attribute): Likewise.
39269 (register_builtin_types): Add an "SVE type" attribute to each type.
39270 (register_tuple_type): Likewise.
39271 (svbool_type_p, nvectors_if_data_type): Delete.
39272 (mangle_builtin_type): Use lookup_sve_type_attribute.
39273 (builtin_type_p): Likewise. Add an overload that returns the
39274 number of constituent vector and predicate registers.
39275 * config/aarch64/aarch64.c (aarch64_sve_argument_p): Delete.
39276 (aarch64_returns_value_in_sve_regs_p): Use aarch64_sve::builtin_type_p
39277 instead of aarch64_sve_argument_p.
39278 (aarch64_takes_arguments_in_sve_regs_p): Likewise.
39279 (aarch64_pass_by_reference): Likewise.
39280 (aarch64_function_value_1): Likewise.
39281 (aarch64_return_in_memory): Likewise.
39282 (aarch64_layout_arg): Likewise.
39283
39284 2020-01-07 Jakub Jelinek <jakub@redhat.com>
39285
39286 PR tree-optimization/93156
39287 * tree-ssa-ccp.c (bit_value_binop): For x * x note that the second
39288 least significant bit is always clear.
39289
39290 PR tree-optimization/93118
39291 * match.pd ((x >> c) << c -> x & (-1<<c)): Add nop_convert?. Add new
39292 simplifier with two intermediate conversions.
39293
39294 2020-01-07 Martin Liska <mliska@suse.cz>
39295
39296 * params.opt: Add Optimization for various parameters.
39297
39298 2020-01-07 Martin Liska <mliska@suse.cz>
39299
39300 PR ipa/83411
39301 * doc/extend.texi: Explain cloning for target_clone
39302 attribute.
39303
39304 2020-01-07 Martin Liska <mliska@suse.cz>
39305
39306 PR tree-optimization/92860
39307 * common.opt: Make in Optimization option
39308 as it is affected by -O0, which is an Optimization
39309 option.
39310 * tree-inline.c (tree_inlinable_function_p):
39311 Use opt_for_fn for warn_inline.
39312 (expand_call_inline): Likewise.
39313
39314 2020-01-07 Martin Liska <mliska@suse.cz>
39315
39316 PR tree-optimization/92860
39317 * common.opt: Make flag_ree as optimization
39318 attribute.
39319
39320 2020-01-07 Martin Liska <mliska@suse.cz>
39321
39322 PR optimization/92860
39323 * params.opt: Mark param_min_crossjump_insns with Optimization
39324 keyword.
39325
39326 2020-01-07 Luo Xiong Hu <luoxhu@linux.ibm.com>
39327
39328 * ipa-inline-analysis.c (estimate_growth): Fix typo.
39329 * ipa-inline.c (caller_growth_limits): Use OR instead of AND.
39330
39331 2020-01-06 Michael Meissner <meissner@linux.ibm.com>
39332
39333 * config/rs6000/rs6000.c (hard_reg_and_mode_to_addr_mask): New
39334 helper function to return the valid addressing formats for a given
39335 hard register and mode.
39336 (rs6000_adjust_vec_address): Call hard_reg_and_mode_to_addr_mask.
39337
39338 * config/rs6000/constraints.md (Q constraint): Update
39339 documentation.
39340 * doc/md.texi (RS/6000 constraints): Update 'Q' cosntraint
39341 documentation.
39342
39343 * config/rs6000/vsx.md (vsx_extract_<mode>_var, VSX_D iterator):
39344 Use 'Q' for doing vector extract from memory.
39345 (vsx_extract_v4sf_var): Use 'Q' for doing vector extract from
39346 memory.
39347 (vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): Use 'Q' for
39348 doing vector extract from memory.
39349 (vsx_extract_<mode>_<VS_scalar>mode_var): Use 'Q' for doing vector
39350 extract from memory.
39351
39352 * config/rs6000/rs6000.c (rs6000_adjust_vec_address): Add support
39353 for the offset being 34-bits when -mcpu=future is used.
39354
39355 2020-01-06 John David Anglin <danglin@gcc.gnu.org>
39356
39357 * config/pa/pa.md: Revert change to use ordered_comparison_operator
39358 instead of cmpib_comparison_operator in cmpib patterns.
39359 * config/pa/predicates.md (cmpib_comparison_operator): Revert removal
39360 of cmpib_comparison_operator. Revise comment.
39361
39362 2020-01-06 Richard Sandiford <richard.sandiford@arm.com>
39363
39364 * tree-vect-slp.c (vect_build_slp_tree_1): Require all shifts
39365 in an IFN_DIV_POW2 node to be equal.
39366
39367 2020-01-06 Richard Sandiford <richard.sandiford@arm.com>
39368
39369 * tree-vect-stmts.c (vect_check_load_store_mask): Rename to...
39370 (vect_check_scalar_mask): ...this.
39371 (vectorizable_store, vectorizable_load): Update call accordingly.
39372 (vectorizable_call): Use vect_check_scalar_mask to check the mask
39373 argument in calls to conditional internal functions.
39374
39375 2020-01-06 Andrew Stubbs <ams@codesourcery.com>
39376
39377 * config/gcn/gcn-valu.md (subv64di3): Use separate alternatives for
39378 '0' matching inputs.
39379 (subv64di3_exec): Likewise.
39380
39381 2020-01-06 Bryan Stenson <bryan@siliconvortex.com>
39382
39383 * config/mips/mips.c (vr4130_align_insns): Fix typo.
39384 * doc/md.texi (movstr): Likewise.
39385
39386 2020-01-06 Andrew Stubbs <ams@codesourcery.com>
39387
39388 * config/gcn/gcn-valu.md (vec_extract<mode><scalar_mode>): Add early
39389 clobber.
39390
39391 2020-01-06 Richard Sandiford <richard.sandiford@arm.com>
39392
39393 * config/aarch64/t-aarch64 ($(srcdir)/config/aarch64/aarch64-tune.md):
39394 Depend on...
39395 (s-aarch64-tune-md): ...this new stamp file. Pipe the new contents
39396 to a temporary file and use move-if-change to update the real
39397 file where necessary.
39398
39399 2020-01-06 Richard Sandiford <richard.sandiford@arm.com>
39400
39401 * config/aarch64/aarch64-sve.md (@aarch64_sel_dup<mode>): Use Upl
39402 rather than Upa for CPY /M.
39403
39404 2020-01-06 Andrew Stubbs <ams@codesourcery.com>
39405
39406 * config/gcn/gcn.c (gcn_inline_constant_p): Allow 64 as an inline
39407 immediate.
39408
39409 2020-01-06 Martin Liska <mliska@suse.cz>
39410
39411 PR tree-optimization/92860
39412 * params.opt: Mark param_max_combine_insns with Optimization
39413 keyword.
39414
39415 2020-01-05 Jakub Jelinek <jakub@redhat.com>
39416
39417 PR target/93141
39418 * config/i386/i386.md (SWIDWI): New mode iterator.
39419 (DWI, dwi): Add TImode variants.
39420 (addv<mode>4): Use SWIDWI iterator instead of SWI. Use
39421 <general_hilo_operand> instead of <general_operand>. Use
39422 CONST_SCALAR_INT_P instead of CONST_INT_P.
39423 (*addv<mode>4_1): Rename to ...
39424 (addv<mode>4_1): ... this.
39425 (QWI): New mode attribute.
39426 (*addv<dwi>4_doubleword, *addv<dwi>4_doubleword_1): New
39427 define_insn_and_split patterns.
39428 (*addv<mode>4_overflow_1, *addv<mode>4_overflow_2): New define_insn
39429 patterns.
39430 (uaddv<mode>4): Use SWIDWI iterator instead of SWI. Use
39431 <general_hilo_operand> instead of <general_operand>.
39432 (*addcarry<mode>_1): New define_insn.
39433 (*add<dwi>3_doubleword_cc_overflow_1): New define_insn_and_split.
39434
39435 2020-01-03 Konstantin Kharlamov <Hi-Angel@yandex.ru>
39436
39437 * gdbinit.in (pr, prl, pt, pct, pgg, pgq, pgs, pge, pmz, pdd, pbs, pbm):
39438 Use "call" instead of "set".
39439
39440 2020-01-03 Martin Jambor <mjambor@suse.cz>
39441
39442 PR ipa/92917
39443 * ipa-cp.c (print_all_lattices): Skip functions without info.
39444
39445 2020-01-03 Jakub Jelinek <jakub@redhat.com>
39446
39447 PR target/93089
39448 * config/i386/i386-options.c (ix86_simd_clone_adjust): If
39449 TARGET_PREFER_AVX128, use prefer-vector-width=256 for 'c' and 'd'
39450 simd clones. If TARGET_PREFER_AVX256, use prefer-vector-width=512
39451 for 'e' simd clones.
39452
39453 PR target/93089
39454 * config/i386/i386.opt (x_prefer_vector_width_type): Remove TargetSave
39455 entry.
39456 (mprefer-vector-width=): Add Save.
39457 * config/i386/i386-options.c (ix86_target_string): Add PVW argument, print
39458 -mprefer-vector-width= if non-zero. Fix up -mfpmath= comment.
39459 (ix86_debug_options, ix86_function_specific_print): Adjust
39460 ix86_target_string callers.
39461 (ix86_valid_target_attribute_inner_p): Handle prefer-vector-width=.
39462 (ix86_valid_target_attribute_tree): Likewise.
39463 * config/i386/i386-options.h (ix86_target_string): Add PVW argument.
39464 * config/i386/i386-expand.c (ix86_expand_builtin): Adjust
39465 ix86_target_string caller.
39466
39467 PR target/93110
39468 * config/i386/i386.md (abs<mode>2): Use expand_simple_binop instead of
39469 emitting ASHIFTRT, XOR and MINUS by hand. Use gen_int_mode with QImode
39470 instead of gen_int_shift_amount + convert_modes.
39471
39472 PR rtl-optimization/93088
39473 * loop-iv.c (find_single_def_src): Punt after looking through
39474 128 reg copies for regs with single definitions. Move definitions
39475 to first uses.
39476
39477 2020-01-02 Dennis Zhang <dennis.zhang@arm.com>
39478
39479 * config/arm/arm-c.c (arm_cpu_builtins): Define
39480 __ARM_FEATURE_MATMUL_INT8, __ARM_FEATURE_BF16_VECTOR_ARITHMETIC,
39481 __ARM_FEATURE_BF16_SCALAR_ARITHMETIC, and
39482 __ARM_BF16_FORMAT_ALTERNATIVE when enabled.
39483 * config/arm/arm-cpus.in (armv8_6, i8mm, bf16): New features.
39484 * config/arm/arm-tables.opt: Regenerated.
39485 * config/arm/arm.c (arm_option_reconfigure_globals): Initialize
39486 arm_arch_i8mm and arm_arch_bf16 when enabled.
39487 * config/arm/arm.h (TARGET_I8MM): New macro.
39488 (TARGET_BF16_FP, TARGET_BF16_SIMD): Likewise.
39489 * config/arm/t-aprofile: Add matching rules for -march=armv8.6-a.
39490 * config/arm/t-arm-elf (all_v8_archs): Add armv8.6-a.
39491 * config/arm/t-multilib: Add matching rules for -march=armv8.6-a.
39492 (v8_6_a_simd_variants): New.
39493 (v8_*_a_simd_variants): Add i8mm and bf16.
39494 * doc/invoke.texi (armv8.6-a, i8mm, bf16): Document new options.
39495
39496 2020-01-02 Jakub Jelinek <jakub@redhat.com>
39497
39498 PR ipa/93087
39499 * predict.c (compute_function_frequency): Don't call
39500 warn_function_cold on functions that already have cold attribute.
39501
39502 2020-01-01 John David Anglin <danglin@gcc.gnu.org>
39503
39504 PR target/67834
39505 * config/pa/pa.c (pa_elf_select_rtx_section): New. Put references to
39506 COMDAT group function labels in .data.rel.ro.local section.
39507 * config/pa/pa32-linux.h (TARGET_ASM_SELECT_RTX_SECTION): Define.
39508
39509 PR target/93111
39510 * config/pa/pa.md (scc): Use ordered_comparison_operator instead of
39511 comparison_operator in B and S integer comparisons. Likewise, use
39512 ordered_comparison_operator instead of cmpib_comparison_operator in
39513 cmpib patterns.
39514 * config/pa/predicates.md (cmpib_comparison_operator): Remove.
39515
39516 2020-01-01 Jakub Jelinek <jakub@redhat.com>
39517
39518 Update copyright years.
39519
39520 * gcc.c (process_command): Update copyright notice dates.
39521 * gcov-dump.c (print_version): Ditto.
39522 * gcov.c (print_version): Ditto.
39523 * gcov-tool.c (print_version): Ditto.
39524 * gengtype.c (create_file): Ditto.
39525 * doc/cpp.texi: Bump @copying's copyright year.
39526 * doc/cppinternals.texi: Ditto.
39527 * doc/gcc.texi: Ditto.
39528 * doc/gccint.texi: Ditto.
39529 * doc/gcov.texi: Ditto.
39530 * doc/install.texi: Ditto.
39531 * doc/invoke.texi: Ditto.
39532
39533 2020-01-01 Jan Hubicka <hubicka@ucw.cz>
39534
39535 * ipa.c (walk_polymorphic_call_targets): Fix updating of overall
39536 summary.
39537
39538 2020-01-01 Jakub Jelinek <jakub@redhat.com>
39539
39540 PR tree-optimization/93098
39541 * match.pd (popcount): For shift amounts, use integer_onep
39542 or wi::to_widest () == cst instead of tree_to_uhwi () == cst
39543 tests. Make sure that precision is power of two larger than or equal
39544 to 16. Ensure shift is never negative. Use HOST_WIDE_INT_UC macro
39545 instead of ULL suffixed constants. Formatting fixes.
39546 \f
39547 Copyright (C) 2020 Free Software Foundation, Inc.
39548
39549 Copying and distribution of this file, with or without modification,
39550 are permitted in any medium without royalty provided the copyright
39551 notice and this notice are preserved.