1 2020-12-17 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
3 * config/arm/arm-cpus.in: Add Cortex-A78C core.
4 * config/arm/arm-tables.opt: Regenerate.
5 * config/arm/arm-tune.md: Regenerate.
6 * doc/invoke.texi: Update docs.
8 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
10 PR rtl-optimization/98347
11 * rtl-ssa/access-utils.h (full_register): Use regno_reg_rtx
12 instead of reg_raw_mode.
14 2020-12-17 H.J. Lu <hjl.tools@gmail.com>
16 * targhooks.h (default_estimated_poly_value): Updated.
18 2020-12-17 Nathan Sidwell <nathan@acm.org>
20 * doc/invoke.texi (C++ Modules): Document lack of std
23 2020-12-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25 * target.h (enum poly_value_estimate_kind): Define.
26 (estimated_poly_value): Take an estimate kind argument.
27 * target.def (estimated_poly_value): Update definition for the
29 * doc/tm.texi: Regenerate.
30 * targhooks.c (estimated_poly_value): Update prototype.
31 * tree-vect-loop.c (vect_better_loop_vinfo_p): Use min, max and
32 likely estimates of VF to pick between vinfos.
33 * config/aarch64/aarch64.c (aarch64_cmp_autovec_modes): Use
34 estimated_poly_value instead of aarch64_estimated_poly_value.
35 (aarch64_estimated_poly_value): Take a kind argument and handle
38 2020-12-17 Andrea Corallo <andrea.corallo@arm.com>
40 * config/arm/arm_neon.h (vcreate_p64): Remove call to
41 '__builtin_neon_vcreatedi'.
43 2020-12-17 Andrew MacLeod <amacleod@redhat.com>
45 PR tree-optimization/97750
46 * range-op.cc (operator_cast::op1_range): Handle pointers better.
48 2020-12-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
50 * rtl-ssa.h: Include memmodel.h before tm_p.h.
52 2020-12-17 Jakub Jelinek <jakub@redhat.com>
54 PR rtl-optimization/98289
55 * shrink-wrap.c (can_get_prologue): Don't punt on EDGE_CROSSING
58 2020-12-17 Marius Hillenbrand <mhillen@linux.ibm.com>
60 * configure.ac: Change --enable-s390-excess-float-precision
61 default behavior for cross compiles with target headers.
62 * configure: Regenerate.
63 * doc/install.texi: Adjust documentation.
65 2020-12-17 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
67 * config/xtensa/xtensa.md (*ashlsi3_1, *ashlsi3_3x, *ashrsi3_3x)
68 (*lshrsi3_3x): New patterns.
70 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
72 * fwprop.c: Rewrite to use the RTL SSA framework.
74 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
76 * configure.ac: Add rtl-ssa to the list of dependence directories.
77 * configure: Regenerate.
78 * Makefile.in (rtl-ssa-warn): New variable.
79 (OBJS): Add the rtl-ssa object files.
80 * emit-rtl.h (rtl_data::ssa): New field.
81 * rtl-ssa.h: New file.
82 * system.h: Include <functional> when INCLUDE_FUNCTIONAL is defined.
83 * rtl-ssa/access-utils.h: Likewise.
84 * rtl-ssa/accesses.h: New file.
85 * rtl-ssa/accesses.cc: Likewise.
86 * rtl-ssa/blocks.h: New file.
87 * rtl-ssa/blocks.cc: Likewise.
88 * rtl-ssa/change-utils.h: Likewise.
89 * rtl-ssa/changes.h: New file.
90 * rtl-ssa/changes.cc: Likewise.
91 * rtl-ssa/functions.h: New file.
92 * rtl-ssa/functions.cc: Likewise.
93 * rtl-ssa/insn-utils.h: Likewise.
94 * rtl-ssa/insns.h: New file.
95 * rtl-ssa/insns.cc: Likewise.
96 * rtl-ssa/internals.inl: Likewise.
97 * rtl-ssa/is-a.inl: Likewise.
98 * rtl-ssa/member-fns.inl: Likewise.
99 * rtl-ssa/movement.h: Likewise.
101 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
103 * doc/rtl.texi (RTL SSA): New node.
105 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
107 * rtl.h (simple_regno_set): Declare.
108 * rtlanal.c (simple_regno_set): New function.
110 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
112 * rtlanal.h: New file.
113 (MEM_REGNO): New constant.
114 (rtx_obj_flags): New namespace.
115 (rtx_obj_reference, rtx_properties): New classes.
116 (growing_rtx_properties, vec_rtx_properties_base): Likewise.
117 (vec_rtx_properties): New alias.
118 * rtlanal.c: Include it.
119 (rtx_properties::try_to_add_reg): New function.
120 (rtx_properties::try_to_add_dest): Likewise.
121 (rtx_properties::try_to_add_src): Likewise.
122 (rtx_properties::try_to_add_pattern): Likewise.
123 (rtx_properties::try_to_add_insn): Likewise.
124 (vec_rtx_properties_base::grow): Likewise.
126 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
128 * recog.h (insn_change_watermark): New class.
130 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
132 * recog.h (insn_propagation): New class.
133 * recog.c (insn_propagation::apply_to_mem_1): New function.
134 (insn_propagation::apply_to_rvalue_1): Likewise.
135 (insn_propagation::apply_to_lvalue_1): Likewise.
136 (insn_propagation::apply_to_pattern_1): Likewise.
137 (insn_propagation::apply_to_pattern): Likewise.
138 (insn_propagation::apply_to_rvalue): Likewise.
140 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
142 * recog.h (temporarily_undo_changes, redo_changes): Declare.
143 * recog.c (temporarily_undone_changes): New variable.
144 (validate_change_1, confirm_change_group): Check that it's zero.
145 (cancel_changes): Likewise.
146 (swap_change, temporarily_undo_changes): New functions.
147 (redo_changes): Likewise.
149 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
151 * recog.h (validate_change_xveclen): Declare.
152 * recog.c (change_t::old_len): New field.
153 (validate_change_1): Add a new_len parameter. Conditionally
154 replace the XVECLEN of an rtx, avoiding single-element PARALLELs.
155 (validate_change_xveclen): New function.
156 (cancel_changes): Undo changes made by validate_change_xveclen.
158 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
160 * rtl.h (simplify_context): New class.
161 (simplify_unary_operation, simplify_binary_operation): Use it.
162 (simplify_ternary_operation, simplify_relational_operation): Likewise.
163 (simplify_subreg, simplify_gen_unary, simplify_gen_binary): Likewise.
164 (simplify_gen_ternary, simplify_gen_relational): Likewise.
165 (simplify_gen_subreg, lowpart_subreg): Likewise.
166 * simplify-rtx.c (simplify_gen_binary): Turn into a member function
168 (simplify_gen_unary, simplify_gen_ternary, simplify_gen_relational)
169 (simplify_truncation, simplify_unary_operation): Likewise.
170 (simplify_unary_operation_1, simplify_byte_swapping_operation)
171 (simplify_associative_operation, simplify_logical_relational_operation)
172 (simplify_binary_operation, simplify_binary_operation_series)
173 (simplify_distributive_operation, simplify_plus_minus): Likewise.
174 (simplify_relational_operation, simplify_relational_operation_1)
175 (simplify_cond_clz_ctz, simplify_merge_mask): Likewise.
176 (simplify_ternary_operation, simplify_subreg, simplify_gen_subreg)
177 (lowpart_subreg): Likewise.
178 (simplify_binary_operation_1): Likewise. Test mem_depth when
179 deciding whether the ASHIFT or MULT form is canonical.
180 (simplify_merge_mask): Use simplify_context.
182 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
184 * rtl.h (register_asm_p): Declare.
185 * recog.c (verify_changes): Split out the test for whether
186 a hard register is a register asm to...
187 * rtlanal.c (register_asm_p): ...this new function.
189 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
191 * print-rtl.h (print_insn_with_notes): Declare.
192 * print-rtl.c (print_insn_with_notes): Make non-static
194 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
196 * cfgrtl.h (update_cfg_for_uncondjump): Declare.
197 * combine.c (update_cfg_for_uncondjump): Move to...
200 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
202 * vec.h (array_slice): New class.
204 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
206 * Makefile.in (OBJS): Add splay-tree-utils.o.
207 * system.h: Include <array> when INCLUDE_ARRAY is defined.
208 * selftest.h (splay_tree_cc_tests): Declare.
209 * selftest-run-tests.c (selftest::run_tests): Run splay_tree_cc_tests.
210 * splay-tree-utils.h: New file.
211 * splay-tree-utils.tcc: Likewise.
212 * splay-tree-utils.cc: Likewise.
214 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
216 * mux-utils.h: New file.
218 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
220 * obstack-utils.h: New file.
222 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
224 * iterator-utils.h (derived_iterator): New class.
225 (const_derived_container, wrapper_iterator): Likewise.
226 (list_iterator): Likewise.
228 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
230 * hard-reg-set.h (global_reg_set): Declare.
231 * reginfo.c (global_reg_set): New variable.
232 (init_reg_sets_1, globalize_reg): Update it when globalizing
235 2020-12-16 Piotr Kubaj <pkubaj@FreeBSD.org>
237 * config.gcc (powerpc*le-*-freebsd*): Add.
238 * configure.ac (powerpc*le-*-freebsd*): Ditto.
239 * configure: Regenerate.
240 * config/rs6000/freebsd64.h (ASM_SPEC_COMMON): Use ENDIAN_SELECT.
241 (DEFAULT_ASM_ENDIAN): Add little endian support.
242 (LINK_OS_FREEBSD_SPEC64): Ditto.
244 2020-12-16 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
246 * config/xtensa/xtensa.c (xtensa_emit_move_sequence): Try to
247 replace 'l32r' with 'movi' + 'slli' when optimizing for size.
248 * config/xtensa/xtensa.md (movdi): Split loading DI mode constant
249 into register pair into two loads of SI mode constants.
251 2020-12-16 Tamar Christina <tamar.christina@arm.com>
253 * config/arm/arm_mve.h (__arm_vcmulq_rot90_f16):
254 (__arm_vcmulq_rot270_f16, _arm_vcmulq_rot180_f16, __arm_vcmulq_f16,
255 __arm_vcmulq_rot90_f32, __arm_vcmulq_rot270_f32,
256 __arm_vcmulq_rot180_f32, __arm_vcmulq_f32, __arm_vcmlaq_f16,
257 __arm_vcmlaq_rot180_f16, __arm_vcmlaq_rot270_f16,
258 __arm_vcmlaq_rot90_f16, __arm_vcmlaq_f32, __arm_vcmlaq_rot180_f32,
259 __arm_vcmlaq_rot270_f32, __arm_vcmlaq_rot90_f32): Update builtin calls.
260 * config/arm/arm_mve_builtins.def (vcmulq_f, vcmulq_rot90_f,
261 vcmulq_rot180_f, vcmulq_rot270_f, vcmlaq_f, vcmlaq_rot90_f,
262 vcmlaq_rot180_f, vcmlaq_rot270_f): Removed.
263 (vcmulq, vcmulq_rot90, vcmulq_rot180, vcmulq_rot270, vcmlaq,
264 vcmlaq_rot90, vcmlaq_rot180, vcmlaq_rot270): New.
265 * config/arm/iterators.md (mve_rot): Add UNSPEC_VCMLA, UNSPEC_VCMLA90,
266 UNSPEC_VCMLA180, UNSPEC_VCMLA270, UNSPEC_VCMUL, UNSPEC_VCMUL90,
267 UNSPEC_VCMUL180, UNSPEC_VCMUL270.
269 * config/arm/mve.md (mve_vcmulq_f<mode, mve_vcmulq_rot180_f<mode>,
270 mve_vcmulq_rot270_f<mode>, mve_vcmulq_rot90_f<mode>, mve_vcmlaq_f<mode>,
271 mve_vcmlaq_rot180_f<mode>, mve_vcmlaq_rot270_f<mode>,
272 mve_vcmlaq_rot90_f<mode>): Removed.
273 (mve_vcmlaq<mve_rot><mode>, mve_vcmulq<mve_rot><mode>,
274 mve_vcaddq<mve_rot><mode>, cadd<rot><mode>3, mve_vcaddq<mve_rot><mode>):
276 * config/arm/unspecs.md (UNSPEC_VCMUL90, UNSPEC_VCMUL270, UNSPEC_VCMUL,
277 UNSPEC_VCMUL180): New.
278 (VCMULQ_F, VCMULQ_ROT180_F, VCMULQ_ROT270_F, VCMULQ_ROT90_F,
279 VCMLAQ_F, VCMLAQ_ROT180_F, VCMLAQ_ROT90_F, VCMLAQ_ROT270_F): Removed.
281 2020-12-16 Tamar Christina <tamar.christina@arm.com>
283 * config/arm/arm_mve.h (__arm_vcaddq_rot90_u8, __arm_vcaddq_rot270_u8,
284 __arm_vcaddq_rot90_s8, __arm_vcaddq_rot270_s8,
285 __arm_vcaddq_rot90_u16, __arm_vcaddq_rot270_u16,
286 __arm_vcaddq_rot90_s16, __arm_vcaddq_rot270_s16,
287 __arm_vcaddq_rot90_u32, __arm_vcaddq_rot270_u32,
288 __arm_vcaddq_rot90_s32, __arm_vcaddq_rot270_s32,
289 __arm_vcaddq_rot90_f16, __arm_vcaddq_rot270_f16,
290 __arm_vcaddq_rot90_f32, __arm_vcaddq_rot270_f32): Update builtin calls.
291 * config/arm/arm_mve_builtins.def (vcaddq_rot90_u, vcaddq_rot270_u,
292 vcaddq_rot90_s, vcaddq_rot270_s, vcaddq_rot90_f, vcaddq_rot270_f):
294 (vcaddq_rot90, vcaddq_rot270): New.
295 * config/arm/constraints.md (Dz): Include MVE.
296 * config/arm/iterators.md (mve_rot): New.
297 (supf): Remove VCADDQ_ROT270_S, VCADDQ_ROT270_U, VCADDQ_ROT90_S,
299 (VCADDQ_ROT270, VCADDQ_ROT90): Removed.
300 * config/arm/mve.md (mve_vcaddq_rot270_<supf><mode,
301 mve_vcaddq_rot90_<supf><mode>, mve_vcaddq_rot270_f<mode>,
302 mve_vcaddq_rot90_f<mode>): Removed.
303 (mve_vcaddq<mve_rot><mode>, mve_vcaddq<mve_rot><mode>): New.
304 * config/arm/unspecs.md (VCADDQ_ROT270_S, VCADDQ_ROT90_S,
305 VCADDQ_ROT270_U, VCADDQ_ROT90_U, VCADDQ_ROT270_F,
306 VCADDQ_ROT90_F): Removed.
307 * config/arm/vec-common.md (cadd<rot><mode>3): New.
309 2020-12-16 Tamar Christina <tamar.christina@arm.com>
311 * config/aarch64/aarch64-simd.md (cadd<rot><mode>3): New.
312 * config/aarch64/iterators.md (SVE2_INT_CADD_OP): New.
313 * config/aarch64/aarch64-sve.md (cadd<rot><mode>3): New.
314 * config/aarch64/aarch64-sve2.md (cadd<rot><mode>3): New.
316 2020-12-16 Pat Haugen <pthaugen@linux.ibm.com>
318 * config/rs6000/mma.md (*movxo, mma_<vvi4i4i8>, mma_<avvi4i4i8>,
319 mma_<vvi4i4i2>, mma_<avvi4i4i2>, mma_<vvi4i4>, mma_<avvi4i4>,
320 mma_<pvi4i2>, mma_<apvi4i2>, mma_<vvi4i4i4>, mma_<avvi4i4i4>):
321 Remove explicit setting of length attribute.
323 2020-12-16 Jakub Jelinek <jakub@redhat.com>
325 * varasm.c (default_elf_asm_named_section): Always force
326 section flags even for sections with SECTION_LINK_ORDER flag.
328 2020-12-16 H.J. Lu <hjl.tools@gmail.com>
331 * defaults.h (SUPPORTS_SHF_GNU_RETAIN): New.
332 * varasm.c (get_section): Replace HAVE_GAS_SHF_GNU_RETAIN with
333 SUPPORTS_SHF_GNU_RETAIN.
334 (resolve_unique_section): Likewise.
335 (get_variable_section): Likewise.
336 (switch_to_section): Likewise.
338 2020-12-16 H.J. Lu <hjl.tools@gmail.com>
341 * varasm.c (switch_to_section): Warn when a symbol without used
342 attribute and a symbol with used attribute are placed in the
343 section with the same name.
345 2020-12-16 H.J. Lu <hjl.tools@gmail.com>
348 * output.h (switch_to_section): Add a tree argument, default to
350 * varasm.c (get_section): If the SECTION_RETAIN bit doesn't match,
351 return and switch to a new section later.
352 (assemble_start_function): Pass decl to switch_to_section.
353 (assemble_variable): Likewise.
354 (switch_to_section): If the SECTION_RETAIN bit doesn't match,
355 switch to a new section.
357 2020-12-16 Jakub Jelinek <jakub@redhat.com>
359 PR tree-optimization/96239
360 * gimple-ssa-store-merging.c (find_bswap_or_nop): Handle a vector
362 (bswap_replace): Likewise.
364 2020-12-16 Martin Liska <mliska@suse.cz>
366 * common.opt: Remove usage of Report.
367 * config/aarch64/aarch64.opt: Ditto.
368 * config/alpha/alpha.opt: Ditto.
369 * config/arc/arc.opt: Ditto.
370 * config/arm/arm.opt: Ditto.
371 * config/avr/avr.opt: Ditto.
372 * config/bfin/bfin.opt: Ditto.
373 * config/bpf/bpf.opt: Ditto.
374 * config/c6x/c6x.opt: Ditto.
375 * config/cr16/cr16.opt: Ditto.
376 * config/cris/cris.opt: Ditto.
377 * config/cris/elf.opt: Ditto.
378 * config/csky/csky.opt: Ditto.
379 * config/darwin.opt: Ditto.
380 * config/fr30/fr30.opt: Ditto.
381 * config/frv/frv.opt: Ditto.
382 * config/ft32/ft32.opt: Ditto.
383 * config/gcn/gcn.opt: Ditto.
384 * config/i386/cygming.opt: Ditto.
385 * config/i386/i386.opt: Ditto.
386 * config/ia64/ia64.opt: Ditto.
387 * config/ia64/ilp32.opt: Ditto.
388 * config/linux-android.opt: Ditto.
389 * config/linux.opt: Ditto.
390 * config/lm32/lm32.opt: Ditto.
391 * config/m32r/m32r.opt: Ditto.
392 * config/m68k/m68k.opt: Ditto.
393 * config/mcore/mcore.opt: Ditto.
394 * config/microblaze/microblaze.opt: Ditto.
395 * config/mips/mips.opt: Ditto.
396 * config/mmix/mmix.opt: Ditto.
397 * config/mn10300/mn10300.opt: Ditto.
398 * config/moxie/moxie.opt: Ditto.
399 * config/msp430/msp430.opt: Ditto.
400 * config/nds32/nds32.opt: Ditto.
401 * config/nios2/elf.opt: Ditto.
402 * config/nios2/nios2.opt: Ditto.
403 * config/nvptx/nvptx.opt: Ditto.
404 * config/pa/pa.opt: Ditto.
405 * config/pdp11/pdp11.opt: Ditto.
406 * config/pru/pru.opt: Ditto.
407 * config/riscv/riscv.opt: Ditto.
408 * config/rl78/rl78.opt: Ditto.
409 * config/rs6000/aix64.opt: Ditto.
410 * config/rs6000/linux64.opt: Ditto.
411 * config/rs6000/rs6000.opt: Ditto.
412 * config/rs6000/sysv4.opt: Ditto.
413 * config/rx/elf.opt: Ditto.
414 * config/rx/rx.opt: Ditto.
415 * config/s390/s390.opt: Ditto.
416 * config/s390/tpf.opt: Ditto.
417 * config/sh/sh.opt: Ditto.
418 * config/sol2.opt: Ditto.
419 * config/sparc/long-double-switch.opt: Ditto.
420 * config/sparc/sparc.opt: Ditto.
421 * config/tilegx/tilegx.opt: Ditto.
422 * config/tilepro/tilepro.opt: Ditto.
423 * config/v850/v850.opt: Ditto.
424 * config/visium/visium.opt: Ditto.
425 * config/vms/vms.opt: Ditto.
426 * config/vxworks.opt: Ditto.
427 * config/xtensa/xtensa.opt: Ditto.
429 2020-12-16 Martin Liska <mliska@suse.cz>
431 * doc/options.texi: Remove Report keyword.
432 * opt-functions.awk: Print error when Report keyword
434 * optc-gen.awk: Do not handle Report keyword.
435 * opts.h (struct cl_option): Remove cl_report bitfield flag.
437 2020-12-16 Martin Liska <mliska@suse.cz>
440 * common.opt: Add new warning -Wtsan.
441 * doc/invoke.texi: Likewise.
442 * tsan.c (instrument_builtin_call): Warn users about unsupported
443 std::atomic_thread_fence.
445 2020-12-16 Martin Liska <mliska@suse.cz>
447 PR rtl-optimization/98271
448 PR rtl-optimization/98276
449 PR tree-optimization/98279
450 * opts-common.c (set_option): Do not allow overflow for integer
453 2020-12-16 Eric Botcazou <ebotcazou@adacore.com>
455 PR tree-optimization/98272
456 * tree-switch-conversion.c (bit_test_cluster::emit): When finding
457 out whether the entry test can be merged in the bit test, do the
458 computation using the type of the index expression.
460 2020-12-16 Kewen Lin <linkw@linux.ibm.com>
462 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
463 paradoxical subreg instead of zero_extend for QI/HI promotion.
465 2020-12-16 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
468 * config/arm/arm_neon.h: Replace calls to __builtin_vcgt* by
469 <, > operators in vclt and vcgt intrinsics respectively.
470 * config/arm/arm_neon_builtins.def: Remove entry for
473 2020-12-16 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
476 * config/arm/arm_neon.h: Replace calls to __builtin_vneg* by - operator
478 * config/arm/arm_neon_builtins.def: Remove entry for vneg.
480 2020-12-16 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
483 * config/arm/arm_neon.h: Replace calls to __builtin_vcreate*
484 in vcreate intrinsics.
485 * config/arm/arm_neon_builtins.def: Remove entry for vcreate.
487 2020-12-15 Jakub Jelinek <jakub@redhat.com>
489 PR tree-optimization/96094
490 * match.pd (X / bool_range_Y -> X): New simplification.
492 2020-12-15 Nathan Sidwell <nathan@acm.org>
494 * doc/cppopts.texi: Document new cpp opt.
495 * doc/invoke.texi: Add C++20 module option & documentation.
497 2020-12-15 Nathan Sidwell <nathan@acm.org>
499 * Makefile.in (CODYINC, CODYLIB, CODYLIB_H): New. Use them.
501 2020-12-15 Jakub Jelinek <jakub@redhat.com>
504 * config/i386/i386-options.c (ix86_option_override_internal): Set
505 ix86_tune_string to "generic" even when it wasn't specified and
506 ix86_arch_string is "x86-64-v2", "x86-64-v3" or "x86-64-v4".
507 Remove useless {}s around a single statement.
509 2020-12-15 Martin Liska <mliska@suse.cz>
512 * lto-wrapper.c: Do not use -j0 when we are unable to detect
515 2020-12-15 Jakub Jelinek <jakub@redhat.com>
517 * config/i386/i386-options.c (ix86_option_override_internal): Don't
518 error on -march=x86-64-v[234] with -m32 or -mabi=ms.
519 * config.gcc: Don't reject --with-arch=x86-64-v[234] or
520 --with-arch_32=x86-64-v[234].
521 * doc/invoke.texi (-march=x86-64-v[234]): Document what the option
524 2020-12-15 Martin Liska <mliska@suse.cz>
526 PR gcov-profile/98273
527 * gcov.c (output_json_intermediate_file): Use stack of nested
528 functions for lines in a source file. Pop when a function ends.
530 2020-12-15 Gerald Pfeifer <gerald@pfeifer.com>
532 * doc/invoke.texi (Instrumentation Options): Update link to
533 KernelAddressSanitizer.
535 2020-12-15 Max Filippov <jcmvbkbc@gmail.com>
537 * config/xtensa/predicates.md (addsubx_operand): Change accepted
538 values from 2/4/8 to 1..3.
539 * config/xtensa/xtensa.md (*addx, *subx): Change RTL pattern
540 to use 'ashift' instead of 'mult'. Update operands[3] value.
542 2020-12-14 Piotr Kubaj <pkubaj@FreeBSD.org>
543 Gerald Pfeifer <gerald@pfeifer.com>
545 * config/rs6000/freebsd64.h (PROCESSOR_DEFAULT): Update
546 to PROCESSOR_PPC7450.
547 (PROCESSOR_DEFAULT64): Update to PROCESSOR_POWER8.
549 2020-12-14 Martin Sebor <msebor@redhat.com>
554 * builtins.c (check_access): Call tree_inlined_location
555 fndecl_alloc_p): Handle BUILT_IN_ALIGNED_ALLOC and
557 call_dealloc_p): Remove unused function.
558 (new_delete_mismatch_p): Call valid_new_delete_pair_p and rework.
559 (matching_alloc_calls_p): Handle built-in deallocation functions.
560 (warn_dealloc_offset): Corrct the handling of user-defined operators
562 (maybe_emit_free_warning): Avoid assuming expression is a decl.
564 * doc/extend.texi (attribute malloc): Update.
565 * tree-ssa-dce.c (valid_new_delete_pair_p): Factor code out into
566 valid_new_delete_pair_p in tree.c.
567 * tree.c (tree_inlined_location): Define new function.
568 (valid_new_delete_pair_p): Define.
569 * tree.h (tree_inlined_location): Declare.
570 (valid_new_delete_pair_p): Declare.
572 2020-12-14 Sebastian Pop <spop@amazon.com>
574 * config.gcc (aarch64*-*-*): Remove --with-{cpu,arch,tune}-32 flags.
576 2020-12-14 Wilco Dijkstra <wdijkstr@arm.com>
578 * config.gcc (aarch64*-*-*): Add --with-tune. Support --with-cpu=native.
579 * config/aarch64/aarch64.h (OPTION_DEFAULT_SPECS): Add --with-tune.
581 2020-12-14 Martin Liska <mliska@suse.cz>
583 * gcov.c (output_json_intermediate_file): Update comments.
585 2020-12-14 Tamar Christina <tamar.christina@arm.com>
588 * tree-vect-slp-patterns.c (linear_loads_p): Exclude TOP permute.
590 2020-12-14 Christophe Lyon <christophe.lyon@linaro.org>
592 * config/arm/mve.md (mve_vnegq_f): Use 'neg' instead of unspec.
593 (mve_vnegq_s): Likewise.
594 * config/arm/neon.md (neg<mode>2): Rename into neon_neg<mode>2.
595 (<absneg_str><mode>2): Rename into neon_<absneg_str><mode>2.
596 (neon_v<absneg_str><mode>): Call gen_neon_<absneg_str><mode>2.
597 (vashr<mode>3): Call gen_neon_neg<mode>2.
598 (vlshr<mode>3): Call gen_neon_neg<mode>2.
599 (neon_vneg<mode>): Call gen_neon_neg<mode>2.
600 * config/arm/unspecs.md (VNEGQ_F, VNEGQ_S): Remove.
601 * config/arm/vec-common.md (neg<mode>2): New expander.
603 2020-12-14 Christophe Lyon <christophe.lyon@linaro.org>
605 * config/arm/iterators.md (VDQNOTM2): New mode iterator.
606 (supf): Remove VMVNQ_S and VMVNQ_U.
608 * config/arm/mve.md (mve_vmvnq_u<mode>): New entry for vmvn
609 instruction using expression not.
610 (mve_vmvnq_s<mode>): New expander.
611 * config/arm/neon.md (one_cmpl<mode>2): Renamed into
612 one_cmpl<mode>2_neon.
613 * config/arm/unspecs.md (VMVNQ_S, VMVNQ_U): Remove.
614 * config/arm/vec-common.md (one_cmpl<mode>2): New expander.
616 2020-12-14 Christophe Lyon <christophe.lyon@linaro.org>
618 * config/arm/iterators.md (supf): Remove VBICQ_S and VBICQ_U.
620 * config/arm/mve.md (mve_vbicq_u<mode>): New entry for vbic
621 instruction using expression and not.
622 (mve_vbicq_s<mode>): New expander.
623 (mve_vbicq_f<mode>): Replace use of unspec by 'and not'.
624 * config/arm/unspecs.md (VBICQ_S, VBICQ_U, VBICQ_F): Remove.
626 2020-12-14 Christophe Lyon <christophe.lyon@linaro.org>
628 * config/arm/iterators.md (supf): Remove VEORQ_S and VEORQ_U.
630 * config/arm/mve.md (mve_veorq_u<mode>): New entry for veor
631 instruction using expression xor.
632 (mve_veorq_s<mode>): New expander.
633 (mve_veorq_f<mode>): Use 'xor' code instead of unspec.
634 * config/arm/neon.md (xor<mode>3): Renamed into xor<mode>3_neon.
635 * config/arm/unspecs.md (VEORQ_S, VEORQ_U, VEORQ_F): Remove.
636 * config/arm/vec-common.md (xor<mode>3): New expander.
638 2020-12-14 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
640 * config/aarch64/aarch64-cores.def (AARCH64_CORE): Add Cortex-A78C core.
641 * config/aarch64/aarch64-tune.md: Regenerate.
642 * doc/invoke.texi: Update docs.
644 2020-12-14 Nikhil Benesch <nikhil.benesch@gmail.com>
646 * godump.c (go_output_typedef): Suppress typedefs whose name
647 matches the tag of the underlying struct, union, or enum.
648 Output declarations for enums that do not appear in typedefs.
650 2020-12-13 Maciej W. Rozycki <macro@linux-mips.org>
652 * config/vax/vax.c (vax_output_int_move): Unify push operation
655 2020-12-13 Maciej W. Rozycki <macro@linux-mips.org>
657 * config/vax/vax.c (vax_output_int_move): Check the correct
658 operand for constant 0 push operation.
660 2020-12-13 Maciej W. Rozycki <macro@linux-mips.org>
662 * config/vax/vax.c (vax_expand_addsub_di_operands): Handle equal
663 input operands with subtraction.
665 2020-12-13 Maciej W. Rozycki <macro@linux-mips.org>
667 * config/vax/vax.c (vax_expand_addsub_di_operands): Handle the
668 addition or subtraction of 0.
670 2020-12-13 Maciej W. Rozycki <macro@linux-mips.org>
672 * config/vax/vax.c (vax_expand_addsub_di_operands): Remove
673 unused register allocation.
675 2020-12-13 Maciej W. Rozycki <macro@linux-mips.org>
677 * config/vax/vax.md (casesi): Use `gen_int_mode' rather than
678 `GEN_INT' for the immediate used for lower bound adjustment.
680 2020-12-13 Jakub Jelinek <jakub@redhat.com>
682 PR tree-optimization/98256
683 * tree-ssa-math-opts.c (match_uaddsub_overflow): For BIT_NOT_EXPR,
684 only handle a single use, and insert .ADD_OVERFLOW before the
685 comparison rather than after the BIT_NOT_EXPR. Return true iff
686 it is BIT_NOT_EXPR and it has been removed.
687 (math_opts_dom_walker::after_dom_children) <case BIT_NOT_EXPR>:
688 If match_uaddsub_overflow returned true, continue instead of break.
690 2020-12-13 Tamar Christina <tamar.christina@arm.com>
693 2020-12-13 Tamar Christina <tamar.christina@arm.com>
695 * config/arm/arm_mve.h (__arm_vcaddq_rot90_u8, __arm_vcaddq_rot270_u8,
696 , __arm_vcaddq_rot90_s8, __arm_vcaddq_rot270_s8,
697 __arm_vcaddq_rot90_u16, __arm_vcaddq_rot270_u16, __arm_vcaddq_rot90_s16,
698 __arm_vcaddq_rot270_s16, __arm_vcaddq_rot90_u32,
699 __arm_vcaddq_rot270_u32, __arm_vcaddq_rot90_s32,
700 __arm_vcaddq_rot270_s32, __arm_vcmulq_rot90_f16,
701 __arm_vcmulq_rot270_f16, __arm_vcmulq_rot180_f16,
702 __arm_vcmulq_f16, __arm_vcaddq_rot90_f16, __arm_vcaddq_rot270_f16,
703 __arm_vcmulq_rot90_f32, __arm_vcmulq_rot270_f32,
704 __arm_vcmulq_rot180_f32, __arm_vcmulq_f32, __arm_vcaddq_rot90_f32,
705 __arm_vcaddq_rot270_f32, __arm_vcmlaq_f16, __arm_vcmlaq_rot180_f16,
706 __arm_vcmlaq_rot270_f16, __arm_vcmlaq_rot90_f16, __arm_vcmlaq_f32,
707 __arm_vcmlaq_rot180_f32, __arm_vcmlaq_rot270_f32,
708 __arm_vcmlaq_rot90_f32): Update builtin calls.
709 * config/arm/arm_mve_builtins.def (vcaddq_rot90_u, vcaddq_rot270_u,
710 vcaddq_rot90_s, vcaddq_rot270_s, vcaddq_rot90_f, vcaddq_rot270_f,
711 vcmulq_f, vcmulq_rot90_f, vcmulq_rot180_f, vcmulq_rot270_f,
712 vcmlaq_f, vcmlaq_rot90_f, vcmlaq_rot180_f, vcmlaq_rot270_f): Removed.
713 (vcaddq_rot90, vcaddq_rot270, vcmulq, vcmulq_rot90, vcmulq_rot180,
714 vcmulq_rot270, vcmlaq, vcmlaq_rot90, vcmlaq_rot180, vcmlaq_rot270):
716 * config/arm/constraints.md (Dz): Include MVE.
717 * config/arm/iterators.md (mve_rotsplit1, mve_rotsplit2): New.
718 (rot): Add UNSPEC_VCMLS, UNSPEC_VCMUL and UNSPEC_VCMUL180.
719 (rot_op, rotsplit1, rotsplit2, fcmac1, VCMLA_OP, VCMUL_OP): New.
720 * config/arm/mve.md (VCADDQ_ROT270_S, VCADDQ_ROT90_S, VCADDQ_ROT270_U,
721 VCADDQ_ROT90_U, VCADDQ_ROT270_F, VCADDQ_ROT90_F, VCMULQ_F,
722 VCMULQ_ROT180_F, VCMULQ_ROT270_F, VCMULQ_ROT90_F, VCMLAQ_F,
723 VCMLAQ_ROT180_F, VCMLAQ_ROT90_F, VCMLAQ_ROT270_F, VCADDQ_ROT270_S,
724 VCADDQ_ROT270, VCADDQ_ROT90): Removed.
725 (mve_rot, VCMUL): New.
726 (mve_vcaddq_rot270_<supf><mode, mve_vcaddq_rot90_<supf><mode>,
727 mve_vcaddq_rot270_f<mode>, mve_vcaddq_rot90_f<mode>, mve_vcmulq_f<mode,
728 mve_vcmulq_rot180_f<mode>, mve_vcmulq_rot270_f<mode>,
729 mve_vcmulq_rot90_f<mode>, mve_vcmlaq_f<mode>, mve_vcmlaq_rot180_f<mode>,
730 mve_vcmlaq_rot270_f<mode>, mve_vcmlaq_rot90_f<mode>): Removed.
731 (mve_vcmlaq<mve_rot><mode>, mve_vcmulq<mve_rot><mode>,
732 mve_vcaddq<mve_rot><mode>, cadd<rot><mode>3, mve_vcaddq<mve_rot><mode>):
734 (cmul<rot_op><mode>3): Exclude MVE types.
735 * config/arm/unspecs.md (UNSPEC_VCMUL90, UNSPEC_VCMUL270): New.
736 * config/arm/vec-common.md (cadd<rot><mode>3, cmul<rot_op><mode>3,
737 arm_vcmla<rot><mode>, cml<fcmac1><rot_op><mode>4): New.
738 * config/arm/unspecs.md (UNSPEC_VCMUL, UNSPEC_VCMUL180, UNSPEC_VCMLS,
739 UNSPEC_VCMLS180): New.
740 * config/arm/neon.md (cmul<rot_op><mode>3): New.
742 2020-12-13 Jakub Jelinek <jakub@redhat.com>
745 * varasm.c (eliminable_regno_p): New function.
746 (make_decl_rtl): Reject asm vars for frame and argp
747 if they are different from hard frame pointer.
749 2020-12-13 Tamar Christina <tamar.christina@arm.com>
751 * config/arm/arm_mve.h (__arm_vcaddq_rot90_u8, __arm_vcaddq_rot270_u8,
752 , __arm_vcaddq_rot90_s8, __arm_vcaddq_rot270_s8,
753 __arm_vcaddq_rot90_u16, __arm_vcaddq_rot270_u16, __arm_vcaddq_rot90_s16,
754 __arm_vcaddq_rot270_s16, __arm_vcaddq_rot90_u32,
755 __arm_vcaddq_rot270_u32, __arm_vcaddq_rot90_s32,
756 __arm_vcaddq_rot270_s32, __arm_vcmulq_rot90_f16,
757 __arm_vcmulq_rot270_f16, __arm_vcmulq_rot180_f16,
758 __arm_vcmulq_f16, __arm_vcaddq_rot90_f16, __arm_vcaddq_rot270_f16,
759 __arm_vcmulq_rot90_f32, __arm_vcmulq_rot270_f32,
760 __arm_vcmulq_rot180_f32, __arm_vcmulq_f32, __arm_vcaddq_rot90_f32,
761 __arm_vcaddq_rot270_f32, __arm_vcmlaq_f16, __arm_vcmlaq_rot180_f16,
762 __arm_vcmlaq_rot270_f16, __arm_vcmlaq_rot90_f16, __arm_vcmlaq_f32,
763 __arm_vcmlaq_rot180_f32, __arm_vcmlaq_rot270_f32,
764 __arm_vcmlaq_rot90_f32): Update builtin calls.
765 * config/arm/arm_mve_builtins.def (vcaddq_rot90_u, vcaddq_rot270_u,
766 vcaddq_rot90_s, vcaddq_rot270_s, vcaddq_rot90_f, vcaddq_rot270_f,
767 vcmulq_f, vcmulq_rot90_f, vcmulq_rot180_f, vcmulq_rot270_f,
768 vcmlaq_f, vcmlaq_rot90_f, vcmlaq_rot180_f, vcmlaq_rot270_f): Removed.
769 (vcaddq_rot90, vcaddq_rot270, vcmulq, vcmulq_rot90, vcmulq_rot180,
770 vcmulq_rot270, vcmlaq, vcmlaq_rot90, vcmlaq_rot180, vcmlaq_rot270):
772 * config/arm/constraints.md (Dz): Include MVE.
773 * config/arm/iterators.md (mve_rotsplit1, mve_rotsplit2): New.
774 (rot): Add UNSPEC_VCMLS, UNSPEC_VCMUL and UNSPEC_VCMUL180.
775 (rot_op, rotsplit1, rotsplit2, fcmac1, VCMLA_OP, VCMUL_OP): New.
776 * config/arm/mve.md (VCADDQ_ROT270_S, VCADDQ_ROT90_S, VCADDQ_ROT270_U,
777 VCADDQ_ROT90_U, VCADDQ_ROT270_F, VCADDQ_ROT90_F, VCMULQ_F,
778 VCMULQ_ROT180_F, VCMULQ_ROT270_F, VCMULQ_ROT90_F, VCMLAQ_F,
779 VCMLAQ_ROT180_F, VCMLAQ_ROT90_F, VCMLAQ_ROT270_F, VCADDQ_ROT270_S,
780 VCADDQ_ROT270, VCADDQ_ROT90): Removed.
781 (mve_rot, VCMUL): New.
782 (mve_vcaddq_rot270_<supf><mode, mve_vcaddq_rot90_<supf><mode>,
783 mve_vcaddq_rot270_f<mode>, mve_vcaddq_rot90_f<mode>, mve_vcmulq_f<mode,
784 mve_vcmulq_rot180_f<mode>, mve_vcmulq_rot270_f<mode>,
785 mve_vcmulq_rot90_f<mode>, mve_vcmlaq_f<mode>, mve_vcmlaq_rot180_f<mode>,
786 mve_vcmlaq_rot270_f<mode>, mve_vcmlaq_rot90_f<mode>): Removed.
787 (mve_vcmlaq<mve_rot><mode>, mve_vcmulq<mve_rot><mode>,
788 mve_vcaddq<mve_rot><mode>, cadd<rot><mode>3, mve_vcaddq<mve_rot><mode>):
790 (cmul<rot_op><mode>3): Exclude MVE types.
791 * config/arm/unspecs.md (UNSPEC_VCMUL90, UNSPEC_VCMUL270): New.
792 * config/arm/vec-common.md (cadd<rot><mode>3, cmul<rot_op><mode>3,
793 arm_vcmla<rot><mode>, cml<fcmac1><rot_op><mode>4): New.
794 * config/arm/unspecs.md (UNSPEC_VCMUL, UNSPEC_VCMUL180, UNSPEC_VCMLS,
795 UNSPEC_VCMLS180): New.
796 * config/arm/neon.md (cmul<rot_op><mode>3): New.
798 2020-12-13 Tamar Christina <tamar.christina@arm.com>
800 * config/arm/arm.c (arm_preferred_simd_mode): Add E_HFmode.
802 2020-12-13 Tamar Christina <tamar.christina@arm.com>
804 * tree-vect-slp-patterns.c: New file.
805 * Makefile.in: Add it.
806 * doc/passes.texi: Document it.
807 * internal-fn.def (COMPLEX_ADD_ROT90, COMPLEX_ADD_ROT270): New.
808 * optabs.def (cadd90_optab, cadd270_optab): New.
809 * doc/md.texi: Document them.
810 * tree-vect-loop.c (vect_analyze_loop_2): Add dissolve code.
812 (vect_free_slp_instance, vect_create_new_slp_node): Export.
813 (vect_match_slp_patterns_2, vect_match_slp_patterns): New.
814 (vect_analyze_slp): Use it.
815 * tree-vectorizer.h (vect_free_slp_tree): Export.
816 (enum _complex_operation): Forward declare.
817 (class vect_pattern): New
819 2020-12-13 Tamar Christina <tamar.christina@arm.com>
821 * tree-vect-patterns.c (vect_mark_pattern_stmts): Remove static inline.
822 * tree-vect-slp.c (vect_create_new_slp_node): Remove static and only
824 * tree-vectorizer.c (vec_info::add_pattern_stmt): New.
825 (vec_info::set_vinfo_for_stmt): Optionally enforce read-only.
826 * tree-vectorizer.h (struct _slp_tree): Use new types.
827 (lane_permutation_t, lane_permutation_t): New.
828 (vect_create_new_slp_node, vect_mark_pattern_stmts): New.
830 2020-12-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
832 * doc/sourcebuild.texi (Commands for use in dg-final, Scan the
833 assembly output, scan-assembler-symbol-section): Document.
834 (scan-symbol-section): Document.
836 2020-12-13 Richard Sandiford <richard.sandiford@arm.com>
838 * is-a.h (reinterpret_is_a_helper): New class.
839 (static_is_a_helper): Likewise.
840 (is_a_helper): Inherit from reinterpret_is_a_helper.
841 (is_a_helper<const T *>): New specialization.
843 2020-12-13 Richard Sandiford <richard.sandiford@arm.com>
845 * coretypes.h (iterator_range): Move to...
846 * iterator-utils.h: ...this new file.
848 2020-12-13 Richard Sandiford <richard.sandiford@arm.com>
850 * rtlanal.c (noop_move_p): Don't check for REG_EQUAL notes.
852 2020-12-13 Richard Sandiford <richard.sandiford@arm.com>
854 * vec.h (vnull::operator vec<T, A, L>): Make const.
856 2020-12-12 Jakub Jelinek <jakub@redhat.com>
858 PR tree-optimization/96685
859 * match.pd (~(X - Y) -> ~X + Y): New optimization.
860 (~X + Y -> (Y - X) - 1): Likewise.
862 2020-12-12 Jakub Jelinek <jakub@redhat.com>
864 PR tree-optimization/96272
865 * tree-ssa-math-opts.c (uaddsub_overflow_check_p): Add OTHER argument.
867 (match_uaddsub_overflow): Optimize unsigned a > ~b into
868 __imag__ .ADD_OVERFLOW (a, b).
869 (math_opts_dom_walker::after_dom_children): Call match_uaddsub_overflow
870 even for BIT_NOT_EXPR.
872 2020-12-12 Jakub Jelinek <jakub@redhat.com>
875 * omp-low.c (lower_omp_target): Don't add OMP_RETURN for
877 * omp-expand.c (expand_omp_target): Don't try to remove
878 OMP_RETURN for data regions.
879 (build_omp_regions_1, omp_make_gimple_edges): Don't expect
880 OMP_RETURN for data regions.
882 2020-12-11 Nathan Sidwell <nathan@acm.org>
884 * gcc.c (cpp_unique_options): Add Mmodules, Mno-modules.
885 * tree-core.h (enum tree_index): Add TI_MODULE_HWM.
887 2020-12-11 Jim Wilson <jimw@sifive.com>
889 * varasm.c (get_section): Add DECL_P check before DECL_PRESERVE_P.
891 2020-12-11 Christophe Lyon <christophe.lyon@linaro.org>
893 * config/arm/iterators.md (VDQ): Remove TARGET_HAVE_MVE
895 * config/arm/vec-common.md (and<mode>3): Use
896 ARM_HAVE_<MODE>_ARITH.
897 (ior<mode>3): Likewise.
899 2020-12-11 Claudiu Zissulescu <claziss@synopsys.com>
901 * config/arc/arc.c (arc_active_insn): Ignore all non essential
902 instructions when getting the next active instruction.
903 (check_store_cacheline_hazard): Update.
904 (workaround_arc_anomaly): Remove obsolete cache hazard code.
906 2020-12-11 Claudiu Zissulescu <claziss@synopsys.com>
908 * config/arc/arc.c (arc_reorg): Avoid limm in BRcc.
910 2020-12-11 Claudiu Zissulescu <claziss@synopsys.com>
912 * config/arc/arc-protos.h (arc_scheduling_not_expected): Remove
914 (arc_sets_cc_p): Likewise.
915 (arc_need_delay): Likewise.
916 * config/arc/arc.c (arc_sets_cc_p): Likewise.
917 (arc_need_delay): Likewise.
918 (arc_scheduling_not_expected): Likewise.
919 * config/arc/arc.md: Convert adc/sbc patterns to simple
920 instruction definitions.
922 2020-12-11 Christophe Lyon <christophe.lyon@linaro.org>
924 * config/arm/iterators.md (supf): Remove VORRQ_S and VORRQ_U.
926 * config/arm/mve.md (mve_vorrq_s<mode>): New entry for vorr
927 instruction using expression ior.
928 (mve_vorrq_u<mode>): New expander.
929 (mve_vorrq_f<mode>): Use ior code instead of unspec.
930 * config/arm/neon.md (ior<mode>3): Renamed into ior<mode>3_neon.
931 * config/arm/predicates.md (imm_for_neon_logic_operand): Enable
933 * config/arm/unspecs.md (VORRQ_S, VORRQ_U, VORRQ_F): Remove.
934 * config/arm/vec-common.md (ior<mode>3): New expander.
936 2020-12-11 Claudiu Zissulescu <claziss@synopsys.com>
938 * config/arc/arc.md (mpyd<su_optab>_arcv2hs): New template
940 (*pmpyd<su_optab>_arcv2hs): Likewise.
941 (*pmpyd<su_optab>_imm_arcv2hs): Likewise.
942 (mpyd_arcv2hs): Moved into above template.
943 (mpyd_imm_arcv2hs): Moved into above template.
944 (mpydu_arcv2hs): Likewise.
945 (mpydu_imm_arcv2hs): Likewise.
946 (su_optab): New optab prefix for sign/zero-extending operations.
948 2020-12-11 H.J. Lu <hjl.tools@gmail.com>
951 * config/i386/uintrintrin.h (__uintr_frame): Remove uirrv.
953 2020-12-11 Andrea Corallo <andrea.corallo@arm.com>
955 * doc/sourcebuild.texi (arm_softfloat): Improve documentation.
957 2020-12-11 Jakub Jelinek <jakub@redhat.com>
959 PR rtl-optimization/98229
960 * optabs.c (expand_doubleword_mod): Canonicalize op1 and
961 1 - INTVAL (op1) as word_mode constants when used in
962 word_mode arithmetics.
964 2020-12-11 Richard Biener <rguenther@suse.de>
966 PR tree-optimization/98235
967 * tree-vect-slp.c (vect_build_slp_tree): Exchange npermutes
968 for limit. Decrement that for each cache miss and fail
969 discovery when it reaches zero.
970 (vect_build_slp_tree_2): Remove npermutes handling and
971 simply pass down limit.
972 (vect_build_slp_instance): Use pass down limit.
973 (vect_analyze_slp_instance): Likewise.
974 (vect_analyze_slp): Base the SLP discovery limit on
975 max_tree_size and pass it down.
977 2020-12-11 Jakub Jelinek <jakub@redhat.com>
980 * expr.c (expand_assignment): If to_rtx is a promoted SUBREG,
981 ensure sign or zero extension either through use of store_expr
982 or by extending manually.
984 2020-12-11 Andrea Corallo <andrea.corallo@arm.com>
986 PR rtl-optimization/97092
987 * ira-color.c (update_costs_from_allocno): Do not carry over mode
988 between subsequent iterations.
990 2020-12-11 Richard Biener <rguenther@suse.de>
992 PR tree-optimization/95582
993 * tree-vect-patterns.c (vect_recog_bool_pattern): Check
994 for VECT_SCALAR_BOOLEAN_TYPE_P, not just precision one.
996 2020-12-11 Hongyu <hongyu.wang@intel.com>
998 * common/config/i386/cpuinfo.h (get_available_features):
999 Move check for HRESET/AVX_VNNI/UINTR out of avx512_usable.
1001 2020-12-10 Jakub Jelinek <jakub@redhat.com>
1003 PR rtl-optimization/98212
1004 * dojump.c (do_compare_rtx_and_jump): Change computation of
1005 first_prob for and_them. Add comment explaining and_them case.
1007 2020-12-10 Andrew MacLeod <amacleod@redhat.com>
1009 PR tree-optimization/98174
1010 * gimple-range-cache.cc (ranger_cache::ssa_range_in_bb): Only push
1011 poor values to be examined if it isn't a pure global.
1012 (ranger_cache::block_range): Don't process pure globals.
1013 (ranger_cache::fill_block_cache): Adjust has_edge_range call.
1014 * gimple-range-gori.cc (gori_map::all_outgoing): New bitmap.
1015 (gori_map::gori_map): Allocate all_outgoing.
1016 (gori_map::is_export_p): No specified BB returns global context.
1017 (gori_map::calculate_gori): Accumulate each block into global.
1018 (gori_compute::gori_compute): Preprocess each block for exports.
1019 (gori_compute::has_edge_range_p): No edge returns global context.
1020 * gimple-range-gori.h (has_edge_range_p): Provide default parameter.
1022 2020-12-10 Eric Botcazou <ebotcazou@adacore.com>
1024 * dwarf2out.c (loc_list_from_tree_1) <PLACEHOLDER_EXPR>: Deal with
1025 a nested context type
1027 2020-12-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
1029 * cfgexpand.c (expand_gimple_basic_block): Remove special handling
1030 of debug_inline_entries without block info.
1031 * tree-inline.c (remap_gimple_stmt): Drop debug_nonbind_markers when
1032 the call statement has no block info.
1033 (copy_debug_stmt): Remove debug_nonbind_markers when inlining
1034 and the block info is mapped to NULL.
1035 * tree-ssa-live.c (clear_unused_block_pointer): Remove
1036 debug_nonbind_markers originating from removed inline functions.
1038 2020-12-10 Richard Biener <rguenther@suse.de>
1040 * tree-vect-stmts.c (vectorizable_assignment): Remove special
1041 allowance of VECTOR_BOOLEAN_TYPE_P conversions.
1043 2020-12-10 Christophe Lyon <christophe.lyon@linaro.org>
1045 * config/arm/iterators.md (supf): Remove VANDQ_S and VANDQ_U.
1047 (VDQ): Add TARGET_HAVE_MVE condition where relevant.
1048 * config/arm/mve.md (mve_vandq_u<mode>): New entry for vand
1049 instruction using expression 'and'.
1050 (mve_vandq_s<mode>): New expander.
1051 (mve_vaddq_n_f<mode>): Use 'and' code instead of unspec.
1052 * config/arm/neon.md (and<mode>3): Rename into and<mode>3_neon.
1053 * config/arm/predicates.md (imm_for_neon_inv_logic_operand):
1055 * config/arm/unspecs.md (VANDQ_S, VANDQ_U, VANDQ_F): Remove.
1056 * config/arm/vec-common.md (and<mode>3): New expander.
1058 2020-12-10 Richard Sandiford <richard.sandiford@arm.com>
1060 PR tree-optimization/98069
1061 * tree-data-ref.c (compute_distributive_range): New function.
1062 (nop_conversion_for_offset_p): Likewise.
1063 (split_constant_offset): In the internal overload, treat integer
1064 expressions as having an implicit cast to sizetype and express
1065 them accordingly. Pass back the range of the original (uncast)
1066 expression in a new range parameter.
1067 (split_constant_offset_1): Likewise. Rework the handling of
1068 conversions to account for the implicit sizetype casts.
1070 2020-12-10 Joel Hutton <joel.hutton@arm.com>
1072 PR tree-optimization/97929
1073 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Add
1074 WIDEN_PLUS/WIDEN_MINUS case.
1076 2020-12-10 Joel Hutton <joel.hutton@arm.com>
1078 * tree-pretty-print.c (dump_generic_node): Add case for
1079 VEC_WIDEN_(PLUS/MINUS)_(HI/LO)_EXPR and WIDEN_(PLUS/MINUS)_EXPR.
1081 2020-12-10 Richard Biener <rguenther@suse.de>
1083 PR tree-optimization/98211
1084 * tree-vect-stmts.c (vectorizable_assignment): Disallow
1085 invalid conversions to bool vector types.
1087 2020-12-10 Alexandre Oliva <oliva@adacore.com>
1089 * tree.c (build_common_builtin_nodes): Drop __builtin_ from
1090 __clear_cache libname.
1092 2020-12-10 Jakub Jelinek <jakub@redhat.com>
1094 PR rtl-optimization/98212
1095 * dojump.c (do_compare_rtx_and_jump): When splitting NE and backend
1096 can do UNEQ, prefer splitting x != y into x unord y || !(x uneq y)
1097 instead of into x unord y || x ltgt y.
1099 2020-12-10 Jakub Jelinek <jakub@redhat.com>
1101 PR tree-optimization/98169
1102 * dojump.c (do_compare_rtx_and_jump): Don't split self-EQ/NE
1103 comparisons, just use ORDERED or UNORDERED.
1105 2020-12-10 Jakub Jelinek <jakub@redhat.com>
1108 * omp-expand.c (expand_omp_for_generic): Fix up broken_loop handling.
1110 2020-12-10 Richard Biener <rguenther@suse.de>
1112 * tree-vect-slp.c (vect_get_and_check_slp_defs): Do
1113 not mark the defs to occur in a pattern if it is the
1114 pattern root and record the original stmt defs in that
1117 2020-12-10 Simon Cook <simon.cook@embecosm.com>
1119 * config/riscv/multilib-generator (arch_canonicalize): Invoke
1120 python interpreter when calling arch-canonicalize script.
1122 2020-12-10 Nikhil Benesch <nikhil.benesch@gmail.com>
1124 * godump.c (go_format_type): Don't consider whether a type has
1125 been seen when determining whether to output a type by name.
1126 Consider only the use_type_name parameter.
1127 (go_output_typedef): When outputting a typedef, format the
1128 declaration's original type, which contains the name of the
1129 underlying type rather than the name of the typedef.
1131 2020-12-09 Jakub Jelinek <jakub@redhat.com>
1134 * tree-ssa-phiopt.c (two_value_replacement): Don't special case
1135 BOOLEAN_TYPEs for ranges, instead if get_range_info doesn't return
1136 VR_RANGE, set min/max to wi::min/max_value.
1138 2020-12-09 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
1140 * config/aarch64/aarch64-option-extensions.def
1141 (AARCH64_OPT_EXTENSION): New +pauth option in -march for AArch64.
1142 * config/aarch64/aarch64.h (AARCH64_FL_PAUTH): New pauth extension bitmask.
1143 (AARCH64_ISA_PUATH): New ISA bitmask for PAUTH.
1144 (AARCH64_FL_FOR_ARCH8_3): Add PAUTH to Armv8.3-A.
1145 (TARGET_PAUTH): New target mask to isolate PAUTH instructions.
1146 * config/aarch64/aarch64.md (do_return): Condition set to TARGET_PAUTH.
1147 * doc/invoke.texi: Update docs for +flagm and +pauth.
1149 2020-12-09 Uroš Bizjak <ubizjak@gmail.com>
1151 * config/i386/i386.h (REG_ALLOC_ORDER): Remove
1153 2020-12-09 Richard Biener <rguenther@suse.de>
1155 PR tree-optimization/98213
1156 * tree-ssa-loop-im.c (sm_seq_valid_bb): Cache successfully
1158 (hoist_memory_references): Adjust.
1160 2020-12-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1162 * config/aarch64/aarch64-protos.h (cpu_vector_cost): Move simd
1164 (simd_vec_cost): ... Here. Define.
1165 (advsimd_vec_cost): Define.
1166 (sve_vec_cost): Define.
1167 * config/aarch64/aarch64.c (generic_advsimd_vector_cost):
1169 (generic_sve_vector_cost): Likewise.
1170 (generic_vector_cost): Update.
1171 (qdf24xx_advsimd_vector_cost): Define.
1172 (qdf24xx_vector_cost): Update.
1173 (thunderx_advsimd_vector_cost): Define.
1174 (thunderx_vector_cost): Update.
1175 (tsv110_advsimd_vector_cost): Define.
1176 (tsv110_vector_cost): Likewise.
1177 (cortexa57_advsimd_vector_cost): Define.
1178 (cortexa57_vector_cost): Update.
1179 (exynosm1_advsimd_vector_cost): Define.
1180 (exynosm1_vector_cost): Update.
1181 (xgene1_advsimd_vector_cost): Define.
1182 (xgene1_vector_cost): Update.
1183 (thunderx2t99_advsimd_vector_cost): Define.
1184 (thunderx2t99_vector_cost): Update.
1185 (thunderx3t110_advsimd_vector_cost): Define.
1186 (thunderx3t110_vector_cost): Update.
1187 (aarch64_builtin_vectorization_cost): Handle sve and advsimd
1190 2020-12-09 Jakub Jelinek <jakub@redhat.com>
1192 PR tree-optimization/98199
1193 * fold-const.c (native_encode_initializer): Fix handling bit-fields
1196 2020-12-09 Jakub Jelinek <jakub@redhat.com>
1199 * fold-const.c (native_encode_initializer): Set pos to field's
1200 byte position if iterating over a field with missing initializer.
1202 2020-12-08 Martin Liska <mliska@suse.cz>
1204 PR tree-optimization/98182
1205 * gimple-if-to-switch.cc (pass_if_to_switch::execute): Request
1206 chain linkage through false edges only.
1208 2020-12-08 Nathan Sidwell <nathan@acm.org>
1210 * tree.h (DECL_ALIGN_RAW): New.
1211 (DECL_ALIGN): Use it.
1212 (DECL_WARN_IF_NOT_ALIGN_RAW): New.
1213 (DECL_WARN_IF_NOT_ALIGN): Use it.
1214 (SET_DECL_WARN_IF_NOT_ALIGN): Likewise.
1216 2020-12-08 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1219 * config/arm/arm_neon.h: Replace calls to __builtin_vmvn* by ~
1221 * config/arm/arm_neon_builtins.def: Remove entry for vmvn.
1223 2020-12-08 Jakub Jelinek <jakub@redhat.com>
1226 * config/i386/i386.opt (ix86_excess_precision,
1227 ix86_unsafe_math_optimizations): New TargetVariables.
1228 * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): Use
1229 ix86_unsafe_math_optimizations instead of
1230 flag_unsafe_math_optimizations and ix86_excess_precision instead of
1231 flag_excess_precision.
1232 * config/i386/i386.c (ix86_excess_precision): Rename to ...
1233 (ix86_get_excess_precision): ... this.
1234 (TARGET_C_EXCESS_PRECISION): Define to ix86_get_excess_precision.
1235 * config/i386/i386-options.c (ix86_valid_target_attribute_tree,
1236 ix86_option_override_internal): Update ix86_unsafe_math_optimization
1237 from flag_unsafe_math_optimizations and ix86_excess_precision
1238 from flag_excess_precision when constructing target option nodes.
1239 (ix86_set_current_function): If flag_unsafe_math_optimizations
1240 or flag_excess_precision is different from the one recorded
1241 in TARGET_OPTION_NODE, create a new target option node for the
1242 current function and switch to that.
1244 2020-12-08 Richard Biener <rguenther@suse.de>
1246 PR tree-optimization/98192
1247 * tree-vect-slp.c (vect_build_slp_instance): Get scalar_stmts
1250 2020-12-08 Richard Biener <rguenther@suse.de>
1252 PR tree-optimization/98191
1253 * tree-vect-slp.c (vect_slp_check_for_constructors): Do not
1254 follow a non-SSA def chain.
1256 2020-12-08 Richard Biener <rguenther@suse.de>
1258 PR tree-optimization/97559
1259 * tree-ssa-sink.c (statement_sink_location): Never ignore
1260 PHIs on sink paths in irreducible regions.
1262 2020-12-08 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1265 * gimple-isel.cc (gimple_expand_vec_cond_expr): Try to fold
1266 x CMP y ? -1 : 0 to x CMP y.
1268 2020-12-08 Richard Biener <rguenther@suse.de>
1270 PR tree-optimization/98180
1271 * tree-vect-slp.c (vect_slp_check_for_constructors): Check the
1272 first inserted value has a def.
1274 2020-12-08 Eric Botcazou <ebotcazou@adacore.com>
1276 PR tree-optimization/96344
1277 * tree-switch-conversion.c (bit_test_cluster::emit): Compute the
1278 range only if an entry test is necessary. Merge the entry test in
1279 the bit test when possible. Use PREC local variable consistently.
1280 When there is only one test, do a single gimplification at the end.
1282 2020-12-08 Kito Cheng <kito.cheng@sifive.com>
1285 * config.gcc (riscv*-*-*): Checking python, python3 or python2
1286 is available, and skip doing with_arch canonicalize if no python
1289 2020-12-07 Jakub Jelinek <jakub@redhat.com>
1292 * builtins.c (default_emit_call_builtin___clear_cache): Call
1293 convert_memory_address to ptr_mode on both begin and end.
1295 2020-12-07 Bernd Edlinger <bernd.edlinger@hotmail.de>
1297 * ipa-param-manipulation.c
1298 (ipa_param_body_adjustments::modify_call_stmt): Set location info.
1300 2020-12-07 Jozef Lawrynowicz <jozef.l@mittosystems.com>
1302 * doc/extend.texi (used function attribute): Document saving
1303 the declaration from linker garbage collection.
1304 (used variable attribute): Likewise.
1306 2020-12-07 Richard Biener <rguenther@suse.de>
1308 PR tree-optimization/98113
1309 * tree-vectorizer.h (struct slp_root): New.
1310 (_bb_vec_info::roots): New member.
1311 * tree-vect-slp.c (vect_analyze_slp): Also walk BB info
1313 (_bb_vec_info::_bb_vec_info): Adjust.
1314 (_bb_vec_info::~_bb_vec_info): Likewise.
1316 (vect_slp_is_lane_insert): Likewise.
1317 (vect_slp_check_for_constructors): Match a series of
1318 BIT_INSERT_EXPRs as vector constructor.
1319 (vect_slp_analyze_bb_1): Continue if BB info roots is
1321 (vect_slp_analyze_bb_1): Mark the whole BIT_INSERT_EXPR root
1322 sequence as pure_slp.
1324 2020-12-07 Richard Biener <rguenther@suse.de>
1326 PR tree-optimization/98117
1327 * tree-vect-loop-manip.c (vect_gen_vector_loop_niters):
1328 Properly handle degenerate niter when setting the vector
1331 2020-12-07 Andreas Krebbel <krebbel@linux.ibm.com>
1333 * config/s390/s390.c (s390_emit_stack_probe): Change Pmode to
1336 2020-12-07 Martin Jambor <mjambor@suse.cz>
1339 * ipa-cp.c (safe_add): Removed.
1340 (good_cloning_opportunity_p): Remove special handling of INT_MAX.
1341 (value_topo_info<valtype>::propagate_effects): Take care not to
1342 propagate from size one value to another through more sources. Scale
1343 propagated times with edge frequencies. Include local time and size
1344 in propagates ones here. Take care not to overflow size.
1345 (decide_about_value): Do not add local and propagated effects when
1346 passing them to good_cloning_opportunity_p.
1348 2020-12-07 Matthias Klose <doko@ubuntu.com>
1350 * genextract.c (print_header): Undefine ENABLE_RTL_CHECKING
1351 and ENABLE_RTL_FLAG_CHECKING.
1353 2020-12-07 Richard Biener <rguenther@suse.de>
1355 PR tree-optimization/98137
1356 * tree-data-ref.c (split_constant_offset_1): Use
1357 determine_value_range instead of get_range_info to handle
1358 arbitrary expressions.
1360 2020-12-06 H.J. Lu <hjl.tools@gmail.com>
1363 * doc/extend.texi: Remove -mcet.
1365 2020-12-06 H.J. Lu <hjl.tools@gmail.com>
1368 * config/i386/i386-features.c (pseudo_reg_set): Check mode of
1369 pseudo register push.
1371 2020-12-06 Jakub Jelinek <jakub@redhat.com>
1373 PR tree-optimization/96232
1374 * tree-ssa-phiopt.c (two_value_replacement): Optimize even boolean lhs
1375 cases as long as arg0 has wider precision and conditional_replacement
1376 doesn't handle that case.
1377 (tree_ssa_phiopt_worker): Don't call two_value_replacement during
1380 2020-12-06 Jakub Jelinek <jakub@redhat.com>
1382 PR tree-optimization/96232
1383 * match.pd (-(type)!A -> (type)A - 1): New optimization.
1385 2020-12-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1386 David Edelsohn <dje.gcc@gmail.com>
1388 * config/rs6000/xcoff.h (ASM_OUTPUT_DEF): Reference macro arguments.
1390 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1393 * config/vax/elf.h (REGISTER_NAMES): Append `%psl'.
1394 * config/vax/vax-modes.def (CCN, CCNZ, CCZ): New modes.
1395 * config/vax/vax-protos.h (vax_select_cc_mode): New prototype.
1396 (vax_maybe_split_dimode_move): Likewise.
1397 (vax_notice_update_cc): Remove prototype.
1398 * config/vax/vax.c (TARGET_FLAGS_REGNUM): New macro.
1399 (TARGET_CC_MODES_COMPATIBLE): Likewise.
1400 (TARGET_MD_ASM_ADJUST): Likewise.
1401 (vax_select_cc_mode): New function
1402 (vax_cc_modes_compatible): Likewise.
1403 (vax_md_asm_adjust): Likewise.
1404 (vax_notice_update_cc): Remove function.
1405 (vax_output_int_move): Factor out code checking if a DImode move
1406 may have to be split...
1407 (vax_maybe_split_dimode_move): ... into this new function.
1408 * config/vax/vax.h (FIRST_PSEUDO_REGISTER): Bump up.
1409 (FIXED_REGISTERS): Append an entry for PSL.
1410 (CALL_USED_REGISTERS): Likewise.
1411 (NOTICE_UPDATE_CC, OUTPUT_JUMP): Remove macros.
1412 (SELECT_CC_MODE): New macro.
1413 (REGISTER_NAMES): Append `psl'.
1414 * config/vax/predicates.md (const_zero_operand)
1415 (vax_cc_comparison_operator, vax_ccn_comparison_operator)
1416 (vax_ccnz_comparison_operator, vax_ccz_comparison_operator):
1418 * config/vax/builtins.md: Rewrite for MODE_CC representation.
1419 * config/vax/vax.md: Likewise.
1421 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1423 * config/vax/elf.h (VAX_CC1_SPEC, VAX_CC1PLUS_SPEC): New macros.
1424 * config/vax/netbsd-elf.h (CC1_SPEC): Use VAX_CC1_SPEC rather
1425 than VAX_CC1_AND_CC1PLUS_SPEC.
1426 (CC1PLUS_SPEC): Use VAX_CC1PLUS_SPEC rather than
1427 VAX_CC1_AND_CC1PLUS_SPEC.
1429 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1431 * config/pdp11/pdp11.md (fcc_cc, fcc_ccnz): Use
1432 `const_double_zero' to express double zero constant.
1434 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1436 * read-rtl.c (rtx_reader::read_rtx_code): Handle syntactic
1437 `const_double_zero' rtx.
1438 * doc/rtl.texi (Constant Expression Types): Document it.
1440 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1442 * config/vax/vax.md (divmoddisi4, *amulsi4): Make the comment
1443 notation consistent with the rest of the file.
1445 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1447 * config/vax/vax.md (movti): Fix output predicate. Emit `movo'
1449 (divmoddisi4): Fix output predicates, correct RTL.
1450 (*amulsi4): Name insn. Fix output predicate.
1452 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1454 * config/vax/vax.md (mulsidi3): Fix the multiplicand predicates.
1455 (*maddsidi4, *maddsidi4_const): Likewise. Name insns.
1457 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1459 * config/vax/vax.md (*cmpv_2): Name insn.
1460 (*cmpv, *cmpzv, *cmpzv_2): Likewise. Fix location predicate and
1463 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1465 * config/vax/vax.md (extv): Rename insn to...
1467 (extv): New expander.
1469 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1471 * config/vax/vax.md (*insv_aligned, *extzv_aligned)
1472 (*extv_aligned): Also make sure the memory address of a bit-field
1473 location can be adjusted in the PIC mode.
1475 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1477 * config/vax/vax.md (*insv_aligned, *extzv_aligned)
1478 (*extv_aligned): Reject register bit-field locations that are not
1479 aligned to the least significant bit; update output statement
1482 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1484 * config/vax/vax.md (*insv_aligned, *extzv_aligned)
1485 (*extv_aligned, *extv_non_const, *extzv_non_const): Name insns.
1486 Fix location predicate.
1487 (*extzv): Name insn.
1488 (*insv): Likewise. Fix location constraint.
1489 (*insv_2): Likewise, and the predicate.
1491 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1493 * config/vax/vax.md (cpymemhi1): Rename insn to...
1494 (movmemhi1): ... this.
1495 (cpymemhi): Update accordingly. Remove constraints.
1496 (movmemhi): New expander.
1498 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1500 * config/vax/builtins.md: Add a peephole2 for QImode and HImode
1502 (any_extend): New code iterator.
1504 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1506 * config/vax/builtins.md (width): New mode attribute.
1507 (ffssi2): Rework expander into...
1508 (ffs<mode>2): ... this.
1509 (ctzsi2): Rework insn into...
1510 (ctz<mode>2): ... this.
1512 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1514 * config/vax/builtins.md (ffssi2_internal): Rename insn to...
1515 (ctzsi2): ... this. Update the RTL operation.
1516 (ffssi2): Update accordingly.
1517 * config/vax/vax.c (vax_notice_update_cc): Handle CTZ.
1518 * config/vax/vax.h (CTZ_DEFINED_VALUE_AT_ZERO): New macro.
1520 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1522 * config/vax/vax.md: Include `builtins.md'.
1524 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1526 * config/vax/predicates.md (volatile_mem_operand)
1527 (any_memory_operand): New predicates.
1528 * config/vax/builtins.md (VUNSPEC_UNLOCK): Remove constant.
1529 (sync_lock_test_and_set<mode>): Remove `set' and `unspec'
1530 operations, match operands only. Reformat.
1531 (sync_lock_release<mode>): Likewise. Remove cruft.
1532 (jbb<ccss>i<mode>): Wrap into `unspec_volatile', use
1533 `any_memory_operand' predicate.
1535 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1537 * config/vax/builtins.md (bit): New int iterator.
1538 (ccss): New int attribute.
1539 (jbbssi<mode>, jbbcci<mode>): Fold insns into...
1540 (jbb<ccss>i<mode>): ... this.
1542 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1544 * config/vax/builtins.md (bb_mem): New mode attribute.
1545 (jbbssiqi, jbbssihi, jbbssisi): Fold insns into...
1546 (jbbssi<mode>): ... this.
1547 (jbbcciqi, jbbccihi, jbbccisi): Likewise...
1548 (jbbcci<mode>): ... this.
1550 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1552 * jump.c (pc_set): Also accept a jump wrapped in UNSPEC or
1554 (any_uncondjump_p, any_condjump_p): Update comment accordingly.
1556 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1558 * loop-doloop.c (add_test): Only remove the jump if `onlyjump_p'.
1560 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1562 * cfgrtl.c (rtl_block_empty_p): Return false if `!onlyjump_p'
1565 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1567 * sel-sched-ir.c (maybe_tidy_empty_bb): Only try to remove a
1568 conditional jump if `onlyjump_p'.
1570 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1572 * loop-iv.c (simplify_using_initial_values): Only process jumps
1573 that match `onlyjump_p'.
1574 (check_simple_exit): Likewise.
1576 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1578 * ifcvt.c (dead_or_predicable) [!IFCVT_MODIFY_TESTS]: Bail out
1581 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1583 * read-rtl.c: Add a page-feed separator at the start of iterator
1585 (struct iterator_group): Change the return type to HOST_WIDE_INT
1586 for the `find_builtin' member. Likewise the second parameter
1587 type for the `apply_iterator' member.
1588 (atoll) [!HAVE_ATOQ]: Reorder.
1589 (find_mode, find_code): Change the return type to HOST_WIDE_INT.
1590 (apply_mode_iterator, apply_code_iterator)
1591 (apply_subst_iterator): Change the second parameter type to
1593 (find_int): Handle input suitable for HOST_WIDE_INT output.
1594 (apply_int_iterator): Rewrite in terms of explicit format
1596 (rtx_reader::read_rtx_operand) <'w'>: Fold into...
1597 <'i', 'n', 'p'>: ... this.
1598 * doc/md.texi (Int Iterators): Document 'w' rtx format support.
1600 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1602 * config/vax/builtins.md (ffssi2): Make preparation statements
1604 (ffssi2_internal): Fix input constraints; make the RTL pattern
1605 match reality for `cc0'.
1607 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1609 * config/vax/vax.c (vax_address_cost): Express the cost in terms
1611 (vax_rtx_costs): Likewise.
1613 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1615 * config/vax/constraints.md (A): New constraint.
1616 * config/vax/predicates.md (external_symbolic_operand)
1617 (external_const_operand): Remove predicates.
1618 (local_symbolic_operand): Rename to...
1619 (pic_symbolic_operand): ... this, and rework.
1620 (external_memory_operand): Rename to...
1621 (non_pic_external_memory_operand): ... this, and rework.
1622 (illegal_blk_memory_operand, illegal_addsub_di_memory_operand):
1624 * config/vax/vax-protos.h (vax_acceptable_pic_operand_p): New
1626 * config/vax/vax.c (vax_acceptable_pic_operand_p): New function.
1627 (vax_output_int_add): Update according to predicate rework.
1628 * config/vax/vax.h (LEGITIMATE_PIC_OPERAND_P): New macro.
1629 * config/vax/vax.md (pushlclsymreg, pushextsymreg): Fold
1630 together, and rename to...
1631 (*pushsymreg): ... this. Use the `pic_symbolic_operand'
1632 predicate and the `A' constraint for the displacement operand.
1633 (movlclsymreg, movextsymreg): Fold together, and rename to...
1634 (*movsymreg): ... this. Use the `pic_symbolic_operand'
1635 predicate and the `A' constraint for the displacement operand.
1636 (pushextsym, pushlclsym): Fold together, and rename to...
1637 (*pushsym): ... this. Use the `pic_symbolic_operand' predicate
1638 and the `A' constraint for the displacement operand.
1639 (movextsym, movlclsym): Fold together, and rename to...
1640 (*movsym): ... this. Use the `pic_symbolic_operand' predicate
1641 and the `A' constraint for the displacement operand.
1643 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1645 * config/vax/vax.c (print_operand): Replace `c' and `C' with
1646 `k' and `K' respectively.
1647 * config/vax/vax.md (*branch, *branch_reversed): Update
1650 2020-12-05 Matt Thomas <matt@3am-software.com>
1651 Maciej W. Rozycki <macro@linux-mips.org>
1654 * reload.c (push_reload): Also reload the inner expression of a
1655 SUBREG for pseudos associated with a mode-dependent memory
1657 (find_reloads): Force a reload likewise.
1659 2020-12-05 Roman Zhuykov <zhroma@ispras.ru>
1661 PR rtl-optimization/97421
1662 * modulo-sched.c (generate_prolog_epilog): Remove forward
1663 declaration, adjust last argument name and type.
1664 (const_iteration_count): Add bool pointer parameter to return
1665 whether count register is read in pre-header after its
1667 (sms_schedule): Fix count register initialization adjustment
1668 procedure according to what const_iteration_count said.
1670 2020-12-05 Iain Sandoe <iain@sandoe.co.uk>
1673 * configure: Regenerate.
1675 2020-12-05 Venkataramanan Kumar <Venkataramanan.Kumar@amd.com>
1676 Sharavan Kumar <Shravan.Kumar@amd.com>
1678 * common/config/i386/cpuinfo.h (get_amd_cpu) recognize znver3.
1679 * common/config/i386/i386-common.c (processor_names): Add
1681 (processor_alias_table): Add znver3 and AMDFAM19H entry.
1682 * common/config/i386/i386-cpuinfo.h (processor_types): Add
1684 (processor_subtypes): AMDFAM19H_ZNVER3.
1685 * config.gcc (i[34567]86-*-linux* | ...): Likewise.
1686 * config/i386/driver-i386.c: (host_detect_local_cpu): Let
1687 -march=native recognize znver3 processors.
1688 * config/i386/i386-c.c (ix86_target_macros_internal): Add
1690 * config/i386/i386-options.c (m_znver3): New definition.
1691 (m_ZNVER): Include m_znver3.
1692 (processor_cost_table): Add znver3.
1693 * config/i386/i386.c (ix86_reassociation_width): Likewise.
1694 * config/i386/i386.h (TARGET_znver3): New definition.
1695 (enum processor_type): Add PROCESSOR_ZNVER3.
1696 * config/i386/i386.md (define_attr "cpu"): Add znver3.
1697 * config/i386/x86-tune-sched.c: (ix86_issue_rate): Likewise.
1698 (ix86_adjust_cost): Likewise.
1699 * config/i386/x86-tune.def (X86_TUNE_AVOID_256FMA_CHAINS:
1701 * config/i386/znver1.md: Add new reservations for znver3.
1702 * doc/extend.texi: Add details about znver3.
1703 * doc/invoke.texi: Likewise.
1705 2020-12-05 Jakub Jelinek <jakub@redhat.com>
1708 * config/i386/i386.md (splitter after *<rotate_insn><mode>3_mask,
1709 splitter after *<rotate_insn><mode>3_mask_1): Drop the masking from
1710 the patterns to split into.
1712 2020-12-04 Jason Merrill <jason@redhat.com>
1714 * vec.h (begin, end): Add overloads for vec*.
1715 * tree.c (build_constructor_from_vec): Remove *.
1717 2020-12-04 David Edelsohn <dje.gcc@gmail.com>
1719 * config/rs6000/rs6000.c (rs6000_option_override_internal):
1720 Change PTR_SIZE to POINTER_SIZE_UNITS.
1722 2020-12-04 Hans-Peter Nilsson <hp@axis.com>
1723 Martin Sebor <msebor@redhat.com>
1726 * doc/implement-c.texi (Qualifiers implementation): Add blurb
1727 about access to the whole of a volatile aggregate object, only for
1728 same-size as a scalar object.
1730 2020-12-04 Jakub Jelinek <jakub@redhat.com>
1733 * gimple.c (gimple_call_fnspec): Only return ".co " for replaceable
1734 operator delete or ".mC" for replaceable operator new called from
1737 2020-12-04 Jakub Jelinek <jakub@redhat.com>
1740 * config/i386/i386.md (splitter after *<rotate_insn><mode>3_mask,
1741 splitter after *<rotate_insn><mode>3_mask_1): New combine splitters.
1743 2020-12-04 Jakub Jelinek <jakub@redhat.com>
1746 * fold-const.c (native_encode_initializer): Use build_zero_cst
1747 instead of build_constructor.
1749 2020-12-04 Jakub Jelinek <jakub@redhat.com>
1752 * cfgexpand.c (expand_gimple_basic_block): For vars with
1753 vector type, use TYPE_MODE rather than DECL_MODE.
1755 2020-12-04 Jakub Jelinek <jakub@redhat.com>
1757 * common.opt (-gdwarf32, -gdwarf64): New options.
1758 * config/rs6000/rs6000.c (rs6000_option_override_internal): Default
1759 dwarf_offset_size to 8 if not overridden from the command line.
1760 * dwarf2out.c: Change all occurrences of DWARF_OFFSET_SIZE to
1762 * doc/invoke.texi (-gdwarf32, -gdwarf64): Document.
1764 2020-12-04 Martin Liska <mliska@suse.cz>
1766 * doc/tm.texi: Change argument of the record_gcc_switches
1767 hook and remove SWITCH_TYPE_* enum values.
1768 * dwarf2out.c (gen_producer_string): Move to opts.c and remove
1769 handling of the dwarf_record_gcc_switches option.
1770 (dwarf2out_early_finish): Use moved gen_producer_string
1772 * opts.c (gen_producer_string): New.
1773 * opts.h (gen_producer_string): New.
1774 * target.def: Change type of record_gcc_switches.
1775 * target.h (enum print_switch_type): Remove.
1776 (elf_record_gcc_switches): Change first argument.
1777 * toplev.c (MAX_LINE): Remove.
1778 (print_to_asm_out_file): Likewise.
1779 (print_to_stderr): Likewise.
1780 (print_single_switch): Likewise.
1781 (print_switch_values): Likewise.
1782 (init_asm_output): Use new gen_producer_string function.
1783 (process_options): Likewise.
1784 * varasm.c (elf_record_gcc_switches): Just save the string argument
1785 to the ELF container.
1787 2020-12-04 Eric Botcazou <ebotcazou@adacore.com>
1789 * ipa-sra.c (verify_access_tree_1): Relax assertion on the size.
1791 2020-12-04 Martin Liska <mliska@suse.cz>
1793 * doc/invoke.texi: Add missing params.
1795 2020-12-03 Martin Sebor <msebor@redhat.com>
1799 * builtins.c (access_ref::access_ref): Initialize new member.
1800 (compute_objsize): Use access_ref::deref. Handle simple pointer
1802 (expand_builtin): Remove handling of the free built-in.
1803 (call_dealloc_argno): Same.
1804 (find_assignment_location): New function.
1805 (fndecl_alloc_p): Same.
1806 (gimple_call_alloc_p): Same.
1807 (call_dealloc_p): Same.
1808 (matching_alloc_calls_p): Same.
1809 (warn_dealloc_offset): Same.
1810 (maybe_emit_free_warning): Same.
1811 * builtins.h (struct access_ref): Declare new member.
1812 (maybe_emit_free_warning): Make extern. Make use of access_ref.
1813 Handle -Wmismatched-new-delete.
1814 * calls.c (initialize_argument_information): Call
1815 maybe_emit_free_warning.
1816 * doc/extend.texi (attribute malloc): Update.
1817 * doc/invoke.texi (-Wfree-nonheap-object): Expand documentation.
1818 (-Wmismatched-new-delete): Document new option.
1819 (-Wmismatched-dealloc): Document new option.
1821 2020-12-03 Alexandre Oliva <oliva@adacore.com>
1823 * tree.c (build_common_builtin_nodes): Declare
1824 __builtin___clear_cache for all languages.
1825 * builtins.c (maybe_emit_call_builtin___clear_cache): Accept
1828 2020-12-03 Sebastian Huber <sebastian.huber@embedded-brains.de>
1830 * config/arm/t-rtems: Add "-mthumb -mcpu=cortex-r52
1831 -mfloat-abi=hard" multilib.
1833 2020-12-03 Uroš Bizjak <ubizjak@gmail.com>
1834 Jakub Jelinek <jakub@redhat.com>
1837 * config/i386/i386.c (ix86_md_asm_adjustmd): Rewrite
1838 zero-extension part to use convert_to_mode.
1840 2020-12-03 Andreas Krebbel <krebbel@linux.ibm.com>
1842 * config/s390/s390.md ("@probe_stack2<mode>"): Change mode
1845 2020-12-03 Richard Sandiford <richard.sandiford@arm.com>
1847 * config/aarch64/aarch64-sve-builtins-base.cc (svundef_impl::fold):
1850 2020-12-03 Eric Botcazou <ebotcazou@adacore.com>
1853 * expmed.c (flip_storage_order): In the case of a non-integer mode,
1854 sorry out if the integer mode to be used instead is not supported.
1856 2020-12-03 Eric Botcazou <ebotcazou@adacore.com>
1859 * function.c (use_register_for_decl): Also return true for a result
1860 if cfun->tail_call_marked is true.
1862 2020-12-03 Jakub Jelinek <jakub@redhat.com>
1865 * fold-const.h (native_encode_initializer): Add mask argument
1866 defaulted to nullptr.
1867 (find_bitfield_repr_type): Declare.
1868 (native_interpret_aggregate): Declare.
1869 * fold-const.c (find_bitfield_repr_type): New function.
1870 (native_encode_initializer): Add mask argument and support for
1871 filling it. Handle also some bitfields without integral
1872 DECL_BIT_FIELD_REPRESENTATIVE.
1873 (native_interpret_aggregate): New function.
1874 * gimple-fold.h (clear_type_padding_in_mask): Declare.
1875 * gimple-fold.c (struct clear_padding_struct): Add clear_in_mask
1877 (clear_padding_flush): Handle buf->clear_in_mask.
1878 (clear_padding_union): Copy clear_in_mask. Don't error if
1879 buf->clear_in_mask is set.
1880 (clear_padding_type): Don't error if buf->clear_in_mask is set.
1881 (clear_type_padding_in_mask): New function.
1882 (gimple_fold_builtin_clear_padding): Set buf.clear_in_mask to false.
1883 * doc/extend.texi (__builtin_bit_cast): Document.
1885 2020-12-03 Ilya Leoshkevich <iii@linux.ibm.com>
1887 * tree-ssa-threadedge.c (record_temporary_equivalences_from_stmts_at_dest):
1888 Do not allow __builtin_constant_p on a threading path.
1890 2020-12-03 Ilya Leoshkevich <iii@linux.ibm.com>
1892 * tree-ssa-strlen.c (printf_strlen_execute): Avoid division by
1895 2020-12-03 Kito Cheng <kito.cheng@sifive.com>
1897 * config/riscv/multilib-generator (arch_canonicalize): Move
1898 code to arch-canonicalize, and call that script to canonicalize arch
1900 (canonical_order): Move code to arch-canonicalize.
1901 (LONG_EXT_PREFIXES): Ditto.
1902 (IMPLIED_EXT): Ditto.
1903 * config/riscv/arch-canonicalize: New.
1904 * config.gcc (riscv*-*-*): Canonicalize --with-arch.
1906 2020-12-03 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
1908 * config/aarch64/aarch64-option-extensions.def
1909 (AARCH64_OPT_EXTENSION): New +flagm option in -march for AArch64.
1910 * config/aarch64/aarch64.h (AARCH64_FL_FLAGM): Add new flagm extension bit
1912 (AARCH64_FL_FOR_ARCH8_4): Add flagm to Armv8.4-A.
1913 * doc/invoke.texi: Update docs with +flagm.
1915 2020-12-03 liuhongt <hongtao.liu@intel.com>
1918 * config/i386/sse.md
1919 (<avx512>_ucmp<mode>3<mask_scalar_merge_name>): Add a new
1920 define_split after this insn.
1922 2020-12-03 liuhongt <hongtao.liu@intel.com>
1925 * config/i386/i386-expand.c
1926 (ix86_expand_special_args_builtin): Don't move all-ones mask
1927 operands into register.
1928 * config/i386/sse.md (UNSPEC_MASKLOAD): New unspec.
1929 (*<avx512>_load<mode>_mask): New define_insns for masked load
1931 (<avx512>_load<mode>_mask): Changed to define_expands which
1932 specifically handle memory or all-ones mask operands.
1933 (<avx512>_blendm<mode>): Changed to define_insns which are same
1934 as original <avx512>_load<mode>_mask with adjustment of
1936 (*<avx512>_load<mode>): New define_insn_and_split which is
1937 used to optimize for masked load with all one mask.
1939 2020-12-03 Hongyu Wang <hongyu.wang@intel.com>
1942 * config/i386/sse.md (popcount<mode>2): New expander
1943 for SI/DI vector modes.
1944 (popcount<mode>2): Likewise for QI/HI vector modes.
1946 2020-12-03 Alexandre Oliva <oliva@adacore.com>
1948 * builtins.c (default_emit_call_builtin___clear_cache): New.
1949 (maybe_emit_call_builtin___clear_cache): New.
1950 (expand_builtin___clear_cache): Split into the above.
1951 (expand_builtin): Do not issue clear_cache call any more.
1952 * builtins.h (maybe_emit_call_builtin___clear_cache): Declare.
1953 * config/aarch64/aarch64.c (aarch64_trampoline_init): Use
1954 maybe_emit_call_builtin___clear_cache.
1955 * config/arc/arc.c (arc_trampoline_init): Likewise.
1956 * config/arm/arm.c (arm_trampoline_init): Likewise.
1957 * config/c6x/c6x.c (c6x_initialize_trampoline): Likewise.
1958 * config/csky/csky.c (csky_trampoline_init): Likewise.
1959 * config/m68k/linux.h (FInALIZE_TRAMPOLINE): Likewise.
1960 * config/tilegx/tilegx.c (tilegx_trampoline_init): Likewise.
1961 * config/tilepro/tilepro.c (tilepro_trampoline_init): Ditto.
1962 * config/vxworks.c: Include rtl.h, memmodel.h, and optabs.h.
1963 (vxworks_emit_call_builtin___clear_cache): New.
1964 * config/vxworks.h (CLEAR_INSN_CACHE): Drop.
1965 (TARGET_EMIT_CALL_BUILTIN___CLEAR_CACHE): Define.
1966 * target.def (trampoline_init): In the documentation, refer to
1967 maybe_emit_call_builtin___clear_cache.
1968 (emit_call_builtin___clear_cache): New.
1969 * doc/tm.texi.in: Add new hook point.
1970 (CLEAR_CACHE_INSN): Remove duplicate 'both'.
1971 * doc/tm.texi: Rebuilt.
1972 * targhooks.h (default_meit_call_builtin___clear_cache):
1974 * tree.h (BUILTIN_ASM_NAME_PTR): New.
1976 2020-12-03 Ilya Leoshkevich <iii@linux.ibm.com>
1978 * tree-ssa-threadbackward.c (thread_jumps::profitable_jump_thread_path):
1979 Do not allow __builtin_constant_p on a threading path.
1981 2020-12-02 Jakub Jelinek <jakub@redhat.com>
1983 * dwarf2out.c (add_scalar_info): Only use add_AT_wide for 128-bit
1984 constants and only in dwarf-5 or later, where DW_FORM_data16 is
1985 available. Otherwise use DW_FORM_block*/DW_FORM_exprloc with
1986 DW_OP_implicit_value to describe the constant.
1988 2020-12-02 qing zhao <qinzhao@gcc.gnu.org>
1990 PR rtl-optimization/97777
1991 * reg-stack.c (rest_of_handle_stack_regs): call
1992 df_insn_rescan_all if reg_to_stack return true.
1994 2020-12-02 Ilya Leoshkevich <iii@linux.ibm.com>
1996 * config/s390/s390-protos.h (s390_const_int_pool_entry_p): New
1998 * config/s390/s390.c (s390_const_int_pool_entry_p): New
2000 * config/s390/s390.md: Add define_peephole2 that produces llihf
2003 2020-12-02 Richard Biener <rguenther@suse.de>
2005 PR tree-optimization/97630
2006 * tree-vectorizer.h (_slp_tree::next_node,
2007 _slp_tree::prev_node): New.
2008 (vect_slp_init): Declare.
2009 (vect_slp_fini): Likewise.
2010 * tree-vectorizer.c (vectorize_loops): Call vect_slp_init/fini.
2011 (pass_slp_vectorize::execute): Likewise.
2012 * tree-vect-slp.c (vect_slp_init): New.
2013 (vect_slp_fini): Likewise.
2014 (slp_first_node): New global.
2015 (_slp_tree::_slp_tree): Link node into the SLP tree list.
2016 (_slp_tree::~_slp_tree): Delink node from the SLP tree list.
2018 2020-12-02 Scott Snyder <sss@li-snyder.org>
2021 * vec.h (auto_delete_vec): Use
2022 DISABLE_COPY_AND_ASSIGN(auto_delete_vec) instead of
2023 DISABLE_COPY_AND_ASSIGN(auto_delete_vec<T>) to make it valid C++20
2026 2020-12-02 Martin Liska <mliska@suse.cz>
2029 * cgraph.c (cgraph_node::dump): Dump decl_is_malloc flag.
2030 * ipa-pure-const.c (propagate_malloc): Do not set malloc
2031 attribute for void functions.
2033 2020-12-02 H.J. Lu <hjl.tools@gmail.com>
2037 * configure.ac (HAVE_GAS_SECTION_LINK_ORDER): New. Define 1 if
2038 the assembler supports the section flag 'o' for specifying
2039 section with link-order.
2040 * output.h (SECTION_LINK_ORDER): New. Defined to 0x8000000.
2041 (SECTION_MACH_DEP): Changed from 0x8000000 to 0x10000000.
2042 * targhooks.c (default_print_patchable_function_entry): Pass
2043 SECTION_LINK_ORDER to switch_to_section if the section flag 'o'
2044 works. Pass current_function_decl to switch_to_section.
2045 * varasm.c (default_elf_asm_named_section): Use 'o' flag for
2046 SECTION_LINK_ORDER if assembler supports it.
2047 * config.in: Regenerated.
2048 * configure: Likewise.
2049 * doc/sourcebuild.texi: Document o_flag_in_section.
2051 2020-12-02 H.J. Lu <hjl.tools@gmail.com>
2053 * config/i386/i386.opt: Add the missing '.' for -mneeded.
2055 2020-12-02 Richard Biener <rguenther@suse.de>
2057 * tree-vect-loop.c (vect_transform_loop_stmt): Return whether
2058 we vectorized a stmt.
2059 (vect_transform_loop): Only call maybe_set_vectorized_backedge_value
2060 when we vectorized the stmt.
2062 2020-12-02 Jakub Jelinek <jakub@redhat.com>
2064 * expmed.h (expand_divmod): Only declare if GCC_OPTABS_H is defined.
2065 Add enum optabs_method argument defaulted to OPTAB_LIB_WIDEN.
2066 * expmed.c: Include expmed.h after optabs.h.
2067 (expand_divmod): Add methods argument, if it is not OPTAB_{,LIB_}WIDEN,
2068 don't choose a wider mode, and pass it to other calls instead of
2069 hardcoded OPTAB_LIB_WIDEN. Avoid emitting libcalls if not
2070 OPTAB_LIB or OPTAB_LIB_WIDEN.
2071 * optabs.c: Include expmed.h after optabs.h.
2072 (expand_doubleword_mod, expand_doubleword_divmod): Pass OPTAB_DIRECT
2073 as last argument to expand_divmod.
2074 (expand_binop): Punt if {s,u}divmod_optab has handler for double-word
2076 * expr.c: Include expmed.h after optabs.h.
2077 * explow.c: Include expmed.h after optabs.h.
2079 2020-12-02 Jakub Jelinek <jakub@redhat.com>
2081 PR rtl-optimization/97459
2082 * optabs.h (expand_doubleword_divmod): Declare.
2083 * optabs.c (expand_doubleword_divmod): New function.
2084 (expand_binop): Use it.
2085 * internal-fn.c (expand_DIVMOD): Likewise.
2087 2020-12-02 Martin Liska <mliska@suse.cz>
2090 * gimple-fold.c (clear_padding_type): Do not divide by zero.
2092 2020-12-02 Martin Liska <mliska@suse.cz>
2094 * gdbinit.in: Write what each command calls
2095 for a debugging function.
2097 2020-12-02 Kewen Lin <linkw@linux.ibm.com>
2099 * config/rs6000/rs6000.c (rs6000_option_override_internal):
2100 Use OPTION_MASK_DIRECT_MOVE for Power8 target_enable instead
2102 * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER):
2103 Remove OPTION_MASK_HTM.
2104 (RS6000_CPU): Add OPTION_MASK_HTM to power8, power9 and
2105 powerpc64le entries.
2107 2020-12-02 Uroš Bizjak <ubizjak@gmail.com>
2110 * config/i386/i386.md (abs<mode>2): Enable QImode
2111 only for !TARGET_PARTIAL_REG_STALL.
2112 (*abs<mode>2_1): Ditto.
2113 (<maxmin:code><mode>3): Ditto.
2114 (*<maxmin:code><mode>3_1): Ditto.
2116 2020-12-02 Martin Liska <mliska@suse.cz>
2118 * diagnostic.c (diagnostic_report_diagnostic): ICE causes to
2119 terminate compiler immediately, so I guess it should be printed
2122 2020-12-02 Martin Liska <mliska@suse.cz>
2124 PR tree-optimization/88702
2125 * gimple-if-to-switch.cc (pass_if_to_switch::execute):
2126 Require at least 2 BBs.
2127 * gimple-if-to-switch.cc (find_conditions): Require
2128 equal precision for low and high of a range.
2130 2020-12-02 Martin Liska <mliska@suse.cz>
2132 PR tree-optimization/98084
2133 * gimple-if-to-switch.cc (find_conditions): Consider only
2136 2020-12-02 Jeff Law <law@redhat.com>
2138 * config/h8300/addsub.md (addqi3_clobber_flags): Rename to
2139 addqi3_flags and annotate with a <cczn> for define_subst.
2140 (addhi3_h8sx_clobber_flags): Likewise.
2141 (subqi3_clobber_flags, sub<mode>3_clobber_flags): Likewise.
2142 (neg<mode2>_clobber_flags): Similarly.
2143 (addsi3_clobber_flags): Similarly. Update last argument to
2144 output_plussi to distinguish when we need flags or do not need
2146 (addhi3_clobber_flags): Similarly. Twiddle code for cases
2148 * config/h8300/h8300.md: Define iterators, mode attributes and
2149 substitutions for use in compare/test elimination.
2150 * config/h8300/jumpcall.md (branch, branch_1): Use H8cc mode
2151 iterator to cover the different modes for the CC register.
2152 (branch_1_false): Likewise.
2154 2020-12-02 Maciej W. Rozycki <macro@linux-mips.org>
2156 * loop-iv.c: Fix a typo, s/bu/by/, in the `iv_analyze_expr'
2157 description in the introduction.
2159 2020-12-02 H.J. Lu <hjl.tools@gmail.com>
2161 * configure.ac (HAVE_GAS_SHF_GNU_RETAIN): New. Define 1 if
2162 the assembler supports marking sections with SHF_GNU_RETAIN flag.
2163 * output.h (SECTION_RETAIN): New. Defined as 0x4000000.
2164 (SECTION_MACH_DEP): Changed from 0x4000000 to 0x8000000.
2165 (default_unique_section): Add a bool argument.
2166 * varasm.c (get_section): Set SECTION_RETAIN for the preserved
2167 symbol with HAVE_GAS_SHF_GNU_RETAIN.
2168 (resolve_unique_section): Used named section for the preserved
2169 symbol if assembler supports SHF_GNU_RETAIN.
2170 (get_variable_section): Handle the preserved common symbol with
2171 HAVE_GAS_SHF_GNU_RETAIN.
2172 (default_elf_asm_named_section): Require the full declaration and
2173 use the 'R' flag for SECTION_RETAIN.
2174 * config.in: Regenerated.
2175 * configure: Likewise.
2176 * doc/sourcebuild.texi: Document R_flag_in_section.
2178 2020-12-02 H.J. Lu <hjl.tools@gmail.com>
2180 * config.gcc: Replace cet.o with gnu-property.o. Replace
2181 i386/t-cet with i386/t-gnu-property.
2182 * config/i386/cet.c: Renamed to ...
2183 * config/i386/gnu-property.c: This.
2184 (emit_gnu_property): New function.
2185 (file_end_indicate_exec_stack_and_cet): Renamed to ...
2186 (file_end_indicate_exec_stack_and_gnu_property): This. Call
2187 emit_gnu_property to generate GNU_PROPERTY_X86_FEATURE_1_AND and
2188 GNU_PROPERTY_X86_ISA_1_NEEDED properties.
2189 * config/i386/i386.opt (mneeded): New.
2190 * config/i386/linux-common.h (file_end_indicate_exec_stack_and_cet):
2192 (file_end_indicate_exec_stack_and_gnu_property): This.
2193 (TARGET_ASM_FILE_END): Updated.
2194 * config/i386/t-cet: Renamed to ...
2195 * config/i386/t-gnu-property: This.
2196 (cet.o): Renamed to ...
2197 (gnu-property.o): This.
2198 * doc/invoke.texi: Document -mneeded.
2200 2020-12-01 Eugene Rozenfeld <Eugene.Rozenfeld@microsoft.com>
2202 PR tree-optimization/96708
2203 * match.pd: New pattern for comparing X with MAX (X, Y)
2206 2020-12-01 Jeff Law <law@redhat.com>
2208 * config/mcore/t-mcore (MULTILIB_EXCEPTIONS): Define.
2210 2020-12-01 Martin Sebor <msebor@redhat.com>
2213 * tree.c (component_ref_size): Fail when DECL_SIZE != TYPE_SIZE.
2214 * tree.h (DECL_SIZE, TYPE_SIZE): Update comment.
2216 2020-12-01 JeanHeyd Meneide <phdofthehouse@gmail.com>
2218 * doc/cpp.texi: Document new macros.
2220 2020-12-01 Martin Sebor <msebor@redhat.com>
2223 * builtins.c (compute_objsize): Rename...
2224 (compute_objsize_r): to this. Change order and types of arguments.
2225 Use new argument. Adjust calls to self.
2226 (access_ref::get_ref): New member function.
2227 (pointer_query::pointer_query): New member function.
2228 (pointer_query::get_ref): Same.
2229 (pointer_query::put_ref): Same.
2230 (handle_min_max_size): Change order and types of arguments.
2231 (maybe_emit_free_warning): Add a test.
2232 * builtins.h (class pointer_query): New class.
2233 (compute_objsize): Declare an overload.
2234 * gimple-ssa-sprintf.c (get_destination_size): Add argument.
2235 (handle_printf_call): Change argument type.
2236 * tree-ssa-strlen.c (adjust_last_stmt): Add an argument and use it.
2237 (maybe_warn_overflow): Same.
2238 (handle_builtin_strcpy): Same.
2239 (maybe_diag_stxncpy_trunc): Same.
2240 (handle_builtin_memcpy): Change argument type. Adjust calls.
2241 (handle_builtin_strcat): Same.
2242 (handle_builtin_memset): Same.
2243 (handle_store): Same.
2244 (strlen_check_and_optimize_call): Same.
2245 (check_and_optimize_stmt): Same.
2246 (strlen_dom_walker): Add new data members.
2247 (strlen_dom_walker::before_dom_children): Use new member.
2248 (printf_strlen_execute): Dump cache performance counters. Remove
2249 objsize pass cleanup.
2250 * tree-ssa-strlen.h (maybe_diag_stxncpy_trunc): Add argument.
2251 (handle_printf_call): Change argument type.
2253 2020-12-01 Eric Botcazou <ebotcazou@adacore.com>
2255 * function.c (gen_call_used_regs_seq): In a function subject to the
2256 leaf register optimization, skip registers that are not present.
2257 * config/sparc/sparc.c (TARGET_ZERO_CALL_USED_REGS): Define to...
2258 (sparc_zero_call_used_regs): ...this. New function.
2260 2020-12-01 Iain Sandoe <iain@sandoe.co.uk>
2262 * config/darwin.h: Remove unused 'X' specs in the link spec
2263 rather than driver self-specs.
2265 2020-12-01 Nathan Sidwell <nathan@acm.org>
2267 * params.opt (lazy-modules): New.
2268 * timevar.def (TV_MODULE_IMPORT, TV_MODULE_EXPORT)
2269 (TV_MODULE_MAPPER): New.
2271 2020-12-01 Jakub Jelinek <jakub@redhat.com>
2273 PR rtl-optimization/97459
2274 * optabs.c (expand_doubleword_mod): Punt early for even op1.
2275 (expand_binop): Don't require lshr_optab double-word handler.
2277 2020-12-01 Jakub Jelinek <jakub@redhat.com>
2279 PR rtl-optimization/97954
2280 * loop-invariant.c (find_invariant_insn): Punt on JUMP_P insns.
2282 2020-12-01 Iain Sandoe <iain@sandoe.co.uk>
2284 * configure.ac (check leb128 support): Check that assemblers both
2285 accept the LEB128 directives and also give the expected output.
2286 Add a test for uleb128 with the MSB set for a 64 bit value.
2287 * configure: Regenerated.
2289 2020-12-01 Iain Sandoe <iain@sandoe.co.uk>
2291 * configure: Regnerated.
2293 2020-12-01 Ilya Leoshkevich <iii@linux.ibm.com>
2295 * optabs-tree.c (vec_cmp_icode_p): New function.
2296 (vec_cmp_eq_icode_p): New function.
2297 (expand_vec_cmp_expr_p): Use vec_cmp_icode_p and
2299 (vcond_icode_p): Use get_rtx_code_1, just to be uniform with
2301 * optabs.c (unsigned_optab_p): New function.
2302 (insn_predicate_matches_p): New function.
2303 (can_vec_cmp_compare_p): New function.
2304 (can_vcond_compare_p): Use unsigned_optab_p and
2305 insn_predicate_matches_p.
2306 (get_rtx_code): Use get_rtx_code_1.
2307 (get_rtx_code_1): Version of get_rtx_code that returns UNKNOWN
2308 instead of asserting.
2309 * optabs.h (can_vec_cmp_compare_p): New function.
2310 (get_rtx_code_1): New function.
2312 2020-12-01 Martin Liska <mliska@suse.cz>
2314 PR tree-optimization/14799
2316 * Makefile.in: Add gimple-if-to-switch.o.
2317 * dbgcnt.def (DEBUG_COUNTER): Add new debug counter.
2318 * passes.def: Include new pass_if_to_switch pass.
2319 * timevar.def (TV_TREE_IF_TO_SWITCH): New timevar.
2320 * tree-pass.h (make_pass_if_to_switch): New.
2321 * tree-ssa-reassoc.c (struct operand_entry): Move to the header.
2322 (dump_range_entry): Move to header file.
2323 (debug_range_entry): Likewise.
2324 (no_side_effect_bb): Make it global.
2325 * tree-switch-conversion.h (simple_cluster::simple_cluster):
2326 Add inline for couple of functions in order to prevent error
2327 about multiple defined symbols.
2328 * gimple-if-to-switch.cc: New file.
2329 * tree-ssa-reassoc.h: New file.
2331 2020-12-01 Marius Hillenbrand <mhillen@linux.ibm.com>
2333 * configure.ac: Add configure option
2334 --enable-s390-excess-float-precision and check to derive default
2336 * config/s390/s390.c: Guard s390_excess_precision with an ifdef
2337 for ENABLE_S390_EXCESS_FLOAT_PRECISION.
2338 * doc/install.texi: Document --enable-s390-excess-float-precision.
2339 * configure: Regenerate.
2340 * config.in: Regenerate.
2342 2020-12-01 Martin Liska <mliska@suse.cz>
2345 * symtab.c (symtab_node::set_section_for_node): Drop
2346 implicit_section if x_section is NULL.
2348 2020-12-01 Jakub Jelinek <jakub@redhat.com>
2351 * config/i386/i386-expand.c (ix86_expand_call): Handle non-plt
2354 2020-12-01 Richard Biener <rguenther@suse.de>
2357 * builtins.c (builtin_fnspec): realloc is ".Cw ".
2359 2020-12-01 Jakub Jelinek <jakub@redhat.com>
2361 * dwarf2out.c (gen_compile_unit_die): Treat GNU C++20
2362 like C++14 for -gdwarf-5.
2364 2020-12-01 Jakub Jelinek <jakub@redhat.com>
2367 * gcc.c (cpp_unique_options): Add -dD if %:debug-level-gt(2)
2368 rather than g3|ggdb3|gstabs3|gxcoff3|gvms3.
2370 2020-12-01 Kito Cheng <kito.cheng@sifive.com>
2372 * config.gcc (riscv*-*-*): Drop some commited accidentally code.
2374 2020-11-30 Jeff Law <law@redhat.com>
2376 * symtab.c (set_section_for_node): Add function comment.
2377 (set_section_from_node): Likewise.
2379 2020-11-30 David Malcolm <dmalcolm@redhat.com>
2381 * doc/plugins.texi (Plugin callbacks): Add PLUGIN_ANALYZER_INIT.
2382 * plugin.c (register_callback): Likewise.
2383 (invoke_plugin_callbacks_full): Likewise.
2384 * plugin.def (PLUGIN_ANALYZER_INIT): New event.
2386 2020-11-30 Jeff Law <law@redhat.com>
2388 * config/h8300/bitfield.md: Remove "cc" attribute on any
2389 insns where it remained.
2390 * config/h8300/combiner.md: Likewise.
2391 * config/h8300/jumpcall.md: Likewise.
2392 * config/h8300/logical.md: Likewise.
2393 * config/h8300/testcompare.md: Likewise.
2394 * config/h8300/h8300.md (old_cc attr): Renamed from cc attr.
2395 * config/h8300/h8300.c (notice_update_cc): Remove.
2396 (compute_plussi_cc): Change references to CC_* to OLD_CC_.
2397 (compute_logical_op_cc): Likewise.
2398 (shift_one, shift_two): Likewise.
2399 (compute_a_shift_cc): Likewise.
2400 (get_shift_alg): Likewise.
2401 (struct shift_insn): Change type of cc_valid field.
2402 (struct shift_info): Likewise.
2403 * config/h8300/save.md: Remove accidentially created file.
2405 2020-11-30 Richard Sandiford <richard.sandiford@arm.com>
2407 PR rtl-optimization/98037
2408 * dse.c (find_shift_sequence): Iterate over all integers and
2409 skip modes that are too small.
2411 2020-11-30 Eugene Rozenfeld <Eugene.Rozenfeld@microsoft.com>
2413 PR tree-optimization/96679
2414 * match.pd (((b | c) & a) | b -> (a & c) | b): New pattern.
2416 2020-11-30 Martin Liska <mliska@suse.cz>
2418 * passes.c (emergency_dump_function): Dump symtab when
2419 we are in an IPA pass.
2421 2020-11-30 Richard Biener <rguenther@suse.de>
2423 PR tree-optimization/98064
2424 * tree-vect-loop.c (vectorizable_live_operation): Avoid
2425 breaking LC SSA for BB vectorization.
2427 2020-11-30 Jonathan Wakely <jwakely@redhat.com>
2429 * doc/sourcebuild.texi (Directives): Fix description of
2430 dg-require-effective-target to include "target" in selector.
2432 2020-11-30 Richard Biener <rguenther@suse.de>
2434 PR tree-optimization/98048
2435 * tree-vect-generic.c (expand_vector_operations_1): Use the
2436 correct type for the scalar LHS replacement.
2438 2020-11-30 Martin Liska <mliska@suse.cz>
2440 PR tree-optimization/98066
2441 * gimple-isel.cc (gimple_expand_vec_exprs): Return when
2442 gimple_expand_vec_exprs replaces last stmt.
2444 2020-11-30 Ilya Leoshkevich <iii@linux.ibm.com>
2446 * cfgrtl.c (rtl_bb_info_initialized_p): New function.
2447 (rtl_dump_bb): Use rtl_bb_info_initialized_p before accessing bb
2450 2020-11-30 Iain Buclaw <ibuclaw@gdcproject.org>
2453 * config.gcc (*-*-freebsd*): Add freebsd-d.o and t-freebsd.
2454 * config/freebsd-d.c: New file.
2455 * config/t-freebsd: New file.
2457 2020-11-30 Jakub Jelinek <jakub@redhat.com>
2459 PR rtl-optimization/97459
2460 * internal-fn.h (expand_addsub_overflow): Declare.
2461 * internal-fn.c (expand_addsub_overflow): No longer static.
2462 * optabs.c (expand_doubleword_mod): New function.
2463 (expand_binop): Optimize double-word mod with constant divisor.
2465 2020-11-30 Kito Cheng <kito.cheng@sifive.com>
2467 * config.gcc (riscv*-*-*): Add TARGET_RISCV_DEFAULT_ABI and
2468 TARGET_RISCV_DEFAULT_ARCH to tm_defines.
2469 Remove including riscv/withmultilib.h for --with-multilib-list.
2470 * config/riscv/riscv.h (STRINGIZING): New.
2471 (__STRINGIZING): Ditto.
2472 (MULTILIB_DEFAULTS): Ditto.
2473 * config/riscv/withmultilib.h: Remove.
2475 2020-11-30 Kito Cheng <kito.cheng@sifive.com>
2477 * gcc.c (print_multilib_info): Check default arguments not
2478 appeared in multi-lib option list with '!'
2480 2020-11-30 Jeff Law <law@redhat.com>
2482 * config/ft32/ft32.md (umulsidi3): Do not allow constants as
2485 2020-11-29 Jan Hubicka <jh@suse.cz>
2487 * ipa-modref.c (ipa_merge_modref_summary_after_inlining): Fix
2488 handling of ignore_stores.
2490 2020-11-29 Jan Hubicka <jh@suse.cz>
2493 * symtab-thunks.h (thunk_info::release): Use ggc_delete.
2495 2020-11-29 Martin Sebor <msebor@redhat.com>
2500 * builtins.c (access_ref::access_ref): Initialize member.
2501 (access_ref::phi): New function.
2502 (access_ref::get_ref): New function.
2503 (access_ref::add_offset): Remove duplicate assignment.
2504 (maybe_warn_for_bound): Add "maybe" kind of warning messages.
2505 (warn_for_access): Same.
2506 (inform_access): Rename...
2507 (access_ref::inform_access): ...to this. Print PHI arguments. Format
2508 offset the same as size and simplify. Improve printing of allocation
2510 (check_access): Adjust to the above.
2511 (gimple_parm_array_size): Change argument.
2512 (handle_min_max_size): New function.
2513 * builtins.h (class ssa_name_limit_t): Move class here from
2515 (struct access_ref): Declare new members.
2516 (gimple_parm_array_size): Change argument.
2517 * tree-ssa-strlen.c (maybe_warn_overflow): Use access_ref and simplify.
2518 (handle_builtin_memcpy): Correct argument passed to maybe_warn_overflow.
2519 (handle_builtin_memset): Same.
2520 (class ssa_name_limit_t): Move class to builtins.{h,c}.
2522 2020-11-29 Iain Buclaw <ibuclaw@gdcproject.org>
2524 * config.gcc (*-*-darwin*): Set d_target_objs and target_has_targetdm.
2525 * config/elfos.h (TARGET_D_MINFO_SECTION): New macro.
2526 (TARGET_D_MINFO_START_NAME): New macro.
2527 (TARGET_D_MINFO_END_NAME): New macro.
2528 * config/t-darwin: Add darwin-d.o.
2529 * doc/tm.texi: Regenerate.
2530 * doc/tm.texi.in (D language and ABI): Add @hook for
2531 TARGET_D_MINFO_SECTION, TARGET_D_MINFO_START_NAME, and
2532 TARGET_D_MINFO_END_NAME.
2533 * config/darwin-d.c: New file.
2535 2020-11-29 Jan Hubicka <jh@suse.cz>
2537 * tree-ssa-structalias.c (handle_pure_call): Skip EAF_UNUSED
2540 2020-11-29 Jan Hubicka <jh@suse.cz>
2542 * ipa-modref.c (modref_lattice::merge): Do nothing if F is EAF_UNUSED.
2543 (analyze_parms): Detect unused params.
2544 (modref_merge_call_site_flags): Merge correct EAF_UNUSED.
2546 2020-11-28 Eric Botcazou <ebotcazou@adacore.com>
2549 * config/sparc/predicates.md (arith_double_add_operand): Comment.
2550 * config/sparc/sparc.md (uaddvdi4): Use arith_double_operand.
2551 (addvdi4): Use arith_double_add_operand.
2552 (addsi3): Remove useless attributes.
2553 (addvsi4): Use arith_add_operand.
2554 (*cmp_ccv_plus): Likewise and add second alternative accordingly.
2555 (*cmp_ccxv_plus): Likewise.
2556 (*cmp_ccv_plus_set): Likewise.
2557 (*cmp_ccxv_plus_set): Likewise.
2558 (*cmp_ccv_plus_sltu_set): Likewise.
2559 (usubvdi4): Use arith_double_operand.
2560 (subvdi4): Use arith_double_add_operand.
2561 (subsi3): Remove useless attributes.
2562 (subvsi4): Use arith_add_operand.
2563 (*cmp_ccv_minus): Likewise and add second alternative accordingly.
2564 (*cmp_ccxv_minus): Likewise.
2565 (*cmp_ccv_minus_set): Likewise.
2566 (*cmp_ccxv_minus_set): Likewise.
2567 (*cmp_ccv_minus_sltu_set): Likewise.
2568 (negsi2): Use register_operand.
2569 (unegvsi3): Likewise.
2571 (*cmp_ccnz_neg): Likewise.
2572 (*cmp_ccxnz_neg): Likewise.
2573 (*cmp_ccnz_neg_set): Likewise.
2574 (*cmp_ccxnz_neg_set): Likewise.
2575 (*cmp_ccc_neg_set): Likewise.
2576 (*cmp_ccxc_neg_set): Likewise.
2577 (*cmp_ccc_neg_sltu_set): Likewise.
2578 (*cmp_ccv_neg): Likewise.
2579 (*cmp_ccxv_neg): Likewise.
2580 (*cmp_ccv_neg_set): Likewise.
2581 (*cmp_ccxv_neg_set): Likewise.
2582 (*cmp_ccv_neg_sltu_set): Likewise.
2584 2020-11-27 H.J. Lu <hjl.tools@gmail.com>
2587 * doc/install.texi: Default to --enable-cet=auto.
2589 2020-11-27 Thomas Schwinge <thomas@codesourcery.com>
2591 * omp-oacc-kernels-decompose.cc (flatten_binds): Don't choke on
2592 empty GIMPLE sequence, and examine all statements contained in
2593 inner 'GIMPLE_BIND'.
2595 2020-11-27 Richard Biener <rguenther@suse.de>
2597 PR tree-optimization/98024
2598 * tree-ssa-pre.c (insert): Fix successor RPO order check.
2599 (do_pre_regular_insertion): When inserting an assignment
2600 in place of an all-same-value PHI still record that into
2603 2020-11-27 Jakub Jelinek <jakub@redhat.com>
2605 * tree-ssanames.c (get_range_info): Handle INTEGER_CST by returning
2606 VR_RANGE with both *min and *max set to the wide_int value of the
2607 INTEGER_CST. Return VR_VARYING for non-SSA_NAMEs.
2608 * match.pd ((t * 2) / 2) -> t): Handle also @0 being INTEGER_CST.
2609 Simplify by calling get_range_info on everything.
2610 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Simplify by calling
2611 get_range_info on everything.
2612 * tree-scalar-evolution.c (iv_can_overflow_p): Likewise.
2614 2020-11-27 Jakub Jelinek <jakub@redhat.com>
2617 * gimple-fold.c (clear_padding_type): Ignore fields with is_empty_type
2620 2020-11-27 Tobias Burnus <tobias@codesourcery.com>
2623 * omp-expand.c (expand_oacc_collapse_init, expand_oacc_collapse_vars):
2624 Use now passed diff_type.
2625 (expand_oacc_for): Take largest type for diff_type, taking tiling
2626 and collapsing into account.
2628 2020-11-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2630 * config/aarch64/aarch64.opt
2631 (-param=aarch64-autovec-preference): Define.
2632 * config/aarch64/aarch64.c (aarch64_override_options_internal):
2633 Set aarch64_sve_compare_costs to 0 when preferring only Advanced
2635 (aarch64_cmp_autovec_modes): Define.
2636 (aarch64_preferred_simd_mode): Adjust to use the above.
2637 (aarch64_autovectorize_vector_modes): Likewise.
2638 * doc/invoke.texi: Document aarch64-autovec-preference param.
2640 2020-11-27 Xionghu Luo <luoxhu@linux.ibm.com>
2642 * config/rs6000/rs6000-call.c (altivec_expand_vec_set_builtin):
2643 Change call param 2 from type int to rtx.
2644 * config/rs6000/rs6000-protos.h (rs6000_expand_vector_set):
2646 * config/rs6000/rs6000.c (rs6000_expand_vector_init):
2647 Change call param 2 from type int to rtx.
2648 (rs6000_expand_vector_set): Likewise.
2649 * config/rs6000/vector.md (vec_set<mode>): Support both constant
2650 and variable index vec_set.
2652 2020-11-27 Haochen Gui <guihaoc@gcc.gnu.org>
2654 * config/rs6000/rs6000-protos.h (rs6000_output_addr_vec_elt): Declare.
2655 * config/rs6000/rs6000.c (TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC):
2657 (rs6000_gen_pic_addr_diff_vec, rs6000_output_addr_vec_elt): Implement.
2658 * config/rs6000/rs6000.h (CASE_VECTOR_PC_RELATIVE,
2659 CASE_VECTOR_MODE, ASM_OUTPUT_ADDR_VEC_ELT): Define.
2660 * config/rs6000/rs6000.md (tablejump<mode>_absolute,
2661 tablejump<mode>_absolute_nospec): New expanders.
2662 * config/rs6000/rs6000.opt (mrelative-jumptables): New.
2664 2020-11-26 Eric Botcazou <ebotcazou@adacore.com>
2667 * config/sparc/sparc-protos.h (eligible_for_call_delay): Delete.
2668 * config/sparc/sparc.c (eligible_for_call_delay): Likewise.
2669 * config/sparc/sparc.md (in_call_delay): Likewise.
2670 (tls_delay_slot): New attribute.
2671 (define_delay [call]): Use in_branch_delay.
2672 (tgd_call<P:mode>): Set type to call_no_delay_slot when
2673 tls_delay_slot is false.
2674 (tldm_call<P:mode>): Likewise.
2676 2020-11-26 Jakub Jelinek <jakub@redhat.com>
2678 PR tree-optimization/97997
2679 * match.pd ((t * 2) / 2) -> t): Optimize even for defined
2680 overflow if ranges prove there is no overflow.
2682 2020-11-26 Richard Biener <rguenther@suse.de>
2684 PR tree-optimization/97953
2685 * gimple-ssa-evrp-analyze.c
2686 (evrp_range_analyzer::record_ranges_from_incoming_edge): Make
2687 sure the condition post-dominates the SSA definition before
2688 recording into SSA_NAME_RANGE_INFO.
2690 2020-11-26 Richard Biener <rguenther@suse.de>
2692 * gimple-isel.cc (gimple_expand_vec_cond_expr): Only
2693 lower VECTOR_BOOLEAN_TYPE_P VEC_COND_EXPRs.
2695 2020-11-26 Andrew Stubbs <ams@codesourcery.com>
2697 * config/gcn/mkoffload.c (copy_early_debug_info): Don't wipe
2700 2020-11-26 Uroš Bizjak <ubizjak@gmail.com>
2702 * config/i386/i386-expand.c (ix86_expand_multi_arg_builtin):
2703 Remove args array of structs, declare rtx xops array instead.
2705 (ix86_expand_args_builtin): Ditto.
2706 (ix86_expand_round_builtin): Ditto.
2707 (ix86_expand_special_args_builtin): Ditto.
2709 2020-11-26 Martin Liska <mliska@suse.cz>
2711 * dwarf2out.c (gen_compile_unit_die): Fix missing == 0 in a
2714 2020-11-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2716 * config/sol2.h (TIME_LIBRARY): Remove.
2718 2020-11-26 Kewen Lin <linkw@linux.ibm.com>
2720 * config/rs6000/rs6000.c (rs6000_option_override_internal):
2721 Set param_vect_partial_vector_usage as 1 for Power10 and up
2724 2020-11-26 Jakub Jelinek <jakub@redhat.com>
2726 * gimple-fold.c (clear_padding_union): Ignore DECL_PADDING_P
2728 (clear_padding_type): Ignore DECL_PADDING_P fields, rather than
2729 DECL_BIT_FIELD with NULL DECL_NAME.
2731 2020-11-26 Jakub Jelinek <jakub@redhat.com>
2733 PR tree-optimization/97979
2734 * match.pd ((X {&,^,|} C2) << C1 into (X << C1) {&,^,|} (C2 << C1)):
2735 Only optimize if int_const_binop returned non-NULL.
2737 2020-11-26 liuhongt <hongtao.liu@intel.com>
2739 * config/i386/i386-expand.c
2740 (ix86_expand_special_args_builtin): Delete last_arg_constant
2743 2020-11-26 Uroš Bizjak <ubizjak@gmail.com>
2746 * config/i386/i386.md (abs<mode>2): Use SDWIM mode iterator.
2747 (*abs<mode>2_1): Use SWI mode iterator.
2748 (<maxmin:code><mode>3): Use SDWIM mode iterator.
2749 (*<maxmin:code><mode>3_1): Use SWI mode iterator.
2751 2020-11-26 Jakub Jelinek <jakub@redhat.com>
2754 * config/i386/sse.md (VI12_AVX2): Remove V64QI/V32HI modes.
2755 (VI12_AVX2_AVX512BW): New mode iterator.
2756 (<sse2_avx2>_<plusminus_insn><mode>3<mask_name>,
2757 uavg<mode>3_ceil, <sse2_avx2>_uavg<mode>3<mask_name>): Use
2758 VI12_AVX2_AVX512BW iterator instead of VI12_AVX2.
2759 (*<sse2_avx2>_<plusminus_insn><mode>3<mask_name>): Likewise.
2760 (*<sse2_avx2>_uavg<mode>3<mask_name>): Likewise.
2761 (*<sse2_avx2>_<plusminus_insn><mode>3<mask_name>): Add a new
2762 define_split after this insn.
2764 2020-11-26 Martin Uecker <muecker@gwdg.de>
2768 * ginclude/stdatomic.h: Use comma operator to drop qualifiers.
2770 2020-11-26 Vladimir Makarov <vmakarov@redhat.com>
2773 * lra.c (lra_process_new_insns): Use emit_insn_before_noloc or
2774 emit_insn_after_noloc with the destination BB.
2776 2020-11-25 Martin Sebor <msebor@redhat.com>
2780 * config/i386/i386-options.c (ix86_valid_target_attribute_inner_p):
2781 Avoid -Wformat-diag.
2782 * digraph.cc (struct test_edge): Same.
2783 * dumpfile.c (dump_loc): Same.
2784 (dump_context::begin_scope): Same.
2785 * edit-context.c (edited_file::print_diff): Same.
2786 (edited_file::print_diff_hunk): Same.
2787 * json.cc (object::print): Same.
2788 * lto-wrapper.c (merge_and_complain): Same.
2789 * reload.c (find_reloads): Same.
2790 * tree-diagnostic-path.cc (print_path_summary_as_text): Same.
2791 * ubsan.c (ubsan_type_descriptor): Same.
2793 2020-11-25 Jan Hubicka <jh@suse.cz>
2795 * gimple.c (gimple_call_arg_flags): Also imply EAF_NODIRECTESCAPE.
2796 * tree-core.h (EAF_NODRECTESCAPE): New flag.
2797 * tree-ssa-structalias.c (make_indirect_escape_constraint): New
2799 (handle_rhs_call): Hanlde EAF_NODIRECTESCAPE.
2800 * ipa-modref.c (dump_eaf_flags): Print EAF_NODIRECTESCAPE.
2801 (deref_flags): Dereference is always EAF_NODIRECTESCAPE.
2802 (modref_lattice::init): Also set EAF_NODIRECTESCAPE.
2803 (analyze_ssa_name_flags): Pure functions do not affect
2805 (analyze_params): Likewise.
2806 (ipa_merge_modref_summary_after_inlining): Likewise.
2807 (modref_merge_call_site_flags): Likewise.
2809 2020-11-25 Jan Hubicka <jh@suse.cz>
2811 * ipa-modref.c (modref_summaries::duplicate,
2812 modref_summaries_lto::duplicate): Copy arg_flags.
2813 (remap_arg_flags): Fix remapping of arg_flags.
2815 2020-11-25 Martin Sebor <msebor@redhat.com>
2818 * gimple-fold.c (gimple_fold_builtin_memchr): Use sizetype for pointer
2821 2020-11-25 Matthew Malcomson <matthew.malcomson@arm.com>
2823 * asan.c (asan_instrument_reads): New.
2824 (asan_instrument_writes): New.
2825 (asan_memintrin): New.
2826 (handle_builtin_stack_restore): Account for HWASAN.
2827 (handle_builtin_alloca): Account for HWASAN.
2828 (get_mem_refs_of_builtin_call): Special case strlen for HWASAN.
2829 (hwasan_instrument_reads): New.
2830 (hwasan_instrument_writes): New.
2831 (hwasan_memintrin): New.
2832 (report_error_func): Assert not HWASAN.
2833 (build_check_stmt): Make HWASAN_CHECK instead of ASAN_CHECK.
2834 (instrument_derefs): HWASAN does not tag globals.
2835 (instrument_builtin_call): Use new helper functions.
2836 (maybe_instrument_call): Don't instrument `noreturn` functions.
2837 (initialize_sanitizer_builtins): Add new type.
2838 (asan_expand_mark_ifn): Account for HWASAN.
2839 (asan_expand_check_ifn): Assert never called by HWASAN.
2840 (asan_expand_poison_ifn): Account for HWASAN.
2841 (asan_instrument): Branch based on whether using HWASAN or ASAN.
2842 (pass_asan::gate): Return true if sanitizing HWASAN.
2843 (pass_asan_O0::gate): Return true if sanitizing HWASAN.
2844 (hwasan_check_func): New.
2845 (hwasan_expand_check_ifn): New.
2846 (hwasan_expand_mark_ifn): New.
2848 * asan.h (hwasan_expand_check_ifn): New decl.
2849 (hwasan_expand_mark_ifn): New decl.
2850 (gate_hwasan): New decl.
2851 (asan_intercepted_p): Always false for hwasan.
2852 (asan_sanitize_use_after_scope): Account for HWASAN.
2853 * builtin-types.def (BT_FN_PTR_CONST_PTR_UINT8): New.
2854 * gimple-fold.c (gimple_build): New overload for building function
2855 calls without arguments.
2856 (gimple_build_round_up): New.
2857 * gimple-fold.h (gimple_build): New decl.
2858 (gimple_build): New inline function.
2859 (gimple_build_round_up): New decl.
2860 (gimple_build_round_up): New inline function.
2861 * gimple-pretty-print.c (dump_gimple_call_args): Account for
2863 * gimplify.c (asan_poison_variable): Account for HWASAN.
2864 (gimplify_function_tree): Remove requirement of
2865 SANITIZE_ADDRESS, requiring asan or hwasan is accounted for in
2866 `asan_sanitize_use_after_scope`.
2867 * internal-fn.c (expand_HWASAN_CHECK): New.
2868 (expand_HWASAN_ALLOCA_UNPOISON): New.
2869 (expand_HWASAN_CHOOSE_TAG): New.
2870 (expand_HWASAN_MARK): New.
2871 (expand_HWASAN_SET_TAG): New.
2872 * internal-fn.def (HWASAN_ALLOCA_UNPOISON): New.
2873 (HWASAN_CHOOSE_TAG): New.
2874 (HWASAN_CHECK): New.
2876 (HWASAN_SET_TAG): New.
2877 * sanitizer.def (BUILT_IN_HWASAN_LOAD1): New.
2878 (BUILT_IN_HWASAN_LOAD2): New.
2879 (BUILT_IN_HWASAN_LOAD4): New.
2880 (BUILT_IN_HWASAN_LOAD8): New.
2881 (BUILT_IN_HWASAN_LOAD16): New.
2882 (BUILT_IN_HWASAN_LOADN): New.
2883 (BUILT_IN_HWASAN_STORE1): New.
2884 (BUILT_IN_HWASAN_STORE2): New.
2885 (BUILT_IN_HWASAN_STORE4): New.
2886 (BUILT_IN_HWASAN_STORE8): New.
2887 (BUILT_IN_HWASAN_STORE16): New.
2888 (BUILT_IN_HWASAN_STOREN): New.
2889 (BUILT_IN_HWASAN_LOAD1_NOABORT): New.
2890 (BUILT_IN_HWASAN_LOAD2_NOABORT): New.
2891 (BUILT_IN_HWASAN_LOAD4_NOABORT): New.
2892 (BUILT_IN_HWASAN_LOAD8_NOABORT): New.
2893 (BUILT_IN_HWASAN_LOAD16_NOABORT): New.
2894 (BUILT_IN_HWASAN_LOADN_NOABORT): New.
2895 (BUILT_IN_HWASAN_STORE1_NOABORT): New.
2896 (BUILT_IN_HWASAN_STORE2_NOABORT): New.
2897 (BUILT_IN_HWASAN_STORE4_NOABORT): New.
2898 (BUILT_IN_HWASAN_STORE8_NOABORT): New.
2899 (BUILT_IN_HWASAN_STORE16_NOABORT): New.
2900 (BUILT_IN_HWASAN_STOREN_NOABORT): New.
2901 (BUILT_IN_HWASAN_TAG_MISMATCH4): New.
2902 (BUILT_IN_HWASAN_HANDLE_LONGJMP): New.
2903 (BUILT_IN_HWASAN_TAG_PTR): New.
2904 * sanopt.c (sanopt_optimize_walker): Act for hwasan.
2905 (pass_sanopt::execute): Act for hwasan.
2906 * toplev.c (compile_file): Use `gate_hwasan` function.
2908 2020-11-25 Matthew Malcomson <matthew.malcomson@arm.com>
2910 * asan.c (struct hwasan_stack_var): New.
2911 (hwasan_sanitize_p): New.
2912 (hwasan_sanitize_stack_p): New.
2913 (hwasan_sanitize_allocas_p): New.
2914 (initialize_sanitizer_builtins): Define new builtins.
2915 (ATTR_NOTHROW_LIST): New macro.
2916 (hwasan_current_frame_tag): New.
2917 (hwasan_frame_base): New.
2918 (stack_vars_base_reg_p): New.
2919 (hwasan_maybe_init_frame_base_init): New.
2920 (hwasan_record_stack_var): New.
2921 (hwasan_get_frame_extent): New.
2922 (hwasan_increment_frame_tag): New.
2923 (hwasan_record_frame_init): New.
2924 (hwasan_emit_prologue): New.
2925 (hwasan_emit_untag_frame): New.
2926 (hwasan_finish_file): New.
2927 (hwasan_truncate_to_tag_size): New.
2928 * asan.h (hwasan_record_frame_init): New declaration.
2929 (hwasan_record_stack_var): New declaration.
2930 (hwasan_emit_prologue): New declaration.
2931 (hwasan_emit_untag_frame): New declaration.
2932 (hwasan_get_frame_extent): New declaration.
2933 (hwasan_maybe_enit_frame_base_init): New declaration.
2934 (hwasan_frame_base): New declaration.
2935 (stack_vars_base_reg_p): New declaration.
2936 (hwasan_current_frame_tag): New declaration.
2937 (hwasan_increment_frame_tag): New declaration.
2938 (hwasan_truncate_to_tag_size): New declaration.
2939 (hwasan_finish_file): New declaration.
2940 (hwasan_sanitize_p): New declaration.
2941 (hwasan_sanitize_stack_p): New declaration.
2942 (hwasan_sanitize_allocas_p): New declaration.
2943 (HWASAN_TAG_SIZE): New macro.
2944 (HWASAN_TAG_GRANULE_SIZE): New macro.
2945 (HWASAN_STACK_BACKGROUND): New macro.
2946 * builtin-types.def (BT_FN_VOID_PTR_UINT8_PTRMODE): New.
2947 * builtins.def (DEF_SANITIZER_BUILTIN): Enable for HWASAN.
2948 * cfgexpand.c (align_local_variable): When using hwasan ensure
2949 alignment to tag granule.
2950 (align_frame_offset): New.
2951 (expand_one_stack_var_at): For hwasan use tag offset.
2952 (expand_stack_vars): Record stack objects for hwasan.
2953 (expand_one_stack_var_1): Record stack objects for hwasan.
2954 (init_vars_expansion): Initialise hwasan state.
2955 (expand_used_vars): Emit hwasan prologue and generate hwasan epilogue.
2956 (pass_expand::execute): Emit hwasan base initialization if needed.
2957 * doc/tm.texi (TARGET_MEMTAG_TAG_SIZE,TARGET_MEMTAG_GRANULE_SIZE,
2958 TARGET_MEMTAG_INSERT_RANDOM_TAG,TARGET_MEMTAG_ADD_TAG,
2959 TARGET_MEMTAG_SET_TAG,TARGET_MEMTAG_EXTRACT_TAG,
2960 TARGET_MEMTAG_UNTAGGED_POINTER): Document new hooks.
2961 * doc/tm.texi.in (TARGET_MEMTAG_TAG_SIZE,TARGET_MEMTAG_GRANULE_SIZE,
2962 TARGET_MEMTAG_INSERT_RANDOM_TAG,TARGET_MEMTAG_ADD_TAG,
2963 TARGET_MEMTAG_SET_TAG,TARGET_MEMTAG_EXTRACT_TAG,
2964 TARGET_MEMTAG_UNTAGGED_POINTER): Document new hooks.
2965 * explow.c (get_dynamic_stack_base): Take new `base` argument.
2966 * explow.h (get_dynamic_stack_base): Take new `base` argument.
2967 * sanitizer.def (BUILT_IN_HWASAN_INIT): New.
2968 (BUILT_IN_HWASAN_TAG_MEM): New.
2969 * target.def (target_memtag_tag_size,target_memtag_granule_size,
2970 target_memtag_insert_random_tag,target_memtag_add_tag,
2971 target_memtag_set_tag,target_memtag_extract_tag,
2972 target_memtag_untagged_pointer): New hooks.
2973 * targhooks.c (HWASAN_SHIFT): New.
2974 (HWASAN_SHIFT_RTX): New.
2975 (default_memtag_tag_size): New default hook.
2976 (default_memtag_granule_size): New default hook.
2977 (default_memtag_insert_random_tag): New default hook.
2978 (default_memtag_add_tag): New default hook.
2979 (default_memtag_set_tag): New default hook.
2980 (default_memtag_extract_tag): New default hook.
2981 (default_memtag_untagged_pointer): New default hook.
2982 * targhooks.h (default_memtag_tag_size): New default hook.
2983 (default_memtag_granule_size): New default hook.
2984 (default_memtag_insert_random_tag): New default hook.
2985 (default_memtag_add_tag): New default hook.
2986 (default_memtag_set_tag): New default hook.
2987 (default_memtag_extract_tag): New default hook.
2988 (default_memtag_untagged_pointer): New default hook.
2989 * toplev.c (compile_file): Call hwasan_finish_file when finished.
2991 2020-11-25 Matthew Malcomson <matthew.malcomson@arm.com>
2993 * common.opt (flag_sanitize_recover): Default for kernel
2995 (static-libhwasan): New cli option.
2996 * config/aarch64/aarch64.c (aarch64_can_tag_addresses): New.
2997 (TARGET_MEMTAG_CAN_TAG_ADDRESSES): New.
2998 * config/gnu-user.h (LIBHWASAN_EARLY_SPEC): hwasan equivalent of
2999 asan command line flags.
3000 * cppbuiltin.c (define_builtin_macros_for_compilation_flags):
3001 Add hwasan equivalent of __SANITIZE_ADDRESS__.
3002 * doc/invoke.texi: Document hwasan command line flags.
3003 * doc/tm.texi: Document new hook.
3004 * doc/tm.texi.in: Document new hook.
3005 * flag-types.h (enum sanitize_code): New sanitizer values.
3006 * gcc.c (STATIC_LIBHWASAN_LIBS): New macro.
3007 (LIBHWASAN_SPEC): New macro.
3008 (LIBHWASAN_EARLY_SPEC): New macro.
3009 (SANITIZER_EARLY_SPEC): Update to include hwasan.
3010 (SANITIZER_SPEC): Update to include hwasan.
3011 (sanitize_spec_function): Use hwasan options.
3012 * opts.c (finish_options): Describe conflicts between address
3014 (find_sanitizer_argument): New.
3015 (report_conflicting_sanitizer_options): New.
3016 (sanitizer_opts): Introduce new sanitizer flags.
3017 (common_handle_option): Add defaults for kernel sanitizer.
3018 * params.opt (hwasan--instrument-stack): New
3019 (hwasan-random-frame-tag): New
3020 (hwasan-instrument-allocas): New
3021 (hwasan-instrument-reads): New
3022 (hwasan-instrument-writes): New
3023 (hwasan-instrument-mem-intrinsics): New
3024 * target.def (HOOK_PREFIX): Add new hook.
3025 (can_tag_addresses): Add new hook under memtag prefix.
3026 * targhooks.c (default_memtag_can_tag_addresses): New.
3027 * targhooks.h (default_memtag_can_tag_addresses): New decl.
3028 * toplev.c (process_options): Ensure hwasan only on
3029 architectures that advertise the possibility.
3031 2020-11-25 Matthew Malcomson <matthew.malcomson@arm.com>
3033 * doc/install.texi: Document new option.
3035 2020-11-25 Richard Sandiford <richard.sandiford@arm.com>
3037 * config/aarch64/aarch64.c (aarch64_maybe_expand_sve_subreg_move):
3038 Do not optimize LRA subregs.
3039 * config/aarch64/aarch64-sve.md
3040 (@aarch64_pred_<SVE_INT_UNARY:optab><mode>): Tie the input to the
3042 (@aarch64_sve_revbhw_<SVE_ALL:mode><PRED_HSD:mode>): Likewise.
3043 (*<ANY_EXTEND:optab><SVE_PARTIAL_I:mode><SVE_HSDI:mode>2): Likewise.
3044 (@aarch64_pred_sxt<SVE_FULL_HSDI:mode><SVE_PARTIAL_I:mode>): Likewise.
3045 (*cnot<mode>): Likewise.
3046 (@aarch64_pred_<SVE_COND_FP_UNARY:optab><mode>): Likewise.
3047 (@aarch64_sve_<optab>_nontrunc<SVE_FULL_F:mode><SVE_FULL_HSDI:mode>):
3049 (@aarch64_sve_<optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>):
3051 (@aarch64_sve_<optab>_nonextend<SVE_FULL_HSDI:mode><SVE_FULL_F:mode>):
3053 (@aarch64_sve_<optab>_extend<VNx4SI_ONLY:mode><VNx2DF_ONLY:mode>):
3055 (@aarch64_sve_<optab>_trunc<SVE_FULL_SDF:mode><SVE_FULL_HSF:mode>):
3057 (@aarch64_sve_<optab>_trunc<VNx4SF_ONLY:mode><VNx8BF_ONLY:mode>):
3059 (@aarch64_sve_<optab>_nontrunc<SVE_FULL_HSF:mode><SVE_FULL_SDF:mode>):
3061 * config/aarch64/aarch64-sve2.md
3062 (@aarch64_pred_<SVE2_COND_FP_UNARY_LONG:sve_fp_op><mode>): Likewise.
3063 (@aarch64_pred_<SVE2_COND_FP_UNARY_NARROWB:sve_fp_op><mode>): Likewise.
3064 (@aarch64_pred_<SVE2_U32_UNARY:sve_int_op><mode>): Likewise.
3065 (@aarch64_pred_<SVE2_COND_INT_UNARY_FP:sve_fp_op><mode>): Likewise.
3067 2020-11-25 Jakub Jelinek <jakub@redhat.com>
3069 PR rtl-optimization/95862
3070 * internal-fn.c (get_min_precision): For narrowing conversion, recurse
3071 on the operand and if the operand precision is smaller than the
3072 current one, return that smaller precision.
3073 (expand_mul_overflow): For s1 * u2 -> ur and s1 * s2 -> ur cases
3074 if the sum of minimum precisions of both operands is smaller or equal
3075 to the result precision, just perform normal multiplication and
3076 set overflow to the sign bit of the multiplication result. For
3077 u1 * u2 -> sr if both arguments have the MSB known zero, use
3078 normal s1 * s2 -> sr expansion.
3080 2020-11-25 Jan Hubicka <jh@suse.cz>
3082 * cfg.c (free_block): New function.
3083 (clear_edges): Rename to ....
3084 (free_cfg): ... this one; also free BBs and vectors.
3085 (expunge_block): Update comment.
3086 * cfg.h (clear_edges): Rename to ...
3087 (free_cfg): ... this one.
3088 * cgraph.c (release_function_body): Use free_cfg.
3090 2020-11-25 Richard Biener <rguenther@suse.de>
3093 * gimple-isel.cc (gimple_expand_vec_cond_expr): Lower
3094 VECTOR_BOOLEAN_TYPE_P, non-vector mode VEC_COND_EXPRs.
3096 2020-11-25 Jakub Jelinek <jakub@redhat.com>
3099 * gimple-fold.c (clear_padding_union, clear_padding_type): Error on and
3100 ignore flexible array member fields. Ignore fields with
3101 error_mark_node type.
3103 2020-11-24 Ulrich Weigand <ulrich.weigand@de.ibm.com>
3106 2020-11-24 Ulrich Weigand <uweigand@de.ibm.com>
3108 * doc/invoke.texi (-ffast-math): Remove mention of -fno-signaling-nans.
3109 Clarify conditions when __FAST_MATH__ preprocessor macro is defined.
3110 * opts.c (common_handle_option): Pass OPTS_SET to set_fast_math_flags
3111 and set_unsafe_math_optimizations_flags.
3112 (set_fast_math_flags): Add OPTS_SET argument, and use it to avoid
3113 setting flags already explicitly set on the command line. In the !set
3114 case, also reset x_flag_cx_limited_range and x_flag_excess_precision.
3115 Never reset x_flag_signaling_nans or x_flag_rounding_math.
3116 (set_unsafe_math_optimizations_flags): Add OPTS_SET argument, and use
3117 it to avoid setting flags already explicitly set on the command line.
3118 (fast_math_flags_set_p): Also test x_flag_cx_limited_range,
3119 x_flag_associative_math, x_flag_reciprocal_math, and
3120 x_flag_rounding_math.
3122 2020-11-24 Vladimir Makarov <vmakarov@redhat.com>
3125 * lra.c (lra_process_new_insns): Stop on the first real insn after
3128 2020-11-24 Richard Earnshaw <rearnsha@arm.com>
3131 * config/arm/arm.c (arm_split_atomic_op): Use gen_int_mode when
3132 negating a const_int.
3134 2020-11-24 Ilya Leoshkevich <iii@linux.ibm.com>
3136 * config/s390/vector.md: Use vcond_comparison_operator
3139 2020-11-24 Ulrich Weigand <uweigand@de.ibm.com>
3141 * doc/invoke.texi (-ffast-math): Remove mention of -fno-signaling-nans.
3142 Clarify conditions when __FAST_MATH__ preprocessor macro is defined.
3143 * opts.c (common_handle_option): Pass OPTS_SET to set_fast_math_flags
3144 and set_unsafe_math_optimizations_flags.
3145 (set_fast_math_flags): Add OPTS_SET argument, and use it to avoid
3146 setting flags already explicitly set on the command line. In the !set
3147 case, also reset x_flag_cx_limited_range and x_flag_excess_precision.
3148 Never reset x_flag_signaling_nans or x_flag_rounding_math.
3149 (set_unsafe_math_optimizations_flags): Add OPTS_SET argument, and use
3150 it to avoid setting flags already explicitly set on the command line.
3151 (fast_math_flags_set_p): Also test x_flag_cx_limited_range,
3152 x_flag_associative_math, x_flag_reciprocal_math, and
3153 x_flag_rounding_math.
3155 2020-11-24 Jakub Jelinek <jakub@redhat.com>
3158 * config/i386/i386.md (*setcc_si_1_and): Macroize into...
3159 (*setcc_<mode>_1_and): New define_insn_and_split with SWI24 iterator.
3160 (*setcc_si_1_movzbl): Macroize into...
3161 (*setcc_<mode>_1_movzbl): New define_insn_and_split with SWI24
3164 2020-11-24 Jakub Jelinek <jakub@redhat.com>
3166 * gimple-fold.c (clear_padding_flush): If a word contains only 0
3167 or 0xff bytes of padding other than all set, all clear, all set
3168 followed by all clear or all clear followed by all set, don't emit
3169 a RMW operation on the whole word or parts of it, but instead
3170 clear the individual bytes of padding. For paddings of one byte
3171 size, don't use char[1] and {}, but instead just char and 0.
3173 2020-11-24 Thomas Schwinge <thomas@codesourcery.com>
3175 * omp-expand.c (expand_oacc_for): More explicit checking of which
3176 OMP constructs we're expecting.
3178 2020-11-24 Thomas Schwinge <thomas@codesourcery.com>
3180 * doc/install.texi (Prerequisites) <Tcl>: Add comment.
3182 2020-11-24 Jakub Jelinek <jakub@redhat.com>
3184 PR tree-optimization/96929
3185 * fold-const.c (wide_int_binop) <case LSHIFT_EXPR, case RSHIFT_EXPR>:
3186 Return false on negative second argument rather than trying to handle
3187 it as shift in the other direction.
3188 * tree-ssa-ccp.c (bit_value_binop) <case LSHIFT_EXPR,
3189 case RSHIFT_EXPR>: Punt on negative shift count rather than trying
3190 to handle it as shift in the other direction.
3191 * match.pd (-1 >> x to -1): Remove tree_expr_nonnegative_p check.
3193 2020-11-24 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3195 PR tree-optimization/97849
3196 * tree-if-conv.c (tree_if_conversion): Move ssa_name
3197 replacement code from ifcvt_local_dce to this function
3198 before calling do_rpo_vn.
3200 2020-11-24 Martin Sebor <msebor@redhat.com>
3202 * tree-cfg.c (dump_function_to_file): Print type attributes
3205 2020-11-23 Martin Jambor <mjambor@suse.cz>
3207 * ipa-prop.h (ipa_pass_through_data): Expand comment describing
3209 * ipa-prop.c (analyze_agg_content_value): Detect new special case and
3210 encode it as ASSERT_EXPR.
3211 * ipa-cp.c (values_equal_for_ipcp_p): Move before
3212 ipa_get_jf_arith_result.
3213 (ipa_get_jf_arith_result): Special case ASSERT_EXPR.
3215 2020-11-23 Jeff Law <law@redhat.com>
3217 * config/h8300/h8300.c (h8300_rtx_costs): Handle the various
3218 comparison rtx codes too.
3220 2020-11-23 Jan Hubicka <jh@suse.cz>
3222 * ipa-prop.c (build_agg_jump_func_from_list,
3223 ipa_read_jump_function): Reserve agg.items precisely.
3224 * ipa-prop.h (ipa_node_params::~ipa_node_params): Release descriptors
3225 (ipa_edge_args::~ipa_edge_args): Release agg.items.
3227 2020-11-23 Jan Hubicka <jh@suse.cz>
3229 * lto-streamer-in.c (input_cfg): Do not init ssa operands.
3230 (input_function): Do not init tree_ssa and set in_ssa_p.
3231 (input_ssa_names): Do it here.
3232 * tree-ssa.c (init_tree_ssa): Add additional SIZE parameter, default
3234 * tree-ssanames.c (init_ssanames): Do not round size up to 50, allocate
3236 * tree-ssa.h (init_tree_ssa): Update prototype.
3238 2020-11-23 Nathan Sidwell <nathan@acm.org>
3240 * diagnostic.c (diagnostic_report_current_module): Adjust for C++
3243 2020-11-23 Jozef Lawrynowicz <jozef.l@mittosystems.com>
3245 * config/msp430/msp430.c (msp430_section_attr): Don't warn for "lower"
3246 attribute used with "noinit" or "persistent" attributes.
3247 (msp430_persist_attr): Remove.
3248 (attr_lower_exclusions): Remove ATTR_PERSIST exclusion.
3249 (attr_upper_exclusions): Likewise.
3250 (attr_either_exclusions): Likewise.
3251 (attr_persist_exclusions): Remove.
3252 (msp430_attribute_table): Remove ATTR_PERSIST handling.
3253 (msp430_handle_generic_attribute): Remove ATTR_PERSIST section conflict
3255 (TARGET_ASM_INIT_SECTIONS): Remove.
3256 (msp430_init_sections): Remove.
3257 (msp430_select_section): Use default_elf_select_section for decls with
3258 the "persistent" attribute.
3259 (msp430_section_type_flags): Remove ".persistent" section handling.
3260 * doc/extend.texi (MSP430 Variable Attributes): Remove "noinit" and
3261 "persistent" documentation.
3263 2020-11-23 Richard Biener <rguenther@suse.de>
3265 * tree-vect-slp.c (maybe_push_to_hybrid_worklist): Skip
3268 2020-11-23 Jozef Lawrynowicz <jozef.l@mittosystems.com>
3270 * doc/extend.texi (Common Variable Attributes): Document the
3271 "persistent" variable attribute.
3272 * doc/sourcebuild.texi (Effective-Target Keywords): Document
3273 the "persistent" effective target keyword.
3274 * tree.h (DECL_PERSISTENT_P): Define.
3275 * varasm.c (bss_initializer_p): Return false for a
3276 DECL_PERSISTENT_P decl initialized to zero.
3277 (default_section_type_flags): Handle the ".persistent" section.
3278 (default_elf_select_section): Likewise.
3279 (default_unique_section): Likewise.
3281 2020-11-23 Jozef Lawrynowicz <jozef.l@mittosystems.com>
3283 * tree.h (DECL_NOINIT_P): Define.
3284 * varasm.c (DECL_NOINIT_P): Check DECL_NOINIT_P before using
3285 unnamed bss/lcomm sections for bss_initializer variables.
3286 (default_elf_select_section): Use DECL_NOINIT_P instead of
3287 looking up attribute for .noinit section selection.
3288 (default_unique_section): Check DECL_NOINIT_P for .noinit
3291 2020-11-23 Matthew Malcomson <matthew.malcomson@arm.com>
3293 * doc/install.texi: Document bootstrap-asan option.
3295 2020-11-22 Uroš Bizjak <ubizjak@gmail.com>
3298 * config/i386/i386.md (abs<mode>2): Use SWI48DWI mode iterator.
3299 (*abs<dwi>2_doubleword): Use DWIH mode iterator.
3300 (<maxmin:code><mode>3): Use SWI48DWI mode iterator.
3301 (*<maxmin:code><dwi>3_doubleword): Use DWIH mode iterator.
3303 2020-11-22 Austin Law <austinklaw@gmail.com>
3305 * config/h8300/addsub.md: Turn existing patterns into
3306 define_insn_and_split style patterns where the splitter
3307 adds a clobber of the condition code register. Drop "cc"
3308 attribute. Add _clobber_flags patterns to match output of
3310 (add<mod>3_incdec): Remove pattern
3311 (adds/subs splitter): Only run before reload.
3312 * config/h8300/bitfield.md: Turn existing patterns into
3313 define_insn_and_split style patterns where the splitter
3314 adds a clobber of the condition code register. Drop "cc"
3315 attribute. Add _clobber_flags patterns to match output
3317 (cstoreqi4, cstorehi4, cstoresi4): Comment out
3318 (*bstzhireg, *cmpstz, *bstz, *bistz, *cmpcondset): Likewise
3319 (*condbset, *cmpcondbclr, *condbclr): Likewise.
3320 (*cmpcondbsetreg, *condbsetreg, *cmpcondbclrreg): Likewise.
3321 (*condbclrreg): Likewise.
3322 * config/h8300/combiner.md: Turn existing patterns into
3323 define_insn_and_split style patterns where the splitter
3324 adds a clobber of the condition code register. Drop "cc"
3325 attribute. Add _clobber_flags patterns to match output of
3326 the splitters. Add appropriate CC register clobbers to
3328 (*addsi3_and_r_1): Disable for now.
3329 (*addsi3_and_not_r_1, bit-test branches): Likewise.
3330 * config/h8300/divmod.md: Turn existing patterns into
3331 define_insn_and_split style patterns where the splitter
3332 adds a clobber of the condition code register. Drop "cc"
3333 attribute. Add _clobber_flags patterns to match output of
3335 * config/h8300/extensions.md: Turn existing patterns into
3336 define_insn_and_split style patterns where the splitter
3337 adds a clobber of the condition code register. Drop "cc"
3338 attribute. Add _clobber_flags patterns to match output of
3340 * config/h8300/genmova.sh: Drop "cc" attribute from patterns.
3341 * config/h8300/mova.md: Drop "cc" attribute from patterns.
3342 * config/h8300/h8300-modes.def: Add CCZN and CCZNV modes.
3343 * config/h8300/h8300-protos.h (output_plussi): Update prototype.
3344 (compute_plussi_length): Likewise.
3345 (h8300_select_cc_mode): Add prototype.
3346 (compute_a_shift_cc): Remove prototype
3347 (cmpute_logical_op_cc): Likewise.
3348 * config/h8300/h8300.c (names_big): Add "cc" register.
3349 (names_extended, names_upper_extended): Likewise.
3350 (h8300_emit_stack_adjustment): Be more selective about setting
3351 RTX_FRAME_RELATED_P.
3352 (h8300_print_operand): Handle CCZN mode
3353 (h8300_select_cc_mode): New function.
3354 (notice_update_cc): if-0 out. Only kept for reference purposes.
3355 (h8300_expand_store): Likewise.
3356 (h8300_binary_length): Handle new insn forms.
3357 (output_plussi): Add argument for NEED_FLAGS and handle that case.
3358 (compute_plussi_length): Likewise.
3359 (compute_logical_op_cc): Return integer.
3360 (TARGET_FLAGS_REGNUM): Define.
3361 * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Bump for cc register.
3362 (FIXED_REGISTERS, CALL_USED_REGISTERS): Handle cc register.
3363 (REG_ALLOC_ORDER, REGISTER_NAMES): Likewise.
3364 (SELECT_CC_MODE): Define.
3365 * config/h8300/h8300.md: Add CC_REG.
3366 Do not include peepholes.md for now.
3367 * config/h8300/jumpcall.md (cbranchqi4): Consolidate into
3369 (cbranchhi4, cbranchsi4): Likewise.
3370 (cbranch<mode>4): New expander.
3371 (branch): New define_insn_and_split for use before reload.
3372 (branch_1, branch_1_false): New patterns to match splitter output.
3373 Remove code to manage cc_status.flags.
3374 * config/h8300/logical.md: Turn existing patterns into
3375 define_insn_and_split style patterns where the splitter
3376 adds a clobber of the condition code register. Drop "cc"
3377 attribute. Add _clobber_flags patterns to match output of
3378 the splitters. Move various peepholes into this file.
3379 * config/h8300/movepush.md: Turn existing patterns into
3380 define_insn_and_split style patterns where the splitter
3381 adds a clobber of the condition code register. Drop "cc"
3382 attribute. Add _clobber_flags patterns to match output of
3384 * config/h8300/multiply.md: Turn existing patterns into
3385 define_insn_and_split style patterns where the splitter
3386 adds a clobber of the condition code register. Drop "cc"
3387 attribute. Add _clobber_flags patterns to match output of
3389 * config/h8300/other.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 of
3394 * config/h8300/peepholes.md: Remove peepholes that were moved
3396 * config/h8300/predicates.md (simple_memory_operand): New.
3397 * config/h8300/proepi.md: Drop "cc" attribute setting.
3398 * config/h8300/shiftrotate.md: Turn existing patterns into
3399 define_insn_and_split style patterns where the splitter
3400 adds a clobber of the condition code register. Drop "cc"
3401 attribute. Add _clobber_flags patterns to match output of
3403 * config/h8300/testcompare.md: Turn existing patterns into
3404 define_insn_and_split style patterns where the splitter
3405 adds a clobber of the condition code register. Drop "cc"
3406 attribute. Add _clobber_flags patterns to match output of
3407 the splitters. Disable various patterns for now.
3408 Move some peepholes that were previously in peepholes.md here.
3409 * config/h8300/save.md: New file.
3411 2020-11-22 Jakub Jelinek <jakub@redhat.com>
3413 PR tree-optimization/95853
3414 * tree-ssa-math-opts.c (uaddsub_overflow_check_p): Add maxval
3415 argument, if non-NULL, instead look for r > maxval or r <= maxval
3417 (match_uaddsub_overflow): Pattern recognize even other forms of
3418 __builtin_add_overflow, in particular when addition is performed
3419 in a wider type and result compared to maximum of the narrower
3422 2020-11-22 Jeff Law <law@redhat.com>
3424 * config/h8300/jumpcall.md (branch_true, branch_false): Revert
3425 recent change. Ensure operand[0] is always the target label.
3427 2020-11-22 Iain Sandoe <iain@sandoe.co.uk>
3429 * config/darwin-c.c (struct f_align_stack): Rename
3430 to type from align_stack to f_align_stack.
3431 (push_field_alignment): Likewise.
3432 (pop_field_alignment): Likewise.
3434 2020-11-21 Marek Polacek <polacek@redhat.com>
3437 * doc/invoke.texi: Update the -Wrange-loop-construct description.
3439 2020-11-21 Jan Hubicka <jh@suse.cz>
3441 * tree-ssa-alias.c (ao_compare::compare_ao_refs,
3442 ao_compare::hash_ao_ref): Use OEP_MATCH_SIDE_EFFECTS.
3444 2020-11-21 Jan Hubicka <jh@suse.cz>
3446 * ipa-icf.c (sem_function::equals_wpa): Do not compare ODR type with
3448 (sem_item_optimizer::update_hash_by_addr_refs): Hash anonymous ODR
3449 types by TYPE_UID of their main variant.
3451 2020-11-21 Aaron Sawdey <acsawdey@linux.ibm.com>
3453 * config/rs6000/rs6000.c (rs6000_option_override_internal):
3454 Enable vector pair memcpy/memmove expansion.
3456 2020-11-21 Aaron Sawdey <acsawdey@linux.ibm.com>
3458 * config/rs6000/mma.md (unspec): Add assemble/extract UNSPECs.
3459 (movoi): Change to movoo.
3460 (*movpoi): Change to *movoo.
3461 (movxi): Change to movxo.
3462 (*movpxi): Change to *movxo.
3463 (mma_assemble_pair): Change to OO mode.
3464 (*mma_assemble_pair): New define_insn_and_split.
3465 (mma_disassemble_pair): New define_expand.
3466 (*mma_disassemble_pair): New define_insn_and_split.
3467 (mma_assemble_acc): Change to XO mode.
3468 (*mma_assemble_acc): Change to XO mode.
3469 (mma_disassemble_acc): New define_expand.
3470 (*mma_disassemble_acc): New define_insn_and_split.
3471 (mma_<acc>): Change to XO mode.
3472 (mma_<vv>): Change to XO mode.
3473 (mma_<avv>): Change to XO mode.
3474 (mma_<pv>): Change to OO mode.
3475 (mma_<apv>): Change to XO/OO mode.
3476 (mma_<vvi4i4i8>): Change to XO mode.
3477 (mma_<avvi4i4i8>): Change to XO mode.
3478 (mma_<vvi4i4i2>): Change to XO mode.
3479 (mma_<avvi4i4i2>): Change to XO mode.
3480 (mma_<vvi4i4>): Change to XO mode.
3481 (mma_<avvi4i4>): Change to XO mode.
3482 (mma_<pvi4i2>): Change to XO/OO mode.
3483 (mma_<apvi4i2>): Change to XO/OO mode.
3484 (mma_<vvi4i4i4>): Change to XO mode.
3485 (mma_<avvi4i4i4>): Change to XO mode.
3486 * config/rs6000/predicates.md (input_operand): Allow opaque.
3487 (mma_disassemble_output_operand): New predicate.
3488 * config/rs6000/rs6000-builtin.def:
3489 Changes to disassemble builtins.
3490 * config/rs6000/rs6000-call.c (rs6000_return_in_memory):
3491 Disallow __vector_pair/__vector_quad as return types.
3492 (rs6000_promote_function_mode): Remove function return type
3493 check because we can't test it here any more.
3494 (rs6000_function_arg): Do not allow __vector_pair/__vector_quad
3495 as as function arguments.
3496 (rs6000_gimple_fold_mma_builtin):
3497 Handle mma_disassemble_* builtins.
3498 (rs6000_init_builtins): Create types for XO/OO modes.
3499 * config/rs6000/rs6000-modes.def: DElete OI, XI,
3500 POI, and PXI modes, and create XO and OO modes.
3501 * config/rs6000/rs6000-string.c (expand_block_move):
3503 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_uncached):
3504 Update for XO/OO modes.
3505 (rs6000_rtx_costs): Make UNSPEC_MMA_XXSETACCZ cost 0.
3506 (rs6000_modes_tieable_p): Update for XO/OO modes.
3507 (rs6000_debug_reg_global): Update for XO/OO modes.
3508 (rs6000_setup_reg_addr_masks): Update for XO/OO modes.
3509 (rs6000_init_hard_regno_mode_ok): Update for XO/OO modes.
3510 (reg_offset_addressing_ok_p): Update for XO/OO modes.
3511 (rs6000_emit_move): Update for XO/OO modes.
3512 (rs6000_preferred_reload_class): Update for XO/OO modes.
3513 (rs6000_split_multireg_move): Update for XO/OO modes.
3514 (rs6000_mangle_type): Update for opaque types.
3515 (rs6000_invalid_conversion): Update for XO/OO modes.
3516 * config/rs6000/rs6000.h (VECTOR_ALIGNMENT_P):
3517 Update for XO/OO modes.
3518 * config/rs6000/rs6000.md (RELOAD): Update for XO/OO modes.
3520 2020-11-21 Aaron Sawdey <acsawdey@linux.ibm.com>
3522 * typeclass.h: Add opaque_type_class.
3523 * builtins.c (type_to_class): Identify opaque type class.
3524 * dwarf2out.c (is_base_type): Handle opaque types.
3525 (gen_type_die_with_usage): Handle opaque types.
3526 * expr.c (count_type_elements): Opaque types should
3527 never have initializers.
3528 * ipa-devirt.c (odr_types_equivalent_p): No type-specific handling
3529 for opaque types is needed as it eventually checks the underlying
3530 mode which is what is important.
3531 * tree-streamer.c (record_common_node): Handle opaque types.
3532 * tree.c (type_contains_placeholder_1): Handle opaque types.
3533 (type_cache_hasher::equal): No additional comparison needed for
3536 2020-11-20 Michael Meissner <meissner@linux.ibm.com>
3538 * config/rs6000/rs6000-call.c (rs6000_expand_builtin): Add missing
3539 XSCMP* cases for IEEE 128-bit long double.
3541 2020-11-20 Jason Merrill <jason@redhat.com>
3544 * dwarf2out.c (dwarf2out_early_finish): flush_limbo_die_list
3545 after gen_scheduled_generic_parms_dies.
3547 2020-11-20 Martin Sebor <msebor@redhat.com>
3550 * tree-core.h (enum attribute_flags): Add ATTR_FLAG_INTERNAL.
3552 2020-11-20 Jan Hubicka <jh@suse.cz>
3554 * ipa-icf-gimple.c (func_checker::hash_operand): Improve hashing of
3557 2020-11-20 Jan Hubicka <jh@suse.cz>
3559 * ipa-icf-gimple.c (func_checker::compare_decl): Do not compare types
3562 2020-11-20 Nathan Sidwell <nathan@acm.org>
3564 * doc/invoke.texi: Replace a couple of @code with @command
3566 2020-11-20 Tamar Christina <tamar.christina@arm.com>
3568 * tree-vect-slp.c (vectorizable_slp_permutation): Update types on nodes
3571 2020-11-20 Richard Biener <rguenther@suse.de>
3573 * tree-vect-slp.c (maybe_push_to_hybrid_worklist): New function.
3574 (vect_detect_hybrid_slp): Use it. Perform a backward walk
3577 2020-11-20 Richard Biener <rguenther@suse.de>
3579 * tree-vect-slp.c (vect_print_slp_tree): Also dump
3580 SLP_TREE_REPRESENTATIVE.
3582 2020-11-20 Jakub Jelinek <jakub@redhat.com>
3585 * builtins.def (BUILT_IN_CLEAR_PADDING): New built-in function.
3586 * gimplify.c (gimplify_call_expr): Rewrite single argument
3587 BUILT_IN_CLEAR_PADDING into two-argument variant.
3588 * gimple-fold.c (clear_padding_unit, clear_padding_buf_size): New
3590 (struct clear_padding_struct): New type.
3591 (clear_padding_flush, clear_padding_add_padding,
3592 clear_padding_emit_loop, clear_padding_type,
3593 clear_padding_union, clear_padding_real_needs_padding_p,
3594 clear_padding_type_may_have_padding_p,
3595 gimple_fold_builtin_clear_padding): New functions.
3596 (gimple_fold_builtin): Handle BUILT_IN_CLEAR_PADDING.
3597 * doc/extend.texi (__builtin_clear_padding): Document.
3599 2020-11-20 Jakub Jelinek <jakub@redhat.com>
3602 * config/arm/arm.c (neon_vector_mem_operand): For POST_MODIFY, require
3603 first POST_MODIFY operand is a REG and is equal to the first operand
3606 2020-11-20 Eric Botcazou <ebotcazou@adacore.com>
3608 * gimple-ssa-store-merging.c (struct merged_store_group): Add
3609 new 'consecutive' field.
3610 (merged_store_group): Set it to true.
3611 (do_merge): Set it to false if the store is not consecutive and
3612 set string_concatenation to false in this case.
3613 (merge_into): Call do_merge on entry.
3614 (merge_overlapping): Likewise.
3616 2020-11-20 Jan Hubicka <jh@suse.cz>
3618 * ipa-icf-gimple.c (func_checker::operand_equal_p): Fix comment.
3620 2020-11-20 Jan Hubicka <jh@suse.cz>
3622 * ipa-icf-gimple.c (func_checker::hash_operand): Hash gimple clobber.
3623 (func_checker::operand_equal_p): Special case gimple clobber.
3625 2020-11-20 Uroš Bizjak <ubizjak@gmail.com>
3628 * config/i386/i386.md (*neg<mode>2_2): Rename from
3629 "*neg<mode>2_cmpz". Use CCGOCmode instead of CCZmode.
3630 (*negsi2_zext): Rename from *negsi2_cmpz_zext.
3631 Use CCGOCmode instead of CCZmode.
3632 (*neg<mode>_ccc_1): New insn pattern.
3633 (*neg<dwi>2_doubleword): Use *neg<mode>_ccc_1.
3634 (abs<mode>2): Add FLAGS_REG clobber.
3635 Use TARGET_CMOVE insn predicate.
3636 (*abs<mode>2_1): New insn_and_split pattern.
3637 (*absdi2_doubleword): Ditto.
3638 (<maxmin:code><mode>3): Use SWI48x mode iterator.
3639 (*<maxmin:code><mode>3): Use SWI48 mode iterator.
3640 * config/i386/i386-features.c
3641 (general_scalar_chain::compute_convert_gain): Handle ABS code.
3642 (general_scalar_chain::convert_insn): Ditto.
3643 (general_scalar_to_vector_candidate_p): Ditto.
3645 2020-11-20 Jakub Jelinek <jakub@redhat.com>
3648 * configure.ac: In SERIAL_LIST use lang words without .serial
3649 suffix. Change $lang.prev from a target to variable and instead
3650 of depending on *.serial expand to the *.serial variable if
3651 the word is in the SERIAL_LIST at all, otherwise to nothing.
3652 * configure: Regenerated.
3654 2020-11-20 Kewen Lin <linkw@linux.ibm.com>
3656 * config/rs6000/rs6000.md (p8_mtvsrd_df): Fix insn type.
3658 2020-11-20 Martin Uecker <muecker@gwdg.de>
3660 * gimplify.c (gimplify_modify_expr_rhs): Optimizie
3661 NOP_EXPRs that contain compound literals.
3663 2020-11-19 Jakub Jelinek <jakub@redhat.com>
3665 PR tree-optimization/91029
3666 * range-op.cc (operator_trunc_mod::op1_range): Don't require signed
3667 types, nor require that op2 >= 0. Implement (a % b) >= x && x > 0
3668 implies a >= x and (a % b) <= x && x < 0 implies a <= x.
3669 (operator_trunc_mod::op2_range): New method.
3671 2020-11-19 Andrew MacLeod <amacleod@redhat.com>
3673 PR tree-optimization/93781
3674 * range-op.cc (get_shift_range): Rename from
3675 undefined_shift_range_check and now return valid shift ranges.
3676 (operator_lshift::fold_range): Use result from get_shift_range.
3677 (operator_rshift::fold_range): Ditto.
3679 2020-11-19 Jan Hubicka <jh@suse.cz>
3681 * fold-const.c (operand_compare::operand_equal_p): Fix thinko in
3682 COMPONENT_REF handling and guard types_same_for_odr by
3683 virtual_method_call_p.
3684 (operand_compare::hash_operand): Likewise.
3686 2020-11-19 Jakub Jelinek <jakub@redhat.com>
3689 * tree.c (array_type_nelts): For complete arrays with zero min
3690 and NULL max and zero size return -1.
3692 2020-11-19 Nathan Sidwell <nathan@acm.org>
3694 * configure.ac: Add tests for fstatat, sighandler_t, O_CLOEXEC,
3695 unix-domain and ipv6 sockets.
3696 * config.in: Rebuilt.
3697 * configure: Rebuilt.
3699 2020-11-19 Dimitar Dimitrov <dimitar@dinux.eu>
3701 * config/pru/alu-zext.md: Add lmbd patterns for zero_extend
3703 * config/pru/pru.c (enum pru_builtin): Add HALT and LMBD.
3704 (pru_init_builtins): Ditto.
3705 (pru_builtin_decl): Ditto.
3706 (pru_expand_builtin): Ditto.
3707 * config/pru/pru.h (CLZ_DEFINED_VALUE_AT_ZERO): Define PRU
3708 value for CLZ with zero value parameter.
3709 * config/pru/pru.md: Add halt, lmbd and clz patterns.
3710 * doc/extend.texi: Document PRU builtins.
3712 2020-11-19 Richard Sandiford <richard.sandiford@arm.com>
3714 * doc/invoke.texi (-fvect-cost-model): Add a very-cheap model.
3715 * common.opt (fvect-cost-model=): Add very-cheap as a possible option.
3716 (fsimd-cost-model=): Likewise.
3717 (vect_cost_model): Add very-cheap.
3718 * flag-types.h (vect_cost_model): Add VECT_COST_MODEL_VERY_CHEAP.
3719 Put the values in order of increasing aggressiveness.
3720 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Use
3721 range checks when comparing against VECT_COST_MODEL_CHEAP.
3722 (vect_prune_runtime_alias_test_list): Do not allow any alias
3723 checks for the very-cheap cost model.
3724 * tree-vect-loop.c (vect_analyze_loop_costing): Do not allow
3725 any peeling for the very-cheap cost model. Also require one
3726 iteration of the vector loop to pay for itself.
3728 2020-11-19 Wilco Dijkstra <wdijkstr@arm.com>
3730 * config/aarch64/aarch64.c (neoversen1_tunings): Use new
3731 cortexa76_extra_costs.
3732 (neoversev1_tunings): Likewise.
3733 (neoversen2_tunines): Likewise.
3734 * config/arm/aarch-cost-tables.h (cortexa76_extra_costs):
3737 2020-11-19 Wilco Dijkstra <wdijkstr@arm.com>
3739 * config/aarch64/aarch64.c (aarch64_expand_cpymem): Cleanup code and
3740 comments, tweak expansion decisions and improve tail expansion.
3742 2020-11-19 Richard Biener <rguenther@suse.de>
3744 * fold-const.c (operand_compare::hash_operand): Fix typo.
3746 2020-11-19 Richard Biener <rguenther@suse.de>
3748 * tree-ssa-reassoc.c (get_rank): Refactor to consistently
3749 use the cache and dump ranks assigned.
3751 2020-11-19 Jan Hubicka <jh@suse.cz>
3753 * fold-const.c (operand_compare::operand_equal_p): More OBJ_TYPE_REF
3754 matching to correct place; drop OEP_ADDRESS_OF for TOKEN, OBJECT and
3756 (operand_compare::hash_operand): Hash ODR type for OBJ_TYPE_REF.
3758 2020-11-19 Joel Hutton <joel.hutton@arm.com>
3760 * config/aarch64/aarch64-simd.md: Add vec_widen_lshift_hi/lo<mode>
3762 * tree-vect-stmts.c (vectorizable_conversion): Fix for widen_lshift
3765 2020-11-19 Joel Hutton <joel.hutton@arm.com>
3767 * doc/generic.texi: Document new widen_plus/minus_lo/hi tree codes.
3768 * doc/md.texi: Document new widenening add/subtract hi/lo optabs.
3769 * expr.c (expand_expr_real_2): Add widen_add, widen_subtract cases.
3770 * optabs-tree.c (optab_for_tree_code): Add case for widening optabs.
3771 * optabs.def (OPTAB_D): Define vectorized widen add, subtracts.
3772 * tree-cfg.c (verify_gimple_assign_binary): Add case for widening adds,
3774 * tree-inline.c (estimate_operator_cost): Add case for widening adds,
3776 * tree-vect-generic.c (expand_vector_operations_1): Add case for
3777 widening adds, subtracts
3778 * tree-vect-patterns.c (vect_recog_widen_add_pattern): New recog
3780 (vect_recog_widen_sub_pattern): New recog pattern.
3781 (vect_recog_average_pattern): Update widened add code.
3782 (vect_recog_average_pattern): Update widened add code.
3783 * tree-vect-stmts.c (vectorizable_conversion): Add case for widened add,
3785 (supportable_widening_operation): Add case for widened add, subtract.
3787 (WIDEN_PLUS_EXPR): New tree code.
3788 (WIDEN_MINUS_EXPR): New tree code.
3789 (VEC_WIDEN_ADD_HI_EXPR): New tree code.
3790 (VEC_WIDEN_PLUS_LO_EXPR): New tree code.
3791 (VEC_WIDEN_MINUS_HI_EXPR): New tree code.
3792 (VEC_WIDEN_MINUS_LO_EXPR): New tree code.
3794 2020-11-19 Joel Hutton <joel.hutton@arm.com>
3796 * config/aarch64/aarch64-simd.md: New patterns
3797 vec_widen_saddl_lo/hi_<mode>.
3799 2020-11-19 Richard Biener <rguenther@suse.de>
3801 PR tree-optimization/97901
3802 * tree-ssa-propagate.c (clean_up_loop_closed_phi): Compute
3803 dominators and use replace_uses_by.
3805 2020-11-19 Eric Botcazou <ebotcazou@adacore.com>
3807 * dwarf2out.h (struct fixed_point_type_info) <scale_factor>: Turn
3808 numerator and denominator into a tree.
3809 * dwarf2out.c (base_type_die): In the case of a fixed-point type
3810 with arbitrary scale factor, call add_scalar_info on numerator and
3811 denominator to emit the appropriate attributes.
3813 2020-11-19 Richard Biener <rguenther@suse.de>
3815 PR tree-optimization/97897
3816 * tree-complex.c (complex_propagate::visit_stmt): Make sure
3817 abnormally used SSA names are VARYING.
3818 (complex_propagate::visit_phi): Likewise.
3819 * tree-ssa.c (verify_phi_args): Verify PHI arguments on abnormal
3820 edges are SSA names.
3822 2020-11-19 Uroš Bizjak <ubizjak@gmail.com>
3824 * config/i386/i386.md (*<absneg:code><mode>2_i387_1):
3825 Disable for TARGET_SSE_MATH modes.
3827 2020-11-19 Jeff Law <law@redhat.com>
3829 * config/h8300/constraints.md (R constraint): Add argument to call
3830 to h8300_shift_needs_scratch_p.
3831 (S and T constraints): Similary.
3832 * config/h8300/h8300-protos.h: Update h8300_shift_needs_scratch_p
3834 * config/h8300/h8300.c (expand_a_shift): Emit a different pattern
3835 if the shift does not require a scratch register.
3836 (h8300_shift_needs_scratch_p): Refine to be more accurate.
3837 * config/h8300/shiftrotate.md (shiftqi_noscratch): New pattern.
3838 (shifthi_noscratch, shiftsi_noscratch): Similarly.
3840 2020-11-18 Roger Sayle <roger@nextmovesoftware.com>
3843 * fold-const.c (tree_expr_finite_p): New function to test whether
3844 a tree expression must be finite, i.e. not a FP NaN or infinity.
3845 (tree_expr_infinite_p): New function to test whether a tree
3846 expression must be infinite, i.e. a FP infinity.
3847 (tree_expr_maybe_infinite_p): New function to test whether a tree
3848 expression may be infinite, i.e. a FP infinity.
3849 (tree_expr_signaling_nan_p): New function to test whether a tree
3850 expression must evaluate to a signaling NaN (sNaN).
3851 (tree_expr_maybe_signaling_nan_p): New function to test whether a
3852 tree expression may be a signaling NaN (sNaN).
3853 (tree_expr_nan_p): New function to test whether a tree expression
3854 must evaluate to a (quiet or signaling) NaN.
3855 (tree_expr_maybe_nan_p): New function to test whether a tree
3856 expression me be a (quiet or signaling) NaN.
3857 (tree_binary_nonnegative_warnv_p) [MAX_EXPR]: In the presence
3858 of NaNs, MAX_EXPR is only guaranteed to be non-negative, if both
3859 operands are non-negative.
3860 (tree_call_nonnegative_warnv_p) [CASE_CFN_FMAX,CASE_CFN_FMAX_FN]:
3861 In the presence of signaling NaNs, fmax is only guaranteed to be
3862 non-negative if both operands are negative. In the presence of
3863 quiet NaNs, fmax is non-negative if either operand is non-negative
3864 and not a qNaN, or both operands are non-negative.
3865 * fold-const.h (tree_expr_finite_p, tree_expr_infinite_p,
3866 tree_expr_maybe_infinite_p, tree_expr_signaling_nan_p,
3867 tree_expr_maybe_signaling_nan_p, tree_expr_nan_p,
3868 tree_expr_maybe_nan_p): Prototype new functions here.
3869 * builtins.c (fold_builtin_classify) [BUILT_IN_ISINF]: Fold to
3870 a constant if argument is known to be (or not to be) an Infinity.
3871 [BUILT_IN_ISFINITE]: Fold to a constant if argument is known to
3872 be (or not to be) finite.
3873 [BUILT_IN_ISNAN]: Fold to a constant if argument is known to be
3874 (or not to be) a NaN.
3875 (fold_builtin_fpclassify): Check tree_expr_maybe_infinite_p and
3876 tree_expr_maybe_nan_p instead of HONOR_INFINITIES and HONOR_NANS
3878 (fold_builtin_unordered_cmp): Fold UNORDERED_EXPR to a constant
3879 when its arguments are known to be (or not be) NaNs. Check
3880 tree_expr_maybe_nan_p instead of HONOR_NANS when choosing between
3881 unordered and regular forms of comparison operators.
3882 * match.pd (ordered(x,y)->true/false): Constant fold ORDERED_EXPR
3883 if its operands are known to be (or not to be) NaNs.
3884 (unordered(x,y)->true/false): Constant fold UNORDERED_EXPR if its
3885 operands are known to be (or not to be) NaNs.
3886 (sqrt(x)*sqrt(x)->x): Check tree_expr_maybe_signaling_nan_p instead
3889 2020-11-18 Jakub Jelinek <jakub@redhat.com>
3891 PR tree-optimization/91029
3892 PR tree-optimization/97888
3893 * range-op.cc (operator_trunc_mod::op1_range): Only set op1
3894 range to >= 0 if lhs is > 0, rather than >= 0. Fix up comments.
3896 2020-11-18 Jakub Jelinek <jakub@redhat.com>
3898 * opts.h (struct cl_var): New type.
3900 * optc-gen.awk: Generate cl_vars array.
3902 2020-11-18 Eugene Rozenfeld <Eugene.Rozenfeld@microsoft.com>
3904 PR tree-optimization/96671
3905 * match.pd (three xor patterns): New patterns.
3907 2020-11-18 Jakub Jelinek <jakub@redhat.com>
3909 * optc-save-gen.awk: Initialize var_opt_init. In
3910 cl_optimization_stream_out for params with default values larger than
3911 10, xor the default value with the actual parameter value. In
3912 cl_optimization_stream_in repeat the above xor.
3914 2020-11-18 Jakub Jelinek <jakub@redhat.com>
3916 * configure.ac: Add $lang.prev rules, INDEX.$lang and SERIAL_LIST and
3917 SERIAL_COUNT variables to Make-hooks.
3918 (--enable-link-serialization): New configure option.
3919 * Makefile.in (DO_LINK_SERIALIZATION, LINK_PROGRESS): New variables.
3920 * doc/install.texi (--enable-link-serialization): Document.
3921 * configure: Regenerated.
3923 2020-11-18 Vladimir Makarov <vmakarov@redhat.com>
3926 * lra-constraints.c (curr_insn_transform): Do not delete asm goto
3927 with wrong constraints. Nullify it saving CFG.
3929 2020-11-18 Jozef Lawrynowicz <jozef.l@mittosystems.com>
3931 * config/msp430/msp430.md (mulhi3): New.
3933 (mulsidi3): Rename to *mulsidi3_inline.
3934 (umulsidi3): Rename to *umulsidi3_inline.
3935 (mulsidi3): New define_expand.
3936 (umulsidi3): New define_expand.
3938 2020-11-18 Richard Biener <rguenther@suse.de>
3940 PR tree-optimization/97886
3941 * tree-vect-loop.c (vectorizable_lc_phi): Properly assign
3942 vector types to invariants for SLP.
3944 2020-11-18 Iain Buclaw <ibuclaw@gdcproject.org>
3946 * config.gcc (*-*-dragonfly*): Add dragonfly-d.o and t-dragonfly.
3947 * config/dragonfly-d.c: New file.
3948 * config/t-dragonfly: New file.
3950 2020-11-18 Jakub Jelinek <jakub@redhat.com>
3953 * omp-expand.c (expand_omp_for_init_vars): Don't use the sqrt path
3954 if number of iterations is constant 0.
3956 2020-11-18 Kito Cheng <kito.cheng@sifive.com>
3958 * common/config/riscv/riscv-common.c (riscv_ext_version): New.
3959 (riscv_ext_version_table): Ditto.
3960 (get_default_version): Ditto.
3961 (riscv_subset_t::implied_p): New field.
3962 (riscv_subset_t::riscv_subset_t): Init implied_p.
3963 (riscv_subset_list::add): New.
3964 (riscv_subset_list::handle_implied_ext): Pass riscv_subset_t
3965 instead of separated argument.
3966 (riscv_subset_list::to_string): Handle zifencei and zicsr, and
3967 omit version if version is unknown.
3968 (riscv_subset_list::parsing_subset_version): New argument `ext`,
3969 remove default_major_version and default_minor_version, get
3970 default version info via get_default_version.
3971 (riscv_subset_list::parse_std_ext): Update argument for
3972 parsing_subset_version calls.
3973 Handle 2.2 ISA spec, always enable zicsr and zifencei, they are
3974 included in baseline ISA in that time.
3975 (riscv_subset_list::parse_multiletter_ext): Update argument for
3976 `parsing_subset_version` and `add` calls.
3977 (riscv_subset_list::parse): Adjust argument for
3978 riscv_subset_list::handle_implied_ext call.
3979 * config.gcc (riscv*-*-*): Handle --with-isa-spec=.
3980 * config.in (HAVE_AS_MISA_SPEC): New.
3981 (HAVE_AS_MARCH_ZIFENCEI): Ditto.
3982 * config/riscv/riscv-opts.h (riscv_isa_spec_class): New.
3983 (riscv_isa_spec): Ditto.
3984 * config/riscv/riscv.h (HAVE_AS_MISA_SPEC): New.
3985 (ASM_SPEC): Pass -misa-spec if gas supported.
3986 * config/riscv/riscv.opt (riscv_isa_spec_class) New.
3987 * configure.ac (HAVE_AS_MARCH_ZIFENCEI): New test.
3988 (HAVE_AS_MISA_SPEC): Ditto.
3991 2020-11-18 Kito Cheng <kito.cheng@sifive.com>
3993 * common/config/riscv/riscv-common.c (riscv_implied_info):
3994 d and f implied zicsr.
3995 (riscv_ext_flag_table): Handle zicsr and zifencei.
3996 * config/riscv/riscv-opts.h (MASK_ZICSR): New.
3997 (MASK_ZIFENCEI): Ditto.
3998 (TARGET_ZICSR): Ditto.
3999 (TARGET_ZIFENCEI): Ditto.
4000 * config/riscv/riscv.md (clear_cache): Check TARGET_ZIFENCEI.
4002 * config/riscv/riscv.opt (riscv_zi_subext): New.
4004 2020-11-18 Kito Cheng <kito.cheng@sifive.com>
4006 * common/config/riscv/riscv-common.c (single_letter_subset_rank): New.
4007 (multi_letter_subset_rank): Ditto.
4008 (subset_cmp): Ditto.
4009 (riscv_subset_list::add): Insert subext in canonical ordering.
4010 (riscv_subset_list::parse_std_ext): Move handle_implied_ext to ...
4011 (riscv_subset_list::parse): ... here.
4013 2020-11-18 Jiufu Guo <guojiufu@linux.ibm.com>
4015 * cfgloop.h (loop_optimizer_finalize): Add flag argument.
4016 * loop-init.c (loop_optimizer_finalize): Call clean_up_loop_closed_phi.
4017 * tree-cfgcleanup.h (clean_up_loop_closed_phi): New declare.
4018 * tree-ssa-loop.c (tree_ssa_loop_done): Call loop_optimizer_finalize
4020 * tree-ssa-propagate.c (clean_up_loop_closed_phi): New function.
4022 2020-11-17 Sebastian Pop <spop@amazon.com>
4024 * config.gcc: add configure flags --with-{cpu,arch,tune}-{32,64}
4025 as alias flags for --with-{cpu,arch,tune} on AArch64.
4026 * doc/install.texi: Document new flags for aarch64.
4028 2020-11-17 Sebastian Pop <spop@amazon.com>
4030 * config.gcc: Add --with-tune to AArch64 configure flags.
4032 2020-11-17 Andrew MacLeod <amacleod@redhat.com>
4034 PR tree-optimization/91029
4035 * range-op.cc (operator_trunc_mod::op1_range): New.
4037 2020-11-17 Jan Hubicka <jh@suse.cz>
4039 * ipa-icf.c (sem_function::hash_stmt): Fix conditional on
4040 variably_modified_type_p.
4042 2020-11-17 Nathan Sidwell <nathan@acm.org>
4044 * tree.h (cache_integer_cst): Add defaulted might_duplicate parm.
4045 * tree.c (cache_integer_cst): Return the integer cst, add
4046 might_duplicate parm to permit finding a small duplicate.
4048 2020-11-17 Andrew MacLeod <amacleod@redhat.com>
4050 PR tree-optimization/83072
4051 * range-op.cc (wi_optimize_and_or): Remove zero from IOR range when
4054 2020-11-17 Joseph Myers <joseph@codesourcery.com>
4056 * ginclude/float.h (CR_DECIMAL_DIG): Also define for
4057 [__STDC_WANT_IEC_60559_EXT__].
4059 2020-11-17 Joseph Myers <joseph@codesourcery.com>
4061 * ginclude/float.h [__STDC_VERSION__ > 201710L] (FLT_IS_IEC_60559,
4062 DBL_IS_IEC_60559, LDBL_IS_IEC_60559): New macros.
4064 2020-11-17 Aaron Sawdey <acsawdey@linux.ibm.com>
4067 * mode-classes.def: Add MODE_OPAQUE.
4068 * machmode.def: Add OPAQUE_MODE.
4069 * tree.def: Add OPAQUE_TYPE for types that will use
4071 * doc/generic.texi: Document OPAQUE_TYPE.
4072 * doc/rtl.texi: Document MODE_OPAQUE.
4073 * machmode.h: Add OPAQUE_MODE_P().
4074 * genmodes.c (complete_mode): Add MODE_OPAQUE.
4075 (opaque_mode): New function.
4076 * tree.c (tree_code_size): Add OPAQUE_TYPE.
4077 * tree.h: Add OPAQUE_TYPE_P().
4078 * stor-layout.c (int_mode_for_mode): Treat MODE_OPAQUE modes
4080 * ira.c (find_moveable_pseudos): Treat MODE_OPAQUE modes more
4081 like integer/float modes here.
4082 * dbxout.c (dbxout_type): Treat OPAQUE_TYPE like VOID_TYPE.
4083 * tree-pretty-print.c (dump_generic_node): Treat OPAQUE_TYPE
4084 like like other types.
4086 2020-11-17 Jan Hubicka <hubicka@ucw.cz>
4087 Martin Liska <mliska@suse.cz>
4089 * ipa-icf.c: Include data-streamer.h and alias.h.
4090 (sem_function::sem_function): Initialize memory_access_types
4091 and m_alias_sets_hash.
4092 (sem_function::hash_stmt): For memory accesses and when going to
4093 do lto streaming add base and ref types into memory_access_types.
4094 (sem_item_optimizer::write_summary): Stream memory access types.
4095 (sem_item_optimizer::read_section): Likewise and also iniitalize
4097 (sem_item_optimizer::execute): Call
4098 sem_item_optimizer::update_hash_by_memory_access_type.
4099 (sem_item_optimizer::update_hash_by_memory_access_type): Updat.
4100 * ipa-icf.h (sem_function): Add memory_access_types and
4103 2020-11-17 Jan Hubicka <jh@suse.cz>
4106 * ipa-devirt.c (odr_based_tbaa_p): Do not ICE when
4107 odr_hash is not initialized
4108 * ipa-utils.h (type_with_linkage_p): Do not sanity check
4110 * tree-streamer-out.c (pack_ts_type_common_value_fields): Set
4111 CXX_ODR_P according to the canonical type.
4113 2020-11-17 Nathan Sidwell <nathan@acm.org>
4115 * langhooks-def.h (LANG_HOOKS_PREPROCESS_MAIN_FILE)
4116 (LANG_HOOKS_PREPROCESS_OPTIONS, LANG_HOOKS_PREPROCESS_UNDEF)
4117 (LANG_HOOKS_PREPROCESS_TOKEN): New.
4118 (LANG_HOOKS_INITIALIZER): Add them.
4119 * langhooks.h (struct lang_hooks): Add preprocess_main_file,
4120 preprocess_options, preprocess_undef, preprocess_token hooks. Add
4123 2020-11-17 Richard Sandiford <richard.sandiford@arm.com>
4125 PR tree-optimization/97693
4126 * tree-vect-stmts.c (vectorizable_call): Pass the required vectype
4127 to vect_get_vec_defs_for_operand.
4129 2020-11-17 Liu Hao <lh_mouse@126.com>
4131 * config/i386/msformat-c.c: Add more length modifiers.
4133 2020-11-17 Tamar Christina <tamar.christina@arm.com>
4136 * gcc.c (convert_filename): Don't add suffix to things that are
4138 (not_actual_file_p): Use supplied argument.
4140 2020-11-17 Haochen Gui <guihaoc@gcc.gnu.org>
4142 * final.c (final_scan_insn_1): Set jump table relocatable as the
4143 second argument of targetm.asm_out.function_rodata_section.
4144 * output.h (default_function_rodata_section,
4145 default_no_function_rodata_section): Add the second argument to the
4147 * target.def (function_rodata_section): Change the doc and add
4148 the second argument.
4149 * doc/tm.texi: Regenerate.
4150 * varasm.c (jumptable_relocatable): Implement.
4151 (default_function_rodata_section): Add the second argument
4152 and the support for relocatable read only sections.
4153 (default_no_function_rodata_section): Add the second argument.
4154 (function_mergeable_rodata_prefix): Set the second argument to false.
4155 * config/mips/mips.c (mips_function_rodata_section): Add the second
4156 arugment and set it to false.
4157 * config/s390/s390.c (targetm.asm_out.function_rodata_section): Set
4158 the second argument to false.
4159 * config/s390/s390.md: Likewise.
4161 2020-11-17 liuhongt <hongtao.liu@intel.com>
4164 * config/i386/i386-expand.c (ix86_expand_vector_set_var): New function.
4165 * config/i386/i386-protos.h (ix86_expand_vector_set_var): New Decl.
4166 * config/i386/predicates.md (vec_setm_operand): New predicate,
4167 true for const_int_operand or register_operand under TARGET_AVX2.
4168 * config/i386/sse.md (vec_set<mode>): Support both constant
4169 and variable index vec_set.
4171 2020-11-17 Martin Sebor <msebor@redhat.com>
4173 * tree-ssa-uninit.c (maybe_warn_operand): Call is_empty_type.
4174 * tree.c (default_is_empty_type): Rename...
4175 (is_empty_type): ...to this.
4176 * tree.h (is_empty_type): Declare.
4178 2020-11-17 Martin Sebor <msebor@redhat.com>
4181 * tree-ssa-strlen.c (used_only_for_zero_equality): Rename...
4182 (use_in_zero_equality): ...to this. Add a default argument.
4183 (handle_builtin_memcmp): Adjust to the name change above.
4184 (handle_builtin_string_cmp): Same.
4185 (maybe_warn_pointless_strcmp): Same. Pass in an explicit argument.
4187 2020-11-17 Joseph Myers <joseph@codesourcery.com>
4189 * ginclude/float.h (DEC32_SNAN, DEC64_SNAN, DEC128_SNAN): New C2x
4192 2020-11-17 Joseph Myers <joseph@codesourcery.com>
4194 * ginclude/float.h (INFINITY, NAN, FLT_SNAN, DBL_SNAN, LDBL_SNAN)
4195 (FLT16_SNAN, FLT32_SNAN, FLT64_SNAN, FLT128_SNAN, FLT32X_SNAN)
4196 (FLT64X_SNAN, FLT128X_SNAN, DEC_INFINITY, DEC_NAN): New C2x
4198 * doc/sourcebuild.texi (Effective-Target Keywords): Document inff.
4200 2020-11-17 Armin Brauns via Gcc-patches <gcc-patches@gcc.gnu.org>
4202 * gcc.c: Document %T spec file directive.
4203 * doc/invoke.texi: Remove %p, %P spec file directives.
4204 Add %M, %R, %V, %nSTR, %>S, %<S*, %{%:function(args):X}, %@{...} spec
4205 file directives add sanitize, version-compare, include, gt and
4206 debug-level-gt spec functions.
4208 2020-11-16 Roger Sayle <roger@nextmovesoftware.com>
4210 PR rtl-optimization/92180
4211 * config/i386/i386.c (ix86_hardreg_mov_ok): New function to
4212 determine whether (set DST SRC) should be allowed at this point.
4213 * config/i386/i386-protos.h (ix86_hardreg_mov_ok): Prototype here.
4214 * config/i386/i386-expand.c (ix86_expand_move): Check whether
4215 this is a complex set of a likely spilled hard register, and if
4216 so place the value in a pseudo, and load the hard reg from it.
4217 * config/i386/i386.md (*movdi_internal, *movsi_internal)
4218 (*movhi_internal, *movqi_internal): Make these instructions
4219 conditional on ix86_hardreg_mov_ok.
4220 (*lea<mode>): Make this define_insn_and_split conditional on
4221 ix86_hardreg_mov_ok.
4223 2020-11-16 Martin Liska <mliska@suse.cz>
4225 * params.opt: Add missing dot.
4227 2020-11-16 Jan Hubicka <jh@suse.cz>
4229 * ipa-modref.c (escape_point): New type.
4230 (modref_lattice): New type.
4231 (escape_entry): New type.
4232 (escape_summary): New type.
4233 (escape_summaries_t): New type.
4234 (escape_summaries): New static variable.
4235 (eaf_flags_useful_p): New function.
4236 (modref_summary::useful_p): Add new check_flags
4237 attribute; check eaf_flags for usefulness.
4238 (modref_summary_lto): Add arg_flags.
4239 (modref_summary_lto::useful_p): Add new check_flags
4240 attribute; check eaf_flags for usefulness.
4241 (dump_modref_edge_summaries): New function.
4242 (remove_modref_edge_summaries): New function.
4243 (ignore_retval_p): New predicate.
4244 (ignore_stores_p): Also ignore for const.
4245 (remove_summary): Call remove_modref_edge_summaries.
4246 (modref_lattice::init): New member function.
4247 (modref_lattice::release): New member unction.
4248 (modref_lattice::dump): New member function.
4249 (modref_lattice::add_escape_point): New member function.
4250 (modref_lattice::merge): Two new member functions.
4251 (modref_lattice::merge_deref): New member functions.
4252 (modref_lattice::merge_direct_load): New member function.
4253 (modref_lattice::merge_direct_store): New member function.
4254 (call_lhs_flags): Rename to ...
4255 (merge_call_lhs_flags): ... this one; reimplement using
4257 (analyze_ssa_name_flags): Replace KNOWN_FLAGS param by LATTICE;
4258 add IPA parametr; use modref_lattice.
4259 (analyze_parms): New parameter IPA and SUMMARY_LTO; update for
4260 modref_lattice; initialize escape_summary.
4261 (analyze_function): Allocate escape_summaries; update uses of useful_p.
4262 (modref_write_escape_summary): New function.
4263 (modref_read_escape_summary): New function.
4264 (modref_write): Write escape summary.
4265 (read_section): Read escape summary.
4266 (modref_read): Initialie escape_summaries.
4267 (remap_arg_flags): New function.
4268 (update_signature): Use it.
4269 (escape_map): New structure.
4270 (update_escape_summary_1, update_escape_summary): New functions.
4271 (ipa_merge_modref_summary_after_inlining): Merge escape summaries.
4272 (propagate_unknown_call): Do not remove useless summaries.
4273 (remove_useless_summaries): Remove them here.
4274 (modref_propagate_in_scc): Update; do not dump scc.
4275 (modref_propagate_dump_scc): New function.
4276 (modref_merge_call_site_flags): New function.
4277 (modref_propagate_flags_in_scc): New function.
4278 (pass_ipa_modref::execute): Use modref_propagate_flags_in_scc
4279 and modref_propagate_dump_scc; delete escape_summaries.
4280 (ipa_modref_c_finalize): Remove escape_summaries.
4281 * ipa-modref.h (modref_summary): Update prototype of useful_p.
4282 * params.opt (param=modref-max-escape-points): New param.
4283 * doc/invoke.texi (modref-max-escape-points): Document.
4285 2020-11-16 Jan Hubicka <jh@suse.cz>
4288 * ipa-modref.c (analyze_ssa_name_flags): Skip clobbers if inlining
4290 * tree-ssa-uninit.c (maybe_warn_pass_by_reference): Make stmt gcall;
4291 skip const calls and unused arguments.
4292 (warn_uninitialized_vars): Update prototype.
4294 2020-11-16 Richard Biener <rguenther@suse.de>
4296 * tree-vectorizer.h (vect_gather_slp_loads): Declare.
4297 * tree-vect-loop.c (vect_analyze_loop_2): Call
4298 vect_gather_slp_loads.
4299 * tree-vect-slp.c (vect_build_slp_instance): Do not gather
4301 (vect_gather_slp_loads): Remove wrapper, new function.
4302 (vect_slp_analyze_bb_1): Call it.
4304 2020-11-16 Richard Biener <rguenther@suse.de>
4306 * tree-ssa-loop-im.c (analyze_memory_references): Add
4307 store_motion parameter and elide unnecessary work.
4308 (tree_ssa_lim_initialize): Likewise.
4309 (loop_invariant_motion_in_fun): Pass down store_motion.
4311 2020-11-16 Martin Liska <mliska@suse.cz>
4313 * params.opt: All modref parameters miss Optimization and Param
4314 keyword as seen in testsuite failure.
4316 2020-11-16 Jan Hubicka <jh@suse.cz>
4318 * params.opt (-param=modref-max-depth=): Add missing full stop.
4320 2020-11-16 Sebastian Huber <sebastian.huber@embedded-brains.de>
4322 * common.opt (fprofile-info-section): New.
4323 * coverage.c (build_gcov_info_var_registration): New.
4324 (coverage_obj_init): Evaluate profile_info_section and use
4325 build_gcov_info_var_registration().
4326 * doc/invoke.texi (fprofile-info-section): Document.
4327 * opts.c (common_handle_option): Process fprofile-info-section
4330 2020-11-16 Richard Biener <rguenther@suse.de>
4332 PR tree-optimization/97838
4333 * tree-vect-slp.c (vect_slp_build_vertices): Properly handle
4334 not backwards reachable cycles.
4335 (vect_optimize_slp): Check a node is leaf before marking it
4338 2020-11-16 Martin Liska <mliska@suse.cz>
4340 PR tree-optimization/97736
4341 * tree-switch-conversion.c (switch_decision_tree::analyze_switch_statement):
4344 2020-11-16 Richard Biener <rguenther@suse.de>
4346 PR tree-optimization/97835
4347 * tree-vect-loop.c (vectorizable_induction): Convert step
4348 scalars rather than step vector.
4350 2020-11-16 Richard Biener <rguenther@suse.de>
4352 PR tree-optimization/97830
4353 * tree-ssa-sccvn.c (vn_reference_eq): Check for incomplete
4354 types before comparing TYPE_SIZE.
4356 2020-11-16 Cui,Lili <lili.cui@intel.com>
4358 * config/i386/i386.h: Add PREFETCHW to march=broadwell.
4359 * doc/invoke.texi: Put PREFETCHW back to relation arch.
4361 2020-11-15 Jozef Lawrynowicz <jozef.l@mittosystems.com>
4363 * config/msp430/msp430.c (msp430_output_labelref): Don't process mspabi
4364 hwmult library function names into GCC-style names.
4366 2020-11-15 Jozef Lawrynowicz <jozef.l@mittosystems.com>
4368 * config/msp430/msp430.c (msp430_use_16bit_hwmult): New.
4369 (use_32bit_hwmult): Rename to..
4370 (msp430_use_32bit_hwmult): ..this.
4371 (msp430_muldiv_costs): Use msp430_use_16bit_hwmult and
4372 msp430_use_32bit_hwmult.
4373 (msp430_expand_helper): Use msp430_use_16bit_hwmult and
4374 msp430_use_32bit_hwmult.
4375 (msp430_output_labelref): Use msp430_use_32bit_hwmult.
4377 2020-11-15 Maciej W. Rozycki <macro@linux-mips.org>
4379 * config/vax/vax.c (vax_rtx_costs): Use `rtx_code' rather than
4382 2020-11-15 Maciej W. Rozycki <macro@linux-mips.org>
4384 * config/vax/vax.c (vax_output_int_add) <E_DImode>: Fix a typo
4385 in NO_EXTERNAL_INDIRECT_ADDRESS.
4387 2020-11-15 Maciej W. Rozycki <macro@linux-mips.org>
4389 * config/vax/vax.c (vax_output_int_add) <E_SImode>: Also check
4390 `operands[2]' for being symbolic with PIC rather than checking
4391 `operands[1]' twice.
4393 2020-11-15 Aldy Hernandez <aldyh@redhat.com>
4395 * vr-values.c (vr_values::extract_range_builtin): Rename to...
4396 (vr_values::extract_range_from_ubsan_builtin): ...this.
4397 Remove everything but UBSAN code.
4398 (vr_values::extract_range_basic): Call ranger version for
4399 everything except UBSAN built-ins.
4400 * vr-values.h (class vr_values): Rename extract_range_builtin to
4401 extract_range_from_ubsan_builtin.
4403 2020-11-15 Vladimir N. Makarov <vmakarov@redhat.com>
4405 * lra.c (lra_process_new_insns): Don't put reload insns in the
4408 2020-11-15 Jan Hubicka <jh@suse.cz>
4410 * ipa-modref.c (analyze_ssa_name_flags): Make return to clear
4413 2020-11-14 Jan Hubicka <jh@suse.cz>
4415 * gimple.c: Include ipa-modref-tree.h and ipa-modref.h.
4416 (gimple_call_arg_flags): Use modref to determine flags.
4417 * ipa-modref.c: Include gimple-ssa.h, tree-phinodes.h,
4418 tree-ssa-operands.h, stringpool.h and tree-ssanames.h.
4419 (analyze_ssa_name_flags): Declare.
4420 (modref_summary::useful_p): Summary is also useful if arg flags are
4422 (dump_eaf_flags): New function.
4423 (modref_summary::dump): Use it.
4424 (get_modref_function_summary): Be read for current_function_decl
4426 (memory_access_to): New function.
4427 (deref_flags): New function.
4428 (call_lhs_flags): New function.
4429 (analyze_parms): New function.
4430 (analyze_function): Use it.
4431 * ipa-modref.h (struct modref_summary): Add arg_flags.
4432 * doc/invoke.texi (ipa-modref-max-depth): Document.
4433 * params.opt (ipa-modref-max-depth): New param.
4435 2020-11-14 Jakub Jelinek <jakub@redhat.com>
4438 * dwarf2out.c (gen_subprogram_die): Call
4439 gen_unspecified_parameters_die even if not early dwarf, but only
4440 if subr_die is a newly created DIE.
4442 2020-11-14 Monk Chiang <monk.chiang@sifive.com>
4445 * config/riscv/riscv.h (RISCV_PROLOGUE_TEMP_REGNUM): Change register
4447 (RISCV_CALL_ADDRESS_TEMP_REGNUM): New Marco, define t1 register.
4448 (RISCV_CALL_ADDRESS_TEMP): Use it for call instructions.
4449 * config/riscv/riscv.c (riscv_legitimize_call_address): Use
4450 RISCV_CALL_ADDRESS_TEMP.
4451 (riscv_compute_frame_info): Change temporary register to t0 form t1.
4452 (riscv_trampoline_init): Adjust comment.
4454 2020-11-14 Jim Wilson <jimw@sifive.com>
4455 cooper.joshua <cooper.joshua@linux.alibaba.com>
4457 * config/riscv/riscv.c (riscv_asan_shadow_offset): New.
4458 (TARGET_ASAN_SHADOW_OFFSET): New.
4459 * doc/tm.texi: Regenerated.
4460 * target.def (asan_shadow_offset); Mention that it can return zero.
4461 * toplev.c (process_options): Check for and handle zero return from
4462 targetm.asan_shadow_offset call.
4464 2020-11-14 Jakub Jelinek <jakub@redhat.com>
4466 * gimplify.c (gimplify_omp_for): Add OMP_CLAUSE_ALLOCATE_ALLOCATOR
4467 decls as firstprivate on task clauses even when allocate clause
4468 decl is not lastprivate.
4469 * omp-low.c (install_var_field): Don't dereference omp_is_reference
4470 types if mask is 33 rather than 1.
4471 (scan_sharing_clauses): Populate allocate_map even for task
4472 constructs. For now remove it back for variables mentioned in
4473 reduction and in_reduction clauses on task/taskloop constructs
4474 or on VLA task firstprivates. For firstprivate on task construct,
4475 install the var field into field_map with by_ref and 33 instead
4476 of false and 1 if mentioned in allocate clause.
4477 (lower_private_allocate): Set TREE_THIS_NOTRAP on the created
4479 (lower_rec_input_clauses): Handle allocate for task firstprivatized
4481 (create_task_copyfn): Likewise.
4483 2020-11-13 Jan Hubicka <jh@suse.cz>
4485 * tree-ssa-alias.c (ao_ref_base_alias_ptr_type): Remove accidental
4487 (ao_ref_alias_ptr_type): Remove accidental commit.
4489 2020-11-13 Kwok Cheung Yeung <kcy@codesourcery.com>
4491 * omp-oacc-kernels-decompose.cc (maybe_build_inner_data_region):
4492 Use langhook instead of accessing language-specific decl
4495 2020-11-13 Gergö Barany <gergo@codesourcery.com>
4496 Thomas Schwinge <thomas@codesourcery.com>
4498 * omp-oacc-kernels-decompose.cc: New.
4499 * Makefile.in (OBJS): Add it.
4500 * passes.def: Instantiate it.
4501 * tree-pass.h (make_pass_omp_oacc_kernels_decompose): Declare.
4502 * flag-types.h (enum openacc_kernels): Add.
4503 * doc/invoke.texi (-fopenacc-kernels): Document.
4504 * gimple.h (enum gf_mask): Add
4505 'GF_OMP_TARGET_KIND_OACC_PARALLEL_KERNELS_PARALLELIZED',
4506 'GF_OMP_TARGET_KIND_OACC_PARALLEL_KERNELS_GANG_SINGLE',
4507 'GF_OMP_TARGET_KIND_OACC_DATA_KERNELS'.
4508 (is_gimple_omp_oacc, is_gimple_omp_offloaded): Handle these.
4509 * gimple-pretty-print.c (dump_gimple_omp_target): Likewise.
4510 * omp-expand.c (expand_omp_target, build_omp_regions_1)
4511 (omp_make_gimple_edges): Likewise.
4512 * omp-low.c (scan_sharing_clauses, scan_omp_for)
4513 (check_omp_nesting_restrictions, lower_oacc_reductions)
4514 (lower_oacc_head_mark, lower_omp_target): Likewise.
4515 * omp-offload.c (execute_oacc_device_lower): Likewise.
4517 2020-11-13 Thomas Schwinge <thomas@codesourcery.com>
4519 * omp-low.c (scan_sharing_clauses, scan_omp_for)
4520 (lower_oacc_reductions, lower_omp_target): More explicit checking
4521 of which OMP constructs we're expecting.
4523 2020-11-13 Thomas Schwinge <thomas@codesourcery.com>
4525 * omp-expand.c (expand_omp_target): Attach an attribute to all
4526 outlined OpenACC compute regions.
4527 * omp-offload.c (execute_oacc_device_lower): Adjust.
4529 2020-11-13 Jan Hubicka <jh@suse.cz>
4531 * ipa-modref.c (modref_summaries::insert,
4532 modref_summaries_lto::insert): Remove summary if ipa-modref is disabled.
4534 2020-11-13 Jan Hubicka <jh@suse.cz>
4536 * attr-fnspec.h (attr_fnspec::arg_readonly_p): Accept '1'...'9'.
4538 2020-11-13 Peter Jones <pjones@redhat.com>
4540 * doc/extend.texi: Clarify the documentation for the ms_abi
4543 2020-11-13 Andrew MacLeod <amacleod@redhat.com>
4545 * gimple-range.h (gimple_range_handler): Cast to gimple stmt
4546 kinds before asking for code and type.
4547 * gimple.h (gimple_expr_code): Call gassign and gcond routines
4548 to get their expr_code.
4550 2020-11-13 Jason Merrill <jason@redhat.com>
4552 * dwarf2out.c (gen_enumeration_type_die): Call
4553 equate_decl_number_to_die for enumerators.
4554 (gen_member_die): Don't move enumerators to their
4556 (dwarf2out_imported_module_or_decl_1): Allow importing
4557 individual enumerators.
4558 (force_decl_die): Handle CONST_DECL.
4560 2020-11-13 Vladimir N. Makarov <vmakarov@redhat.com>
4562 * cfgexpand.c (expand_asm_stmt): Output asm goto with outputs too.
4563 Place insns after asm goto on edges.
4564 * doc/extend.texi: Reflect the changes in asm goto documentation.
4565 * gimple.c (gimple_build_asm_1): Remove an assert checking output
4566 absence for asm goto.
4567 * gimple.h (gimple_asm_label_op, gimple_asm_set_label_op): Take
4568 possible asm goto outputs into account.
4569 * ira.c (ira): Remove critical edges for potential asm goto output
4571 (ira_nullify_asm_goto): New function.
4572 * ira.h (ira_nullify_asm_goto): New prototype.
4573 * lra-assigns.c (lra_split_hard_reg_for): Use ira_nullify_asm_goto.
4574 Check that splitting is done inside a basic block.
4575 * lra-constraints.c (curr_insn_transform): Permit output reloads
4577 * lra-spills.c (lra_final_code_change): Remove USEs added in ira
4579 * lra.c (lra_process_new_insns): Place output reload insns after
4580 jumps in the beginning of destination BBs.
4581 * reload.c (find_reloads): Report error for asm gotos with
4582 outputs. Modify them to keep CFG consistency to avoid crashes.
4583 * tree-into-ssa.c (rewrite_stmt): Don't put debug stmt after asm
4586 2020-11-13 Jakub Jelinek <jakub@redhat.com>
4588 * omp-low.c (scan_sharing_clauses): For now remove for reduction
4589 clauses with inscan or task modifiers decl from allocate_map.
4590 (lower_private_allocate): Handle TYPE_P (new_var).
4591 (lower_rec_input_clauses): Handle allocate clause for C/C++ array
4594 2020-11-13 Martin Jambor <mjambor@suse.cz>
4597 * ipa-cp.c (value_topo_info<valtype>::propagate_effects): Use
4598 safe_add instead of a simple addition.
4600 2020-11-13 Jozef Lawrynowicz <jozef.l@mittosystems.com>
4602 * config/msp430/msp430.c (TARGET_INSN_COST): Define.
4603 (msp430_insn_cost): New function.
4604 * config/msp430/msp430.h (BRANCH_COST): Define.
4605 (LOGICAL_OP_NON_SHORT_CIRCUIT): Define.
4607 2020-11-13 Jozef Lawrynowicz <jozef.l@mittosystems.com>
4609 * config/msp430/msp430-protos.h (msp430x_extendhisi): Return int
4611 (msp430_output_asm_shift_insns): Likewise.
4612 Add new return_length argument.
4613 (msp430x_insn_required): Add prototype.
4614 * config/msp430/msp430.c (msp430_output_asm_shift_insns): Return the
4615 total length, in bytes, of the emitted instructions.
4616 (msp430x_insn_required): New function.
4617 (msp430x_extendhisi): Return the total length, in bytes, of the
4618 emitted instructions.
4619 * config/msp430/msp430.h (ADJUST_INSN_LENGTH): Define.
4620 * config/msp430/msp430.md: New define_attr "type".
4621 New define_attr "extension".
4622 New define_attr "length_multiplier".
4623 New define_attr "extra_length".
4624 Rewrite define_attr "length".
4625 Set type, extension, length, length_multiplier or extra_length insn
4626 attributes on all insns, as appropriate.
4627 (andneghi3): Rewrite using constraints instead of C code to decide
4629 * config/msp430/predicates.md (msp430_cheap_operand): New predicate.
4630 (msp430_high_memory_operand): New predicate.
4632 2020-11-13 Jozef Lawrynowicz <jozef.l@mittosystems.com>
4634 * config/msp430/msp430.c (use_helper_for_const_shift): Add forward
4636 Remove unused argument.
4637 (struct msp430_multlib_costs): New struct.
4638 (msp430_is_mem_indirect): New function.
4639 (msp430_costs): Likewise.
4640 (msp430_shift_costs): Likewise.
4641 (msp430_muldiv_costs): Likewise.
4642 (msp430_get_inner_dest_code): Likewise.
4643 (msp430_single_op_cost): Likewise.
4644 (msp430_rtx_costs): Rewrite from scratch.
4645 (msp430_expand_shift): Adjust use_helper_for_const_shift call.
4647 2020-11-13 Jozef Lawrynowicz <jozef.l@mittosystems.com>
4649 * config/msp430/msp430.c (struct single_op_cost): New struct.
4650 (struct double_op_cost): Likewise.
4651 (TARGET_REGISTER_MOVE_COST): Don't define but add comment.
4652 (TARGET_MEMORY_MOVE_COST): Define to...
4653 (msp430_memory_move_cost): New function.
4654 (BRANCH_COST): Don't define but add comment.
4656 2020-11-13 Jan Hubicka <jh@suse.cz>
4658 * ipa-icf-gimple.c: Include tree-ssa-alias-compare.h.
4659 (find_checker::func_checker): Initialize m_tbaa.
4660 (func_checker::hash_operand): Use hash_ao_ref for memory accesses.
4661 (func_checker::compare_operand): Use compare_ao_refs for memory
4663 (func_checker::cmopare_gimple_assign): Do not check LHS types
4665 * ipa-icf-gimple.h (func_checker): Derive from ao_compare;
4667 * ipa-icf.c: Include tree-ssa-alias-compare.h.
4668 (sem_function::equals_private): Update call of
4669 func_checker::func_checker.
4670 * ipa-utils.h (lto_streaming_expected_p): New inline
4672 * tree-ssa-alias-compare.h: New file.
4673 * tree-ssa-alias.c: Include tree-ssa-alias-compare.h
4675 (view_converted_memref_p): New function.
4676 (types_equal_for_same_type_for_tbaa_p): New function.
4677 (ao_ref_alias_ptr_type, ao_ref_base_alias_ptr_type): New functions.
4678 (ao_compare::compare_ao_refs): New member function.
4679 (ao_compare::hash_ao_ref): New function
4680 * tree-ssa-alias.h (ao_ref_base_alias_ptr_type,
4681 ao_ref_alias_ptr_type): Declare.
4683 2020-11-13 Jan Hubicka <jh@suse.cz>
4685 * ipa-icf-gimple.c: Include gimple-walk.h.
4686 (func_checker::compare_ssa_name): Update call of compare_operand.
4687 (func_checker::hash_operand): Fix comment and add variant taking
4688 operand_access_type parameter.
4689 (func_checker::compare_operand): Add operand_access_type parameter.
4690 (func_checker::compare_asm_inputs_outputs): Add
4691 operand_access_type_map parameter; update use of
4692 func_checker::compare_operand.
4693 (func_checker::compare_gimple_call): Update use of
4694 func_checker::compare_operand.
4695 (func_checker::compare_gimple_assign): Likewise.
4696 (func_checker::compare_gimple_cond): Likewise.
4697 (func_checker::compare_gimple_switch): Likewise.
4698 (func_checker::compare_gimple_return): Likewise.
4699 (func_checker::compare_gimple_goto): Likewise.
4700 (func_checker::compare_gimple_asm): Likewise.
4701 (visit_load_store): New static functio.
4702 (func_checker::classify_operands): New member function.
4703 (func_checker::get_operand_access_type): New member function.
4704 * ipa-icf-gimple.h (func_checker::operand_access_type): New enum
4705 (func_checker::operand_access_type_map): New typedef.
4706 (func_checker::compare_operand): Update prototype.
4707 (func_checker::compare_asm_inputs_outputs): Likewise.
4708 (func_checker::cleassify_operands): Declare.
4709 (func_checker::get_operand_access_type): Declare.
4710 (func_checker::hash_operand): New variant with operand_access_type.
4711 * ipa-icf.c (sem_function::hash_stmt): Update uses of hash_operand.
4712 (sem_function::compare_phi_node): Update use of compare_operand.
4714 2020-11-13 Andrea Corallo <andrea.corallo@arm.com>
4716 * config/arm/aarch-common.c (aarch_accumulator_forwarding): Use
4717 RTL predicates where possible.
4718 * config/arm/arm.c (legitimate_pic_operand_p)
4719 (legitimize_pic_address, arm_is_segment_info_known)
4720 (can_avoid_literal_pool_for_label_p)
4721 (thumb1_legitimate_address_p, arm_legitimize_address)
4722 (arm_tls_referenced_p, thumb_legitimate_constant_p)
4723 (REG_OR_SUBREG_REG, thumb1_rtx_costs, thumb1_size_rtx_costs)
4724 (arm_adjust_cost, arm_coproc_mem_operand_wb)
4725 (neon_vector_mem_operand, neon_struct_mem_operand)
4726 (symbol_mentioned_p, label_mentioned_p, )
4727 (load_multiple_sequence, store_multiple_sequence)
4728 (arm_select_cc_mode, arm_reload_in_hi, arm_reload_out_hi)
4729 (mem_ok_for_ldrd_strd, arm_emit_call_insn, output_move_neon)
4730 (arm_attr_length_move_neon, arm_assemble_integer)
4731 (arm_emit_coreregs_64bit_shift, arm_valid_symbolic_address_p)
4732 (extract_base_offset_in_addr, fusion_load_store): Likewise.
4734 2020-11-13 Andrew MacLeod <amacleod@redhat.com>
4736 * gimple-range.cc: (gimple_ranger::range_of_range_op): Check for
4737 ADDR_EXPR and call range_of_address.
4738 (gimple_ranger::range_of_address): Rename from
4739 range_of_non_trivial_assignment and match vrp_stmt_computes_nonzero.
4740 * gimple-range.h: (range_of_address): Renamed.
4741 * range-op.cc: (pointer_table): Add INTEGER_CST handler.
4743 2020-11-13 Martin Jambor <mjambor@suse.cz>
4745 PR tree-optimization/94406
4746 * tree-ssa-loop-im.c (tree_ssa_lim): Renamed to
4747 loop_invariant_motion_in_fun, added a parameter to control store
4749 (pass_lim::execute): Adjust call to tree_ssa_lim, now
4750 loop_invariant_motion_in_fun.
4751 * tree-ssa-loop-manip.h (loop_invariant_motion_in_fun): Declare.
4752 * gimple-loop-interchange.cc (pass_linterchange::execute): Call
4753 loop_invariant_motion_in_fun if any interchange has been done.
4755 2020-11-13 Richard Biener <rguenther@suse.de>
4757 * tree-ssa-sccvn.c (vn_phi_compute_hash): Always hash the
4758 number of predecessors. Hash the block number also for
4760 (expressions_equal_p): Short-cut SSA name compares, remove
4761 test for NULL operands.
4762 (vn_phi_eq): Cache number of predecessors, change inlined
4763 test from expressions_equal_p.
4765 2020-11-13 Iain Sandoe <iain@sandoe.co.uk>
4767 * doc/extend.texi: Don't try to line-wrap an @r command.
4769 2020-11-13 Richard Biener <rguenther@suse.de>
4771 PR tree-optimization/97812
4772 * tree-vrp.c (register_edge_assert_for_2): Extend the range
4773 according to its sign before seeing whether it fits.
4775 2020-11-13 Andrea Corallo <andrea.corallo@arm.com>
4777 * config/aarch64/aarch64.c (tls_symbolic_operand_type)
4778 (aarch64_load_symref_appropriately, aarch64_mov128_immediate)
4779 (aarch64_expand_mov_immediate)
4780 (aarch64_maybe_expand_sve_subreg_move)
4781 (aarch64_tls_referenced_p, aarch64_cannot_force_const_mem)
4782 (aarch64_base_register_rtx_p, aarch64_classify_index)
4783 (aarch64_classify_address, aarch64_symbolic_address_p)
4784 (aarch64_reinterpret_float_as_int, aarch64_float_const_rtx_p)
4785 (aarch64_can_const_movi_rtx_p, aarch64_select_cc_mode)
4786 (aarch64_print_operand, aarch64_label_mentioned_p)
4787 (aarch64_secondary_reload, aarch64_preferred_reload_class)
4788 (aarch64_address_cost, aarch64_tls_symbol_p)
4789 (aarch64_classify_symbol, aarch64_legitimate_pic_operand_p)
4790 (aarch64_legitimate_constant_p)
4791 (aarch64_sve_float_arith_immediate_p)
4792 (aarch64_sve_float_mul_immediate_p, aarch64_mov_operand_p)
4793 (fusion_load_store): Use RTL operands where possible.
4795 2020-11-13 Sudakshina Das <sudi.das@arm.com>
4797 * config/aarch64/aarch64-protos.h (aarch64_expand_setmem): New
4799 * config/aarch64/aarch64.c (aarch64_gen_store_pair): Add case for
4801 (aarch64_set_one_block_and_progress_pointer): New helper for
4802 aarch64_expand_setmem.
4803 (aarch64_expand_setmem): Define the expansion for memset.
4804 * config/aarch64/aarch64.h (CLEAR_RATIO): Tweak to favor
4805 aarch64_expand_setmem when allowed and profitable.
4806 (SET_RATIO): Likewise.
4807 * config/aarch64/aarch64.md: Define pattern for setmemdi.
4809 2020-11-13 Iain Sandoe <iain@sandoe.co.uk>
4812 * doc/extend.texi: Document the objc_nullability attribute.
4814 2020-11-13 Iain Sandoe <iain@sandoe.co.uk>
4817 * doc/extend.texi: Document the objc_root_class attribute.
4818 * doc/invoke.texi: Document -Wobjc-root-class.
4820 2020-11-13 Richard Biener <rguenther@suse.de>
4822 * cfgexpand.c (gimple_assign_rhs_to_tree): Use
4823 gimple_assign_rhs_class.
4824 (expand_gimple_stmt_1): Likewise.
4825 * gimplify-me.c (gimple_regimplify_operands): Use
4826 gimple_assign_single_p.
4827 * ipa-icf-gimple.c (func_checker::compare_gimple_assign):
4828 Remove redundant compare.
4829 (func_checker::compare_gimple_cond): Use gimple_cond_code.
4830 * tree-ssa-tail-merge.c (gimple_equal_p): Likewise.
4831 * predict.c (predict_loops): Use gimple_assign_rhs_code.
4833 2020-11-13 Aldy Hernandez <aldyh@redhat.com>
4835 * tree-vrp.c (class vrp_folder): Make visit_stmt, visit_phi,
4836 and m_vr_values private.
4837 (vrp_folder::vrp_evaluate_conditional): Remove.
4838 (vrp_folder::vrp_simplify_stmt_using_ranges): Remove.
4839 (vrp_folder::fold_predicate_in): Inline
4840 vrp_evaluate_conditional and vrp_simplify_stmt_using_ranges.
4841 (vrp_folder::fold_stmt): Same.
4843 2020-11-13 Aldy Hernandez <aldyh@redhat.com>
4845 * tree-vrp.c (class vrp_prop): Rename vr_values to m_vr_values.
4846 (vrp_prop::vrp_prop): New.
4847 (vrp_prop::initialize): Rename vr_values to m_vr_values.
4848 (vrp_prop::visit_stmt): Same.
4849 (vrp_prop::visit_phi): Same.
4850 (vrp_prop::finalize): Same.
4851 (execute_vrp): Instantiate vrp_vr_values and pass it to folder
4854 2020-11-13 Aldy Hernandez <aldyh@redhat.com>
4856 * tree-vrp.c (class vrp_prop): Move entire class...
4857 (class vrp_folder): ...before here.
4859 2020-11-13 Aldy Hernandez <aldyh@redhat.com>
4861 * tree-vrp.c (identify_jump_threads): Refactor to..
4862 (vrp_jump_threader::vrp_jump_threader): ...here
4863 (vrp_jump_threader::~vrp_jump_threader): ...and here.
4864 (vrp_jump_threader::after_dom_children): Rename vr_values to
4866 (execute_vrp): Use vrp_jump_threader.
4868 2020-11-13 Aldy Hernandez <aldyh@redhat.com>
4870 * tree-vrp.c (struct assert_locus): Move.
4871 (class vrp_insert): Rename to vrp_asserts.
4872 (vrp_insert::build_assert_expr_for): Move to vrp_asserts.
4873 (fp_predicate): Same.
4874 (vrp_insert::dump): Same.
4875 (vrp_insert::register_new_assert_for): Same.
4876 (extract_code_and_val_from_cond_with_ops): Move.
4877 (vrp_insert::finish_register_edge_assert_for): Move to vrp_asserts.
4878 (maybe_set_nonzero_bits): Move.
4879 (vrp_insert::find_conditional_asserts): Move to vrp_asserts.
4880 (stmt_interesting_for_vrp): Move.
4881 (struct case_info): Move.
4882 (compare_case_labels): Move.
4883 (lhs_of_dominating_assert): Move.
4884 (find_case_label_index): Move.
4885 (find_case_label_range): Move.
4886 (class vrp_asserts): New.
4887 (vrp_asserts::build_assert_expr_for): Rename from vrp_insert.
4888 (vrp_asserts::dump): Same.
4889 (vrp_asserts::register_new_assert_for): Same.
4890 (vrp_asserts::finish_register_edge_assert_for): Same.
4891 (vrp_asserts::find_conditional_asserts): Same.
4892 (vrp_asserts::compare_case_labels): Same.
4893 (vrp_asserts::find_switch_asserts): Same.
4894 (vrp_asserts::find_assert_locations_in_bb): Same.
4895 (vrp_asserts::find_assert_locations): Same.
4896 (vrp_asserts::process_assert_insertions_for): Same.
4897 (vrp_asserts::compare_assert_loc): Same.
4898 (vrp_asserts::process_assert_insertions): Same.
4899 (vrp_asserts::insert_range_assertions): Same.
4900 (vrp_asserts::all_imm_uses_in_stmt_or_feed_cond): Same.
4901 (vrp_asserts::remove_range_assertions): Same.
4902 (class vrp_prop): Move.
4903 (all_imm_uses_in_stmt_or_feed_cond): Move.
4904 (vrp_prop::vrp_initialize): Move.
4905 (class vrp_folder): Move.
4906 (vrp_folder::fold_predicate_in): Move.
4907 (vrp_folder::fold_stmt): Move.
4908 (vrp_prop::initialize): Move.
4909 (vrp_prop::visit_stmt): Move.
4910 (enum ssa_prop_result): Move.
4911 (vrp_prop::visit_phi): Move.
4912 (vrp_prop::finalize): Move.
4913 (class vrp_dom_walker): Rename to...
4914 (class vrp_jump_threader): ...this.
4915 (vrp_jump_threader::before_dom_children): Rename from
4917 (simplify_stmt_for_jump_threading): Rename to...
4918 (vrp_jump_threader::simplify_stmt): ...here.
4919 (vrp_jump_threader::after_dom_children): Same.
4920 (identify_jump_threads): Move.
4921 (vrp_prop::vrp_finalize): Move array bounds setup code to...
4922 (execute_vrp): ...here.
4924 2020-11-13 Andrew MacLeod <amacleod@redhat.com>
4926 * gimple-range.h (gimple_range_handler): Use gimple_assign and
4927 gimple_cond routines to get type and code.
4928 * range-op.cc (range_op_handler): Check for integral types.
4930 2020-11-12 Nelson Chu <nelson.chu@sifive.com>
4932 * configure: Regenerated.
4933 * configure.ac: If ifunc was supported in the binutils for
4934 linux toolchain, then set enable_gnu_indirect_function to yes.
4936 2020-11-12 Joseph Myers <joseph@codesourcery.com>
4938 * doc/cpp.texi (__has_attribute): Document when scopes are allowed
4940 (__has_c_attribute): New.
4942 2020-11-12 Jakub Jelinek <jakub@redhat.com>
4944 * builtin-types.def (BT_FN_PTR_SIZE_SIZE_PTRMODE): New function type.
4945 * omp-builtins.def (BUILT_IN_GOACC_DECLARE): Move earlier.
4946 (BUILT_IN_GOMP_ALLOC, BUILT_IN_GOMP_FREE): New builtins.
4947 * gimplify.c (gimplify_scan_omp_clauses): Force allocator into a
4948 decl if it is not NULL, INTEGER_CST or decl.
4949 (gimplify_adjust_omp_clauses): Clear GOVD_EXPLICIT on explicit clauses
4950 which are being removed. Remove allocate clauses for variables not seen
4951 if they are private, firstprivate or linear too. Call
4952 omp_notice_variable on the allocator otherwise.
4953 (gimplify_omp_for): Handle iterator vars mentioned in allocate clauses
4954 similarly to non-is_gimple_reg iterators.
4955 * omp-low.c (struct omp_context): Add allocate_map field.
4956 (delete_omp_context): Delete it.
4957 (scan_sharing_clauses): Fill it from allocate clauses. Remove it
4958 if mentioned also in shared clause.
4959 (lower_private_allocate): New function.
4960 (lower_rec_input_clauses): Handle allocate clause for privatized
4961 variables, except for task/taskloop, C/C++ array reductions for now
4962 and task/inscan variables.
4963 (lower_send_shared_vars): Don't consider variables in allocate_map
4965 * omp-expand.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
4966 expand_omp_for_static_chunk): Use expand_omp_build_assign instead of
4967 gimple_build_assign + gsi_insert_after.
4968 * builtins.c (builtin_fnspec): Handle BUILTIN_GOMP_ALLOC and
4970 * tree-ssa-ccp.c (evaluate_stmt): Handle BUILTIN_GOMP_ALLOC.
4971 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Handle
4973 (mark_all_reaching_defs_necessary_1): Handle BUILTIN_GOMP_ALLOC
4974 and BUILTIN_GOMP_FREE.
4975 (propagate_necessity): Likewise.
4977 2020-11-12 Martin Jambor <mjambor@suse.cz>
4979 * cgraphclones.c (cgraph_node::materialize_clone): Check that clone
4980 info is not NULL before attempting to dump it.
4982 2020-11-12 Martin Jambor <mjambor@suse.cz>
4984 * ipa-cp.c (class ipcp_value_base): Change the type of
4985 local_time_benefit and prop_time_benefit to sreal. Adjust the
4986 constructor initializer.
4987 (ipcp_lattice::print): Dump sreals.
4988 (struct caller_statistics): Change the type of freq_sum to sreal.
4989 (gather_caller_stats): Work with sreal freq_sum.
4990 (incorporate_penalties): Work with sreal evaluation.
4991 (good_cloning_opportunity_p): Adjusted for sreal sreal time_benefit
4992 and freq_sum. Bail out if size_cost is INT_MAX.
4993 (perform_estimation_of_a_value): Work with sreal time_benefit. Avoid
4994 unnecessary capping.
4995 (estimate_local_effects): Pass sreal time benefit to
4996 good_cloning_opportunity_p without capping it. Adjust dumping.
4997 (safe_add): If there can be overflow, return INT_MAX.
4998 (propagate_effects): Work with sreal times.
4999 (get_info_about_necessary_edges): Work with sreal frequencies.
5000 (decide_about_value): Likewise and with sreal time benefits.
5002 2020-11-12 Marek Polacek <polacek@redhat.com>
5004 * system.h (WARN_UNUSED_RESULT): Define for GCC >= 3.4.
5005 * tree.h (maybe_wrap_with_location): Add WARN_UNUSED_RESULT.
5007 2020-11-12 Jan Hubicka <jh@suse.cz>
5009 * fold-const.c (operand_compare::operand_equal_p): Compare field
5010 offsets in operand_equal_p and OEP_ADDRESS_OF.
5011 (operand_compare::hash_operand): Update.
5013 2020-11-12 Richard Biener <rguenther@suse.de>
5015 * bitmap.c (bitmap_list_view): Restore head->current.
5016 * tree-ssa-pre.c (pre_expr_DFS): Elide expr_visited bitmap.
5017 Special-case value expression bitmaps with one element.
5018 (bitmap_find_leader): Likewise.
5019 (sorted_array_from_bitmap_set): Elide expr_visited bitmap.
5021 2020-11-12 Jan Hubicka <jh@suse.cz>
5023 * attr-fnspec.h: Update topleve comment.
5024 (attr_fnspec::arg_direct_p): Accept 1...9.
5025 (attr_fnspec::arg_maybe_written_p): Reject 1...9.
5026 (attr_fnspec::arg_copied_to_arg_p): New member function.
5027 * builtins.c (builtin_fnspec): Update fnspec of block copy.
5028 * tree-ssa-alias.c (attr_fnspec::verify): Update.
5030 2020-11-12 Richard Biener <rguenther@suse.de>
5032 * tree-ssa-pre.c (bitmap_value_replace_in_set): Return
5033 whether we have changed anything.
5034 (do_pre_regular_insertion): Get topologically sorted array
5035 of expressions from caller.
5036 (do_pre_partial_partial_insertion): Likewise.
5037 (insert): Compute topologically sorted arrays of expressions
5038 here and locally iterate actual insertion. Iterate only
5039 when AVAIL_OUT of an already visited block source changed.
5041 2020-11-12 Alex Coplan <alex.coplan@arm.com>
5044 * config/aarch64/aarch64-sve2.md (@aarch64_sve2_bcax<mode>):
5045 Change to define_expand, add missing (trivially-predicated) not
5046 rtx to fix wrong code bug.
5047 (*aarch64_sve2_bcax<mode>): New.
5049 2020-11-12 Richard Biener <rguenther@suse.de>
5051 PR tree-optimization/97806
5052 * tree-ssa-pre.c (pre_expr_DFS): New overload for visiting
5053 values, visiting all leaders for a value. Use a bitmap
5055 (sorted_array_from_bitmap_set): Walk over values and adjust.
5057 2020-11-12 Andreas Krebbel <krebbel@linux.ibm.com>
5060 * config/s390/vector.md: Support vector floating point modes in
5063 2020-11-12 Andreas Krebbel <krebbel@linux.ibm.com>
5065 * config/s390/vector.md: Rename tointvec to TOINTVEC.
5066 * config/s390/vx-builtins.md: Likewise.
5068 2020-11-12 Jason Merrill <jason@redhat.com>
5071 * dwarf2out.c (gen_subprogram_die): It's a declaration
5072 if DECL_INITIAL isn't set.
5074 2020-11-12 David Malcolm <dmalcolm@redhat.com>
5076 PR tree-optimization/97424
5077 * doc/invoke.texi (Static Analyzer Options): Add
5078 -Wno-analyzer-shift-count-negative and
5079 -Wno-analyzer-shift-count-overflow.
5080 (-Wno-analyzer-shift-count-negative): New.
5081 (-Wno-analyzer-shift-count-overflow): New.
5083 2020-11-11 Iain Sandoe <iain@sandoe.co.uk>
5085 * config/darwin-protos.h (darwin_make_eh_symbol_indirect): New.
5086 * config/darwin.c (darwin_make_eh_symbol_indirect): New. Use
5087 Mach-O semantics for personality and ldsa indirections.
5088 * config/darwin.h (TARGET_ASM_MAKE_EH_SYMBOL_INDIRECT): New.
5089 * doc/tm.texi: Regenerate.
5090 * doc/tm.texi.in: Add TARGET_ASM_MAKE_EH_SYMBOL_INDIRECT hook.
5091 * dwarf2out.c (dwarf2out_do_cfi_startproc): If the target defines
5092 a hook for indirecting personality and ldsa references, use that
5093 otherwise default to ELF semantics.
5094 * target.def (make_eh_symbol_indirect): New target hook.
5096 2020-11-11 Patrick Palka <ppalka@redhat.com>
5099 * common.opt (-fabi-version): Document =15.
5100 * doc/invoke.texi (C++ Dialect Options): Likewise.
5102 2020-11-11 Marek Polacek <polacek@redhat.com>
5105 * tree.c (maybe_wrap_with_location): Don't add a location
5106 wrapper around an artificial and ignored decl.
5108 2020-11-11 Richard Biener <rguenther@suse.de>
5110 PR tree-optimization/97623
5111 * tree-ssa-pre.c (create_expression_by_pieces): Guard
5113 (insert_into_preds_of_block): Likewise.
5115 2020-11-11 Richard Biener <rguenther@suse.de>
5117 * tree-ssa-pre.c (pre_expr_DFS): New function.
5118 (sorted_array_from_bitmap_set): Use it to properly
5119 topologically sort the expression set.
5120 (clean): Verify we've cleaned everything we should.
5122 2020-11-11 Richard Biener <rguenther@suse.de>
5124 PR tree-optimization/97623
5125 * params.opt (-param=max-pre-hoist-insert-iterations): Remove
5127 * doc/invoke.texi (max-pre-hoist-insert-iterations): Likewise.
5128 * tree-ssa-pre.c (insert): Move hoist insertion after PRE
5129 insertion iteration and do not iterate it.
5131 2020-11-11 Richard Sandiford <richard.sandiford@arm.com>
5133 * config/aarch64/aarch64-sve.md (@vcond_mask_<mode><vpred>): Extend
5134 from SVE_FULL to SVE_ALL.
5135 (*vcond_mask_<mode><vpred>): Likewise.
5136 (@aarch64_sel_dup<mode>): Likewise.
5137 (vcond<SVE_FULL:mode><v_int_equiv>): Extend to...
5138 (vcond<SVE_ALL:mode><SVE_I:mode>): ...this, but requiring the
5139 sizes of the container modes to match.
5140 (vcondu<SVE_FULL:mode><v_int_equiv>): Extend to...
5141 (vcondu<SVE_ALL:mode><SVE_I:mode>): ...this.
5142 (vec_cmp<SVE_FULL_I:mode><vpred>): Extend to...
5143 (vec_cmp<SVE_I:mode><vpred>): ...this.
5144 (vec_cmpu<SVE_FULL_I:mode><vpred>): Extend to...
5145 (vec_cmpu<SVE_I:mode><vpred>): ...this.
5146 (@aarch64_pred_cmp<cmp_op><SVE_FULL_I:mode>): Extend to...
5147 (@aarch64_pred_cmp<cmp_op><SVE_I:mode>): ...this.
5148 (*cmp<cmp_op><SVE_FULL_I:mode>_cc): Extend to...
5149 (*cmp<cmp_op><SVE_I:mode>_cc): ...this.
5150 (*cmp<cmp_op><SVE_FULL_I:mode>_ptest): Extend to...
5151 (*cmp<cmp_op><SVE_I:mode>_ptest): ...this.
5152 (*cmp<cmp_op><SVE_FULL_I:mode>_and): Extend to...
5153 (*cmp<cmp_op><SVE_I:mode>_and): ...this.
5155 2020-11-11 Richard Sandiford <richard.sandiford@arm.com>
5157 * optabs-tree.c (expand_vec_cond_expr_p): Allow the compared values
5158 and the selected values to have different mode sizes.
5159 * gimple-isel.cc (gimple_expand_vec_cond_expr): Likewise.
5161 2020-11-11 Hongtao Liu <hongtao.liu@intel.com>
5162 Hongyu Wang <hongyu.wang@intel.com>
5164 * common/config/i386/cpuinfo.h (get_available_features):
5166 * common/config/i386/i386-common.c
5167 (OPTION_MASK_ISA2_AVXVNNI_SET,
5168 OPTION_MASK_ISA2_AVXVNNI_UNSET): New.
5169 (OPTION_MASK_ISA2_AVX2_UNSET): Add AVXVNNI.
5170 (ix86_hanlde_option): Handle -mavxvnni, unset avxvnni when
5172 * common/config/i386/i386-cpuinfo.h (enum processor_features):
5173 Add FEATURE_AVXVNNI.
5174 * common/config/i386/i386-isas.h: Add ISA_NAMES_TABLE_ENTRY
5176 * config.gcc: Add avxvnniintrin.h.
5177 * config/i386/avx512vnnivlintrin.h: Reimplement 128/256 bit non-mask
5178 intrinsics with macros to support unified interface.
5179 * config/i386/avxvnniintrin.h: New header file.
5180 * config/i386/cpuid.h (bit_AVXVNNI): New.
5181 * config/i386/i386-builtins.c (def_builtin): Handle AVXVNNI mask
5182 for unified builtin.
5183 * config/i386/i386-builtin.def (BDESC): Adjust AVX512VNNI
5184 builtins for AVXVNNI.
5185 * config/i386/i386-c.c (ix86_target_macros_internal): Define
5187 * config/i386/i386-expand.c (ix86_expand_builtin): Handle bisa
5188 for AVXVNNI to support unified intrinsic name, since there is no
5189 dependency between AVX512VNNI and AVXVNNI.
5190 * config/i386/i386-options.c (isa2_opts): Add -mavxvnni.
5191 (ix86_valid_target_attribute_inner_p): Handle avxnnni.
5192 (ix86_option_override_internal): Ditto.
5193 * config/i386/i386.h (TARGET_AVXVNNI, TARGET_AVXVNNI_P,
5194 TARGET_AVXVNNI_P, PTA_AVXVNNI): New.
5195 (PTA_SAPPHIRERAPIDS): Add AVX_VNNI.
5196 (PTA_ALDERLAKE): Likewise.
5197 * config/i386/i386.md ("isa"): Add avxvnni, avx512vnnivl.
5198 ("enabled"): Adjust for avxvnni and avx512vnnivl.
5199 * config/i386/i386.opt: Add option -mavxvnni.
5200 * config/i386/immintrin.h: Include avxvnniintrin.h.
5201 * config/i386/sse.md (vpdpbusd_<mode>): Adjust for AVXVNNI.
5202 (vpdpbusds_<mode>): Likewise.
5203 (vpdpwssd_<mode>): Likewise.
5204 (vpdpwssds_<mode>): Likewise.
5205 (vpdpbusd_v16si): New.
5206 (vpdpbusds_v16si): Likewise.
5207 (vpdpwssd_v16si): Likewise.
5208 (vpdpwssds_v16si): Likewise.
5209 * doc/invoke.texi: Document -mavxvnni.
5210 * doc/extend.texi: Document avxvnni.
5211 * doc/sourcebuild.texi: Document target avxvnni.
5213 2020-11-11 Martin Liska <mliska@suse.cz>
5215 * tree.c (copy_node): Fix spelling.
5217 2020-11-11 Richard Biener <rguenther@suse.de>
5219 * tree-ssa-pre.c (phi_translate_set): Do not sort the
5220 expression set topologically.
5222 2020-11-11 Aldy Hernandez <aldyh@redhat.com>
5224 * value-range.cc (irange::set): Early exit on VR_VARYING.
5226 2020-11-11 Zhiheng Xie <xiezhiheng@huawei.com>
5227 Nannan Zheng <zhengnannan@huawei.com>
5229 * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG
5230 for arithmetic operation intrinsics.
5232 2020-11-11 Strager Neds <strager.nds@gmail.com>
5234 * cgraph.h (symtab_node::set_section_for_node): Declare new
5236 (symtab_node::set_section_from_string): Rename from set_section.
5237 (symtab_node::set_section_from_node): Declare.
5238 * symtab.c (symtab_node::set_section_for_node): Define new
5240 (symtab_node::set_section_from_string): Rename from set_section.
5241 (symtab_node::set_section_from_node): Define.
5242 (symtab_node::set_section): Call renamed set_section_from_string.
5243 (symtab_node::set_section): Call new set_section_from_node.
5245 2020-11-11 Strager Neds <strager.nds@gmail.com>
5247 * symtab.c (symtab_node::set_section_for_node): Extract reference
5248 counting logic into ...
5249 (retain_section_hash_entry): ... here (new function) and ...
5250 (release_section_hash_entry): ... here (new function).
5252 2020-11-11 liuhongt <hongtao.liu@intel.com>
5254 * config/i386/i386.h (PTA_MOVDIRI, PTA_MOVDIR64B,
5255 PTA_AMX_TILE, PTA_AMX_INT8, PTA_AMX_BF16, PTA_HRESET):
5258 2020-11-11 Ilya Leoshkevich <iii@linux.ibm.com>
5260 * config/s390/s390.h (HAVE_TF): Use opaque value when
5261 GENERATOR_FILE is defined.
5263 2020-11-10 Strager Neds <strager.nds@gmail.com>
5265 * cgraph.h (symtab_node::get_section): Constify.
5266 (symtab_node::set_section): Declare new overload.
5267 * symtab.c (symtab_node::set_section): Define new overload.
5268 (symtab_node::copy_visibility_from): Use new overload of
5269 symtab_node::set_section.
5270 (symtab_node::resolve_alias): Same.
5271 * tree.h (set_decl_section_name): Declare new overload.
5272 * tree.c (set_decl_section_name): Define new overload.
5273 * tree-emutls.c (get_emutls_init_templ_addr): Same.
5274 * cgraphclones.c (cgraph_node::create_virtual_clone): Use new
5275 overload of symtab_node::set_section.
5276 (cgraph_node::create_version_clone_with_body): Same.
5277 * trans-mem.c (ipa_tm_create_version): Same.
5279 2020-11-10 Aldy Hernandez <aldyh@redhat.com>
5281 * value-range.cc (irange::set): Early exit for poly ints.
5283 2020-11-10 Tobias Burnus <tobias@codesourcery.com>
5285 * gimplify.c (gimplify_scan_omp_clauses, gimplify_omp_loop): Use 'do'
5286 instead of 'for' in error messages for Fortran.
5287 * omp-low.c (check_omp_nesting_restrictions): Likewise
5289 2020-11-10 Matthew Malcomson <matthew.malcomson@arm.com>
5291 * opts.c (control_options_for_live_patching): Reform 'is incompatible
5292 with' error messages to use a standard message with differing format
5294 (finish_options): Likewise.
5296 2020-11-10 Richard Biener <rguenther@suse.de>
5298 PR tree-optimization/97769
5299 * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
5302 2020-11-10 Richard Biener <rguenther@suse.de>
5304 PR tree-optimization/97780
5305 * tree-ssa-pre.c (fini_pre): Deal with added basic blocks
5306 when freeing PHI_TRANS_TABLE.
5308 2020-11-10 Zhiheng Xie <xiezhiheng@huawei.com>
5309 Nannan Zheng <zhengnannan@huawei.com>
5311 * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG
5312 for tbl/tbx intrinsics.
5314 2020-11-10 Chung-Lin Tang <cltang@codesourcery.com>
5316 * gimplify.c (is_or_contains_p): New static helper function.
5317 (omp_target_reorder_clauses): New function.
5318 (gimplify_scan_omp_clauses): Add use of omp_target_reorder_clauses to
5319 reorder clause list according to OpenMP 5.0 rules. Add handling of
5320 GOMP_MAP_ATTACH_DETACH for OpenMP cases.
5321 * omp-low.c (is_omp_target): New static helper function.
5322 (scan_sharing_clauses): Add scan phase handling of GOMP_MAP_ATTACH/DETACH
5324 (lower_omp_target): Add lowering handling of GOMP_MAP_ATTACH/DETACH for
5327 2020-11-10 Ilya Leoshkevich <iii@linux.ibm.com>
5329 * config/s390/s390-modes.def (FPRX2): New mode.
5330 * config/s390/s390-protos.h (s390_fma_allowed_p): New function.
5331 * config/s390/s390.c (s390_fma_allowed_p): Likewise.
5332 (s390_build_signbit_mask): Support 128-bit masks.
5333 (print_operand): Support printing the second word of a TFmode
5334 operand as vector register.
5335 (constant_modes): Add FPRX2mode.
5336 (s390_class_max_nregs): Return 1 for TFmode on z14+.
5337 (s390_is_fpr128): New function.
5338 (s390_is_vr128): Likewise.
5339 (s390_can_change_mode_class): Use s390_is_fpr128 and
5340 s390_is_vr128 in order to determine whether mode refers to a FPR
5342 (s390_emit_compare): Force TFmode operands into registers on
5344 * config/s390/s390.h (HAVE_TF): New macro.
5345 (EXPAND_MOVTF): New macro.
5346 (EXPAND_TF): Likewise.
5347 * config/s390/s390.md (PFPO_OP_TYPE_FPRX2): PFPO_OP_TYPE_TF
5350 (FP_ALL): Add FPRX2 for z14+, restrict TFmode to z13-.
5352 (FP_ANYTF): New mode iterator.
5353 (BFP): Add FPRX2 for z14+, restrict TFmode to z13-.
5366 (HALF_TMODE): Likewise.
5367 (tf_fpr): New mode_attr.
5368 (type): New mode_attr.
5369 (*cmp<mode>_ccz_0): Use type instead of mode with fsimp.
5370 (*cmp<mode>_ccs_0_fastmath): Likewise.
5371 (*cmptf_ccs): New pattern for wfcxb.
5372 (*cmptf_ccsfps): New pattern for wfkxb.
5373 (mov<mode>): Rename to mov<mode><tf_fpr>.
5374 (signbit<mode>2): Rename to signbit<mode>2<tf_fpr>.
5375 (isinf<mode>2): Renamed to isinf<mode>2<tf_fpr>.
5376 (*TDC_insn_<mode>): Use type instead of mode with fsimp.
5377 (fixuns_trunc<FP:mode><GPR:mode>2): Rename to
5378 fixuns_trunc<FP:mode><GPR:mode>2<FP:tf_fpr>.
5379 (fix_trunctf<mode>2): Rename to fix_trunctf<mode>2_fpr.
5380 (floatdi<mode>2): Rename to floatdi<mode>2<tf_fpr>, use type
5381 instead of mode with itof.
5382 (floatsi<mode>2): Rename to floatsi<mode>2<tf_fpr>, use type
5383 instead of mode with itof.
5384 (*floatuns<GPR:mode><FP:mode>2): Use type instead of mode for
5386 (floatuns<GPR:mode><FP:mode>2): Rename to
5387 floatuns<GPR:mode><FP:mode>2<tf_fpr>.
5388 (trunctf<mode>2): Rename to trunctf<mode>2_fpr, use type instead
5390 (extend<DSF:mode><BFP:mode>2): Rename to
5391 extend<DSF:mode><BFP:mode>2<BFP:tf_fpr>.
5392 (<FPINT:fpint_name><BFP:mode>2): Rename to
5393 <FPINT:fpint_name><BFP:mode>2<BFP:tf_fpr>, use type instead of
5395 (rint<BFP:mode>2): Rename to rint<BFP:mode>2<BFP:tf_fpr>, use
5396 type instead of mode with fsimp.
5397 (<FPINT:fpint_name><DFP:mode>2): Use type instead of mode for
5399 (rint<DFP:mode>2): Likewise.
5400 (trunc<BFP:mode><DFP_ALL:mode>2): Rename to
5401 trunc<BFP:mode><DFP_ALL:mode>2<BFP:tf_fpr>.
5402 (trunc<DFP_ALL:mode><BFP:mode>2): Rename to
5403 trunc<DFP_ALL:mode><BFP:mode>2<BFP:tf_fpr>.
5404 (extend<BFP:mode><DFP_ALL:mode>2): Rename to
5405 extend<BFP:mode><DFP_ALL:mode>2<BFP:tf_fpr>.
5406 (extend<DFP_ALL:mode><BFP:mode>2): Rename to
5407 extend<DFP_ALL:mode><BFP:mode>2<BFP:tf_fpr>.
5408 (add<mode>3): Rename to add<mode>3<tf_fpr>, use type instead of
5410 (*add<mode>3_cc): Use type instead of mode with fsimp.
5411 (*add<mode>3_cconly): Likewise.
5412 (sub<mode>3): Rename to sub<mode>3<tf_fpr>, use type instead of
5414 (*sub<mode>3_cc): Use type instead of mode with fsimp.
5415 (*sub<mode>3_cconly): Likewise.
5416 (mul<mode>3): Rename to mul<mode>3<tf_fpr>, use type instead of
5418 (fma<mode>4): Restrict using s390_fma_allowed_p.
5419 (fms<mode>4): Restrict using s390_fma_allowed_p.
5420 (div<mode>3): Rename to div<mode>3<tf_fpr>, use type instead of
5422 (neg<mode>2): Rename to neg<mode>2<tf_fpr>.
5423 (*neg<mode>2_cc): Use type instead of mode with fsimp.
5424 (*neg<mode>2_cconly): Likewise.
5425 (*neg<mode>2_nocc): Likewise.
5426 (*neg<mode>2): Likeiwse.
5427 (abs<mode>2): Rename to abs<mode>2<tf_fpr>, use type instead of
5429 (*abs<mode>2_cc): Use type instead of mode with fsimp.
5430 (*abs<mode>2_cconly): Likewise.
5431 (*abs<mode>2_nocc): Likewise.
5432 (*abs<mode>2): Likewise.
5433 (*negabs<mode>2_cc): Likewise.
5434 (*negabs<mode>2_cconly): Likewise.
5435 (*negabs<mode>2_nocc): Likewise.
5436 (*negabs<mode>2): Likewise.
5437 (sqrt<mode>2): Rename to sqrt<mode>2<tf_fpr>, use type instead
5439 (cbranch<mode>4): Use FP_ANYTF instead of FP.
5440 (copysign<mode>3): Rename to copysign<mode>3<tf_fpr>, use type
5441 instead of mode with fsimp.
5442 * config/s390/s390.opt (flag_vx_long_double_fma): New
5443 undocumented option.
5444 * config/s390/vector.md (V_HW): Add TF for z14+.
5449 (tf_vr): New mode_attr.
5451 (mov<mode>): Rename to mov<mode><tf_vr>.
5452 (movetf): New dispatcher.
5453 (*vec_tf_to_v1tf): Rename to *vec_tf_to_v1tf_fpr, restrict to
5455 (*vec_tf_to_v1tf_vr): New pattern for z14+.
5456 (*fprx2_to_tf): Likewise.
5457 (*mov_tf_to_fprx2_0): Likewise.
5458 (*mov_tf_to_fprx2_1): Likewise.
5459 (add<mode>3): Rename to add<mode>3<tf_vr>.
5460 (addtf3): New dispatcher.
5461 (sub<mode>3): Rename to sub<mode>3<tf_vr>.
5462 (subtf3): New dispatcher.
5463 (mul<mode>3): Rename to mul<mode>3<tf_vr>.
5464 (multf3): New dispatcher.
5465 (div<mode>3): Rename to div<mode>3<tf_vr>.
5466 (divtf3): New dispatcher.
5467 (sqrt<mode>2): Rename to sqrt<mode>2<tf_vr>.
5468 (sqrttf2): New dispatcher.
5469 (fma<mode>4): Restrict using s390_fma_allowed_p.
5470 (fms<mode>4): Likewise.
5471 (neg_fma<mode>4): Likewise.
5472 (neg_fms<mode>4): Likewise.
5473 (neg<mode>2): Rename to neg<mode>2<tf_vr>.
5474 (negtf2): New dispatcher.
5475 (abs<mode>2): Rename to abs<mode>2<tf_vr>.
5476 (abstf2): New dispatcher.
5477 (float<mode>tf2_vr): New forwarder.
5478 (float<mode>tf2): New dispatcher.
5479 (floatuns<mode>tf2_vr): New forwarder.
5480 (floatuns<mode>tf2): New dispatcher.
5481 (fix_trunctf<mode>2_vr): New forwarder.
5482 (fix_trunctf<mode>2): New dispatcher.
5483 (fixuns_trunctf<mode>2_vr): New forwarder.
5484 (fixuns_trunctf<mode>2): New dispatcher.
5485 (<FPINT:fpint_name><VF_HW:mode>2<VF_HW:tf_vr>): New pattern.
5486 (<FPINT:fpint_name>tf2): New forwarder.
5487 (rint<mode>2<tf_vr>): New pattern.
5488 (rinttf2): New forwarder.
5489 (*trunctfdf2_vr): New pattern.
5490 (trunctfdf2_vr): New forwarder.
5491 (trunctfdf2): New dispatcher.
5492 (trunctfsf2_vr): New forwarder.
5493 (trunctfsf2): New dispatcher.
5494 (extenddftf2_vr): New pattern.
5495 (extenddftf2): New dispatcher.
5496 (extendsftf2_vr): New forwarder.
5497 (extendsftf2): New dispatcher.
5498 (signbittf2_vr): New forwarder.
5499 (signbittf2): New dispatchers.
5500 (isinftf2_vr): New forwarder.
5501 (isinftf2): New dispatcher.
5502 * config/s390/vx-builtins.md (*vftci<mode>_cconly): Use VF_HW
5503 instead of VECF_HW, add missing constraint, add vw support.
5504 (vftci<mode>_intcconly): Use VF_HW instead of VECF_HW.
5505 (*vftci<mode>): Rename to vftci<mode>, use VF_HW instead of
5506 VECF_HW, and vw support.
5507 (vftci<mode>_intcc): Use VF_HW instead of VECF_HW.
5509 2020-11-10 Eric Botcazou <ebotcazou@adacore.com>
5511 * range-op.cc (operator_logical_not::fold_range): Tidy up.
5512 (operator_logical_not::op1_range): Call above method.
5513 (operator_bitwise_not::fold_range): If the type is compatible
5514 with boolean, call op_logical_not.fold_range.
5515 (operator_bitwise_not::op1_range): If the type is compatible
5516 with boolean, call op_logical_not.op1_range.
5518 2020-11-10 Richard Biener <rguenther@suse.de>
5520 * tree-ssa-pre.c (pre_expr_d::value_id): Add.
5521 (constant_value_expressions): Turn into an array of pre_expr.
5522 (get_or_alloc_expr_for_nary): New function.
5523 (get_or_alloc_expr_for_reference): Likewise.
5524 (add_to_value): For constant values only ever add a single
5526 (get_expr_value_id): Return the new value_id member.
5527 (vn_valnum_from_value_id): Split out and simplify constant
5529 (get_or_alloc_expr_for_constant): Set the value_id member.
5530 (phi_translate_1): Use get_or_alloc_expr_for_*.
5531 (compute_avail): Likewise.
5532 (bitmap_find_leader): Simplify constant value id handling.
5534 2020-11-10 Alex Coplan <alex.coplan@arm.com>
5536 * doc/md.texi (Modifiers): Fix grammar in description of
5537 earlyclobber constraint modifier.
5539 2020-11-10 Jakub Jelinek <jakub@redhat.com>
5541 PR tree-optimization/97764
5542 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): For
5543 little-endian stores with negative pd.offset, subtract
5544 BITS_PER_UNIT - amnt from size if amnt is non-zero.
5546 2020-11-10 Richard Biener <rguenther@suse.de>
5548 PR tree-optimization/97760
5549 * tree-vect-loop.c (check_reduction_path): Reject
5550 reduction paths we do not handle in epilogue generation.
5552 2020-11-10 Aldy Hernandez <aldyh@redhat.com>
5554 PR tree-optimization/97767
5555 * value-range.cc (dump_bound_with_infinite_markers): Use
5556 wi::min_value and wi::max_value.
5557 (range_tests_strict_enum): New.
5558 (range_tests): Call range_tests_strict_enum.
5559 * value-range.h (irange::varying_p): Use wi::min_value
5561 (irange::set_varying): Same.
5562 (irange::normalize_min_max): Remove comment.
5564 2020-11-10 Andrew MacLeod <amacleod@redhat.com>
5566 PR tree-optimization/97567
5567 * gimple-range-gori.cc: (gori_compute::logical_combine): False
5568 OR operations should intersect the 2 results.
5569 (gori_compute::compute_logical_operands_in_chain): If def chains
5570 are outside the current basic block, don't follow them.
5572 2020-11-09 Claudiu Zissulescu <claziss@synopsys.com>
5574 * config/arc/arc.c (arc_split_move): Recognize vadd2 instructions.
5575 * config/arc/arc.md (movdi_insn): Update pattern to use vadd2
5577 (movdf_insn): Likewise.
5578 (maddhisi4): New pattern.
5579 (umaddhisi4): Likewise.
5580 * config/arc/simdext.md (mov<mode>_int): Update pattern to use
5582 (sdot_prodv4hi): New pattern.
5583 (udot_prodv4hi): Likewise.
5584 (arc_vec_<V_US>mac_hi_v4hi): Update/renamed to
5585 arc_vec_<V_US>mac_v2hiv2si.
5586 (arc_vec_<V_US>mac_v2hiv2si_zero): New pattern.
5587 * config/arc/constraints.md (Ral): Accumulator register
5590 2020-11-09 Aldy Hernandez <aldyh@redhat.com>
5592 * function-tests.c (test_ranges): Call range_op_tests.
5593 * range-op.cc (build_range3): Move to value-range.cc.
5594 (range3_tests): Same.
5595 (int_range_max_tests): Same.
5596 (multi_precision_range_tests): Same.
5597 (range_tests): Same.
5598 (operator_tests): Split up...
5599 (range_op_tests): Split up...
5600 (range_op_cast_tests): ...here.
5601 (range_op_lshift_tests): ...here.
5602 (range_op_rshift_tests): ...here.
5603 (range_op_bitwise_and_tests): ...here.
5604 * selftest.h (range_op_tests): New.
5605 * value-range.cc (build_range3): New.
5606 (range_tests_irange3): New.
5607 (range_tests_int_range_max): New.
5608 (range_tests_legacy): New.
5609 (range_tests_misc): New.
5612 2020-11-09 Richard Biener <rguenther@suse.de>
5614 PR tree-optimization/97761
5615 * tree-vect-slp.c (vect_bb_slp_mark_live_stmts): Remove
5616 premature end of DFS walk.
5618 2020-11-09 Aldy Hernandez <aldyh@redhat.com>
5620 * value-range.cc (irange::swap_out_of_order_endpoints): Rewrite
5621 into static function.
5622 (irange::set): Cleanup redundant manipulations.
5623 * value-range.h (irange::normalize_min_max): Modify object
5624 in-place instead of modifying arguments.
5626 2020-11-09 Andrea Corallo <andrea.corallo@arm.com>
5628 * config/aarch64/aarch64-builtins.c
5629 (aarch64_expand_fcmla_builtin): Do not alter force_reg returned
5632 2020-11-09 Richard Biener <rguenther@suse.de>
5634 PR tree-optimization/97753
5635 * tree-vect-loop.c (vectorizable_induction): Fill vec_steps
5636 when CSEing inside the group.
5638 2020-11-09 Richard Biener <rguenther@suse.de>
5640 PR tree-optimization/97746
5641 * tree-vect-patterns.c (vect_determine_precisions): First walk PHIs.
5643 2020-11-09 Richard Biener <rguenther@suse.de>
5645 * tree-ssa-pre.c (get_representative_for): CSE VN_INFO calls.
5646 (create_expression_by_pieces): Likewise.
5647 (insert_into_preds_of_block): Likewsie.
5648 (do_pre_regular_insertion): Likewsie.
5649 * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_insert):
5651 (eliminate_dom_walker::eliminate_stmt): Likewise.
5653 2020-11-09 Richard Biener <rguenther@suse.de>
5655 PR tree-optimization/97765
5656 * tree-ssa-pre.c (bb_bitmap_sets::phi_translate_table): Add.
5657 (PHI_TRANS_TABLE): New macro.
5658 (phi_translate_table): Remove.
5659 (expr_pred_trans_d::pred): Remove.
5660 (expr_pred_trans_d::hash): Simplify.
5661 (expr_pred_trans_d::equal): Likewise.
5662 (phi_trans_add): Adjust.
5663 (phi_translate): Likewise. Remove hash-table expansion
5664 detection and optimization.
5665 (phi_translate_set): Allocate PHI_TRANS_TABLE here.
5666 (init_pre): Adjsust.
5667 (fini_pre): Free PHI_TRANS_TABLE.
5669 2020-11-09 Lili Cui <lili.cui@intel.com>
5672 * config/i386/i386.h:
5673 (PTA_BROADWELL): Delete PTA_PRFCHW.
5674 (PTA_SILVERMONT): Add PTA_PRFCHW.
5675 (PTA_KNL): Add PTA_PREFETCHWT1.
5676 (PTA_TREMONT): Add PTA_MOVDIRI, PTA_MOVDIR64B, PTA_CLDEMOTE and PTA_WAITPKG.
5677 * doc/invoke.texi: Delete PREFETCHW for broadwell, skylake, knl, knm,
5678 skylake-avx512, cannonlake, icelake-client, icelake-server, cascadelake,
5679 cooperlake, tigerlake and sapphirerapids.
5680 Add PREFETCHW for silvermont, goldmont, goldmont-plus and tremont.
5681 Add XSAVEC and XSAVES for goldmont, goldmont-plus and tremont.
5682 Add MOVDIRI, MOVDIR64B, CLDEMOTE and WAITPKG for tremont.
5683 Add KEYLOCKER and HREST for alderlake.
5684 Add AMX-BF16, AMX-TILE, AMX-INT8 and UINTR for sapphirerapids.
5685 Add KEYLOCKER for tigerlake.
5687 2020-11-09 Kewen Lin <linkw@linux.ibm.com>
5689 PR rtl-optimization/97705
5690 * ira.c (ira): Refactor some regstat free/init/compute invocation
5691 into lambda function regstat_recompute_for_max_regno, and call it
5692 when max_regno increases as remove_scratches succeeds.
5694 2020-11-08 David Edelsohn <dje.gcc@gmail.com>
5696 * config/rs6000/rs6000.c (rs6000_mangle_decl_assembler_name): Change
5697 DECL_IS_BUILTIN -> DECL_IS_UNDECLARED_BUILTIN.
5699 2020-11-07 Martin Uecker <muecker@gwdg.de>
5701 * doc/extend.texi: Document mixing labels and code.
5702 * doc/invoke.texi: Likewise.
5704 2020-11-06 Segher Boessenkool <segher@kernel.crashing.org>
5706 * config/rs6000/rs6000.md (@tablejump<mode>_normal): Don't abuse
5708 (@tablejump<mode>_nospec): Ditto.
5710 2020-11-06 Peter Bergner <bergner@linux.ibm.com>
5712 * config/rs6000/rs6000.h (BIGGEST_ALIGNMENT): Revert previous commit
5713 so as not to break the ABI.
5714 * config/rs6000/rs6000-call.c (rs6000_init_builtins): Set the ABI
5715 mandated alignment for __vector_pair and __vector_quad types.
5717 2020-11-06 Jeff Law <law@torsion.usersys.redhat.com>
5720 * config/i386/i386.md (simple_return): Also check
5721 for ms_hook_prologue function attribute.
5722 * config/i386/i386.c (ix86_can_use_return_insn_p):
5723 Also check for ms_hook_prologue function attribute.
5724 * config/i386/i386-protos.h (ix86_function_ms_hook_prologue): Declare.
5726 2020-11-06 Segher Boessenkool <segher@kernel.crashing.org>
5729 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
5730 TARGET_POWERPC64 instead of TARGET_64BIT.
5732 2020-11-06 Joseph Myers <joseph@codesourcery.com>
5734 * builtins.def (BUILT_IN_NANSD32, BUILT_IN_NANSD64)
5735 (BUILT_IN_NANSD128): New built-in functions.
5736 * fold-const-call.c (fold_const_call): Handle the new built-in
5738 * doc/extend.texi (__builtin_nansd32, __builtin_nansd64)
5739 (__builtin_nansd128): Document.
5740 * doc/sourcebuild.texi (Effective-Target Keywords): Document
5741 fenv_exceptions_dfp.
5743 2020-11-06 Bin Cheng <bin.cheng@linux.alibaba.com>
5745 * tree-ssa-uninit.c (find_var_cmp_const): New function.
5746 (use_pred_not_overlap_with_undef_path_pred): Call above.
5748 2020-11-06 Iain Sandoe <iain@sandoe.co.uk>
5750 * config/darwin-c.c: Allow for Darwin20 to correspond to macOS 11.
5751 * config/darwin-driver.c: Likewise.
5753 2020-11-06 Richard Biener <rguenther@suse.de>
5755 * tree-ssa-pre.c (expr_pred_trans_d): Modify so elements
5756 are embedded rather than allocated. Remove hashval member,
5757 make all members integers.
5758 (phi_trans_add): Adjust accordingly.
5759 (phi_translate): Likewise. Deal with re-allocation
5762 2020-11-06 Andrew MacLeod <amacleod@redhat.com>
5764 PR tree-optimization/97737
5765 PR tree-optimization/97741
5766 * gimple-range.cc: (gimple_ranger::range_of_stmt): Intersect newly
5767 calculated ranges with the existing known global range.
5769 2020-11-06 Darius Galis <darius.galis@cyberthorstudios.com>
5771 * config/rx/rx.md (CTRLREG_PC): Add.
5772 * config/rx/rx.c (CTRLREG_PC): Add
5773 (rx_expand_builtin_mvtc): Add warning: PC register cannot
5776 2020-11-06 Nathan Sidwell <nathan@acm.org>
5778 * tree.h (DECL_IS_BUILTIN): Rename to ...
5779 (DECL_IS_UNDECLARED_BUILTIN): ... here. No need to use SOURCE_LOCUS.
5780 * calls.c (maybe_warn_alloc_args_overflow): Adjust for rename.
5781 * cfgexpand.c (pass_expand::execute): Likewise.
5782 * dwarf2out.c (base_type_die, is_naming_typedef_decl): Likewise.
5783 * godump.c (go_decl, go_type_decl): Likewise.
5784 * print-tree.c (print_decl_identifier): Likewise.
5785 * tree-pretty-print.c (dump_generic_node): Likewise.
5786 * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Likewise.
5787 * xcoffout.c (xcoff_assign_fundamental_type_number): Likewise.
5789 2020-11-06 David Candler <david.candler@arm.com>
5791 * config/aarch64/aarch64-builtins.c
5792 (TYPES_SHIFT2IMM): Add define.
5793 (TYPES_SHIFT2IMM_UUSS): Add define.
5794 (TYPES_USHIFT2IMM): Add define.
5795 * config/aarch64/aarch64-simd.md
5796 (aarch64_<sur>q<r>shr<u>n2_n<mode>): Add new insn for upper saturating shift right.
5797 * config/aarch64/aarch64-simd-builtins.def: Add intrinsics.
5798 * config/aarch64/arm_neon.h:
5799 (vqrshrn_high_n_s16): Expand using intrinsic rather than inline asm.
5800 (vqrshrn_high_n_s32): Likewise.
5801 (vqrshrn_high_n_s64): Likewise.
5802 (vqrshrn_high_n_u16): Likewise.
5803 (vqrshrn_high_n_u32): Likewise.
5804 (vqrshrn_high_n_u64): Likewise.
5805 (vqrshrun_high_n_s16): Likewise.
5806 (vqrshrun_high_n_s32): Likewise.
5807 (vqrshrun_high_n_s64): Likewise.
5808 (vqshrn_high_n_s16): Likewise.
5809 (vqshrn_high_n_s32): Likewise.
5810 (vqshrn_high_n_s64): Likewise.
5811 (vqshrn_high_n_u16): Likewise.
5812 (vqshrn_high_n_u32): Likewise.
5813 (vqshrn_high_n_u64): Likewise.
5814 (vqshrun_high_n_s16): Likewise.
5815 (vqshrun_high_n_s32): Likewise.
5816 (vqshrun_high_n_s64): Likewise.
5818 2020-11-06 Richard Sandiford <richard.sandiford@arm.com>
5820 * config/aarch64/aarch64-modes.def (VNx2BF, VNx4BF): Adjust nunits
5821 and alignment based on the current VG.
5822 * config/aarch64/iterators.md (SVE_ALL, SVE_24, SVE_2, SVE_4): Add
5823 partial SVE BF modes.
5824 (UNSPEC_REVBHW): New unspec.
5825 (Vetype, Vesize, Vctype, VEL, Vel, vwcore, V_INT_CONTAINER)
5826 (v_int_container, VPRED, vpred): Handle partial SVE BF modes.
5827 (container_bits, Vcwtype): New mode attributes.
5828 * config/aarch64/aarch64-sve.md
5829 (@aarch64_sve_revbhw_<SVE_ALL:mode><PRED_HSD:mode>): New pattern.
5830 (@aarch64_sve_dup_lane<mode>): Extended from SVE_FULL to SVE_ALL.
5831 (@aarch64_sve_rev<mode>, @aarch64_sve_<perm_insn><mode>): Likewise.
5832 (@aarch64_sve_ext<mode>): Likewise.
5833 * config/aarch64/aarch64.c (aarch64_classify_vector_mode): Handle
5834 E_VNx2BFmode and E_VNx4BFmode.
5835 (aarch64_evpc_rev_local): Base the analysis on the container size
5836 instead of the element size. Use the new aarch64_sve_revbhw
5838 (aarch64_evpc_dup): Handle partial SVE data modes. Use the
5839 container size instead of the element size when applying the
5840 SVE immediate limit. Fix a previously incorrect bounds check.
5841 (aarch64_expand_vec_perm_const_1): Handle partial SVE data modes.
5843 2020-11-06 Martin Liska <mliska@suse.cz>
5845 * common.opt: Add new -fbit-tests option.
5846 * doc/invoke.texi: Document the option.
5847 * tree-switch-conversion.c (bit_test_cluster::find_bit_tests):
5849 * tree-switch-conversion.h (is_enabled): New function.
5851 2020-11-06 Richard Biener <rguenther@suse.de>
5853 * tree-ssa-sccvn.h (get_max_constant_value_id): Declare.
5854 (get_next_constant_value_id): Likewise.
5855 (value_id_constant_p): Inline and simplify.
5856 * tree-ssa-sccvn.c (constant_value_ids): Remove.
5857 (next_constant_value_id): Add.
5858 (get_or_alloc_constant_value_id): Adjust.
5859 (value_id_constant_p): Remove definition.
5860 (get_max_constant_value_id): Define.
5861 (get_next_value_id): Add assert for overflow.
5862 (get_next_constant_value_id): Define.
5863 (run_rpo_vn): Adjust.
5864 (free_rpo_vn): Likewise.
5865 (do_rpo_vn): Initialize next_constant_value_id.
5866 * tree-ssa-pre.c (constant_value_expressions): New.
5867 (add_to_value): Split into constant/non-constant value
5868 handling. Avoid exact re-allocation.
5869 (vn_valnum_from_value_id): Adjust.
5870 (phi_translate_1): Remove spurious exact re-allocation.
5871 (bitmap_find_leader): Adjust. Make sure we return
5872 a CONSTANT value for a constant value id.
5873 (do_pre_regular_insertion): Use 2 auto-elements for avail.
5874 (do_pre_partial_partial_insertion): Likewise.
5875 (init_pre): Allocate constant_value_expressions.
5876 (fini_pre): Release constant_value_expressions.
5878 2020-11-06 Richard Biener <rguenther@suse.de>
5880 PR tree-optimization/97706
5881 * tree-vect-patterns.c (possible_vector_mask_operation_p):
5882 PHIs are possible mask operations.
5883 (vect_determine_mask_precision): Handle PHIs.
5884 (vect_determine_precisions): Walk PHIs in BB analysis.
5886 2020-11-06 Richard Biener <rguenther@suse.de>
5888 * tree-vect-slp.c (vect_analyze_slp): Pass down the
5889 SLP graph entry kind.
5890 (vect_analyze_slp_instance): Simplify.
5891 (vect_build_slp_instance): Adjust.
5892 (vect_slp_check_for_constructors): Perform more
5893 eligibility checks here.
5895 2020-11-06 Jan Hubicka <jh@suse.cz>
5897 * ipa-ref.h (enum ipa_ref_use): Remove GTY marker.
5898 (struct ipa_ref): Remove GTY marker; reorder for better packing.
5899 (struct ipa_ref_list): Remove GTY marker; turn references
5900 nad referring to va_heap, vl_ptr vectors; update accesors.
5901 * cgraph.h (symtab_node::iterate_reference): Update.
5902 * ipa-ref.c (ipa_ref::remove_reference): Update.
5903 * symtab.c (symtab_node::create_reference): Update.
5904 (symtab_node::remove_all_references): Update.
5905 (symtab_node::resolve_alias): Update.
5907 2020-11-06 Jakub Jelinek <jakub@redhat.com>
5909 * ipa-modref-tree.h: Fix comment typos.
5910 * ipa-modref.c: Likewise.
5912 2020-11-06 Andreas Krebbel <krebbel@linux.ibm.com>
5914 * config/s390/s390.c (s390_option_override_internal): Remove
5915 override of inline params.
5917 2020-11-06 Richard Biener <rguenther@suse.de>
5919 PR tree-optimization/97706
5920 * tree-vect-patterns.c (vect_determine_mask_precision):
5921 Remove worklist operation.
5922 (vect_determine_stmt_precisions): Do not call
5923 vect_determine_mask_precision here.
5924 (vect_determine_precisions): Compute mask precision
5927 2020-11-06 Richard Biener <rguenther@suse.de>
5929 PR tree-optimization/97732
5930 * tree-vect-loop.c (vectorizable_induction): Convert the
5931 init elements to the vector component type.
5932 * gimple-fold.c (gimple_build_vector): Use CONSTANT_CLASS_P
5933 rather than TREE_CONSTANT to determine if elements are
5934 eligible for VECTOR_CSTs.
5936 2020-11-06 Jan Hubicka <jh@suse.cz>
5938 * attr-fnspec.h (attr_fnspec::get_str): New accessor
5939 * ipa-fnsummary.c (read_ipa_call_summary): Store also parm info
5941 * ipa-modref.c (class fnspec_summary): New type.
5942 (class fnspec_summaries_t): New type.
5943 (modref_summary::modref_summary): Initialize writes_errno.
5944 (struct modref_summary_lto): Add writes_errno.
5945 (modref_summary_lto::modref_summary_lto): Initialize writes_errno.
5946 (modref_summary::dump): Check for NULL pointers.
5947 (modref_summary_lto::dump): Dump writes_errno.
5948 (collapse_loads): Move up in source file.
5949 (collapse_stores): New function.
5950 (process_fnspec): Handle also internal calls.
5951 (analyze_call): Likewise.
5952 (analyze_stmt): Store fnspec string if needed.
5953 (analyze_function): Initialize fnspec_sumarries.
5954 (modref_summaries_lto::duplicate): Copy writes_errno.
5955 (modref_write): Store writes_errno and fnspec summaries.
5956 (read_section): Read writes_errno and fnspec summaries.
5957 (modref_read): Initialize fnspec summaries.
5958 (update_signature): Fix formating.
5959 (compute_parm_map): Return true if sucessful.
5960 (get_parm_type): New function.
5961 (get_access_for_fnspec): New function.
5962 (propagate_unknown_call): New function.
5963 (modref_propagate_in_scc): Use it.
5964 (pass_ipa_modref::execute): Delete fnspec_summaries.
5965 (ipa_modref_c_finalize): Delete fnspec_summaries.
5966 * ipa-prop.c: Include attr-fnspec.h.
5967 (ipa_compute_jump_functions_for_bb): Also compute jump functions
5968 for functions with fnspecs.
5969 (ipa_read_edge_info): Read jump functions for builtins.
5971 2020-11-06 Jan Hubicka <jh@suse.cz>
5973 * ipa-fnsummary.h (class size_time_entry): Do not GTY annotate.
5974 (class ipa_fnsummary): Turn size_time_table to auto_vec and
5975 call_size_time_table to effecient vec; update constructors.
5976 * ipa-fnsummary.c (ipa_fn_summary::account_size_time): Update.
5977 (ipa_fn_summary::~ipa_fn_summary): Update.
5978 (ipa_fn_summary_t::duplicate): Update.
5979 (ipa_dump_fn_summary): Update.
5980 (set_switch_stmt_execution_predicate): Update.
5981 (analyze_function_body): Update.
5982 (estimate_calls_size_and_time): Update.
5983 (ipa_call_context::estimate_size_and_time): Update.
5984 (ipa_merge_fn_summary_after_inlining): Update.
5985 (ipa_update_overall_fn_summary): Update.
5986 (inline_read_section): Update.
5987 (ipa_fn_summary_write): Update.
5989 2020-11-06 Richard Biener <rguenther@suse.de>
5991 PR tree-optimization/97733
5992 * tree-vect-slp.c (vect_analyze_slp_instance): If less
5993 than two reductions were relevant or live do nothing.
5995 2020-11-06 Jeff Law <law@redhat.com>
5997 PR tree-optimization/97223
5998 * match.pd (overflow detection and optimization): Handle conversions.
6000 2020-11-06 Eugene Rozenfeld <erozen@microsoft.com>
6002 * match.pd (x >> x): New pattern.
6004 2020-11-06 Kito Cheng <kito.cheng@sifive.com>
6006 * common/config/riscv/riscv-common.c (riscv_implied_info):
6007 Add static and const.
6008 (riscv_subset_list::handle_implied_ext): Add const due to
6009 riscv_implied_info changed to const.
6011 2020-11-06 Kito Cheng <kito.cheng@sifive.com>
6014 * toplev.c (process_options): Remove param_asan_stack checking for kasan
6017 2020-11-05 Marek Polacek <polacek@redhat.com>
6020 * doc/invoke.texi: Document -Wexceptions.
6022 2020-11-05 Marek Polacek <polacek@redhat.com>
6025 * doc/invoke.texi: Document -Wvexing-parse.
6027 2020-11-05 Andrew MacLeod <amacleod@redhat.com>
6029 PR tree-optimization/97725
6030 * range-op.cc (operator_equal::fold_range): Use new tmp value.
6031 (operator_not_equal::fold_range): Ditto.
6032 * value-query.cc (range_query::value_of_expr): Use int_range_max
6034 (range_query::value_on_edge): Ditto.
6035 (range_query::value_of_stmt): Ditto.
6037 2020-11-05 Olivier Hainque <hainque@adacore.com>
6039 * config/aarch64/aarch64-vxworks.h (TARGET_OS_USES_R18):
6041 (STATIC_CHAIN_REGNUM): Redefine to 9.
6043 2020-11-05 Olivier Hainque <hainque@adacore.com>
6045 * config/aarch64/aarch64.md: Define PROBE_STACK_FIRST_REGNUM
6046 and PROBE_STACK_SECOND_REGNUM constants, designating r10/r11.
6047 Replacements for the PROBE_STACK_FIRST/SECOND_REG constants in
6049 * config/aarch64/aarch64.c (PROBE_STACK_FIRST_REG): Remove.
6050 (PROBE_STACK_SECOND_REG): Remove.
6051 (aarch64_emit_probe_stack_range): Adjust to the _REG -> _REGNUM
6052 suffix update for PROBE_STACK register numbers.
6054 2020-11-05 Jan Hubicka <jh@suse.cz>
6056 * gimple.c (gimple_call_fnspec): Handle C++ new and delete.
6057 * gimple.h (gimple_call_from_new_or_delete): Constify parameter.
6059 2020-11-05 Aldy Hernandez <aldyh@redhat.com>
6061 PR tree-optimization/97721
6062 * gimple-range.cc (get_tree_range): Drop overflow from constants.
6064 2020-11-05 David Malcolm <dmalcolm@redhat.com>
6066 * tree-diagnostic-path.cc (struct path_summary::event_range): Move
6067 out of path_summary to...
6068 (struct event_range): ...here.
6069 (class path_summary): Convert to...
6070 (struct path_summary): ...this.
6071 (path_summary::m_ranges): Drop "private".
6072 (path_summary::print): Convert to...
6073 (print_path_summary_as_text): ...this, passing in the path_summary
6075 (default_tree_diagnostic_path_printer): Update for above change.
6076 (selftest::test_empty_path): Likewise.
6077 (selftest::test_intraprocedural_path): Likewise.
6078 (selftest::test_interprocedural_path_1): Likewise.
6079 (selftest::test_interprocedural_path_2): Likewise.
6080 (selftest::test_recursion): Likewise.
6082 2020-11-05 qing zhao <qinzhao@gcc.gnu.org>
6085 * config/i386/i386.c (zero_all_st_registers): Return
6086 earlier when the FPU is disabled.
6088 2020-11-05 Jan Hubicka <jh@suse.cz>
6090 * ipa-modref.c (parm_map_for_arg): Initialize parm_offset and
6092 (read_section): Set writes_errno to false.
6094 2020-11-05 Richard Biener <rguenther@suse.de>
6096 * tree-vect-data-refs.c (vect_slp_analyze_node_dependences):
6097 Use the original stmts.
6098 (vect_slp_analyze_node_alignment): Use the pattern stmt.
6099 * tree-vect-slp.c (vect_fixup_store_groups_with_patterns):
6101 (vect_slp_analyze_bb_1): Call it.
6103 2020-11-05 Tamar Christina <tamar.christina@arm.com>
6105 * tree-vect-slp.c (vect_slp_tree_permute_noop_p): New.
6106 (vect_optimize_slp): Optimize permutes.
6107 (vectorizable_slp_permutation): Fix typo.
6109 2020-11-05 Richard Biener <rguenther@suse.de>
6112 * dwarf2out.c (add_abstract_origin_attribute): Make sure to
6113 point to the abstract instance.
6115 2020-11-05 Tamar Christina <tamar.christina@arm.com>
6117 * tree-vect-loop.c (vect_analyze_loop_2): Check kind.
6118 * tree-vect-slp.c (vect_build_slp_instance): New.
6119 (enum slp_instance_kind): Move to...
6120 * tree-vectorizer.h (enum slp_instance_kind): .. Here
6121 (SLP_INSTANCE_KIND): New.
6123 2020-11-05 Kewen Lin <linkw@linux.ibm.com>
6126 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Use direct move
6127 instructions for vector construction with char/short types.
6128 * config/rs6000/rs6000.md (p8_mtvsrwz_v16qisi2): New define_insn.
6129 (p8_mtvsrd_v16qidi2): Likewise.
6131 2020-11-04 Tamar Christina <tamar.christina@arm.com>
6133 * tree-vect-slp.c (vect_analyze_slp_instance): Moved load/store lanes
6135 * tree-vect-loop.c (vect_analyze_loop_2): ..Here
6137 2020-11-04 Ilya Leoshkevich <iii@linux.ibm.com>
6139 * config/s390/s390.c (NR_C_MODES): Unhardcode.
6140 (s390_alloc_pool): Use size_t for iterating from 0 to
6142 (s390_add_constant): Likewise.
6143 (s390_find_constant): Likewise.
6144 (s390_dump_pool): Likewise.
6145 (s390_free_pool): Likewise.
6147 2020-11-04 Ilya Leoshkevich <iii@linux.ibm.com>
6149 * config/s390/s390.md (RRe): Remove.
6152 2020-11-04 Andrew MacLeod <amacleod@redhat.com>
6154 PR tree-optimization/97515
6155 * gimple-range-cache.h (class ranger_cache): New prototypes plus
6156 temporal cache pointer.
6157 * gimple-range-cache.cc (struct range_timestamp): New.
6158 (class temporal_cache): New.
6159 (temporal_cache::temporal_cache): New.
6160 (temporal_cache::~temporal_cache): New.
6161 (temporal_cache::get_timestamp): New.
6162 (temporal_cache::set_dependency): New.
6163 (temporal_cache::temporal_value): New.
6164 (temporal_cache::current_p): New.
6165 (temporal_cache::set_timestamp): New.
6166 (temporal_cache::set_always_current): New.
6167 (ranger_cache::ranger_cache): Allocate the temporal cache.
6168 (ranger_cache::~ranger_cache): Free temporal cache.
6169 (ranger_cache::get_non_stale_global_range): New.
6170 (ranger_cache::set_global_range): Add a timestamp.
6171 (ranger_cache::register_dependency): New. Add timestamp dependency.
6172 * gimple-range.cc (gimple_ranger::range_of_range_op): Add operand
6174 (gimple_ranger::range_of_phi): Ditto.
6175 (gimple_ranger::range_of_stmt): Check if global range is stale, and
6178 2020-11-04 Tobias Burnus <tobias@codesourcery.com>
6180 * targhooks.c (default_zero_call_used_regs): Fix flag-name typo
6183 2020-11-04 Richard Biener <rguenther@suse.de>
6185 * tree-vectorizer.h (vectorizable_phi): Adjust prototype.
6186 * tree-vect-stmts.c (vect_transform_stmt): Adjust.
6187 (vect_analyze_stmt): Pass cost_vec to vectorizable_phi.
6188 * tree-vect-loop.c (vectorizable_phi): Do costing.
6190 2020-11-04 Richard Biener <rguenther@suse.de>
6192 PR tree-optimization/97709
6193 * tree-vect-loop.c (vectorizable_live_operation): Set
6194 SSA_NAME_OCCURS_IN_ABNORMAL_PHI when necessary.
6196 2020-11-04 Jakub Jelinek <jakub@redhat.com>
6198 PR tree-optimization/97690
6199 * tree-ssa-phiopt.c (conditional_replacement): Also optimize
6200 cond ? pow2p_cst : 0 as ((type) cond) << cst.
6202 2020-11-04 Richard Biener <rguenther@suse.de>
6204 * tree-vect-loop.c (vectorizable_induction): Re-instantiate
6205 previously removed CSE of SLP IVs.
6207 2020-11-04 Uroš Bizjak <ubizjak@gmail.com>
6209 * config/i386/i386-options.c (ix86_recompute_optlev_based_flags):
6210 Fix Intel MCU psABI comment w.r.t DEFAULT_PCC_STRUCT_RETURN.
6212 2020-11-04 Richard Biener <rguenther@suse.de>
6215 * tree-vect-slp.c (vect_build_slp_tree_2): Revert previous
6216 fix and instead adjust the memset.
6218 2020-11-04 Pat Bernardi <bernardi@adacore.com>
6220 * config/i386/i386elf.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
6221 (ASM_OUTPUT_ASCII): Likewise.
6222 (DEFAULT_PCC_STRUCT_RETURN): Define.
6223 * config/i386/i386.c (ix86_return_in_memory): Remove
6224 SUBTARGET_RETURN_IN_MEMORY.
6226 2020-11-04 liuhongt <hongtao.liu@intel.com>
6229 * ira.c: (ira_setup_alts): Extract memory from operand only
6230 for special memory constraint.
6231 * recog.c (asm_operand_ok): Ditto.
6232 * lra-constraints.c (process_alt_operands): MEM_P is
6233 required for normal memory constraint.
6235 2020-11-04 liuhongt <hongtao.liu@intel.com>
6238 * lra-constraints.c (valid_address_p): Handle operand of
6239 special memory constraint.
6240 (process_address_1): Ditto.
6242 2020-11-03 Jan Hubicka <hubicka@ucw.cz>
6245 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Fix ICE with
6247 (cgraph_node::remove): Save clone info before releasing it and pass it
6249 * cgraph.h (symtab_node::unregister): Add clone_info parameter.
6250 (cgraph_clone::unregister): Likewise.
6251 * cgraphclones.c (cgraph_node::find_replacement): Copy clone info
6252 * symtab-clones.cc (clone_infos_t::duplicate): Remove.
6253 (clone_info::get_create): Simplify.
6254 * symtab.c (symtab_node::unregister): Pass around clone info.
6255 * varpool.c (varpool_node::remove): Update.
6257 2020-11-03 Thomas Schwinge <thomas@codesourcery.com>
6259 * omp-low.c (scan_omp_for) <OpenACC>: Use proper location to
6260 'inform' of enclosing parent compute construct.
6262 2020-11-03 Jan Hubicka <hubicka@ucw.cz>
6265 * cgraphclones.c (duplicate_thunk_for_node): Check that info is
6268 2020-11-03 Uroš Bizjak <ubizjak@gmail.com>
6270 * config/i386/i386.c (ix86_function_arg_regno_p): Use up to
6271 SSE_REGPARM_MAX registers to pass function parameters
6272 for 32bit Mach-O targets.
6273 * config/i386/i386.h (X86_32_MMX_REGPARM_MAX): New macro.
6274 (MMX_REGPARM_MAX): Use it.
6276 2020-11-03 Dennis Zhang <dennis.zhang@arm.com>
6278 * config/aarch64/aarch64-simd-builtins.def (vget_lo_half): New entry.
6279 (vget_hi_half): Likewise.
6280 * config/aarch64/aarch64-simd.md (aarch64_vget_lo_halfv8bf): New entry.
6281 (aarch64_vget_hi_halfv8bf): Likewise.
6282 * config/aarch64/arm_neon.h (vget_low_bf16): New intrinsic.
6283 (vget_high_bf16): Likewise.
6285 2020-11-03 Yang Yang <yangyang305@huawei.com>
6287 * cgraph.h (struct cgraph_simd_clone): Change field "simdlen" of
6288 struct cgraph_simd_clone from unsigned int to poly_uint64.
6289 * config/aarch64/aarch64.c
6290 (aarch64_simd_clone_compute_vecsize_and_simdlen): adaptation of
6291 operations on "simdlen".
6292 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
6293 Printf formats update.
6294 * gengtype.c (main): Handle poly_uint64.
6295 * omp-simd-clone.c (simd_clone_mangle): Likewise.Re
6296 (simd_clone_adjust_return_type): Likewise.
6297 (create_tmp_simd_array): Likewise.
6298 (simd_clone_adjust_argument_types): Likewise.
6299 (simd_clone_init_simd_arrays): Likewise.
6300 (ipa_simd_modify_function_body): Likewise.
6301 (simd_clone_adjust): Likewise.
6302 (expand_simd_clones): Likewise.
6303 * poly-int-types.h (vector_unroll_factor): New macro.
6304 * poly-int.h (constant_multiple_p): Add two-argument versions.
6305 * tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise.
6307 2020-11-03 Richard Biener <rguenther@suse.de>
6309 PR tree-optimization/97623
6310 * params.opt (-param=max-pre-hoist-insert-iterations): New.
6311 * doc/invoke.texi (max-pre-hoist-insert-iterations): Document.
6312 * tree-ssa-pre.c (insert): Do at most max-pre-hoist-insert-iterations
6313 hoist insert iterations.
6315 2020-11-03 Richard Biener <rguenther@suse.de>
6318 * gimple-isel.cc (gimple_expand_vec_cond_expr): Use
6319 the correct types for the vcond_mask/vec_cmp optab queries.
6321 2020-11-03 Andrew MacLeod <amacleod@redhat.com>
6323 * gimple-range-cache.cc (ssa_global_cache::get_global_range): Return
6324 true if there was a previous range set.
6325 (ranger_cache::ranger_cache): Take a gimple_ranger parameter.
6326 (ranger_cache::set_global_range): Propagate the value if updating.
6327 (ranger_cache::propagate_cache): Renamed from iterative_cache_update.
6328 (ranger_cache::propagate_updated_value): New. Split from:
6329 (ranger_cache::fill_block_cache): Split out value propagator.
6330 * gimple-range-cache.h (ssa_global_cache): Update prototypes.
6331 (ranger_cache): Update prototypes.
6333 2020-11-03 Andrew MacLeod <amacleod@redhat.com>
6335 * gimple-range-cache.h (block_range_cache): Add new entry point.
6336 (ranger_cache): Privatize global abnd block cache members.
6337 * gimple-range-cache.cc (ssa_block_ranges::set_bb_range): Add bounds
6339 (ssa_block_ranges::set_bb_varying): Ditto.
6340 (ssa_block_ranges::get_bb_range): Ditto.
6341 (ssa_block_ranges::bb_range_p): Ditto.
6342 (block_range_cache::get_block_ranges): Fix formatting.
6343 (block_range_cache::query_block_ranges): New.
6344 (block_range_cache::get_bb_range): Use Query_block_ranges.
6345 (block_range_cache::bb_range_p): Ditto.
6346 (ranger_cache::dump): New.
6347 (ranger_cache::get_global_range): New.
6348 (ranger_cache::set_global_range): New.
6349 * gimple-range.cc (gimple_ranger::range_of_expr): Use new API.
6350 (gimple_ranger::range_of_stmt): Ditto.
6351 (gimple_ranger::export_global_ranges): Ditto.
6352 (gimple_ranger::dump): Ditto.
6354 2020-11-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
6356 * fold-const.c (getbyterep): Remove duplicated statement.
6358 2020-11-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
6361 * cfgexpand.c (align_local_variable): Make SSA_NAMEs
6362 at least MODE_ALIGNED.
6363 (expand_one_stack_var_at): Increase MEM_ALIGN for SSA_NAMEs.
6365 2020-11-03 Zhiheng Xie <xiezhiheng@huawei.com>
6366 Nannan Zheng <zhengnannan@huawei.com>
6368 * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG
6369 for AES/SHA/SM3/SM4 intrinsics.
6371 2020-11-03 Zhiheng Xie <xiezhiheng@huawei.com>
6372 Nannan Zheng <zhengnannan@huawei.com>
6374 * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG
6375 for compare intrinsics.
6377 2020-11-03 Richard Biener <rguenther@suse.de>
6379 * dwarf2out.c (maybe_create_die_with_external_ref): Remove
6382 2020-11-03 Andrea Corallo <andrea.corallo@arm.com>
6384 * config/arm/arm_neon.h (vst2_lane_bf16, vst2q_lane_bf16)
6385 (vst3_lane_bf16, vst3q_lane_bf16, vst4_lane_bf16)
6386 (vst4q_lane_bf16): New intrinsics.
6387 * config/arm/arm_neon_builtins.def: Touch it for:
6388 __builtin_neon_vst2_lanev4bf, __builtin_neon_vst2_lanev8bf,
6389 __builtin_neon_vst3_lanev4bf, __builtin_neon_vst3_lanev8bf,
6390 __builtin_neon_vst4_lanev4bf,__builtin_neon_vst4_lanev8bf.
6392 2020-11-03 Andrea Corallo <andrea.corallo@arm.com>
6394 * config/arm/arm_neon.h (vld2_lane_bf16, vld2q_lane_bf16)
6395 (vld3_lane_bf16, vld3q_lane_bf16, vld4_lane_bf16)
6396 (vld4q_lane_bf16): Add intrinsics.
6397 * config/arm/arm_neon_builtins.def: Touch for:
6398 __builtin_neon_vld2_lanev4bf, __builtin_neon_vld2_lanev8bf,
6399 __builtin_neon_vld3_lanev4bf, __builtin_neon_vld3_lanev8bf,
6400 __builtin_neon_vld4_lanev4bf, __builtin_neon_vld4_lanev8bf.
6401 * config/arm/iterators.md (VQ_HS): Add V8BF to the iterator.
6403 2020-11-03 Andrea Corallo <andrea.corallo@arm.com>
6405 * config/arm/arm_neon.h (vst1_bf16, vst1q_bf16): Add intrinsics.
6406 * config/arm/arm_neon_builtins.def : Touch for:
6407 __builtin_neon_vst1v4bf, __builtin_neon_vst1v8bf.
6409 2020-11-03 Andrea Corallo <andrea.corallo@arm.com>
6411 * config/arm/arm-builtins.c (VAR14): Define macro.
6412 * config/arm/arm_neon_builtins.def: Touch for:
6413 __builtin_neon_vld1v4bf, __builtin_neon_vld1v8bf.
6414 * config/arm/arm_neon.h (vld1_bf16, vld1q_bf16): Add intrinsics.
6416 2020-11-03 Andrea Corallo <andrea.corallo@arm.com>
6418 * config/arm/arm_neon.h (vst1_lane_bf16, vst1q_lane_bf16): Add
6420 * config/arm/arm_neon_builtins.def (STORE1LANE): Add v4bf, v8bf.
6422 2020-11-03 Andrea Corallo <andrea.corallo@arm.com>
6424 * config/arm/arm_neon_builtins.def: Add to LOAD1LANE v4bf, v8bf.
6425 * config/arm/arm_neon.h (vld1_lane_bf16, vld1q_lane_bf16): Add
6428 2020-11-03 Richard Biener <rguenther@suse.de>
6431 * tree-vect-slp.c (vect_build_slp_tree_2): Scale
6432 allocation of skip_args by sizeof (bool).
6434 2020-11-03 Richard Biener <rguenther@suse.de>
6436 PR tree-optimization/80928
6437 * tree-vect-loop.c (vectorizable_induction): SLP vectorize
6440 2020-11-03 Jan Hubicka <hubicka@ucw.cz>
6443 * ipa-inline-transform.c (maybe_materialize_called_clones): New
6445 (inline_transform): Use it.
6447 2020-11-03 Richard Biener <rguenther@suse.de>
6449 PR tree-optimization/97678
6450 * tree-vect-slp.c (vect_build_slp_tree_2): Do not track
6451 the initial values of inductions when not nested.
6452 * tree-vect-loop.c (vectorizable_induction): Look at
6453 PHI node initial values again for SLP and not nested
6454 inductions. Handle LOOP_VINFO_MASK_SKIP_NITERS and cost
6457 2020-11-03 Uroš Bizjak <ubizjak@gmail.com>
6459 * config/i386/sse.md (aes<aeswideklvariant>u8):
6460 Do not use xmm_regs array. Fix whitespace.
6462 2020-11-03 Uroš Bizjak <ubizjak@gmail.com>
6464 * config/i386/i386-expand.c (ix86_expand_builtin): Fix comment.
6466 2020-11-03 Thomas Schwinge <thomas@codesourcery.com>
6468 * omp-low.c (scan_omp_for) <OpenACC>: Move earlier inconsistent
6469 nested 'reduction' clauses checking.
6471 2020-11-03 Thomas Schwinge <thomas@codesourcery.com>
6473 * omp-low.c (scan_omp_for) <OpenACC>: More precise diagnostics for
6474 'gang', 'worker', 'vector' clauses with arguments only allowed in
6477 2020-11-03 Kewen Lin <linkw@gcc.gnu.org>
6479 PR tree-optimization/96789
6480 * function.h (struct function): New member unsigned pending_TODOs.
6481 * passes.c (class pass_pre_slp_scalar_cleanup): New class.
6482 (make_pass_pre_slp_scalar_cleanup): New function.
6483 (pass_data_pre_slp_scalar_cleanup): New pass data.
6484 * passes.def: (pass_pre_slp_scalar_cleanup): New pass, add
6485 pass_fre and pass_dse as its children.
6486 * timevar.def (TV_SCALAR_CLEANUP): New timevar.
6487 * tree-pass.h (PENDING_TODO_force_next_scalar_cleanup): New
6489 (make_pass_pre_slp_scalar_cleanup): New declare.
6490 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1):
6491 Once any outermost loop gets unrolled, flag cfun pending_TODOs
6492 PENDING_TODO_force_next_scalar_cleanup on.
6494 2020-11-02 Alan Modra <amodra@gmail.com>
6497 * calls.h (maybe_complain_about_tail_call): Declare.
6498 * calls.c (maybe_complain_about_tail_call): Make global.
6499 (can_implement_as_sibling_call_p): Delete reg_parm_stack_space
6500 param. Adjust caller. Move REG_PARM_STACK_SPACE check to..
6501 * config/i386/i386.c (ix86_function_ok_for_sibcall): ..here.
6503 2020-11-02 Vladimir N. Makarov <vmakarov@redhat.com>
6505 * ira.c (ira_remove_scratches): Rename to remove_scratches. Make
6506 it static and returning flag of any change.
6507 (ira.c): Call ira_expand_reg_equiv in case of removing scratches.
6509 2020-11-02 H.J. Lu <hjl.tools@gmail.com>
6512 * config/i386/i386-expand.c (ix86_expand_builtin): Require MMX
6513 for __builtin_ia32_maskmovq.
6515 2020-11-02 Martin Sebor <msebor@redhat.com>
6517 * doc/invoke.texi (-Wstringop-overflow): Correct default setting.
6518 (-Wstringop-overread): Move past -Wstringop-overflow.
6520 2020-11-02 François-Xavier Coudert <fxcoudert@gcc.gnu.org>
6523 * Makefile.in (gcc-vers.texi): Quote @, { and }.
6525 2020-11-02 Carl Love <cel@us.ibm.com>
6528 * config/rs6000/altivec.h (__builtin_bcdadd, __builtin_bcdadd_lt,
6529 __builtin_bcdadd_eq, __builtin_bcdadd_gt, __builtin_bcdadd_ofl,
6530 __builtin_bcdadd_ov, __builtin_bcdsub, __builtin_bcdsub_lt,
6531 __builtin_bcdsub_eq, __builtin_bcdsub_gt, __builtin_bcdsub_ofl,
6532 __builtin_bcdsub_ov, __builtin_bcdinvalid, __builtin_bcdmul10,
6533 __builtin_bcddiv10, __builtin_bcd2dfp, __builtin_bcdcmpeq,
6534 __builtin_bcdcmpgt, __builtin_bcdcmplt, __builtin_bcdcmpge,
6535 __builtin_bcdcmple): Add defines.
6536 * config/rs6000/altivec.md: Add UNSPEC_BCDSHIFT.
6537 (BCD_TEST): Add le, ge to code iterator.
6538 Add VBCD mode iterator.
6539 (bcd<bcd_add_sub>_test, *bcd<bcd_add_sub>_test2,
6540 bcd<bcd_add_sub>_<code>, bcd<bcd_add_sub>_<code>): Add mode to name.
6541 Change iterator from V1TI to VBCD.
6542 (*bcdinvalid_<mode>, bcdshift_v16qi): New define_insn.
6543 (bcdinvalid_<mode>, bcdmul10_v16qi, bcddiv10_v16qi): New define.
6544 * config/rs6000/dfp.md (dfp_denbcd_v16qi_inst): New define_insn.
6545 (dfp_denbcd_v16qi): New define_expand.
6546 * config/rs6000/rs6000-builtin.def (BU_P8V_MISC_1): New define.
6547 (BCDADD): Replaced with BCDADD_V1TI and BCDADD_V16QI.
6548 (BCDADD_LT): Replaced with BCDADD_LT_V1TI and BCDADD_LT_V16QI.
6549 (BCDADD_EQ): Replaced with BCDADD_EQ_V1TI and BCDADD_EQ_V16QI.
6550 (BCDADD_GT): Replaced with BCDADD_GT_V1TI and BCDADD_GT_V16QI.
6551 (BCDADD_OV): Replaced with BCDADD_OV_V1TI and BCDADD_OV_V16QI.
6552 (BCDSUB_V1TI, BCDSUB_V16QI, BCDSUB_LT_V1TI, BCDSUB_LT_V16QI,
6553 BCDSUB_LE_V1TI, BCDSUB_LE_V16QI, BCDSUB_EQ_V1TI, BCDSUB_EQ_V16QI,
6554 BCDSUB_GT_V1TI, BCDSUB_GT_V16QI, BCDSUB_GE_V1TI, BCDSUB_GE_V16QI,
6555 BCDSUB_OV_V1TI, BCDSUB_OV_V16QI, BCDINVALID_V1TI, BCDINVALID_V16QI,
6556 BCDMUL10_V16QI, BCDDIV10_V16QI, DENBCD_V16QI): New builtin definitions.
6557 (BCDADD, BCDADD_LT, BCDADD_EQ, BCDADD_GT, BCDADD_OV, BCDSUB, BCDSUB_LT,
6558 BCDSUB_LE, BCDSUB_EQ, BCDSUB_GT, BCDSUB_GE, BCDSUB_OV, BCDINVALID,
6559 BCDMUL10, BCDDIV10, DENBCD): New overload definitions.
6560 * config/rs6000/rs6000-call.c (P8V_BUILTIN_VEC_BCDADD, P8V_BUILTIN_VEC_BCDADD_LT,
6561 P8V_BUILTIN_VEC_BCDADD_EQ, P8V_BUILTIN_VEC_BCDADD_GT, P8V_BUILTIN_VEC_BCDADD_OV,
6562 P8V_BUILTIN_VEC_BCDINVALID, P9V_BUILTIN_VEC_BCDMUL10, P8V_BUILTIN_VEC_DENBCD.
6563 P8V_BUILTIN_VEC_BCDSUB, P8V_BUILTIN_VEC_BCDSUB_LT, P8V_BUILTIN_VEC_BCDSUB_LE,
6564 P8V_BUILTIN_VEC_BCDSUB_EQ, P8V_BUILTIN_VEC_BCDSUB_GT, P8V_BUILTIN_VEC_BCDSUB_GE,
6565 P8V_BUILTIN_VEC_BCDSUB_OV): New overloaded specifications.
6566 (CODE_FOR_bcdadd): Replaced with CODE_FOR_bcdadd_v16qi and CODE_FOR_bcdadd_v1ti.
6567 (CODE_FOR_bcdadd_lt): Replaced with CODE_FOR_bcdadd_lt_v16qi and CODE_FOR_bcdadd_lt_v1ti.
6568 (CODE_FOR_bcdadd_eq): Replaced with CODE_FOR_bcdadd_eq_v16qi and CODE_FOR_bcdadd_eq_v1ti.
6569 (CODE_FOR_bcdadd_gt): Replaced with CODE_FOR_bcdadd_gt_v16qi and CODE_FOR_bcdadd_gt_v1ti.
6570 (CODE_FOR_bcdsub): Replaced with CODE_FOR_bcdsub_v16qi and CODE_FOR_bcdsub_v1ti.
6571 (CODE_FOR_bcdsub_lt): Replaced with CODE_FOR_bcdsub_lt_v16qi and CODE_FOR_bcdsub_lt_v1ti.
6572 (CODE_FOR_bcdsub_eq): Replaced with CODE_FOR_bcdsub_eq_v16qi and CODE_FOR_bcdsub_eq_v1ti.
6573 (CODE_FOR_bcdsub_gt): Replaced with CODE_FOR_bcdsub_gt_v16qi and CODE_FOR_bcdsub_gt_v1ti.
6574 (rs6000_expand_ternop_builtin): Add CODE_FOR_dfp_denbcd_v16qi to else if.
6575 * doc/extend.texi: Add documentation for new builtins.
6577 2020-11-02 Nathan Sidwell <nathan@acm.org>
6579 * tree.c (cache_integer_cst): Fixup pointer caching to match
6580 wide_int_to_type_1's expectations. Add comment.
6582 2020-11-02 Nathan Sidwell <nathan@acm.org>
6584 * tree.h (id_equal): Call the symetric predicate with swapped
6587 2020-11-02 Nathan Sidwell <nathan@acm.org>
6589 * print-tree.c (print_node): Display all the operands of a call
6592 2020-11-02 Vladimir N. Makarov <vmakarov@redhat.com>
6594 * config/rs6000/vsx.md (*vsx_extract_<mode>_store_p9): Add hint *
6595 to 2nd alternative of the 1st scratch.
6597 2020-11-02 Sudakshina Das <sudi.das@arm.com>
6600 * config/aarch64/aarch64-bti-insert.c (aarch64_pac_insn_p): Update
6601 return value on INSN_P check.
6603 2020-11-02 Richard Biener <rguenther@suse.de>
6605 * tree.h (build_real_from_wide): Declare.
6606 * tree.c (build_real_from_wide): New function.
6607 * tree-vect-slp.c (vect_build_slp_tree_2): Remove
6608 restriction on induction vectorization, represent
6610 * tree-vect-loop.c (vect_model_induction_cost): Inline ...
6611 (vectorizable_induction): ... here. Rewrite SLP
6614 2020-11-02 Martin Jambor <mjambor@suse.cz>
6616 * dbgcnt.def (ipa_cp_values): New counter.
6617 (ipa_cp_vr): Likewise.
6618 * ipa-cp.c (decide_about_value): Check and bump ipa_cp_values debug
6620 (decide_whether_version_node): Likewise.
6621 (ipcp_store_vr_results):Check and bump ipa_cp_vr debug counter.
6623 2020-11-02 Christophe Lyon <christophe.lyon@linaro.org>
6625 * config/arm/arm.c (arm_thumb1_mi_thunk): Build mi_delta in r3 and
6626 do not emit function address and delta when -mpure-code is used.
6628 2020-11-02 Christophe Lyon <christophe.lyon@linaro.org>
6630 * config/arm/thumb1.md (thumb1_movsi_insn): Call
6631 thumb1_gen_const_int_print.
6632 * config/arm/arm-protos.h (thumb1_gen_const_int_print): Add
6634 * config/arm/arm.c (thumb1_gen_const_int_print): New.
6636 2020-11-02 Christophe Lyon <christophe.lyon@linaro.org>
6638 * config/arm/arm.c (thumb1_const_rtl, thumb1_const_print): New
6640 (thumb1_gen_const_int): Rename to ...
6641 (thumb1_gen_const_int_1): ... New helper function. Add capability
6642 to emit either RTL or asm, improve generated code.
6643 (thumb1_gen_const_int_rtl): New function.
6644 * config/arm/arm-protos.h (thumb1_gen_const_int): Rename to
6645 thumb1_gen_const_int_rtl.
6646 * config/arm/thumb1.md: Call thumb1_gen_const_int_rtl instead
6647 of thumb1_gen_const_int.
6649 2020-11-02 Richard Biener <rguenther@suse.de>
6651 PR tree-optimization/97558
6652 * tree-vect-loop.c (vectorizable_reduction): For nested SLP
6653 cycles compute invariant operands vector type.
6655 2020-11-02 Richard Biener <rguenther@suse.de>
6657 PR tree-optimization/97558
6658 * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns):
6659 Check for any mismatch in pattern vs. non-pattern and dissolve
6660 the group if there is one.
6661 * tree-vect-slp.c (vect_analyze_slp_instance): Avoid
6662 analyzing not relevant reductions.
6663 (vect_analyze_slp): Avoid analyzing not relevant reduction
6666 2020-11-02 Richard Biener <rguenther@suse.de>
6668 PR tree-optimization/97650
6669 * tree-vect-slp.c (vect_get_and_check_slp_defs): Check
6670 for SSA_NAME before checking SSA_NAME_IS_DEFAULT_DEF.
6672 2020-11-02 Kito Cheng <kito.cheng@sifive.com>
6674 * common/config/riscv/riscv-common.c
6675 (riscv_subset_list::parse_multiletter_ext): Checking multiletter
6676 extension has more than 1 letter.
6678 2020-11-02 Kito Cheng <kito.cheng@sifive.com>
6680 * config.gcc (riscv*-*-*): Handle --with-multilib-generator.
6682 * configure.ac: Add --with-multilib-generator.
6683 * config/riscv/multilib-generator: Exit when parsing arch string error.
6684 * config/riscv/t-withmultilib-generator: New.
6685 * doc/install.texi: Document --with-multilib-generator.
6687 2020-11-02 Christophe Lyon <christophe.lyon@linaro.org>
6690 * config/arm/arm.c (thumb_legitimate_constant_p): Accept
6691 (symbol_ref + addend) when literal pool is disabled.
6692 (arm_valid_symbolic_address_p): Add support for thumb-1 without
6694 * config/arm/thumb1.md (*thumb1_movsi_insn): Accept (symbol_ref +
6695 addend) in the pure-code alternative.
6697 2020-11-02 Christophe Lyon <christophe.lyon@linaro.org>
6700 * config/arm/arm.c (thumb_legitimate_constant_p): Add support for
6701 disabled literal pool in thumb-1.
6702 * config/arm/thumb1.md (thumb1_movsi_symbol_ref): Remove.
6703 (*thumb1_movsi_insn): Add support for SYMBOL_REF with -mpure-code.
6705 2020-11-01 Iain Sandoe <iain@sandoe.co.uk>
6707 * config/host-darwin.c: Align pch_address_space to 16384.
6709 2020-11-01 Pat Bernardi <bernardi@adacore.com>
6711 * config/i386/i386.c (ix86_expand_prologue): Set the stack usage to 0
6712 for naked functions.
6714 2020-11-01 Iain Buclaw <ibuclaw@gdcproject.org>
6717 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Don't call
6718 clone_info::get when cgraph_node::get returns NULL.
6720 2020-10-31 Jan Hubicka <jh@suse.cz>
6722 * Makefile.in: (OBJS): Add symtab-clones.o
6723 (GTFILES): Add symtab-clones.h
6724 * cgraph.c: Include symtab-clones.h.
6725 (cgraph_edge::resolve_speculation): Fix formating
6726 (cgraph_edge::redirect_call_stmt_to_callee): Update.
6727 (cgraph_update_edges_for_call_stmt): Update
6728 (release_function_body): Fix formating.
6729 (cgraph_node::remove): Fix formating.
6730 (cgraph_node::dump): Fix formating.
6731 (cgraph_node::get_availability): Fix formating.
6732 (cgraph_node::call_for_symbol_thunks_and_aliases): Fix formating.
6733 (set_const_flag_1): Fix formating.
6734 (set_pure_flag_1): Fix formating.
6735 (cgraph_node::can_remove_if_no_direct_calls_p): Fix formating.
6736 (collect_callers_of_node_1): Fix formating.
6737 (clone_of_p): Update.
6738 (cgraph_node::verify_node): Update.
6739 (cgraph_c_finalize): Call clone_info::release ().
6740 * cgraph.h (struct cgraph_clone_info): Move to symtab-clones.h.
6741 (cgraph_node): Remove clone_info.
6742 (symbol_table): Add m_clones.
6743 * cgraphclones.c: Include symtab-clone.h.
6744 (duplicate_thunk_for_node): Update.
6745 (cgraph_node::create_clone): Update.
6746 (cgraph_node::create_virtual_clone): Update.
6747 (cgraph_node::find_replacement): Update.
6748 (cgraph_node::materialize_clone): Update.
6749 * gengtype.c (open_base_files): Include symtab-clones.h.
6750 * ipa-cp.c: Include symtab-clones.h.
6751 (initialize_node_lattices): Update.
6752 (want_remove_some_param_p): Update.
6753 (create_specialized_node): Update.
6754 * ipa-fnsummary.c: Include symtab-clones.h.
6755 (ipa_fn_summary_t::duplicate): Update.
6756 * ipa-modref.c: Include symtab-clones.h.
6757 (update_signature): Update.
6758 * ipa-param-manipulation.c: Include symtab-clones.h.
6759 (ipa_param_body_adjustments::common_initialization): Update.
6760 * ipa-prop.c: Include symtab-clones.h.
6761 (adjust_agg_replacement_values): Update.
6762 (ipcp_get_parm_bits): Update.
6763 (ipcp_update_bits): Update.
6764 (ipcp_update_vr): Update.
6765 * ipa-sra.c: Include symtab-clones.h.
6766 (process_isra_node_results): Update.
6767 (disable_unavailable_parameters): Update.
6768 * lto-cgraph.c: Include symtab-clone.h.
6769 (output_cgraph_opt_summary_p): Update.
6770 (output_node_opt_summary): Update.
6771 (input_node_opt_summary): Update.
6772 * symtab-clones.cc: New file.
6773 * symtab-clones.h: New file.
6774 * tree-inline.c (expand_call_inline): Update.
6775 (update_clone_info): Update.
6776 (tree_function_versioning): Update.
6778 2020-10-31 Jan Hubicka <jh@suse.cz>
6780 * ipa-modref.c (modref_summary::dump): Dump writes_errno.
6781 (parm_map_for_arg): Break out from ...
6782 (merge_call_side_effects): ... here.
6783 (get_access_for_fnspec): New function.
6784 (process_fnspec): New function.
6785 (analyze_call): Use it.
6786 (analyze_stmt): Update.
6787 (analyze_function): Initialize writes_errno.
6788 (modref_summaries::duplicate): Duplicate writes_errno.
6789 * ipa-modref.h (struct modref_summary): Add writes_errno.
6790 * tree-ssa-alias.c (call_may_clobber_ref_p_1): Check errno.
6792 2020-10-30 Michael Meissner <meissner@linux.ibm.com>
6794 * config/rs6000/rs6000.c (glibc_supports_ieee_128bit): New helper
6796 (rs6000_option_override_internal): Call it.
6798 2020-10-30 Qing Zhao <qing.zhao@oracle.com>
6799 H.J.Lu <hjl.tools@gmail.com>
6801 * common.opt: Add new option -fzero-call-used-regs
6802 * config/i386/i386.c (zero_call_used_regno_p): New function.
6803 (zero_call_used_regno_mode): Likewise.
6804 (zero_all_vector_registers): Likewise.
6805 (zero_all_st_registers): Likewise.
6806 (zero_all_mm_registers): Likewise.
6807 (ix86_zero_call_used_regs): Likewise.
6808 (TARGET_ZERO_CALL_USED_REGS): Define.
6809 * df-scan.c (df_epilogue_uses_p): New function.
6810 (df_get_exit_block_use_set): Replace EPILOGUE_USES with
6812 * df.h (df_epilogue_uses_p): Declare.
6813 * doc/extend.texi: Document the new zero_call_used_regs attribute.
6814 * doc/invoke.texi: Document the new -fzero-call-used-regs option.
6815 * doc/tm.texi: Regenerate.
6816 * doc/tm.texi.in (TARGET_ZERO_CALL_USED_REGS): New hook.
6817 * emit-rtl.h (struct rtl_data): New field must_be_zero_on_return.
6818 * flag-types.h (namespace zero_regs_flags): New namespace.
6819 * function.c (gen_call_used_regs_seq): New function.
6820 (class pass_zero_call_used_regs): New class.
6821 (pass_zero_call_used_regs::execute): New function.
6822 (make_pass_zero_call_used_regs): New function.
6823 * optabs.c (expand_asm_reg_clobber_mem_blockage): New function.
6824 * optabs.h (expand_asm_reg_clobber_mem_blockage): Declare.
6825 * opts.c (zero_call_used_regs_opts): New structure array
6827 (parse_zero_call_used_regs_options): New function.
6828 (common_handle_option): Handle -fzero-call-used-regs.
6829 * opts.h (zero_call_used_regs_opts): New structure array.
6830 * passes.def: Add new pass pass_zero_call_used_regs.
6831 * recog.c (valid_insn_p): New function.
6832 * recog.h (valid_insn_p): Declare.
6833 * resource.c (init_resource_info): Replace EPILOGUE_USES with
6835 * target.def (zero_call_used_regs): New hook.
6836 * targhooks.c (default_zero_call_used_regs): New function.
6837 * targhooks.h (default_zero_call_used_regs): Declare.
6838 * tree-pass.h (make_pass_zero_call_used_regs): Declare.
6840 2020-10-30 Vladimir N. Makarov <vmakarov@redhat.com>
6842 * lra.c (get_scratch_reg): New function.
6843 (remove_scratches_1): Rename remove_insn_scratches. Use
6844 ira_remove_insn_scratches and get_scratch_reg.
6845 (remove_scratches): Do not
6846 initialize scratches, scratch_bitmap, and scratch_operand_bitmap.
6847 (lra): Call ira_restore_scratches instead of restore_scratches.
6848 (struct sloc, sloc_t, scratches, scratch_bitmap)
6849 (scratch_operand_bitmap, lra_former_scratch_p)
6850 (lra_former_scratch_operand_p, lra_register_new_scratch_op)
6851 (restore_scratches): Move them to ...
6853 (former_scratch_p, former_scratch_operand_p): Rename to
6854 ira_former_scratch_p and ira_former_scratch_operand_p.
6855 (contains_X_constraint_p): New function.
6856 (register_new_scratch_op): Rename to ira_register_new_scratch_op.
6857 Change it to work for IRA and LRA.
6858 (restore_scratches): Rename to ira_restore_scratches.
6859 (get_scratch_reg, ira_remove_insn_scratches): New functions.
6860 (ira): Call ira_remove_scratches if we use LRA.
6861 * ira.h (ira_former_scratch_p, ira_former_scratch_operand_p): New
6863 (ira_register_new_scratch_op, ira_restore_scratches): New prototypes.
6864 (ira_remove_insn_scratches): New prototype.
6865 * lra-int.h (lra_former_scratch_p, lra_former_scratch_operand_p):
6867 (lra_register_new_scratch_op): Ditto.
6868 * lra-constraints.c: Rename lra_former_scratch_p and
6869 lra_former_scratch_p to ira_former_scratch_p and to
6870 ira_former_scratch_p.
6871 * lra-remat.c: Ditto.
6872 * lra-spills.c: Rename lra_former_scratch_p to ira_former_scratch_p.
6874 2020-10-30 Martin Sebor <msebor@redhat.com>
6877 * builtins.c (access_ref::add_offset): Cap offset lower bound
6878 to at most the the upper bound.
6880 2020-10-30 Jan Hubicka <jh@suse.cz>
6883 * cgraph.c (cgraph_node::create_thunk): Register thunk as early during
6885 * cgraphunit.c (analyze_functions): Call
6886 thunk_info::process_early_thunks.
6887 * symtab-thunks.cc (struct unprocessed_thunk): New struct.
6888 (thunks): New static variable.
6889 (thunk_info::register_early): New member function.
6890 (thunk_info::process_early_thunks): New member function.
6891 * symtab-thunks.h (thunk_info::register_early): Declare.
6892 (thunk_info::process_early_thunks): Declare.
6894 2020-10-30 Richard Biener <rguenther@suse.de>
6896 PR tree-optimization/97623
6897 * tree-ssa-pre.c (insert): First do hoist insertion in
6900 2020-10-30 Richard Biener <rguenther@suse.de>
6902 PR tree-optimization/97626
6903 * tree-vect-slp.c (vect_slp_analyze_node_operations):
6904 Exchange the lvisited hash-set for a vector, roll back
6905 recursive adds to visited when analysis failed.
6906 (vect_slp_analyze_operations): Likewise.
6908 2020-10-30 Zhiheng Xie <xiezhiheng@huawei.com>
6909 Nannan Zheng <zhengnannan@huawei.com>
6911 * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG
6912 for conversion intrinsics.
6914 2020-10-30 Richard Biener <rguenther@suse.de>
6916 PR tree-optimization/97633
6917 * tree-vect-slp.c (): Update backedges in single-node cycles.
6918 Optimize processing of externals.
6920 2020-10-30 Alex Coplan <alex.coplan@arm.com>
6923 * combine.c (make_extraction): Also handle shifts written as
6924 (mult x 2^n), avoid creating an extract rtx for these.
6925 * config/aarch64/aarch64.c (aarch64_is_extend_from_extract): Delete.
6926 (aarch64_classify_index): Remove extract-based address handling.
6927 (aarch64_strip_extend): Likewise.
6928 (aarch64_rtx_arith_op_extract_p): Likewise, remove now-unused parameter.
6930 (aarch64_rtx_costs): ... here.
6932 2020-10-30 Olivier Hainque <hainque@adacore.com>
6934 * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Also
6935 builtin_define __ppc and __ppc__ for VxWorks 7.
6937 2020-10-30 Olivier Hainque <hainque@adacore.com>
6938 Douglas Rupp <rupp@adacore.com>
6939 Pat Bernardi <bernardi@adacore.com>
6941 * config.gcc: Adjust the ix86/x86_64-wrs-vxworks filters
6942 to apply to VxWorks 7 as well.
6943 * config/i386/t-vxworks (MULTILIB_OPTIONS, MULTILIB_DIRNAMES):
6944 Remove the fPIC multilib and add one for the large code model
6946 * config/i386/vxworks.h: Separate sections for TARGET_VXWORKS7,
6947 other variants and common bits.
6948 (TARGET_OS_CPP_BUILTINS): Augment to support a range of CPU
6949 families. Leverage VX_CPU_PREFIX.
6950 (CC1_SPEC): Add definition.
6951 (STACK_CHECK_PROTECT): Use conditional expression instead of
6952 heavier to read conditioned macro definitions.
6954 2020-10-30 Jakub Jelinek <jakub@redhat.com>
6956 * gimplify.c (gimplify_scan_omp_clauses): Force
6957 OMP_CLAUSE_ALLOCATE_ALLOCATOR into a temporary if it is non-NULL and
6959 (gimplify_omp_for): Only put allocate on inner taskloop if lastprivate
6960 for the same variable is going to be put there, and in that case
6961 if the OMP_CLAUSE_ALLOCATE_ALLOCATOR is non-NULL non-constant, make
6962 the allocator firstprivate on task.
6964 2020-10-30 Michael Meissner <meissner@linux.ibm.com>
6966 * config/rs6000/rs6000.c (rs6000_option_override_internal): Allow
6967 long double type to be changed for C/C++ if glibc 2.32 or newer.
6968 (rs6000_invalid_binary_op): Update error messages about mixing IBM
6969 long double and IEEE 128-bit.
6971 2020-10-29 Richard Biener <rguenther@suse.de>
6973 * tree-ssa-pre.c (compute_avail): Free operands consistently.
6974 * tree-vect-loop.c (vectorizable_phi): Make sure all operand
6975 defs vectors are released.
6977 2020-10-29 Jan Hubicka <jh@suse.cz>
6979 * vec.h (vec<T, va_heap, vl_ptr>::copy): Pass mem stat info.
6981 2020-10-29 Jan Hubicka <jh@suse.cz>
6983 * wide-int.h (trailing_wide_ints <N>): Turn len to array of structures
6984 so it does not imply typeless storage.
6985 (trailing_wide_ints <N>::operator): update
6986 (trailing_wide_ints <N>::operator []): Update.
6988 2020-10-29 Joseph Myers <joseph@codesourcery.com>
6990 * ginclude/stdbool.h [__STDC_VERSION__ > 201710L] (true, false):
6991 Define with type _Bool.
6993 2020-10-29 Aldy Hernandez <aldyh@redhat.com>
6995 PR tree-optimization/97505
6996 * vr-values.c (vr_values::extract_range_basic): Enable
6997 trap again for everything except UBSAN builtins.
6999 2020-10-29 Richard Sandiford <richard.sandiford@arm.com>
7001 * tree-vectorizer.h (vect_transform_slp_perm_load): Take an
7002 optional extra parameter.
7003 * tree-vect-slp.c (vect_transform_slp_perm_load): Calculate
7004 the number of loads as well as the number of permutes, taking
7005 the counting loop from...
7006 * tree-vect-stmts.c (vect_model_load_cost): ...here. Use the
7007 value computed by vect_transform_slp_perm_load for ncopies.
7009 2020-10-29 Martin Liska <mliska@suse.cz>
7012 * langhooks.c (lhd_begin_section): Call get_section with
7013 not_existing = true.
7014 * output.h (get_section): Add new argument.
7015 * varasm.c (get_section): Fail when NOT_EXISTING is true
7016 and a section already exists.
7017 * ipa-cp.c (ipcp_write_summary): Remove.
7018 (ipcp_read_summary): Likewise.
7019 * ipa-fnsummary.c (ipa_fn_summary_read): Always read jump
7021 (ipa_fn_summary_write): Always stream it.
7023 2020-10-29 Richard Biener <rguenther@suse.de>
7025 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Pass
7026 SLP_TREE_VECTYPE to record_stmt_cost.
7028 2020-10-29 Martin Liska <mliska@suse.cz>
7030 * optc-gen.awk: Check that params start with -param=.
7031 * params.opt: Fix ipa-jump-function-lookups.
7033 2020-10-29 Alexandre Oliva <oliva@adacore.com>
7035 * tree-ssa-math-opts.c (sincos_stats): Add conv_removed.
7036 (execute_cse_conv_1): New.
7037 (execute_cse_sincos_1): Call it. Fix return within
7038 FOR_EACH_IMM_USE_STMT.
7039 (pass_cse_sincos::execute): Report conv_inserted.
7041 2020-10-29 Xuepeng Guo <xuepeng.guo@intel.com>
7042 Hongyu Wang <hongyu.wang@intel.com>
7043 Hongtao Liu <hongtao.liu@intel.com>
7045 * common/config/i386/cpuinfo.h (get_available_features):
7046 Detect KL, AESKLE and WIDEKL features.
7047 * common/config/i386/i386-common.c
7048 (OPTION_MASK_ISA_KL_SET): New.
7049 (OPTION_MASK_ISA_WIDEKL_SET): Likewise.
7050 (OPTION_MASK_ISA_KL_UNSET): Likewise.
7051 (OPTION_MASK_ISA_WIDEKL_UNSET): Likewise.
7052 (OPTION_MASK_ISA2_AVX2_UNSET): Likewise.
7053 (OPTION_MASK_ISA2_AVX_UNSET): Likewise.
7054 (OPTION_MASK_ISA2_SSE4_2_UNSET): Likewise.
7055 (OPTION_MASK_ISA2_SSE4_1_UNSET): Likewise.
7056 (OPTION_MASK_ISA2_SSE4_UNSET): Likewise.
7057 (OPTION_MASK_ISA2_SSSE3_UNSET): Likewise.
7058 (OPTION_MASK_ISA2_SSE3_UNSET): Likewise.
7059 (OPTION_MASK_ISA2_SSE2_UNSET): Likewise.
7060 (OPTION_MASK_ISA2_SSE_UNSET): Likewise.
7061 (ix86_handle_option): Handle kl and widekl, add dependency chain
7063 * common/config/i386/i386-cpuinfo.h (enum processor_features):
7064 (FEATURE_KL, FEATURE_AESKLE, FEATURE_WIDEKL): New.
7065 * common/config/i386/i386-isas.h: Add ISA_NAMES_TABLE_ENTRY
7066 for KL, AESKLE and WIDEKL.
7067 * config.gcc: Add keylockerintrin.h.
7068 * doc/invoke.texi: Document new option -mkl and -mwidekl.
7069 * doc/extend.texi: Document kl and widekl.
7070 * config/i386/cpuid.h (bit_KL, bit_AESKLE, bit_WIDEKL): New.
7071 * config/i386/i386-builtin-types.def ((UINT, UINT, V2DI, V2DI, PVOID),
7072 (UINT, UINT, V2DI, PVOID), (VOID, V2DI, V2DI, V2DI, UINT),
7073 (UINT8, PV2DI, V2DI, PCVOID), (UINT8, PV2DI, PCV2DI, PCVOID)): New
7075 * config/i386/i386-builtin.def: Add
7076 __builtin_ia32_loadiwkey,
7077 __builtin_ia32_aesdec128kl_u8,
7078 __builtin_ia32_aesdec256kl_u8,
7079 __builtin_ia32_aesenc128kl_u8,
7080 __builtin_ia32_aesenc256kl_u8,
7081 __builtin_ia32_aesdecwide128kl_u8,
7082 __builtin_ia32_aesdecwide256kl_u8,
7083 __builtin_ia32_aesencwide128kl_u8,
7084 __builtin_ia32_aesencwide256kl_u8,
7085 __builtin_ia32_encodekey128_u32,
7086 __builtin_ia32_encodekey256_u32.
7087 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
7089 * config/i386/i386-options.c (isa2_opts): Add -mkl and -mwidekl.
7090 (ix86_option_override_internal): Handle KL and WIDEKL.
7091 (ix86_valid_target_attribute_inner_p): Add attribute for kl and widekl.
7092 * config/i386/i386-expand.c
7093 (ix86_expand_builtin): Expand Keylocker Builtins.
7094 * config/i386/i386.h (TARGET_KL): New.
7095 (TARGET_KL_P): Likewise.
7096 (TARGET_WIDEKL): Likewise.
7097 (TARGET_WIDEKL_P): Likewise.
7099 (PTA_WIDEKL): Likewise.
7100 (PTA_TIGERLAKE): Add PTA_KL, PTA_WIDEKL.
7101 (PTA_ALDERLAKE): Likewise.
7102 * config/i386/i386.opt: Add new option mkl and mwidekl.
7103 * config/i386/keylockerintrin.h: New header file for Keylocker.
7104 * config/i386/immintrin.h: Include keylockerintrin.h.
7105 * config/i386/predicates.md (encodekey128_operation): New
7107 (encodekey256_operation): Likewise.
7108 (aeswidekl_operation): Likewise.
7109 * config/i386/sse.md (UNSPECV_LOADIWKEY): New.
7110 (UNSPECV_AESDEC128KLU8): Likewise.
7111 (UNSPECV_AESENC128KLU8): Likewise.
7112 (UNSPECV_AESDEC256KLU8): Likewise.
7113 (UNSPECV_AESENC256KLU8): Likewise.
7114 (UNSPECV_AESDECWIDE128KLU8): Likewise.
7115 (UNSPECV_AESENCWIDE128KLU8): Likewise.
7116 (UNSPECV_AESDECWIDE256KLU8): Likewise.
7117 (UNSPECV_AESENCWIDE256KLU8): Likewise.
7118 (UNSPECV_ENCODEKEY128U32): Likewise.
7119 (UNSPECV_ENCODEKEY256U32): Likewise.
7120 (encodekey128u32): New expander.
7121 (encodekey256u32): Likewise.
7122 (aes<aeswideklvariant>u8): Likewise.
7123 (loadiwkey): New insn pattern.
7124 (*encodekey128u32): Likewise.
7125 (*encodekey256u32): Likewise.
7126 (aes<aesklvariant>u8): Likewise.
7127 (*aes<aeswideklvariant>u8): Likewise.
7129 2020-10-29 Richard Biener <rguenther@suse.de>
7131 * tree-vect-slp.c (vect_build_slp_tree_2): Allow splatting
7132 not vectorizable loads.
7133 (vect_build_slp_instance): Amend dumping with address.
7134 (vect_slp_convert_to_external): Likewise.
7136 2020-10-29 Andrew MacLeod <amacleod@redhat.com>
7138 PR tree-optimization/97609
7139 * gimple-range-cache.cc (non_null_ref::process_name): Call
7140 infer_nonnull_range directly instead of infer_value_range.
7142 2020-10-29 David Malcolm <dmalcolm@redhat.com>
7144 * Makefile.in (ANALYZER_OBJS): Add analyzer/complexity.o.
7146 2020-10-28 Marek Polacek <polacek@redhat.com>
7149 * doc/invoke.texi: Document -Wdeprecated-enum-enum-conversion
7150 and -Wdeprecated-enum-float-conversion. -Wenum-conversion is
7151 no longer C/ObjC only.
7153 2020-10-28 Richard Sandiford <richard.sandiford@arm.com>
7155 PR tree-optimization/97457
7156 * value-range.cc (irange::set): Don't decay POLY_INT_CST ranges
7159 2020-10-28 Carl Love <cel@us.ibm.com>
7161 * config/rs6000/vsx.md(xxgenpcvm_<mode>_internal): Remove TARGET_64BIT.
7163 2020-10-28 Richard Biener <rguenther@suse.de>
7165 * tree-vect-slp.c (vect_slp_analyze_node_operations_1): Dump
7166 when shared vectype update fails.
7168 2020-10-28 Richard Biener <rguenther@suse.de>
7170 * tree-vect-slp.c (vect_get_and_check_slp_defs): For skipped
7171 args just push NULLs and vect_uninitialized_def.
7172 (vect_build_slp_tree_2): Allocate skip_args for all ops
7173 and pass it down to vect_get_and_check_slp_defs.
7175 2020-10-28 Richard Biener <rguenther@suse.de>
7177 PR tree-optimization/97615
7178 * tree-vect-slp.c (vect_build_slp_tree_2): Do not build
7179 an external from pattern defs.
7181 2020-10-28 Richard Biener <rguenther@suse.de>
7183 * tree-vect-slp.c (vect_optimize_slp): Fix iteration over
7186 2020-10-28 Richard Biener <rguenther@suse.de>
7188 * tree-vect-slp.c (vect_build_slp_instance): Split the store
7189 group at the failure boundary and also re-analyze a large enough
7192 2020-10-28 Richard Biener <rguenther@suse.de>
7194 * tree-vect-data-refs.c (vect_slp_analyze_node_alignment):
7195 Dump when vect_update_shared_vectype fails.
7197 2020-10-28 Andrea Corallo <andrea.corallo@arm.com>
7199 * config/aarch64/arm_neon.h (__ST2_LANE_FUNC, __ST3_LANE_FUNC)
7200 (__ST4_LANE_FUNC): Rename the macro generating the 'q' variants
7201 into __ST2Q_LANE_FUNC, __ST2Q_LANE_FUNC, __ST2Q_LANE_FUNC so they
7202 all can be undefed at the and of the file.
7203 (vst2_lane_bf16, vst2q_lane_bf16, vst3_lane_bf16, vst3q_lane_bf16)
7204 (vst4_lane_bf16, vst4q_lane_bf16): Add new intrinsics.
7206 2020-10-28 Andrea Corallo <andrea.corallo@arm.com>
7208 * config/aarch64/arm_neon.h (__LD2_LANE_FUNC, __LD3_LANE_FUNC)
7209 (__LD4_LANE_FUNC): Rename the macro generating the 'q' variants
7210 into __LD2Q_LANE_FUNC, __LD2Q_LANE_FUNC, __LD2Q_LANE_FUNC so they
7211 all can be undefed at the and of the file.
7212 (vld2_lane_bf16, vld2q_lane_bf16, vld3_lane_bf16, vld3q_lane_bf16)
7213 (vld4_lane_bf16, vld4q_lane_bf16): Add new intrinsics.
7215 2020-10-28 Jakub Jelinek <jakub@redhat.com>
7217 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_ALLOCATE.
7218 * tree.h (OMP_CLAUSE_ALLOCATE_ALLOCATOR,
7219 OMP_CLAUSE_ALLOCATE_COMBINED): Define.
7220 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add allocate
7222 (walk_tree_1): Handle OMP_CLAUSE_ALLOCATE.
7223 * tree-pretty-print.c (dump_omp_clause): Likewise.
7224 * gimplify.c (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses,
7225 gimplify_omp_for): Likewise.
7226 * tree-nested.c (convert_nonlocal_omp_clauses,
7227 convert_local_omp_clauses): Likewise.
7228 * omp-low.c (scan_sharing_clauses): Likewise.
7230 2020-10-28 Jakub Jelinek <jakub@redhat.com>
7232 * omp-offload.c (omp_declare_target_tgt_fn_r): Handle direct calls to
7233 declare variant base functions.
7235 2020-10-28 Jakub Jelinek <jakub@redhat.com>
7238 * lto-streamer.h (omp_lto_output_declare_variant_alt,
7239 omp_lto_input_declare_variant_alt): Declare variant.
7240 * symtab.c (symtab_node::get_partitioning_class): Return
7241 SYMBOL_DUPLICATE for declare_variant_alt nodes.
7242 * passes.c (ipa_write_summaries): Add declare_variant_alt to
7244 * lto-cgraph.c (output_refs): Call omp_lto_output_declare_variant_alt
7245 on declare_variant_alt nodes.
7246 (input_refs): Call omp_lto_input_declare_variant_alt on
7247 declare_variant_alt nodes.
7248 * lto-streamer-out.c (output_function): Don't call
7249 collect_block_tree_leafs if DECL_INITIAL is error_mark_node.
7250 (lto_output): Call output_function even for declare_variant_alt
7252 * omp-general.c (omp_lto_output_declare_variant_alt,
7253 omp_lto_input_declare_variant_alt): New functions.
7255 2020-10-28 Jakub Jelinek <jakub@redhat.com>
7257 * wide-int.cc (wi::set_bit_large): Call canonize unless setting
7258 msb bit and clearing bits above it.
7260 2020-10-28 Andrew MacLeod <amacleod@redhat.com>
7262 * gimple-range-gori.cc (gori_compute_cache::cache_stmt): Accumulate
7263 return values and only set cache when everything returned true.
7264 * gimple-range.cc (get_tree_range): Set the return range to UNDEFINED
7265 when the range isn't supported.
7266 (gimple_ranger::calc_stmt): Return varying if the type is supported,
7267 even if the stmt processing failed. False otherwise.
7268 (range_of_builtin_ubsan_call): Don't use gcc_assert.
7269 (range_of_builtin_call): Ditto.
7270 (gimple_ranger::range_of_cond_expr): Ditto.
7271 (gimple_ranger::range_of_expr): Ditto
7272 (gimple_ranger::range_on_entry): Ditto.
7273 (gimple_ranger::range_on_exit): Ditto.
7274 (gimple_ranger::range_on_edge): DItto.
7275 (gimple_ranger::range_of_stmt): Don't use gcc_assert, and initialize
7276 return value to UNDEFINED.
7278 2020-10-27 Andreas Krebbel <krebbel@linux.ibm.com>
7280 PR rtl-optimization/97497
7281 * config/s390/s390.c (s390_hard_regno_call_part_clobbered): Do not
7282 return true for r12 when -fpic is used.
7284 2020-10-27 Tamar Christina <tamar.christina@arm.com>
7287 * config/aarch64/aarch64.c (aarch64_expand_cpymem): Use unsigned
7288 arithmetic in check.
7290 2020-10-27 Andrea Corallo <andrea.corallo@arm.com>
7292 * config/aarch64/arm_neon.h (vcopy_lane_bf16, vcopyq_lane_bf16)
7293 (vcopyq_laneq_bf16, vcopy_laneq_bf16): New intrinsics.
7295 2020-10-27 Olivier Hainque <hainque@adacore.com>
7297 * config/vxworks.h (VX_CPU_PREFIX): #define here.
7298 * config/rs6000/vxworks.h: Remove #definition.
7300 2020-10-27 Olivier Hainque <hainque@adacore.com>
7302 * config/rs6000/vxworks.h (CPP_SPEC): Fix macro definition
7305 2020-10-27 Richard Biener <rguenther@suse.de>
7307 * tree-vect-slp.c (vect_build_slp_instance): Use ceil_log2
7308 to compute maximum group-size.
7310 2020-10-27 Jan Hubicka <jh@suse.cz>
7313 * ipa-modref-tree.h (modref_tree::remap_params): New member function.
7314 * ipa-modref.c (modref_summaries_lto::duplicate): Check that
7315 optimization summaries are not duplicated.
7316 (remap_arguments): Remove.
7317 (modref_transform): Rename to ...
7318 (update_signature): ... this one; handle also lto summary.
7319 (pass_ipa_modref::execute): Update signatures here rather
7320 than in transform hook.
7322 2020-10-27 Richard Biener <rguenther@suse.de>
7324 * tree-vect-slp.c (vect_slp_bbs): Remove no-op
7325 slp-max-insns-in-bb check.
7326 (vect_slp_function): Dump when splitting the function.
7327 Adjust the split condition for control altering stmts.
7328 * params.opt (-param=slp-max-insns-in-bb): Remove.
7329 * doc/invoke.texi (-param=slp-max-insns-in-bb): Likewise.
7331 2020-10-27 Richard Biener <rguenther@suse.de>
7333 * gimple.h (gimple_expr_type): For PHIs return the type
7335 * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg):
7336 Make sure edge order into copied loop headers line up with the
7338 * tree-vect-loop.c (vect_transform_cycle_phi): Handle nested
7340 (vectorizable_phi): New function.
7341 (vectorizable_live_operation): For BB vectorization compute insert
7343 * tree-vect-slp.c (vect_free_slp_tree): Deal with NULL
7344 SLP_TREE_CHILDREN entries.
7345 (vect_create_new_slp_node): Add overloads with pre-existing node
7347 (vect_print_slp_graph): Likewise.
7348 (vect_mark_slp_stmts): Likewise.
7349 (vect_mark_slp_stmts_relevant): Likewise.
7350 (vect_gather_slp_loads): Likewise.
7351 (vect_optimize_slp): Likewise.
7352 (vect_slp_analyze_node_operations): Likewise.
7353 (vect_bb_slp_scalar_cost): Likewise.
7354 (vect_remove_slp_scalar_calls): Likewise.
7355 (vect_get_and_check_slp_defs): Handle PHIs.
7356 (vect_build_slp_tree_1): Handle PHIs.
7357 (vect_build_slp_tree_2): Continue SLP build, following PHI
7358 arguments. Fix memory leak.
7359 (vect_build_slp_tree): Put stub node into the hash-map so
7360 we can discover cycles directly.
7361 (vect_build_slp_instance): Set the backedge SLP def for
7363 (vect_analyze_slp_backedges): Remove.
7364 (vect_analyze_slp): Do not call it.
7365 (vect_slp_convert_to_external): Release SLP_TREE_LOAD_PERMUTATION.
7366 (vect_slp_analyze_node_operations): Handle stray failed
7367 backedge defs by failing.
7368 (vect_slp_build_vertices): Adjust leaf condition.
7369 (vect_bb_slp_mark_live_stmts): Handle PHIs, use visited
7370 hash-set to handle cycles.
7371 (vect_slp_analyze_operations): Adjust.
7372 (vect_bb_partition_graph_r): Likewise.
7373 (vect_slp_function): Adjust split condition to allow CFG
7375 (vect_schedule_slp_instance): Rename to ...
7376 (vect_schedule_slp_node): ... this. Move DFS walk to ...
7377 (vect_schedule_scc): ... this new function.
7378 (vect_schedule_slp): Call it. Remove ad-hoc vectorized
7380 * tree-vect-stmts.c (vect_analyze_stmt): Call
7382 (vect_transform_stmt): Likewise.
7383 (vect_is_simple_use): Handle vect_backedge_def.
7384 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Only
7385 set loop header PHIs to vect_unknown_def_type for loop
7387 * tree-vectorizer.h (enum vect_def_type): Add vect_backedge_def.
7388 (enum stmt_vec_info_type): Add phi_info_type.
7389 (vectorizable_phi): Declare.
7391 2020-10-27 Richard Biener <rguenther@suse.de>
7393 * tree-vect-slp.c (vect_build_slp_tree_2): When vectorizing
7394 BBs splat uniform operands and stop SLP discovery.
7396 2020-10-27 Iain Buclaw <ibuclaw@gdcproject.org>
7398 * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_D_CRITSEC_SIZE):
7400 * config/glibc-d.c (glibc_d_critsec_size): Likewise.
7401 (TARGET_D_CRITSEC_SIZE): Likewise.
7402 * config/i386/linux-common.h (GNU_USER_TARGET_D_CRITSEC_SIZE):
7404 * config/sol2-d.c (solaris_d_critsec_size): Likewise.
7405 (TARGET_D_CRITSEC_SIZE): Likewise.
7406 * doc/tm.texi.in (TARGET_D_CRITSEC_SIZE): Likewise.
7407 * doc/tm.texi: Regenerate.
7409 2020-10-27 Martin Liska <mliska@suse.cz>
7411 PR gcov-profile/97461
7412 * gcov-io.h (GCOV_PREALLOCATED_KVP): Pre-allocate 64
7415 2020-10-27 Jan Hubicka <jh@suse.cz>
7417 * tree-ssa-alias.c (attr_fnspec::verify): Re-enabl checking.
7419 2020-10-27 Jan Hubicka <jh@suse.cz>
7421 * builtin-attrs.def (STRERRNOC): New macro.
7422 (STRERRNOP): New macro.
7423 (ATTR_ERRNOCONST_NOTHROW_LEAF_LIST): New attr list.
7424 (ATTR_ERRNOPURE_NOTHROW_LEAF_LIST): New attr list.
7425 * builtins.def (ATTR_MATHFN_ERRNO): Use
7426 ATTR_ERRNOCONST_NOTHROW_LEAF_LIST.
7427 (ATTR_MATHFN_FPROUNDING_ERRNO): Use ATTR_ERRNOCONST_NOTHROW_LEAF_LIST
7428 or ATTR_ERRNOPURE_NOTHROW_LEAF_LIST.
7430 2020-10-27 Kito Cheng <kito.cheng@sifive.com>
7432 * common/config/riscv/riscv-common.c (opt_var_ref_t): New.
7433 (riscv_ext_flag_table_t): New.
7434 (riscv_ext_flag_table): New.
7435 (riscv_parse_arch_string): Pass gcc_options* instead of
7436 &opts->x_target_flags only, and using riscv_arch_option_table to
7438 (riscv_handle_option): Update argument for riscv_parse_arch_string.
7439 (riscv_expand_arch): Ditto.
7440 (riscv_expand_arch_from_cpu): Ditto.
7442 2020-10-27 Jan Hubicka <jh@suse.cz>
7444 * tree-ssa-ccp.c (evaluate_stmt): Use EAF_RETURN_ARG; do not handle
7445 string buitings specially.
7447 2020-10-27 Jan Hubicka <jh@suse.cz>
7449 * tree.c (set_call_expr_flags): Fix string for ECF_RET1.
7450 (build_common_builtin_nodes): Do not set ECF_RET1 for memcpy, memmove,
7451 and memset. They are handled by builtin_fnspec.
7453 2020-10-27 Jan Hubicka <jh@suse.cz>
7455 * builtins.c (builtin_fnspec): Add bzero, memcmp, memcmp_eq, bcmp,
7456 strncmp, strncmp_eq, strncasecmp, rindex, strlen, strlnen, strcasecmp,
7457 strcspn, strspn, strcmp, strcmp_eq.
7459 2020-10-27 Richard Biener <rguenther@suse.de>
7461 * tree-vectorizer.h (slp_tree_pool): Declare.
7462 (_slp_tree::operator new): Likewise.
7463 (_slp_tree::operator delete): Likewise.
7464 * tree-vectorizer.c (vectorize_loops): Allocate and free the
7466 (pass_slp_vectorize::execute): Likewise.
7467 * tree-vect-slp.c (slp_tree_pool): Define.
7468 (_slp_tree::operator new): Likewise.
7469 (_slp_tree::operator delete): Likewise.
7471 2020-10-27 Martin Liska <mliska@suse.cz>
7473 * lto-wrapper.c (run_gcc): Do not use sub-make when jobserver is
7474 not detected properly.
7476 2020-10-27 Martin Liska <mliska@suse.cz>
7478 * symbol-summary.h (call_summary_base): Pass symtab hooks to
7479 base and register (or unregister) hooks directly.
7481 2020-10-27 Martin Liska <mliska@suse.cz>
7483 * symbol-summary.h (function_summary_base::unregister_hooks):
7484 Call disable_insertion_hook and disable_duplication_hook.
7485 (function_summary_base::symtab_insertion): New field.
7486 (function_summary_base::symtab_removal): Likewise.
7487 (function_summary_base::symtab_duplication): Likewise.
7488 Register hooks in function_summary_base and directly register
7489 (or unregister) hooks.
7491 2020-10-26 Andrew MacLeod <amacleod@redhat.com>
7493 PR tree-optimization/97567
7494 * gimple-range-gori.cc (gori_compute::logical_combine): Union the
7495 ranges of operand1 and operand2, not intersect.
7497 2020-10-26 Jan Hubicka <jh@suse.cz>
7499 * attr-fnspec.h: Update toplevel comment.
7500 (attr_fnspec::attr_fnspec): New constructor.
7501 (attr_fnspec::arg_read_p,
7502 attr_fnspec::arg_written_p,
7503 attr_fnspec::arg_access_size_given_by_arg_p,
7504 attr_fnspec::arg_single_access_p
7505 attr_fnspec::loads_known_p
7506 attr_fnspec::stores_known_p,
7507 attr_fnspec::clobbers_errno_p): New member functions.
7508 (gimple_call_fnspec): Declare.
7509 (builtin_fnspec): Declare.
7510 * builtins.c: Include attr-fnspec.h
7511 (builtin_fnspec): New function.
7512 * builtins.def (BUILT_IN_MEMCPY): Do not specify RET1 fnspec.
7513 (BUILT_IN_MEMMOVE): Do not specify RET1 fnspec.
7514 (BUILT_IN_MEMSET): Do not specify RET1 fnspec.
7515 (BUILT_IN_STRCAT): Do not specify RET1 fnspec.
7516 (BUILT_IN_STRCPY): Do not specify RET1 fnspec.
7517 (BUILT_IN_STRNCAT): Do not specify RET1 fnspec.
7518 (BUILT_IN_STRNCPY): Do not specify RET1 fnspec.
7519 (BUILT_IN_MEMCPY_CHK): Do not specify RET1 fnspec.
7520 (BUILT_IN_MEMMOVE_CHK): Do not specify RET1 fnspec.
7521 (BUILT_IN_MEMSET_CHK): Do not specify RET1 fnspec.
7522 (BUILT_IN_STRCAT_CHK): Do not specify RET1 fnspec.
7523 (BUILT_IN_STRCPY_CHK): Do not specify RET1 fnspec.
7524 (BUILT_IN_STRNCAT_CHK): Do not specify RET1 fnspec.
7525 (BUILT_IN_STRNCPY_CHK): Do not specify RET1 fnspec.
7526 * gimple.c (gimple_call_fnspec): Return attr_fnspec.
7527 (gimple_call_arg_flags): Update.
7528 (gimple_call_return_flags): Update.
7529 * tree-ssa-alias.c (check_fnspec): New function.
7530 (ref_maybe_used_by_call_p_1): Use fnspec for builtin handling.
7531 (call_may_clobber_ref_p_1): Likewise.
7532 (attr_fnspec::verify): Update verifier.
7533 * calls.c (decl_fnspec): New function.
7534 (decl_return_flags): Use it.
7536 2020-10-26 Aldy Hernandez <aldyh@redhat.com>
7538 PR tree-optimization/97555
7539 * range-op.cc (range_tests): Test 1-bit signed invert.
7540 * value-range.cc (subtract_one): Adjust comment.
7542 (irange::invert): Call add_one.
7544 2020-10-26 Jan Hubicka <jh@suse.cz>
7546 * cgraph.h (cgraph_node::optimize_for_size_p): Return
7547 optimize_size_level.
7548 (cgraph_node::optimize_for_size_p): Update.
7549 * coretypes.h (enum optimize_size_level): New enum.
7550 * predict.c (unlikely_executed_edge_p): Microoptimize.
7551 (optimize_function_for_size_p): Return optimize_size_level.
7552 (optimize_bb_for_size_p): Likewise.
7553 (optimize_edge_for_size_p): Likewise.
7554 (optimize_insn_for_size_p): Likewise.
7555 (optimize_loop_nest_for_size_p): Likewise.
7556 * predict.h (optimize_function_for_size_p): Update declaration.
7557 (optimize_bb_for_size_p): Update declaration.
7558 (optimize_edge_for_size_p): Update declaration.
7559 (optimize_insn_for_size_p): Update declaration.
7560 (optimize_loop_for_size_p): Update declaration.
7561 (optimize_loop_nest_for_size_p): Update declaration.
7563 2020-10-26 Richard Biener <rguenther@suse.de>
7565 * tree-vect-slp.c (enum slp_instance_kind): New.
7566 (vect_build_slp_instance): Split out from...
7567 (vect_analyze_slp_instance): ... this.
7569 2020-10-26 Andrew MacLeod <amacleod@redhat.com>
7571 * gimple-range.cc (range_of_builtin_call): Initialize zerov to 0.
7573 2020-10-26 Jan Hubicka <jh@suse.cz>
7576 * cgraphclones.c (cgraph_node::materialize_clone): Clear stmt
7578 * cgraphunit.c (mark_functions_to_output): Do not clear them here.
7579 * ipa-inline-transform.c (inline_transform): Clear stmt references.
7580 * symtab.c (symtab_node::clear_stmts_in_references): Make recursive
7582 * tree-ssa-structalias.c (ipa_pta_execute): Do not clear references.
7584 2020-10-26 Zhiheng Xie <xiezhiheng@huawei.com>
7585 Nannan Zheng <zhengnannan@huawei.com>
7587 * config/aarch64/aarch64-builtins.c: Add FLAG STORE.
7588 * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG
7589 for store intrinsics.
7591 2020-10-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7593 PR tree-optimization/97546
7594 * gimple-ssa-store-merging.c (find_bswap_or_nop): Return NULL if
7595 type is not INTEGER_CST.
7597 2020-10-26 Richard Biener <rguenther@suse.de>
7600 * expr.c (const_scalar_mask_from_tree): Remove.
7601 (expand_expr_real_1): Always VIEW_CONVERT integer mode
7602 vector constants to an integer type.
7603 * tree.c (build_truth_vector_type_for_mode): Use a single-bit
7604 boolean component type for non-vector-mode mask_mode.
7606 2020-10-26 H.J. Lu <hjl.tools@gmail.com>
7609 * config/i386/i386-expand.c (ix86_expand_cmpstrn_or_cmpmem):
7610 Return false for -mno-inline-all-stringops.
7612 2020-10-26 H.J. Lu <hjl.tools@gmail.com>
7615 * config/i386/i386-expand.c (ix86_expand_cmpstrn_or_cmpmem): New
7617 * config/i386/i386-protos.h (ix86_expand_cmpstrn_or_cmpmem): New
7619 * config/i386/i386.md (cmpmemsi): New pattern.
7621 2020-10-26 Andreas Krebbel <krebbel@linux.ibm.com>
7623 * config/s390/vector.md ("vcond_mask_<mode><mode>"): New expander.
7625 2020-10-26 Richard Biener <rguenther@suse.de>
7627 * sbitmap.c (sbitmap_vector_alloc): Use size_t for byte
7628 quantities to avoid overflow.
7630 2020-10-26 Richard Biener <rguenther@suse.de>
7632 PR tree-optimization/97539
7633 * tree-vect-loop-manip.c (vect_do_peeling): Reset out-of-loop
7634 debug uses before peeling.
7636 2020-10-26 Jan Hubicka <hubicka@ucw.cz>
7638 * cgraph.h (struct cgraph_node): Make ipa_transforms_to_apply vl_ptr.
7639 * ipa-inline-analysis.c (initialize_growth_caches): Disable insertion
7640 and duplication hooks.
7641 * ipa-inline-transform.c (clone_inlined_nodes): Clear
7642 ipa_transforms_to_apply.
7643 (save_inline_function_body): Disable insertion hoook for
7644 ipa_saved_clone_sources.
7645 * ipa-prop.c (ipcp_transformation_initialize): Disable insertion hook.
7646 * ipa-prop.h (ipa_node_params_t): Disable insertion hook.
7647 * ipa-reference.c (propagate): Disable insertion hoook.
7648 * ipa-sra.c (ipa_sra_summarize_function): Move out of anonymous
7650 (ipa_sra_function_summaries::insert): New virtual function.
7651 * passes.c (execute_one_pass): Do not add transforms to inline clones.
7652 * symbol-summary.h (function_summary_base): Make insert and duplicate
7653 hooks fail instead of silently producing empty summaries; add way to
7654 disable duplication hooks
7655 (call_summary_base): Likewise.
7656 * tree-nested.c (nested_function_info::get_create): Disable insertion
7658 (maybe_record_nested_function): Likewise.
7660 2020-10-26 Xionghu Luo <luoxhu@linux.ibm.com>
7662 * cfg.c (debug_bb): New overloaded function.
7663 (debug_bb_n): New overloaded function.
7664 * cfg.h (debug_bb): New declaration.
7665 (debug_bb_n): New declaration.
7666 * print-rtl.c (debug_bb_slim): Call debug_bb with flags.
7668 2020-10-24 H.J. Lu <hjl.tools@gmail.com>
7671 * configure.ac (HAVE_AS_WORKING_DWARF_4_FLAG): Renamed to ...
7672 (HAVE_AS_WORKING_DWARF_N_FLAG): This. Don't define if there is
7673 an extra assembly input file in debug info. Replace success
7674 with dwarf4_success in the 32-bit --gdwarf-4 check.
7675 * dwarf2out.c (asm_outputs_debug_line_str): Check
7676 HAVE_AS_WORKING_DWARF_N_FLAG instead of
7677 HAVE_AS_WORKING_DWARF_4_FLAG.
7678 * gcc.c (ASM_DEBUG_SPEC): Likewise.
7679 (ASM_DEBUG_OPTION_SPEC): Likewise.
7680 * config.in: Regenerated.
7681 * configure: Likewise.
7683 2020-10-24 Aldy Hernandez <aldyh@redhat.com>
7685 PR tree-optimization/97538
7686 * calls.c (get_size_range): Handle undefined ranges.
7688 2020-10-24 Martin Liska <mliska@suse.cz>
7690 * cgraph.c (cgraph_node::former_thunk_p): Move out of CHECKING_P
7693 2020-10-24 Alan Modra <amodra@gmail.com>
7695 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Limit
7696 AND addressing to just lvx/stvx style addresses.
7698 2020-10-24 Alan Modra <amodra@gmail.com>
7700 * config/rs6000/rs6000.md (cstore<mode>4): Don't call
7701 rs6000_emit_int_cmove for power10 when -mno-isel.
7703 2020-10-23 Jan Hubicka <hubicka@ucw.cz>
7705 * Makefile.in: Add symtab-thunks.o
7706 (GTFILES): Add symtab-thunks.h and symtab-thunks.cc; remove cgraphunit.c
7707 * cgraph.c: Include symtab-thunks.h.
7708 (cgraph_node::create_thunk): Update
7709 (symbol_table::create_edge): Update
7710 (cgraph_node::dump): Update
7711 (cgraph_node::call_for_symbol_thunks_and_aliases): Update
7712 (set_nothrow_flag_1): Update
7713 (set_malloc_flag_1): Update
7714 (set_const_flag_1): Update
7715 (collect_callers_of_node_1): Update
7716 (clone_of_p): Update
7717 (cgraph_node::verify_node): Update
7718 (cgraph_node::function_symbol): Update
7719 (cgraph_c_finalize): Call thunk_info::release.
7720 (cgraph_node::has_thunk_p): Update
7721 (cgraph_node::former_thunk_p): Move here from cgraph.h; reimplement.
7722 * cgraph.h (struct cgraph_thunk_info): Rename to symtab-thunks.h.
7723 (cgraph_node): Remove thunk field; add thunk bitfield.
7724 (cgraph_node::expand_thunk): Move to symtab-thunks.h
7725 (symtab_thunks_cc_finalize): Declare.
7726 (cgraph_node::has_gimple_body_p): Update.
7727 (cgraph_node::former_thunk_p): Update.
7728 * cgraphclones.c: Include symtab-thunks.h.
7729 (duplicate_thunk_for_node): Update.
7730 (cgraph_edge::redirect_callee_duplicating_thunks): Update.
7731 (cgraph_node::expand_all_artificial_thunks): Update.
7732 (cgraph_node::create_edge_including_clones): Update.
7733 * cgraphunit.c: Include symtab-thunks.h.
7734 (vtable_entry_type): Move to symtab-thunks.c.
7735 (cgraph_node::analyze): Update.
7736 (analyze_functions): Update.
7737 (mark_functions_to_output): Update.
7738 (thunk_adjust): Move to symtab-thunks.c
7739 (cgraph_node::expand_thunk): Move to symtab-thunks.c
7740 (cgraph_node::assemble_thunks_and_aliases): Update.
7741 (output_in_order): Update.
7742 (cgraphunit_c_finalize): Do not clear vtable_entry_type.
7743 (cgraph_node::create_wrapper): Update.
7744 * gengtype.c (open_base_files): Add symtab-thunks.h
7745 * ipa-comdats.c (propagate_comdat_group): UPdate.
7746 (ipa_comdats): Update.
7747 * ipa-cp.c (determine_versionability): UPdate.
7748 (gather_caller_stats): Update.
7749 (count_callers): Update
7750 (set_single_call_flag): Update
7751 (initialize_node_lattices): Update
7752 (call_passes_through_thunk_p): Update
7753 (call_passes_through_thunk): Update
7754 (propagate_constants_across_call): Update
7755 (find_more_scalar_values_for_callers_subset): Update
7756 (has_undead_caller_from_outside_scc_p): Update
7757 * ipa-fnsummary.c (evaluate_properties_for_edge): Update.
7758 (compute_fn_summary): Update.
7759 (inline_analyze_function): Update.
7760 * ipa-icf.c: Include symtab-thunks.h.
7761 (sem_function::equals_wpa): Update.
7762 (redirect_all_callers): Update.
7763 (sem_function::init): Update.
7764 (sem_function::parse): Update.
7765 * ipa-inline-transform.c: Include symtab-thunks.h.
7766 (inline_call): Update.
7767 (save_inline_function_body): Update.
7768 (preserve_function_body_p): Update.
7769 * ipa-inline.c (inline_small_functions): Update.
7770 * ipa-polymorphic-call.c: Include alloc-pool.h, symbol-summary.h,
7772 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Update.
7773 * ipa-pure-const.c: Include symtab-thunks.h.
7774 (analyze_function): Update.
7775 * ipa-sra.c (check_for_caller_issues): Update.
7776 * ipa-utils.c (ipa_reverse_postorder): Update.
7777 (ipa_merge_profiles): Update.
7778 * ipa-visibility.c (non_local_p): Update.
7779 (cgraph_node::local_p): Update.
7780 (function_and_variable_visibility): Update.
7781 * ipa.c (symbol_table::remove_unreachable_nodes): Update.
7782 * lto-cgraph.c: Include alloc-pool.h, symbol-summary.h and
7784 (lto_output_edge): Update.
7785 (lto_output_node): Update.
7786 (compute_ltrans_boundary): Update.
7787 (output_symtab): Update.
7788 (verify_node_partition): Update.
7789 (input_overwrite_node): Update.
7790 (input_node): Update.
7791 * lto-streamer-in.c (fixup_call_stmt_edges): Update.
7792 * symtab-thunks.cc: New file.
7793 * symtab-thunks.h: New file.
7794 * toplev.c (toplev::finalize): Call symtab_thunks_cc_finalize.
7795 * trans-mem.c (ipa_tm_mayenterirr_function): Update.
7796 (ipa_tm_execute): Update.
7797 * tree-inline.c (expand_call_inline): Update.
7798 * tree-nested.c (create_nesting_tree): Update.
7799 (convert_all_function_calls): Update.
7800 (gimplify_all_functions): Update.
7801 * tree-profile.c (tree_profiling): Update.
7802 * tree-ssa-structalias.c (associate_varinfo_to_alias): Update.
7803 * tree.c (free_lang_data_in_decl): Update.
7804 * value-prof.c (init_node_map): Update.
7806 2020-10-23 Marek Polacek <polacek@redhat.com>
7809 * doc/invoke.texi: Document -Wsizeof-array-div.
7811 2020-10-23 Martin Sebor <msebor@redhat.com>
7814 * attribs.c (init_attr_rdwr_indices): Handle static VLA parameters.
7816 2020-10-23 Douglas Rupp <rupp@adacore.com>
7818 * config/vxworks.h (VXWORKS_NET_LIBS_RTP): Use -lrtnet if
7819 rtnetStackLib.h is available,fallback to -lnet otherwise.
7821 2020-10-23 Douglas Rupp <rupp@adacore.com>
7823 * gcc.c (if-exists-then-else): New built-in spec function.
7824 * doc/invoke.texi: Document it.
7826 2020-10-23 Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
7828 * doc/extend.texi (PowerPC Built-in Functions): Replace
7829 extraneous characters with whitespace.
7831 2020-10-23 Martin Liska <mliska@suse.cz>
7833 * gcov.c (read_count_file): Never call gcov_sync with a negative
7836 2020-10-23 Jakub Jelinek <jakub@redhat.com>
7838 * Makefile.in (PLUGIN_HEADERS): Add gomp-constants.h and $(EXPR_H).
7839 (s-header-vars): Accept not just spaces but also tabs between *_H name
7840 and =. Handle common/config/ headers similarly to config. Don't
7841 throw away everything from first ... to last / on the remaining
7842 string, instead skip just ... to corresponding last / without
7843 intervening spaces and tabs.
7844 (install-plugin): Treat common/config headers like config headers.
7845 * config/i386/t-i386 (TM_H): Add
7846 $(srcdir)/common/config/i386/i386-cpuinfo.h.
7848 2020-10-23 Jakub Jelinek <jakub@redhat.com>
7850 PR tree-optimization/97164
7851 * stor-layout.c (layout_type): Also reject arrays where element size
7852 is constant, but not a multiple of element alignment.
7854 2020-10-23 Eric Botcazou <ebotcazou@adacore.com>
7856 * tree-ssa-loop-ivopts.c (analyze_and_mark_doloop_use): Bail out if
7857 the loop is subject to a pragma Unroll with no specific count.
7859 2020-10-23 Dennis Zhang <dennis.zhang@arm.com>
7861 * config/arm/mve.md (mve_vsubq<mode>): New entry for vsub instruction
7862 using expression 'minus'.
7863 (mve_vsubq_f<mode>): Use minus instead of VSUBQ_F unspec.
7864 * config/arm/neon.md (sub<mode>3, sub<mode>3_fp16): Removed.
7865 (neon_vsub<mode>): Use gen_sub<mode>3 instead of gen_sub<mode>3_fp16.
7866 * config/arm/vec-common.md (sub<mode>3): Use the new mode macros
7867 ARM_HAVE_<MODE>_ARITH. Use iterator VDQ instead of VALL.
7869 2020-10-23 Martin Liska <mliska@suse.cz>
7872 * lto-wrapper.c (make_exists): New function.
7873 (run_gcc): Use it to check that make is present and working
7874 for parallel execution.
7876 2020-10-23 Richard Biener <rguenther@suse.de>
7879 2020-10-22 Richard Biener <rguenther@suse.de>
7882 * expr.c (expand_expr_real_1): Be more careful when
7883 expanding a VECTOR_BOOLEAN_TYPE_P VECTOR_CSTs.
7885 2020-10-23 Kewen Lin <linkw@linux.ibm.com>
7887 * tree-vect-loop.c (vect_transform_loop): Remove the redundant
7888 LOOP_VINFO_FULLY_MASKED_P check.
7890 2020-10-23 Dennis Zhang <dennis.zhang@arm.com>
7892 * config/arm/mve.md (mve_vsubq<mode>): New entry for vsub instruction
7893 using expression 'minus'.
7894 (mve_vsubq_f<mode>): Use minus instead of VSUBQ_F unspec.
7895 * config/arm/neon.md (sub<mode>3, sub<mode>3_fp16): Removed.
7896 (neon_vsub<mode>): Use gen_sub<mode>3 instead of gen_sub<mode>3_fp16.
7897 * config/arm/vec-common.md (sub<mode>3): Use the new mode macros
7898 ARM_HAVE_<MODE>_ARITH. Use iterator VDQ instead of VALL.
7900 2020-10-22 Alan Modra <amodra@gmail.com>
7902 * config/rs6000/rs6000.c (rs6000_emit_xxspltidp_v2df): Delete
7903 debug printf. Remove trailing ".\n" from inform message.
7906 2020-10-22 Andrew MacLeod <amacleod@redhat.com>
7908 * gimple-range-gori.cc (is_gimple_logical_p): Use types_compatible_p
7909 for logical compatibility.
7910 (logical_stmt_cache::cacheable_p): Ditto.
7912 2020-10-22 Jan Hubicka <hubicka@ucw.cz>
7914 * cgraph.c (cgraph_node::get_untransformed_body): Perform lazy
7915 clone materialization.
7916 * cgraph.h (cgraph_node::materialize_clone): Declare.
7917 (symbol_table::materialize_all_clones): Remove.
7918 * cgraphclones.c (cgraph_materialize_clone): Turn to ...
7919 (cgraph_node::materialize_clone): .. this one; move here
7920 dumping from symbol_table::materialize_all_clones.
7921 (symbol_table::materialize_all_clones): Remove.
7922 * cgraphunit.c (mark_functions_to_output): Clear stmt references.
7923 (cgraph_node::expand): Initialize bitmaps early;
7924 do not call execute_all_ipa_transforms if there are no transforms.
7925 * ipa-inline-transform.c (save_inline_function_body): Fix formating.
7926 (inline_transform): Materialize all clones before function is modified.
7927 * ipa-param-manipulation.c (ipa_param_adjustments::modify_call):
7928 Materialize clone if needed.
7929 * ipa.c (class pass_materialize_all_clones): Remove.
7930 (make_pass_materialize_all_clones): Remove.
7931 * passes.c (execute_all_ipa_transforms): Materialize all clones.
7932 * passes.def: Remove pass_materialize_all_clones.
7933 * tree-pass.h (make_pass_materialize_all_clones): Remove.
7934 * tree-ssa-structalias.c (ipa_pta_execute): Clear refs.
7936 2020-10-22 Will Schmidt <will_schmidt@vnet.ibm.com>
7938 * config/rs6000/altivec.h (vec_xl_zext, vec_xl_sext, vec_xst_trunc):
7940 * config/rs6000/rs6000-builtin.def (BU_P10V_OVERLOAD_X): New builtin
7942 (BU_P10V_AV_X): New builtin macro.
7943 (se_lxvrhbx, se_lxrbhx, se_lxvrwx, se_lxvrdx): Define internal names
7944 for load and sign extend vector element.
7945 (ze_lxvrbx, ze_lxvrhx, ze_lxvrwx, ze_lxvrdx): Define internal names
7946 for load and zero extend vector element.
7947 (tr_stxvrbx, tr_stxvrhx, tr_stxvrwx, tr_stxvrdx): Define internal names
7948 for truncate and store vector element.
7949 (se_lxvrx, ze_lxvrx, tr_stxvrx): Define internal names for overloaded
7950 load/store rightmost element.
7951 * config/rs6000/rs6000-call.c (altivec_builtin_types): Define the
7952 internal monomorphs P10_BUILTIN_SE_LXVRBX, P10_BUILTIN_SE_LXVRHX,
7953 P10_BUILTIN_SE_LXVRWX, P10_BUILTIN_SE_LXVRDX,
7954 P10_BUILTIN_ZE_LXVRBX, P10_BUILTIN_ZE_LXVRHX, P10_BUILTIN_ZE_LXVRWX,
7955 P10_BUILTIN_ZE_LXVRDX,
7956 P10_BUILTIN_TR_STXVRBX, P10_BUILTIN_TR_STXVRHX, P10_BUILTIN_TR_STXVRWX,
7957 P10_BUILTIN_TR_STXVRDX,
7958 (altivec_expand_lxvr_builtin): New expansion for load element builtins.
7959 (altivec_expand_stv_builtin): Update to for truncate and store builtins.
7960 (altivec_expand_builtin): Add clases for load/store rightmost builtins.
7961 (altivec_init_builtins): Add def_builtin entries for
7962 __builtin_altivec_se_lxvrbx, __builtin_altivec_se_lxvrhx,
7963 __builtin_altivec_se_lxvrwx, __builtin_altivec_se_lxvrdx,
7964 __builtin_altivec_ze_lxvrbx, __builtin_altivec_ze_lxvrhx,
7965 __builtin_altivec_ze_lxvrwx, __builtin_altivec_ze_lxvrdx,
7966 __builtin_altivec_tr_stxvrbx, __builtin_altivec_tr_stxvrhx,
7967 __builtin_altivec_tr_stxvrwx, __builtin_altivec_tr_stxvrdx,
7968 __builtin_vec_se_lxvrx, __builtin_vec_ze_lxvrx, __builtin_vec_tr_stxvrx.
7969 * config/rs6000/vsx.md (vsx_lxvr<wd>x, vsx_stxvr<wd>x, vsx_stxvr<wd>x):
7970 New define_insn entries.
7971 * doc/extend.texi: Add documentation for vsx_xl_sext, vsx_xl_zext,
7974 2020-10-22 Will Schmidt <will_schmidt@vnet.ibm.com>
7976 * config/rs6000/vsx.md (enum unspec): Add
7977 UNSPEC_EXTENDDITI2 and UNSPEC_MTVSRD_DITI_W1 entries.
7978 (mtvsrdd_diti_w1, extendditi2_vector): New define_insns.
7979 (extendditi2): New define_expand.
7981 2020-10-22 Alexandre Oliva <oliva@adacore.com>
7983 * config/i386/mingw-w64.h (TARGET_LIBC_HAS_FUNCTION): Enable
7984 sincos optimization.
7986 2020-10-22 Alan Modra <amodra@gmail.com>
7988 * config/rs6000/vsx.md (vec_cntmb_<mode>, vec_extract_<mode>),
7989 (vec_expand_<mode>): Replace <VSX_MM_SUFFIX> with <wd>.
7991 2020-10-22 Richard Biener <rguenther@suse.de>
7993 * tree-vect-slp.c (vect_analyze_slp_instance): Refactor so
7994 computing a vector type early is not needed, for store group
7995 splitting compute a new vector type based on the desired
7998 2020-10-22 Richard Biener <rguenther@suse.de>
8001 * expr.c (expand_expr_real_1): Be more careful when
8002 expanding a VECTOR_BOOLEAN_TYPE_P VECTOR_CSTs.
8004 2020-10-22 David Malcolm <dmalcolm@redhat.com>
8006 * ipa-modref-tree.c (selftest::test_insert_search_collapse): Fix
8008 (selftest::test_merge): Fix leaks.
8010 2020-10-22 Andreas Krebbel <krebbel@linux.ibm.com>
8013 * config/s390/vector.md ("vec_cmp<VI_HW:mode><VI_HW:mode>")
8014 ("vec_cmpu<VI_HW:mode><VI_HW:mode>"): New expanders.
8016 2020-10-22 Andreas Krebbel <krebbel@linux.ibm.com>
8018 PR rtl-optimization/97439
8019 * dfp.c (decimal_real_maxval): Set the sign flag in the
8022 2020-10-22 Martin Liska <mliska@suse.cz>
8025 * cfgexpand.c (stack_protect_decl_phase):
8026 Guard with lookup_attribute("no_stack_protector") at
8028 (expand_used_vars): Likewise here.
8029 * doc/extend.texi: Document no_stack_protector attribute.
8031 2020-10-22 Martin Liska <mliska@suse.cz>
8033 * cfgexpand.c: Move the enum to ...
8034 * coretypes.h (enum stack_protector): ... here.
8035 * function.c (assign_parm_adjust_stack_rtl): Use the stack_protector
8038 2020-10-22 Kito Cheng <kito.cheng@sifive.com>
8040 * config/riscv/multilib-generator: Add TODO, import itertools
8041 and functools.reduce.
8042 Handle expantion operator.
8043 (LONG_EXT_PREFIXES): New.
8044 (arch_canonicalize): Update comment and improve python3
8045 debuggability/compatibility.
8046 (add_underline_prefix): New.
8047 (_expand_combination): Ditto.
8049 (expand_combination): Ditto.
8051 2020-10-22 Jakub Jelinek <jakub@redhat.com>
8053 * tree-ssa-phiopt.c (cond_removal_in_popcount_clz_ctz_pattern):
8054 For CLZ and CTZ tests, use type temporary instead of mode.
8056 2020-10-22 Jakub Jelinek <jakub@redhat.com>
8058 * config.gcc (x86_archs): Add samuel-2, nehemiah, c7 and esther.
8059 (x86_64_archs): Add eden-x2, nano, nano-1000, nano-2000, nano-3000,
8060 nano-x2, eden-x4, nano-x4, x86-64-v2, x86-64-v3 and x86-64-v4.
8061 (i[34567]86-*-* | x86_64-*-*): Only allow x86-64-v* as argument
8064 2020-10-22 Jan Hubicka <jh@suse.cz>
8066 * ipa-pure-const.c (funct_state_summary_t::insert): Free stale
8069 2020-10-22 Jan Hubicka <hubicka@ucw.cz>
8071 * cgraph.c: Include tree-nested.h
8072 (cgraph_node::create): Call maybe_record_nested_function.
8073 (cgraph_node::remove): Do not remove function from nested function
8075 (cgraph_node::dump): Update.
8076 (cgraph_node::unnest): Move to tree-nested.c
8077 (cgraph_node::verify_node): Update.
8078 (cgraph_c_finalize): Call nested_function_info::release.
8079 * cgraph.h (struct symtab_node): Remove nested function info.
8080 * cgraphclones.c (cgraph_node::create_clone): Do not clone nested
8082 * cgraphunit.c (cgraph_node::analyze): Update.
8083 (cgraph_node::expand): Do not worry about nested functions; they are
8085 (symbol_table::finalize_compilation_unit): Call
8086 nested_function_info::release.
8087 * gimplify.c: Include tree-nested.h
8088 (unshare_body): Update.
8089 (unvisit_body): Update.
8090 * omp-offload.c (omp_discover_implicit_declare_target): Update.
8091 * tree-nested.c: Include alloc-pool.h, tree-nested.h, symbol-summary.h
8092 (nested_function_sum): New static variable.
8093 (nested_function_info::get): New member function.
8094 (nested_function_info::get_create): New member function.
8095 (unnest_function): New function.
8096 (nested_function_info::~nested_function_info): New member function.
8097 (nested_function_info::release): New function.
8098 (maybe_record_nested_function): New function.
8099 (lookup_element_for_decl): Update.
8100 (check_for_nested_with_variably_modified): Update.
8101 (create_nesting_tree): Update.
8102 (unnest_nesting_tree_1): Update.
8103 (gimplify_all_functions): Update.
8104 (lower_nested_functions): Update.
8105 * tree-nested.h (class nested_function_info): New class.
8106 (maybe_record_nested_function): Declare.
8107 (unnest_function): Declare.
8108 (first_nested_function): New inline function.
8109 (next_nested_function): New inline function.
8110 (nested_function_origin): New inline function.
8112 2020-10-22 liuhongt <hongtao.liu@intel.com>
8114 PR rtl-optimization/97249
8115 * simplify-rtx.c (simplify_binary_operation_1): Simplify
8116 vec_select of a subreg of X to a vec_select of X.
8118 2020-10-22 liuhongt <hongtao.liu@intel.com>
8121 * config/i386/constraints.md ("Br"): New special memory
8123 * config/i386/i386-expand.c (ix86_binary_operator_ok): Both
8124 source operand cannot be in memory or bcst_memory_operand.
8125 * config/i386/i386.c (ix86_print_operand): Print bcst_mem_operand.
8126 * config/i386/i386.h (VALID_BCST_MODE_P): New.
8127 * config/i386/predicates.md (bcst_mem_operand): New predicate
8128 for AVX512 embedding broadcast memory operand.
8129 (bcst_vector_operand): New predicate, vector_operand or
8131 * config/i386/sse.md
8132 (*<plusminus_insn><mode>3<mask_name><round_name>): Extend
8133 predicate and constraints to handle bcst_mem_operand.
8134 (*mul<mode>3<mask_name><round_name>): Ditto.
8135 (<sse>_div<mode>3<mask_name><round_name>): Ditto.
8136 (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>):
8138 (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>):
8140 (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>):
8142 (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>):
8144 (*<plusminus_insn><mode>3): Ditto.
8145 (avx512dq_mul<mode>3<mask_name>): Ditto.
8146 (*<sse4_1_avx2>_mul<mode>3<mask_name>): Ditto.
8147 (*andnot<mode>3): Ditto.
8148 (<mask_codefor><code><mode>3<mask_name>): Ditto.
8149 (*sub<mode>3<mask_name>_bcst): Removed.
8150 (*add<mode>3<mask_name>_bcst): Ditto.
8151 (*mul<mode>3<mask_name>_bcst): Ditto.
8152 (*<avx512>_div<mode>3<mask_name>_bcst): Ditto.
8153 (*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_1):
8155 (*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_2):
8157 (*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_3):
8159 (*<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_1):
8161 (*<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_2):
8163 (*<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_3):
8165 (*<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_1):
8167 (*<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_2):
8169 (*<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_3):
8171 (*<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_1):
8173 (*<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_2):
8175 (*<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_3):
8177 (*sub<mode>3_bcst): Ditto.
8178 (*add<mode>3_bcst): Ditto.
8179 (*avx512dq_mul<mode>3<mask_name>_bcst): Ditto.
8180 (*avx512f_mul<mode>3<mask_name>_bcst): Ditto.
8181 (*andnot<mode>3_bcst): Ditto.
8182 (*<code><mode>3_bcst): Ditto.
8183 * config/i386/subst.md (bcst_round_constraint): New subst
8185 (bcst_round_nimm_predicate): Ditto.
8186 (bcst_mask_prefix3): Ditto.
8187 (bcst_mask_prefix4): Ditto.
8189 2020-10-22 liuhongt <hongtao.liu@intel.com>
8192 * ira-costs.c (record_operand_costs): Extract memory operand
8193 from recog_data.operand[i] for record_address_regs.
8194 (record_reg_classes): Extract memory operand from OP for
8195 conditional judgement MEM_P.
8196 * ira.c (ira_setup_alts): Ditto.
8197 * lra-constraints.c (extract_mem_from_operand): New function.
8198 (satisfies_memory_constraint_p): Extract memory operand from
8199 OP for decompose_mem_address, return false when there's no
8200 memory operand inside OP.
8201 (process_alt_operands): Remove MEM_P (op) since it would be
8202 judged in satisfies_memory_constraint_p.
8203 * recog.c (asm_operand_ok): Extract memory operand from OP for
8204 judgement of memory_operand (OP, VOIDmode).
8205 (constrain_operands): Don't unwrapper unary operator when
8206 there's memory operand inside.
8207 * rtl.h (extract_mem_from_operand): New decl.
8209 2020-10-22 Dennis Zhang <dennis.zhang@arm.com>
8211 * config/arm/mve.md (mve_vmaxq_<supf><mode>): Replace with ...
8212 (mve_vmaxq_s<mode>, mve_vmaxq_u<mode>): ... these new insns to
8213 use smax/umax instead of VMAXQ.
8214 (mve_vminq_<supf><mode>): Replace with ...
8215 (mve_vminq_s<mode>, mve_vminq_u<mode>): ... these new insns to
8216 use smin/umin instead of VMINQ.
8217 (mve_vmaxnmq_f<mode>): Use smax instead of VMAXNMQ_F.
8218 (mve_vminnmq_f<mode>): Use smin instead of VMINNMQ_F.
8219 * config/arm/vec-common.md (smin<mode>3): Use the new mode macros
8220 ARM_HAVE_<MODE>_ARITH.
8221 (umin<mode>3, smax<mode>3, umax<mode>3): Likewise.
8223 2020-10-22 Andrew MacLeod <amacleod@redhat.com>
8225 PR tree-optimization/97520
8226 * gimple-range.cc (range_of_non_trivial_assignment): Handle x = &a
8227 by returning a non-zero range.
8229 2020-10-22 Dennis Zhang <dennis.zhang@arm.com>
8231 * config/arm/mve.md (mve_vmulq<mode>): New entry for vmul instruction
8232 using expression 'mult'.
8233 (mve_vmulq_f<mode>): Use mult instead of VMULQ_F.
8234 * config/arm/neon.md (mul<mode>3): Removed.
8235 * config/arm/vec-common.md (mul<mode>3): Use the new mode macros
8236 ARM_HAVE_<MODE>_ARITH. Use mode iterator VDQWH instead of VALLW.
8238 2020-10-22 Andrew MacLeod <amacleod@redhat.com>
8240 PR tree-optimization/97515
8241 * value-query.cc (range_query::value_of_expr): If the result is
8242 UNDEFINED, check to see if the global value is a constant.
8243 (range_query::value_on_edge): Ditto.
8245 2020-10-21 Jan Hubicka <hubicka@ucw.cz>
8248 * ipa-inline.c (inline_insns_single): Add hint2 parameter.
8249 (inline_insns_auto): Add hint2 parameter.
8250 (can_inline_edge_by_limits_p): Update.
8251 (want_inline_small_function_p): Update.
8252 (wrapper_heuristics_may_apply): Update.
8254 2020-10-21 Richard Biener <rguenther@suse.de>
8255 Andrew MacLeod <amacleod@redhat.com>
8256 Martin Liska <mliska@suse.cz>
8259 * config/rs6000/rs6000-call.c (rs6000_init_builtins): Remove call to
8260 build_distinct_type_copy().
8262 2020-10-21 Jan Hubicka <jh@suse.cz>
8265 * ipa-fnsummary.c (ipa_dump_hints): Add INLINE_HINT_builtin_constant_p.
8266 (ipa_fn_summary::~ipa_fn_summary): Free builtin_constant_p_parms.
8267 (ipa_fn_summary_t::duplicate): Duplicate builtin_constant_p_parms.
8268 (ipa_dump_fn_summary): Dump builtin_constant_p_parms.
8269 (add_builtin_constant_p_parm): New function
8270 (set_cond_stmt_execution_predicate): Update builtin_constant_p_parms.
8271 (ipa_call_context::estimate_size_and_time): Set
8272 INLINE_HINT_builtin_constant_p..
8273 (ipa_merge_fn_summary_after_inlining): Merge builtin_constant_p_parms.
8274 (inline_read_section): Read builtin_constant_p_parms.
8275 (ipa_fn_summary_write): Write builtin_constant_p_parms.
8276 * ipa-fnsummary.h (enum ipa_hints_vals): Add
8277 INLINE_HINT_builtin_constant_p.
8278 * ipa-inline.c (want_inline_small_function_p): Use
8279 INLINE_HINT_builtin_constant_p.
8280 (edge_badness): Use INLINE_HINT_builtin_constant_p.
8282 2020-10-21 Douglas Rupp <rupp@adacore.com>
8284 * config/vx-common.h (LINK_SPEC, LIB_SPEC): Remove #undef.
8286 2020-10-21 Douglas Rupp <rupp@adacore.com>
8287 Olivier Hainque <hainque@adacore.com>
8289 * config.gcc (powerpc*-wrs-vxworks7r*): New case.
8290 * config/rs6000/vxworks.h: Rework to handle VxWorks7.
8291 Refactor as common bits + vx6 vs vx7 ones. For the
8292 latter, rely essentially on the Linux configuration
8293 and adjust CPU to _VX_CPU in CPP_SPEC. Add a case
8294 for e6500. Use SUB3TARGET_OVERRIDE_OPTIONS for specifics
8295 to preserve the Linux SUBSUBTARGET_OVERRIDE_OPTIONS
8298 2020-10-21 Richard Biener <rguenther@suse.de>
8300 PR tree-optimization/97500
8301 * tree-vect-slp.c (vect_analyze_slp_backedges): Do not
8302 fill backedges for inductions.
8304 2020-10-21 liuhongt <hongtao.liu@intel.com>
8307 * config/i386/i386-expand.c (ix86_expand_sse_movcc): Move
8308 op_true to dest directly when op_true equals op_false.
8310 2020-10-21 Jakub Jelinek <jakub@redhat.com>
8312 PR tree-optimization/97503
8313 * tree-ssa-phiopt.c: Include internal-fn.h.
8314 (cond_removal_in_popcount_pattern): Rename to ...
8315 (cond_removal_in_popcount_clz_ctz_pattern): ... this. Handle not just
8316 popcount, but also clz and ctz if it has C?Z_DEFINED_VALUE_AT_ZERO 2.
8318 2020-10-21 Richard Biener <rguenther@suse.de>
8320 * cfg.c (htab_bb_copy_original_entry): Remove.
8321 (bb_copy_hasher): Likewise.
8322 (bb_original, bb_copy, loop_copy): Use
8323 hash_map<int_hash<int, -1, -2>, int>.
8324 (original_copy_bb_pool): Remove.
8325 (initialize_original_copy_tables): Adjust.
8326 (reset_original_copy_tables): Likewise.
8327 (free_original_copy_tables): Likewise.
8328 (original_copy_tables_initialized_p): Likewise.
8329 (copy_original_table_clear): Simplify.
8330 (copy_original_table_set): Likewise.
8331 (get_bb_original): Likewise.
8332 (get_bb_copy): Likewise.
8333 (get_loop_copy): Likewise.
8335 2020-10-21 Richard Biener <rguenther@suse.de>
8337 * cfghooks.c (copy_bbs): Split out loop computing new_edges.
8339 2020-10-21 Aldy Hernandez <aldyh@redhat.com>
8341 * gimple-range.cc (gimple_ranger::range_of_ssa_name_with_loop_info):
8342 Remove TREE_OVERFLOW special case.
8343 * vr-values.c (bounds_of_var_in_loop): Adjust overflow for
8346 2020-10-21 Aldy Hernandez <aldyh@redhat.com>
8348 * vr-values.h: Remove simplify_cond_using_ranges_2.
8349 (range_fits_type_p): New.
8350 * vr-values.c (range_fits_type_p): Remove static qualifier.
8351 (vrp_simplify_cond_using_ranges): Move...
8352 * tree-vrp.c (vrp_simplify_cond_using_ranges): ...to here.
8354 2020-10-20 Andrew MacLeod <amacleod@redhat.com>
8356 PR tree-optimization/97505
8357 * vr-values.c (vr_values::extract_range_basic): Trap if
8358 vr_values version disagrees with range_of_builtin_call.
8360 2020-10-20 David Edelsohn <dje.gcc@gmail.com>
8362 * config/rs6000/rs6000.c (rs6000_option_override_internal):
8363 Don't implcitly enable Altivec ABI if set on the command line.
8365 2020-10-20 Aldy Hernandez <aldyh@redhat.com>
8367 * calls.c (get_size_range): Adjust to work with ranger.
8368 * calls.h (get_size_range): Add ranger argument to prototype.
8369 * gimple-ssa-warn-restrict.c (class wrestrict_dom_walker): Remove.
8370 (check_call): Pull out of wrestrict_dom_walker into a
8372 (wrestrict_dom_walker::before_dom_children): Rename to...
8373 (wrestrict_walk): ...this.
8374 (pass_wrestrict::execute): Instantiate ranger.
8375 (class builtin_memref): Add stmt and query fields.
8376 (builtin_access::builtin_access): Add range_query field.
8377 (builtin_memref::builtin_memref): Same.
8378 (builtin_memref::extend_offset_range): Same.
8379 (builtin_access::builtin_access): Make work with ranger.
8380 (wrestrict_dom_walker::check_call): Pull out into...
8381 (check_call): ...here.
8382 (check_bounds_or_overlap): Add range_query argument.
8383 * gimple-ssa-warn-restrict.h (check_bounds_or_overlap):
8384 Add range_query and gimple stmt arguments.
8386 2020-10-20 Aldy Hernandez <aldyh@redhat.com>
8388 * gimple-ssa-warn-alloca.c (enum alloca_type): Remove
8389 ALLOCA_BOUND_UNKNOWN and ALLOCA_CAST_FROM_SIGNED.
8390 (warn_limit_specified_p): New.
8391 (alloca_call_type_by_arg): Remove.
8392 (cast_from_signed_p): Remove.
8394 (alloca_call_type): Remove heuristics and replace with call into
8396 (pass_walloca::execute): Instantiate ranger.
8398 2020-10-20 Tobias Burnus <tobias@codesourcery.com>
8400 * lto-wrapper.c (run_gcc): Use proper variable for
8401 %u.ltrans_args dump suffix.
8403 2020-10-20 Zhiheng Xie <xiezhiheng@huawei.com>
8404 Nannan Zheng <zhengnannan@huawei.com>
8406 * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG
8407 for get/set reg intrinsics.
8409 2020-10-20 Aldy Hernandez <aldyh@redhat.com>
8411 * gimple-range.cc (gimple_ranger::range_of_builtin_ubsan_call):
8412 Make externally visble...
8413 (range_of_builtin_ubsan_call): ...here. Add range_query argument.
8414 (gimple_ranger::range_of_builtin_call): Make externally visible...
8415 (range_of_builtin_call): ...here. Add range_query argument.
8416 * gimple-range.h (range_of_builtin_call): Move out from class and
8417 make externally visible.
8418 * vr-values.c (vr_values::extract_range_basic): Abstract out
8419 builtin handling to...
8420 (vr_values::range_of_expr): Handle non SSAs.
8421 (vr_values::extract_range_builtin): ...here.
8422 * vr-values.h (class vr_values): Add extract_range_builtin.
8423 (range_of_expr): Rename NAME to EXPR.
8425 2020-10-20 Aldy Hernandez <aldyh@redhat.com>
8427 PR tree-optimization/97501
8428 * gimple-range.cc (gimple_ranger::range_of_ssa_name_with_loop_info):
8429 Saturate overflows returned from SCEV.
8431 2020-10-20 Aldy Hernandez <aldyh@redhat.com>
8433 * value-range.cc (irange::operator=): Split up call to
8434 copy_legacy_range into...
8435 (irange::copy_to_legacy): ...this.
8436 (irange::copy_legacy_to_multi_range): ...and this.
8437 (irange::copy_legacy_range): Remove.
8438 * value-range.h: Remove copoy_legacy_range.
8439 Add copy_legacy_to_multi_range and copy_to_legacy.
8441 2020-10-20 Tobias Burnus <tobias@codesourcery.com>
8443 * doc/invoke.texi (NVPTX options): Use @item not @itemx.
8445 2020-10-20 Richard Biener <rguenther@suse.de>
8447 * tree-cfg.c (reinstall_phi_args): Remove.
8448 (gimple_split_edge): Remove PHIs around the edge redirection
8449 to avoid touching them at all.
8451 2020-10-20 Richard Biener <rguenther@suse.de>
8453 * tree-vect-loop.c (vectorizable_reduction): Use the correct
8454 loops latch edge for the PHI arg lookup.
8456 2020-10-20 Jozef Lawrynowicz <jozef.l@mittosystems.com>
8458 * config/msp430/msp430.md (andneghi3): Allow general operand for
8459 op1 and update output assembler template.
8461 2020-10-20 Tobias Burnus <tobias@codesourcery.com>
8463 * collect-utils.c (collect_execute, fork_execute): Add at-file suffix
8465 * collect-utils.h (collect_execute, fork_execute): Update prototype.
8466 * collect2.c (maybe_run_lto_and_relink, do_link, main, do_dsymutil):
8467 Update calls by passing NULL.
8468 * config/i386/intelmic-mkoffload.c (compile_for_target,
8469 generate_host_descr_file, prepare_target_image, main): Likewise.
8470 * config/gcn/mkoffload.c (compile_native, main): Pass at-file suffix.
8471 * config/nvptx/mkoffload.c (compile_native, main): Likewise.
8472 * lto-wrapper.c (compile_offload_image): Likewise.
8474 2020-10-20 Aldy Hernandez <aldyh@redhat.com>
8476 * range-op.cc (operator_rshift::op1_range): Special case
8479 2020-10-20 Richard Biener <rguenther@suse.de>
8481 PR tree-optimization/97496
8482 * tree-vect-slp.c (vect_get_and_check_slp_defs): Guard extern
8483 promotion with not in pattern.
8485 2020-10-20 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
8487 * config/s390/s390.c (s390_expand_vec_strlen): Add alignment
8488 for memory access inside loop.
8490 2020-10-19 Andrew MacLeod <amacleod@redhat.com>
8492 PR tree-optimization/97360
8493 * gimple-range.h (range_compatible_p): New.
8494 * gimple-range-gori.cc (is_gimple_logical_p): Use range_compatible_p.
8495 (range_is_either_true_or_false): Ditto.
8496 (gori_compute::outgoing_edge_range_p): Cast result to the correct
8498 (logical_stmt_cache::cacheable_p): Use range_compatible_p.
8499 * gimple-range.cc (gimple_ranger::calc_stmt): Check range_compatible_p
8500 before casting the range.
8501 (gimple_ranger::range_on_exit): Use range_compatible_p.
8502 (gimple_ranger::range_on_edge): Ditto.
8504 2020-10-19 Martin Jambor <mjambor@suse.cz>
8506 PR tree-optimization/97456
8507 * tree-complex.c (set_component_ssa_name): Do not replace ignored decl
8508 default definitions with new component vars. Reorder if conditions.
8510 2020-10-19 David Edelsohn <dje.gcc@gmail.com>
8512 * config/rs6000/vsx.md (vextract_fp_from_shorth): Fix vals_be.
8513 (vextract_fp_from_shortl) Same.
8515 2020-10-19 Aldy Hernandez <aldyh@redhat.com>
8517 PR tree-optimization/97488
8518 * range-op.cc (operator_lshift::op1_range): Handle large right shifts.
8520 2020-10-19 Martin Liska <mliska@suse.cz>
8522 * ipa-modref.c (compute_parm_map): Clear vector.
8524 2020-10-19 Richard Biener <rguenther@suse.de>
8526 PR tree-optimization/97486
8527 * tree-vect-slp.c (vect_slp_function): Split after stmts
8530 2020-10-19 Jonathan Wakely <jwakely@redhat.com>
8532 * doc/invoke.texi (OPptimize Options): Add missing closing
8535 2020-10-19 Aldy Hernandez <aldyh@redhat.com>
8537 PR tree-optimization/97467
8538 * range-op.cc (operator_lshift::op1_range): Handle shifts by 0.
8540 2020-10-19 Richard Biener <rguenther@suse.de>
8542 PR tree-optimization/97466
8543 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove
8544 spurious assert, re-indent.
8546 2020-10-19 Li Jia He <helijia@gcc.gnu.org>
8548 PR tree-optimization/66552
8549 * match.pd (x << (n % C) -> x << (n & C-1)): New simplification.
8551 2020-10-19 Richard Biener <rguenther@suse.de>
8553 * tree-cfg.c (verify_gimple_comparison): Drop special-case
8554 for pointer comparison.
8556 2020-10-16 Andrew MacLeod <amacleod@redhat.com>
8558 * vr-values.c (dump_all_value_ranges): Only dump names which are
8561 2020-10-16 Andrew MacLeod <amacleod@redhat.com>
8563 * range-op.cc (pointer_plus_operator::wi_fold): Make pointer_plus
8564 [0, 0] + const return a [const, const] range.
8566 2020-10-16 Andrew MacLeod <amacleod@redhat.com>
8568 * gimple-ssa-evrp.c (hybrid_folder::value_on_edge): Call
8569 evrp_folder::value_of_expr directly.
8570 (hybrid_folder::value_of_stmt): Ditto.
8572 2020-10-16 Andrew MacLeod <amacleod@redhat.com>
8574 PR tree-optimization/97462
8575 * range-op.cc (operator_lshift::op1_range): Don't trap on negative
8578 2020-10-16 Olivier Hainque <hainque@adacore.com>
8580 * config/vxworks.h (VX_CRTBEGIN_SPEC): Likewise.
8582 2020-10-16 Olivier Hainque <hainque@adacore.com>
8584 * config/vxworks/_vxworks-versions.h: Only include
8585 version.h if _WRS_VXWORKS_MAJOR is not defined.
8586 Provide a default _WRS_VXWORKS_MINOR (0).
8588 2020-10-16 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
8591 * config/arm/arm.c (fp_bitlist): Add isa_bit_mve_float to FP bits array.
8593 2020-10-16 Richard Biener <rguenther@suse.de>
8595 * tree-vect-slp.c (vect_get_and_check_slp_defs): For BB
8596 vectorization swap operands only if it helps, demote mismatches to
8599 2020-10-16 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
8602 * config/arm/arm-builtins.c (arm_strsbwbs_qualifiers): Modify array.
8603 (arm_strsbwbu_qualifiers): Likewise.
8604 (arm_strsbwbs_p_qualifiers): Likewise.
8605 (arm_strsbwbu_p_qualifiers): Likewise.
8606 * config/arm/arm_mve.h (__arm_vstrdq_scatter_base_wb_s64): Modify
8607 function definition.
8608 (__arm_vstrdq_scatter_base_wb_u64): Likewise.
8609 (__arm_vstrdq_scatter_base_wb_p_s64): Likewise.
8610 (__arm_vstrdq_scatter_base_wb_p_u64): Likewise.
8611 (__arm_vstrwq_scatter_base_wb_p_s32): Likewise.
8612 (__arm_vstrwq_scatter_base_wb_p_u32): Likewise.
8613 (__arm_vstrwq_scatter_base_wb_s32): Likewise.
8614 (__arm_vstrwq_scatter_base_wb_u32): Likewise.
8615 (__arm_vstrwq_scatter_base_wb_f32): Likewise.
8616 (__arm_vstrwq_scatter_base_wb_p_f32): Likewise.
8617 * config/arm/arm_mve_builtins.def (vstrwq_scatter_base_wb_add_u): Remove
8618 expansion for the builtin.
8619 (vstrwq_scatter_base_wb_add_s): Likewise.
8620 (vstrwq_scatter_base_wb_add_f): Likewise.
8621 (vstrdq_scatter_base_wb_add_u): Likewise.
8622 (vstrdq_scatter_base_wb_add_s): Likewise.
8623 (vstrwq_scatter_base_wb_p_add_u): Likewise.
8624 (vstrwq_scatter_base_wb_p_add_s): Likewise.
8625 (vstrwq_scatter_base_wb_p_add_f): Likewise.
8626 (vstrdq_scatter_base_wb_p_add_u): Likewise.
8627 (vstrdq_scatter_base_wb_p_add_s): Likewise.
8628 * config/arm/mve.md (mve_vstrwq_scatter_base_wb_<supf>v4si): Remove
8630 (mve_vstrwq_scatter_base_wb_add_<supf>v4si): Likewise.
8631 (mve_vstrwq_scatter_base_wb_<supf>v4si_insn): Rename pattern to ...
8632 (mve_vstrwq_scatter_base_wb_<supf>v4si): This.
8633 (mve_vstrwq_scatter_base_wb_p_<supf>v4si): Remove expand.
8634 (mve_vstrwq_scatter_base_wb_p_add_<supf>v4si): Likewise.
8635 (mve_vstrwq_scatter_base_wb_p_<supf>v4si_insn): Rename pattern to ...
8636 (mve_vstrwq_scatter_base_wb_p_<supf>v4si): This.
8637 (mve_vstrwq_scatter_base_wb_fv4sf): Remove expand.
8638 (mve_vstrwq_scatter_base_wb_add_fv4sf): Likewise.
8639 (mve_vstrwq_scatter_base_wb_fv4sf_insn): Rename pattern to ...
8640 (mve_vstrwq_scatter_base_wb_fv4sf): This.
8641 (mve_vstrwq_scatter_base_wb_p_fv4sf): Remove expand.
8642 (mve_vstrwq_scatter_base_wb_p_add_fv4sf): Likewise.
8643 (mve_vstrwq_scatter_base_wb_p_fv4sf_insn): Rename pattern to ...
8644 (mve_vstrwq_scatter_base_wb_p_fv4sf): This.
8645 (mve_vstrdq_scatter_base_wb_<supf>v2di): Remove expand.
8646 (mve_vstrdq_scatter_base_wb_add_<supf>v2di): Likewise.
8647 (mve_vstrdq_scatter_base_wb_<supf>v2di_insn): Rename pattern to ...
8648 (mve_vstrdq_scatter_base_wb_<supf>v2di): This.
8649 (mve_vstrdq_scatter_base_wb_p_<supf>v2di): Remove expand.
8650 (mve_vstrdq_scatter_base_wb_p_add_<supf>v2di): Likewise.
8651 (mve_vstrdq_scatter_base_wb_p_<supf>v2di_insn): Rename pattern to ...
8652 (mve_vstrdq_scatter_base_wb_p_<supf>v2di): This.
8654 2020-10-16 Kito Cheng <kito.cheng@sifive.com>
8656 * config/riscv/multilib-generator (IMPLIED_EXT): New.
8657 (arch_canonicalize): Update comment and handle implied extensions.
8659 2020-10-16 Richard Biener <rguenther@suse.de>
8661 * tree-vect-slp.c (vect_get_and_check_slp_defs): First analyze
8662 all operands and fill in the def_stmts and ops entries.
8663 (vect_def_types_match): New helper.
8665 2020-10-16 Martin Liska <mliska@suse.cz>
8668 * ipa-prop.c (struct ipa_vr_ggc_hash_traits):
8669 Compare types of VRP as we can merge ranges of different types.
8671 2020-10-16 Richard Biener <rguenther@suse.de>
8673 PR tree-optimization/97428
8674 * tree-vect-slp.c (vect_analyze_slp_instance): Split store
8675 groups also for loop vectorization.
8677 2020-10-15 Tom de Vries <tdevries@suse.de>
8680 * config/nvptx/nvptx.opt (m32): Comment out.
8681 * doc/invoke.texi (NVPTX options): Remove -m32.
8683 2020-10-15 Jan Hubicka <hubicka@ucw.cz>
8684 Richard Biener <rguenther@suse.de>
8686 * attr-fnspec.h: Fix toplevel comment.
8688 2020-10-15 Richard Biener <rguenther@suse.de>
8690 * tree-pretty-print.c (dump_mem_ref): Print constant offset
8691 also for TARGET_MEM_REF.
8693 2020-10-15 Jan Hubicka <jh@suse.cz>
8695 * symtab.c (symtab_node::binds_to_current_def_p): Also accept symbols
8696 defined in other partition.
8698 2020-10-15 Richard Biener <rguenther@suse.de>
8700 * tree-vect-loop.c (vectorizable_live_operation): Adjust
8703 2020-10-15 Richard Biener <rguenther@suse.de>
8705 PR tree-optimization/97482
8706 * tree-data-ref.c (split_constant_offset_1): Handle
8707 trivial conversions better.
8708 * fold-const.c (convert_to_ptrofftype_loc): Elide conversion
8709 if the offset is already ptrofftype_p.
8711 2020-10-15 Martin Liska <mliska@suse.cz>
8714 * profile-count.c (profile_count::to_frequency): Move part of
8715 gcc_assert to STATIC_ASSERT.
8716 * regs.h (REG_FREQ_FROM_BB): Do not use count.to_frequency for
8717 a function that does not have count_max initialized.
8719 2020-10-15 Jakub Jelinek <jakub@redhat.com>
8721 * params.opt (-param-ipa-jump-function-lookups=): Add full stop at
8722 the end of the parameter description.
8724 2020-10-15 Kito Cheng <kito.cheng@sifive.com>
8726 * common/config/riscv/riscv-common.c (riscv_cpu_tables): New.
8727 (riscv_arch_str): Return empty string if current_subset_list
8729 (riscv_find_cpu): New.
8730 (riscv_handle_option): Verify option value of -mcpu.
8731 (riscv_expand_arch): Using std::string.
8732 (riscv_default_mtune): New.
8733 (riscv_expand_arch_from_cpu): Ditto.
8734 * config/riscv/riscv-cores.def: New.
8735 * config/riscv/riscv-protos.h (riscv_find_cpu): New.
8736 (riscv_cpu_info): New.
8737 * config/riscv/riscv.c (riscv_tune_info): Rename ...
8738 (riscv_tune_param): ... to this.
8739 (riscv_cpu_info): Rename ...
8740 (riscv_tune_info): ... to this.
8741 (tune_info): Rename ...
8742 (tune_param): ... to this.
8743 (rocket_tune_info): Update data type name.
8744 (sifive_7_tune_info): Ditto.
8745 (optimize_size_tune_info): Ditto.
8746 (riscv_cpu_info_table): Rename ...
8747 (riscv_tune_info_table): ... to this.
8748 (riscv_parse_cpu): Rename ...
8749 (riscv_parse_tune): ... to this, and translate valid -mcpu option to
8751 (riscv_rtx_costs): Rename tune_info to tune_param.
8752 (riscv_class_max_nregs): Ditto.
8753 (riscv_memory_move_cost): Ditto.
8754 (riscv_init_machine_status): Use value of -mcpu if -mtune is not
8755 given, and rename tune_info to tune_param.
8756 * config/riscv/riscv.h (riscv_expand_arch_from_cpu): New.
8757 (riscv_default_mtune): Ditto.
8758 (EXTRA_SPEC_FUNCTIONS): Add riscv_expand_arch_from_cpu and
8759 riscv_default_mtune.
8760 (OPTION_DEFAULT_SPECS): Handle default value of -march/-mabi.
8761 (DRIVER_SELF_SPECS): Expand -march from -mcpu if -march is not
8763 * config/riscv/riscv.opt (-mcpu): New option.
8764 * config/riscv/t-riscv ($(common_out_file)): Add
8765 riscv-cores.def to dependency.
8766 * doc/invoke.texi (RISC-V Option): Add -mcpu, and update the
8767 description of default value for -mtune and -march.
8769 2020-10-15 Hongyu Wang <hongyu.wang@intel.com>
8771 * common/config/i386/cpuinfo.h (get_available_features):
8773 * common/config/i386/i386-common.c (OPTION_MASK_ISA2_HRESET_SET,
8774 OPTION_MASK_ISA2_HRESET_UNSET): New macros.
8775 (ix86_handle_option): Handle -mhreset.
8776 * common/config/i386/i386-cpuinfo.h (enum processor_features):
8778 * common/config/i386/i386-isas.h: Add ISA_NAMES_TABLE_ENTRY
8780 * config.gcc: Add hresetintrin.h
8781 * config/i386/hresetintrin.h: New header file.
8782 * config/i386/x86gprintrin.h: Include hresetintrin.h.
8783 * config/i386/cpuid.h (bit_HRESET): New.
8784 * config/i386/i386-builtin.def: Add new builtin.
8785 * config/i386/i386-expand.c (ix86_expand_builtin):
8787 * config/i386/i386-c.c (ix86_target_macros_internal): Define
8789 * config/i386/i386-options.c (isa2_opts): Add -mhreset.
8790 (ix86_valid_target_attribute_inner_p): Handle hreset.
8791 * config/i386/i386.h (TARGET_HRESET, TARGET_HRESET_P,
8793 (PTA_ALDERLAKE): Add PTA_HRESET.
8794 * config/i386/i386.opt: Add option -mhreset.
8795 * config/i386/i386.md (UNSPECV_HRESET): New unspec.
8796 (hreset): New define_insn.
8797 * doc/invoke.texi: Document -mhreset.
8798 * doc/extend.texi: Document hreset.
8800 2020-10-15 Hongtao Liu <hongtao.liu@intel.com>
8802 * common/config/i386/cpuinfo.h (get_available_features):
8804 * common/config/i386/i386-common.c (OPTION_MASK_ISA2_UINTR_SET
8805 OPTION_MASK_ISA2_UINTR_UNSET): New.
8806 (ix86_handle_option): Handle -muintr.
8807 * common/config/i386/i386-cpuinfo.h (enum processor_features):
8809 * common/config/i386/i386-isas.h: Add ISA_NAMES_TABLE_ENTRY
8811 * config.gcc: Add uintrintrin.h to extra_headers.
8812 * config/i386/uintrintrin.h: New.
8813 * config/i386/cpuid.h (bit_UINTR): New.
8814 * config/i386/i386-builtin-types.def: Add new types.
8815 * config/i386/i386-builtin.def: Add new builtins.
8816 * config/i386/i386-builtins.c (ix86_init_mmx_sse_builtins): Add
8817 __builtin_ia32_testui.
8818 * config/i386/i386-builtins.h (ix86_builtins): Add
8819 IX86_BUILTIN_TESTUI.
8820 * config/i386/i386-c.c (ix86_target_macros_internal): Define
8822 * config/i386/i386-expand.c (ix86_expand_special_args_builtin):
8823 Handle UINT8_FTYPE_VOID.
8824 (ix86_expand_builtin): Handle IX86_BUILTIN_TESTUI.
8825 * config/i386/i386-options.c (isa2_opts): Add -muintr.
8826 (ix86_valid_target_attribute_inner_p): Handle UINTR.
8827 (ix86_option_override_internal): Add TARGET_64BIT check for UINTR.
8828 * config/i386/i386.h (TARGET_UINTR, TARGET_UINTR_P, PTA_UINTR): New.
8829 (PTA_SAPPHIRRAPIDS): Add PTA_UINTR.
8830 * config/i386/i386.opt: Add -muintr.
8831 * config/i386/i386.md
8832 (define_int_iterator UINTR_UNSPECV): New.
8833 (define_int_attr uintr_unspecv): New.
8834 (uintr_<uintr_unspecv>, uintr_senduipi, testui):
8835 New define_insn patterns.
8836 * config/i386/x86gprintrin.h: Include uintrintrin.h
8837 * doc/invoke.texi: Document -muintr.
8838 * doc/extend.texi: Document uintr.
8840 2020-10-14 Martin Sebor <msebor@redhat.com>
8843 * builtins.c (gimple_parm_array_size): Peel off one less layer
8846 2020-10-14 Martin Sebor <msebor@redhat.com>
8849 * attribs.c (init_attr_rdwr_indices): Unwrap extra list layer.
8851 2020-10-14 Sunil K Pandey <skpgkp2@gmail.com>
8854 * config/i386/avx2intrin.h (_mm_broadcastsi128_si256): New intrinsics.
8855 (_mm_broadcastsd_pd): Ditto.
8856 * config/i386/avx512bwintrin.h (_mm512_loadu_epi16): New intrinsics.
8857 (_mm512_storeu_epi16): Ditto.
8858 (_mm512_loadu_epi8): Ditto.
8859 (_mm512_storeu_epi8): Ditto.
8860 * config/i386/avx512dqintrin.h (_mm_reduce_round_sd): New intrinsics.
8861 (_mm_mask_reduce_round_sd): Ditto.
8862 (_mm_maskz_reduce_round_sd): Ditto.
8863 (_mm_reduce_round_ss): Ditto.
8864 (_mm_mask_reduce_round_ss): Ditto.
8865 (_mm_maskz_reduce_round_ss): Ditto.
8866 (_mm512_reduce_round_pd): Ditto.
8867 (_mm512_mask_reduce_round_pd): Ditto.
8868 (_mm512_maskz_reduce_round_pd): Ditto.
8869 (_mm512_reduce_round_ps): Ditto.
8870 (_mm512_mask_reduce_round_ps): Ditto.
8871 (_mm512_maskz_reduce_round_ps): Ditto.
8872 * config/i386/avx512erintrin.h
8873 (_mm_mask_rcp28_round_sd): New intrinsics.
8874 (_mm_maskz_rcp28_round_sd): Ditto.
8875 (_mm_mask_rcp28_round_ss): Ditto.
8876 (_mm_maskz_rcp28_round_ss): Ditto.
8877 (_mm_mask_rsqrt28_round_sd): Ditto.
8878 (_mm_maskz_rsqrt28_round_sd): Ditto.
8879 (_mm_mask_rsqrt28_round_ss): Ditto.
8880 (_mm_maskz_rsqrt28_round_ss): Ditto.
8881 (_mm_mask_rcp28_sd): Ditto.
8882 (_mm_maskz_rcp28_sd): Ditto.
8883 (_mm_mask_rcp28_ss): Ditto.
8884 (_mm_maskz_rcp28_ss): Ditto.
8885 (_mm_mask_rsqrt28_sd): Ditto.
8886 (_mm_maskz_rsqrt28_sd): Ditto.
8887 (_mm_mask_rsqrt28_ss): Ditto.
8888 (_mm_maskz_rsqrt28_ss): Ditto.
8889 * config/i386/avx512fintrin.h (_mm_mask_sqrt_sd): New intrinsics.
8890 (_mm_maskz_sqrt_sd): Ditto.
8891 (_mm_mask_sqrt_ss): Ditto.
8892 (_mm_maskz_sqrt_ss): Ditto.
8893 (_mm_mask_scalef_sd): Ditto.
8894 (_mm_maskz_scalef_sd): Ditto.
8895 (_mm_mask_scalef_ss): Ditto.
8896 (_mm_maskz_scalef_ss): Ditto.
8897 (_mm_mask_cvt_roundsd_ss): Ditto.
8898 (_mm_maskz_cvt_roundsd_ss): Ditto.
8899 (_mm_mask_cvt_roundss_sd): Ditto.
8900 (_mm_maskz_cvt_roundss_sd): Ditto.
8901 (_mm_mask_cvtss_sd): Ditto.
8902 (_mm_maskz_cvtss_sd): Ditto.
8903 (_mm_mask_cvtsd_ss): Ditto.
8904 (_mm_maskz_cvtsd_ss): Ditto.
8905 (_mm512_cvtsi512_si32): Ditto.
8906 (_mm_cvtsd_i32): Ditto.
8907 (_mm_cvtss_i32): Ditto.
8908 (_mm_cvti32_sd): Ditto.
8909 (_mm_cvti32_ss): Ditto.
8910 (_mm_cvtsd_i64): Ditto.
8911 (_mm_cvtss_i64): Ditto.
8912 (_mm_cvti64_sd): Ditto.
8913 (_mm_cvti64_ss): Ditto.
8914 * config/i386/avx512vlbwintrin.h (_mm256_storeu_epi8): New intrinsics.
8915 (_mm_storeu_epi8): Ditto.
8916 (_mm256_loadu_epi16): Ditto.
8917 (_mm_loadu_epi16): Ditto.
8918 (_mm256_loadu_epi8): Ditto.
8919 (_mm_loadu_epi8): Ditto.
8920 (_mm256_storeu_epi16): Ditto.
8921 (_mm_storeu_epi16): Ditto.
8922 * config/i386/avx512vlintrin.h (_mm256_load_epi64): New intrinsics.
8923 (_mm_load_epi64): Ditto.
8924 (_mm256_load_epi32): Ditto.
8925 (_mm_load_epi32): Ditto.
8926 (_mm256_store_epi32): Ditto.
8927 (_mm_store_epi32): Ditto.
8928 (_mm256_loadu_epi64): Ditto.
8929 (_mm_loadu_epi64): Ditto.
8930 (_mm256_loadu_epi32): Ditto.
8931 (_mm_loadu_epi32): Ditto.
8932 (_mm256_mask_cvt_roundps_ph): Ditto.
8933 (_mm256_maskz_cvt_roundps_ph): Ditto.
8934 (_mm_mask_cvt_roundps_ph): Ditto.
8935 (_mm_maskz_cvt_roundps_ph): Ditto.
8936 * config/i386/avxintrin.h (_mm256_cvtsi256_si32): New intrinsics.
8937 * config/i386/emmintrin.h (_mm_loadu_si32): New intrinsics.
8938 (_mm_loadu_si16): Ditto.
8939 (_mm_storeu_si32): Ditto.
8940 (_mm_storeu_si16): Ditto.
8941 * config/i386/i386-builtin-types.def
8942 (V8DF_FTYPE_V8DF_INT_V8DF_UQI_INT): Add new type.
8943 (V16SF_FTYPE_V16SF_INT_V16SF_UHI_INT): Ditto.
8944 (V4SF_FTYPE_V4SF_V2DF_V4SF_UQI_INT): Ditto.
8945 (V2DF_FTYPE_V2DF_V4SF_V2DF_UQI_INT): Ditto.
8946 * config/i386/i386-builtin.def
8947 (__builtin_ia32_cvtsd2ss_mask_round): New builtin.
8948 (__builtin_ia32_cvtss2sd_mask_round): Ditto.
8949 (__builtin_ia32_rcp28sd_mask_round): Ditto.
8950 (__builtin_ia32_rcp28ss_mask_round): Ditto.
8951 (__builtin_ia32_rsqrt28sd_mask_round): Ditto.
8952 (__builtin_ia32_rsqrt28ss_mask_round): Ditto.
8953 (__builtin_ia32_reducepd512_mask_round): Ditto.
8954 (__builtin_ia32_reduceps512_mask_round): Ditto.
8955 (__builtin_ia32_reducesd_mask_round): Ditto.
8956 (__builtin_ia32_reducess_mask_round): Ditto.
8957 * config/i386/i386-expand.c
8958 (ix86_expand_round_builtin): Expand round builtin for new type.
8959 (V8DF_FTYPE_V8DF_INT_V8DF_UQI_INT)
8960 (V16SF_FTYPE_V16SF_INT_V16SF_UHI_INT)
8961 (V4SF_FTYPE_V4SF_V2DF_V4SF_UQI_INT)
8962 (V2DF_FTYPE_V2DF_V4SF_V2DF_UQI_INT)
8963 * config/i386/mmintrin.h ()
8964 Define datatype __m32 and __m16.
8965 Define datatype __m32_u and __m16_u.
8966 * config/i386/sse.md: Adjust pattern.
8967 (<mask_codefor>reducep<mode><mask_name><round_saeonly_name>): Adjust.
8968 (reduces<mode><mask_scalar_name><round_saeonly_scalar_name>): Ditto.
8969 (sse2_cvtsd2ss<mask_name><round_name>): Ditto.
8970 (sse2_cvtss2sd<mask_name><round_saeonly_name>): Ditto.
8971 (avx512er_vmrcp28<mode><mask_name><round_saeonly_name>): Ditto.
8972 (avx512er_vmrsqrt28<mode><mask_name><round_saeonly_name>): Ditto.
8974 2020-10-14 Olivier Hainque <hainque@adacore.com>
8976 * config/arm/vxworks.h (TARGET_OS_CPP_BUILTINS): Fix
8977 the VX_CPU selection for -mcpu=xscale on arm-vxworks.
8979 2020-10-14 Olivier Hainque <hainque@adacore.com>
8981 * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Accommodate
8982 expectations from different versions of VxWorks, for 32 or 64bit
8985 2020-10-14 Olivier Hainque <hainque@adacore.com>
8987 * config/vxworks.h: #undef CPLUSPLUS_CPP_SPEC.
8989 2020-10-14 Olivier Hainque <hainque@adacore.com>
8991 * config/t-vxworks: Adjust the VxWorks alternative LIMITS_H guard
8992 for glimits.h, make it both closer to the previous one and easier to
8995 2020-10-14 Jakub Jelinek <jakub@redhat.com>
8998 * config/i386/i386.md (CC_CCC): New mode iterator.
8999 (*setcc_qi_addqi3_cconly_overflow_1_<mode>): New
9000 define_insn_and_split.
9001 * config/i386/i386.c (ix86_cc_mode): Return CCCmode
9002 for *setcc_qi_addqi3_cconly_overflow_1_<mode> pattern operands.
9003 (ix86_rtx_costs): Return true and *total = 0;
9004 for *setcc_qi_addqi3_cconly_overflow_1_<mode> pattern. Use op0 and
9005 op1 temporaries to simplify COMPARE checks.
9007 2020-10-14 Aldy Hernandez <aldyh@redhat.com>
9009 PR tree-optimization/97396
9010 * gimple-range.cc (gimple_ranger::range_of_phi): Do not call
9011 range_of_ssa_name_with_loop_info with the loop tree root.
9013 2020-10-14 Richard Biener <rguenther@suse.de>
9015 * tree-vect-slp.c (vect_get_and_check_slp_defs): Split out
9016 test for compatible operand types.
9018 2020-10-14 Olivier Hainque <hainque@adacore.com>
9020 * config/vxworks.c (vxworks_override_options): Guard pic checks with
9021 flag_pic > 0 instead of just flag_pic.
9023 2020-10-14 Jan Hubicka <hubicka@ucw.cz>
9025 * ipa-fnsummary.c (remap_edge_summaries): Make offset_map HOST_WIDE_INT.
9026 (remap_freqcounting_predicate): Likewise.
9027 (ipa_merge_fn_summary_after_inlining): Likewise.
9028 * ipa-predicate.c (predicate::remap_after_inlining): Likewise
9029 * ipa-predicate.h (remap_after_inlining): Update.
9031 2020-10-14 Jan Hubicka <jh@suse.cz>
9033 * ipa-modref.c (compute_parm_map): Handle POINTER_PLUS_EXPR in
9036 2020-10-14 Richard Biener <rguenther@suse.de>
9038 * tree-vect-slp.c (vect_get_and_check_slp_defs): Move
9039 check for duplicate/interleave of variable size constants
9040 to a place done once and early.
9041 (vect_build_slp_tree_2): Adjust heuristics when to build
9042 a BB SLP node from scalars.
9044 2020-10-14 Tom de Vries <tdevries@suse.de>
9046 * tracer.c (cached_can_duplicate_bb_p, analyze_bb): Use
9047 can_duplicate_block_p.
9048 (can_duplicate_insn_p, can_duplicate_bb_no_insn_iter_p)
9049 (can_duplicate_bb_p): Move and merge ...
9050 * tree-cfg.c (gimple_can_duplicate_bb_p): ... here.
9052 2020-10-14 Jan Hubicka <hubicka@ucw.cz>
9054 * doc/invoke.texi: (ipa-jump-function-lookups): Document param.
9055 * ipa-modref.c (merge_call_side_effects): Use
9056 unadjusted_ptr_and_unit_offset.
9057 * ipa-prop.c (unadjusted_ptr_and_unit_offset): New function.
9058 * ipa-prop.h (unadjusted_ptr_and_unit_offset): Declare.
9059 * params.opt: (-param-ipa-jump-function-lookups): New.
9061 2020-10-14 Jan Hubicka <jh@suse.cz>
9064 * ipa-modref.c (ignore_edge): Do not ignore inlined edes.
9065 (ipa_merge_modref_summary_after_inlining): Improve debug output and
9066 fix parameter of ignore_stores_p.
9068 2020-10-14 Kito Cheng <kito.cheng@sifive.com>
9071 * expr.c (expand_assignment): Handle misaligned stores with PARALLEL
9074 2020-10-13 Jakub Jelinek <jakub@redhat.com>
9076 PR rtl-optimization/97386
9077 * combine.c (simplify_shift_const_1): Don't optimize nested ROTATEs if
9078 they have different modes.
9080 2020-10-13 Aldy Hernandez <aldyh@redhat.com>
9082 PR tree-optimization/97379
9083 * gimple-range-edge.cc (outgoing_range::calc_switch_ranges): Do
9084 not save hash slot across calls to hash_table<>::get_or_insert.
9086 2020-10-13 Tobias Burnus <tobias@codesourcery.com>
9088 * lto-wrapper.c (find_crtoffloadtable): Fix last commit
9089 by adding NULL as last argument to concat.
9091 2020-10-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9093 * config/aarch64/aarch64.c (neoversen2_tunings): Define.
9094 * config/aarch64/aarch64-cores.def (neoverse-n2): Use it.
9096 2020-10-13 Tobias Burnus <tobias@codesourcery.com>
9098 * lto-wrapper.c (find_crtoffloadtable): With -save-temps,
9099 use non-temp file name utilizing the dump prefix.
9100 (run_gcc): Update call.
9102 2020-10-13 Richard Biener <rguenther@suse.de>
9104 PR tree-optimization/97382
9105 * tree-vectorizer.h (_stmt_vec_info::same_align_refs): Remove.
9106 (STMT_VINFO_SAME_ALIGN_REFS): Likewise.
9107 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Do not
9108 allocate STMT_VINFO_SAME_ALIGN_REFS.
9109 (vec_info::free_stmt_vec_info): Do not release
9110 STMT_VINFO_SAME_ALIGN_REFS.
9111 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
9112 Do not compute self and read-read dependences.
9113 (vect_dr_aligned_if_related_peeled_dr_is): New helper.
9114 (vect_dr_aligned_if_peeled_dr_is): Likewise.
9115 (vect_update_misalignment_for_peel): Use it instead of
9116 iterating over STMT_VINFO_SAME_ALIGN_REFS.
9117 (dr_align_group_sort_cmp): New function.
9118 (vect_enhance_data_refs_alignment): Count the number of
9119 same aligned refs here and elide uses of STMT_VINFO_SAME_ALIGN_REFS.
9120 (vect_find_same_alignment_drs): Remove.
9121 (vect_analyze_data_refs_alignment): Do not call it.
9122 * vec.h (auto_vec<T, 0>::auto_vec): Adjust CTOR to take
9123 a vec<>&&, assert it isn't using auto storage.
9124 (auto_vec& operator=): Apply a similar change.
9126 2020-10-13 Tobias Burnus <tobias@codesourcery.com>
9128 * config/nvptx/mkoffload.c (main): Add missing fclose (in).
9130 2020-10-13 Zhiheng Xie <xiezhiheng@huawei.com>
9131 Nannan Zheng <zhengnannan@huawei.com>
9133 * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG
9134 for mul/mla/mls intrinsics.
9136 2020-10-13 Jakub Jelinek <jakub@redhat.com>
9138 * omp-low.c (add_taskreg_looptemp_clauses): For triangular loops
9139 with non-constant number of iterations add another 4 _looptemp_
9140 clauses before the (optional) one for lastprivate.
9141 (lower_omp_for_lastprivate): Skip those clauses when looking for
9142 the lastprivate clause.
9143 (lower_omp_for): For triangular loops with non-constant number of
9144 iterations add another 4 _looptemp_ clauses.
9145 * omp-expand.c (expand_omp_for_init_counts): For triangular loops
9146 with non-constant number of iterations set counts[0],
9147 fd->first_inner_iterations, fd->factor and fd->adjn1 from the newly
9148 added _looptemp_ clauses.
9149 (expand_omp_for_init_vars): Initialize the newly added _looptemp_
9151 (find_lastprivate_looptemp): New function.
9152 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk,
9153 expand_omp_taskloop_for_outer): Use it instead of manually skipping
9156 2020-10-13 Jan Hubicka <hubicka@ucw.cz>
9159 * ipa-modref.c (dump_lto_records): Fix formating of dump file.
9160 (modref_summary::dump): Do not check loads to be non-null.
9161 (modref_summary_lto::dump): Do not check loads to be non-null.
9162 (merge_call_side_effects): Improve debug output.
9163 (analyze_call): Crash when cur_summary->loads is NULL.
9164 (analyze_function): Update.
9165 (modref_summaries::insert): Insert only into summaries, not
9166 optimization_summaries.
9167 (modref_summaries::duplicate): Likewise; crash when load or sotres
9169 (modref_summaries_lto::duplicate): Crash when loads or stores are NULL.
9170 (write_modref_records): param_index is signed.
9171 (read_modref_records): param_index is signed.
9172 (modref_write): Crash when loads or stores are NULL.
9173 (read_section): Compensate previous change.
9174 (pass_modref::execute): Do not check optimization_summaries t be
9177 (compute_parm_map): Fix formating.
9178 (modref_propagate_in_scc): Do not expect loads/stores to be NULL.
9180 2020-10-12 Alexandre Oliva <oliva@adacore.com>
9182 * builtins.c (mathfn_built_in_type): Use CFN_ enumerators.
9184 2020-10-12 Andrew MacLeod <amacleod@redhat.com>
9186 PR tree-optimization/97381
9187 * gimple-range-gori.cc (gori_compute::compute_operand2_range): If a range cannot be
9188 calculated through operand 2, return false.
9190 2020-10-12 Aldy Hernandez <aldyh@redhat.com>
9192 PR tree-optimization/97378
9193 * range-op.cc (operator_trunc_mod::wi_fold): Return VARYING for mod by zero.
9195 2020-10-12 David Malcolm <dmalcolm@redhat.com>
9197 * doc/invoke.texi: Document -Wanalyzer-write-to-const and
9198 -Wanalyzer-write-to-string-literal.
9200 2020-10-12 Martin Sebor <msebor@redhat.com>
9205 * builtins.c (access_ref::access_ref): Initialize new member. Use
9207 (access_ref::size_remaining): Define new member function.
9208 (inform_access): Handle expressions referencing objects.
9209 (gimple_call_alloc_size): Call get_size_range instead of get_range.
9210 (gimple_call_return_array): New function.
9211 (get_range): Rename...
9212 (get_offset_range): ...to this. Improve detection of ranges from
9213 types of expressions.
9214 (gimple_call_return_array): Adjust calls to get_range per above.
9215 (compute_objsize): Same. Set maximum size or offset instead of
9216 failing for unknown objects and handle more kinds of expressions.
9217 (compute_objsize): Call access_ref::size_remaining.
9218 (compute_objsize): Have transitional wrapper fail for pointers
9219 into unknown objects.
9220 (expand_builtin_strncmp): Call access_ref::size_remaining and
9222 * builtins.h (access_ref::size_remaining): Declare new member function.
9223 (access_ref::set_max_size_range): Define new member function.
9224 (access_ref::add_ofset, access_ref::add_max_ofset): Same.
9225 (access_ref::add_base0): New data member.
9226 * calls.c (get_size_range): Change argument type. Handle new
9228 * calls.h (get_size_range): Adjust signature.
9229 (enum size_range_flags): Define new type.
9230 * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): Correct
9231 argument to get_size_range.
9232 * tree-ssa-strlen.c (get_range): Handle anti-ranges.
9233 (maybe_warn_overflow): Check DECL_P before assuming it's one.
9235 2020-10-12 Martin Sebor <msebor@redhat.com>
9239 * builtins.c (get_range): Return full range of type when neither
9240 value nor its range is available. Fail for ranges inverted due
9241 to the signedness of offsets.
9242 (compute_objsize): Handle more special array members. Handle
9243 POINTER_PLUS_EXPR and VIEW_CONVERT_EXPR that come up in front end
9245 (access_ref::offset_bounded): Define new member function.
9246 * builtins.h (access_ref::eval): New data member.
9247 (access_ref::offset_bounded): New member function.
9248 (access_ref::offset_zero): New member function.
9249 (compute_objsize): Declare a new overload.
9250 * gimple-array-bounds.cc (array_bounds_checker::check_array_ref): Use
9251 enum special_array_member.
9252 * tree.c (component_ref_size): Use special_array_member.
9253 * tree.h (special_array_member): Define a new type.
9254 (component_ref_size): Change signature.
9256 2020-10-12 Jan Hubicka <hubicka@ucw.cz>
9258 * ipa-modref.c (modref_summaries): Remove field IPA.
9259 (class modref_summary_lto): New global variable.
9260 (class modref_summaries_lto): New.
9261 (modref_summary::modref_summary): Remove loads_lto and stores_lto.
9262 (modref_summary::~modref_summary): Remove loads_lto and stores_lto.
9263 (modref_summary::useful_p): Do not use lto_useful.
9264 (modref_records_lto): New typedef.
9265 (struct modref_summary_lto): New type.
9266 (modref_summary_lto::modref_summary_lto): New member function.
9267 (modref_summary_lto::~modref_summary_lto): New member function.
9268 (modref_summary_lto::useful_p): New member function.
9269 (modref_summary::dump): Do not handle lto.
9270 (modref_summary_lto::dump): New member function.
9271 (get_modref_function_summary): Use optimization_summary.
9272 (merge_call_side_effects): Use optimization_summary.
9273 (analyze_call): Use optimization_summary.
9274 (struct summary_ptrs): New struture.
9275 (analyze_load): Update to handle separate lto and non-lto summaries.
9276 (analyze_store): Likewise.
9277 (analyze_stmt): Likewise.
9278 (remove_summary): Break out from ...
9279 (analyze_function): ... here; update to handle seprated summaries.
9280 (modref_summaries::insert): Do not handle lto summary.
9281 (modref_summaries_lto::insert): New member function.
9282 (modref_summaries::duplicate): Do not handle lto summary.
9283 (modref_summaries_lto::duplicate): New member function.
9284 (read_modref_records): Expect nolto_ret or lto_ret to be NULL>
9285 (modref_write): Write lto summary.
9286 (read_section): Handle separated summaries.
9287 (modref_read): Initialize separated summaries.
9288 (modref_transform): Handle separated summaries.
9289 (pass_modref::execute): Turn summary to optimization_summary; handle
9291 (ignore_edge): Handle separate summaries.
9292 (ipa_merge_modref_summary_after_inlining): Likewise.
9293 (collapse_loads): Likewise.
9294 (modref_propagate_in_scc): Likewise.
9295 (pass_ipa_modref::execute): Likewise.
9296 (ipa_modref_c_finalize): Likewise.
9297 * ipa-modref.h (modref_records_lto): Remove typedef.
9298 (struct modref_summary): Remove stores_lto, loads_lto and finished
9299 fields; remove lto_useful_p member function.
9301 2020-10-12 Richard Biener <rguenther@suse.de>
9303 * tree-vect-data-refs.c (vect_slp_analyze_instance_dependence):
9304 Use SLP_TREE_REPRESENTATIVE.
9305 * tree-vectorizer.h (_slp_tree::vertex): New member used
9306 for graphds interfacing.
9307 * tree-vect-slp.c (vect_build_slp_tree_2): Allocate space
9308 for PHI SLP children.
9309 (vect_analyze_slp_backedges): New function filling in SLP
9310 node children for PHIs that correspond to backedge values.
9311 (vect_analyze_slp): Call vect_analyze_slp_backedges for the
9313 (vect_slp_analyze_node_operations): Deal with a cyclic graph.
9314 (vect_schedule_slp_instance): Likewise.
9315 (vect_schedule_slp): Likewise.
9316 (slp_copy_subtree): Remove.
9317 (vect_slp_rearrange_stmts): Likewise.
9318 (vect_attempt_slp_rearrange_stmts): Likewise.
9319 (vect_slp_build_vertices): New functions.
9320 (vect_slp_permute): Likewise.
9321 (vect_slp_perms_eq): Likewise.
9322 (vect_optimize_slp): Remove special code to elide
9323 permutations with SLP reductions. Implement generic
9324 permute optimization.
9326 2020-10-12 Christophe Lyon <christophe.lyon@linaro.org>
9328 * config/arm/arm.c (arm_preferred_simd_mode): Use E_FOOmode
9331 2020-10-12 Martin Liska <mliska@suse.cz>
9333 PR tree-optimization/97079
9334 * internal-fn.c (internal_fn_stored_value_index): Handle also
9336 * tree-vect-patterns.c (vect_recog_over_widening_pattern): Bail
9337 out for unsupported TREE_TYPE.
9339 2020-10-12 Richard Biener <rguenther@suse.de>
9341 * tree-vect-slp.c (vect_bb_partition_graph_r): Use visited
9343 (vect_bb_partition_graph): Likewise.
9345 2020-10-12 Duan bo <duanbo3@huawei.com>
9348 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Add
9349 the identification and handling of the dropped situation in the
9350 cond expression processing phase.
9352 2020-10-12 Tobias Burnus <tobias@codesourcery.com>
9354 * doc/invoke.texi (nvptx's -misa): Update default to sm_35.
9356 2020-10-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9359 * config/aarch64/arm_neon.h (vdupq_n_p8, vdupq_n_p16,
9360 vdupq_n_p64, vdupq_n_s8, vdupq_n_s16, vdupq_n_u8, vdupq_n_u16):
9363 2020-10-12 Ilya Leoshkevich <iii@linux.ibm.com>
9365 * config/s390/s390-protos.h (s390_build_signbit_mask): New
9367 * config/s390/s390.c (s390_contiguous_bitmask_vector_p):
9368 Bitcast the argument to an integral mode.
9369 (s390_expand_vec_init): Do not call
9370 s390_contiguous_bitmask_vector_p with a scalar argument.
9371 (s390_build_signbit_mask): New function.
9372 * config/s390/vector.md (copysign<mode>3): Use bitwise
9375 2020-10-12 Aldy Hernandez <aldyh@redhat.com>
9377 PR tree-optimization/97371
9378 * range-op.cc (operator_rshift::op1_range): Ignore shifts larger than
9379 or equal to type precision.
9381 2020-10-12 Martin Liska <mliska@suse.cz>
9383 * ipa-modref.c (merge_call_side_effects): Clear modref_parm_map
9384 fields in the vector.
9386 2020-10-12 Richard Biener <rguenther@suse.de>
9388 * tree-vect-slp.c (vect_analyze_slp_instance): Set matches to true
9389 after successful discovery but forced split.
9391 2020-10-12 Tom de Vries <tdevries@suse.de>
9393 * config/nvptx/nvptx.opt (-msoft-stack-reserve-local): Rename to ...
9394 (-msoft-stack-reserve-local=): ... this.
9396 2020-10-12 Richard Biener <rguenther@suse.de>
9398 PR tree-optimization/97357
9399 * tree-ssa-loop-split.c (ssa_semi_invariant_p): Abnormal
9400 SSA names are not semi invariant.
9402 2020-10-11 Iain Sandoe <iain@sandoe.co.uk>
9404 * config/darwin.c (darwin_globalize_label): Make a subset of
9405 metadate symbols global.
9406 (darwin_label_is_anonymous_local_objc_name): Make a subset of
9407 metadata symbols linker-visible.
9408 (darwin_override_options): Track more target OS versions, make
9409 the next_runtime version track this (unless it's set to 0 for
9412 2020-10-11 Iain Sandoe <iain@sandoe.co.uk>
9414 * config/darwin.c (darwin_globalize_label): Add protocol
9415 meta-data labels to the set that are global.
9416 (darwin_label_is_anonymous_local_objc_name): Arrange for meta-
9417 data start labels to be linker-visible.
9419 2020-10-11 Iain Sandoe <iain@sandoe.co.uk>
9421 * config/darwin.c (darwin_objc2_section): Allow for
9422 values > 1 to represent the next runtime.
9423 (darwin_objc1_section): Likewise.
9424 * config/darwin.h (NEXT_OBJC_RUNTIME): Set the default
9425 next runtime value to be 10.5.8.
9427 2020-10-10 Jan Hubicka <jh@suse.cz>
9429 * ipa-modref.c (modref_transform): Fix parameter map computation.
9431 2020-10-10 Tom de Vries <tdevries@suse.de>
9434 * config/nvptx/nvptx.c (nvptx_replace_dot): New function.
9435 (write_fn_proto, write_fn_proto_from_insn, nvptx_output_call_insn):
9436 Use nvptx_replace_dot.
9438 2020-10-10 Tom de Vries <tdevries@suse.de>
9440 * config/nvptx/nvptx.c (write_fn_proto_1): New function, factored out
9442 (write_fn_proto): ... here. Return void.
9444 2020-10-10 Jan Hubicka <jh@suse.cz>
9446 * ipa-modref.c (remap_arguments): Check range in map access.
9448 2020-10-10 Jan Hubicka <jh@suse.cz>
9450 * ipa-modref.c (modref_transform): Use reserve instead of safe_grow.
9452 2020-10-10 Jan Hubicka <jh@suse.cz>
9454 * ipa-modref.c (modref_transform): Check that summaries are allocated.
9456 2020-10-10 Jan Hubicka <jh@suse.cz>
9458 * ipa-modref-tree.h (struct modref_tree): Revert prevoius change.
9459 * ipa-modref.c (analyze_function): Dump original summary.
9460 (modref_read): Only set IPA if streaming summary (not optimization
9462 (remap_arguments): New function.
9463 (modref_transform): New function.
9464 (compute_parm_map): Fix offset calculation.
9465 (ipa_merge_modref_summary_after_inlining): Do not merge stores when
9466 they can be ignored.
9468 2020-10-10 Jan Hubicka <jh@suse.cz>
9470 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Improve debug dumps.
9471 (call_may_clobber_ref_p_1): Improve debug dumps.
9473 2020-10-10 Iain Sandoe <iain@sandoe.co.uk>
9475 * config/darwin.c (output_objc_section_asm_op): Avoid extra
9476 objective-c section switches unless the linker needs them.
9478 2020-10-10 Iain Sandoe <iain@sandoe.co.uk>
9480 * config/darwin-sections.def (objc2_data_section): New.
9481 (objc2_ivar_section): New.
9482 * config/darwin.c (darwin_objc2_section): Act on Protocol and
9485 2020-10-10 Iain Sandoe <iain@sandoe.co.uk>
9487 * config/darwin-sections.def (objc2_class_names_section,
9488 objc2_method_names_section, objc2_method_types_section): New
9489 * config/darwin.c (output_objc_section_asm_op): Output new
9490 sections. (darwin_objc2_section): Select new sections where
9493 2020-10-10 Iain Sandoe <iain@sandoe.co.uk>
9495 * config/darwin.c (darwin_emit_local_bss): Amend section names to
9496 match system tools. (darwin_output_aligned_bss): Likewise.
9498 2020-10-10 Aldy Hernandez <aldyh@redhat.com>
9500 PR tree-optimization/97359
9501 * gimple-range-gori.cc (logical_stmt_cache::cacheable_p): Only
9502 handle ANDs and ORs.
9503 (gori_compute_cache::cache_stmt): Adjust comment.
9505 2020-10-09 Vladimir Makarov <vmakarov@redhat.com>
9507 PR rtl-optimization/97313
9508 * lra-constraints.c (match_reload): Don't keep strict_low_part in
9509 reloads for non-registers.
9511 2020-10-09 H.J. Lu <hjl.tools@gmail.com>
9514 * config.gcc (extra_headers): Add x86gprintrin.h.
9515 * config/i386/adxintrin.h: Check _X86GPRINTRIN_H_INCLUDED for
9517 * config/i386/bmi2intrin.h: Likewise.
9518 * config/i386/bmiintrin.h: Likewise.
9519 * config/i386/cetintrin.h: Likewise.
9520 * config/i386/cldemoteintrin.h: Likewise.
9521 * config/i386/clflushoptintrin.h: Likewise.
9522 * config/i386/clwbintrin.h: Likewise.
9523 * config/i386/enqcmdintrin.h: Likewise.
9524 * config/i386/fxsrintrin.h: Likewise.
9525 * config/i386/ia32intrin.h: Likewise.
9526 * config/i386/lwpintrin.h: Likewise.
9527 * config/i386/lzcntintrin.h: Likewise.
9528 * config/i386/movdirintrin.h: Likewise.
9529 * config/i386/pconfigintrin.h: Likewise.
9530 * config/i386/pkuintrin.h: Likewise.
9531 * config/i386/rdseedintrin.h: Likewise.
9532 * config/i386/rtmintrin.h: Likewise.
9533 * config/i386/serializeintrin.h: Likewise.
9534 * config/i386/tbmintrin.h: Likewise.
9535 * config/i386/tsxldtrkintrin.h: Likewise.
9536 * config/i386/waitpkgintrin.h: Likewise.
9537 * config/i386/wbnoinvdintrin.h: Likewise.
9538 * config/i386/xsavecintrin.h: Likewise.
9539 * config/i386/xsaveintrin.h: Likewise.
9540 * config/i386/xsaveoptintrin.h: Likewise.
9541 * config/i386/xsavesintrin.h: Likewise.
9542 * config/i386/xtestintrin.h: Likewise.
9543 * config/i386/immintrin.h: Include <x86gprintrin.h> instead of
9544 <fxsrintrin.h>, <xsaveintrin.h>, <xsaveoptintrin.h>,
9545 <xsavesintrin.h>, <xsavecintrin.h>, <lzcntintrin.h>,
9546 <bmiintrin.h>, <bmi2intrin.h>, <xtestintrin.h>, <cetintrin.h>,
9547 <movdirintrin.h>, <sgxintrin.h, <pconfigintrin.h>,
9548 <waitpkgintrin.h>, <cldemoteintrin.h>, <enqcmdintrin.h>,
9549 <serializeintrin.h>, <tsxldtrkintrin.h>, <adxintrin.h>,
9550 <clwbintrin.h>, <clflushoptintrin.h>, <wbnoinvdintrin.h> and
9552 (_wbinvd): Moved to config/i386/x86gprintrin.h.
9553 (_rdrand16_step): Likewise.
9554 (_rdrand32_step): Likewise.
9555 (_rdpid_u32): Likewise.
9556 (_readfsbase_u32): Likewise.
9557 (_readfsbase_u64): Likewise.
9558 (_readgsbase_u32): Likewise.
9559 (_readgsbase_u64): Likewise.
9560 (_writefsbase_u32): Likewise.
9561 (_writefsbase_u64): Likewise.
9562 (_writegsbase_u32): Likewise.
9563 (_writegsbase_u64): Likewise.
9564 (_rdrand64_step): Likewise.
9565 (_ptwrite64): Likewise.
9566 (_ptwrite32): Likewise.
9567 * config/i386/x86gprintrin.h: New file.
9568 * config/i386/x86intrin.h: Include <x86gprintrin.h>. Don't
9569 include <ia32intrin.h>, <lwpintrin.h>, <tbmintrin.h>,
9570 <popcntintrin.h>, <mwaitxintrin.h> and <clzerointrin.h>.
9572 2020-10-09 Tom de Vries <tdevries@suse.de>
9575 * config/nvptx/nvptx.h (ASM_SPEC): Also pass -m to nvptx-as if
9577 * config/nvptx/nvptx.opt (misa): Init with PTX_ISA_SM35.
9579 2020-10-09 Richard Biener <rguenther@suse.de>
9581 * doc/sourcebuild.texi (vect_masked_load): Document.
9583 2020-10-09 Richard Biener <rguenther@suse.de>
9585 PR tree-optimization/97334
9586 * tree-vect-slp.c (vect_build_slp_tree_1): Do not fatally
9587 fail lanes other than zero when BB vectorizing.
9589 2020-10-09 Jan Hubicka <jh@suse.cz>
9593 * ipa-modref-tree.h (copy_from): Drop summary in a
9596 2020-10-09 Richard Biener <rguenther@suse.de>
9598 PR tree-optimization/97347
9599 * tree-vect-slp.c (vect_create_constant_vectors): Use
9600 edge insertion when inserting on the fallthru edge,
9601 appropriately insert at the start of BBs when inserting
9604 2020-10-09 Andrew MacLeod <amacleod@redhat.com>
9606 PR tree-optimization/97317
9607 * range-op.cc (operator_cast::op1_range): Handle casts where the precision
9608 of the RHS is only 1 greater than the precision of the LHS.
9610 2020-10-09 Richard Biener <rguenther@suse.de>
9612 * cgraphunit.c (expand_all_functions): Free tp_first_run_order.
9613 * ipa-modref.c (pass_ipa_modref::execute): Free order.
9614 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations): Free
9616 * tree-vect-data-refs.c (vect_find_stmt_data_reference): Free
9617 data references upon failure.
9618 * tree-vect-loop.c (update_epilogue_loop_vinfo): Free BBs
9619 array of the original loop.
9620 * tree-vect-slp.c (vect_slp_bbs): Use an auto_vec for
9621 dataref_groups to release its memory.
9623 2020-10-09 Jakub Jelinek <jakub@redhat.com>
9625 PR tree-optimization/94801
9627 * vr-values.c (vr_values::extract_range_basic) <CASE_CFN_CLZ,
9628 CASE_CFN_CTZ>: When stmt is not an internal-fn call or
9629 C?Z_DEFINED_VALUE_AT_ZERO is not 2, assume argument is not zero
9630 and thus use [0, prec-1] range unless it can be further improved.
9631 For CTZ, don't update maxi from upper bound if it was previously prec.
9632 * gimple-range.cc (gimple_ranger::range_of_builtin_call) <CASE_CFN_CLZ,
9633 CASE_CFN_CTZ>: Likewise.
9635 2020-10-09 Jakub Jelinek <jakub@redhat.com>
9637 PR tree-optimization/97325
9638 * match.pd (FFS(nonzero) -> CTZ(nonzero) + 1): Cast argument to
9639 corresponding unsigned type.
9641 2020-10-09 Richard Biener <rguenther@suse.de>
9643 * tree-vect-slp.c (vect_create_constant_vectors): Properly insert
9646 2020-10-08 Alexandre Oliva <oliva@adacore.com>
9648 * builtins.c (mathfn_built_in_type): New.
9649 * builtins.h (mathfn_built_in_type): Declare.
9650 * tree-ssa-math-opts.c (execute_cse_sincos_1): Use it to
9651 obtain the type expected by the intrinsic.
9653 2020-10-08 Will Schmidt <will_schmidt@vnet.ibm.com>
9655 * config/rs6000/rs6000-builtin.def (BU_P10_MISC_2): Rename
9656 to BU_P10_POWERPC64_MISC_2.
9657 CFUGED, CNTLZDM, CNTTZDM, PDEPD, PEXTD): Call renamed macro.
9659 2020-10-08 Jan Hubicka <jh@suse.cz>
9661 * tree-nrv.c (dest_safe_for_nrv_p): Disable tbaa in
9662 call_may_clobber_ref_p and ref_maybe_used_by_stmt_p.
9663 * tree-tailcall.c (find_tail_calls): Likewise.
9664 * tree-ssa-alias.c (call_may_clobber_ref_p): Add tbaa_p parameter.
9665 * tree-ssa-alias.h (call_may_clobber_ref_p): Update prototype.
9666 * tree-ssa-sccvn.c (vn_reference_lookup_3): Pass data->tbaa_p
9667 to call_may_clobber_ref_p_1.
9669 2020-10-08 Mark Wielaard <mark@klomp.org>
9671 * dwarf2out.c (dwarf2out_finish): Emit .file 0 entry when
9672 generating DWARF5 .debug_line table through gas.
9674 2020-10-08 John Henning <john.henning@oracle.com>
9677 * doc/invoke.texi: Improve documentation of
9678 -fallow-store-data-races.
9680 2020-10-08 Christophe Lyon <christophe.lyon@linaro.org>
9683 * config/arm/arm_mve.h (__arm_vcvtnq_u32_f32): New.
9685 2020-10-08 Martin Liska <mliska@suse.cz>
9686 Richard Biener <rguenther@suse.de>
9688 * tree-vectorizer.h (_bb_vec_info::const_iterator): Remove.
9689 (_bb_vec_info::const_reverse_iterator): Likewise.
9690 (_bb_vec_info::region_stmts): Likewise.
9691 (_bb_vec_info::reverse_region_stmts): Likewise.
9692 (_bb_vec_info::_bb_vec_info): Adjust.
9693 (_bb_vec_info::bb): Remove.
9694 (_bb_vec_info::region_begin): Remove.
9695 (_bb_vec_info::region_end): Remove.
9696 (_bb_vec_info::bbs): New vector of BBs.
9697 (vect_slp_function): Declare.
9698 * tree-vect-patterns.c (vect_determine_precisions): Use
9699 regular stmt iteration.
9700 (vect_pattern_recog): Likewise.
9701 * tree-vect-slp.c: Include cfganal.h, tree-eh.h and tree-cfg.h.
9702 (vect_build_slp_tree_1): Properly refuse to vectorize
9703 volatile and throwing stmts.
9704 (vect_build_slp_tree_2): Pass group-size down to
9705 get_vectype_for_scalar_type.
9706 (_bb_vec_info::_bb_vec_info): Use regular stmt iteration,
9707 adjust for changed region specification.
9708 (_bb_vec_info::~_bb_vec_info): Likewise.
9709 (vect_slp_check_for_constructors): Likewise.
9710 (vect_slp_region): Likewise.
9711 (vect_slp_bbs): New worker operating on a vector of BBs.
9712 (vect_slp_bb): Wrap it.
9713 (vect_slp_function): New function splitting the function
9714 into multi-BB regions.
9715 (vect_create_constant_vectors): Handle the case of inserting
9716 after a throwing def.
9717 (vect_schedule_slp_instance): Adjust.
9718 * tree-vectorizer.c (vec_info::remove_stmt): Simplify again.
9719 (vec_info::insert_seq_on_entry): Adjust.
9720 (pass_slp_vectorize::execute): Also init PHIs. Call
9723 2020-10-08 Richard Biener <rguenther@suse.de>
9725 PR tree-optimization/97330
9726 * tree-ssa-sink.c (statement_sink_location): Avoid skipping
9727 PHIs when they dominate the insert location.
9729 2020-10-08 Jan Hubicka <jh@suse.cz>
9731 * ipa-modref.c (get_access): Fix handling of offsets.
9732 * tree-ssa-alias.c (modref_may_conflict): Watch for overflows.
9734 2020-10-08 Martin Liska <mliska@suse.cz>
9736 * dbgcnt.def (DEBUG_COUNTER): Add ipa_mod_ref debug counter.
9737 * tree-ssa-alias.c (modref_may_conflict): Handle the counter.
9739 2020-10-08 Richard Biener <rguenther@suse.de>
9741 * tree-vectorizer.c (try_vectorize_loop_1): Do not dump
9742 "basic block vectorized".
9743 (pass_slp_vectorize::execute): Likewise.
9744 * tree-vect-slp.c (vect_analyze_slp_instance): Avoid
9745 re-analyzing split single stmts.
9747 2020-10-08 Christophe Lyon <christophe.lyon@linaro.org>
9750 * config/arm/arm_mve.h (vqrdmlashq_n_u8, vqrdmlashq_n_u16)
9751 (vqrdmlashq_n_u32, vqrdmlahq_n_u8, vqrdmlahq_n_u16)
9752 (vqrdmlahq_n_u32, vqdmlahq_n_u8, vqdmlahq_n_u16, vqdmlahq_n_u32)
9753 (vmlaldavaxq_p_u16, vmlaldavaxq_p_u32): Remove.
9754 * config/arm/arm_mve_builtins.def (vqrdmlashq_n_u, vqrdmlahq_n_u)
9755 (vqdmlahq_n_u, vmlaldavaxq_p_u): Remove.
9756 * config/arm/unspecs.md (VQDMLAHQ_N_U, VQRDMLAHQ_N_U)
9758 (VMLALDAVAXQ_P_U): Remove unspecs.
9759 * config/arm/iterators.md (VQDMLAHQ_N_U, VQRDMLAHQ_N_U)
9760 (VQRDMLASHQ_N_U, VMLALDAVAXQ_P_U): Remove attributes.
9761 (VQDMLAHQ_N, VQRDMLAHQ_N, VQRDMLASHQ_N, VMLALDAVAXQ_P): Remove
9762 unsigned variants from iterators.
9763 * config/arm/mve.md (mve_vqdmlahq_n_<supf><mode>)
9764 (mve_vqrdmlahq_n_<supf><mode>)
9765 (mve_vqrdmlashq_n_<supf><mode>, mve_vmlaldavaxq_p_<supf><mode>):
9768 2020-10-08 Christophe Lyon <christophe.lyon@linaro.org>
9771 * config/arm/arm_mve.h (vqdmlashq, vqdmlashq_m): Define.
9772 * config/arm/arm_mve_builtins.def (vqdmlashq_n_s)
9773 (vqdmlashq_m_n_s,): New.
9774 * config/arm/unspecs.md (VQDMLASHQ_N_S, VQDMLASHQ_M_N_S): New
9776 * config/arm/iterators.md (VQDMLASHQ_N_S, VQDMLASHQ_M_N_S): New
9778 (VQDMLASHQ_N): New iterator.
9779 * config/arm/mve.md (mve_vqdmlashq_n_, mve_vqdmlashq_m_n_s): New
9782 2020-10-08 Jakub Jelinek <jakub@redhat.com>
9785 * config/arm/arm.c (arm_expand_divmod_libfunc): Pass mode instead of
9786 GET_MODE (op0) or GET_MODE (op1) to emit_library_call_value.
9788 2020-10-08 Aldy Hernandez <aldyh@redhat.com>
9790 PR tree-optimization/97325
9791 * gimple-range.cc (gimple_ranger::range_of_builtin_call): Handle
9792 negative numbers in __builtin_ffs and __builtin_popcount.
9794 2020-10-08 Aldy Hernandez <aldyh@redhat.com>
9796 PR tree-optimization/97315
9797 * range-op.cc (value_range_with_overflow): Change any
9798 non-overflow calculation in which both bounds are
9799 overflow/underflow to be undefined.
9801 2020-10-08 Aldy Hernandez <aldyh@redhat.com>
9803 PR tree-optimization/97315
9804 * gimple-ssa-evrp.c (hybrid_folder::choose_value): Removes the
9805 trap and instead annotates the listing.
9807 2020-10-08 Jakub Jelinek <jakub@redhat.com>
9810 * tree-cfg.c (move_block_to_fn): Call notice_special_calls on
9811 call stmts being moved into dest_cfun.
9812 * omp-low.c (lower_rec_input_clauses): Set cfun->calls_alloca when
9813 adding __builtin_alloca_with_align call without gimplification.
9815 2020-10-07 Aldy Hernandez <aldyh@redhat.com>
9817 * common.opt (-fevrp-mode): Rename and move...
9818 * params.opt (--param=evrp-mode): ...here.
9819 * gimple-range.h (DEBUG_RANGE_CACHE): Use param_evrp_mode instead
9821 * gimple-ssa-evrp.c (rvrp_folder): Same.
9822 (hybrid_folder): Same.
9823 (execute_early_vrp): Same.
9825 2020-10-07 Richard Biener <rguenther@suse.de>
9827 PR tree-optimization/97307
9828 * tree-ssa-sink.c (statement_sink_location): Change heuristic
9829 for not skipping stores to look for virtual definitions
9832 2020-10-07 Andrew MacLeod <amacleod@redhat.com>
9834 * value-range.h (irange_allocator::allocate): Allocate in two hunks
9835 instead of using the variably-sized trailing array approach.
9837 2020-10-07 David Malcolm <dmalcolm@redhat.com>
9839 * doc/invoke.texi (-fdiagnostics-plain-output): Add
9840 -fdiagnostics-path-format=separate-events to list of
9841 options injected by -fdiagnostics-plain-output.
9842 * opts-common.c (decode_cmdline_options_to_array): Likewise.
9844 2020-10-07 Martin Jambor <mjambor@suse.cz>
9847 * ipa-prop.c (update_indirect_edges_after_inlining): Do not add
9848 resolved speculation edges to vector of new direct edges even in
9849 presence of multiple speculative direct edges for a single call.
9851 2020-10-07 Andrew Stubbs <ams@codesourcery.com>
9853 * config/gcn/gcn.md (unspec): Add UNSPEC_ADDPTR.
9854 (addptrdi3): Add SGPR alternative.
9856 2020-10-07 Mark Wielaard <mark@klomp.org>
9858 * dwarf2out.c (add_filepath_AT_string): New function.
9859 (asm_outputs_debug_line_str): Likewise.
9860 (add_filename_attribute): Likewise.
9861 (add_comp_dir_attribute): Call add_filepath_AT_string.
9862 (gen_compile_unit_die): Call add_filename_attribute for name.
9863 (init_sections_and_labels): Init debug_line_str_section when
9864 asm_outputs_debug_line_str return true.
9865 (dwarf2out_early_finish): Remove DW_AT_name and DW_AT_comp_dir
9866 hack and call add_filename_attribute for the remap_debug_filename.
9868 2020-10-07 Jakub Jelinek <jakub@redhat.com>
9870 * configure.ac (HAVE_AS_GDWARF_5_DEBUG_FLAG,
9871 HAVE_AS_WORKING_DWARF_4_FLAG): New tests.
9872 * gcc.c (ASM_DEBUG_DWARF_OPTION): Define.
9873 (ASM_DEBUG_SPEC): Use ASM_DEBUG_DWARF_OPTION instead of
9874 "--gdwarf2". Use %{cond:opt1;:opt2} style.
9875 (ASM_DEBUG_OPTION_DWARF_OPT): Define.
9876 (ASM_DEBUG_OPTION_SPEC): Define.
9877 (asm_debug_option): New variable.
9878 (asm_options): Add "%(asm_debug_option)".
9879 (static_specs): Add asm_debug_option entry.
9880 (static_spec_functions): Add dwarf-version-gt.
9881 (debug_level_greater_than_spec_func): New function.
9882 * config/darwin.h (ASM_DEBUG_OPTION_SPEC): Define.
9883 * config/darwin9.h (ASM_DEBUG_OPTION_SPEC): Redefine.
9884 * config.in: Regenerated.
9885 * configure: Regenerated.
9887 2020-10-07 Jakub Jelinek <jakub@redhat.com>
9890 * optc-save-gen.awk: Don't declare mask variable if explicit_mask
9891 array is not present.
9893 2020-10-07 Jakub Jelinek <jakub@redhat.com>
9895 * omp-expand.c (expand_omp_simd): Don't emit MIN_EXPR and PLUS_EXPR
9896 at the end of entry_bb and innermost init_bb, instead force arguments
9897 for MIN_EXPR into temporaries in both cases and jump to a new bb that
9898 performs MIN_EXPR and PLUS_EXPR.
9900 2020-10-07 Tom de Vries <tdevries@suse.de>
9902 * tree-ssa-loop-ch.c (ch_base::copy_headers): Add missing NULL test
9905 2020-10-06 Andrew MacLeod <amacleod@redhat.com>
9907 * flag-types.h (enum evrp_mode): New enumerated type EVRP_MODE_*.
9908 * common.opt (fevrp-mode): New undocumented flag.
9909 * gimple-ssa-evrp.c: Include gimple-range.h
9910 (class rvrp_folder): EVRP folding using ranger exclusively.
9911 (rvrp_folder::rvrp_folder): New.
9912 (rvrp_folder::~rvrp_folder): New.
9913 (rvrp_folder::value_of_expr): New. Use rangers value_of_expr.
9914 (rvrp_folder::value_on_edge): New. Use rangers value_on_edge.
9915 (rvrp_folder::value_of_Stmt): New. Use rangers value_of_stmt.
9916 (rvrp_folder::fold_stmt): New. Call the simplifier.
9917 (class hybrid_folder): EVRP folding using both engines.
9918 (hybrid_folder::hybrid_folder): New.
9919 (hybrid_folder::~hybrid_folder): New.
9920 (hybrid_folder::fold_stmt): New. Simplify with one engne, then the
9922 (hybrid_folder::value_of_expr): New. Use both value routines.
9923 (hybrid_folder::value_on_edge): New. Use both value routines.
9924 (hybrid_folder::value_of_stmt): New. Use both value routines.
9925 (hybrid_folder::choose_value): New. Choose between range_analzyer and
9927 (execute_early_vrp): Choose a folder based on flag_evrp_mode.
9928 * vr-values.c (simplify_using_ranges::fold_cond): Try range_of_stmt
9929 first to see if it returns a value.
9930 (simplify_using_ranges::simplify_switch_using_ranges): Return true if
9931 any changes were made to the switch.
9933 2020-10-06 Andrew MacLeod <amacleod@redhat.com>
9935 * Makefile.in (OBJS): Add gimple-range*.o.
9936 * gimple-range.h: New file.
9937 * gimple-range.cc: New file.
9938 * gimple-range-cache.h: New file.
9939 * gimple-range-cache.cc: New file.
9940 * gimple-range-edge.h: New file.
9941 * gimple-range-edge.cc: New file.
9942 * gimple-range-gori.h: New file.
9943 * gimple-range-gori.cc: New file.
9945 2020-10-06 Dennis Zhang <dennis.zhang@arm.com>
9947 * config/arm/arm.c (arm_preferred_simd_mode): Enable MVE SIMD modes.
9949 2020-10-06 Tom de Vries <tdevries@suse.de>
9952 * gimplify.c (gimplify_bind_expr): Handle lookup in
9953 oacc_declare_returns using key with decl-expr.
9955 2020-10-06 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
9957 * config/arm/iterators.md (MVE_types): Move mode iterator from mve.md to
9959 (MVE_VLD_ST): Likewise.
9966 (MVE_CNVT): Move mode attribute iterator from mve.md to iterators.md.
9967 (MVE_LANES): Likewise.
9968 (MVE_constraint): Likewise.
9969 (MVE_constraint1): Likewise.
9970 (MVE_constraint2): Likewise.
9971 (MVE_constraint3): Likewise.
9972 (MVE_pred): Likewise.
9973 (MVE_pred1): Likewise.
9974 (MVE_pred2): Likewise.
9975 (MVE_pred3): Likewise.
9976 (MVE_B_ELEM): Likewise.
9977 (MVE_H_ELEM): Likewise.
9978 (V_sz_elem1): Likewise.
9979 (V_extr_elem): Likewise.
9980 (earlyclobber_32): Likewise.
9981 (supf): Move int attribute from mve.md to iterators.md.
9983 (VCVTQ_TO_F): Move int iterator from mve.md to iterators.md.
9984 (VMVNQ_N): Likewise.
9985 (VREV64Q): Likewise.
9986 (VCVTQ_FROM_F): Likewise.
9987 (VREV16Q): Likewise.
9990 (VDUPQ_N): Likewise.
9993 (VREV32Q): Likewise.
9994 (VMOVLBQ): Likewise.
9995 (VMOVLTQ): Likewise.
9999 (VADDLVQ): Likewise.
10001 (VCTPQ_M): Likewise.
10002 (VCVTQ_N_TO_F): Likewise.
10003 (VCREATEQ): Likewise.
10004 (VSHRQ_N): Likewise.
10005 (VCVTQ_N_FROM_F): Likewise.
10006 (VADDLVQ_P): Likewise.
10007 (VCMPNEQ): Likewise.
10010 (VADDQ_N): Likewise.
10011 (VADDVAQ): Likewise.
10012 (VADDVQ_P): Likewise.
10015 (VBRSRQ_N): Likewise.
10016 (VCADDQ_ROT270): Likewise.
10017 (VCADDQ_ROT90): Likewise.
10018 (VCMPEQQ): Likewise.
10019 (VCMPEQQ_N): Likewise.
10020 (VCMPNEQ_N): Likewise.
10022 (VHADDQ): Likewise.
10023 (VHADDQ_N): Likewise.
10024 (VHSUBQ): Likewise.
10025 (VHSUBQ_N): Likewise.
10027 (VMAXVQ): Likewise.
10029 (VMINVQ): Likewise.
10030 (VMLADAVQ): Likewise.
10031 (VMULHQ): Likewise.
10032 (VMULLBQ_INT): Likewise.
10033 (VMULLTQ_INT): Likewise.
10035 (VMULQ_N): Likewise.
10038 (VQADDQ): Likewise.
10039 (VQADDQ_N): Likewise.
10040 (VQRSHLQ): Likewise.
10041 (VQRSHLQ_N): Likewise.
10042 (VQSHLQ): Likewise.
10043 (VQSHLQ_N): Likewise.
10044 (VQSHLQ_R): Likewise.
10045 (VQSUBQ): Likewise.
10046 (VQSUBQ_N): Likewise.
10047 (VRHADDQ): Likewise.
10048 (VRMULHQ): Likewise.
10049 (VRSHLQ): Likewise.
10050 (VRSHLQ_N): Likewise.
10051 (VRSHRQ_N): Likewise.
10052 (VSHLQ_N): Likewise.
10053 (VSHLQ_R): Likewise.
10055 (VSUBQ_N): Likewise.
10056 (VADDLVAQ): Likewise.
10057 (VBICQ_N): Likewise.
10058 (VMLALDAVQ): Likewise.
10059 (VMLALDAVXQ): Likewise.
10060 (VMOVNBQ): Likewise.
10061 (VMOVNTQ): Likewise.
10062 (VORRQ_N): Likewise.
10063 (VQMOVNBQ): Likewise.
10064 (VQMOVNTQ): Likewise.
10065 (VSHLLBQ_N): Likewise.
10066 (VSHLLTQ_N): Likewise.
10067 (VRMLALDAVHQ): Likewise.
10068 (VBICQ_M_N): Likewise.
10069 (VCVTAQ_M): Likewise.
10070 (VCVTQ_M_TO_F): Likewise.
10071 (VQRSHRNBQ_N): Likewise.
10072 (VABAVQ): Likewise.
10073 (VSHLCQ): Likewise.
10074 (VRMLALDAVHAQ): Likewise.
10075 (VADDVAQ_P): Likewise.
10076 (VCLZQ_M): Likewise.
10077 (VCMPEQQ_M_N): Likewise.
10078 (VCMPEQQ_M): Likewise.
10079 (VCMPNEQ_M_N): Likewise.
10080 (VCMPNEQ_M): Likewise.
10081 (VDUPQ_M_N): Likewise.
10082 (VMAXVQ_P): Likewise.
10083 (VMINVQ_P): Likewise.
10084 (VMLADAVAQ): Likewise.
10085 (VMLADAVQ_P): Likewise.
10086 (VMLAQ_N): Likewise.
10087 (VMLASQ_N): Likewise.
10088 (VMVNQ_M): Likewise.
10089 (VPSELQ): Likewise.
10090 (VQDMLAHQ_N): Likewise.
10091 (VQRDMLAHQ_N): Likewise.
10092 (VQRDMLASHQ_N): Likewise.
10093 (VQRSHLQ_M_N): Likewise.
10094 (VQSHLQ_M_R): Likewise.
10095 (VREV64Q_M): Likewise.
10096 (VRSHLQ_M_N): Likewise.
10097 (VSHLQ_M_R): Likewise.
10098 (VSLIQ_N): Likewise.
10099 (VSRIQ_N): Likewise.
10100 (VMLALDAVQ_P): Likewise.
10101 (VQMOVNBQ_M): Likewise.
10102 (VMOVLTQ_M): Likewise.
10103 (VMOVNBQ_M): Likewise.
10104 (VRSHRNTQ_N): Likewise.
10105 (VORRQ_M_N): Likewise.
10106 (VREV32Q_M): Likewise.
10107 (VREV16Q_M): Likewise.
10108 (VQRSHRNTQ_N): Likewise.
10109 (VMOVNTQ_M): Likewise.
10110 (VMOVLBQ_M): Likewise.
10111 (VMLALDAVAQ): Likewise.
10112 (VQSHRNBQ_N): Likewise.
10113 (VSHRNBQ_N): Likewise.
10114 (VRSHRNBQ_N): Likewise.
10115 (VMLALDAVXQ_P): Likewise.
10116 (VQMOVNTQ_M): Likewise.
10117 (VMVNQ_M_N): Likewise.
10118 (VQSHRNTQ_N): Likewise.
10119 (VMLALDAVAXQ): Likewise.
10120 (VSHRNTQ_N): Likewise.
10121 (VCVTMQ_M): Likewise.
10122 (VCVTNQ_M): Likewise.
10123 (VCVTPQ_M): Likewise.
10124 (VCVTQ_M_N_FROM_F): Likewise.
10125 (VCVTQ_M_FROM_F): Likewise.
10126 (VRMLALDAVHQ_P): Likewise.
10127 (VADDLVAQ_P): Likewise.
10128 (VABAVQ_P): Likewise.
10129 (VSHLQ_M): Likewise.
10130 (VSRIQ_M_N): Likewise.
10131 (VSUBQ_M): Likewise.
10132 (VCVTQ_M_N_TO_F): Likewise.
10133 (VHSUBQ_M): Likewise.
10134 (VSLIQ_M_N): Likewise.
10135 (VRSHLQ_M): Likewise.
10136 (VMINQ_M): Likewise.
10137 (VMULLBQ_INT_M): Likewise.
10138 (VMULHQ_M): Likewise.
10139 (VMULQ_M): Likewise.
10140 (VHSUBQ_M_N): Likewise.
10141 (VHADDQ_M_N): Likewise.
10142 (VORRQ_M): Likewise.
10143 (VRMULHQ_M): Likewise.
10144 (VQADDQ_M): Likewise.
10145 (VRSHRQ_M_N): Likewise.
10146 (VQSUBQ_M_N): Likewise.
10147 (VADDQ_M): Likewise.
10148 (VORNQ_M): Likewise.
10149 (VRHADDQ_M): Likewise.
10150 (VQSHLQ_M): Likewise.
10151 (VANDQ_M): Likewise.
10152 (VBICQ_M): Likewise.
10153 (VSHLQ_M_N): Likewise.
10154 (VCADDQ_ROT270_M): Likewise.
10155 (VQRSHLQ_M): Likewise.
10156 (VQADDQ_M_N): Likewise.
10157 (VADDQ_M_N): Likewise.
10158 (VMAXQ_M): Likewise.
10159 (VQSUBQ_M): Likewise.
10160 (VMLASQ_M_N): Likewise.
10161 (VMLADAVAQ_P): Likewise.
10162 (VBRSRQ_M_N): Likewise.
10163 (VMULQ_M_N): Likewise.
10164 (VCADDQ_ROT90_M): Likewise.
10165 (VMULLTQ_INT_M): Likewise.
10166 (VEORQ_M): Likewise.
10167 (VSHRQ_M_N): Likewise.
10168 (VSUBQ_M_N): Likewise.
10169 (VHADDQ_M): Likewise.
10170 (VABDQ_M): Likewise.
10171 (VMLAQ_M_N): Likewise.
10172 (VQSHLQ_M_N): Likewise.
10173 (VMLALDAVAQ_P): Likewise.
10174 (VMLALDAVAXQ_P): Likewise.
10175 (VQRSHRNBQ_M_N): Likewise.
10176 (VQRSHRNTQ_M_N): Likewise.
10177 (VQSHRNBQ_M_N): Likewise.
10178 (VQSHRNTQ_M_N): Likewise.
10179 (VRSHRNBQ_M_N): Likewise.
10180 (VRSHRNTQ_M_N): Likewise.
10181 (VSHLLBQ_M_N): Likewise.
10182 (VSHLLTQ_M_N): Likewise.
10183 (VSHRNBQ_M_N): Likewise.
10184 (VSHRNTQ_M_N): Likewise.
10185 (VSTRWSBQ): Likewise.
10186 (VSTRBSOQ): Likewise.
10187 (VSTRBQ): Likewise.
10188 (VLDRBGOQ): Likewise.
10189 (VLDRBQ): Likewise.
10190 (VLDRWGBQ): Likewise.
10192 (VLDRHGOQ): Likewise.
10193 (VLDRHGSOQ): Likewise.
10194 (VLDRHQ): Likewise.
10195 (VLDRWQ): Likewise.
10196 (VLDRDGBQ): Likewise.
10197 (VLDRDGOQ): Likewise.
10198 (VLDRDGSOQ): Likewise.
10199 (VLDRWGOQ): Likewise.
10200 (VLDRWGSOQ): Likewise.
10202 (VSTRHSOQ): Likewise.
10203 (VSTRHSSOQ): Likewise.
10204 (VSTRHQ): Likewise.
10205 (VSTRWQ): Likewise.
10206 (VSTRDSBQ): Likewise.
10207 (VSTRDSOQ): Likewise.
10208 (VSTRDSSOQ): Likewise.
10209 (VSTRWSOQ): Likewise.
10210 (VSTRWSSOQ): Likewise.
10211 (VSTRWSBWBQ): Likewise.
10212 (VLDRWGBWBQ): Likewise.
10213 (VSTRDSBWBQ): Likewise.
10214 (VLDRDGBWBQ): Likewise.
10215 (VADCIQ): Likewise.
10216 (VADCIQ_M): Likewise.
10218 (VSBCQ_M): Likewise.
10219 (VSBCIQ): Likewise.
10220 (VSBCIQ_M): Likewise.
10222 (VADCQ_M): Likewise.
10223 (UQRSHLLQ): Likewise.
10224 (SQRSHRLQ): Likewise.
10225 (VSHLCQ_M): Likewise.
10226 * config/arm/mve.md (MVE_types): Move mode iterator to iterators.md from mve.md.
10227 (MVE_VLD_ST): Likewise.
10234 (MVE_CNVT): Move mode attribute iterator to iterators.md from mve.md.
10235 (MVE_LANES): Likewise.
10236 (MVE_constraint): Likewise.
10237 (MVE_constraint1): Likewise.
10238 (MVE_constraint2): Likewise.
10239 (MVE_constraint3): Likewise.
10240 (MVE_pred): Likewise.
10241 (MVE_pred1): Likewise.
10242 (MVE_pred2): Likewise.
10243 (MVE_pred3): Likewise.
10244 (MVE_B_ELEM): Likewise.
10245 (MVE_H_ELEM): Likewise.
10246 (V_sz_elem1): Likewise.
10247 (V_extr_elem): Likewise.
10248 (earlyclobber_32): Likewise.
10249 (supf): Move int attribute to iterators.md from mve.md.
10251 (VCVTQ_TO_F): Move int iterator to iterators.md from mve.md.
10252 (VMVNQ_N): Likewise.
10253 (VREV64Q): Likewise.
10254 (VCVTQ_FROM_F): Likewise.
10255 (VREV16Q): Likewise.
10256 (VCVTAQ): Likewise.
10258 (VDUPQ_N): Likewise.
10260 (VADDVQ): Likewise.
10261 (VREV32Q): Likewise.
10262 (VMOVLBQ): Likewise.
10263 (VMOVLTQ): Likewise.
10264 (VCVTPQ): Likewise.
10265 (VCVTNQ): Likewise.
10266 (VCVTMQ): Likewise.
10267 (VADDLVQ): Likewise.
10269 (VCTPQ_M): Likewise.
10270 (VCVTQ_N_TO_F): Likewise.
10271 (VCREATEQ): Likewise.
10272 (VSHRQ_N): Likewise.
10273 (VCVTQ_N_FROM_F): Likewise.
10274 (VADDLVQ_P): Likewise.
10275 (VCMPNEQ): Likewise.
10278 (VADDQ_N): Likewise.
10279 (VADDVAQ): Likewise.
10280 (VADDVQ_P): Likewise.
10283 (VBRSRQ_N): Likewise.
10284 (VCADDQ_ROT270): Likewise.
10285 (VCADDQ_ROT90): Likewise.
10286 (VCMPEQQ): Likewise.
10287 (VCMPEQQ_N): Likewise.
10288 (VCMPNEQ_N): Likewise.
10290 (VHADDQ): Likewise.
10291 (VHADDQ_N): Likewise.
10292 (VHSUBQ): Likewise.
10293 (VHSUBQ_N): Likewise.
10295 (VMAXVQ): Likewise.
10297 (VMINVQ): Likewise.
10298 (VMLADAVQ): Likewise.
10299 (VMULHQ): Likewise.
10300 (VMULLBQ_INT): Likewise.
10301 (VMULLTQ_INT): Likewise.
10303 (VMULQ_N): Likewise.
10306 (VQADDQ): Likewise.
10307 (VQADDQ_N): Likewise.
10308 (VQRSHLQ): Likewise.
10309 (VQRSHLQ_N): Likewise.
10310 (VQSHLQ): Likewise.
10311 (VQSHLQ_N): Likewise.
10312 (VQSHLQ_R): Likewise.
10313 (VQSUBQ): Likewise.
10314 (VQSUBQ_N): Likewise.
10315 (VRHADDQ): Likewise.
10316 (VRMULHQ): Likewise.
10317 (VRSHLQ): Likewise.
10318 (VRSHLQ_N): Likewise.
10319 (VRSHRQ_N): Likewise.
10320 (VSHLQ_N): Likewise.
10321 (VSHLQ_R): Likewise.
10323 (VSUBQ_N): Likewise.
10324 (VADDLVAQ): Likewise.
10325 (VBICQ_N): Likewise.
10326 (VMLALDAVQ): Likewise.
10327 (VMLALDAVXQ): Likewise.
10328 (VMOVNBQ): Likewise.
10329 (VMOVNTQ): Likewise.
10330 (VORRQ_N): Likewise.
10331 (VQMOVNBQ): Likewise.
10332 (VQMOVNTQ): Likewise.
10333 (VSHLLBQ_N): Likewise.
10334 (VSHLLTQ_N): Likewise.
10335 (VRMLALDAVHQ): Likewise.
10336 (VBICQ_M_N): Likewise.
10337 (VCVTAQ_M): Likewise.
10338 (VCVTQ_M_TO_F): Likewise.
10339 (VQRSHRNBQ_N): Likewise.
10340 (VABAVQ): Likewise.
10341 (VSHLCQ): Likewise.
10342 (VRMLALDAVHAQ): Likewise.
10343 (VADDVAQ_P): Likewise.
10344 (VCLZQ_M): Likewise.
10345 (VCMPEQQ_M_N): Likewise.
10346 (VCMPEQQ_M): Likewise.
10347 (VCMPNEQ_M_N): Likewise.
10348 (VCMPNEQ_M): Likewise.
10349 (VDUPQ_M_N): Likewise.
10350 (VMAXVQ_P): Likewise.
10351 (VMINVQ_P): Likewise.
10352 (VMLADAVAQ): Likewise.
10353 (VMLADAVQ_P): Likewise.
10354 (VMLAQ_N): Likewise.
10355 (VMLASQ_N): Likewise.
10356 (VMVNQ_M): Likewise.
10357 (VPSELQ): Likewise.
10358 (VQDMLAHQ_N): Likewise.
10359 (VQRDMLAHQ_N): Likewise.
10360 (VQRDMLASHQ_N): Likewise.
10361 (VQRSHLQ_M_N): Likewise.
10362 (VQSHLQ_M_R): Likewise.
10363 (VREV64Q_M): Likewise.
10364 (VRSHLQ_M_N): Likewise.
10365 (VSHLQ_M_R): Likewise.
10366 (VSLIQ_N): Likewise.
10367 (VSRIQ_N): Likewise.
10368 (VMLALDAVQ_P): Likewise.
10369 (VQMOVNBQ_M): Likewise.
10370 (VMOVLTQ_M): Likewise.
10371 (VMOVNBQ_M): Likewise.
10372 (VRSHRNTQ_N): Likewise.
10373 (VORRQ_M_N): Likewise.
10374 (VREV32Q_M): Likewise.
10375 (VREV16Q_M): Likewise.
10376 (VQRSHRNTQ_N): Likewise.
10377 (VMOVNTQ_M): Likewise.
10378 (VMOVLBQ_M): Likewise.
10379 (VMLALDAVAQ): Likewise.
10380 (VQSHRNBQ_N): Likewise.
10381 (VSHRNBQ_N): Likewise.
10382 (VRSHRNBQ_N): Likewise.
10383 (VMLALDAVXQ_P): Likewise.
10384 (VQMOVNTQ_M): Likewise.
10385 (VMVNQ_M_N): Likewise.
10386 (VQSHRNTQ_N): Likewise.
10387 (VMLALDAVAXQ): Likewise.
10388 (VSHRNTQ_N): Likewise.
10389 (VCVTMQ_M): Likewise.
10390 (VCVTNQ_M): Likewise.
10391 (VCVTPQ_M): Likewise.
10392 (VCVTQ_M_N_FROM_F): Likewise.
10393 (VCVTQ_M_FROM_F): Likewise.
10394 (VRMLALDAVHQ_P): Likewise.
10395 (VADDLVAQ_P): Likewise.
10396 (VABAVQ_P): Likewise.
10397 (VSHLQ_M): Likewise.
10398 (VSRIQ_M_N): Likewise.
10399 (VSUBQ_M): Likewise.
10400 (VCVTQ_M_N_TO_F): Likewise.
10401 (VHSUBQ_M): Likewise.
10402 (VSLIQ_M_N): Likewise.
10403 (VRSHLQ_M): Likewise.
10404 (VMINQ_M): Likewise.
10405 (VMULLBQ_INT_M): Likewise.
10406 (VMULHQ_M): Likewise.
10407 (VMULQ_M): Likewise.
10408 (VHSUBQ_M_N): Likewise.
10409 (VHADDQ_M_N): Likewise.
10410 (VORRQ_M): Likewise.
10411 (VRMULHQ_M): Likewise.
10412 (VQADDQ_M): Likewise.
10413 (VRSHRQ_M_N): Likewise.
10414 (VQSUBQ_M_N): Likewise.
10415 (VADDQ_M): Likewise.
10416 (VORNQ_M): Likewise.
10417 (VRHADDQ_M): Likewise.
10418 (VQSHLQ_M): Likewise.
10419 (VANDQ_M): Likewise.
10420 (VBICQ_M): Likewise.
10421 (VSHLQ_M_N): Likewise.
10422 (VCADDQ_ROT270_M): Likewise.
10423 (VQRSHLQ_M): Likewise.
10424 (VQADDQ_M_N): Likewise.
10425 (VADDQ_M_N): Likewise.
10426 (VMAXQ_M): Likewise.
10427 (VQSUBQ_M): Likewise.
10428 (VMLASQ_M_N): Likewise.
10429 (VMLADAVAQ_P): Likewise.
10430 (VBRSRQ_M_N): Likewise.
10431 (VMULQ_M_N): Likewise.
10432 (VCADDQ_ROT90_M): Likewise.
10433 (VMULLTQ_INT_M): Likewise.
10434 (VEORQ_M): Likewise.
10435 (VSHRQ_M_N): Likewise.
10436 (VSUBQ_M_N): Likewise.
10437 (VHADDQ_M): Likewise.
10438 (VABDQ_M): Likewise.
10439 (VMLAQ_M_N): Likewise.
10440 (VQSHLQ_M_N): Likewise.
10441 (VMLALDAVAQ_P): Likewise.
10442 (VMLALDAVAXQ_P): Likewise.
10443 (VQRSHRNBQ_M_N): Likewise.
10444 (VQRSHRNTQ_M_N): Likewise.
10445 (VQSHRNBQ_M_N): Likewise.
10446 (VQSHRNTQ_M_N): Likewise.
10447 (VRSHRNBQ_M_N): Likewise.
10448 (VRSHRNTQ_M_N): Likewise.
10449 (VSHLLBQ_M_N): Likewise.
10450 (VSHLLTQ_M_N): Likewise.
10451 (VSHRNBQ_M_N): Likewise.
10452 (VSHRNTQ_M_N): Likewise.
10453 (VSTRWSBQ): Likewise.
10454 (VSTRBSOQ): Likewise.
10455 (VSTRBQ): Likewise.
10456 (VLDRBGOQ): Likewise.
10457 (VLDRBQ): Likewise.
10458 (VLDRWGBQ): Likewise.
10460 (VLDRHGOQ): Likewise.
10461 (VLDRHGSOQ): Likewise.
10462 (VLDRHQ): Likewise.
10463 (VLDRWQ): Likewise.
10464 (VLDRDGBQ): Likewise.
10465 (VLDRDGOQ): Likewise.
10466 (VLDRDGSOQ): Likewise.
10467 (VLDRWGOQ): Likewise.
10468 (VLDRWGSOQ): Likewise.
10470 (VSTRHSOQ): Likewise.
10471 (VSTRHSSOQ): Likewise.
10472 (VSTRHQ): Likewise.
10473 (VSTRWQ): Likewise.
10474 (VSTRDSBQ): Likewise.
10475 (VSTRDSOQ): Likewise.
10476 (VSTRDSSOQ): Likewise.
10477 (VSTRWSOQ): Likewise.
10478 (VSTRWSSOQ): Likewise.
10479 (VSTRWSBWBQ): Likewise.
10480 (VLDRWGBWBQ): Likewise.
10481 (VSTRDSBWBQ): Likewise.
10482 (VLDRDGBWBQ): Likewise.
10483 (VADCIQ): Likewise.
10484 (VADCIQ_M): Likewise.
10486 (VSBCQ_M): Likewise.
10487 (VSBCIQ): Likewise.
10488 (VSBCIQ_M): Likewise.
10490 (VADCQ_M): Likewise.
10491 (UQRSHLLQ): Likewise.
10492 (SQRSHRLQ): Likewise.
10493 (VSHLCQ_M): Likewise.
10494 (define_c_enum "unspec"): Move MVE enumerator to unspecs.md from mve.md.
10495 * config/arm/unspecs.md (define_c_enum "unspec"): Move MVE enumerator from
10496 mve.md to unspecs.md.
10498 2020-10-06 Martin Liska <mliska@suse.cz>
10500 * common.opt: Remove -fdbg-cnt-list from deferred options.
10501 * dbgcnt.c (dbg_cnt_set_limit_by_index): Make a copy
10502 to original_limits.
10503 (dbg_cnt_list_all_counters): Print also current counter value
10504 and print to stderr.
10505 * opts-global.c (handle_common_deferred_options): Do not handle
10507 * opts.c (common_handle_option): Likewise.
10508 * toplev.c (finalize): Handle it after compilation here.
10510 2020-10-06 Martin Liska <mliska@suse.cz>
10512 * dbgcnt.c (dbg_cnt): Report also upper limit.
10514 2020-10-06 Tom de Vries <tdevries@suse.de>
10516 * tracer.c (count_insns): Rename to ...
10517 (analyze_bb): ... this.
10518 (cache_can_duplicate_bb_p, cached_can_duplicate_bb_p): New function.
10519 (ignore_bb_p): Use cached_can_duplicate_bb_p.
10520 (tail_duplicate): Call cache_can_duplicate_bb_p.
10522 2020-10-06 Tom de Vries <tdevries@suse.de>
10524 * tracer.c (can_duplicate_insn_p, can_duplicate_bb_no_insn_iter_p)
10525 (can_duplicate_bb_p): New function, factored out of ...
10526 (ignore_bb_p): ... here.
10528 2020-10-06 Jakub Jelinek <jakub@redhat.com>
10530 PR rtl-optimization/97282
10531 * tree-ssa-math-opts.c (divmod_candidate_p): Don't return false for
10532 constant op2 if it is not a power of two and the type has precision
10533 larger than HOST_BITS_PER_WIDE_INT or BITS_PER_WORD.
10534 * internal-fn.c (contains_call_div_mod): New function.
10535 (expand_DIVMOD): If last argument is a constant, try to expand it as
10536 TRUNC_DIV_EXPR followed by TRUNC_MOD_EXPR, but if the sequence
10537 contains any calls or {,U}{DIV,MOD} rtxes, throw it away and use
10538 divmod optab or divmod libfunc.
10540 2020-10-06 Aldy Hernandez <aldyh@redhat.com>
10542 * value-range.h (irange_allocator::allocate): Increase
10543 newir storage by one.
10545 2020-10-06 Jakub Jelinek <jakub@redhat.com>
10547 PR middle-end/97289
10548 * omp-offload.c (omp_discover_declare_target_tgt_fn_r): Only follow
10549 node->alias_target if it is a FUNCTION_DECL.
10551 2020-10-06 Joe Ramsay <joe.ramsay@arm.com>
10553 * config/arm/arm-cpus.in:
10554 (ALL_FPU_INTERNAL): Remove vfp_base.
10555 (VFPv2): Remove vfp_base.
10556 (MVE): Remove vfp_base.
10557 (vfp_base): Redefine as implied bit dependent on MVE or FP
10558 (cortex-m55): Add flags to disable MVE, MVE FP, FP and DSP extensions.
10559 * config/arm/arm.c (arm_configure_build_target): Add implied bits to ISA.
10560 * config/arm/parsecpu.awk:
10561 (gen_isa): Print implied bits and their dependencies to ISA header.
10562 (gen_data): Add parsing for implied feature bits.
10564 2020-10-06 Andreas Krebbel <krebbel@linux.ibm.com>
10566 * doc/invoke.texi: Add z15/arch13 to the list of documented
10567 -march/-mtune options.
10569 2020-10-05 Aldy Hernandez <aldyh@redhat.com>
10571 * value-range.cc (irange::legacy_intersect): Only handle
10573 (irange::legacy_union): Same.
10574 (irange::union_): When unioning legacy with non-legacy,
10575 first convert to legacy and do everything in legacy mode.
10576 (irange::intersect): Same, but for intersect.
10577 * range-op.cc (range_tests): Adjust for above changes.
10579 2020-10-05 Aldy Hernandez <aldyh@redhat.com>
10581 * range-op.cc (operator_div::wi_fold): Return varying for
10583 (class operator_rshift): Move class up.
10584 (operator_abs::wi_fold): Return [-MIN,-MIN] for ABS([-MIN,-MIN]).
10585 (operator_tests): Adjust tests.
10587 2020-10-05 Tom de Vries <tdevries@suse.de>
10589 * tracer.c (ignore_bb_p): Ignore GOMP_SIMT_XCHG_*.
10591 2020-10-05 Alex Coplan <alex.coplan@arm.com>
10593 * config/arm/arm-cpus.in (neoverse-v1): Add missing vendor and
10596 2020-10-05 Tom de Vries <tdevries@suse.de>
10598 * tracer.c (ignore_bb_p): Remove incorrect suggestion.
10600 2020-10-05 Jakub Jelinek <jakub@redhat.com>
10602 * opth-gen.awk: Don't emit explicit_mask array if n_target_explicit
10603 is equal to n_target_explicit_mask.
10604 * optc-save-gen.awk: Compute has_target_explicit_mask and if false,
10605 don't emit code iterating over explicit_mask array elements. Stream
10606 also explicit_mask_* target members.
10608 2020-10-05 Jakub Jelinek <jakub@redhat.com>
10610 * gimple-ssa-store-merging.c
10611 (imm_store_chain_info::output_merged_store): Use ~0U instead of ~0 in
10612 unsigned int array initializer.
10614 2020-10-05 Tom de Vries <tdevries@suse.de>
10617 * tracer.c (ignore_bb_p): Ignore GOMP_SIMT_ENTER_ALLOC,
10618 GOMP_SIMT_VOTE_ANY and GOMP_SIMT_EXIT.
10620 2020-10-03 Jakub Jelinek <jakub@redhat.com>
10622 * opth-gen.awk: For variables referenced in Mask and InverseMask,
10623 don't use the explicit_mask bitmask array, but add separate
10624 explicit_mask_* members with the same types as the variables.
10625 * optc-save-gen.awk: Save, restore, compare and hash the separate
10626 explicit_mask_* members.
10628 2020-10-03 Jan Hubicka <hubicka@ucw.cz>
10630 * ipa-modref-tree.c (test_insert_search_collapse): Update andling
10632 (test_merge): Likewise.
10633 * ipa-modref-tree.h (struct modref_access_node): Add offset, size,
10634 max_size, parm_offset and parm_offset_known.
10635 (modref_access_node::useful_p): Constify.
10636 (modref_access_node::range_info_useful_p): New predicate.
10637 (modref_access_node::operator==): New.
10638 (struct modref_parm_map): New structure.
10639 (modref_tree::merge): Update for racking parameters)
10640 * ipa-modref.c (dump_access): Dump new fields.
10641 (get_access): Fill in new fields.
10642 (merge_call_side_effects): Update handling of parm map.
10643 (write_modref_records): Stream new fields.
10644 (read_modref_records): Stream new fields.
10645 (compute_parm_map): Update for new parm map.
10646 (ipa_merge_modref_summary_after_inlining): Update.
10647 (modref_propagate_in_scc): Update.
10648 * tree-ssa-alias.c (modref_may_conflict): Handle known ranges.
10650 2020-10-03 H.J. Lu <hjl.tools@gmail.com>
10653 * doc/extend.texi: Replace roudnevenl with roundevenl
10655 2020-10-02 David Edelsohn <dje.gcc@gmail.com>
10656 Andrew MacLeod <amacleod@redhat.com>
10658 * config/rs6000/rs6000.c: Include ssa.h. Reorder some headers.
10659 * config/rs6000/rs6000-call.c: Same.
10661 2020-10-02 Martin Jambor <mjambor@suse.cz>
10663 * params.opt (ipa-cp-large-unit-insns): New parameter.
10664 * ipa-cp.c (get_max_overall_size): Use the new parameter.
10666 2020-10-02 Martin Jambor <mjambor@suse.cz>
10668 * ipa-cp.c (estimate_local_effects): Add overeall_size to dumped
10670 (decide_about_value): Add dumping new overall_size.
10672 2020-10-02 Martin Jambor <mjambor@suse.cz>
10674 * ipa-fnsummary.h (ipa_freqcounting_predicate): New type.
10675 (ipa_fn_summary): Change the type of loop_iterations and loop_strides
10676 to vectors of ipa_freqcounting_predicate.
10677 (ipa_fn_summary::ipa_fn_summary): Construct the new vectors.
10678 (ipa_call_estimates): New fields loops_with_known_iterations and
10679 loops_with_known_strides.
10680 * ipa-cp.c (hint_time_bonus): Multiply param_ipa_cp_loop_hint_bonus
10681 with the expected frequencies of loops with known iteration count or
10683 * ipa-fnsummary.c (add_freqcounting_predicate): New function.
10684 (ipa_fn_summary::~ipa_fn_summary): Release the new vectors instead of
10685 just two predicates.
10686 (remap_hint_predicate_after_duplication): Replace with function
10687 remap_freqcounting_preds_after_dup.
10688 (ipa_fn_summary_t::duplicate): Use it or duplicate new vectors.
10689 (ipa_dump_fn_summary): Dump the new vectors.
10690 (analyze_function_body): Compute the loop property vectors.
10691 (ipa_call_context::estimate_size_and_time): Calculate also
10692 loops_with_known_iterations and loops_with_known_strides. Adjusted
10693 dumping accordinly.
10694 (remap_hint_predicate): Replace with function
10695 remap_freqcounting_predicate.
10696 (ipa_merge_fn_summary_after_inlining): Use it.
10697 (inline_read_section): Stream loopcounting vectors instead of two
10699 (ipa_fn_summary_write): Likewise.
10700 * params.opt (ipa-max-loop-predicates): New parameter.
10701 * doc/invoke.texi (ipa-max-loop-predicates): Document new param.
10703 2020-10-02 Martin Jambor <mjambor@suse.cz>
10705 * ipa-inline-analysis.c (do_estimate_edge_time): Adjusted to use
10706 ipa_call_estimates.
10707 (do_estimate_edge_size): Likewise.
10708 (do_estimate_edge_hints): Likewise.
10709 * ipa-fnsummary.h (struct ipa_call_estimates): New type.
10710 (ipa_call_context::estimate_size_and_time): Adjusted declaration.
10711 (estimate_ipcp_clone_size_and_time): Likewise.
10712 * ipa-cp.c (hint_time_bonus): Changed the type of the second argument
10713 to ipa_call_estimates.
10714 (perform_estimation_of_a_value): Adjusted to use ipa_call_estimates.
10715 (estimate_local_effects): Likewise.
10716 * ipa-fnsummary.c (ipa_call_context::estimate_size_and_time): Adjusted
10717 to return estimates in a single ipa_call_estimates parameter.
10718 (estimate_ipcp_clone_size_and_time): Likewise.
10720 2020-10-02 Martin Jambor <mjambor@suse.cz>
10722 * ipa-fnsummary.h (ipa_cached_call_context): New forward declaration
10724 (class ipa_call_context): Make friend ipa_cached_call_context. Moved
10725 methods duplicate_from and release to it too.
10726 * ipa-fnsummary.c (ipa_call_context::duplicate_from): Moved to class
10727 ipa_cached_call_context.
10728 (ipa_call_context::release): Likewise, removed the parameter.
10729 * ipa-inline-analysis.c (node_context_cache_entry): Change the type of
10730 ctx to ipa_cached_call_context.
10731 (do_estimate_edge_time): Remove parameter from the call to
10732 ipa_cached_call_context::release.
10734 2020-10-02 Martin Jambor <mjambor@suse.cz>
10736 * ipa-prop.h (ipa_auto_call_arg_values): New type.
10737 (class ipa_call_arg_values): Likewise.
10738 (ipa_get_indirect_edge_target): Replaced vector arguments with
10739 ipa_call_arg_values in declaration. Added an overload for
10740 ipa_auto_call_arg_values.
10741 * ipa-fnsummary.h (ipa_call_context): Removed members m_known_vals,
10742 m_known_contexts, m_known_aggs, duplicate_from, release and equal_to,
10743 new members m_avals, store_to_cache and equivalent_to_p. Adjusted
10744 construcotr arguments.
10745 (estimate_ipcp_clone_size_and_time): Replaced vector arguments
10746 with ipa_auto_call_arg_values in declaration.
10747 (evaluate_properties_for_edge): Likewise.
10748 * ipa-cp.c (ipa_get_indirect_edge_target): Adjusted to work on
10749 ipa_call_arg_values rather than on separate vectors. Added an
10750 overload for ipa_auto_call_arg_values.
10751 (devirtualization_time_bonus): Adjusted to work on
10752 ipa_auto_call_arg_values rather than on separate vectors.
10753 (gather_context_independent_values): Adjusted to work on
10754 ipa_auto_call_arg_values rather than on separate vectors.
10755 (perform_estimation_of_a_value): Likewise.
10756 (estimate_local_effects): Likewise.
10757 (modify_known_vectors_with_val): Adjusted both variants to work on
10758 ipa_auto_call_arg_values and rename them to
10759 copy_known_vectors_add_val.
10760 (decide_about_value): Adjusted to work on ipa_call_arg_values rather
10761 than on separate vectors.
10762 (decide_whether_version_node): Likewise.
10763 * ipa-fnsummary.c (evaluate_conditions_for_known_args): Likewise.
10764 (evaluate_properties_for_edge): Likewise.
10765 (ipa_fn_summary_t::duplicate): Likewise.
10766 (estimate_edge_devirt_benefit): Adjusted to work on
10767 ipa_call_arg_values rather than on separate vectors.
10768 (estimate_edge_size_and_time): Likewise.
10769 (estimate_calls_size_and_time_1): Likewise.
10770 (summarize_calls_size_and_time): Adjusted calls to
10771 estimate_edge_size_and_time.
10772 (estimate_calls_size_and_time): Adjusted to work on
10773 ipa_call_arg_values rather than on separate vectors.
10774 (ipa_call_context::ipa_call_context): Construct from a pointer to
10775 ipa_auto_call_arg_values instead of inividual vectors.
10776 (ipa_call_context::duplicate_from): Adjusted to access vectors within
10778 (ipa_call_context::release): Likewise.
10779 (ipa_call_context::equal_to): Likewise.
10780 (ipa_call_context::estimate_size_and_time): Adjusted to work on
10781 ipa_call_arg_values rather than on separate vectors.
10782 (estimate_ipcp_clone_size_and_time): Adjusted to work with
10783 ipa_auto_call_arg_values rather than on separate vectors.
10784 (ipa_merge_fn_summary_after_inlining): Likewise. Adjusted call to
10785 estimate_edge_size_and_time.
10786 (ipa_update_overall_fn_summary): Adjusted call to
10787 estimate_edge_size_and_time.
10788 * ipa-inline-analysis.c (do_estimate_edge_time): Adjusted to work with
10789 ipa_auto_call_arg_values rather than with separate vectors.
10790 (do_estimate_edge_size): Likewise.
10791 (do_estimate_edge_hints): Likewise.
10792 * ipa-prop.c (ipa_auto_call_arg_values::~ipa_auto_call_arg_values):
10795 2020-10-02 Joe Ramsay <joe.ramsay@arm.com>
10797 * config/arm/arm_mve.h (__arm_vmaxnmavq): Remove coercion of scalar
10799 (__arm_vmaxnmvq): Likewise.
10800 (__arm_vminnmavq): Likewise.
10801 (__arm_vminnmvq): Likewise.
10802 (__arm_vmaxnmavq_p): Likewise.
10803 (__arm_vmaxnmvq_p): Likewise (and delete duplicate definition).
10804 (__arm_vminnmavq_p): Likewise.
10805 (__arm_vminnmvq_p): Likewise.
10806 (__arm_vmaxavq): Likewise.
10807 (__arm_vmaxavq_p): Likewise.
10808 (__arm_vmaxvq): Likewise.
10809 (__arm_vmaxvq_p): Likewise.
10810 (__arm_vminavq): Likewise.
10811 (__arm_vminavq_p): Likewise.
10812 (__arm_vminvq): Likewise.
10813 (__arm_vminvq_p): Likewise.
10815 2020-10-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10817 * config/aarch64/aarch64.c (neoversev1_tunings): Define.
10818 * config/aarch64/aarch64-cores.def (zeus): Use it.
10819 (neoverse-v1): Likewise.
10821 2020-10-02 Jan Hubicka <hubicka@ucw.cz>
10823 * attr-fnspec.h: Update documentation.
10824 (attr_fnsec::return_desc_size): Set to 2
10825 (attr_fnsec::arg_desc_size): Set to 2
10826 * builtin-attrs.def (STR1): Update fnspec.
10827 * internal-fn.def (UBSAN_NULL): Update fnspec.
10828 (UBSAN_VPTR): Update fnspec.
10829 (UBSAN_PTR): Update fnspec.
10830 (ASAN_CHECK): Update fnspec.
10831 (GOACC_DIM_SIZE): Remove fnspec.
10832 (GOACC_DIM_POS): Remove fnspec.
10833 * tree-ssa-alias.c (attr_fnspec::verify): Update verification.
10835 2020-10-02 Jan Hubicka <jh@suse.cz>
10837 * attr-fnspec.h: New file.
10838 * calls.c (decl_return_flags): Use attr_fnspec.
10839 * gimple.c (gimple_call_arg_flags): Use attr_fnspec.
10840 (gimple_call_return_flags): Use attr_fnspec.
10841 * tree-into-ssa.c (pass_build_ssa::execute): Use attr_fnspec.
10842 * tree-ssa-alias.c (attr_fnspec::verify): New member fuction.
10844 2020-10-02 Jan Hubicka <jh@suse.cz>
10846 * tree-ssa-alias.c (ao_ref_init_from_ptr_and_range): Break out from ...
10847 (ao_ref_init_from_ptr_and_size): ... here.
10849 2020-10-02 Jan Hubicka <hubicka@ucw.cz>
10851 * data-streamer-in.c (streamer_read_poly_int64): New function.
10852 * data-streamer-out.c (streamer_write_poly_int64): New function.
10853 * data-streamer.h (streamer_write_poly_int64): Declare.
10854 (streamer_read_poly_int64): Declare.
10856 2020-10-02 Richard Sandiford <richard.sandiford@arm.com>
10858 * config/aarch64/aarch64-protos.h (aarch64_sve_pred_dominates_p):
10860 * config/aarch64/aarch64.c (aarch64_sve_pred_dominates_p): Likewise.
10861 * config/aarch64/aarch64-sve.md: Add banner comment describing
10862 how merging predicated FP operations are represented.
10863 (*cond_<SVE_COND_FP_UNARY:optab><mode>_2): Split into...
10864 (*cond_<SVE_COND_FP_UNARY:optab><mode>_2_relaxed): ...this and...
10865 (*cond_<SVE_COND_FP_UNARY:optab><mode>_2_strict): ...this.
10866 (*cond_<SVE_COND_FP_UNARY:optab><mode>_any): Split into...
10867 (*cond_<SVE_COND_FP_UNARY:optab><mode>_any_relaxed): ...this and...
10868 (*cond_<SVE_COND_FP_UNARY:optab><mode>_any_strict): ...this.
10869 (*cond_<SVE_COND_FP_BINARY_INT:optab><mode>_2): Split into...
10870 (*cond_<SVE_COND_FP_BINARY_INT:optab><mode>_2_relaxed): ...this and...
10871 (*cond_<SVE_COND_FP_BINARY_INT:optab><mode>_2_strict): ...this.
10872 (*cond_<SVE_COND_FP_BINARY_INT:optab><mode>_any): Split into...
10873 (*cond_<SVE_COND_FP_BINARY_INT:optab><mode>_any_relaxed): ...this
10875 (*cond_<SVE_COND_FP_BINARY_INT:optab><mode>_any_strict): ...this.
10876 (*cond_<SVE_COND_FP_BINARY:optab><mode>_2): Split into...
10877 (*cond_<SVE_COND_FP_BINARY:optab><mode>_2_relaxed): ...this and...
10878 (*cond_<SVE_COND_FP_BINARY:optab><mode>_2_strict): ...this.
10879 (*cond_<SVE_COND_FP_BINARY_I1:optab><mode>_2_const): Split into...
10880 (*cond_<SVE_COND_FP_BINARY_I1:optab><mode>_2_const_relaxed): ...this
10882 (*cond_<SVE_COND_FP_BINARY_I1:optab><mode>_2_const_strict): ...this.
10883 (*cond_<SVE_COND_FP_BINARY:optab><mode>_3): Split into...
10884 (*cond_<SVE_COND_FP_BINARY:optab><mode>_3_relaxed): ...this and...
10885 (*cond_<SVE_COND_FP_BINARY:optab><mode>_3_strict): ...this.
10886 (*cond_<SVE_COND_FP_BINARY:optab><mode>_any): Split into...
10887 (*cond_<SVE_COND_FP_BINARY:optab><mode>_any_relaxed): ...this and...
10888 (*cond_<SVE_COND_FP_BINARY:optab><mode>_any_strict): ...this.
10889 (*cond_<SVE_COND_FP_BINARY_I1:optab><mode>_any_const): Split into...
10890 (*cond_<SVE_COND_FP_BINARY_I1:optab><mode>_any_const_relaxed): ...this
10892 (*cond_<SVE_COND_FP_BINARY_I1:optab><mode>_any_const_strict): ...this.
10893 (*cond_add<mode>_2_const): Split into...
10894 (*cond_add<mode>_2_const_relaxed): ...this and...
10895 (*cond_add<mode>_2_const_strict): ...this.
10896 (*cond_add<mode>_any_const): Split into...
10897 (*cond_add<mode>_any_const_relaxed): ...this and...
10898 (*cond_add<mode>_any_const_strict): ...this.
10899 (*cond_<SVE_COND_FCADD:optab><mode>_2): Split into...
10900 (*cond_<SVE_COND_FCADD:optab><mode>_2_relaxed): ...this and...
10901 (*cond_<SVE_COND_FCADD:optab><mode>_2_strict): ...this.
10902 (*cond_<SVE_COND_FCADD:optab><mode>_any): Split into...
10903 (*cond_<SVE_COND_FCADD:optab><mode>_any_relaxed): ...this and...
10904 (*cond_<SVE_COND_FCADD:optab><mode>_any_strict): ...this.
10905 (*cond_sub<mode>_3_const): Split into...
10906 (*cond_sub<mode>_3_const_relaxed): ...this and...
10907 (*cond_sub<mode>_3_const_strict): ...this.
10908 (*aarch64_pred_abd<mode>): Split into...
10909 (*aarch64_pred_abd<mode>_relaxed): ...this and...
10910 (*aarch64_pred_abd<mode>_strict): ...this.
10911 (*aarch64_cond_abd<mode>_2): Split into...
10912 (*aarch64_cond_abd<mode>_2_relaxed): ...this and...
10913 (*aarch64_cond_abd<mode>_2_strict): ...this.
10914 (*aarch64_cond_abd<mode>_3): Split into...
10915 (*aarch64_cond_abd<mode>_3_relaxed): ...this and...
10916 (*aarch64_cond_abd<mode>_3_strict): ...this.
10917 (*aarch64_cond_abd<mode>_any): Split into...
10918 (*aarch64_cond_abd<mode>_any_relaxed): ...this and...
10919 (*aarch64_cond_abd<mode>_any_strict): ...this.
10920 (*cond_<SVE_COND_FP_TERNARY:optab><mode>_2): Split into...
10921 (*cond_<SVE_COND_FP_TERNARY:optab><mode>_2_relaxed): ...this and...
10922 (*cond_<SVE_COND_FP_TERNARY:optab><mode>_2_strict): ...this.
10923 (*cond_<SVE_COND_FP_TERNARY:optab><mode>_4): Split into...
10924 (*cond_<SVE_COND_FP_TERNARY:optab><mode>_4_relaxed): ...this and...
10925 (*cond_<SVE_COND_FP_TERNARY:optab><mode>_4_strict): ...this.
10926 (*cond_<SVE_COND_FP_TERNARY:optab><mode>_any): Split into...
10927 (*cond_<SVE_COND_FP_TERNARY:optab><mode>_any_relaxed): ...this and...
10928 (*cond_<SVE_COND_FP_TERNARY:optab><mode>_any_strict): ...this.
10929 (*cond_<SVE_COND_FCMLA:optab><mode>_4): Split into...
10930 (*cond_<SVE_COND_FCMLA:optab><mode>_4_relaxed): ...this and...
10931 (*cond_<SVE_COND_FCMLA:optab><mode>_4_strict): ...this.
10932 (*cond_<SVE_COND_FCMLA:optab><mode>_any): Split into...
10933 (*cond_<SVE_COND_FCMLA:optab><mode>_any_relaxed): ...this and...
10934 (*cond_<SVE_COND_FCMLA:optab><mode>_any_strict): ...this.
10935 (*aarch64_pred_fac<cmp_op><mode>): Split into...
10936 (*aarch64_pred_fac<cmp_op><mode>_relaxed): ...this and...
10937 (*aarch64_pred_fac<cmp_op><mode>_strict): ...this.
10938 (*cond_<optab>_nontrunc<SVE_FULL_F:mode><SVE_FULL_HSDI:mode>): Split
10940 (*cond_<optab>_nontrunc<SVE_FULL_F:mode><SVE_FULL_HSDI:mode>_relaxed):
10942 (*cond_<optab>_nontrunc<SVE_FULL_F:mode><SVE_FULL_HSDI:mode>_strict):
10944 (*cond_<optab>_nonextend<SVE_FULL_HSDI:mode><SVE_FULL_F:mode>): Split
10946 (*cond_<optab>_nonextend<SVE_FULL_HSDI:mode><SVE_FULL_F:mode>_relaxed):
10948 (*cond_<optab>_nonextend<SVE_FULL_HSDI:mode><SVE_FULL_F:mode>_strict):
10950 * config/aarch64/aarch64-sve2.md
10951 (*cond_<SVE2_COND_FP_UNARY_LONG:optab><mode>): Split into...
10952 (*cond_<SVE2_COND_FP_UNARY_LONG:optab><mode>_relaxed): ...this and...
10953 (*cond_<SVE2_COND_FP_UNARY_LONG:optab><mode>_strict): ...this.
10954 (*cond_<SVE2_COND_FP_UNARY_NARROWB:optab><mode>_any): Split into...
10955 (*cond_<SVE2_COND_FP_UNARY_NARROWB:optab><mode>_any_relaxed): ...this
10957 (*cond_<SVE2_COND_FP_UNARY_NARROWB:optab><mode>_any_strict): ...this.
10958 (*cond_<SVE2_COND_INT_UNARY_FP:optab><mode>): Split into...
10959 (*cond_<SVE2_COND_INT_UNARY_FP:optab><mode>_relaxed): ...this and...
10960 (*cond_<SVE2_COND_INT_UNARY_FP:optab><mode>_strict): ...this.
10962 2020-10-02 Richard Sandiford <richard.sandiford@arm.com>
10964 * config/arm/neon.md (*sub<VDQ:mode>3_neon): Use the new mode macros
10965 for the insn condition.
10966 (sub<VH:mode>3, *mul<VDQW:mode>3_neon): Likewise.
10967 (mul<VDQW:mode>3add<VDQW:mode>_neon): Likewise.
10968 (mul<VH:mode>3add<VH:mode>_neon): Likewise.
10969 (mul<VDQW:mode>3neg<VDQW:mode>add<VDQW:mode>_neon): Likewise.
10970 (fma<VCVTF:mode>4, fma<VH:mode>4, *fmsub<VCVTF:mode>4): Likewise.
10971 (quad_halves_<code>v4sf, reduc_plus_scal_<VD:mode>): Likewise.
10972 (reduc_plus_scal_<VQ:mode>, reduc_smin_scal_<VD:mode>): Likewise.
10973 (reduc_smin_scal_<VQ:mode>, reduc_smax_scal_<VD:mode>): Likewise.
10974 (reduc_smax_scal_<VQ:mode>, mul<VH:mode>3): Likewise.
10975 (neon_vabd<VF:mode>_2, neon_vabd<VF:mode>_3): Likewise.
10976 (fma<VH:mode>4_intrinsic): Delete.
10977 (neon_vadd<VCVTF:mode>): Use the new mode macros to decide which
10978 form of instruction to generate.
10979 (neon_vmla<VDQW:mode>, neon_vmls<VDQW:mode>): Likewise.
10980 (neon_vsub<VCVTF:mode>): Likewise.
10981 (neon_vfma<VH:mode>): Generate the main fma<mode>4 form instead
10982 of using fma<mode>4_intrinsic.
10984 2020-10-02 Martin Liska <mliska@suse.cz>
10986 PR gcov-profile/97193
10987 * coverage.c (coverage_init): GCDA note files should not be
10988 mangled and should end in output directory.
10990 2020-10-02 Jason Merril <jason@redhat.com>
10992 * gimple.h (gimple_call_operator_delete_p): Rename from
10993 gimple_call_replaceable_operator_delete_p.
10994 * gimple.c (gimple_call_operator_delete_p): Likewise.
10995 * tree.h (DECL_IS_REPLACEABLE_OPERATOR_DELETE_P): Remove.
10996 * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): Adjust.
10997 (propagate_necessity): Likewise.
10998 (eliminate_unnecessary_stmts): Likewise.
10999 * tree-ssa-structalias.c (find_func_aliases_for_call): Likewise.
11001 2020-10-02 Richard Biener <rguenther@suse.de>
11003 * gimple.h (GF_CALL_FROM_NEW_OR_DELETE): New call flag.
11004 (gimple_call_set_from_new_or_delete): New.
11005 (gimple_call_from_new_or_delete): Likewise.
11006 * gimple.c (gimple_build_call_from_tree): Set
11007 GF_CALL_FROM_NEW_OR_DELETE appropriately.
11008 * ipa-icf-gimple.c (func_checker::compare_gimple_call):
11009 Compare gimple_call_from_new_or_delete.
11010 * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): Make
11011 sure to only consider new/delete calls from new or delete
11013 (propagate_necessity): Likewise.
11014 (eliminate_unnecessary_stmts): Likewise.
11015 * tree-ssa-structalias.c (find_func_aliases_for_call):
11018 2020-10-02 Jason Merril <jason@redhat.com>
11020 * tree.h (CALL_FROM_NEW_OR_DELETE_P): Move from cp-tree.h.
11021 * tree-core.h: Document new usage of protected_flag.
11023 2020-10-02 Aldy Hernandez <aldyh@redhat.com>
11025 * value-range.h (irange::fits_p): New.
11027 2020-10-01 Alan Modra <amodra@gmail.com>
11029 * config/rs6000/rs6000.c (rs6000_legitimize_address): Use
11030 gen_int_mode for high part of address constant.
11032 2020-10-01 Alan Modra <amodra@gmail.com>
11034 * config/rs6000/rs6000.c (rs6000_linux64_override_options):
11035 Formatting. Correct setting of TARGET_NO_FP_IN_TOC and
11036 TARGET_NO_SUM_IN_TOC.
11038 2020-10-01 Alan Modra <amodra@gmail.com>
11040 * config/rs6000/freebsd64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
11041 rs6000_linux64_override_options.
11042 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Break
11044 * config/rs6000/rs6000.c (rs6000_linux64_override_options): ..this,
11045 new function. Tweak non-biarch test and clearing of
11046 profile_kernel to work with freebsd64.h.
11048 2020-10-01 Martin Liska <mliska@suse.cz>
11050 * config/rs6000/rs6000-call.c: Include value-range.h.
11051 * config/rs6000/rs6000.c: Likewise.
11053 2020-10-01 Tom de Vries <tdevries@suse.de>
11056 * config/nvptx/nvptx.md (define_insn "truncsi<QHIM>2"): Emit mov.u32
11057 instead of cvt.u32.u32.
11059 2020-10-01 Richard Sandiford <richard.sandiford@arm.com>
11063 * config/arm/arm-protos.h (arm_expand_vector_compare): Declare.
11064 (arm_expand_vcond): Likewise.
11065 * config/arm/arm.c (arm_expand_vector_compare): New function.
11066 (arm_expand_vcond): Likewise.
11067 * config/arm/neon.md (vec_cmp<VDQW:mode><v_cmp_result>): New pattern.
11068 (vec_cmpu<VDQW:mode><VDQW:mode>): Likewise.
11069 (vcond<VDQW:mode><VDQW:mode>): Require operand 5 to be a register
11070 or zero. Use arm_expand_vcond.
11071 (vcond<V_cvtto><V32:mode>): New pattern.
11072 (vcondu<VDQIW:mode><VDQIW:mode>): Generalize to...
11073 (vcondu<VDQW:mode><v_cmp_result): ...this. Require operand 5
11074 to be a register or zero. Use arm_expand_vcond.
11075 (vcond_mask_<VDQW:mode><v_cmp_result>): New pattern.
11076 (neon_vc<cmp_op><mode>, neon_vc<cmp_op><mode>_insn): Add "@" marker.
11077 (neon_vbsl<mode>): Likewise.
11078 (neon_vc<cmp_op>u<mode>): Reexpress as...
11079 (@neon_vc<code><mode>): ...this.
11081 2020-10-01 Michael Davidsaver <mdavidsaver@gmail.com>
11083 * config/i386/t-rtems: Change from mtune to march when building
11084 multilibs. The mtune argument tunes or optimizes for a specific
11085 CPU model but does not ensure the generated code is appropriate
11086 for the CPU model. Prior to this patch, i386 compatible code
11087 was always generated but tuned for later models.
11089 2020-10-01 Aldy Hernandez <aldyh@redhat.com>
11091 * builtins.c (compute_objsize): Replace vr_values with range_query.
11093 (gimple_call_alloc_size): Same.
11094 * builtins.h (class vr_values): Remove.
11095 (gimple_call_alloc_size): Replace vr_values with range_query.
11096 * gimple-ssa-sprintf.c (get_int_range): Same.
11097 (struct directive): Pass gimple context to fmtfunc callback.
11098 (directive::set_width): Replace inline with out-of-line version.
11099 (directive::set_precision): Same.
11100 (format_none): New gimple argument.
11101 (format_percent): New gimple argument.
11102 (format_integer): New gimple argument.
11103 (format_floating): New gimple argument.
11104 (get_string_length): Use range_query API.
11105 (format_character): New gimple argument.
11106 (format_string): New gimple argument.
11107 (format_plain): New gimple argument.
11108 (format_directive): New gimple argument.
11109 (parse_directive): Replace vr_values with range_query.
11110 (compute_format_length): Same.
11111 (handle_printf_call): Same. Adjust for range_query API.
11112 * tree-ssa-strlen.c (get_range): Same.
11113 (compare_nonzero_chars): Same.
11114 (get_addr_stridx) Replace vr_values with range_query.
11115 (get_stridx): Same.
11116 (dump_strlen_info): Same.
11117 (get_range_strlen_dynamic): Adjust for range_query API.
11118 (set_strlen_range): Same
11119 (maybe_warn_overflow): Replace vr_values with range_query.
11120 (handle_builtin_strcpy): Same.
11121 (maybe_diag_stxncpy_trunc): Add FIXME comment.
11122 (handle_builtin_memcpy): Replace vr_values with range_query.
11123 (handle_builtin_memset): Same.
11124 (get_len_or_size): Same.
11125 (strxcmp_eqz_result): Same.
11126 (handle_builtin_string_cmp): Same.
11127 (count_nonzero_bytes_addr): Same, plus adjust for range_query API.
11128 (count_nonzero_bytes): Replace vr_values with range_query.
11129 (handle_store): Same.
11130 (strlen_check_and_optimize_call): Same.
11131 (handle_integral_assign): Same.
11132 (check_and_optimize_stmt): Same.
11133 * tree-ssa-strlen.h (class vr_values): Remove.
11134 (get_range): Replace vr_values with range_query.
11135 (get_range_strlen_dynamic): Same.
11136 (handle_printf_call): Same.
11138 2020-10-01 Aldy Hernandez <aldyh@redhat.com>
11140 * gimple-loop-versioning.cc (lv_dom_walker::before_dom_children):
11141 Pass m_range_analyzer instead of get_vr_values.
11142 (loop_versioning::name_prop::get_value): Rename to...
11143 (loop_versioning::name_prop::value_of_expr): ...this.
11144 * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::evrp_range_analyzer):
11145 Adjust for evrp_range_analyzer
11146 inheriting from vr_values.
11147 (evrp_range_analyzer::try_find_new_range): Same.
11148 (evrp_range_analyzer::record_ranges_from_incoming_edge): Same.
11149 (evrp_range_analyzer::record_ranges_from_phis): Same.
11150 (evrp_range_analyzer::record_ranges_from_stmt): Same.
11151 (evrp_range_analyzer::push_value_range): Same.
11152 (evrp_range_analyzer::pop_value_range): Same.
11153 * gimple-ssa-evrp-analyze.h (class evrp_range_analyzer): Inherit from
11154 vr_values. Adjust accordingly.
11155 * gimple-ssa-evrp.c: Adjust for evrp_range_analyzer inheriting from
11157 (evrp_folder::value_of_evrp): Rename from get_value.
11158 * tree-ssa-ccp.c (class ccp_folder): Rename get_value to
11160 (ccp_folder::get_value): Rename to...
11161 (ccp_folder::value_of_expr): ...this.
11162 * tree-ssa-copy.c (class copy_folder): Rename get_value to
11164 (copy_folder::get_value): Rename to...
11165 (copy_folder::value_of_expr): ...this.
11166 * tree-ssa-dom.c (dom_opt_dom_walker::after_dom_children): Adjust
11167 for evrp_range_analyzer inheriting from vr_values.
11168 (dom_opt_dom_walker::optimize_stmt): Same.
11169 * tree-ssa-propagate.c (substitute_and_fold_engine::replace_uses_in):
11170 Call value_of_* instead of get_value.
11171 (substitute_and_fold_engine::replace_phi_args_in): Same.
11172 (substitute_and_fold_engine::propagate_into_phi_args): Same.
11173 (substitute_and_fold_dom_walker::before_dom_children): Same.
11174 * tree-ssa-propagate.h: Include value-query.h.
11175 (class substitute_and_fold_engine): Inherit from value_query.
11176 * tree-ssa-strlen.c (strlen_dom_walker::before_dom_children):
11177 Adjust for evrp_range_analyzer inheriting from vr_values.
11178 * tree-ssa-threadedge.c (record_temporary_equivalences_from_phis):
11180 * tree-vrp.c (class vrp_folder): Same.
11181 (vrp_folder::get_value): Rename to value_of_expr.
11182 * vr-values.c (vr_values::get_lattice_entry): Adjust for
11183 vr_values inheriting from range_query.
11184 (vr_values::range_of_expr): New.
11185 (vr_values::value_of_expr): New.
11186 (vr_values::value_on_edge): New.
11187 (vr_values::value_of_stmt): New.
11188 (simplify_using_ranges::op_with_boolean_value_range_p): Call
11189 get_value_range through query.
11190 (check_for_binary_op_overflow): Rename store to query.
11191 (vr_values::vr_values): Remove vrp_value_range_pool.
11192 (vr_values::~vr_values): Same.
11193 (simplify_using_ranges::get_vr_for_comparison): Call get_value_range
11195 (simplify_using_ranges::compare_names): Same.
11196 (simplify_using_ranges::vrp_evaluate_conditional): Same.
11197 (simplify_using_ranges::vrp_visit_cond_stmt): Same.
11198 (simplify_using_ranges::simplify_abs_using_ranges): Same.
11199 (simplify_using_ranges::simplify_cond_using_ranges_1): Same.
11200 (simplify_cond_using_ranges_2): Same.
11201 (simplify_using_ranges::simplify_switch_using_ranges): Same.
11202 (simplify_using_ranges::two_valued_val_range_p): Same.
11203 (simplify_using_ranges::simplify_using_ranges): Rename store to query.
11204 (simplify_using_ranges::simplify): Assert that we have a query.
11205 * vr-values.h (class range_query): Remove.
11206 (class simplify_using_ranges): Remove inheritance of range_query.
11207 (class vr_values): Add virtuals for range_of_expr, value_of_expr,
11208 value_on_edge, value_of_stmt, and get_value_range.
11209 Call range_query allocator instead of using vrp_value_range_pool.
11210 Remove vrp_value_range_pool.
11211 (simplify_using_ranges::get_value_range): Remove.
11213 2020-10-01 Richard Biener <rguenther@suse.de>
11215 PR tree-optimization/97236
11216 * tree-vect-stmts.c (get_group_load_store_type): Keep
11217 VMAT_ELEMENTWISE for single-element vectors.
11219 2020-10-01 Jan Hubicka <jh@suse.cz>
11221 * ipa-modref.c (compute_parm_map): Be ready for callee_pi to be NULL.
11223 2020-10-01 Jan Hubicka <jh@suse.cz>
11226 * ipa-fnsummary.c (pass_free_fnsummary::execute): Free
11227 also indirect inlining datastructure.
11228 * ipa-modref.c (pass_ipa_modref::execute): Do not free them here.
11229 * ipa-prop.c (ipa_free_all_node_params): Do not crash when info does
11231 (ipa_unregister_cgraph_hooks): Likewise.
11233 2020-10-01 Jan Hubicka <jh@suse.cz>
11235 * internal-fn.c (DEF_INTERNAL_FN): Fix handling of fnspec
11237 2020-10-01 Aldy Hernandez <aldyh@redhat.com>
11239 * Makefile.in: Add value-query.o.
11240 * value-query.cc: New file.
11241 * value-query.h: New file.
11243 2020-10-01 Alex Coplan <alex.coplan@arm.com>
11245 * config/arm/arm-cpus.in: Fix ordering, move Neoverse N2 down.
11246 * config/arm/arm-tables.opt: Regenerate.
11247 * config/arm/arm-tune.md: Regenerate.
11249 2020-10-01 Jakub Jelinek <jakub@redhat.com>
11251 * config/s390/s390.c (s390_atomic_assign_expand_fenv): Use
11252 TARGET_EXPR instead of MODIFY_EXPR for the first assignments to
11253 fenv_var and old_fpc. Formatting fixes.
11255 2020-10-01 Richard Biener <rguenther@suse.de>
11257 * tree-vect-patterns.c (vect_recog_bool_pattern): Also handle
11260 2020-10-01 Florian Weimer <fweimer@redhat.com>
11263 * config/i386/i386.h (PTA_NO_TUNE, PTA_X86_64_BASELINE)
11264 (PTA_X86_64_V2, PTA_X86_64_V3, PTA_X86_64_V4): New.
11265 * common/config/i386/i386-common.c (processor_alias_table):
11266 Add "x86-64-v2", "x86-64-v3", "x86-64-v4".
11267 * config/i386/i386-options.c (ix86_option_override_internal):
11268 Handle new PTA_NO_TUNE processor table entries.
11269 * doc/invoke.texi (x86 Options): Document new -march values.
11271 2020-10-01 Alan Modra <amodra@gmail.com>
11273 * config/rs6000/ppc-asm.h: Support __PCREL__ code.
11275 2020-10-01 Alan Modra <amodra@gmail.com>
11277 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't
11278 set -mcmodel=small for -mno-minimal-toc when pcrel.
11280 2020-09-30 Martin Sebor <msebor@redhat.com>
11282 PR middle-end/97189
11283 * attribs.c (attr_access::array_as_string): Avoid assuming a VLA
11284 access specification string contains a closing bracket.
11286 2020-09-30 Martin Sebor <msebor@redhat.com>
11289 * attribs.c (attr_access::array_as_string): Avoid modifying a shared
11290 type in place and use build_type_attribute_qual_variant instead.
11292 2020-09-30 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
11294 * config/arm/arm-cpus.in: Add Cortex-A78 and Cortex-A78AE cores.
11295 * config/arm/arm-tables.opt: Regenerate.
11296 * config/arm/arm-tune.md: Regenerate.
11297 * doc/invoke.texi: Update docs.
11299 2020-09-30 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
11301 * config/aarch64/aarch64-cores.def: Add Cortex-A78 and Cortex-A78AE cores.
11302 * config/aarch64/aarch64-tune.md: Regenerate.
11303 * doc/invoke.texi: Add -mtune=cortex-a78 and -mtune=cortex-a78ae.
11305 2020-09-30 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
11308 * config/arm/arm_mve.h (__ARM_mve_coerce2): Define.
11309 (__arm_vaddq): Correct the scalar argument.
11310 (__arm_vaddq_m): Likewise.
11311 (__arm_vaddq_x): Likewise.
11312 (__arm_vcmpeqq_m): Likewise.
11313 (__arm_vcmpeqq): Likewise.
11314 (__arm_vcmpgeq_m): Likewise.
11315 (__arm_vcmpgeq): Likewise.
11316 (__arm_vcmpgtq_m): Likewise.
11317 (__arm_vcmpgtq): Likewise.
11318 (__arm_vcmpleq_m): Likewise.
11319 (__arm_vcmpleq): Likewise.
11320 (__arm_vcmpltq_m): Likewise.
11321 (__arm_vcmpltq): Likewise.
11322 (__arm_vcmpneq_m): Likewise.
11323 (__arm_vcmpneq): Likewise.
11324 (__arm_vfmaq_m): Likewise.
11325 (__arm_vfmaq): Likewise.
11326 (__arm_vfmasq_m): Likewise.
11327 (__arm_vfmasq): Likewise.
11328 (__arm_vmaxnmavq): Likewise.
11329 (__arm_vmaxnmavq_p): Likewise.
11330 (__arm_vmaxnmvq): Likewise.
11331 (__arm_vmaxnmvq_p): Likewise.
11332 (__arm_vminnmavq): Likewise.
11333 (__arm_vminnmavq_p): Likewise.
11334 (__arm_vminnmvq): Likewise.
11335 (__arm_vminnmvq_p): Likewise.
11336 (__arm_vmulq_m): Likewise.
11337 (__arm_vmulq): Likewise.
11338 (__arm_vmulq_x): Likewise.
11339 (__arm_vsetq_lane): Likewise.
11340 (__arm_vsubq_m): Likewise.
11341 (__arm_vsubq): Likewise.
11342 (__arm_vsubq_x): Likewise.
11344 2020-09-30 Joel Hutton <joel.hutton@arm.com>
11347 * tree-vect-slp.c (vect_analyze_slp): Do not call
11348 vect_attempt_slp_rearrange_stmts for vector constructors.
11350 2020-09-30 Tamar Christina <tamar.christina@arm.com>
11352 * tree-vectorizer.h (SLP_TREE_REF_COUNT): New.
11353 * tree-vect-slp.c (_slp_tree::_slp_tree, _slp_tree::~_slp_tree,
11354 vect_free_slp_tree, vect_build_slp_tree, vect_print_slp_tree,
11355 slp_copy_subtree, vect_attempt_slp_rearrange_stmts): Use it.
11357 2020-09-30 Tobias Burnus <tobias@codesourcery.com>
11359 * omp-offload.c (omp_discover_implicit_declare_target): Also
11360 handled nested functions.
11362 2020-09-30 Tobias Burnus <tobias@codesourcery.com>
11363 Tom de Vries <tdevries@suse.de>
11365 * builtins.c (expand_builtin_cexpi, fold_builtin_sincos): Update
11366 targetm.libc_has_function call.
11367 * builtins.def (DEF_C94_BUILTIN, DEF_C99_BUILTIN, DEF_C11_BUILTIN):
11368 (DEF_C2X_BUILTIN, DEF_C99_COMPL_BUILTIN, DEF_C99_C90RES_BUILTIN):
11370 * config/darwin-protos.h (darwin_libc_has_function): Update prototype.
11371 * config/darwin.c (darwin_libc_has_function): Add arg.
11372 * config/linux-protos.h (linux_libc_has_function): Update prototype.
11373 * config/linux.c (linux_libc_has_function): Add arg.
11374 * config/i386/i386.c (ix86_libc_has_function): Update
11375 targetm.libc_has_function call.
11376 * config/nvptx/nvptx.c (nvptx_libc_has_function): New function.
11377 (TARGET_LIBC_HAS_FUNCTION): Redefine to nvptx_libc_has_function.
11378 * convert.c (convert_to_integer_1): Update targetm.libc_has_function
11381 * target.def (libc_has_function): Add arg.
11382 * doc/tm.texi: Regenerate.
11383 * targhooks.c (default_libc_has_function, gnu_libc_has_function)
11384 (no_c99_libc_has_function): Add arg.
11385 * targhooks.h (default_libc_has_function, no_c99_libc_has_function)
11386 (gnu_libc_has_function): Update prototype.
11387 * tree-ssa-math-opts.c (pass_cse_sincos::execute): Update
11388 targetm.libc_has_function call.
11390 2020-09-30 H.J. Lu <hjl.tools@gmail.com>
11393 * config/i386/i386.md (UNSPECV_MOVDIRI): Renamed to ...
11394 (UNSPEC_MOVDIRI): This.
11395 (UNSPECV_MOVDIR64B): Renamed to ...
11396 (UNSPEC_MOVDIR64B): This.
11397 (movdiri<mode>): Use SET operation.
11398 (@movdir64b_<mode>): Likewise.
11400 2020-09-30 Florian Weimer <fweimer@redhat.com>
11402 * config/i386/i386-c.c (ix86_target_macros_internal): Define
11403 __LAHF_SAHF__ and __MOVBE__ based on ISA flags.
11405 2020-09-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11408 * config/aarch64/arm_neon.h (vqrshlb_u8): Make second argument
11410 (vqrshlh_u16): Likewise.
11411 (vqrshls_u32): Likewise.
11412 (vqrshld_u64): Likewise.
11413 (vqshlb_u8): Likewise.
11414 (vqshlh_u16): Likewise.
11415 (vqshls_u32): Likewise.
11416 (vqshld_u64): Likewise.
11417 (vshld_u64): Likewise.
11419 2020-09-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11422 * config/aarch64/aarch64-simd-builtins.def (sqmovun): Use UNOPUS
11424 * config/aarch64/arm_neon.h (vqmovun_s16): Adjust builtin call.
11425 Remove unnecessary result cast.
11426 (vqmovun_s32): Likewise.
11427 (vqmovun_s64): Likewise.
11428 (vqmovunh_s16): Likewise. Fix return type.
11429 (vqmovuns_s32): Likewise.
11430 (vqmovund_s64): Likewise.
11432 2020-09-30 Richard Sandiford <richard.sandiford@arm.com>
11434 * config/aarch64/aarch64.c (aarch64_split_128bit_move_p): Add a
11435 function comment. Tighten check for FP moves.
11436 * config/aarch64/aarch64.md (*movti_aarch64): Add a w<-Z alternative.
11437 (*movtf_aarch64): Handle r<-Y like r<-r. Remove unnecessary
11438 earlyclobber. Change splitter predicate from aarch64_reg_or_imm
11439 to nonmemory_operand.
11441 2020-09-30 Alex Coplan <alex.coplan@arm.com>
11444 * config/arm/arm.md (movsf): Relax TARGET_HARD_FLOAT to
11447 * config/arm/vfp.md (no_literal_pool_df_immediate): Likewise.
11448 (no_literal_pool_sf_immediate): Likewise.
11450 2020-09-30 Alan Modra <amodra@gmail.com>
11452 * configure.ac (--with-long-double-format): Typo fix.
11453 * configure: Regenerate.
11455 2020-09-30 Alan Modra <amodra@gmail.com>
11457 * config/rs6000/rs6000.md (@tablejump<mode>_normal): Don't use
11458 non-existent operands[].
11459 (@tablejump<mode>_nospec): Likewise.
11461 2020-09-30 Segher Boessenkool <segher@kernel.crashing.org>
11463 * config/rs6000/rs6000.md (tablejump): Simplify.
11464 (tablejumpsi): Merge this ...
11465 (tablejumpdi): ... and this ...
11466 (@tablejump<mode>_normal): ... into this.
11467 (tablejumpsi_nospec): Merge this ...
11468 (tablejumpdi_nospec): ... and this ...
11469 (@tablejump<mode>_nospec): ... into this.
11470 (*tablejump<mode>_internal1): Delete, rename to ...
11471 (@tablejump<mode>_insn_normal): ... this.
11472 (*tablejump<mode>_internal1_nospec): Delete, rename to ...
11473 (@tablejump<mode>_insn_nospec): ... this.
11475 2020-09-29 Martin Sebor <msebor@redhat.com>
11477 PR middle-end/97188
11478 * calls.c (maybe_warn_rdwr_sizes): Simplify warning messages.
11479 Correct handling of VLA argumments.
11481 2020-09-29 Marek Polacek <polacek@redhat.com>
11484 * doc/invoke.texi: Document -Wrange-loop-construct.
11486 2020-09-29 Jim Wilson <jimw@sifive.com>
11489 * configure.ac (gcc_cv_header_zstd_h): Check ZSTD_VERISON_NUMBER.
11490 * configure: Regenerated.
11492 2020-09-29 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
11494 * config/arm/arm-cpus.in: Add Cortex-X1 core.
11495 * config/arm/arm-tables.opt: Regenerate.
11496 * config/arm/arm-tune.md: Regenerate.
11497 * doc/invoke.texi: Update docs.
11499 2020-09-29 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
11501 * config/aarch64/aarch64-cores.def: Add Cortex-X1 Arm core.
11502 * config/aarch64/aarch64-tune.md: Regenerate.
11503 * doc/invoke.texi: Add -mtune=cortex-x1 docs.
11505 2020-09-29 H.J. Lu <hjl.tools@gmail.com>
11508 * config/i386/enqcmdintrin.h: Replace <enqcmdntrin.h> with
11509 <enqcmdintrin.h>. Replace _ENQCMDNTRIN_H_INCLUDED with
11510 _ENQCMDINTRIN_H_INCLUDED.
11512 2020-09-29 Richard Biener <rguenther@suse.de>
11514 PR tree-optimization/97241
11515 * tree-vect-loop.c (vectorizable_reduction): Move finding
11516 the SLP node for the reduction stmt to a better place.
11518 2020-09-29 Richard Biener <rguenther@suse.de>
11520 * tree-vect-slp.c (vect_analyze_slp): Move SLP reduction
11521 re-arrangement and SLP graph load gathering...
11522 (vect_optimize_slp): ... here.
11523 * tree-vectorizer.h (vec_info::slp_loads): Remove.
11525 2020-09-29 Hongyu Wang <hongyu.wang@intel.com>
11528 * config/i386/amxbf16intrin.h: Add FSF copyright notes.
11529 * config/i386/amxint8intrin.h: Ditto.
11530 * config/i386/amxtileintrin.h: Ditto.
11531 * config/i386/avx512vp2intersectintrin.h: Ditto.
11532 * config/i386/avx512vp2intersectvlintrin.h: Ditto.
11533 * config/i386/pconfigintrin.h: Ditto.
11534 * config/i386/tsxldtrkintrin.h: Ditto.
11535 * config/i386/wbnoinvdintrin.h: Ditto.
11537 2020-09-29 Richard Biener <rguenther@suse.de>
11539 PR tree-optimization/97238
11540 * tree-ssa-reassoc.c (ovce_extract_ops): Fix typo.
11542 2020-09-29 Richard Sandiford <richard.sandiford@arm.com>
11544 * config/arm/arm.h (ARM_HAVE_NEON_V8QI_ARITH, ARM_HAVE_NEON_V4HI_ARITH)
11545 (ARM_HAVE_NEON_V2SI_ARITH, ARM_HAVE_NEON_V16QI_ARITH): New macros.
11546 (ARM_HAVE_NEON_V8HI_ARITH, ARM_HAVE_NEON_V4SI_ARITH): Likewise.
11547 (ARM_HAVE_NEON_V2DI_ARITH, ARM_HAVE_NEON_V4HF_ARITH): Likewise.
11548 (ARM_HAVE_NEON_V8HF_ARITH, ARM_HAVE_NEON_V2SF_ARITH): Likewise.
11549 (ARM_HAVE_NEON_V4SF_ARITH, ARM_HAVE_V8QI_ARITH, ARM_HAVE_V4HI_ARITH)
11550 (ARM_HAVE_V2SI_ARITH, ARM_HAVE_V16QI_ARITH, ARM_HAVE_V8HI_ARITH)
11551 (ARM_HAVE_V4SI_ARITH, ARM_HAVE_V2DI_ARITH, ARM_HAVE_V4HF_ARITH)
11552 (ARM_HAVE_V2SF_ARITH, ARM_HAVE_V8HF_ARITH, ARM_HAVE_V4SF_ARITH):
11554 * config/arm/iterators.md (VNIM, VNINOTM): Delete.
11555 * config/arm/vec-common.md (add<VNIM:mode>3, addv8hf3)
11556 (add<VNINOTM:mode>3): Replace with...
11557 (add<VDQ:mode>3): ...this new expander.
11558 * config/arm/neon.md (*add<VDQ:mode>3_neon): Use the new
11559 ARM_HAVE_NEON_<MODE>_ARITH macros as the C condition.
11560 (addv8hf3_neon, addv4hf3, add<VFH:mode>3_fp16): Delete in
11561 favor of the above.
11562 (neon_vadd<VH:mode>): Use gen_add<mode>3 instead of
11563 gen_add<mode>3_fp16.
11565 2020-09-29 Kito Cheng <kito.cheng@sifive.com>
11567 * config/riscv/riscv-c.c (riscv_cpu_cpp_builtins): Define
11568 __riscv_cmodel_medany when PIC mode.
11570 2020-09-29 Alex Coplan <alex.coplan@arm.com>
11572 * config/aarch64/aarch64-cores.def: Move neoverse-n2 after saphira.
11573 * config/aarch64/aarch64-tune.md: Regenerate.
11575 2020-09-29 Martin Liska <mliska@suse.cz>
11577 PR tree-optimization/96979
11578 * tree-switch-conversion.c (jump_table_cluster::can_be_handled):
11579 Make a fast bail out.
11580 (bit_test_cluster::can_be_handled): Likewise here.
11581 * tree-switch-conversion.h (get_range): Use wi::to_wide instead
11584 2020-09-29 Martin Liska <mliska@suse.cz>
11587 2020-09-22 Martin Liska <mliska@suse.cz>
11589 PR tree-optimization/96979
11590 * doc/invoke.texi: Document new param max-switch-clustering-attempts.
11591 * params.opt: Add new parameter.
11592 * tree-switch-conversion.c (jump_table_cluster::find_jump_tables):
11593 Limit number of attempts.
11594 (bit_test_cluster::find_bit_tests): Likewise.
11596 2020-09-28 Aldy Hernandez <aldyh@redhat.com>
11598 * value-range.h (class irange): Add irange_allocator friend.
11599 (class irange_allocator): New.
11601 2020-09-28 Tobias Burnus <tobias@codesourcery.com>
11603 PR middle-end/96390
11604 * omp-offload.c (omp_discover_declare_target_tgt_fn_r): Handle
11607 2020-09-28 Paul A. Clarke <pc@us.ibm.com>
11609 * config/rs6000/smmintrin.h (_mm_insert_epi8): New.
11610 (_mm_insert_epi32): New.
11611 (_mm_insert_epi64): New.
11613 2020-09-28 liuhongt <hongtao.liu@intel.com>
11615 * common/config/i386/i386-common.c (OPTION_MASK_ISA2_AMX_TILE_SET,
11616 OPTION_MASK_ISA2_AMX_INT8_SET, OPTION_MASK_ISA2_AMX_BF16_SET,
11617 OPTION_MASK_ISA2_AMX_TILE_UNSET, OPTION_MASK_ISA2_AMX_INT8_UNSET,
11618 OPTION_MASK_ISA2_AMX_BF16_UNSET, OPTION_MASK_ISA2_XSAVE_UNSET):
11620 (ix86_handle_option): Hanlde -mamx-tile, -mamx-int8, -mamx-bf16.
11621 * common/config/i386/i386-cpuinfo.h (processor_types): Add
11622 FEATURE_AMX_TILE, FEATURE_AMX_INT8, FEATURE_AMX_BF16.
11623 * common/config/i386/cpuinfo.h (XSTATE_TILECFG,
11624 XSTATE_TILEDATA, XCR_AMX_ENABLED_MASK): New macro.
11625 (get_available_features): Enable AMX features only if
11626 their states are suoorited by OSXSAVE.
11627 * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY
11628 for amx-tile, amx-int8, amx-bf16.
11629 * config.gcc: Add amxtileintrin.h, amxint8intrin.h,
11630 amxbf16intrin.h to extra headers.
11631 * config/i386/amxbf16intrin.h: New file.
11632 * config/i386/amxint8intrin.h: Ditto.
11633 * config/i386/amxtileintrin.h: Ditto.
11634 * config/i386/cpuid.h (bit_AMX_BF16, bit_AMX_TILE, bit_AMX_INT8):
11636 * config/i386/i386-c.c (ix86_target_macros_internal): Define
11637 __AMX_TILE__, __AMX_INT8__, AMX_BF16__.
11638 * config/i386/i386-options.c (ix86_target_string): Add
11639 -mamx-tile, -mamx-int8, -mamx-bf16.
11640 (ix86_option_override_internal): Handle AMX-TILE,
11641 AMX-INT8, AMX-BF16.
11642 * config/i386/i386.h (TARGET_AMX_TILE, TARGET_AMX_TILE_P,
11643 TARGET_AMX_INT8, TARGET_AMX_INT8_P, TARGET_AMX_BF16_P,
11644 PTA_AMX_TILE, PTA_AMX_INT8, PTA_AMX_BF16): New macros.
11645 * config/i386/i386.opt: Add -mamx-tile, -mamx-int8, -mamx-bf16.
11646 * config/i386/immintrin.h: Include amxtileintrin.h,
11647 amxint8intrin.h, amxbf16intrin.h.
11648 * doc/invoke.texi: Document -mamx-tile, -mamx-int8, -mamx-bf16.
11649 * doc/extend.texi: Document amx-tile, amx-int8, amx-bf16.
11650 * doc/sourcebuild.texi ((Effective-Target Keywords, Other
11651 hardware attributes): Document amx_int8, amx_tile, amx_bf16.
11653 2020-09-28 Andrea Corallo <andrea.corallo@arm.com>
11655 * config/aarch64/aarch64-builtins.c
11656 (aarch64_general_expand_builtin): Do not alter value on a
11657 force_reg returned rtx.
11659 2020-09-28 Eric Botcazou <ebotcazou@adacore.com>
11661 * tree-eh.c (lower_try_finally_dup_block): Revert latest change.
11663 2020-09-27 Jan Hubicka <jh@suse.cz>
11665 * ipa-modref.c (modref_summary::useful_p): Fix testing of stores.
11667 2020-09-27 Jakub Jelinek <jakub@redhat.com>
11669 PR middle-end/97073
11670 * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
11671 expand_copysign_bit): Check reg_overlap_mentioned_p between target
11672 and operand(s) and if it returns true, force a pseudo as target.
11674 2020-09-27 Xionghu Luo <luoxhu@linux.ibm.com>
11676 * gimple-isel.cc (gimple_expand_vec_set_expr): New function.
11677 (gimple_expand_vec_cond_exprs): Rename to ...
11678 (gimple_expand_vec_exprs): ... this and call
11679 gimple_expand_vec_set_expr.
11680 * internal-fn.c (vec_set_direct): New define.
11681 (expand_vec_set_optab_fn): New function.
11682 (direct_vec_set_optab_supported_p): New define.
11683 * internal-fn.def (VEC_SET): New DEF_INTERNAL_OPTAB_FN.
11684 * optabs.c (can_vec_set_var_idx_p): New function.
11685 * optabs.h (can_vec_set_var_idx_p): New declaration.
11687 2020-09-26 Jan Hubicka <jh@suse.cz>
11689 * ipa-modref.c (analyze_stmt): Do not skip clobbers in early pass.
11690 * ipa-pure-const.c (analyze_stmt): Update comment.
11692 2020-09-26 David Edelsohn <dje.gcc@gmail.com>
11693 Clement Chigot <clement.chigot@atos.com>
11695 * collect2.c (visibility_flag): New.
11696 (main): Detect -fvisibility.
11697 (write_c_file_stat): Push and pop default visibility.
11699 2020-09-26 Jan Hubicka <hubicka@ucw.cz>
11701 * ipa-inline-transform.c: Include ipa-modref-tree.h and ipa-modref.h.
11702 (inline_call): Call ipa_merge_modref_summary_after_inlining.
11703 * ipa-inline.c (ipa_inline): Do not free summaries.
11704 * ipa-modref.c (dump_records): Fix formating.
11705 (merge_call_side_effects): Break out from ...
11706 (analyze_call): ... here; record recursive calls.
11707 (analyze_stmt): Add new parameter RECURSIVE_CALLS.
11708 (analyze_function): Do iterative dataflow on recursive calls.
11709 (compute_parm_map): New function.
11710 (ipa_merge_modref_summary_after_inlining): New function.
11711 (collapse_loads): New function.
11712 (modref_propagate_in_scc): Break out from ...
11713 (pass_ipa_modref::execute): ... here; Do iterative dataflow.
11714 * ipa-modref.h (ipa_merge_modref_summary_after_inlining): Declare.
11716 2020-09-26 Jakub Jelinek <jakub@redhat.com>
11718 * omp-expand.c (expand_omp_simd): Help vectorizer for the collapse == 1
11719 and non-composite collapse > 1 case with non-constant innermost loop
11720 step by precomputing number of iterations before loop and using an
11721 alternate IV from 0 to number of iterations - 1 with step of 1.
11723 2020-09-26 Jan Hubicka <jh@suse.cz>
11725 * ipa-fnsummary.c (dump_ipa_call_summary): Dump
11726 points_to_local_or_readonly_memory flag.
11727 (analyze_function_body): Compute points_to_local_or_readonly_memory
11729 (remap_edge_change_prob): Rename to ...
11730 (remap_edge_params): ... this one; update
11731 points_to_local_or_readonly_memory.
11732 (remap_edge_summaries): Update.
11733 (read_ipa_call_summary): Stream the new flag.
11734 (write_ipa_call_summary): Likewise.
11735 * ipa-predicate.h (struct inline_param_summary): Add
11736 points_to_local_or_readonly_memory.
11737 (inline_param_summary::equal_to): Update.
11738 (inline_param_summary::useless_p): Update.
11740 2020-09-26 Jan Hubicka <hubicka@ucw.cz>
11742 * ipa-modref-tree.h (modref_ref_node::insert_access): Track if something
11744 (modref_base_node::insert_ref): Likewise (and add a new optional
11746 (modref_tree::insert): Likewise.
11747 (modref_tree::merge): Rewrite
11749 2020-09-25 Jan Hubicka <hubicka@ucw.cz>
11751 * doc/invoke.texi: Add -fno-ipa-modref to flags disabled by
11753 * opts.c (control_options_for_live_patching): Disable ipa-modref.
11755 2020-09-25 Jan Hubicka <hubicka@ucw.cz>
11757 * ipa-modref.c (analyze_stmt): Fix return value for gimple_clobber.
11759 2020-09-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11761 * config/aarch64/aarch64-option-extensions.def (rng): Add
11764 2020-09-25 Alex Coplan <alex.coplan@arm.com>
11766 * config/arm/arm-cpus.in (neoverse-v1): Add FP16.
11768 2020-09-25 Martin Liska <mliska@suse.cz>
11770 PR gcov-profile/64636
11771 * value-prof.c (stream_out_histogram_value): Allow negative
11772 values for HIST_TYPE_IOR.
11774 2020-09-25 Tom de Vries <tdevries@suse.de>
11776 * config/nvptx/nvptx.c (nvptx_assemble_integer, nvptx_print_operand):
11777 Use gcc_fallthrough ().
11779 2020-09-25 Richard Biener <rguenther@suse.de>
11781 PR middle-end/96814
11782 * expr.c (store_constructor): Handle VECTOR_BOOLEAN_TYPE_P
11785 2020-09-25 Richard Biener <rguenther@suse.de>
11787 PR middle-end/97207
11788 * vec.h (auto_vec<T>::operator=(auto_vec<T>&&)): Implement.
11790 2020-09-25 Richard Sandiford <richard.sandiford@arm.com>
11792 * config/arm/arm-protos.h (arm_mve_mode_and_operands_type_check):
11794 * config/arm/arm.c (arm_coproc_mem_operand_wb): Use a scale factor
11795 of 2 rather than 4 for 16-bit modes.
11796 (arm_mve_mode_and_operands_type_check): Delete.
11797 * config/arm/constraints.md (Uj): Allow writeback for Neon,
11798 but continue to disallow it for MVE.
11799 * config/arm/arm.md (*arm32_mov<HFBF:mode>): Add !TARGET_HAVE_MVE.
11800 * config/arm/vfp.md (*mov_load_vfp_hf16, *mov_store_vfp_hf16): Fold
11802 (*mov<mode>_vfp_<mode>16): ...here but use Uj for the FPR memory
11803 constraints. Use for base MVE too.
11805 2020-09-25 Richard Biener <rguenther@suse.de>
11807 PR tree-optimization/97199
11808 * tree-if-conv.c (combine_blocks): Remove edges only
11809 after looking at virtual PHI args.
11811 2020-09-25 Jakub Jelinek <jakub@redhat.com>
11813 * omp-low.c (scan_omp_1_stmt): Don't call scan_omp_simd for
11814 collapse > 1 loops as simt doesn't support collapsed loops yet.
11815 * omp-expand.c (expand_omp_for_init_counts, expand_omp_for_init_vars):
11816 Small tweaks to function comment.
11817 (expand_omp_simd): Rewritten collapse > 1 support to only attempt
11818 to vectorize the innermost loop and emit set of outer loops around it.
11819 For non-composite simd with collapse > 1 without broken loop don't
11820 even try to compute number of iterations first. Add support for
11821 non-rectangular simd loops.
11822 (expand_omp_for): Don't sorry_at on non-rectangular simd loops.
11824 2020-09-25 Martin Liska <mliska@suse.cz>
11826 * cgraph.c (cgraph_edge::debug): New.
11827 * cgraph.h (cgraph_edge::debug): New.
11829 2020-09-25 Martin Liska <mliska@suse.cz>
11831 * cgraph.c (cgraph_node::dump): Always print space at the end
11832 of a message. Remove one extra space.
11834 2020-09-24 Alex Coplan <alex.coplan@arm.com>
11836 * config/arm/arm-cpus.in (neoverse-n2): New.
11837 * config/arm/arm-tables.opt: Regenerate.
11838 * config/arm/arm-tune.md: Regenerate.
11839 * doc/invoke.texi: Document support for Neoverse N2.
11841 2020-09-24 Alex Coplan <alex.coplan@arm.com>
11843 * config/aarch64/aarch64-cores.def: Add Neoverse N2.
11844 * config/aarch64/aarch64-tune.md: Regenerate.
11845 * doc/invoke.texi: Document AArch64 support for Neoverse N2.
11847 2020-09-24 Richard Biener <rguenther@suse.de>
11849 * vec.h (auto_vec<T, 0>::auto_vec (auto_vec &&)): New move CTOR.
11850 (auto_vec<T, 0>::operator=(auto_vec &&)): Delete.
11851 * hash-table.h (hash_table::expand): Use std::move when expanding.
11852 * cfgloop.h (get_loop_exit_edges): Return auto_vec<edge>.
11853 * cfgloop.c (get_loop_exit_edges): Adjust.
11854 * cfgloopmanip.c (fix_loop_placement): Likewise.
11855 * ipa-fnsummary.c (analyze_function_body): Likewise.
11856 * ira-build.c (create_loop_tree_nodes): Likewise.
11857 (create_loop_tree_node_allocnos): Likewise.
11858 (loop_with_complex_edge_p): Likewise.
11859 * ira-color.c (ira_loop_edge_freq): Likewise.
11860 * loop-unroll.c (analyze_insns_in_loop): Likewise.
11861 * predict.c (predict_loops): Likewise.
11862 * tree-predcom.c (last_always_executed_block): Likewise.
11863 * tree-ssa-loop-ch.c (ch_base::copy_headers): Likewise.
11864 * tree-ssa-loop-im.c (store_motion_loop): Likewise.
11865 * tree-ssa-loop-ivcanon.c (loop_edge_to_cancel): Likewise.
11866 (canonicalize_loop_induction_variables): Likewise.
11867 * tree-ssa-loop-manip.c (get_loops_exits): Likewise.
11868 * tree-ssa-loop-niter.c (find_loop_niter): Likewise.
11869 (finite_loop_p): Likewise.
11870 (find_loop_niter_by_eval): Likewise.
11871 (estimate_numbers_of_iterations): Likewise.
11872 * tree-ssa-loop-prefetch.c (emit_mfence_after_loop): Likewise.
11873 (may_use_storent_in_loop_p): Likewise.
11875 2020-09-24 Jan Hubicka <jh@suse.cz>
11877 * doc/invoke.texi: Document -fipa-modref, ipa-modref-max-bases,
11878 ipa-modref-max-refs, ipa-modref-max-accesses, ipa-modref-max-tests.
11879 * ipa-modref-tree.c (test_insert_search_collapse): Update.
11880 (test_merge): Update.
11881 (gt_ggc_mx): New function.
11882 * ipa-modref-tree.h (struct modref_access_node): New structure.
11883 (struct modref_ref_node): Add every_access and accesses array.
11884 (modref_ref_node::modref_ref_node): Update ctor.
11885 (modref_ref_node::search): New member function.
11886 (modref_ref_node::collapse): New member function.
11887 (modref_ref_node::insert_access): New member function.
11888 (modref_base_node::insert_ref): Do not collapse base if ref is 0.
11889 (modref_base_node::collapse): Copllapse also refs.
11890 (modref_tree): Add accesses.
11891 (modref_tree::modref_tree): Initialize max_accesses.
11892 (modref_tree::insert): Add access parameter.
11893 (modref_tree::cleanup): New member function.
11894 (modref_tree::merge): Add parm_map; merge accesses.
11895 (modref_tree::copy_from): New member function.
11896 (modref_tree::create_ggc): Add max_accesses.
11897 * ipa-modref.c (dump_access): New function.
11898 (dump_records): Dump accesses.
11899 (dump_lto_records): Dump accesses.
11900 (get_access): New function.
11901 (record_access): Record access.
11902 (record_access_lto): Record access.
11903 (analyze_call): Compute parm_map.
11904 (analyze_function): Update construction of modref records.
11905 (modref_summaries::duplicate): Likewise; use copy_from.
11906 (write_modref_records): Stream accesses.
11907 (read_modref_records): Sream accesses.
11908 (pass_ipa_modref::execute): Update call of merge.
11909 * params.opt (-param=modref-max-accesses): New.
11910 * tree-ssa-alias.c (alias_stats): Add modref_baseptr_tests.
11911 (dump_alias_stats): Update.
11912 (base_may_alias_with_dereference_p): New function.
11913 (modref_may_conflict): Check accesses.
11914 (ref_maybe_used_by_call_p_1): Update call to modref_may_conflict.
11915 (call_may_clobber_ref_p_1): Update call to modref_may_conflict.
11917 2020-09-24 Richard Sandiford <richard.sandiford@arm.com>
11919 * config/arm/arm.md (*stack_protect_combined_set_insn): For non-PIC,
11920 load the address of the canary rather than the address of the
11921 constant pool entry that points to it.
11922 (*stack_protect_combined_test_insn): Likewise.
11924 2020-09-24 Richard Biener <rguenther@suse.de>
11926 PR tree-optimization/97085
11927 * match.pd (mask ? { false,..} : { true, ..} -> ~mask): New.
11929 2020-09-24 Jan Hubicka <hubicka@ucw.cz>
11931 * ipa-modref-tree.h (modref_base::collapse): Release memory.
11932 (modref_tree::create_ggc): New member function.
11933 (modref_tree::colapse): Release memory.
11934 (modref_tree::~modref_tree): New destructor.
11935 * ipa-modref.c (modref_summaries::create_ggc): New function.
11936 (analyze_function): Use create_ggc.
11937 (modref_summaries::duplicate): Likewise.
11938 (read_modref_records): Likewise.
11939 (modref_read): Likewise.
11941 2020-09-24 Alan Modra <amodra@gmail.com>
11943 * config/rs6000/rs6000.c (rs6000_rtx_costs): Pass mode to
11944 reg_or_add_cint_operand and reg_or_sub_cint_operand.
11946 2020-09-24 Alan Modra <amodra@gmail.com>
11949 * config/rs6000/rs6000.c (num_insns_constant_gpr): Count rldimi
11950 constants correctly.
11952 2020-09-24 Alan Modra <amodra@gmail.com>
11954 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
11955 Conditionally define __PCREL__.
11957 2020-09-24 Alan Modra <amodra@gmail.com>
11960 * config/rs6000/rs6000-internal.h (struct rs6000_stack): Improve
11962 * config/rs6000/rs6000-logue.c (rs6000_stack_info): Likewise.
11963 (rs6000_expand_split_stack_prologue): Emit the prologue for
11964 functions that make a sibling call.
11966 2020-09-24 David Malcolm <dmalcolm@redhat.com>
11968 * doc/analyzer.texi (Analyzer Paths): Add note about
11969 -fno-analyzer-feasibility.
11970 * doc/invoke.texi (Static Analyzer Options): Add
11971 -fno-analyzer-feasibility.
11973 2020-09-24 Paul A. Clarke <pc@us.ibm.com>
11975 * doc/extend.texi: Add 'd' for doubleword variant of
11976 vector insert instruction.
11978 2020-09-23 Martin Sebor <msebor@redhat.com>
11980 * gimple-array-bounds.cc (build_zero_elt_array_type): New function.
11981 (array_bounds_checker::check_mem_ref): Call it.
11983 2020-09-23 Martin Sebor <msebor@redhat.com>
11985 PR middle-end/97175
11986 * builtins.c (maybe_warn_for_bound): Handle both DECLs and EXPRESSIONs
11987 in pad->dst.ref, same is pad->src.ref.
11989 2020-09-23 Jan Hubicka <jh@suse.cz>
11991 * ipa-fnsummary.c (refs_local_or_readonly_memory_p): New function.
11992 (points_to_local_or_readonly_memory_p): New function.
11993 * ipa-fnsummary.h (refs_local_or_readonly_memory_p): Declare.
11994 (points_to_local_or_readonly_memory_p): Declare.
11995 * ipa-modref.c (record_access_p): Use refs_local_or_readonly_memory_p.
11996 * ipa-pure-const.c (check_op): Likewise.
11998 2020-09-23 Tom de Vries <tdevries@suse.de>
12000 * config/nvptx/nvptx.md: Don't allow operand containing sum of
12001 function ref and const.
12003 2020-09-23 Richard Sandiford <richard.sandiford@arm.com>
12005 * config/aarch64/aarch64-protos.h (aarch64_salt_type): New enum.
12006 (aarch64_stack_protect_canary_mem): Declare.
12007 * config/aarch64/aarch64.md (UNSPEC_SALT_ADDR): New unspec.
12008 (stack_protect_set): Forward to stack_protect_combined_set.
12009 (stack_protect_combined_set): New pattern. Use
12010 aarch64_stack_protect_canary_mem.
12011 (reg_stack_protect_address_<mode>): Add a salt operand.
12012 (stack_protect_test): Forward to stack_protect_combined_test.
12013 (stack_protect_combined_test): New pattern. Use
12014 aarch64_stack_protect_canary_mem.
12015 * config/aarch64/aarch64.c (strip_salt): New function.
12016 (strip_offset_and_salt): Likewise.
12017 (tls_symbolic_operand_type): Use strip_offset_and_salt.
12018 (aarch64_stack_protect_canary_mem): New function.
12019 (aarch64_cannot_force_const_mem): Use strip_offset_and_salt.
12020 (aarch64_classify_address): Likewise.
12021 (aarch64_symbolic_address_p): Likewise.
12022 (aarch64_print_operand): Likewise.
12023 (aarch64_output_addr_const_extra): New function.
12024 (aarch64_tls_symbol_p): Use strip_salt.
12025 (aarch64_classify_symbol): Likewise.
12026 (aarch64_legitimate_pic_operand_p): Use strip_offset_and_salt.
12027 (aarch64_legitimate_constant_p): Likewise.
12028 (aarch64_mov_operand_p): Use strip_salt.
12029 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Override.
12031 2020-09-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12034 * config/aarch64/arm_neon.h (vreinterpretq_f64_p128,
12035 vreinterpretq_p128_f64): Define.
12037 2020-09-23 Alex Coplan <alex.coplan@arm.com>
12039 * config/arm/arm-cpus.in (neoverse-v1): New.
12040 * config/arm/arm-tables.opt: Regenerate.
12041 * config/arm/arm-tune.md: Regenerate.
12042 * doc/invoke.texi: Document support for Neoverse V1.
12044 2020-09-23 Alex Coplan <alex.coplan@arm.com>
12046 * config/aarch64/aarch64-cores.def: Add Neoverse V1.
12047 * config/aarch64/aarch64-tune.md: Regenerate.
12048 * doc/invoke.texi: Document support for Neoverse V1.
12050 2020-09-23 Richard Biener <rguenther@suse.de>
12052 PR middle-end/96453
12053 * gimple-isel.cc (gimple_expand_vec_cond_expr): Remove
12054 LT_EXPR -> NE_EXPR verification and also apply it for
12055 non-constant masks.
12057 2020-09-23 Jan Hubicka <hubicka@ucw.cz>
12059 * ipa-modref.c (modref_summary::lto_useful_p): New member function.
12060 (modref_summary::useful_p): New member function.
12061 (analyze_function): Drop useless summaries.
12062 (modref_write): Skip useless summaries.
12063 (pass_ipa_modref::execute): Drop useless summaries.
12064 * ipa-modref.h (struct GTY): Declare useful_p and lto_useful_p.
12065 * tree-ssa-alias.c (dump_alias_stats): Fix.
12066 (modref_may_conflict): Fix stats.
12068 2020-09-23 Richard Biener <rguenther@suse.de>
12070 PR middle-end/96466
12071 * internal-fn.c (expand_vect_cond_mask_optab_fn): Use
12072 appropriate mode for force_reg.
12073 * tree.c (build_truth_vector_type_for): Pass VOIDmode to
12076 2020-09-23 Richard Sandiford <richard.sandiford@arm.com>
12078 * tree-vectorizer.h (determine_peel_for_niter): Delete in favor of...
12079 (vect_determine_partial_vectors_and_peeling): ...this new function.
12080 * tree-vect-loop-manip.c (vect_update_epilogue_niters): New function.
12081 Reject using vector epilogue loops for single iterations. Install
12082 the constant number of epilogue loop iterations in the associated
12083 loop_vinfo. Rely on vect_determine_partial_vectors_and_peeling
12084 to do the main part of the test.
12085 (vect_do_peeling): Use vect_update_epilogue_niters to handle
12086 epilogue loops with a known number of iterations. Skip recomputing
12087 the number of iterations later in that case. Otherwise, use
12088 vect_determine_partial_vectors_and_peeling to decide whether the
12089 epilogue loop needs to use partial vectors or peeling.
12090 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Set the
12091 default can_use_partial_vectors_p to false if partial-vector-usage=0.
12092 (determine_peel_for_niter): Remove in favor of...
12093 (vect_determine_partial_vectors_and_peeling): ...this new function,
12095 (vect_analyze_loop_2): ...here. Reflect the vect_verify_full_masking
12096 and vect_verify_loop_lens results in CAN_USE_PARTIAL_VECTORS_P
12097 rather than USING_PARTIAL_VECTORS_P.
12099 2020-09-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12102 * config/aarch64/aarch64-simd-builtins.def (frintn): Use BUILTIN_VHSDF_HSDF
12103 for modes. Remove explicit hf instantiation.
12104 * config/aarch64/arm_neon.h (vrndns_f32): Define.
12106 2020-09-23 Richard Biener <rguenther@suse.de>
12108 PR tree-optimization/97173
12109 * tree-vect-loop.c (vectorizable_live_operation): Extend
12110 assert to also conver element conversions.
12112 2020-09-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12115 * config/aarch64/arm_neon.h (vtrn1q_p64, vtrn2q_p64, vuzp1q_p64,
12116 vuzp2q_p64, vzip1q_p64, vzip2q_p64): Define.
12118 2020-09-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12121 * config/aarch64/arm_neon.h (vldrq_p128): Define.
12123 2020-09-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12126 * config/aarch64/arm_neon.h (vstrq_p128): Define.
12128 2020-09-23 Richard Biener <rguenther@suse.de>
12130 PR tree-optimization/97151
12131 * tree-ssa-structalias.c (find_func_aliases_for_call):
12132 DECL_IS_REPLACEABLE_OPERATOR_DELETE_P has no effect on
12135 2020-09-23 Richard Biener <rguenther@suse.de>
12137 PR middle-end/97162
12138 * alias.c (compare_base_decls): Use DECL_HARD_REGISTER
12139 and guard with VAR_P.
12141 2020-09-23 Martin Liska <mliska@suse.cz>
12143 PR gcov-profile/97069
12144 * profile.c (branch_prob): Line number must be at least 1.
12146 2020-09-23 Tom de Vries <tdevries@suse.de>
12149 * config/nvptx/nvptx.c (nvptx_output_mov_insn): Handle move from
12150 DF subreg to DF reg.
12152 2020-09-23 David Malcolm <dmalcolm@redhat.com>
12154 * Makefile.in: Add $(ZLIBINC) to CFLAGS-analyzer/engine.o.
12156 2020-09-22 Jan Hubicka <jh@suse.cz>
12158 * ipa-modref.c (analyze_stmt): Ignore gimple clobber.
12160 2020-09-22 Jan Hubicka <jh@suse.cz>
12162 * ipa-modref-tree.c: Add namespace selftest.
12163 (modref_tree_c_tests): Rename to ...
12164 (ipa_modref_tree_c_tests): ... this.
12165 * ipa-modref.c (pass_modref): Remove destructor.
12166 (ipa_modref_c_finalize): New function.
12167 * ipa-modref.h (ipa_modref_c_finalize): Declare.
12168 * selftest-run-tests.c (selftest::run_tests): Call
12169 ipa_modref_c_finalize.
12170 * selftest.h (ipa_modref_tree_c_tests): Declare.
12171 * toplev.c: Include ipa-modref-tree.h and ipa-modref.h
12172 (toplev::finalize): Call ipa_modref_c_finalize.
12174 2020-09-22 David Malcolm <dmalcolm@redhat.com>
12176 * doc/analyzer.texi (Other Debugging Techniques): Mention
12177 -fdump-analyzer-json.
12178 * doc/invoke.texi (Static Analyzer Options): Add
12179 -fdump-analyzer-json.
12181 2020-09-22 David Faust <david.faust@oracle.com>
12183 * config/bpf/bpf.md: Add defines for signed div and mod operators.
12185 2020-09-22 Martin Liska <mliska@suse.cz>
12187 PR tree-optimization/96979
12188 * doc/invoke.texi: Document new param max-switch-clustering-attempts.
12189 * params.opt: Add new parameter.
12190 * tree-switch-conversion.c (jump_table_cluster::find_jump_tables):
12191 Limit number of attempts.
12192 (bit_test_cluster::find_bit_tests): Likewise.
12194 2020-09-22 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
12196 * config/s390/s390.md ("*cmp<mode>_ccs_0", "*cmp<mode>_ccz_0",
12197 "*cmp<mode>_ccs_0_fastmath"): Basically change "*cmp<mode>_ccs_0" into
12198 "*cmp<mode>_ccz_0" and for fast math add "*cmp<mode>_ccs_0_fastmath".
12200 2020-09-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12203 * config/aarch64/arm_neon.h (vcls_u8, vcls_u16, vcls_u32,
12204 vclsq_u8, vclsq_u16, vclsq_u32): Define.
12206 2020-09-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12209 * config/aarch64/arm_neon.h (vceqq_p64, vceqz_p64, vceqzq_p64): Define.
12211 2020-09-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12214 * config/aarch64/arm_neon.h (vadd_p8, vadd_p16, vadd_p64, vaddq_p8,
12215 vaddq_p16, vaddq_p64, vaddq_p128): Define.
12217 2020-09-22 Jakub Jelinek <jakub@redhat.com>
12219 * params.opt (--param=modref-max-tests=): Fix typo in help text:
12220 perofmed -> performed.
12221 * common.opt: Fix typo: incrmeental -> incremental.
12222 * ipa-modref.c: Fix typos: recroding -> recording, becaue -> because,
12223 analsis -> analysis.
12224 (class modref_summaries): Fix typo: betweehn -> between.
12225 (analyze_call): Fix typo: calle -> callee.
12226 (read_modref_records): Fix typo: expcted -> expected.
12227 (pass_ipa_modref::execute): Fix typo: calle -> callee.
12229 2020-09-22 Jakub Jelinek <jakub@redhat.com>
12231 * common.opt (-fipa-modref): Add dot at the end of option help.
12232 * params.opt (--param=modref-max-tests=): Likewise.
12234 2020-09-21 Marek Polacek <polacek@redhat.com>
12236 * doc/invoke.texi: Document -Wctad-maybe-unsupported.
12238 2020-09-21 Richard Biener <rguenther@suse.de>
12240 PR tree-optimization/97139
12241 * tree-vect-slp.c (vect_bb_slp_mark_live_stmts): Only mark the
12242 pattern root, track visited vectorized stmts.
12244 2020-09-21 Jakub Jelinek <jakub@redhat.com>
12246 * configure.ac: Use mallinfo mallinfo2 as first operand of
12247 gcc_AC_CHECK_DECLS rather than [mallinfo, mallinfo2].
12248 * configure: Regenerated.
12249 * config.in: Regenerated.
12251 2020-09-21 Andrea Corallo <andrea.corallo@arm.com>
12253 * config/aarch64/aarch64-builtins.c
12254 (aarch64_general_expand_builtin): Use expand machinery not to
12255 alter the value of an rtx returned by force_reg.
12257 2020-09-21 Richard Biener <rguenther@suse.de>
12259 PR tree-optimization/97135
12260 * tree-ssa-loop-im.c (sm_seq_push_down): Do not ignore
12263 2020-09-21 Martin Liska <mliska@suse.cz>
12265 PR tree-optimization/96915
12266 * tree-switch-conversion.c (switch_conversion::expand): Accept
12267 also integer constants.
12269 2020-09-21 Martin Liska <mliska@suse.cz>
12271 * print-tree.c (print_node): Remove extra space.
12273 2020-09-21 Andrea Corallo <andrea.corallo@arm.com>
12276 * config/aarch64/aarch64-builtins.c
12277 (aarch64_expand_fpsr_fpcr_setter): Fix comment nit.
12278 (aarch64_expand_fpsr_fpcr_getter): New function, expand these
12279 getters using expand_insn machinery.
12280 (aarch64_general_expand_builtin): Make use of.
12282 2020-09-21 Martin Liska <mliska@suse.cz>
12284 * ggc-common.c (ggc_rlimit_bound): Use ONE_? macro.
12285 (ggc_min_expand_heuristic): Likewise.
12286 (ggc_min_heapsize_heuristic): Likewise.
12287 * ggc-page.c (ggc_collect): Likewise.
12288 * system.h (ONE_G): Likewise.
12290 2020-09-21 Martin Liska <mliska@suse.cz>
12292 * ggc-common.c (ggc_prune_overhead_list): Use SIZE_AMOUNT.
12293 * ggc-page.c (release_pages): Likewise.
12294 (ggc_collect): Likewise.
12295 (ggc_trim): Likewise.
12296 (ggc_grow): Likewise.
12297 * timevar.c (timer::print): Likewise.
12299 2020-09-21 Martin Liska <mliska@suse.cz>
12301 * config.in: Regenerate.
12302 * configure: Likewise.
12303 * configure.ac: Detect for mallinfo2.
12304 * ggc-common.c (defined): Use it.
12305 * system.h: Handle also HAVE_MALLINFO2.
12307 2020-09-20 John David Anglin < danglin@gcc.gnu.org>
12309 * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Delete.
12310 * config/pa/pa64-hpux.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
12311 (ENDFILE_SPEC): Link with libgcc_stub.a and mill.a.
12312 * config/pa/pa32-linux.h (ENDFILE_SPEC): Link with libgcc.a.
12314 2020-09-20 Jan Hubicka <hubicka@ucw.cz>
12316 * ipa-modref.c (dump_lto_records): Fix ICE.
12318 2020-09-20 David Cepelik <d@dcepelik.cz>
12319 Jan Hubicka <hubicka@ucw.cz>
12321 * Makefile.in: Add ipa-modref.c and ipa-modref-tree.c.
12322 * alias.c: (reference_alias_ptr_type_1): Export.
12323 * alias.h (reference_alias_ptr_type_1): Declare.
12324 * common.opt (fipa-modref): New.
12325 * gengtype.c (open_base_files): Add ipa-modref-tree.h and ipa-modref.h
12326 * ipa-modref-tree.c: New file.
12327 * ipa-modref-tree.h: New file.
12328 * ipa-modref.c: New file.
12329 * ipa-modref.h: New file.
12330 * lto-section-in.c (lto_section_name): Add ipa_modref.
12331 * lto-streamer.h (enum lto_section_type): Add LTO_section_ipa_modref.
12332 * opts.c (default_options_table): Enable ipa-modref at -O1+.
12333 * params.opt (-param=modref-max-bases, -param=modref-max-refs,
12334 -param=modref-max-tests): New params.
12335 * passes.def: Schedule pass_modref and pass_ipa_modref.
12336 * timevar.def (TV_IPA_MODREF): New timevar.
12337 (TV_TREE_MODREF): New timevar.
12338 * tree-pass.h (make_pass_modref): Declare.
12339 (make_pass_ipa_modref): Declare.
12340 * tree-ssa-alias.c (dump_alias_stats): Include ipa-modref-tree.h
12342 (alias_stats): Add modref_use_may_alias, modref_use_no_alias,
12343 modref_clobber_may_alias, modref_clobber_no_alias, modref_tests.
12344 (dump_alias_stats): Dump new stats.
12345 (nonoverlapping_array_refs_p): Fix formating.
12346 (modref_may_conflict): New function.
12347 (ref_maybe_used_by_call_p_1): Use it.
12348 (call_may_clobber_ref_p_1): Use it.
12349 (call_may_clobber_ref_p): Update.
12350 (stmt_may_clobber_ref_p_1): Update.
12351 * tree-ssa-alias.h (call_may_clobber_ref_p_1): Update.
12353 2020-09-19 Martin Sebor <msebor@redhat.com>
12355 PR middle-end/82608
12356 PR middle-end/94195
12358 PR middle-end/84051
12359 * gimple-array-bounds.cc (get_base_decl): New function.
12360 (get_ref_size): New function.
12361 (trailing_array): New function.
12362 (array_bounds_checker::check_array_ref): Call them. Handle arrays
12363 declared in function parameters.
12364 (array_bounds_checker::check_mem_ref): Same. Handle references to
12365 dynamically allocated arrays.
12367 2020-09-19 Martin Sebor <msebor@redhat.com>
12370 * builtins.c (warn_for_access): Add argument. Distinguish between
12372 (check_access): Add argument. Distinguish between reads and writes.
12373 (gimple_call_alloc_size): Set range even on failure.
12374 (gimple_parm_array_size): New function.
12375 (compute_objsize): Call it.
12376 (check_memop_access): Pass check_access an additional argument.
12377 (expand_builtin_memchr, expand_builtin_strcat): Same.
12378 (expand_builtin_strcpy, expand_builtin_stpcpy_1): Same.
12379 (expand_builtin_stpncpy, check_strncat_sizes): Same.
12380 (expand_builtin_strncat, expand_builtin_strncpy): Same.
12381 (expand_builtin_memcmp): Same.
12382 * builtins.h (compute_objsize): Declare a new overload.
12383 (gimple_parm_array_size): Declare.
12384 (check_access): Add argument.
12385 * calls.c (append_attrname): Simplify.
12386 (maybe_warn_rdwr_sizes): Handle internal attribute access.
12387 * tree-ssa-uninit.c (maybe_warn_pass_by_reference): Avoid adding
12390 2020-09-19 Martin Sebor <msebor@redhat.com>
12392 * tree-ssa-uninit.c (maybe_warn_pass_by_reference): Handle attribute
12393 access internal representation of arrays.
12395 2020-09-19 Martin Sebor <msebor@redhat.com>
12398 * attribs.c (decl_attributes): Also pass decl along with type
12399 attributes to handlers.
12400 (init_attr_rdwr_indices): Change second argument to attribute chain.
12401 Handle internal attribute representation in addition to external.
12402 (get_parm_access): New function.
12403 (attr_access::to_internal_string): Define new member function.
12404 (attr_access::to_external_string): Define new member function.
12405 (attr_access::vla_bounds): Define new member function.
12406 * attribs.h (struct attr_access): Declare new members.
12407 (attr_access::from_mode_char): Define new member function.
12408 (get_parm_access): Declare new function.
12409 * calls.c (initialize_argument_information): Pass function type
12410 attributes to init_attr_rdwr_indices.
12411 * doc/invoke.texi (-Warray-parameter, -Wvla-parameter): Document.
12412 * tree-pretty-print.c (dump_generic_node): Correct handling of
12414 * tree-ssa-uninit.c (maybe_warn_pass_by_reference): Same.
12415 * tree.h (access_mode): Add new enumerator.
12417 2020-09-19 Sandra Loosemore <sandra@codesourcery.com>
12419 * doc/generic.texi (Basic Statements): Document SWITCH_EXPR here,
12421 (Statements for C and C++): Rename node to reflect what
12422 the introduction already says about sharing between C and C++
12423 front ends. Copy-edit and correct documentation for structured
12426 2020-09-19 liuhongt <hongtao.liu@intel.com>
12429 * config/i386/x86-tune-costs.h (skylake_cost): increase rtx
12430 cost of sse_to_integer from 2 to 6.
12432 2020-09-18 Sudi Das <sudi.das@arm.com>
12433 Omar Tahir <omar.tahir@arm.com>
12435 * config/arm/thumb2.md (*thumb2_csneg): New.
12436 (*thumb2_negscc): Don't match if TARGET_COND_ARITH.
12437 * config/arm/arm.md (*if_neg_move): Don't match if TARGET_COND_ARITH.
12439 2020-09-18 Sudi Das <sudi.das@arm.com>
12440 Omar Tahir <omar.tahir@arm.com>
12442 * config/arm/thumb2.md (*thumb2_csinc): New.
12443 (*thumb2_cond_arith): Generate CINC where possible.
12445 2020-09-18 Sudi Das <sudi.das@arm.com>
12446 Omar Tahir <omar.tahir@arm.com>
12448 * config/arm/arm.h (TARGET_COND_ARITH): New macro.
12449 * config/arm/arm.c (arm_have_conditional_execution): Return false if
12450 TARGET_COND_ARITH before reload.
12451 * config/arm/predicates.md (arm_comparison_operation): Returns true if
12452 comparing CC_REGNUM with constant zero.
12453 * config/arm/thumb2.md (*thumb2_csinv): New.
12454 (*thumb2_movcond): Don't match if TARGET_COND_ARITH.
12456 2020-09-18 Richard Sandiford <richard.sandiford@arm.com>
12458 PR middle-end/91957
12459 * ira.c (ira_setup_eliminable_regset): Skip the special elimination
12460 handling of the hard frame pointer if the hard frame pointer is fixed.
12462 2020-09-18 Richard Biener <rguenther@suse.de>
12464 PR tree-optimization/97081
12465 * tree-vect-patterns.c (vect_recog_rotate_pattern): Use the
12466 precision of the shifted operand to determine the mask.
12468 2020-09-18 Jozef Lawrynowicz <jozef.l@mittosystems.com>
12470 * config/msp430/msp430.c (msp430_print_operand): Update comment.
12471 Cast to long when printing values formatted as long.
12472 Support 'd', 'e', 'f' and 'g' modifiers.
12473 Extract operand value with a single operation for all modifiers.
12474 * doc/extend.texi (msp430Operandmodifiers): New.
12476 2020-09-18 Jozef Lawrynowicz <jozef.l@mittosystems.com>
12478 * config/msp430/msp430.c (increment_stack): Mark insns which increment
12479 the stack as frame_related.
12480 (msp430_expand_prologue): Add comments.
12481 (msp430_expand_epilogue): Mark insns which decrement
12482 the stack as frame_related.
12483 Add reg_note to stack pop insns describing position of register
12484 variables on the stack.
12486 2020-09-18 Andrew Stubbs <ams@codesourcery.com>
12488 * config/gcn/gcn-tree.c (execute_omp_gcn): Delete.
12489 (make_pass_omp_gcn): Delete.
12490 * config/gcn/t-gcn-hsa (PASSES_EXTRA): Delete.
12491 * config/gcn/gcn-passes.def: Removed.
12493 2020-09-18 Alex Coplan <alex.coplan@arm.com>
12495 * cfgloop.h (nb_iter_bound): Reword comment describing is_exit.
12497 2020-09-18 Richard Biener <rguenther@suse.de>
12499 PR tree-optimization/97095
12500 * tree-vect-loop.c (vectorizable_live_operation): Get
12501 the SLP vector type from the correct object.
12503 2020-09-18 Richard Biener <rguenther@suse.de>
12505 PR tree-optimization/97089
12506 * tree-ssa-sccvn.c (visit_nary_op): Do not replace unsigned
12509 2020-09-18 Richard Biener <rguenther@suse.de>
12511 PR tree-optimization/97098
12512 * tree-vect-slp.c (vect_bb_slp_mark_live_stmts): Do not
12513 recurse to children when all stmts were already visited.
12515 2020-09-17 Sergei Trofimovich <siarheit@google.com>
12517 * profile.c (sort_hist_values): Clarify hist format:
12518 start with a value, not counter.
12520 2020-09-17 Yeting Kuo <fakepaper56@gmail.com>
12522 * config/riscv/riscv.h (CSW_MAX_OFFSET): Fix typo.
12524 2020-09-17 Patrick Palka <ppalka@redhat.com>
12527 * gensupport.c (alter_attrs_for_subst_insn) <case SET_ATTR>:
12528 Reduce indentation of misleadingly indented code fragment.
12529 * lra-constraints.c (multi_block_pseudo_p): Likewise.
12530 * sel-sched-ir.c (merge_fences): Likewise.
12532 2020-09-17 Martin Sebor <msebor@redhat.com>
12534 * doc/invoke.texi (-Wuninitialized): Document -Wuninitialized for
12536 (-Wmaybe-uninitialized): Same.
12538 2020-09-17 Richard Biener <rguenther@suse.de>
12540 * tree-ssa-sccvn.c (visit_nary_op): Value-number multiplications
12541 and divisions to negates of available negated forms.
12543 2020-09-17 Eric Botcazou <ebotcazou@adacore.com>
12545 PR middle-end/97078
12546 * function.c (use_register_for_decl): Test cfun->tail_call_marked
12547 for a parameter here instead of...
12548 (assign_parm_setup_reg): ...here.
12550 2020-09-17 Aldy Hernandez <aldyh@redhat.com>
12552 * range-op.cc (multi_precision_range_tests): Normalize symbolics when copying to a
12554 * value-range.cc (irange::copy_legacy_range): Add test.
12556 2020-09-17 Jan Hubicka <jh@suse.cz>
12558 * cgraph.c (cgraph_node::get_availability): Fix availability of
12559 functions in other partitions
12560 * varpool.c (varpool_node::get_availability): Likewise.
12562 2020-09-17 Jojo R <jiejie_rong@c-sky.com>
12564 * config/csky/csky.opt (msim): New.
12565 * doc/invoke.texi (C-SKY Options): Document -msim.
12566 * config/csky/csky-elf.h (LIB_SPEC): Add simulator runtime.
12568 2020-09-17 Sergei Trofimovich <siarheit@google.com>
12570 * doc/cppenv.texi: Use @code{} instead of @samp{@command{}}
12573 2020-09-17 liuhongt <hongtao.liu@intel.com>
12575 * common/config/i386/i386-common.c
12576 (OPTION_MASK_ISA_AVX_UNSET): Remove OPTION_MASK_ISA_XSAVE_UNSET.
12577 (OPTION_MASK_ISA_XSAVE_UNSET): Add OPTION_MASK_ISA_AVX_UNSET.
12579 2020-09-16 Alexandre Oliva <oliva@adacore.com>
12581 * config/rs6000/rs6000.c (have_compare_and_set_mask): Use
12584 2020-09-16 Bill Schmidt <wschmidt@linux.ibm.com>
12586 * config/rs6000/predicates.md (current_file_function_operand):
12587 Remove argument from rs6000_pcrel_p call.
12588 * config/rs6000/rs6000-logue.c (rs6000_decl_ok_for_sibcall):
12590 (rs6000_global_entry_point_prologue_needed_p): Likewise.
12591 (rs6000_output_function_prologue): Likewise.
12592 * config/rs6000/rs6000-protos.h (rs6000_function_pcrel_p): New
12594 (rs6000_pcrel_p): Remove argument.
12595 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Remove
12596 argument from rs6000_pcrel_p call.
12597 (rs6000_call_template_1): Likewise.
12598 (rs6000_indirect_call_template_1): Likewise.
12599 (rs6000_longcall_ref): Likewise.
12600 (rs6000_call_aix): Likewise.
12601 (rs6000_sibcall_aix): Likewise.
12602 (rs6000_function_pcrel_p): Rename from rs6000_pcrel_p.
12603 (rs6000_pcrel_p): Rewrite.
12604 * config/rs6000/rs6000.md (*pltseq_plt_pcrel<mode>): Remove
12605 argument from rs6000_pcrel_p call.
12606 (*call_local<mode>): Likewise.
12607 (*call_value_local<mode>): Likewise.
12608 (*call_nonlocal_aix<mode>): Likewise.
12609 (*call_value_nonlocal_aix<mode>): Likewise.
12610 (*call_indirect_pcrel<mode>): Likewise.
12611 (*call_value_indirect_pcrel<mode>): Likewise.
12613 2020-09-16 Marek Polacek <polacek@redhat.com>
12615 PR preprocessor/96935
12616 * input.c (get_substring_ranges_for_loc): Return if start.column
12619 2020-09-16 Martin Sebor <msebor@redhat.com>
12621 PR middle-end/96295
12622 * tree-ssa-uninit.c (maybe_warn_operand): Work harder to avoid
12623 warning for objects of empty structs
12625 2020-09-16 Eric Botcazou <ebotcazou@adacore.com>
12627 * tree-eh.c (lower_try_finally_dup_block): Backward propagate slocs
12628 to stack restore builtin calls.
12629 (cleanup_all_empty_eh): Do again a post-order traversal of the EH
12632 2020-09-16 Andrea Corallo <andrea.corallo@arm.com>
12634 * tree-vect-loop.c (vect_need_peeling_or_partial_vectors_p): New
12636 (vect_analyze_loop_2): Make use of it not to select partial
12637 vectors if no peel is required.
12638 (determine_peel_for_niter): Move out some logic into
12639 'vect_need_peeling_or_partial_vectors_p'.
12641 2020-09-16 H.J. Lu <hjl.tools@gmail.com>
12644 * cfgexpand.c (asm_clobber_reg_kind): Set sp_is_clobbered_by_asm
12645 to true if the stack pointer is clobbered by asm statement.
12646 * emit-rtl.h (rtl_data): Add sp_is_clobbered_by_asm.
12647 * config/i386/i386.c (ix86_get_drap_rtx): Set need_drap to true
12648 if the stack pointer is clobbered by asm statement.
12650 2020-09-16 Ilya Leoshkevich <iii@linux.ibm.com>
12652 * config/s390/vector.md(*vec_tf_to_v1tf): Use "f" instead of "v"
12653 for the source operand.
12655 2020-09-16 Jojo R <jiejie_rong@c-sky.com>
12657 * config.gcc (C-SKY): Set use_gcc_stdint=wrap for elf target.
12659 2020-09-16 Richard Biener <rguenther@suse.de>
12661 * tree-vectorizer.h (_stmt_vec_info::num_slp_uses): Remove.
12662 (STMT_VINFO_NUM_SLP_USES): Likewise.
12663 (vect_free_slp_instance): Adjust.
12664 (vect_update_shared_vectype): Declare.
12665 * tree-vectorizer.c (vec_info::~vec_info): Adjust.
12666 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
12667 (vectorizable_live_operation): Use vector type from
12668 SLP_TREE_REPRESENTATIVE.
12669 (vect_transform_loop): Adjust.
12670 * tree-vect-data-refs.c (vect_slp_analyze_node_alignment):
12671 Set the shared vector type.
12672 * tree-vect-slp.c (vect_free_slp_tree): Remove final_p
12673 parameter, remove STMT_VINFO_NUM_SLP_USES updating.
12674 (vect_free_slp_instance): Adjust.
12675 (vect_create_new_slp_node): Remove STMT_VINFO_NUM_SLP_USES
12677 (vect_update_shared_vectype): Always compare with the
12678 present vector type, update if NULL.
12679 (vect_build_slp_tree_1): Do not update the shared vector
12681 (vect_build_slp_tree_2): Adjust.
12682 (slp_copy_subtree): Likewise.
12683 (vect_attempt_slp_rearrange_stmts): Likewise.
12684 (vect_analyze_slp_instance): Likewise.
12685 (vect_analyze_slp): Likewise.
12686 (vect_slp_analyze_node_operations_1): Update the shared
12688 (vect_slp_analyze_operations): Adjust.
12689 (vect_slp_analyze_bb_1): Likewise.
12691 2020-09-16 Jojo R <jiejie_rong@c-sky.com>
12693 * config/csky/t-csky-linux (CSKY_MULTILIB_OSDIRNAMES): Use mfloat-abi.
12694 (MULTILIB_OPTIONS): Likewise.
12695 * config/csky/t-csky-elf (MULTILIB_OPTIONS): Likewise.
12696 (MULTILIB_EXCEPTIONS): Likewise.
12698 2020-09-16 Jakub Jelinek <jakub@redhat.com>
12700 * config/arm/arm.c (arm_option_restore): Comment out opts argument
12701 name to avoid unused parameter warnings.
12703 2020-09-16 Jakub Jelinek <jakub@redhat.com>
12705 * optc-save-gen.awk: In cl_optimization_stream_out use
12706 bp_pack_var_len_{int,unsigned} instead of bp_pack_value. In
12707 cl_optimization_stream_in use bp_unpack_var_len_{int,unsigned}
12708 instead of bp_unpack_value. Formatting fix.
12710 2020-09-16 Jakub Jelinek <jakub@redhat.com>
12712 PR tree-optimization/97053
12713 * gimple-ssa-store-merging.c (check_no_overlap): Add FIRST_ORDER,
12714 START, FIRST_EARLIER and LAST_EARLIER arguments. Return false if
12715 any stores between FIRST_EARLIER inclusive and LAST_EARLIER exclusive
12716 has order in between FIRST_ORDER and LAST_ORDER and overlaps the to
12718 (imm_store_chain_info::try_coalesce_bswap): Add FIRST_EARLIER argument.
12719 Adjust check_no_overlap caller.
12720 (imm_store_chain_info::coalesce_immediate_stores): Add first_earlier
12721 and last_earlier variables, adjust them during iterations. Adjust
12722 check_no_overlap callers, call check_no_overlap even when extending
12723 overlapping stores by extra INTEGER_CST stores.
12725 2020-09-16 Jojo R <jiejie_rong@c-sky.com>
12727 * config/csky/csky-linux-elf.h (GLIBC_DYNAMIC_LINKER): Use mfloat-abi.
12729 2020-09-16 Kewen Lin <linkw@linux.ibm.com>
12732 * config/rs6000/rs6000-p8swap.c (find_alignment_op): Adjust to
12733 support multiple defintions which are all AND operations with
12735 (recombine_lvx_pattern): Adjust to handle multiple AND operations
12736 from find_alignment_op.
12737 (recombine_stvx_pattern): Likewise.
12739 2020-09-16 Jojo R <jiejie_rong@c-sky.com>
12741 * config/csky/csky.md (CSKY_NPARM_FREGS): New.
12742 (call_value_internal_vs/d): New.
12743 (untyped_call): New.
12744 * config/csky/csky.h (TARGET_SINGLE_FPU): New.
12745 (TARGET_DOUBLE_FPU): New.
12746 (FUNCTION_VARG_REGNO_P): New.
12747 (CSKY_VREG_MODE_P): New.
12748 (FUNCTION_VARG_MODE_P): New.
12749 (CUMULATIVE_ARGS): Add extra regs info.
12750 (INIT_CUMULATIVE_ARGS): Use csky_init_cumulative_args.
12751 (FUNCTION_ARG_REGNO_P): Use FUNCTION_VARG_REGNO_P.
12752 * config/csky/csky-protos.h (csky_init_cumulative_args): Extern.
12753 * config/csky/csky.c (csky_cpu_cpp_builtins): Support TARGET_HARD_FLOAT_ABI.
12754 (csky_function_arg): Likewise.
12755 (csky_num_arg_regs): Likewise.
12756 (csky_function_arg_advance): Likewise.
12757 (csky_function_value): Likewise.
12758 (csky_libcall_value): Likewise.
12759 (csky_function_value_regno_p): Likewise.
12760 (csky_arg_partial_bytes): Likewise.
12761 (csky_setup_incoming_varargs): Likewise.
12762 (csky_init_cumulative_args): New.
12764 2020-09-16 Bill Schmidt <wschmidt@linux.ibm.com>
12766 * config/rs6000/rs6000-call.c (altivec_init_builtins): Fix name
12767 of __builtin_altivec_xst_len_r.
12769 2020-09-15 Ilya Leoshkevich <iii@linux.ibm.com>
12771 * rtlanal.c (set_noop_p): Treat subregs of registers in
12772 different modes conservatively.
12774 2020-09-15 Richard Biener <rguenther@suse.de>
12776 * tree-vect-slp.c (vect_get_and_check_slp_defs): Make swap
12777 argument by-value and do not change it.
12778 (vect_build_slp_tree_2): Adjust, set swap to NULL after last
12781 2020-09-15 Feng Xue <fxue@os.amperecomputing.com>
12783 PR tree-optimization/94234
12784 * match.pd (T)(A) +- (T)(B) -> (T)(A +- B): New simplification.
12786 2020-09-15 Segher Boessenkool <segher@kernel.crashing.org>
12788 PR rtl-optimization/96475
12789 * bb-reorder.c (duplicate_computed_gotos): If we did anything, run
12792 2020-09-15 Richard Biener <rguenther@suse.de>
12794 * tree-vect-slp.c (vect_build_slp_tree_2): Also consider
12795 building an operand from scalars when building it did not
12796 fail fatally but avoid messing with the upcall splitting
12799 2020-09-15 Andre Vieira <andre.simoesdiasvieira@arm.com>
12801 * config/arm/arm.c (arm_options_perform_arch_sanity_checks): Do not
12802 check +D32 for CMSE if -mfloat-abi=soft
12804 2020-09-15 liuhongt <hongtao.liu@intel.com>
12807 * config/i386/x86-tune-costs.h (struct processor_costs):
12808 Increase mask <-> integer cost for non AVX512 target to avoid
12809 spill gpr to mask. Also retune mask <-> integer and
12810 mask_load/store for skylake_cost.
12812 2020-09-15 Jakub Jelinek <jakub@redhat.com>
12815 * config/i386/sse.md (mul<mode>3<mask_name>_bcs,
12816 <avx512>_div<mode>3<mask_name>_bcst): Use <avx512bcst> instead of
12819 2020-09-15 Tobias Burnus <tobias@codesourcery.com>
12822 * gimplify.c (gimplify_omp_for): Add 'bool openacc' argument;
12823 update omp_finish_clause calls.
12824 (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses,
12825 gimplify_expr, gimplify_omp_loop): Update omp_finish_clause
12826 and/or gimplify_for calls.
12827 * langhooks-def.h (lhd_omp_finish_clause): Add bool openacc arg.
12828 * langhooks.c (lhd_omp_finish_clause): Likewise.
12829 * langhooks.h (lhd_omp_finish_clause): Likewise.
12830 * omp-low.c (scan_sharing_clauses): Keep GOMP_MAP_TO_PSET cause for
12831 'declare target' vars.
12833 2020-09-15 Feng Xue <fxue@os.amperecomputing.com>
12835 PR tree-optimization/94234
12836 * genmatch.c (dt_simplify::gen_1): Emit check on final simplification
12837 result when "!" is specified on toplevel output expr.
12838 * match.pd ((A * C) +- (B * C) -> (A +- B) * C): Allow folding on expr
12839 with multi-use operands if final result is a simple gimple value.
12841 2020-09-14 Sergei Trofimovich <siarheit@google.com>
12843 * doc/invoke.texi: fix '-fprofile-reproducibility' option
12844 spelling in manual.
12846 2020-09-14 Jose E. Marchesi <jose.marchesi@oracle.com>
12848 * config/bpf/bpf.md ("nop"): Re-define as `ja 0'.
12850 2020-09-14 Eric Botcazou <ebotcazou@adacore.com>
12852 * cgraphunit.c (cgraph_node::expand_thunk): Make sure to set
12853 cfun->tail_call_marked when forcing a tail call.
12854 * function.c (assign_parm_setup_reg): Always use a register to
12855 load a parameter passed by reference if cfun->tail_call_marked.
12857 2020-09-14 Pat Haugen <pthaugen@linux.ibm.com>
12859 * config/rs6000/power10.md (power10-mffgpr, power10-mftgpr): Rename to
12860 power10-mtvsr/power10-mfvsr.
12861 * config/rs6000/power6.md (X2F_power6, power6-mftgpr, power6-mffgpr):
12863 * config/rs6000/power8.md (power8-mffgpr, power8-mftgpr): Rename to
12864 power8-mtvsr/power8-mfvsr.
12865 * config/rs6000/power9.md (power9-mffgpr, power9-mftgpr): Rename to
12866 power9-mtvsr/power9-mfvsr.
12867 * config/rs6000/rs6000.c (rs6000_adjust_cost): Remove Power6
12869 * config/rs6000/rs6000.md (mffgpr, mftgpr, zero_extendsi<mode>2,
12870 extendsi<mode>2, @signbit<mode>2_dm, lfiwax, lfiwzx, *movsi_internal1,
12871 movsi_from_sf, *movdi_from_sf_zero_ext, *mov<mode>_internal,
12872 movsd_hardfloat, movsf_from_si, *mov<mode>_hardfloat64, p8_mtvsrwz,
12873 p8_mtvsrd_df, p8_mtvsrd_sf, p8_mfvsrd_3_<mode>, *movdi_internal64,
12874 unpack<mode>_dm): Rename mffgpr/mftgpr to mtvsr/mfvsr.
12875 * config/rs6000/vsx.md (vsx_mov<mode>_64bit, vsx_extract_<mode>,
12876 vsx_extract_si, *vsx_extract_<mode>_p8): Likewise.
12878 2020-09-14 Jakub Jelinek <jakub@redhat.com>
12880 * config/arm/arm.opt (x_arm_arch_string, x_arm_cpu_string,
12881 x_arm_tune_string): Remove TargetSave entries.
12882 (march=, mcpu=, mtune=): Add Save keyword.
12883 * config/arm/arm.c (arm_option_save): Remove.
12884 (TARGET_OPTION_SAVE): Don't redefine.
12885 (arm_option_restore): Don't restore x_arm_*_string here.
12887 2020-09-14 Jakub Jelinek <jakub@redhat.com>
12889 * opt-read.awk: Also initialize extra_target_var_types array.
12890 * opth-gen.awk: Emit explicit_mask arrays to struct cl_optimization
12891 and cl_target_option. Adjust cl_optimization_save,
12892 cl_optimization_restore, cl_target_option_save and
12893 cl_target_option_restore declarations.
12894 * optc-save-gen.awk: Add opts_set argument to cl_optimization_save,
12895 cl_optimization_restore, cl_target_option_save and
12896 cl_target_option_restore functions and save or restore opts_set
12897 next to the opts values into or from explicit_mask arrays.
12898 In cl_target_option_eq and cl_optimization_option_eq compare
12899 explicit_mask arrays, in cl_target_option_hash and cl_optimization_hash
12900 hash them and in cl_target_option_stream_out,
12901 cl_target_option_stream_in, cl_optimization_stream_out and
12902 cl_optimization_stream_in stream them.
12903 * tree.h (build_optimization_node, build_target_option_node): Add
12905 * tree.c (build_optimization_node): Add opts_set argument, pass it
12906 to cl_optimization_save.
12907 (build_target_option_node): Add opts_set argument, pass it to
12908 cl_target_option_save.
12909 * function.c (invoke_set_current_function_hook): Adjust
12910 cl_optimization_restore caller.
12911 * ipa-inline-transform.c (inline_call): Adjust cl_optimization_restore
12912 and build_optimization_node callers.
12913 * target.def (TARGET_OPTION_SAVE, TARGET_OPTION_RESTORE): Add opts_set
12915 * target-globals.c (save_target_globals_default_opts): Adjust
12916 cl_optimization_restore callers.
12917 * toplev.c (process_options): Adjust build_optimization_node and
12918 cl_optimization_restore callers.
12919 (target_reinit): Adjust cl_optimization_restore caller.
12920 * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers):
12921 Adjust build_optimization_node and cl_optimization_restore callers.
12922 * doc/tm.texi: Updated.
12923 * config/aarch64/aarch64.c (aarch64_override_options): Adjust
12924 build_target_option_node caller.
12925 (aarch64_option_save, aarch64_option_restore): Add opts_set argument.
12926 (aarch64_set_current_function): Adjust cl_target_option_restore
12928 (aarch64_option_valid_attribute_p): Adjust cl_target_option_save,
12929 cl_target_option_restore, cl_optimization_restore,
12930 build_optimization_node and build_target_option_node callers.
12931 * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse): Adjust
12932 cl_target_option_restore and build_target_option_node callers.
12933 * config/arm/arm.c (arm_option_save, arm_option_restore): Add
12935 (arm_option_override): Adjust cl_target_option_save,
12936 build_optimization_node and build_target_option_node callers.
12937 (arm_set_current_function): Adjust cl_target_option_restore caller.
12938 (arm_valid_target_attribute_tree): Adjust build_target_option_node
12940 (add_attribute): Formatting fix.
12941 (arm_valid_target_attribute_p): Adjust cl_optimization_restore,
12942 cl_target_option_restore, arm_valid_target_attribute_tree and
12943 build_optimization_node callers.
12944 * config/arm/arm-c.c (arm_pragma_target_parse): Adjust
12945 cl_target_option_restore callers.
12946 * config/csky/csky.c (csky_option_override): Adjust
12947 build_target_option_node and cl_target_option_save callers.
12948 * config/gcn/gcn.c (gcn_fixup_accel_lto_options): Adjust
12949 build_optimization_node and cl_optimization_restore callers.
12950 * config/i386/i386-builtins.c (get_builtin_code_for_version):
12951 Adjust cl_target_option_save and cl_target_option_restore
12953 * config/i386/i386-c.c (ix86_pragma_target_parse): Adjust
12954 build_target_option_node and cl_target_option_restore callers.
12955 * config/i386/i386-options.c (ix86_function_specific_save,
12956 ix86_function_specific_restore): Add opts_set arguments.
12957 (ix86_valid_target_attribute_tree): Adjust build_target_option_node
12959 (ix86_valid_target_attribute_p): Adjust build_optimization_node,
12960 cl_optimization_restore, cl_target_option_restore,
12961 ix86_valid_target_attribute_tree and build_optimization_node callers.
12962 (ix86_option_override_internal): Adjust build_target_option_node
12964 (ix86_reset_previous_fndecl, ix86_set_current_function): Adjust
12965 cl_target_option_restore callers.
12966 * config/i386/i386-options.h (ix86_function_specific_save,
12967 ix86_function_specific_restore): Add opts_set argument.
12968 * config/nios2/nios2.c (nios2_option_override): Adjust
12969 build_target_option_node caller.
12970 (nios2_option_save, nios2_option_restore): Add opts_set argument.
12971 (nios2_valid_target_attribute_tree): Adjust build_target_option_node
12973 (nios2_valid_target_attribute_p): Adjust build_optimization_node,
12974 cl_optimization_restore, cl_target_option_save and
12975 cl_target_option_restore callers.
12976 (nios2_set_current_function, nios2_pragma_target_parse): Adjust
12977 cl_target_option_restore callers.
12978 * config/pru/pru.c (pru_option_override): Adjust
12979 build_target_option_node caller.
12980 (pru_set_current_function): Adjust cl_target_option_restore
12982 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust
12983 cl_target_option_save caller.
12984 (rs6000_option_override_internal): Adjust build_target_option_node
12986 (rs6000_valid_attribute_p): Adjust build_optimization_node,
12987 cl_optimization_restore, cl_target_option_save,
12988 cl_target_option_restore and build_target_option_node callers.
12989 (rs6000_pragma_target_parse): Adjust cl_target_option_restore and
12990 build_target_option_node callers.
12991 (rs6000_activate_target_options): Adjust cl_target_option_restore
12993 (rs6000_function_specific_save, rs6000_function_specific_restore):
12994 Add opts_set argument.
12995 * config/s390/s390.c (s390_function_specific_restore): Likewise.
12996 (s390_option_override_internal): Adjust s390_function_specific_restore
12998 (s390_option_override, s390_valid_target_attribute_tree): Adjust
12999 build_target_option_node caller.
13000 (s390_valid_target_attribute_p): Adjust build_optimization_node,
13001 cl_optimization_restore and cl_target_option_restore callers.
13002 (s390_activate_target_options): Adjust cl_target_option_restore
13004 * config/s390/s390-c.c (s390_cpu_cpp_builtins): Adjust
13005 cl_target_option_save caller.
13006 (s390_pragma_target_parse): Adjust build_target_option_node and
13007 cl_target_option_restore callers.
13009 2020-09-13 Roger Sayle <roger@nextmovesoftware.com>
13011 * config/pa/pa.c (hppa_rtx_costs) [ASHIFT, ASHIFTRT, LSHIFTRT]:
13012 Provide accurate costs for DImode shifts of integer constants.
13014 2020-09-12 Roger Sayle <roger@nextmovesoftware.com>
13015 John David Anglin <danglin@gcc.gnu.org>
13017 * config/pa/pa.md (shrpsi4_1, shrpsi4_2): New define_insns split
13018 out from previous shrpsi4 providing two commutitive variants using
13019 plus_xor_ior_operator as a predicate.
13020 (shrpdi4_1, shrpdi4_2, shrpdi_3, shrpdi_4): Likewise DImode versions
13021 where _1 and _2 take register shifts, and _3 and _4 for integers.
13022 (rotlsi3_internal): Name this anonymous instruction.
13023 (rotrdi3): New DImode insn copied from rotrsi3.
13024 (rotldi3): New DImode expander copied from rotlsi3.
13025 (rotldi4_internal): New DImode insn copied from rotsi3_internal.
13027 2020-09-11 Michael Meissner <meissner@linux.ibm.com>
13029 * config/rs6000/rs6000.c (rs6000_maybe_emit_maxc_minc): Rename
13030 from rs6000_emit_p9_fp_minmax. Change return type to bool. Add
13031 comments to document NaN/signed zero behavior.
13032 (rs6000_maybe_emit_fp_cmove): Rename from rs6000_emit_p9_fp_cmove.
13033 (have_compare_and_set_mask): New helper function.
13034 (rs6000_emit_cmove): Update calls to new names and the new helper
13037 2020-09-11 Nathan Sidwell <nathan@acm.org>
13039 * config/i386/sse.md (mov<mode>): Fix operand indices.
13041 2020-09-11 Martin Sebor <msebor@redhat.com>
13043 PR middle-end/96903
13044 * builtins.c (compute_objsize): Remove incorrect offset adjustment.
13045 (compute_objsize): Adjust offset range here instead.
13047 2020-09-11 Richard Biener <rguenther@suse.de>
13049 PR tree-optimization/97020
13050 * tree-vect-slp.c (vect_slp_analyze_operations): Apply
13051 SLP costs when doing loop vectorization.
13053 2020-09-11 Tom de Vries <tdevries@suse.de>
13056 * config/nvptx/nvptx.md (define_expand "atomic_test_and_set"): New
13059 2020-09-11 Andrew Stubbs <ams@codesourcery.com>
13061 * config/gcn/gcn.c (gcn_hard_regno_mode_ok): Align TImode registers.
13062 * config/gcn/gcn.md: Assert that TImode registers do not early clobber.
13064 2020-09-11 Richard Biener <rguenther@suse.de>
13066 * tree-vectorizer.h (_slp_instance::location): New method.
13067 (vect_schedule_slp): Adjust prototype.
13068 * tree-vectorizer.c (vec_info::remove_stmt): Adjust
13069 the BB region begin if we removed the stmt it points to.
13070 * tree-vect-loop.c (vect_transform_loop): Adjust.
13071 * tree-vect-slp.c (_slp_instance::location): Implement.
13072 (vect_analyze_slp_instance): For BB vectorization set
13073 vect_location to that of the instance.
13074 (vect_slp_analyze_operations): Likewise.
13075 (vect_bb_vectorization_profitable_p): Remove wrapper.
13076 (vect_slp_analyze_bb_1): Remove cost check here.
13077 (vect_slp_region): Cost check and code generate subgraphs separately,
13078 report optimized locations and missed optimizations due to
13079 profitability for each of them.
13080 (vect_schedule_slp): Get the vector of SLP graph entries to
13081 vectorize as argument.
13083 2020-09-11 Richard Biener <rguenther@suse.de>
13085 PR tree-optimization/97013
13086 * tree-vect-slp.c (vect_slp_analyze_bb_1): Remove duplicate dumping.
13088 2020-09-11 Richard Biener <rguenther@suse.de>
13090 * tree-vect-slp.c (vect_build_slp_tree_1): Check vector
13091 types for all lanes are compatible.
13092 (vect_analyze_slp_instance): Appropriately check for stores.
13093 (vect_schedule_slp): Likewise.
13095 2020-09-11 Tom de Vries <tdevries@suse.de>
13097 * config/nvptx/nvptx.c (nvptx_assemble_value): Fix undefined
13100 2020-09-11 Tom de Vries <tdevries@suse.de>
13102 * config/nvptx/nvptx.c (nvptx_assemble_value): Handle negative
13105 2020-09-11 Aaron Sawdey <acsawdey@linux.ibm.com>
13107 * config/rs6000/rs6000.c (rs6000_option_override_internal):
13110 2020-09-10 Michael Meissner <meissner@linux.ibm.com>
13112 * config/rs6000/rs6000-protos.h (rs6000_emit_cmove): Change return
13114 (rs6000_emit_int_cmove): Change return type to bool.
13115 * config/rs6000/rs6000.c (rs6000_emit_cmove): Change return type
13117 (rs6000_emit_int_cmove): Change return type to bool.
13119 2020-09-10 Tom de Vries <tdevries@suse.de>
13122 * config/nvptx/nvptx.c (nvptx_assemble_value): Handle shift by
13123 number of bits in shift operand.
13125 2020-09-10 Jakub Jelinek <jakub@redhat.com>
13127 * lto-streamer-out.c (collect_block_tree_leafs): Recurse on
13128 root rather than BLOCK_SUBBLOCKS (root).
13130 2020-09-10 Alex Coplan <alex.coplan@arm.com>
13132 * config/aarch64/aarch64-cores.def: Add Cortex-R82.
13133 * config/aarch64/aarch64-tune.md: Regenerate.
13134 * doc/invoke.texi: Add entry for Cortex-R82.
13136 2020-09-10 Alex Coplan <alex.coplan@arm.com>
13138 * common/config/aarch64/aarch64-common.c
13139 (aarch64_get_extension_string_for_isa_flags): Don't force +crc for
13141 * config/aarch64/aarch64-arches.def: Add entry for Armv8-R.
13142 * config/aarch64/aarch64-c.c (aarch64_define_unconditional_macros): Set
13143 __ARM_ARCH_PROFILE correctly for Armv8-R.
13144 * config/aarch64/aarch64.h (AARCH64_FL_V8_R): New.
13145 (AARCH64_FL_FOR_ARCH8_R): New.
13146 (AARCH64_ISA_V8_R): New.
13147 * doc/invoke.texi: Add Armv8-R to architecture table.
13149 2020-09-10 Jakub Jelinek <jakub@redhat.com>
13151 * config/arm/arm.c (arm_override_options_after_change_1): Add opts_set
13152 argument, test opts_set->x_str_align_functions rather than
13153 opts->x_str_align_functions.
13154 (arm_override_options_after_change, arm_option_override_internal,
13155 arm_set_current_function): Adjust callers.
13157 2020-09-10 Jakub Jelinek <jakub@redhat.com>
13160 * config/arm/arm.c (arm_override_options_after_change): Don't call
13161 arm_configure_build_target here.
13162 (arm_set_current_function): Call arm_override_options_after_change_1
13165 2020-09-10 Pat Haugen <pthaugen@linux.ibm.com>
13167 * config/rs6000/rs6000.md
13168 (lfiwzx, floatunssi<mode>2_lfiwzx, p8_mtvsrwz, p8_mtvsrd_sf): Fix insn
13170 * config/rs6000/vsx.md
13171 (vsx_concat_<mode>, vsx_splat_<mode>_reg, vsx_splat_v4sf): Likewise.
13173 2020-09-10 Jonathan Yong <10walls@gmail.com>
13175 * config.host: Adjust plugin name for Windows.
13177 2020-09-10 Tom de Vries <tdevries@suse.de>
13179 PR tree-optimization/97000
13180 * tree-cfgcleanup.c (cleanup_call_ctrl_altering_flag): Don't clear
13181 flag for IFN_UNIQUE.
13183 2020-09-10 Jakub Jelinek <jakub@redhat.com>
13186 * lto-streamer.h (struct output_block): Add emit_pwd member.
13187 * lto-streamer-out.c: Include toplev.h.
13188 (clear_line_info): Set emit_pwd.
13189 (lto_output_location_1): Encode the ob->current_file != xloc.file
13190 bit directly into the location number. If changing file, emit
13191 additionally a bit whether pwd is emitted and emit it before the
13192 first relative pathname since clear_line_info.
13193 (output_function, output_constructor): Don't call clear_line_info
13195 * lto-streamer-in.c (struct string_pair_map): New type.
13196 (struct string_pair_map_hasher): New type.
13197 (string_pair_map_hasher::hash): New method.
13198 (string_pair_map_hasher::equal): New method.
13199 (path_name_pair_hash_table, string_pair_map_allocator): New variables.
13200 (relative_path_prefix, canon_relative_path_prefix,
13201 canon_relative_file_name): New functions.
13202 (canon_file_name): Add relative_prefix argument, if non-NULL
13203 and string is a relative path, return canon_relative_file_name.
13204 (lto_location_cache::input_location_and_block): Decode file change
13205 bit from the location number. If changing file, unpack bit whether
13206 pwd is streamed and stream in pwd. Adjust canon_file_name caller.
13207 (lto_free_file_name_hash): Delete path_name_pair_hash_table
13208 and string_pair_map_allocator.
13210 2020-09-10 Richard Biener <rguenther@suse.de>
13212 PR tree-optimization/96043
13213 * tree-vectorizer.h (_slp_instance::cost_vec): New.
13214 (_slp_instance::subgraph_entries): Likewise.
13215 (BB_VINFO_TARGET_COST_DATA): Remove.
13216 * tree-vect-slp.c (vect_free_slp_instance): Free
13217 cost_vec and subgraph_entries.
13218 (vect_analyze_slp_instance): Initialize them.
13219 (vect_slp_analyze_operations): Defer passing costs to
13220 the target, instead record them in the SLP graph entry.
13221 (get_ultimate_leader): New helper for graph partitioning.
13222 (vect_bb_partition_graph_r): Likewise.
13223 (vect_bb_partition_graph): New function to partition the
13224 SLP graph into independently costable parts.
13225 (vect_bb_vectorization_profitable_p): Adjust to work on
13227 (vect_bb_vectorization_profitable_p): New wrapper,
13228 discarding non-profitable vectorization of subgraphs.
13229 (vect_slp_analyze_bb_1): Call vect_bb_partition_graph before
13232 2020-09-09 David Malcolm <dmalcolm@redhat.com>
13235 * doc/invoke.texi: Document -Wanalyzer-mismatching-deallocation.
13237 2020-09-09 Segher Boessenkool <segher@kernel.crashing.org>
13239 PR rtl-optimization/96475
13240 * bb-reorder.c (maybe_duplicate_computed_goto): Remove single_pred_p
13241 micro-optimization.
13243 2020-09-09 Tom de Vries <tdevries@suse.de>
13245 * config/nvptx/nvptx.c (nvptx_assemble_decl_begin): Fix Wformat
13248 2020-09-09 Richard Biener <rguenther@suse.de>
13250 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Do
13251 nothing when the permutation doesn't permute.
13253 2020-09-09 Tom de Vries <tdevries@suse.de>
13256 * config/nvptx/nvptx.c (write_fn_proto): Fix boolean type check.
13258 2020-09-09 Richard Biener <rguenther@suse.de>
13260 * tree-vect-stmts.c (vectorizable_comparison): Allow
13261 STMT_VINFO_LIVE_P stmts.
13263 2020-09-09 Richard Biener <rguenther@suse.de>
13265 * tree-vect-stmts.c (vectorizable_condition): Allow
13266 STMT_VINFO_LIVE_P stmts.
13268 2020-09-09 Richard Biener <rguenther@suse.de>
13270 PR tree-optimization/96978
13271 * tree-vect-stmts.c (vectorizable_condition): Do not
13272 look at STMT_VINFO_LIVE_P for BB vectorization.
13273 (vectorizable_comparison): Likewise.
13275 2020-09-09 liuhongt <hongtao.liu@intel.com>
13278 * config/i386/i386.md (get_thread_pointer<mode>): New
13281 2020-09-08 Julian Brown <julian@codesourcery.com>
13283 * config/gcn/gcn-valu.md (scatter<mode>_insn_1offset_ds<exec_scatter>):
13285 * config/gcn/gcn.md (*mov<mode>_insn, *movti_insn): Add waitcnt to
13286 ds_write alternatives.
13288 2020-09-08 Julian Brown <julian@codesourcery.com>
13290 * config/gcn/mkoffload.c (process_asm): Initialise regcount. Update
13291 scanning for SGPR/VGPR usage for HSACO v3.
13293 2020-09-08 Aldy Hernandez <aldyh@redhat.com>
13295 PR tree-optimization/96967
13296 * tree-vrp.c (find_case_label_range): Cast label range to
13297 type of switch operand.
13299 2020-09-08 Jozef Lawrynowicz <jozef.l@mittosystems.com>
13301 * config/msp430/msp430.c (msp430_file_end): Fix jumbled
13302 HAVE_AS_MSPABI_ATTRIBUTE and HAVE_AS_GNU_ATTRIBUTE checks.
13303 * configure: Regenerate.
13304 * configure.ac: Use ".mspabi_attribute 4,2" to check for assembler
13305 support for this object attribute directive.
13307 2020-09-08 Jozef Lawrynowicz <jozef.l@mittosystems.com>
13309 * common/config/msp430/msp430-common.c (msp430_handle_option): Remove
13310 OPT_mcpu_ handling.
13311 Set target_cpu value to new enum values when parsing certain -mmcu=
13313 * config/msp430/msp430-opts.h (enum msp430_cpu_types): New.
13314 * config/msp430/msp430.c (msp430_option_override): Handle new
13315 target_cpu enum values.
13316 Set target_cpu using extracted value for given MCU when -mcpu=
13317 option is not passed by the user.
13318 * config/msp430/msp430.opt: Handle -mcpu= values using enums.
13320 2020-09-07 Richard Sandiford <richard.sandiford@arm.com>
13322 PR rtl-optimization/96796
13323 * lra-constraints.c (in_class_p): Add a default-false
13324 allow_all_reload_class_changes_p parameter. Do not treat
13325 reload moves specially when the parameter is true.
13326 (get_reload_reg): Try to narrow the class of an existing OP_OUT
13327 reload if we're reloading a reload pseudo in a reload instruction.
13329 2020-09-07 Andrea Corallo <andrea.corallo@arm.com>
13331 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Revert
13332 dead-code removal introduced by 09fa6acd8d9 + add a comment to
13335 2020-09-07 Jozef Lawrynowicz <jozef.l@mittosystems.com>
13337 * doc/rtl.texi (subreg): Fix documentation to state there is a known
13338 number of undefined bits in regs and subregs of MODE_PARTIAL_INT modes.
13340 2020-09-07 Jozef Lawrynowicz <jozef.l@mittosystems.com>
13342 * config/msp430/msp430.c (msp430_option_override): Don't set the
13343 ISA to 430 when the MCU is unrecognized.
13345 2020-09-07 Iain Sandoe <iain@sandoe.co.uk>
13347 * config/darwin.c (darwin_libc_has_function): Report sincos
13348 available from 10.9.
13350 2020-09-07 Alex Coplan <alex.coplan@arm.com>
13352 * config/aarch64/aarch64.md (*adds_mul_imm_<mode>): Delete.
13353 (*subs_mul_imm_<mode>): Delete.
13354 (*adds_<optab><mode>_multp2): Delete.
13355 (*subs_<optab><mode>_multp2): Delete.
13356 (*add_mul_imm_<mode>): Delete.
13357 (*add_<optab><ALLX:mode>_mult_<GPI:mode>): Delete.
13358 (*add_<optab><SHORT:mode>_mult_si_uxtw): Delete.
13359 (*add_<optab><mode>_multp2): Delete.
13360 (*add_<optab>si_multp2_uxtw): Delete.
13361 (*add_uxt<mode>_multp2): Delete.
13362 (*add_uxtsi_multp2_uxtw): Delete.
13363 (*sub_mul_imm_<mode>): Delete.
13364 (*sub_mul_imm_si_uxtw): Delete.
13365 (*sub_<optab><mode>_multp2): Delete.
13366 (*sub_<optab>si_multp2_uxtw): Delete.
13367 (*sub_uxt<mode>_multp2): Delete.
13368 (*sub_uxtsi_multp2_uxtw): Delete.
13369 (*neg_mul_imm_<mode>2): Delete.
13370 (*neg_mul_imm_si2_uxtw): Delete.
13371 * config/aarch64/predicates.md (aarch64_pwr_imm3): Delete.
13372 (aarch64_pwr_2_si): Delete.
13373 (aarch64_pwr_2_di): Delete.
13375 2020-09-07 Alex Coplan <alex.coplan@arm.com>
13377 * config/aarch64/aarch64.md
13378 (*adds_<optab><ALLX:mode>_<GPI:mode>): Ensure extended operand
13379 agrees with width of extension specifier.
13380 (*subs_<optab><ALLX:mode>_<GPI:mode>): Likewise.
13381 (*adds_<optab><ALLX:mode>_shift_<GPI:mode>): Likewise.
13382 (*subs_<optab><ALLX:mode>_shift_<GPI:mode>): Likewise.
13383 (*add_<optab><ALLX:mode>_<GPI:mode>): Likewise.
13384 (*add_<optab><ALLX:mode>_shft_<GPI:mode>): Likewise.
13385 (*add_uxt<mode>_shift2): Likewise.
13386 (*sub_<optab><ALLX:mode>_<GPI:mode>): Likewise.
13387 (*sub_<optab><ALLX:mode>_shft_<GPI:mode>): Likewise.
13388 (*sub_uxt<mode>_shift2): Likewise.
13389 (*cmp_swp_<optab><ALLX:mode>_reg<GPI:mode>): Likewise.
13390 (*cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): Likewise.
13392 2020-09-07 Richard Biener <rguenther@suse.de>
13394 * tree-vect-slp.c (vect_analyze_slp_instance): Dump
13395 stmts we start SLP analysis from, failure and splitting.
13396 (vect_schedule_slp): Dump SLP graph entry and root stmt
13397 we are about to emit code for.
13399 2020-09-07 Martin Storsjö <martin@martin.st>
13401 * dwarf2out.c (file_name_acquire): Make a strchr return value
13404 2020-09-07 Jakub Jelinek <jakub@redhat.com>
13407 * lto-streamer-out.c (output_cfg): Also stream goto_locus for edges.
13408 Use bp_pack_var_len_unsigned instead of streamer_write_uhwi to stream
13409 e->dest->index and e->flags.
13410 (output_function): Call output_cfg before output_ssa_name, rather than
13411 after streaming all bbs.
13412 * lto-streamer-in.c (input_cfg): Stream in goto_locus for edges.
13413 Use bp_unpack_var_len_unsigned instead of streamer_read_uhwi to stream
13414 in dest_index and edge_flags.
13416 2020-09-07 Richard Biener <rguenther@suse.de>
13418 * tree-vectorizer.h (vectorizable_live_operation): Adjust.
13419 * tree-vect-loop.c (vectorizable_live_operation): Vectorize
13420 live lanes out of basic-block vectorization nodes.
13421 * tree-vect-slp.c (vect_bb_slp_mark_live_stmts): New function.
13422 (vect_slp_analyze_operations): Analyze live lanes and their
13423 vectorization possibility after the whole SLP graph is final.
13424 (vect_bb_slp_scalar_cost): Adjust for vectorized live lanes.
13425 * tree-vect-stmts.c (can_vectorize_live_stmts): Adjust.
13426 (vect_transform_stmt): Call can_vectorize_live_stmts also for
13427 basic-block vectorization.
13429 2020-09-04 Richard Biener <rguenther@suse.de>
13431 PR tree-optimization/96698
13432 PR tree-optimization/96920
13433 * tree-vectorizer.h (loop_vec_info::reduc_latch_defs): Remove.
13434 (loop_vec_info::reduc_latch_slp_defs): Likewise.
13435 * tree-vect-stmts.c (vect_transform_stmt): Remove vectorized
13436 cycle PHI latch code.
13437 * tree-vect-loop.c (maybe_set_vectorized_backedge_value): New
13438 helper to set vectorized cycle PHI latch values.
13439 (vect_transform_loop): Walk over all PHIs again after
13440 vectorizing them, calling maybe_set_vectorized_backedge_value.
13441 Call maybe_set_vectorized_backedge_value for each vectorized
13442 stmt. Remove delayed update code.
13443 * tree-vect-slp.c (vect_analyze_slp_instance): Initialize
13444 SLP instance reduc_phis member.
13445 (vect_schedule_slp): Set vectorized cycle PHI latch values.
13447 2020-09-04 Andrea Corallo <andrea.corallo@arm.com>
13449 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Remove
13450 dead code as LOOP_VINFO_USING_PARTIAL_VECTORS_P (loop_vinfo) is
13453 2020-09-04 Christophe Lyon <christophe.lyon@linaro.org>
13456 * config/arm/thumb1.md: Move movsi splitter for
13457 arm_disable_literal_pool after the other movsi splitters.
13459 2020-09-04 Aldy Hernandez <aldyh@redhat.com>
13461 * range-op.cc (range_operator::fold_range): Rename widest_irange
13463 (operator_div::wi_fold): Same.
13464 (operator_lshift::op1_range): Same.
13465 (operator_rshift::op1_range): Same.
13466 (operator_cast::fold_range): Same.
13467 (operator_cast::op1_range): Same.
13468 (operator_bitwise_and::remove_impossible_ranges): Same.
13469 (operator_bitwise_and::op1_range): Same.
13470 (operator_abs::op1_range): Same.
13471 (range_cast): Same.
13472 (widest_irange_tests): Same.
13473 (range3_tests): Rename irange3 to int_range3.
13474 (int_range_max_tests): Rename from widest_irange_tests.
13475 Rename widest_irange to int_range_max.
13476 (operator_tests): Rename widest_irange to int_range_max.
13477 (range_tests): Same.
13478 * tree-vrp.c (find_case_label_range): Same.
13479 * value-range.cc (irange::irange_intersect): Same.
13480 (irange::invert): Same.
13481 * value-range.h: Same.
13483 2020-09-04 Richard Biener <rguenther@suse.de>
13485 PR tree-optimization/96931
13486 * tree-cfgcleanup.c (cleanup_call_ctrl_altering_flag): If
13487 there's a fallthru edge and no abnormal edge the call is
13488 no longer control-altering.
13489 (cleanup_control_flow_bb): Pass down the BB to
13490 cleanup_call_ctrl_altering_flag.
13492 2020-09-04 Jakub Jelinek <jakub@redhat.com>
13494 * lto-streamer.h (stream_input_location_now): Remove declaration.
13495 * lto-streamer-in.c (stream_input_location_now): Remove.
13496 (input_eh_region, input_struct_function_base): Use
13497 stream_input_location instead of stream_input_location_now.
13499 2020-09-04 Jakub Jelinek <jakub@redhat.com>
13501 * lto-streamer.h (struct output_block): Add reset_locus member.
13502 * lto-streamer-out.c (clear_line_info): Set reset_locus to true.
13503 (lto_output_location_1): If reset_locus, clear it and ensure
13504 current_{file,line,col} is different from xloc members.
13506 2020-09-04 David Faust <david.faust@oracle.com>
13508 * config/bpf/bpf.h (ASM_SPEC): Pass -mxbpf to gas, if specified.
13509 * config/bpf/bpf.c (bpf_output_call): Support indirect calls in xBPF.
13511 2020-09-03 Martin Jambor <mjambor@suse.cz>
13513 PR tree-optimization/96820
13514 * tree-sra.c (create_access): Disqualify candidates with accesses
13515 beyond the end of the original aggregate.
13516 (maybe_add_sra_candidate): Check that candidate type size fits
13517 signed uhwi for the sake of consistency.
13519 2020-09-03 Will Schmidt <will_schmidt@vnet.ibm.com>
13521 * config/rs6000/rs6000-call.c (rs6000_init_builtin): Update V2DI_type_node
13522 and unsigned_V2DI_type_node definitions.
13524 2020-09-03 Jakub Jelinek <jakub@redhat.com>
13527 * tree.h (struct decl_tree_traits): New type.
13528 (decl_tree_map): New typedef.
13530 2020-09-03 Jakub Jelinek <jakub@redhat.com>
13533 * gimple.h (gimple_location_ptr, gimple_phi_arg_location_ptr): New
13535 * streamer-hooks.h (struct streamer_hooks): Add
13536 output_location_and_block callback. Fix up formatting for
13538 (stream_output_location_and_block): Define.
13539 * lto-streamer.h (class lto_location_cache): Fix comment typo. Add
13540 current_block member.
13541 (lto_location_cache::input_location_and_block): New method.
13542 (lto_location_cache::lto_location_cache): Initialize current_block.
13543 (lto_location_cache::cached_location): Add block member.
13544 (struct output_block): Add current_block member.
13545 (lto_output_location): Formatting fix.
13546 (lto_output_location_and_block): Declare.
13547 * lto-streamer.c (lto_streamer_hooks_init): Initialize
13548 streamer_hooks.output_location_and_block.
13549 * lto-streamer-in.c (lto_location_cache::cmp_loc): Also compare
13551 (lto_location_cache::apply_location_cache): Handle blocks.
13552 (lto_location_cache::accept_location_cache,
13553 lto_location_cache::revert_location_cache): Fix up function comments.
13554 (lto_location_cache::input_location_and_block): New method.
13555 (lto_location_cache::input_location): Implement using
13556 input_location_and_block.
13557 (input_function): Invoke apply_location_cache after streaming in all
13559 * lto-streamer-out.c (clear_line_info): Set current_block.
13560 (lto_output_location_1): New function, moved from lto_output_location,
13561 added block handling.
13562 (lto_output_location): Implement using lto_output_location_1.
13563 (lto_output_location_and_block): New function.
13564 * gimple-streamer-in.c (input_phi): Use input_location_and_block
13565 to input and cache both location and block.
13566 (input_gimple_stmt): Likewise.
13567 * gimple-streamer-out.c (output_phi): Use
13568 stream_output_location_and_block.
13569 (output_gimple_stmt): Likewise.
13571 2020-09-03 Richard Biener <rguenther@suse.de>
13573 * tree-vect-generic.c (tree_vec_extract): Remove odd
13574 special-casing of boolean vectors.
13575 * fold-const.c (fold_ternary_loc): Handle boolean vector
13576 type BIT_FIELD_REFs.
13578 2020-09-03 Hongtao Liu <hongtao.liu@intel.com>
13581 * config/i386/i386-features.c
13582 (replace_constant_pool_with_broadcast): New function.
13583 (constant_pool_broadcast): Ditto.
13584 (class pass_constant_pool_broadcast): New pass.
13585 (make_pass_constant_pool_broadcast): Ditto.
13586 (remove_partial_avx_dependency): Call
13587 replace_constant_pool_with_broadcast under TARGET_AVX512F, it
13588 would save compile time when both pass rpad and cpb are
13590 (remove_partial_avx_dependency_gate): New function.
13591 (class pass_remove_partial_avx_dependency::gate): Call
13592 remove_partial_avx_dependency_gate.
13593 * config/i386/i386-passes.def: Insert new pass after combine.
13594 * config/i386/i386-protos.h
13595 (make_pass_constant_pool_broadcast): Declare.
13596 * config/i386/sse.md (*avx512dq_mul<mode>3<mask_name>_bcst):
13598 (*avx512f_mul<mode>3<mask_name>_bcst): Ditto.
13599 * config/i386/avx512fintrin.h (_mm512_set1_ps,
13600 _mm512_set1_pd,_mm512_set1_epi32, _mm512_set1_epi64): Adjusted.
13602 2020-09-02 Jonathan Wakely <jwakely@redhat.com>
13605 * ginclude/stdbool.h (bool, false, true): Never define for C++.
13607 2020-09-02 Jozef Lawrynowicz <jozef.l@mittosystems.com>
13609 * doc/invoke.texi (MSP430 options): Fix -mlarge description to
13610 indicate size_t is a 20-bit type.
13612 2020-09-02 Roger Sayle <roger@nextmovesoftware.com>
13614 * config/pa/pa.c (hppa_rtx_costs) [ASHIFT, ASHIFTRT, LSHIFTRT]:
13615 Provide accurate costs for shifts of integer constants.
13617 2020-09-02 Jose E. Marchesi <jose.marchesi@oracle.com>
13619 * config/bpf/bpf.c (bpf_asm_named_section): Delete.
13620 (TARGET_ASM_NAMED_SECTION): Likewise.
13622 2020-09-02 Jose E. Marchesi <jemarch@gnu.org>
13624 * config.gcc: Use elfos.h in bpf-*-* targets.
13625 * config/bpf/bpf.h (MAX_OFILE_ALIGNMENT): Remove definition.
13626 (COMMON_ASM_OP): Likewise.
13627 (INIT_SECTION_ASM_OP): Likewise.
13628 (FINI_SECTION_ASM_OP): Likewise.
13629 (ASM_OUTPUT_SKIP): Likewise.
13630 (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
13631 (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
13633 2020-09-01 Martin Sebor <msebor@redhat.com>
13635 * builtins.c (compute_objsize): Only replace the upper bound
13636 of a POINTER_PLUS offset when it's less than the lower bound.
13638 2020-09-01 Peter Bergner <bergner@linux.ibm.com>
13641 * config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Do not
13642 reuse accumulator memory reference for source and destination accesses.
13644 2020-09-01 Martin Liska <mliska@suse.cz>
13646 * cfgrtl.c (rtl_create_basic_block): Use default value for
13647 growth vector function.
13648 * gimple.c (gimple_set_bb): Likewise.
13649 * symbol-summary.h: Likewise.
13650 * tree-cfg.c (init_empty_tree_cfg_for_function): Likewise.
13651 (build_gimple_cfg): Likewise.
13652 (create_bb): Likewise.
13653 (move_block_to_fn): Likewise.
13655 2020-09-01 Martin Liska <mliska@suse.cz>
13657 * vec.h (vec_safe_grow): Change default of exact to false.
13658 (vec_safe_grow_cleared): Likewise.
13660 2020-09-01 Roger Sayle <roger@nextmovesoftware.com>
13662 PR middle-end/90597
13663 * targhooks.c (default_vector_alignment): Return at least the
13664 GET_MODE_ALIGNMENT for the type's mode.
13666 2020-09-01 Richard Biener <rguenther@suse.de>
13668 PR rtl-optimization/96812
13669 * tree-ssa-address.c (copy_ref_info): Also copy dependence info.
13670 * cfgrtl.h (duplicate_insn_chain): Adjust prototype.
13671 * cfgrtl.c (duplicate_insn_chain): Remap dependence info
13673 (cfg_layout_duplicate_bb): Make sure we remap dependence info.
13674 * modulo-sched.c (duplicate_insns_of_cycles): Remap dependence
13676 (generate_prolog_epilog): Adjust.
13677 * config/c6x/c6x.c (hwloop_optimize): Remap dependence info.
13679 2020-09-01 Kewen Lin <linkw@gcc.gnu.org>
13681 * doc/sourcebuild.texi (has_arch_pwr5, has_arch_pwr6, has_arch_pwr7,
13682 has_arch_pwr8, has_arch_pwr9): Document.
13684 2020-08-31 Carl Love <cel@us.ibm.com>
13687 * config/rs6000/altivec.h (vec_popcntb, vec_popcnth, vec_popcntw,
13688 vec_popcntd): Remove defines.
13690 2020-08-31 Marek Polacek <polacek@redhat.com>
13691 Jason Merrill <jason@redhat.com>
13694 * tree.c (build_constructor_from_vec): New.
13695 * tree.h (build_constructor_from_vec): Declare.
13697 2020-08-31 Aldy Hernandez <aldyh@redhat.com>
13699 PR tree-optimization/96818
13700 * tree-vrp.c (find_case_label_range): Cast label range to
13701 type of switch operand.
13703 2020-08-31 liuhongt <hongtao.liu@intel.com>
13706 * config/i386/sse.md (vec_unpacku_float_hi_v16si): For vector
13707 compare to integer mask, don't use gen_rtx_LT, use
13708 ix86_expand_mask_vec_cmp instead.
13709 (vec_unpacku_float_hi_v16si): Ditto.
13711 2020-08-31 Jakub Jelinek <jakub@redhat.com>
13713 * tree-cfg.c (verify_gimple_switch): If the first non-default case
13714 label has CASE_HIGH, verify it has the same type as CASE_LOW.
13716 2020-08-31 Feng Xue <fxue@os.amperecomputing.com>
13719 * ipa-cp.c (decide_about_value): Use safe_add to avoid cost addition
13722 2020-08-31 Jakub Jelinek <jakub@redhat.com>
13724 PR middle-end/54201
13725 * varasm.c: Include alloc-pool.h.
13726 (output_constant_pool_contents): Emit desc->mark < 0 entries as
13728 (struct constant_descriptor_rtx_data): New type.
13729 (constant_descriptor_rtx_data_cmp): New function.
13730 (struct const_rtx_data_hasher): New type.
13731 (const_rtx_data_hasher::hash, const_rtx_data_hasher::equal): New
13733 (optimize_constant_pool): New function.
13734 (output_shared_constant_pool): Call it if TARGET_SUPPORTS_ALIASES.
13736 2020-08-31 Kewen Lin <linkw@gcc.gnu.org>
13738 * doc/sourcebuild.texi (vect_len_load_store,
13739 vect_partial_vectors_usage_1, vect_partial_vectors_usage_2,
13740 vect_partial_vectors): Document.
13742 2020-08-30 Martin Sebor <msebor@redhat.com>
13744 * builtins.c (access_ref::access_ref): Call get_size_range instead
13747 2020-08-30 Jakub Jelinek <jakub@redhat.com>
13749 * config/i386/sse.md (ssse3_pshufbv8qi): Use gen_int_mode instead of
13750 GEN_INT, and ix86_build_const_vector instead of gen_rtvec and
13751 gen_rtx_CONT_VECTOR.
13753 2020-08-29 Bill Schmidt <wschmidt@linux.ibm.com>
13755 * config/rs6000/rs6000-builtin.def (MASK_FOR_STORE): Remove.
13756 * config/rs6000/rs6000-call.c (rs6000_expand_builtin): Remove
13757 all logic for ALTIVEC_BUILTIN_MASK_FOR_STORE.
13759 2020-08-28 Martin Sebor <msebor@redhat.com>
13761 * attribs.c (init_attr_rdwr_indices): Use global access_mode.
13762 * attribs.h (struct attr_access): Same.
13763 * builtins.c (fold_builtin_strlen): Add argument.
13764 (compute_objsize): Declare.
13765 (get_range): Declare.
13766 (check_read_access): New function.
13767 (access_ref::access_ref): Define ctor.
13768 (warn_string_no_nul): Add arguments. Handle -Wstrintop-overread.
13769 (check_nul_terminated_array): Handle source strings of different
13771 (expand_builtin_strlen): Remove warning code, call check_read_access
13772 instead. Declare locals closer to their initialization.
13773 (expand_builtin_strnlen): Same.
13774 (maybe_warn_for_bound): New function.
13775 (warn_for_access): Remove argument. Handle -Wstrintop-overread.
13776 (inform_access): Change argument type.
13777 (get_size_range): New function.
13778 (check_access): Remove unused arguments. Add new arguments. Handle
13779 -Wstrintop-overread. Move warning code to helpers and call them.
13780 Call check_nul_terminated_array.
13781 (check_memop_access): Remove unnecessary and provide additional
13782 arguments in calls.
13783 (expand_builtin_memchr): Call check_read_access.
13784 (expand_builtin_strcat): Remove unnecessary and provide additional
13785 arguments in calls.
13786 (expand_builtin_strcpy): Same.
13787 (expand_builtin_strcpy_args): Same. Avoid testing no-warning bit.
13788 (expand_builtin_stpcpy_1): Remove unnecessary and provide additional
13789 arguments in calls.
13790 (expand_builtin_stpncpy): Same.
13791 (check_strncat_sizes): Same.
13792 (expand_builtin_strncat): Remove unnecessary and provide additional
13793 arguments in calls. Adjust comments.
13794 (expand_builtin_strncpy): Remove unnecessary and provide additional
13795 arguments in calls.
13796 (expand_builtin_memcmp): Remove warning code. Call check_access.
13797 (expand_builtin_strcmp): Call check_access instead of
13798 check_nul_terminated_array.
13799 (expand_builtin_strncmp): Handle -Wstrintop-overread.
13800 (expand_builtin_fork_or_exec): Call check_access instead of
13801 check_nul_terminated_array.
13802 (expand_builtin): Same.
13803 (fold_builtin_1): Pass additional argument.
13804 (fold_builtin_n): Same.
13805 (fold_builtin_strpbrk): Remove calls to check_nul_terminated_array.
13806 (expand_builtin_memory_chk): Add comments.
13807 (maybe_emit_chk_warning): Remove unnecessary and provide additional
13808 arguments in calls.
13809 (maybe_emit_sprintf_chk_warning): Same. Adjust comments.
13810 * builtins.h (warn_string_no_nul): Add arguments.
13811 (struct access_ref): Add member and ctor argument.
13812 (struct access_data): Add members and ctor.
13813 (check_access): Adjust signature.
13814 * calls.c (maybe_warn_nonstring_arg): Return an indication of
13815 whether a warning was issued. Issue -Wstrintop-overread instead
13816 of -Wstringop-overflow.
13817 (append_attrname): Adjust to naming changes.
13818 (maybe_warn_rdwr_sizes): Same. Remove unnecessary and provide
13819 additional arguments in calls.
13820 * calls.h (maybe_warn_nonstring_arg): Return bool.
13821 * doc/invoke.texi (-Wstringop-overread): Document new option.
13822 * gimple-fold.c (gimple_fold_builtin_strcpy): Provide an additional
13824 (gimple_fold_builtin_stpcpy): Same.
13825 * tree-ssa-uninit.c (maybe_warn_pass_by_reference): Adjust to naming
13827 * tree.h (enum access_mode): New type.
13829 2020-08-28 Bill Schmidt <wschmidt@linux.ibm.com>
13831 * config/rs6000/rs6000.c (rs6000_call_aix): Remove test for r12.
13832 (rs6000_sibcall_aix): Likewise.
13834 2020-08-28 Andrew Stubbs <ams@codesourcery.com>
13836 * config/gcn/gcn-tree.c (gcn_goacc_get_worker_red_decl): Add "true"
13837 parameter to vec_safe_grow_cleared.
13839 2020-08-28 Martin Sebor <msebor@redhat.com>
13841 * ggc-common.c (gt_pch_save): Add argument to a call.
13843 2020-08-28 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
13846 * config/aarch64/aarch64-sve.md
13847 (cond_sub<mode>_relaxed_const): Updated and renamed from
13848 cond_sub<mode>_any_const pattern.
13849 (cond_sub<mode>_strict_const): New pattern.
13851 2020-08-28 Wei Wentao <weiwt.fnst@cn.fujitsu.com>
13853 * doc/rtl.texi: Fix typo.
13855 2020-08-28 Uros Bizjak <ubizjak@gmail.com>
13858 * config/i386/i386-expand.c (split_double_mode): Also handle
13859 E_P2HImode and E_P2QImode.
13860 * config/i386/sse.md (MASK_DWI): New define_mode_iterator.
13861 (mov<mode>): New expander for P2HI,P2QI.
13862 (*mov<mode>_internal): New define_insn_and_split to split
13863 movement of P2QI/P2HI to 2 movqi/movhi patterns after reload.
13865 2020-08-28 liuhongt <hongtao.liu@intel.com>
13867 * common/config/i386/i386-common.c (ix86_handle_option): Set
13868 AVX512DQ when AVX512VP2INTERSECT exists.
13870 2020-08-27 Jakub Jelinek <jakub@redhat.com>
13873 * config/i386/i386.c (iamcu_alignment): Don't decrease alignment
13874 for TYPE_ATOMIC types.
13875 (ix86_local_alignment): Likewise.
13876 (ix86_minimum_alignment): Likewise.
13877 (x86_field_alignment): Likewise, and emit a -Wpsabi diagnostic
13880 2020-08-27 Bill Schmidt <wschmidt@linux.ibm.com>
13883 * config/rs6000/rs6000.c (rs6000_sibcall_aix): Support
13884 indirect call for ELFv2.
13886 2020-08-27 Richard Biener <rguenther@suse.de>
13888 PR tree-optimization/96522
13889 * tree-ssa-address.c (copy_ref_info): Reset flow-sensitive
13890 info of the copied points-to. Transfer bigger alignment
13891 via the access type.
13892 * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt):
13893 Reset all flow-sensitive info.
13895 2020-08-27 Martin Liska <mliska@suse.cz>
13897 * alias.c (init_alias_analysis): Set exact argument of a vector
13898 growth function to true.
13899 * calls.c (internal_arg_pointer_based_exp_scan): Likewise.
13900 * cfgbuild.c (find_many_sub_basic_blocks): Likewise.
13901 * cfgexpand.c (expand_asm_stmt): Likewise.
13902 * cfgrtl.c (rtl_create_basic_block): Likewise.
13903 * combine.c (combine_split_insns): Likewise.
13904 (combine_instructions): Likewise.
13905 * config/aarch64/aarch64-sve-builtins.cc (function_expander::add_output_operand): Likewise.
13906 (function_expander::add_input_operand): Likewise.
13907 (function_expander::add_integer_operand): Likewise.
13908 (function_expander::add_address_operand): Likewise.
13909 (function_expander::add_fixed_operand): Likewise.
13910 * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
13911 * dwarf2cfi.c (update_row_reg_save): Likewise.
13912 * early-remat.c (early_remat::init_block_info): Likewise.
13913 (early_remat::finalize_candidate_indices): Likewise.
13914 * except.c (sjlj_build_landing_pads): Likewise.
13915 * final.c (compute_alignments): Likewise.
13916 (grow_label_align): Likewise.
13917 * function.c (temp_slots_at_level): Likewise.
13918 * fwprop.c (build_single_def_use_links): Likewise.
13919 (update_uses): Likewise.
13920 * gcc.c (insert_wrapper): Likewise.
13921 * genautomata.c (create_state_ainsn_table): Likewise.
13922 (add_vect): Likewise.
13923 (output_dead_lock_vect): Likewise.
13924 * genmatch.c (capture_info::capture_info): Likewise.
13925 (parser::finish_match_operand): Likewise.
13926 * genrecog.c (optimize_subroutine_group): Likewise.
13927 (merge_pattern_info::merge_pattern_info): Likewise.
13928 (merge_into_decision): Likewise.
13929 (print_subroutine_start): Likewise.
13931 * gimple-loop-versioning.cc (loop_versioning::loop_versioning): Likewise.
13932 * gimple.c (gimple_set_bb): Likewise.
13933 * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_user): Likewise.
13934 * haifa-sched.c (sched_extend_luids): Likewise.
13935 (extend_h_i_d): Likewise.
13936 * insn-addr.h (insn_addresses_new): Likewise.
13937 * ipa-cp.c (gather_context_independent_values): Likewise.
13938 (find_more_contexts_for_caller_subset): Likewise.
13939 * ipa-devirt.c (final_warning_record::grow_type_warnings): Likewise.
13940 (ipa_odr_read_section): Likewise.
13941 * ipa-fnsummary.c (evaluate_properties_for_edge): Likewise.
13942 (ipa_fn_summary_t::duplicate): Likewise.
13943 (analyze_function_body): Likewise.
13944 (ipa_merge_fn_summary_after_inlining): Likewise.
13945 (read_ipa_call_summary): Likewise.
13946 * ipa-icf.c (sem_function::bb_dict_test): Likewise.
13947 * ipa-prop.c (ipa_alloc_node_params): Likewise.
13948 (parm_bb_aa_status_for_bb): Likewise.
13949 (ipa_compute_jump_functions_for_edge): Likewise.
13950 (ipa_analyze_node): Likewise.
13951 (update_jump_functions_after_inlining): Likewise.
13952 (ipa_read_edge_info): Likewise.
13953 (read_ipcp_transformation_info): Likewise.
13954 (ipcp_transform_function): Likewise.
13955 * ipa-reference.c (ipa_reference_write_optimization_summary): Likewise.
13956 * ipa-split.c (execute_split_functions): Likewise.
13957 * ira.c (find_moveable_pseudos): Likewise.
13958 * lower-subreg.c (decompose_multiword_subregs): Likewise.
13959 * lto-streamer-in.c (input_eh_regions): Likewise.
13960 (input_cfg): Likewise.
13961 (input_struct_function_base): Likewise.
13962 (input_function): Likewise.
13963 * modulo-sched.c (set_node_sched_params): Likewise.
13964 (extend_node_sched_params): Likewise.
13965 (schedule_reg_moves): Likewise.
13966 * omp-general.c (omp_construct_simd_compare): Likewise.
13967 * passes.c (pass_manager::create_pass_tab): Likewise.
13968 (enable_disable_pass): Likewise.
13969 * predict.c (determine_unlikely_bbs): Likewise.
13970 * profile.c (compute_branch_probabilities): Likewise.
13971 * read-rtl-function.c (function_reader::parse_block): Likewise.
13972 * read-rtl.c (rtx_reader::read_rtx_code): Likewise.
13973 * reg-stack.c (stack_regs_mentioned): Likewise.
13974 * regrename.c (regrename_init): Likewise.
13975 * rtlanal.c (T>::add_single_to_queue): Likewise.
13976 * sched-deps.c (init_deps_data_vector): Likewise.
13977 * sel-sched-ir.c (sel_extend_global_bb_info): Likewise.
13978 (extend_region_bb_info): Likewise.
13979 (extend_insn_data): Likewise.
13980 * symtab.c (symtab_node::create_reference): Likewise.
13981 * tracer.c (tail_duplicate): Likewise.
13982 * trans-mem.c (tm_region_init): Likewise.
13983 (get_bb_regions_instrumented): Likewise.
13984 * tree-cfg.c (init_empty_tree_cfg_for_function): Likewise.
13985 (build_gimple_cfg): Likewise.
13986 (create_bb): Likewise.
13987 (move_block_to_fn): Likewise.
13988 * tree-complex.c (tree_lower_complex): Likewise.
13989 * tree-if-conv.c (predicate_rhs_code): Likewise.
13990 * tree-inline.c (copy_bb): Likewise.
13991 * tree-into-ssa.c (get_ssa_name_ann): Likewise.
13992 (mark_phi_for_rewrite): Likewise.
13993 * tree-object-size.c (compute_builtin_object_size): Likewise.
13994 (init_object_sizes): Likewise.
13995 * tree-predcom.c (initialize_root_vars_store_elim_1): Likewise.
13996 (initialize_root_vars_store_elim_2): Likewise.
13997 (prepare_initializers_chain_store_elim): Likewise.
13998 * tree-ssa-address.c (addr_for_mem_ref): Likewise.
13999 (multiplier_allowed_in_address_p): Likewise.
14000 * tree-ssa-coalesce.c (ssa_conflicts_new): Likewise.
14001 * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise.
14002 * tree-ssa-loop-ivopts.c (addr_offset_valid_p): Likewise.
14003 (get_address_cost_ainc): Likewise.
14004 * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk): Likewise.
14005 * tree-ssa-pre.c (add_to_value): Likewise.
14006 (phi_translate_1): Likewise.
14007 (do_pre_regular_insertion): Likewise.
14008 (do_pre_partial_partial_insertion): Likewise.
14009 (init_pre): Likewise.
14010 * tree-ssa-propagate.c (ssa_prop_init): Likewise.
14011 (update_call_from_tree): Likewise.
14012 * tree-ssa-reassoc.c (optimize_range_tests_cmp_bitwise): Likewise.
14013 * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
14014 (vn_reference_lookup_pieces): Likewise.
14015 (eliminate_dom_walker::eliminate_push_avail): Likewise.
14016 * tree-ssa-strlen.c (set_strinfo): Likewise.
14017 (get_stridx_plus_constant): Likewise.
14018 (zero_length_string): Likewise.
14019 (find_equal_ptrs): Likewise.
14020 (printf_strlen_execute): Likewise.
14021 * tree-ssa-threadedge.c (set_ssa_name_value): Likewise.
14022 * tree-ssanames.c (make_ssa_name_fn): Likewise.
14023 * tree-streamer-in.c (streamer_read_tree_bitfields): Likewise.
14024 * tree-vect-loop.c (vect_record_loop_mask): Likewise.
14025 (vect_get_loop_mask): Likewise.
14026 (vect_record_loop_len): Likewise.
14027 (vect_get_loop_len): Likewise.
14028 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Likewise.
14029 * tree-vect-slp.c (vect_slp_convert_to_external): Likewise.
14030 (vect_bb_slp_scalar_cost): Likewise.
14031 (vect_bb_vectorization_profitable_p): Likewise.
14032 (vectorizable_slp_permutation): Likewise.
14033 * tree-vect-stmts.c (vectorizable_call): Likewise.
14034 (vectorizable_simd_clone_call): Likewise.
14035 (scan_store_can_perm_p): Likewise.
14036 (vectorizable_store): Likewise.
14037 * expr.c: Likewise.
14038 * vec.c (test_safe_grow_cleared): Likewise.
14039 * vec.h (vec_safe_grow): Likewise.
14040 (vec_safe_grow_cleared): Likewise.
14041 (vl_ptr>::safe_grow): Likewise.
14042 (vl_ptr>::safe_grow_cleared): Likewise.
14043 * config/c6x/c6x.c (insn_set_clock): Likewise.
14045 2020-08-27 Richard Biener <rguenther@suse.de>
14047 * tree-pretty-print.c (dump_mem_ref): Handle TARGET_MEM_REFs.
14048 (dump_generic_node): Use dump_mem_ref also for TARGET_MEM_REF.
14050 2020-08-27 Alex Coplan <alex.coplan@arm.com>
14052 * lra-constraints.c (canonicalize_reload_addr): New.
14053 (curr_insn_transform): Use canonicalize_reload_addr to ensure we
14054 generate canonical RTL for an address reload.
14056 2020-08-27 Zhiheng Xie <xiezhiheng@huawei.com>
14058 * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG
14059 for rounding intrinsics.
14061 2020-08-27 Zhiheng Xie <xiezhiheng@huawei.com>
14063 * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG
14064 for min/max intrinsics.
14066 2020-08-27 Richard Biener <rguenther@suse.de>
14068 PR tree-optimization/96579
14069 * tree-ssa-reassoc.c (linearize_expr_tree): If we expand
14070 rhs via special ops make sure to swap operands.
14072 2020-08-27 Richard Biener <rguenther@suse.de>
14074 PR tree-optimization/96565
14075 * tree-ssa-dse.c (dse_classify_store): Remove defs with
14076 no uses from further processing.
14078 2020-08-26 Göran Uddeborg <goeran@uddeborg.se>
14080 PR gcov-profile/96285
14081 * common.opt, doc/invoke.texi: Clarify wording of
14082 -fprofile-exclude-files and adjust -fprofile-filter-files to
14085 2020-08-26 H.J. Lu <hjl.tools@gmail.com>
14088 * config/i386/i386-options.c (ix86_valid_target_attribute_inner_p):
14089 Reject target("no-general-regs-only").
14091 2020-08-26 Jozef Lawrynowicz <jozef.l@mittosystems.com>
14093 * config/msp430/constraints.md (K): Change unused constraint to
14094 constraint to a const_int between 1 and 19.
14095 (P): New constraint.
14096 * config/msp430/msp430-protos.h (msp430x_logical_shift_right): Remove.
14097 (msp430_expand_shift): New.
14098 (msp430_output_asm_shift_insns): New.
14099 * config/msp430/msp430.c (msp430_rtx_costs): Remove shift costs.
14101 (msp430_expand_helper): Remove hard-coded generation of some inline
14103 (use_helper_for_const_shift): New.
14104 (msp430_expand_shift): New.
14105 (msp430_output_asm_shift_insns): New.
14106 (msp430_print_operand): Add new 'W' operand selector.
14107 (msp430x_logical_shift_right): Remove.
14108 * config/msp430/msp430.md (HPSI): New define_mode_iterator.
14110 (any_shift): New define_code_iterator.
14111 (shift_insn): New define_code_attr.
14112 Adjust unnamed insn patterns searched for by combine.
14115 (430x_shift_left): Remove.
14122 (430x_arithmetic_shift_right): Remove.
14131 (430x_logical_shift_right): Remove.
14137 (<shift_insn><mode>3): New define_expand.
14138 (<shift_insn>hi3_430): New define_insn.
14139 (<shift_insn>si3_const): Likewise.
14140 (ashl<mode>3_430x): Likewise.
14141 (ashr<mode>3_430x): Likewise.
14142 (lshr<mode>3_430x): Likewise.
14143 (*bitbranch<mode>4_z): Replace renamed predicate msp430_bitpos with
14144 const_0_to_15_operand.
14145 * config/msp430/msp430.opt: New option -mmax-inline-shift=.
14146 * config/msp430/predicates.md (const_1_to_8_operand): New predicate.
14147 (const_0_to_15_operand): Rename msp430_bitpos predicate.
14148 (const_1_to_19_operand): New predicate.
14149 * doc/invoke.texi: Document -mmax-inline-shift=.
14151 2020-08-26 Aldy Hernandez <aldyh@redhat.com>
14153 * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Abstract code out to...
14154 * tree-vrp.c (find_case_label_range): ...here. Rewrite for to use irange
14156 (simplify_stmt_for_jump_threading): Call find_case_label_range instead of
14157 duplicating the code in simplify_stmt_for_jump_threading.
14158 * tree-vrp.h (find_case_label_range): New prototype.
14160 2020-08-26 Richard Biener <rguenther@suse.de>
14162 PR tree-optimization/96698
14163 * tree-vectorizer.h (loop_vec_info::reduc_latch_defs): New.
14164 (loop_vec_info::reduc_latch_slp_defs): Likewise.
14165 * tree-vect-stmts.c (vect_transform_stmt): Only record
14166 stmts to update PHI latches from, perform the update ...
14167 * tree-vect-loop.c (vect_transform_loop): ... here after
14168 vectorizing those PHIs.
14169 (info_for_reduction): Properly handle non-reduction PHIs.
14171 2020-08-26 Martin Liska <mliska@suse.cz>
14173 * cgraphunit.c (process_symver_attribute): Match only symver
14176 2020-08-26 Richard Biener <rguenther@suse.de>
14178 PR tree-optimization/96783
14179 * tree-vect-stmts.c (get_group_load_store_type): Use
14180 VMAT_ELEMENTWISE for negative strides when we cannot
14181 use VMAT_STRIDED_SLP.
14183 2020-08-26 Martin Liska <mliska@suse.cz>
14185 * doc/invoke.texi: Document how are pie and pic options merged.
14187 2020-08-26 Zhiheng Xie <xiezhiheng@huawei.com>
14189 * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG
14190 for add/sub arithmetic intrinsics.
14192 2020-08-26 Jakub Jelinek <jakub@redhat.com>
14195 * dwarf2out.c (dwarf2out_next_real_insn): Adjust function comment.
14196 (dwarf2out_var_location): Look for next_note only if next_real is
14197 non-NULL, in that case look for the first non-deleted
14198 NOTE_INSN_VAR_LOCATION between loc_note and next_real, if any.
14200 2020-08-26 Iain Buclaw <ibuclaw@gdcproject.org>
14202 * config/tilepro/gen-mul-tables.cc (main): Define IN_TARGET_CODE to 1
14203 in the target file.
14205 2020-08-26 Martin Liska <mliska@suse.cz>
14207 * cgraphunit.c (process_symver_attribute): Allow multiple
14208 symver attributes for one symbol.
14209 * doc/extend.texi: Document the change.
14211 2020-08-25 H.J. Lu <hjl.tools@gmail.com>
14214 * config/i386/i386.h (CTZ_DEFINED_VALUE_AT_ZERO): Return 0/2.
14215 (CLZ_DEFINED_VALUE_AT_ZERO): Likewise.
14217 2020-08-25 Roger Sayle <roger@nextmovesoftware.com>
14219 PR middle-end/87256
14220 * config/pa/pa.c (hppa_rtx_costs_shadd_p): New helper function
14221 to check for coefficients supported by shNadd and shladd,l.
14222 (hppa_rtx_costs): Rewrite to avoid using estimates based upon
14223 FACTOR and enable recursing deeper into RTL expressions.
14225 2020-08-25 Roger Sayle <roger@nextmovesoftware.com>
14227 * config/pa/pa.md (ashldi3): Additionally, on !TARGET_64BIT
14228 generate a two instruction shd/zdep sequence when shifting
14229 registers by suitable constants.
14230 (shd_internal): New define_expand to provide gen_shd_internal.
14232 2020-08-25 Richard Sandiford <richard.sandiford@arm.com>
14234 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Rename
14235 __ARM_FEATURE_SVE_VECTOR_OPERATIONS to
14236 __ARM_FEATURE_SVE_VECTOR_OPERATORS.
14238 2020-08-25 Richard Sandiford <richard.sandiford@arm.com>
14240 * config/aarch64/aarch64-sve-builtins.cc (add_sve_type_attribute):
14241 Take the ACLE name of the type as a parameter and add it as fourth
14242 argument to the "SVE type" attribute.
14243 (register_builtin_types): Update call accordingly.
14244 (register_tuple_type): Likewise. Construct the name of the type
14245 earlier in order to do this.
14246 (get_arm_sve_vector_bits_attributes): New function.
14247 (handle_arm_sve_vector_bits_attribute): Report a more sensible
14248 error message if the attribute is applied to an SVE tuple type.
14249 Don't allow the attribute to be applied to an existing fixed-length
14250 SVE type. Mangle the new type as __SVE_VLS<type, vector-bits>.
14251 Add a dummy TYPE_DECL to the new type.
14253 2020-08-25 Richard Sandiford <richard.sandiford@arm.com>
14255 * config/aarch64/aarch64-sve-builtins.cc (DEF_SVE_TYPE): Add a
14256 leading "u" to each mangled name.
14258 2020-08-25 Richard Biener <rguenther@suse.de>
14260 PR tree-optimization/96548
14261 PR tree-optimization/96760
14262 * tree-ssa-loop-im.c (tree_ssa_lim): Recompute RPO after
14265 2020-08-25 Jakub Jelinek <jakub@redhat.com>
14267 PR tree-optimization/96722
14268 * gimple.c (infer_nonnull_range): Formatting fix.
14269 (infer_nonnull_range_by_dereference): Return false for clobber stmts.
14271 2020-08-25 Jakub Jelinek <jakub@redhat.com>
14273 PR tree-optimization/96758
14274 * tree-ssa-strlen.c (handle_builtin_string_cmp): If both cstlen1
14275 and cstlen2 are set, set cmpsiz to their minimum, otherwise use the
14276 one that is set. If bound is used and smaller than cmpsiz, set cmpsiz
14277 to bound. If both cstlen1 and cstlen2 are set, perform the optimization.
14279 2020-08-25 Martin Jambor <mjambor@suse.cz>
14281 PR tree-optimization/96730
14282 * tree-sra.c (create_access): Disqualify any aggregate with negative
14284 (build_ref_for_model): Add assert that offset is non-negative.
14286 2020-08-25 Wei Wentao <weiwt.fnst@cn.fujitsu.com>
14288 * rtl.def: Fix typo in comment.
14290 2020-08-25 Roger Sayle <roger@nextmovesoftware.com>
14292 PR tree-optimization/21137
14293 * fold-const.c (fold_binary_loc) [NE_EXPR/EQ_EXPR]: Call
14294 STRIP_NOPS when checking whether to simplify ((x>>C1)&C2) != 0.
14296 2020-08-25 Andrew Pinski <apinski@marvell.com>
14298 PR middle-end/64242
14299 * config/mips/mips.md (builtin_longjmp): Restore the frame
14300 pointer and stack pointer and gp.
14302 2020-08-25 Richard Biener <rguenther@suse.de>
14305 * dwarf2out.c (reference_to_unused): Make FUNCTION_DECL
14306 processing more consistent with respect to
14307 symtab->global_info_ready.
14308 (tree_add_const_value_attribute): Unconditionally call
14309 rtl_for_decl_init to do all mangling early but throw
14310 away the result if early_dwarf.
14312 2020-08-25 Hongtao Liu <hongtao.liu@intel.com>
14315 * config/i386/sse.md: Correct the mode of NOT operands to
14318 2020-08-25 Jakub Jelinek <jakub@redhat.com>
14320 PR tree-optimization/96715
14321 * match.pd (copysign(x,-x) -> -x): New simplification.
14323 2020-08-25 Jakub Jelinek <jakub@redhat.com>
14326 * fold-const.c (native_interpret_real): For MODE_COMPOSITE_P modes
14327 punt if the to be returned REAL_CST does not encode to the bitwise
14328 same representation.
14330 2020-08-24 Gerald Pfeifer <gerald@pfeifer.com>
14332 * doc/install.texi (Configuration): Switch valgrind.com to https.
14334 2020-08-24 Christophe Lyon <christophe.lyon@linaro.org>
14338 * config/arm/thumb1.md: Disable set-constant splitter when
14340 (thumb1_movsi_insn): Fix -mpure-code
14343 2020-08-24 Martin Liska <mliska@suse.cz>
14345 * tree-vect-data-refs.c (dr_group_sort_cmp): Work on
14347 (vect_analyze_data_ref_accesses): Work on groups.
14348 (vect_find_stmt_data_reference): Add group_id argument and fill
14349 up dataref_groups vector.
14350 * tree-vect-loop.c (vect_get_datarefs_in_loop): Pass new
14352 (vect_analyze_loop_2): Likewise.
14353 * tree-vect-slp.c (vect_slp_analyze_bb_1): Pass argument.
14354 (vect_slp_bb_region): Likewise.
14355 (vect_slp_region): Likewise.
14356 (vect_slp_bb):Work on the entire BB.
14357 * tree-vectorizer.h (vect_analyze_data_ref_accesses): Add new
14359 (vect_find_stmt_data_reference): Likewise.
14361 2020-08-24 Martin Liska <mliska@suse.cz>
14363 PR tree-optimization/96597
14364 * tree-ssa-sccvn.c (vn_reference_lookup_call): Add missing
14365 initialization of ::punned.
14366 (vn_reference_insert): Use consistently false instead of 0.
14367 (vn_reference_insert_pieces): Likewise.
14369 2020-08-24 Hans-Peter Nilsson <hp@axis.com>
14372 * reorg.c (fill_slots_from_thread): Allow trial insns that clobber
14373 TARGET_FLAGS_REGNUM as delay-slot fillers.
14375 2020-08-23 H.J. Lu <hjl.tools@gmail.com>
14378 * config/i386/i386-options.c (IX86_ATTR_IX86_YES): New.
14379 (IX86_ATTR_IX86_NO): Likewise.
14380 (ix86_opt_type): Add ix86_opt_ix86_yes and ix86_opt_ix86_no.
14381 (ix86_valid_target_attribute_inner_p): Handle general-regs-only,
14382 ix86_opt_ix86_yes and ix86_opt_ix86_no.
14383 (ix86_option_override_internal): Check opts->x_ix86_target_flags
14384 instead of opts->x_ix86_target_flags.
14385 * doc/extend.texi: Document target("general-regs-only") function
14388 2020-08-21 Richard Sandiford <richard.sandiford@arm.com>
14390 * doc/extend.texi: Update links to Arm docs.
14391 * doc/invoke.texi: Likewise.
14393 2020-08-21 Hongtao Liu <hongtao.liu@intel.com>
14396 * config/i386/i386-expand.c
14397 (ix86_expand_vec_shift_qihi_constant): Refine.
14399 2020-08-21 Alex Coplan <alex.coplan@arm.com>
14402 * gcc.c (set_static_spec): New.
14403 (set_static_spec_owned): New.
14404 (set_static_spec_shared): New.
14405 (driver::maybe_putenv_COLLECT_LTO_WRAPPER): Use
14406 set_static_spec_owned() to take ownership of lto_wrapper_file
14407 such that it gets freed in driver::finalize.
14408 (driver::maybe_run_linker): Use set_static_spec_shared() to
14409 ensure that we don't try and free() the static string "ld",
14410 also ensuring that any previously-allocated string in
14411 linker_name_spec is freed. Likewise with argv0.
14412 (driver::finalize): Use set_static_spec_shared() when resetting
14413 specs that previously had allocated strings; remove if(0)
14414 around call to free().
14416 2020-08-21 Senthil Kumar Selvaraj <saaadhu@gcc.gnu.org>
14418 * emit-rtl.c (try_split): Call copy_frame_info_to_split_insn
14419 to split certain RTX_FRAME_RELATED_P insns.
14420 * recog.c (copy_frame_info_to_split_insn): New function.
14421 (peep2_attempt): Split copying of frame related info of
14422 RTX_FRAME_RELATED_P insns into above function and call it.
14423 * recog.h (copy_frame_info_to_split_insn): Declare it.
14425 2020-08-21 liuhongt <hongtao.liu@intel.com>
14428 * config/i386/i386.c (ix86_preferred_reload_class): Allow
14429 QImode data go into mask registers.
14430 * config/i386/i386.md: (*movhi_internal): Adjust constraints
14431 for mask registers.
14432 (*movqi_internal): Ditto.
14433 (*anddi_1): Support mask register operations
14434 (*and<mode>_1): Ditto.
14436 (*andn<mode>_1): Ditto.
14437 (*<code><mode>_1): Ditto.
14438 (*<code>qi_1): Ditto.
14439 (*one_cmpl<mode>2_1): Ditto.
14440 (*one_cmplsi2_1_zext): Ditto.
14441 (*one_cmplqi2_1): Ditto.
14442 (define_peephole2): Move constant 0/-1 directly into mask
14444 * config/i386/predicates.md (mask_reg_operand): New predicate.
14445 * config/i386/sse.md (define_split): Add post-reload splitters
14446 that would convert "generic" patterns to mask patterns.
14447 (*knotsi_1_zext): New define_insn.
14449 2020-08-21 liuhongt <hongtao.liu@intel.com>
14451 * config/i386/x86-tune-costs.h (skylake_cost): Adjust cost
14454 2020-08-21 liuhongt <hongtao.liu@intel.com>
14456 * config/i386/i386.c (inline_secondary_memory_needed):
14457 No memory is needed between mask regs and gpr.
14458 (ix86_hard_regno_mode_ok): Add condition TARGET_AVX512F for
14460 * config/i386/i386.h (enum reg_class): Add INT_MASK_REGS.
14461 (REG_CLASS_NAMES): Ditto.
14462 (REG_CLASS_CONTENTS): Ditto.
14463 * config/i386/i386.md: Exclude mask register in
14464 define_peephole2 which is avaiable only for gpr.
14466 2020-08-21 H.J. Lu <hjl.tools@gmail.com>
14469 * config/i386/i386.h (struct processor_costs): Add member
14470 mask_to_integer, integer_to_mask, mask_load[3], mask_store[3],
14472 * config/i386/x86-tune-costs.h (ix86_size_cost, i386_cost,
14473 i386_cost, pentium_cost, lakemont_cost, pentiumpro_cost,
14474 geode_cost, k6_cost, athlon_cost, k8_cost, amdfam10_cost,
14475 bdver_cost, znver1_cost, znver2_cost, skylake_cost,
14476 btver1_cost, btver2_cost, pentium4_cost, nocona_cost,
14477 atom_cost, slm_cost, intel_cost, generic_cost, core_cost):
14478 Initialize mask_load[3], mask_store[3], mask_move,
14479 integer_to_mask, mask_to_integer for all target costs.
14480 * config/i386/i386.c (ix86_register_move_cost): Using cost
14481 model of mask registers.
14482 (inline_memory_move_cost): Ditto.
14483 (ix86_register_move_cost): Ditto.
14485 2020-08-20 Iain Buclaw <ibuclaw@gdcproject.org>
14487 * config/vxworks.h (VXWORKS_ADDITIONAL_CPP_SPEC): Don't include
14488 VxWorks header files if -fself-test is used.
14489 (STARTFILE_PREFIX_SPEC): Avoid using VSB_DIR if -fself-test is used.
14491 2020-08-20 Joe Ramsay <Joe.Ramsay@arm.com>
14494 * config/arm/mve.md (mve_vst1q_f<mode>): Require MVE memory operand for
14496 (mve_vst1q_<supf><mode>): Likewise.
14498 2020-08-19 2020-08-19 Carl Love <cel@us.ibm.com>
14500 * config/rs6000/rs6000-builtin.def (BU_P10V_0, BU_P10V_1,
14501 BU_P10V_2, BU_P10V_3): Rename BU_P10V_VSX_0, BU_P10V_VSX_1,
14502 BU_P10V_VSX_2, BU_P10V_VSX_3 respectively.
14503 (BU_P10V_4): Remove.
14504 (BU_P10V_AV_0, BU_P10V_AV_1, BU_P10V_AV_2, BU_P10V_AV_3, BU_P10V_AV_4):
14505 New definitions for Power 10 Altivec macros.
14506 (VSTRIBR, VSTRIHR, VSTRIBL, VSTRIHL, VSTRIBR_P, VSTRIHR_P,
14507 VSTRIBL_P, VSTRIHL_P, MTVSRBM, MTVSRHM, MTVSRWM, MTVSRDM, MTVSRQM,
14508 VEXPANDMB, VEXPANDMH, VEXPANDMW, VEXPANDMD, VEXPANDMQ, VEXTRACTMB,
14509 VEXTRACTMH, VEXTRACTMW, VEXTRACTMD, VEXTRACTMQ): Replace macro
14510 expansion BU_P10V_1 with BU_P10V_AV_1.
14511 (VCLRLB, VCLRRB, VCFUGED, VCLZDM, VCTZDM, VPDEPD, VPEXTD, VGNB,
14512 VCNTMBB, VCNTMBH, VCNTMBW, VCNTMBD): Replace macro expansion
14513 BU_P10V_2 with BU_P10V_AV_2.
14514 (VEXTRACTBL, VEXTRACTHL, VEXTRACTWL, VEXTRACTDL, VEXTRACTBR, VEXTRACTHR,
14515 VEXTRACTWR, VEXTRACTDR, VINSERTGPRBL, VINSERTGPRHL, VINSERTGPRWL,
14516 VINSERTGPRDL, VINSERTVPRBL, VINSERTVPRHL, VINSERTVPRWL, VINSERTGPRBR,
14517 VINSERTGPRHR, VINSERTGPRWR, VINSERTGPRDR, VINSERTVPRBR, VINSERTVPRHR,
14518 VINSERTVPRWR, VREPLACE_ELT_V4SI, VREPLACE_ELT_UV4SI, VREPLACE_ELT_V2DF,
14519 VREPLACE_ELT_V4SF, VREPLACE_ELT_V2DI, VREPLACE_ELT_UV2DI, VREPLACE_UN_V4SI,
14520 VREPLACE_UN_UV4SI, VREPLACE_UN_V4SF, VREPLACE_UN_V2DI, VREPLACE_UN_UV2DI,
14521 VREPLACE_UN_V2DF, VSLDB_V16QI, VSLDB_V8HI, VSLDB_V4SI, VSLDB_V2DI,
14522 VSRDB_V16QI, VSRDB_V8HI, VSRDB_V4SI, VSRDB_V2DI): Replace macro expansion
14523 BU_P10V_3 with BU_P10V_AV_3.
14524 (VXXSPLTIW_V4SI, VXXSPLTIW_V4SF, VXXSPLTID): Replace macro expansion
14525 BU_P10V_1 with BU_P10V_AV_1.
14526 (XXGENPCVM_V16QI, XXGENPCVM_V8HI, XXGENPCVM_V4SI, XXGENPCVM_V2DI):
14527 Replace macro expansion BU_P10V_2 with BU_P10V_VSX_2.
14528 (VXXSPLTI32DX_V4SI, VXXSPLTI32DX_V4SF, VXXBLEND_V16QI, VXXBLEND_V8HI,
14529 VXXBLEND_V4SI, VXXBLEND_V2DI, VXXBLEND_V4SF, VXXBLEND_V2DF): Replace macor
14530 expansion BU_P10V_3 with BU_P10V_VSX_3.
14531 (XXEVAL, VXXPERMX): Replace macro expansion BU_P10V_4 with BU_P10V_VSX_4.
14532 (XVCVBF16SP, XVCVSPBF16): Replace macro expansion BU_VSX_1 with
14533 BU_P10V_VSX_1. Also change MISC to CONST.
14534 * config/rs6000/rs6000-c.c: (P10_BUILTIN_VXXPERMX): Replace with
14535 P10V_BUILTIN_VXXPERMX.
14536 (P10_BUILTIN_VCLRLB, P10_BUILTIN_VCLRLB, P10_BUILTIN_VCLRRB,
14537 P10_BUILTIN_VGNB, P10_BUILTIN_XXEVAL, P10_BUILTIN_VXXPERMX,
14538 P10_BUILTIN_VEXTRACTBL, P10_BUILTIN_VEXTRACTHL, P10_BUILTIN_VEXTRACTWL,
14539 P10_BUILTIN_VEXTRACTDL, P10_BUILTIN_VINSERTGPRHL,
14540 P10_BUILTIN_VINSERTGPRWL, P10_BUILTIN_VINSERTGPRDL,
14541 P10_BUILTIN_VINSERTVPRBL, P10_BUILTIN_VINSERTVPRHL,
14542 P10_BUILTIN_VEXTRACTBR, P10_BUILTIN_VEXTRACTHR,
14543 P10_BUILTIN_VEXTRACTWR, P10_BUILTIN_VEXTRACTDR,
14544 P10_BUILTIN_VINSERTGPRBR, P10_BUILTIN_VINSERTGPRHR,
14545 P10_BUILTIN_VINSERTGPRWR, P10_BUILTIN_VINSERTGPRDR,
14546 P10_BUILTIN_VINSERTVPRBR, P10_BUILTIN_VINSERTVPRHR,
14547 P10_BUILTIN_VINSERTVPRWR, P10_BUILTIN_VREPLACE_ELT_UV4SI,
14548 P10_BUILTIN_VREPLACE_ELT_V4SI, P10_BUILTIN_VREPLACE_ELT_UV2DI,
14549 P10_BUILTIN_VREPLACE_ELT_V2DI, P10_BUILTIN_VREPLACE_ELT_V2DF,
14550 P10_BUILTIN_VREPLACE_UN_UV4SI, P10_BUILTIN_VREPLACE_UN_V4SI,
14551 P10_BUILTIN_VREPLACE_UN_V4SF, P10_BUILTIN_VREPLACE_UN_UV2DI,
14552 P10_BUILTIN_VREPLACE_UN_V2DI, P10_BUILTIN_VREPLACE_UN_V2DF,
14553 P10_BUILTIN_VSLDB_V16QI, P10_BUILTIN_VSLDB_V16QI,
14554 P10_BUILTIN_VSLDB_V8HI, P10_BUILTIN_VSLDB_V4SI,
14555 P10_BUILTIN_VSLDB_V2DI, P10_BUILTIN_VXXSPLTIW_V4SI,
14556 P10_BUILTIN_VXXSPLTIW_V4SF, P10_BUILTIN_VXXSPLTID,
14557 P10_BUILTIN_VXXSPLTI32DX_V4SI, P10_BUILTIN_VXXSPLTI32DX_V4SF,
14558 P10_BUILTIN_VXXBLEND_V16QI, P10_BUILTIN_VXXBLEND_V8HI,
14559 P10_BUILTIN_VXXBLEND_V4SI, P10_BUILTIN_VXXBLEND_V2DI,
14560 P10_BUILTIN_VXXBLEND_V4SF, P10_BUILTIN_VXXBLEND_V2DF,
14561 P10_BUILTIN_VSRDB_V16QI, P10_BUILTIN_VSRDB_V8HI,
14562 P10_BUILTIN_VSRDB_V4SI, P10_BUILTIN_VSRDB_V2DI,
14563 P10_BUILTIN_VSTRIBL, P10_BUILTIN_VSTRIHL,
14564 P10_BUILTIN_VSTRIBL_P, P10_BUILTIN_VSTRIHL_P,
14565 P10_BUILTIN_VSTRIBR, P10_BUILTIN_VSTRIHR,
14566 P10_BUILTIN_VSTRIBR_P, P10_BUILTIN_VSTRIHR_P,
14567 P10_BUILTIN_MTVSRBM, P10_BUILTIN_MTVSRHM,
14568 P10_BUILTIN_MTVSRWM, P10_BUILTIN_MTVSRDM,
14569 P10_BUILTIN_MTVSRQM, P10_BUILTIN_VCNTMBB,
14570 P10_BUILTIN_VCNTMBH, P10_BUILTIN_VCNTMBW,
14571 P10_BUILTIN_VCNTMBD, P10_BUILTIN_VEXPANDMB,
14572 P10_BUILTIN_VEXPANDMH, P10_BUILTIN_VEXPANDMW,
14573 P10_BUILTIN_VEXPANDMD, P10_BUILTIN_VEXPANDMQ,
14574 P10_BUILTIN_VEXTRACTMB, P10_BUILTIN_VEXTRACTMH,
14575 P10_BUILTIN_VEXTRACTMW, P10_BUILTIN_VEXTRACTMD,
14576 P10_BUILTIN_VEXTRACTMQ, P10_BUILTIN_XVTLSBB_ZEROS,
14577 P10_BUILTIN_XVTLSBB_ONES): Replace with
14578 P10V_BUILTIN_VCLRLB, P10V_BUILTIN_VCLRLB, P10V_BUILTIN_VCLRRB,
14579 P10V_BUILTIN_VGNB, P10V_BUILTIN_XXEVAL, P10V_BUILTIN_VXXPERMX,
14580 P10V_BUILTIN_VEXTRACTBL, P10V_BUILTIN_VEXTRACTHL, P10V_BUILTIN_VEXTRACTWL,
14581 P10V_BUILTIN_VEXTRACTDL, P10V_BUILTIN_VINSERTGPRHL,
14582 P10V_BUILTIN_VINSERTGPRWL, P10V_BUILTIN_VINSERTGPRDL,
14583 P10V_BUILTIN_VINSERTVPRBL,P10V_BUILTIN_VINSERTVPRHL,
14584 P10V_BUILTIN_VEXTRACTBR, P10V_BUILTIN_VEXTRACTHR
14585 P10V_BUILTIN_VEXTRACTWR, P10V_BUILTIN_VEXTRACTDR,
14586 P10V_BUILTIN_VINSERTGPRBR, P10V_BUILTIN_VINSERTGPRHR,
14587 P10V_BUILTIN_VINSERTGPRWR, P10V_BUILTIN_VINSERTGPRDR,
14588 P10V_BUILTIN_VINSERTVPRBR, P10V_BUILTIN_VINSERTVPRHR,
14589 P10V_BUILTIN_VINSERTVPRWR, P10V_BUILTIN_VREPLACE_ELT_UV4SI,
14590 P10V_BUILTIN_VREPLACE_ELT_V4SI, P10V_BUILTIN_VREPLACE_ELT_UV2DI,
14591 P10V_BUILTIN_VREPLACE_ELT_V2DI, P10V_BUILTIN_VREPLACE_ELT_V2DF,
14592 P10V_BUILTIN_VREPLACE_UN_UV4SI, P10V_BUILTIN_VREPLACE_UN_V4SI,
14593 P10V_BUILTIN_VREPLACE_UN_V4SF, P10V_BUILTIN_VREPLACE_UN_UV2DI,
14594 P10V_BUILTIN_VREPLACE_UN_V2DI, P10V_BUILTIN_VREPLACE_UN_V2DF,
14595 P10V_BUILTIN_VSLDB_V16QI, P10V_BUILTIN_VSLDB_V16QI,
14596 P10V_BUILTIN_VSLDB_V8HI, P10V_BUILTIN_VSLDB_V4SI,
14597 P10V_BUILTIN_VSLDB_V2DI, P10V_BUILTIN_VXXSPLTIW_V4SI,
14598 P10V_BUILTIN_VXXSPLTIW_V4SF, P10V_BUILTIN_VXXSPLTID,
14599 P10V_BUILTIN_VXXSPLTI32DX_V4SI, P10V_BUILTIN_VXXSPLTI32DX_V4SF,
14600 P10V_BUILTIN_VXXBLEND_V16QI, P10V_BUILTIN_VXXBLEND_V8HI,
14601 P10V_BUILTIN_VXXBLEND_V4SI, P10V_BUILTIN_VXXBLEND_V2DI,
14602 P10V_BUILTIN_VXXBLEND_V4SF, P10V_BUILTIN_VXXBLEND_V2DF,
14603 P10V_BUILTIN_VSRDB_V16QI, P10V_BUILTIN_VSRDB_V8HI,
14604 P10V_BUILTIN_VSRDB_V4SI, P10V_BUILTIN_VSRDB_V2DI,
14605 P10V_BUILTIN_VSTRIBL, P10V_BUILTIN_VSTRIHL,
14606 P10V_BUILTIN_VSTRIBL_P, P10V_BUILTIN_VSTRIHL_P,
14607 P10V_BUILTIN_VSTRIBR, P10V_BUILTIN_VSTRIHR,
14608 P10V_BUILTIN_VSTRIBR_P, P10V_BUILTIN_VSTRIHR_P,
14609 P10V_BUILTIN_MTVSRBM, P10V_BUILTIN_MTVSRHM,
14610 P10V_BUILTIN_MTVSRWM, P10V_BUILTIN_MTVSRDM,
14611 P10V_BUILTIN_MTVSRQM, P10V_BUILTIN_VCNTMBB,
14612 P10V_BUILTIN_VCNTMBH, P10V_BUILTIN_VCNTMBW,
14613 P10V_BUILTIN_VCNTMBD, P10V_BUILTIN_VEXPANDMB,
14614 P10V_BUILTIN_VEXPANDMH, P10V_BUILTIN_VEXPANDMW,
14615 P10V_BUILTIN_VEXPANDMD, P10V_BUILTIN_VEXPANDMQ,
14616 P10V_BUILTIN_VEXTRACTMB, P10V_BUILTIN_VEXTRACTMH,
14617 P10V_BUILTIN_VEXTRACTMW, P10V_BUILTIN_VEXTRACTMD,
14618 P10V_BUILTIN_VEXTRACTMQ, P10V_BUILTIN_XVTLSBB_ZEROS,
14619 P10V_BUILTIN_XVTLSBB_ONES respectively.
14620 * config/rs6000/rs6000-call.c: Ditto above, change P10_BUILTIN_name to
14622 (P10_BUILTIN_XVCVSPBF16, P10_BUILTIN_XVCVBF16SP): Change to
14623 P10V_BUILTIN_XVCVSPBF16, P10V_BUILTIN_XVCVBF16SP respectively.
14625 2020-08-19 Bill Schmidt <wschmidt@linux.ibm.com>
14627 * config/rs6000/rs6000-logue.c (rs6000_decl_ok_for_sibcall):
14628 Sibcalls are always legal when the caller doesn't preserve r2.
14630 2020-08-19 Uroš Bizjak <ubizjak@gmail.com>
14632 * config/i386/i386-expand.c (ix86_expand_builtin)
14633 [case IX86_BUILTIN_ENQCMD, case IX86_BUILTIN_ENQCMDS]:
14634 Rewrite expansion to use code_for_enqcmd.
14635 [case IX86_BUILTIN_WRSSD, case IX86_BUILTIN_WRSSQ]:
14636 Rewrite expansion to use code_for_wrss.
14637 [case IX86_BUILTIN_WRUSSD, case IX86_BUILTIN_WRUSSD]:
14638 Rewrite expansion to use code_for_wrss.
14640 2020-08-19 Feng Xue <fxue@os.amperecomputing.com>
14642 PR tree-optimization/94234
14643 * match.pd ((PTR_A + OFF) - (PTR_B + OFF)) -> (PTR_A - PTR_B): New
14646 2020-08-19 H.J. Lu <hjl.tools@gmail.com>
14648 * common/config/i386/cpuinfo.h (get_intel_cpu): Detect Rocket
14649 Lake and Alder Lake.
14651 2020-08-19 Peixin Qiao <qiaopeixin@huawei.com>
14653 * config/aarch64/aarch64.c (aarch64_init_cumulative_args): Remove
14654 "fndecl && TREE_PUBLIC (fndecl)" check since it prevents the funtion
14655 type check when calling via a function pointer or when calling a static
14658 2020-08-19 Kewen Lin <linkw@linux.ibm.com>
14660 * opts-global.c (decode_options): Call target_option_override_hook
14661 before it prints for --help=*.
14663 2020-08-18 Peter Bergner <bergner@linux.ibm.com>
14665 * config/rs6000/rs6000-builtin.def (BU_VSX_1): Rename xvcvbf16sp to
14667 * config/rs6000/rs6000-call.c (builtin_function_type): Likewise.
14668 * config/rs6000/vsx.md: Likewise.
14669 * doc/extend.texi: Likewise.
14671 2020-08-18 Aaron Sawdey <acsawdey@linux.ibm.com>
14673 * config/rs6000/rs6000-string.c (gen_lxvl_stxvl_move):
14675 (expand_block_move): Add lxvl/stxvl, vector pair, and
14677 * config/rs6000/rs6000.c (rs6000_option_override_internal):
14678 Default value for -mblock-ops-vector-pair.
14679 * config/rs6000/rs6000.opt: Add -mblock-ops-vector-pair.
14681 2020-08-18 Aldy Hernandez <aldyh@redhat.com>
14683 * vr-values.c (check_for_binary_op_overflow): Change type of store
14685 (vr_values::adjust_range_with_scev): Abstract most of the code...
14686 (range_of_var_in_loop): ...here. Remove value_range_equiv uses.
14687 (simplify_using_ranges::simplify_using_ranges): Change type of store
14689 * vr-values.h (class range_query): New.
14690 (class simplify_using_ranges): Use range_query.
14691 (class vr_values): Add OVERRIDE to get_value_range.
14692 (range_of_var_in_loop): New.
14694 2020-08-18 Martin Sebor <msebor@redhat.com>
14696 PR middle-end/96665
14697 PR middle-end/78257
14698 * expr.c (convert_to_bytes): Replace statically allocated buffer with
14699 a dynamically allocated one of sufficient size.
14701 2020-08-18 Martin Sebor <msebor@redhat.com>
14703 PR tree-optimization/96670
14704 PR middle-end/78257
14705 * gimple-fold.c (gimple_fold_builtin_memchr): Call byte_representation
14706 to get it, not string_constant.
14708 2020-08-18 Hu Jiangping <hujiangping@cn.fujitsu.com>
14710 * doc/gimple.texi (gimple_debug_begin_stmt_p): Add return type.
14711 (gimple_debug_inline_entry_p, gimple_debug_nonbind_marker_p): Likewise.
14713 2020-08-18 Martin Sebor <msebor@redhat.com>
14715 * fold-const.c (native_encode_expr): Update comment.
14717 2020-08-18 Uroš Bizjak <ubizjak@gmail.com>
14720 * config/i386/i386.md (restore_stack_nonlocal): Add missing compare
14721 RTX. Rewrite expander to use high-level functions in RTL construction.
14723 2020-08-18 liuhongt <hongtao.liu@intel.com>
14727 * config/i386/i386-expand.c (ix86_expand_pinsr): Don't use
14729 (ix86_expand_pextr): Don't use pextr for TImode.
14731 2020-08-17 Uroš Bizjak <ubizjak@gmail.com>
14733 * config/i386/i386-builtin.def (__builtin_ia32_bextri_u32)
14734 (__builtin_ia32_bextri_u64): Use CODE_FOR_nothing.
14735 * config/i386/i386.md (@tbm_bextri_<mode>):
14736 Implement as parametrized name pattern.
14737 (@rdrand<mode>): Ditto.
14738 (@rdseed<mode>): Ditto.
14739 * config/i386/i386-expand.c (ix86_expand_builtin)
14740 [case IX86_BUILTIN_BEXTRI32, case IX86_BUILTIN_BEXTRI64]:
14741 Update for parameterized name patterns.
14742 [case IX86_BUILTIN_RDRAND16_STEP, case IX86_BUILTIN_RDRAND32_STEP]
14743 [case IX86_BUILTIN_RDRAND64_STEP]: Ditto.
14744 [case IX86_BUILTIN_RDSEED16_STEP, case IX86_BUILTIN_RDSEED32_STEP]
14745 [case IX86_BUILTIN_RDSEED64_STEP]: Ditto.
14747 2020-08-17 Aldy Hernandez <aldyh@redhat.com>
14749 * vr-values.c (vr_values::get_value_range): Add stmt param.
14750 (vr_values::extract_range_from_comparison): Same.
14751 (vr_values::extract_range_from_assignment): Pass stmt to
14752 extract_range_from_comparison.
14753 (vr_values::adjust_range_with_scev): Pass stmt to get_value_range.
14754 (simplify_using_ranges::vrp_evaluate_conditional): Add stmt param.
14755 Pass stmt to get_value_range.
14756 (simplify_using_ranges::vrp_visit_cond_stmt): Pass stmt to
14758 (simplify_using_ranges::simplify_abs_using_ranges): Same.
14759 (simplify_using_ranges::simplify_div_or_mod_using_ranges): Same.
14760 (simplify_using_ranges::simplify_bit_ops_using_ranges): Same.
14761 (simplify_using_ranges::simplify_cond_using_ranges_1): Same.
14762 (simplify_using_ranges::simplify_switch_using_ranges): Same.
14763 (simplify_using_ranges::simplify_float_conversion_using_ranges): Same.
14764 * vr-values.h (class vr_values): Add stmt arg to
14765 vrp_evaluate_conditional_warnv_with_ops.
14766 Add stmt arg to extract_range_from_comparison and get_value_range.
14767 (simplify_using_ranges::get_value_range): Add stmt arg.
14769 2020-08-17 liuhongt <hongtao.liu@intel.com>
14772 * config/i386/i386.c (ix86_legitimate_constant_p): Return
14773 false for ENDBR immediate.
14774 (ix86_legitimate_address_p): Ditto.
14775 * config/i386/predicates.md
14776 (x86_64_immediate_operand): Exclude ENDBR immediate.
14777 (x86_64_zext_immediate_operand): Ditto.
14778 (x86_64_dwzext_immediate_operand): Ditto.
14779 (ix86_endbr_immediate_operand): New predicate.
14781 2020-08-16 Roger Sayle <roger@nextmovesoftware.com>
14783 * simplify-rtx.c (simplify_unary_operation_1) [SIGN_EXTEND]:
14784 Simplify (sign_extend:M (truncate:N (lshiftrt:M x C))) to
14785 (ashiftrt:M x C) when the shift sets the high bits appropriately.
14787 2020-08-14 Martin Sebor <msebor@redhat.com>
14789 PR middle-end/78257
14790 * builtins.c (expand_builtin_memory_copy_args): Rename called function.
14791 (expand_builtin_stpcpy_1): Remove argument from call.
14792 (expand_builtin_memcmp): Rename called function.
14793 (inline_expand_builtin_bytecmp): Same.
14794 * expr.c (convert_to_bytes): New function.
14795 (constant_byte_string): New function (formerly string_constant).
14796 (string_constant): Call constant_byte_string.
14797 (byte_representation): New function.
14798 * expr.h (byte_representation): Declare.
14799 * fold-const-call.c (fold_const_call): Rename called function.
14800 * fold-const.c (c_getstr): Remove an argument.
14801 (getbyterep): Define a new function.
14802 * fold-const.h (c_getstr): Remove an argument.
14803 (getbyterep): Declare a new function.
14804 * gimple-fold.c (gimple_fold_builtin_memory_op): Rename callee.
14805 (gimple_fold_builtin_string_compare): Same.
14806 (gimple_fold_builtin_memchr): Same.
14808 2020-08-14 David Malcolm <dmalcolm@redhat.com>
14810 * doc/analyzer.texi (Overview): Add tip about how to get a
14811 gimple dump if the analyzer ICEs.
14813 2020-08-14 Uroš Bizjak <ubizjak@gmail.com>
14815 * config/i386/i386-builtin.def (__builtin_ia32_llwpcb)
14816 (__builtin_ia32_slwpcb, __builtin_ia32_lwpval32)
14817 (__builtin_ia32_lwpval64, __builtin_ia32_lwpins32)
14818 (__builtin_ia32_lwpins64): Use CODE_FOR_nothing.
14819 * config/i386/i386.md (@lwp_llwpcb<mode>):
14820 Implement as parametrized name pattern.
14821 (@lwp_slwpcb<mode>): Ditto.
14822 (@lwp_lwpval<mode>): Ditto.
14823 (@lwp_lwpins<mode>): Ditto.
14824 * config/i386/i386-expand.c (ix86_expand_special_args_builtin)
14825 [case VOID_FTYPE_UINT_UINT_UINT, case VOID_FTYPE_UINT64_UINT_UINT]
14826 [case UCHAR_FTYPE_UINT_UINT_UINT, case UCHAR_FTYPE_UINT64_UINT_UINT]:
14828 (ix86_expand_builtin)
14829 [ case IX86_BUILTIN_LLWPCB, case IX86_BUILTIN_LLWPCB]:
14830 Update for parameterized name patterns.
14831 [case IX86_BUILTIN_LWPVAL32, case IX86_BUILTIN_LWPVAL64]
14832 [case IX86_BUILTIN_LWPINS32, case IX86_BUILTIN_LWPINS64]: Expand here.
14834 2020-08-14 Lewis Hyatt <lhyatt@gmail.com>
14836 * common.opt: Add new option -fdiagnostics-plain-output.
14837 * doc/invoke.texi: Document it.
14838 * opts-common.c (decode_cmdline_options_to_array): Implement it.
14839 (decode_cmdline_option): Add missing const qualifier to argv.
14841 2020-08-14 Jakub Jelinek <jakub@redhat.com>
14842 Jonathan Wakely <jwakely@redhat.com>
14843 Jonathan Wakely <jwakely@redhat.com>
14845 * system.h: Include type_traits.
14846 * vec.h (vec<T, A, vl_embed>::embedded_size): Use offsetof and asserts
14847 on vec_stdlayout, which is conditionally a vec (for standard layout T)
14848 and otherwise vec_embedded.
14850 2020-08-14 Jojo R <jiejie_rong@c-sky.com>
14852 * config/csky/csky-elf.h (ASM_SPEC): Use mfloat-abi.
14853 * config/csky/csky-linux-elf.h (ASM_SPEC): mfloat-abi.
14855 2020-08-13 David Malcolm <dmalcolm@redhat.com>
14871 * Makefile.in (ANALYZER_OBJS): Add analyzer/region.o,
14872 analyzer/region-model-impl-calls.o,
14873 analyzer/region-model-manager.o,
14874 analyzer/region-model-reachability.o, analyzer/store.o, and
14876 * doc/analyzer.texi: Update for changes to analyzer
14878 * tristate.h (tristate::get_value): New accessor.
14880 2020-08-13 Uroš Bizjak <ubizjak@gmail.com>
14882 * config/i386/i386-builtin.def (CET_NORMAL): Merge to CET BDESC array.
14883 (__builtin_ia32_rddspd, __builtin_ia32_rddspq, __builtin_ia32_incsspd)
14884 (__builtin_ia32_incsspq, __builtin_ia32_wrssd, __builtin_ia32_wrssq)
14885 (__builtin_ia32_wrussd, __builtin_ia32_wrussq): Use CODE_FOR_nothing.
14886 * config/i386/i386-builtins.c: Remove handling of CET_NORMAL builtins.
14887 * config/i386/i386.md (@rdssp<mode>): Implement as parametrized
14888 name pattern. Use SWI48 mode iterator. Introduce input operand
14889 and remove explicit XOR zeroing from insn template.
14890 (@incssp<mode>): Implement as parametrized name pattern.
14891 Use SWI48 mode iterator.
14892 (@wrss<mode>): Ditto.
14893 (@wruss<mode>): Ditto.
14894 (rstorssp): Remove expander. Rename insn pattern from *rstorssp<mode>.
14895 Use DImode memory operand.
14896 (clrssbsy): Remove expander. Rename insn pattern from *clrssbsy<mode>.
14897 Use DImode memory operand.
14898 (save_stack_nonlocal): Update for parametrized name patterns.
14899 Use cleared register as an argument to gen_rddsp.
14900 (restore_stack_nonlocal): Update for parametrized name patterns.
14901 * config/i386/i386-expand.c (ix86_expand_builtin):
14902 [case IX86_BUILTIN_RDSSPD, case IX86_BUILTIN_RDSSPQ]: Expand here.
14903 [case IX86_BUILTIN_INCSSPD, case IX86_BUILTIN_INCSSPQ]: Ditto.
14904 [case IX86_BUILTIN_RSTORSSP, case IX86_BUILTIN_CLRSSBSY]:
14905 Generate DImode memory operand.
14906 [case IX86_BUILTIN_WRSSD, case IX86_BUILTIN_WRSSQ]
14907 [case IX86_BUILTIN_WRUSSD, case IX86_BUILTIN_WRUSSD]:
14908 Update for parameterized name patterns.
14910 2020-08-13 Peter Bergner <bergner@linux.ibm.com>
14913 * config/rs6000/rs6000-call.c (rs6000_promote_function_mode): Disallow
14914 MMA types as return values.
14915 (rs6000_function_arg): Disallow MMA types as function arguments.
14917 2020-08-13 Richard Sandiford <richard.sandiford@arm.com>
14920 2020-08-12 Peixin Qiao <qiaopeixin@huawei.com>
14922 * config/aarch64/aarch64.c (aarch64_function_value): Add if
14923 condition to check ag_mode after entering if condition of
14924 aarch64_vfp_is_call_or_return_candidate. If TARGET_FLOAT is
14925 set as false by -mgeneral-regs-only, report the diagnostic
14926 information of -mgeneral-regs-only imcompatible with the use
14927 of fp/simd register(s).
14929 2020-08-13 Martin Liska <mliska@suse.cz>
14932 * ipa-cp.c (ipcp_bits_lattice::meet_with_1): Mask m_value
14935 2020-08-13 Jakub Jelinek <jakub@redhat.com>
14937 * gimplify.c (gimplify_omp_taskloop_expr): New function.
14938 (gimplify_omp_for): Use it. For OMP_FOR_NON_RECTANGULAR
14939 loops adjust in outer taskloop the var-outer decls.
14940 * omp-expand.c (expand_omp_taskloop_for_inner): Handle non-rectangular
14942 (expand_omp_for): Don't reject non-rectangular taskloop.
14943 * omp-general.c (omp_extract_for_data): Don't assert that
14944 non-rectangular loops have static schedule, instead treat loop->m1
14945 or loop->m2 as if loop->n1 or loop->n2 is non-constant.
14947 2020-08-13 Hongtao Liu <hongtao.liu@intel.com>
14950 * config/i386/sse.md (<avx512>_load<mode>_mask,
14951 <avx512>_load<mode>_mask): Extend to generate blendm
14953 (<avx512>_blendm<mode>, <avx512>_blendm<mode>): Change
14954 define_insn to define_expand.
14956 2020-08-12 Roger Sayle <roger@nextmovesoftware.com>
14957 Uroš Bizjak <ubizjak@gmail.com>
14960 * config/i386/i386.md (peephole2): Only reorder register clearing
14961 instructions to allow use of xor for general registers.
14963 2020-08-12 Martin Liska <mliska@suse.cz>
14966 * ipa-cp.c (ipcp_bits_lattice::meet_with_1): Drop value bits
14967 for bits that are unknown.
14968 (ipcp_bits_lattice::set_to_constant): Likewise.
14969 * tree-ssa-ccp.c (get_default_value): Add sanity check that
14970 IPA CP bit info has all bits set to zero in bits that
14973 2020-08-12 Peixin Qiao <qiaopeixin@huawei.com>
14975 * config/aarch64/aarch64.c (aarch64_function_value): Add if
14976 condition to check ag_mode after entering if condition of
14977 aarch64_vfp_is_call_or_return_candidate. If TARGET_FLOAT is
14978 set as false by -mgeneral-regs-only, report the diagnostic
14979 information of -mgeneral-regs-only imcompatible with the use
14980 of fp/simd register(s).
14982 2020-08-12 Jakub Jelinek <jakub@redhat.com>
14984 PR tree-optimization/96535
14985 * toplev.c (process_options): Move flag_unroll_loops and
14986 flag_cunroll_grow_size handling from here to ...
14987 * opts.c (finish_options): ... here. For flag_cunroll_grow_size,
14988 don't check for AUTODETECT_VALUE, but instead check
14989 opts_set->x_flag_cunroll_grow_size.
14990 * common.opt (funroll-completely-grow-size): Default to 0.
14991 * config/rs6000/rs6000.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
14993 (rs6000_override_options_after_change): New function.
14994 (rs6000_option_override_internal): Call it. Move there the
14995 flag_cunroll_grow_size, unroll_only_small_loops and
14996 flag_rename_registers handling.
14998 2020-08-12 Tom de Vries <tdevries@suse.de>
15000 * config/nvptx/nvptx.c (nvptx_assemble_decl_begin): Make elt_size an
15001 unsigned HOST_WIDE_INT. Print init_frag.remaining using
15002 HOST_WIDE_INT_PRINT_UNSIGNED.
15004 2020-08-12 Roger Sayle <roger@nextmovesoftware.com>
15005 Uroš Bizjak <ubizjak@gmail.com>
15007 * config/i386/i386.md (peephole2): Reduce unnecessary
15008 register shuffling produced by register allocation.
15010 2020-08-12 Aldy Hernandez <aldyh@redhat.com>
15012 * ipa-fnsummary.c (evaluate_conditions_for_known_args): Use vec<>
15013 instead of std::vector<>.
15014 (evaluate_properties_for_edge): Same.
15015 (ipa_fn_summary_t::duplicate): Same.
15016 (estimate_ipcp_clone_size_and_time): Same.
15017 * vec.h (<T, A, vl_embed>::embedded_size): Change vec_embedded
15018 type to contain a char[].
15020 2020-08-12 Andreas Krebbel <krebbel@linux.ibm.com>
15023 * config/s390/s390.c (s390_cannot_force_const_mem): Reject an
15024 unary minus for everything not being a numeric constant.
15025 (legitimize_tls_address): Move a NEG out of the CONST rtx.
15027 2020-08-12 Andreas Krebbel <krebbel@linux.ibm.com>
15030 * config/s390/s390.h (TARGET_NONSIGNALING_VECTOR_COMPARE_OK): New
15032 * config/s390/vector.md (vcond_comparison_operator): Use new macro
15035 2020-08-11 Jakub Jelinek <jakub@redhat.com>
15037 PR rtl-optimization/96539
15038 * expr.c (emit_block_move_hints): Don't copy anything if x and y
15039 are the same and neither is MEM_VOLATILE_P.
15041 2020-08-11 Jakub Jelinek <jakub@redhat.com>
15044 * tree.c (get_narrower): Use TREE_TYPE (ret) instead of
15045 TREE_TYPE (win) for COMPOUND_EXPRs.
15047 2020-08-11 Jan Hubicka <hubicka@ucw.cz>
15049 * predict.c (not_loop_guard_equal_edge_p): New function.
15050 (maybe_predict_edge): New function.
15051 (predict_paths_for_bb): Use it.
15052 (predict_paths_leading_to_edge): Use it.
15054 2020-08-11 Martin Liska <mliska@suse.cz>
15056 * dbgcnt.def (DEBUG_COUNTER): Add ipa_cp_bits.
15057 * ipa-cp.c (ipcp_store_bits_results): Use it when we store known
15058 bits for parameters.
15060 2020-08-10 Marek Polacek <polacek@redhat.com>
15062 * doc/sourcebuild.texi: Document dg-ice.
15064 2020-08-10 Roger Sayle <roger@nextmovesoftware.com>
15066 * config/i386/i386-expand.c (ix86_expand_int_movcc): Expand
15067 signed MIN_EXPR against zero as "x < 0 ? x : 0" instead of
15068 "x <= 0 ? x : 0" to enable sign_bit_compare_p optimizations.
15070 2020-08-10 Aldy Hernandez <aldyh@redhat.com>
15072 * value-range.h (gt_ggc_mx): Declare inline.
15075 2020-08-10 Marc Glisse <marc.glisse@inria.fr>
15077 PR tree-optimization/95433
15078 * match.pd (X * C1 == C2): Handle wrapping overflow.
15079 * expr.c (maybe_optimize_mod_cmp): Qualify call to mod_inv.
15081 * wide-int.cc (mod_inv): ... here.
15082 * wide-int.h (mod_inv): Declare it.
15084 2020-08-10 Jan Hubicka <hubicka@ucw.cz>
15086 * predict.c (filter_predictions): Document semantics of filter.
15087 (equal_edge_p): Rename to ...
15088 (not_equal_edge_p): ... this; reverse semantics.
15089 (remove_predictions_associated_with_edge): Fix.
15091 2020-08-10 Hongtao Liu <hongtao.liu@intel.com>
15094 * config/i386/i386-expand.c (ix86_expand_sse_cmp): Refine for
15096 (ix86_expand_mask_vec_cmp): Change prototype.
15097 * config/i386/i386-protos.h (ix86_expand_mask_vec_cmp): Change prototype.
15098 * config/i386/i386.c (ix86_print_operand): Remove operand
15100 * config/i386/sse.md
15101 (*<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>): Deleted.
15102 (*<avx512>_cmp<mode>3<mask_scalar_merge_name>): Ditto.
15103 (*<avx512>_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
15104 (*<avx512>_ucmp<mode>3<mask_scalar_merge_name>,
15105 avx512f_maskcmp<mode>3): Ditto.
15107 2020-08-09 Roger Sayle <roger@nextmovesoftware.com>
15109 * expmed.c (init_expmed_one_conv): Restore all->reg's mode.
15110 (init_expmed_one_mode): Set all->reg to desired mode.
15112 2020-08-08 Peter Bergner <bergner@linux.ibm.com>
15115 * config/rs6000/rs6000.c (rs6000_invalid_conversion): Use canonical
15116 types for type comparisons. Refactor code to simplify it.
15118 2020-08-08 Jakub Jelinek <jakub@redhat.com>
15121 * tree-nested.c (convert_nonlocal_omp_clauses): For
15122 OMP_CLAUSE_REDUCTION, OMP_CLAUSE_LASTPRIVATE and OMP_CLAUSE_LINEAR
15123 save info->new_local_var_chain around walks of the clause gimple
15124 sequences and declare_vars if needed into the sequence.
15126 2020-08-08 Jakub Jelinek <jakub@redhat.com>
15128 PR tree-optimization/96424
15129 * omp-expand.c: Include tree-eh.h.
15130 (expand_omp_for_init_vars): Handle -fexceptions -fnon-call-exceptions
15131 by forcing floating point comparison into a bool temporary.
15133 2020-08-07 Marc Glisse <marc.glisse@inria.fr>
15135 * generic-match-head.c (optimize_vectors_before_lowering_p): New
15137 * gimple-match-head.c (optimize_vectors_before_lowering_p):
15139 * match.pd ((v ? w : 0) ? a : b, c1 ? c2 ? a : b : b): Use it.
15141 2020-08-07 Richard Biener <rguenther@suse.de>
15143 PR tree-optimization/96514
15144 * tree-if-conv.c (if_convertible_bb_p): If the last stmt
15145 is a call that is control-altering, fail.
15147 2020-08-07 Jose E. Marchesi <jose.marchesi@oracle.com>
15149 * config/bpf/bpf.md: Remove trailing whitespaces.
15150 * config/bpf/constraints.md: Likewise.
15151 * config/bpf/predicates.md: Likewise.
15153 2020-08-07 Michael Meissner <meissner@linux.ibm.com>
15155 * config/rs6000/rs6000.md (bswaphi2_reg): Add ISA 3.1 support.
15156 (bswapsi2_reg): Add ISA 3.1 support.
15157 (bswapdi2): Rename bswapdi2_xxbrd to bswapdi2_brd.
15158 (bswapdi2_brd,bswapdi2_xxbrd): Rename. Add ISA 3.1 support.
15160 2020-08-07 Alan Modra <amodra@gmail.com>
15163 * config/rs6000/predicates.md (current_file_function_operand): Don't
15164 accept functions that differ in r2 usage.
15166 2020-08-06 Hans-Peter Nilsson <hp@bitrange.com>
15168 * config/mmix/mmix.md (MM): New mode_iterator.
15169 ("mov<mode>"): New expander to expand for all MM-modes.
15170 ("*movqi_expanded", "*movhi_expanded", "*movsi_expanded")
15171 ("*movsf_expanded", "*movdf_expanded"): Rename from the
15172 corresponding mov<M> named pattern. Add to the condition that
15173 either operand must be a register_operand.
15174 ("*movdi_expanded"): Similar, but also allow STCO in the condition.
15176 2020-08-06 Richard Sandiford <richard.sandiford@arm.com>
15179 * config/arm/arm.md (arm_stack_protect_test_insn): Zero out
15180 operand 2 after use.
15181 * config/arm/thumb1.md (thumb1_stack_protect_test_insn): Likewise.
15183 2020-08-06 Peter Bergner <bergner@linux.ibm.com>
15186 * config/rs6000/mma.md (*movpxi): Add xxsetaccz generation.
15187 Disable split for zero constant source operand.
15188 (mma_xxsetaccz): Change to define_expand. Call gen_movpxi.
15190 2020-08-06 Jakub Jelinek <jakub@redhat.com>
15192 PR tree-optimization/96480
15193 * tree-ssa-reassoc.c (suitable_cond_bb): Add TEST_SWAPPED_P argument.
15194 If TEST_BB ends in cond and has one edge to *OTHER_BB and another
15195 through an empty bb to that block too, if PHI args don't match, retry
15196 them through the other path from TEST_BB.
15197 (maybe_optimize_range_tests): Adjust callers. Handle such LAST_BB
15198 through inversion of the condition.
15200 2020-08-06 Jose E. Marchesi <jose.marchesi@oracle.com>
15202 * config/bpf/bpf-helpers.h (KERNEL_HELPER): Define.
15203 (KERNEL_VERSION): Remove.
15204 * config/bpf/bpf-helpers.def: Delete.
15205 * config/bpf/bpf.c (bpf_handle_fndecl_attribute): New function.
15206 (bpf_attribute_table): Define.
15207 (bpf_helper_names): Delete.
15208 (bpf_helper_code): Likewise.
15209 (enum bpf_builtins): Adjust to new helpers mechanism.
15210 (bpf_output_call): Likewise.
15211 (bpf_init_builtins): Likewise.
15212 (bpf_init_builtins): Likewise.
15213 * doc/extend.texi (BPF Function Attributes): New section.
15214 (BPF Kernel Helpers): Delete section.
15216 2020-08-06 Richard Biener <rguenther@suse.de>
15218 PR tree-optimization/96491
15219 * tree-ssa-sink.c (sink_common_stores_to_bb): Avoid
15220 sinking across abnormal edges.
15222 2020-08-06 Richard Biener <rguenther@suse.de>
15224 PR tree-optimization/96483
15225 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
15228 2020-08-06 Richard Biener <rguenther@suse.de>
15230 * graphite-isl-ast-to-gimple.c (ivs_params): Use hash_map instead
15232 (ivs_params_clear): Adjust.
15233 (gcc_expression_from_isl_ast_expr_id): Likewise.
15234 (graphite_create_new_loop): Likewise.
15235 (add_parameters_to_ivs_params): Likewise.
15237 2020-08-06 Roger Sayle <roger@nextmovesoftware.com>
15238 Uroš Bizjak <ubizjak@gmail.com>
15240 * config/i386/i386.md (MAXMIN_IMODE): No longer needed.
15241 (<maxmin><mode>3): Support SWI248 and general_operand for
15242 second operand, when TARGET_CMOVE.
15243 (<maxmin><mode>3_1 splitter): Optimize comparisons against
15244 0, 1 and -1 to use "test" instead of "cmp".
15245 (*<maxmin>di3_doubleword): Likewise, allow general_operand
15246 and enable on TARGET_CMOVE.
15247 (peephole2): Convert clearing a register after a flag setting
15248 instruction into an xor followed by the original flag setter.
15250 2020-08-06 Gerald Pfeifer <gerald@pfeifer.com>
15252 * ipa-fnsummary.c (INCLUDE_VECTOR): Define.
15253 Remove direct inclusion of <vector>.
15255 2020-08-06 Kewen Lin <linkw@gcc.gnu.org>
15257 * config/rs6000/rs6000.c (rs6000_adjust_vect_cost_per_loop): New
15259 (rs6000_finish_cost): Call rs6000_adjust_vect_cost_per_loop.
15260 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Add cost
15261 modeling for vector with length.
15262 (vect_rgroup_iv_might_wrap_p): New function, factored out from...
15263 * tree-vect-loop-manip.c (vect_set_loop_controls_directly): ...this.
15264 Update function comment.
15265 * tree-vect-stmts.c (vect_gen_len): Update function comment.
15266 * tree-vectorizer.h (vect_rgroup_iv_might_wrap_p): New declare.
15268 2020-08-06 Kewen Lin <linkw@linux.ibm.com>
15270 * tree-vectorizer.c (try_vectorize_loop_1): Skip the epilogue loops
15273 2020-08-05 Marc Glisse <marc.glisse@inria.fr>
15275 PR tree-optimization/95906
15277 * match.pd ((c ? a : b) op d, (c ? a : b) op (c ? d : e),
15278 (v ? w : 0) ? a : b, c1 ? c2 ? a : b : b): New transformations.
15279 (op (c ? a : b)): Update to match the new transformations.
15281 2020-08-05 Richard Sandiford <richard.sandiford@arm.com>
15284 * config/aarch64/aarch64.md (stack_protect_test_<mode>): Set the
15285 CC register directly, instead of a GPR. Replace the original GPR
15286 destination with an extra scratch register. Zero out operand 3
15288 (stack_protect_test): Update accordingly.
15290 2020-08-05 Richard Sandiford <richard.sandiford@arm.com>
15292 * config/aarch64/aarch64.md (load_pair_sw_<SX:mode><SX2:mode>)
15293 (load_pair_dw_<DX:mode><DX2:mode>, load_pair_dw_tftf)
15294 (store_pair_sw_<SX:mode><SX2:mode>)
15295 (store_pair_dw_<DX:mode><DX2:mode>, store_pair_dw_tftf)
15296 (*load_pair_extendsidi2_aarch64)
15297 (*load_pair_zero_extendsidi2_aarch64): Use %z for the memory operand.
15298 * config/aarch64/aarch64-simd.md (load_pair<DREG:mode><DREG2:mode>)
15299 (vec_store_pair<DREG:mode><DREG2:mode>, load_pair<VQ:mode><VQ2:mode>)
15300 (vec_store_pair<VQ:mode><VQ2:mode>): Likewise.
15302 2020-08-05 Richard Biener <rguenther@suse.de>
15304 * tree-ssa-loop-im.c (invariantness_dom_walker): Remove.
15305 (invariantness_dom_walker::before_dom_children): Move to ...
15306 (compute_invariantness): ... this function.
15307 (move_computations): Inline ...
15308 (tree_ssa_lim): ... here, share RPO order and avoid some
15310 (analyze_memory_references): Remove sorting of location
15311 lists, instead assert they are sorted already when checking.
15312 (prev_flag_edges): Remove.
15313 (execute_sm_if_changed): Pass down and adjust prev edge state.
15314 (execute_sm_exit): Likewise.
15315 (hoist_memory_references): Likewise. Commit edge insertions
15316 of each processed exit.
15317 (store_motion_loop): Do not commit edge insertions on all
15318 edges in the function.
15319 (tree_ssa_lim_initialize): Do not call alloc_aux_for_edges.
15320 (tree_ssa_lim_finalize): Do not call free_aux_for_edges.
15322 2020-08-05 Richard Biener <rguenther@suse.de>
15324 * genmatch.c (fail_label): New global.
15325 (expr::gen_transform): Branch to fail_label instead of
15326 returning. Fix indent of call argument checking.
15327 (dt_simplify::gen_1): Compute and emit fail_label, branch
15328 to it instead of returning early.
15330 2020-08-05 Jakub Jelinek <jakub@redhat.com>
15332 * omp-expand.c (expand_omp_for): Don't disallow combined non-rectangular
15335 2020-08-05 Jakub Jelinek <jakub@redhat.com>
15337 PR middle-end/96459
15338 * omp-low.c (lower_omp_taskreg): Call lower_reduction_clauses even in
15341 2020-08-05 Jakub Jelinek <jakub@redhat.com>
15343 * omp-expand.c (expand_omp_for_init_counts): Remember
15344 first_inner_iterations, factor and n1o from the number of iterations
15345 computation in *fd.
15346 (expand_omp_for_init_vars): Use more efficient logical iteration number
15347 to actual iterator values computation even for non-rectangular loops
15348 where number of loop iterations could not be computed at compile time.
15350 2020-08-05 2020-08-04 Carl Love <cel@us.ibm.com>
15352 * config/rs6000/altivec.h (vec_blendv, vec_permx): Add define.
15353 * config/rs6000/altivec.md (UNSPEC_XXBLEND, UNSPEC_XXPERMX.): New
15355 (VM3): New define_mode.
15356 (VM3_char): New define_attr.
15357 (xxblend_<mode> mode VM3): New define_insn.
15358 (xxpermx): New define_expand.
15359 (xxpermx_inst): New define_insn.
15360 * config/rs6000/rs6000-builtin.def (VXXBLEND_V16QI, VXXBLEND_V8HI,
15361 VXXBLEND_V4SI, VXXBLEND_V2DI, VXXBLEND_V4SF, VXXBLEND_V2DF): New
15362 BU_P10V_3 definitions.
15363 (XXBLEND): New BU_P10_OVERLOAD_3 definition.
15364 (XXPERMX): New BU_P10_OVERLOAD_4 definition.
15365 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
15366 (P10_BUILTIN_VXXPERMX): Add if statement.
15367 * config/rs6000/rs6000-call.c (P10_BUILTIN_VXXBLEND_V16QI,
15368 P10_BUILTIN_VXXBLEND_V8HI, P10_BUILTIN_VXXBLEND_V4SI,
15369 P10_BUILTIN_VXXBLEND_V2DI, P10_BUILTIN_VXXBLEND_V4SF,
15370 P10_BUILTIN_VXXBLEND_V2DF, P10_BUILTIN_VXXPERMX): Define
15371 overloaded arguments.
15372 (rs6000_expand_quaternop_builtin): Add if case for CODE_FOR_xxpermx.
15373 (builtin_quaternary_function_type): Add v16uqi_type and xxpermx_type
15374 variables, add case statement for P10_BUILTIN_VXXPERMX.
15375 (builtin_function_type): Add case statements for
15376 P10_BUILTIN_VXXBLEND_V16QI, P10_BUILTIN_VXXBLEND_V8HI,
15377 P10_BUILTIN_VXXBLEND_V4SI, P10_BUILTIN_VXXBLEND_V2DI.
15378 * doc/extend.texi: Add documentation for vec_blendv and vec_permx.
15380 2020-08-05 2020-08-04 Carl Love <cel@us.ibm.com>
15382 * config/rs6000/altivec.h (vec_splati, vec_splatid, vec_splati_ins):
15384 * config/rs6000/altivec.md (UNSPEC_XXSPLTIW, UNSPEC_XXSPLTID,
15385 UNSPEC_XXSPLTI32DX): New.
15386 (vxxspltiw_v4si, vxxspltiw_v4sf_inst, vxxspltidp_v2df_inst,
15387 vxxsplti32dx_v4si_inst, vxxsplti32dx_v4sf_inst): New define_insn.
15388 (vxxspltiw_v4sf, vxxspltidp_v2df, vxxsplti32dx_v4si,
15389 vxxsplti32dx_v4sf.): New define_expands.
15390 * config/rs6000/predicates.md (u1bit_cint_operand,
15391 s32bit_cint_operand, c32bit_cint_operand): New predicates.
15392 * config/rs6000/rs6000-builtin.def (VXXSPLTIW_V4SI, VXXSPLTIW_V4SF,
15393 VXXSPLTID): New definitions.
15394 (VXXSPLTI32DX_V4SI, VXXSPLTI32DX_V4SF): New BU_P10V_3
15396 (XXSPLTIW, XXSPLTID): New definitions.
15397 (XXSPLTI32DX): Add definitions.
15398 * config/rs6000/rs6000-call.c (P10_BUILTIN_VEC_XXSPLTIW,
15399 P10_BUILTIN_VEC_XXSPLTID, P10_BUILTIN_VEC_XXSPLTI32DX):
15401 * config/rs6000/rs6000-protos.h (rs6000_constF32toI32): New extern
15403 * config/rs6000/rs6000.c (rs6000_constF32toI32): New function.
15404 * doc/extend.texi: Add documentation for vec_splati,
15405 vec_splatid, and vec_splati_ins.
15407 2020-08-05 2020-08-04 Carl Love <cel@us.ibm.com>
15409 * config/rs6000/altivec.h (vec_sldb, vec_srdb): New defines.
15410 * config/rs6000/altivec.md (UNSPEC_SLDB, UNSPEC_SRDB): New.
15411 (SLDB_lr): New attribute.
15412 (VSHIFT_DBL_LR): New iterator.
15413 (vs<SLDB_lr>db_<mode>): New define_insn.
15414 * config/rs6000/rs6000-builtin.def (VSLDB_V16QI, VSLDB_V8HI,
15415 VSLDB_V4SI, VSLDB_V2DI, VSRDB_V16QI, VSRDB_V8HI, VSRDB_V4SI,
15416 VSRDB_V2DI): New BU_P10V_3 definitions.
15417 (SLDB, SRDB): New BU_P10_OVERLOAD_3 definitions.
15418 * config/rs6000/rs6000-call.c (P10_BUILTIN_VEC_SLDB,
15419 P10_BUILTIN_VEC_SRDB): New definitions.
15420 (rs6000_expand_ternop_builtin) [CODE_FOR_vsldb_v16qi,
15421 CODE_FOR_vsldb_v8hi, CODE_FOR_vsldb_v4si, CODE_FOR_vsldb_v2di,
15422 CODE_FOR_vsrdb_v16qi, CODE_FOR_vsrdb_v8hi, CODE_FOR_vsrdb_v4si,
15423 CODE_FOR_vsrdb_v2di]: Add clauses.
15424 * doc/extend.texi: Add description for vec_sldb and vec_srdb.
15426 2020-08-05 2020-08-04 Carl Love <cel@us.ibm.com>
15428 * config/rs6000/altivec.h: Add define for vec_replace_elt and
15429 vec_replace_unaligned.
15430 * config/rs6000/vsx.md (UNSPEC_REPLACE_ELT, UNSPEC_REPLACE_UN): New
15432 (REPLACE_ELT): New mode iterator.
15433 (REPLACE_ELT_char, REPLACE_ELT_sh, REPLACE_ELT_max): New mode attributes.
15434 (vreplace_un_<mode>, vreplace_elt_<mode>_inst): New.
15435 * config/rs6000/rs6000-builtin.def (VREPLACE_ELT_V4SI,
15436 VREPLACE_ELT_UV4SI, VREPLACE_ELT_V4SF, VREPLACE_ELT_UV2DI,
15437 VREPLACE_ELT_V2DF, VREPLACE_UN_V4SI, VREPLACE_UN_UV4SI,
15438 VREPLACE_UN_V4SF, VREPLACE_UN_V2DI, VREPLACE_UN_UV2DI,
15439 VREPLACE_UN_V2DF, (REPLACE_ELT, REPLACE_UN, VREPLACE_ELT_V2DI): New builtin
15441 * config/rs6000/rs6000-call.c (P10_BUILTIN_VEC_REPLACE_ELT,
15442 P10_BUILTIN_VEC_REPLACE_UN): New builtin argument definitions.
15443 (rs6000_expand_quaternop_builtin): Add 3rd argument checks for
15444 CODE_FOR_vreplace_elt_v4si, CODE_FOR_vreplace_elt_v4sf,
15445 CODE_FOR_vreplace_un_v4si, CODE_FOR_vreplace_un_v4sf.
15446 (builtin_function_type) [P10_BUILTIN_VREPLACE_ELT_UV4SI,
15447 P10_BUILTIN_VREPLACE_ELT_UV2DI, P10_BUILTIN_VREPLACE_UN_UV4SI,
15448 P10_BUILTIN_VREPLACE_UN_UV2DI]: New cases.
15449 * doc/extend.texi: Add description for vec_replace_elt and
15450 vec_replace_unaligned builtins.
15452 2020-08-05 2020-08-04 Carl Love <cel@us.ibm.com>
15454 * config/rs6000/altivec.h (vec_insertl, vec_inserth): New defines.
15455 * config/rs6000/rs6000-builtin.def (VINSERTGPRBL, VINSERTGPRHL,
15456 VINSERTGPRWL, VINSERTGPRDL, VINSERTVPRBL, VINSERTVPRHL, VINSERTVPRWL,
15457 VINSERTGPRBR, VINSERTGPRHR, VINSERTGPRWR, VINSERTGPRDR, VINSERTVPRBR,
15458 VINSERTVPRHR, VINSERTVPRWR): New builtins.
15459 (INSERTL, INSERTH): New builtins.
15460 * config/rs6000/rs6000-call.c (P10_BUILTIN_VEC_INSERTL,
15461 P10_BUILTIN_VEC_INSERTH): New overloaded definitions.
15462 (P10_BUILTIN_VINSERTGPRBL, P10_BUILTIN_VINSERTGPRHL,
15463 P10_BUILTIN_VINSERTGPRWL, P10_BUILTIN_VINSERTGPRDL,
15464 P10_BUILTIN_VINSERTVPRBL, P10_BUILTIN_VINSERTVPRHL,
15465 P10_BUILTIN_VINSERTVPRWL): Add case entries.
15466 * config/rs6000/vsx.md (define_c_enum): Add UNSPEC_INSERTL,
15468 (define_expand): Add vinsertvl_<mode>, vinsertvr_<mode>,
15469 vinsertgl_<mode>, vinsertgr_<mode>, mode is VI2.
15470 (define_ins): vinsertvl_internal_<mode>, vinsertvr_internal_<mode>,
15471 vinsertgl_internal_<mode>, vinsertgr_internal_<mode>, mode VEC_I.
15472 * doc/extend.texi: Add documentation for vec_insertl, vec_inserth.
15474 2020-08-05 2020-08-04 Carl Love <cel@us.ibm.com>
15476 * config/rs6000/altivec.md: (UNSPEC_EXTRACTL, UNSPEC_EXTRACTR)
15477 (vextractl<mode>, vextractr<mode>)
15478 (vextractl<mode>_internal, vextractr<mode>_internal for mode VI2)
15480 * config/rs6000/vsx.md: (UNSPEC_EXTRACTL, UNSPEC_EXTRACTR)
15481 (vextractl<mode>, vextractr<mode>)
15482 (vextractl<mode>_internal, vextractr<mode>_internal for mode VI2)
15484 * doc/extend.texi: Update documentation for vec_extractl.
15485 Replace builtin name vec_extractr with vec_extracth. Update
15486 description of vec_extracth.
15488 2020-08-04 Jim Wilson <jimw@sifive.com>
15490 * doc/invoke.texi (AArch64 Options): Delete duplicate
15491 -mstack-protector-guard docs.
15493 2020-08-04 Roger Sayle <roger@nextmovesoftware.com>
15495 * config/nvptx/nvptx.md (smulhi3_highpart, smulsi3_highpart)
15496 (umulhi3_highpart, umulsi3_highpart): New instructions.
15498 2020-08-04 Andrew Stubbs <ams@codesourcery.com>
15500 * config/gcn/gcn-run.c (R_AMDGPU_NONE): Delete.
15501 (R_AMDGPU_ABS32_LO): Delete.
15502 (R_AMDGPU_ABS32_HI): Delete.
15503 (R_AMDGPU_ABS64): Delete.
15504 (R_AMDGPU_REL32): Delete.
15505 (R_AMDGPU_REL64): Delete.
15506 (R_AMDGPU_ABS32): Delete.
15507 (R_AMDGPU_GOTPCREL): Delete.
15508 (R_AMDGPU_GOTPCREL32_LO): Delete.
15509 (R_AMDGPU_GOTPCREL32_HI): Delete.
15510 (R_AMDGPU_REL32_LO): Delete.
15511 (R_AMDGPU_REL32_HI): Delete.
15512 (reserved): Delete.
15513 (R_AMDGPU_RELATIVE64): Delete.
15515 2020-08-04 Omar Tahir <omar.tahir@arm.com>
15517 * config/arm/arm-cpus.in (armv8.1-m.main): Tune for Cortex-M55.
15519 2020-08-04 Hu Jiangping <hujiangping@cn.fujitsu.com>
15521 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Delete
15522 redundant extra_cost variable.
15524 2020-08-04 Zhiheng Xie <xiezhiheng@huawei.com>
15526 * config/aarch64/aarch64-builtins.c (aarch64_call_properties):
15527 Use FLOAT_MODE_P macro instead of enumerating all floating-point
15528 modes and add global flag FLAG_AUTO_FP.
15530 2020-08-04 Jakub Jelinek <jakub@redhat.com>
15532 * doc/extend.texi (symver): Add @cindex for symver function attribute.
15534 2020-08-04 Marc Glisse <marc.glisse@inria.fr>
15536 PR tree-optimization/95433
15537 * match.pd (X * C1 == C2): New transformation.
15539 2020-08-04 Aldy Hernandez <aldyh@redhat.com>
15541 * gimple-ssa-sprintf.c (get_int_range): Adjust for irange API.
15542 (format_integer): Same.
15543 (handle_printf_call): Same.
15545 2020-08-04 Andrew Stubbs <ams@codesourcery.com>
15547 * config/gcn/gcn.md ("<expander>ti3"): New.
15549 2020-08-04 Richard Biener <rguenther@suse.de>
15551 PR tree-optimization/88240
15552 * tree-ssa-sccvn.h (vn_reference_s::punned): New flag.
15553 * tree-ssa-sccvn.c (vn_reference_insert): Initialize punned.
15554 (vn_reference_insert_pieces): Likewise.
15555 (visit_reference_op_call): Likewise.
15556 (visit_reference_op_load): Track whether a ref was punned.
15557 * tree-ssa-pre.c (do_hoist_insertion): Refuse to perform hoist
15558 insertion on punned floating point loads.
15560 2020-08-04 Sudakshina Das <sudi.das@arm.com>
15562 * config/aarch64/aarch64.c (aarch64_gen_store_pair): Add case
15564 (aarch64_gen_load_pair): Likewise.
15565 (aarch64_copy_one_block_and_progress_pointers): Handle 256 bit copy.
15566 (aarch64_expand_cpymem): Expand copy_limit to 256bits where
15569 2020-08-04 Andrea Corallo <andrea.corallo@arm.com>
15571 * config/aarch64/aarch64.md (aarch64_fjcvtzs): Add missing
15573 * doc/sourcebuild.texi (aarch64_fjcvtzs_hw) Document new
15574 target supports option.
15576 2020-08-04 Tom de Vries <tdevries@suse.de>
15579 * config/nvptx/nvptx.c (nvptx_gen_shuffle): Handle V2SI/V2DI.
15581 2020-08-04 Jakub Jelinek <jakub@redhat.com>
15583 PR middle-end/96426
15584 * tree-vect-generic.c (expand_vector_conversion): Replace .VEC_CONVERT
15585 call with GIMPLE_NOP if there is no lhs.
15587 2020-08-04 Jakub Jelinek <jakub@redhat.com>
15590 * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Add IS_DEBUG
15591 argument. Return false instead of gcc_unreachable if it is true and
15592 get_addr_base_and_unit_offset returns NULL.
15593 (fold_stmt_1) <case GIMPLE_DEBUG>: Adjust caller.
15595 2020-08-04 Aldy Hernandez <aldyh@redhat.com>
15597 * vr-values.c (simplify_using_ranges::vrp_evaluate_conditional):
15598 Call is_gimple_min_invariant dropped from previous patch.
15600 2020-08-04 Jakub Jelinek <jakub@redhat.com>
15602 * omp-expand.c (expand_omp_for_init_counts): For triangular loops
15603 compute number of iterations at runtime more efficiently.
15604 (expand_omp_for_init_vars): Adjust immediate dominators.
15605 (extract_omp_for_update_vars): Likewise.
15607 2020-08-04 Aldy Hernandez <aldyh@redhat.com>
15609 * vr-values.c (simplify_using_ranges::two_valued_val_range_p):
15612 2020-08-04 Aldy Hernandez <aldyh@redhat.com>
15614 * vr-values.c (simplify_conversion_using_ranges): Convert to irange API.
15616 2020-08-04 Aldy Hernandez <aldyh@redhat.com>
15618 * vr-values.c (test_for_singularity): Use irange API.
15619 (simplify_using_ranges::simplify_cond_using_ranges_1): Do not
15620 special case VR_RANGE.
15622 2020-08-04 Aldy Hernandez <aldyh@redhat.com>
15624 * vr-values.c (simplify_using_ranges::vrp_evaluate_conditional): Adjust
15627 2020-08-04 Aldy Hernandez <aldyh@redhat.com>
15629 * vr-values.c (simplify_using_ranges::op_with_boolean_value_range_p): Adjust
15632 2020-08-04 Aldy Hernandez <aldyh@redhat.com>
15634 * tree-ssanames.c (get_range_info): Use irange instead of value_range.
15635 * tree-ssanames.h (get_range_info): Same.
15637 2020-08-04 Aldy Hernandez <aldyh@redhat.com>
15639 * fold-const.c (expr_not_equal_to): Adjust for irange API.
15641 2020-08-04 Aldy Hernandez <aldyh@redhat.com>
15643 * builtins.c (determine_block_size): Remove ad-hoc range canonicalization.
15645 2020-08-04 Xionghu Luo <luoxhu@linux.ibm.com>
15647 PR rtl-optimization/71309
15648 * dse.c (find_shift_sequence): Use subreg of shifted from high part
15649 register to avoid loading from address.
15651 2020-08-03 Jonathan Wakely <jwakely@redhat.com>
15653 * doc/cpp.texi (Variadic Macros): Use the exact ... token in
15656 2020-08-03 Nathan Sidwell <nathan@acm.org>
15658 * doc/invoke.texi: Refer to c++20
15660 2020-08-03 Julian Brown <julian@codesourcery.com>
15661 Thomas Schwinge <thomas@codesourcery.com>
15663 * gimplify.c (gimplify_omp_target_update): Allow GOMP_MAP_TO_PSET
15664 without a preceding data-movement mapping.
15666 2020-08-03 Iain Sandoe <iain@sandoe.co.uk>
15668 * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): UNDEF before
15670 (DEF_MIN_OSX_VERSION): Only define if there's no existing
15673 2020-08-03 Iain Sandoe <iain@sandoe.co.uk>
15675 * config/darwin.c (IN_TARGET_CODE): Remove.
15676 (darwin_mergeable_constant_section): Handle poly-int machine modes.
15677 (machopic_select_rtx_section): Likewise.
15679 2020-08-03 Aldy Hernandez <aldyh@redhat.com>
15681 PR tree-optimization/96430
15682 * range-op.cc (operator_tests): Do not shift by 31 on targets with
15683 integer's smaller than 32 bits.
15685 2020-08-03 Martin Jambor <mjambor@suse.cz>
15687 * hsa-brig-format.h: Moved to brig/brigfrontend.
15688 * hsa-brig.c: Removed.
15689 * hsa-builtins.def: Likewise.
15690 * hsa-common.c: Likewise.
15691 * hsa-common.h: Likewise.
15692 * hsa-dump.c: Likewise.
15693 * hsa-gen.c: Likewise.
15694 * hsa-regalloc.c: Likewise.
15695 * ipa-hsa.c: Likewise.
15696 * omp-grid.c: Likewise.
15697 * omp-grid.h: Likewise.
15698 * Makefile.in (BUILTINS_DEF): Remove hsa-builtins.def.
15699 (OBJS): Remove hsa-common.o, hsa-gen.o, hsa-regalloc.o, hsa-brig.o,
15700 hsa-dump.o, ipa-hsa.c and omp-grid.o.
15701 (GTFILES): Removed hsa-common.c and omp-expand.c.
15702 * builtins.def: Remove processing of hsa-builtins.def.
15703 (DEF_HSA_BUILTIN): Remove.
15704 * common.opt (flag_disable_hsa): Remove.
15706 * config.in (ENABLE_HSA): Removed.
15707 * configure.ac: Removed handling configuration for hsa offloading.
15708 (ENABLE_HSA): Removed.
15709 * configure: Regenerated.
15710 * doc/install.texi (--enable-offload-targets): Remove hsa from the
15712 (--with-hsa-runtime): Reword to reference any HSA run-time, not
15713 specifically HSA offloading.
15714 * doc/invoke.texi (Option Summary): Remove -Whsa.
15715 (Warning Options): Likewise.
15716 (Optimize Options): Remove hsa-gen-debug-stores.
15717 * doc/passes.texi (Regular IPA passes): Remove section on IPA HSA
15719 * gimple-low.c (lower_stmt): Remove GIMPLE_OMP_GRID_BODY case.
15720 * gimple-pretty-print.c (dump_gimple_omp_for): Likewise.
15721 (dump_gimple_omp_block): Likewise.
15722 (pp_gimple_stmt_1): Likewise.
15723 * gimple-walk.c (walk_gimple_stmt): Likewise.
15724 * gimple.c (gimple_build_omp_grid_body): Removed function.
15725 (gimple_copy): Remove GIMPLE_OMP_GRID_BODY case.
15726 * gimple.def (GIMPLE_OMP_GRID_BODY): Removed.
15727 * gimple.h (gf_mask): Removed GF_OMP_PARALLEL_GRID_PHONY,
15728 OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY,
15729 GF_OMP_FOR_GRID_INTRA_GROUP, GF_OMP_FOR_GRID_GROUP_ITER and
15730 GF_OMP_TEAMS_GRID_PHONY. Renumbered GF_OMP_FOR_KIND_SIMD and
15732 (gimple_build_omp_grid_body): Removed declaration.
15733 (gimple_has_substatements): Remove GIMPLE_OMP_GRID_BODY case.
15734 (gimple_omp_for_grid_phony): Removed.
15735 (gimple_omp_for_set_grid_phony): Likewise.
15736 (gimple_omp_for_grid_intra_group): Likewise.
15737 (gimple_omp_for_grid_intra_group): Likewise.
15738 (gimple_omp_for_grid_group_iter): Likewise.
15739 (gimple_omp_for_set_grid_group_iter): Likewise.
15740 (gimple_omp_parallel_grid_phony): Likewise.
15741 (gimple_omp_parallel_set_grid_phony): Likewise.
15742 (gimple_omp_teams_grid_phony): Likewise.
15743 (gimple_omp_teams_set_grid_phony): Likewise.
15744 (CASE_GIMPLE_OMP): Remove GIMPLE_OMP_GRID_BODY case.
15745 * lto-section-in.c (lto_section_name): Removed hsa.
15746 * lto-streamer.h (lto_section_type): Removed LTO_section_ipa_hsa.
15747 * lto-wrapper.c (compile_images_for_offload_targets): Remove special
15749 * omp-expand.c: Do not include hsa-common.h and gt-omp-expand.h.
15750 (parallel_needs_hsa_kernel_p): Removed.
15751 (grid_launch_attributes_trees): Likewise.
15752 (grid_launch_attributes_trees): Likewise.
15753 (grid_create_kernel_launch_attr_types): Likewise.
15754 (grid_insert_store_range_dim): Likewise.
15755 (grid_get_kernel_launch_attributes): Likewise.
15756 (get_target_arguments): Remove code passing HSA grid sizes.
15757 (grid_expand_omp_for_loop): Remove.
15758 (grid_arg_decl_map): Likewise.
15759 (grid_remap_kernel_arg_accesses): Likewise.
15760 (grid_expand_target_grid_body): Likewise.
15761 (expand_omp): Remove call to grid_expand_target_grid_body.
15762 (omp_make_gimple_edges): Remove GIMPLE_OMP_GRID_BODY case.
15763 * omp-general.c: Do not include hsa-common.h.
15764 (omp_maybe_offloaded): Do not check for HSA offloading.
15765 (omp_context_selector_matches): Likewise.
15766 * omp-low.c: Do not include hsa-common.h and omp-grid.h.
15767 (build_outer_var_ref): Remove handling of GIMPLE_OMP_GRID_BODY.
15768 (scan_sharing_clauses): Remove handling of OMP_CLAUSE__GRIDDIM_.
15769 (scan_omp_parallel): Remove handling of the phoney variant.
15770 (check_omp_nesting_restrictions): Remove handling of
15771 GIMPLE_OMP_GRID_BODY and GF_OMP_FOR_KIND_GRID_LOOP.
15772 (scan_omp_1_stmt): Remove handling of GIMPLE_OMP_GRID_BODY.
15773 (lower_omp_for_lastprivate): Remove handling of gridified loops.
15774 (lower_omp_for): Remove phony loop handling.
15775 (lower_omp_taskreg): Remove phony construct handling.
15776 (lower_omp_teams): Likewise.
15777 (lower_omp_grid_body): Removed.
15778 (lower_omp_1): Remove GIMPLE_OMP_GRID_BODY case.
15779 (execute_lower_omp): Do not call omp_grid_gridify_all_targets.
15780 * opts.c (common_handle_option): Do not handle hsa when processing
15782 * params.opt (hsa-gen-debug-stores): Remove.
15783 * passes.def: Remove pass_ipa_hsa and pass_gen_hsail.
15784 * timevar.def: Remove TV_IPA_HSA.
15785 * toplev.c: Do not include hsa-common.h.
15786 (compile_file): Do not call hsa_output_brig.
15787 * tree-core.h (enum omp_clause_code): Remove OMP_CLAUSE__GRIDDIM_.
15788 (tree_omp_clause): Remove union field dimension.
15789 * tree-nested.c (convert_nonlocal_omp_clauses): Remove the
15790 OMP_CLAUSE__GRIDDIM_ case.
15791 (convert_local_omp_clauses): Likewise.
15792 * tree-pass.h (make_pass_gen_hsail): Remove declaration.
15793 (make_pass_ipa_hsa): Likewise.
15794 * tree-pretty-print.c (dump_omp_clause): Remove GIMPLE_OMP_GRID_BODY
15796 * tree.c (omp_clause_num_ops): Remove the element corresponding to
15797 OMP_CLAUSE__GRIDDIM_.
15798 (omp_clause_code_name): Likewise.
15799 (walk_tree_1): Remove GIMPLE_OMP_GRID_BODY case.
15800 * tree.h (OMP_CLAUSE__GRIDDIM__DIMENSION): Remove.
15801 (OMP_CLAUSE__GRIDDIM__SIZE): Likewise.
15802 (OMP_CLAUSE__GRIDDIM__GROUP): Likewise.
15804 2020-08-03 Bu Le <bule1@huawei.com>
15806 * config/aarch64/aarch64-sve.md (sub<mode>3): Add support for
15809 2020-08-03 Jozef Lawrynowicz <jozef.l@mittosystems.com>
15811 * config/msp430/msp430.h (ASM_SPEC): Don't pass on "-md" option.
15813 2020-08-03 Yunde Zhong <zhongyunde@huawei.com>
15815 PR rtl-optimization/95696
15816 * regrename.c (regrename_analyze): New param include_all_block_p
15817 with default value TRUE. If set to false, avoid disrupting SMS
15819 * regrename.h (regrename_analyze): Adjust prototype.
15821 2020-08-03 Wei Wentao <weiwt.fnst@cn.fujitsu.com>
15823 * doc/tm.texi.in (VECTOR_STORE_FLAG_VALUE): Fix a typo.
15824 * doc/tm.texi: Regenerate.
15826 2020-08-03 Richard Sandiford <richard.sandiford@arm.com>
15828 * doc/invoke.texi: Add missing comma after octeontx2f95mm entry.
15830 2020-08-03 Qian jianhua <qianjh@cn.fujitsu.com>
15832 * config/aarch64/aarch64-cores.def (a64fx): New core.
15833 * config/aarch64/aarch64-tune.md: Regenerated.
15834 * config/aarch64/aarch64.c (a64fx_prefetch_tune, a64fx_tunings): New.
15835 * doc/invoke.texi: Add a64fx to the list.
15837 2020-08-03 Roger Sayle <roger@nextmovesoftware.com>
15839 PR rtl-optimization/61494
15840 * simplify-rtx.c (simplify_binary_operation_1) [MINUS]: Don't
15841 simplify x - 0.0 with -fsignaling-nans.
15843 2020-08-03 Roger Sayle <roger@nextmovesoftware.com>
15845 * genmatch.c (decision_tree::gen): Emit stub functions for
15846 tree code operand counts that have no simplifications.
15847 (main): Correct comment typo.
15849 2020-08-03 Jonathan Wakely <jwakely@redhat.com>
15851 * gimple-ssa-sprintf.c: Fix typos in comments.
15853 2020-08-03 Tamar Christina <tamar.christina@arm.com>
15855 * config/aarch64/driver-aarch64.c (readline): Check return value fgets.
15857 2020-08-03 Richard Biener <rguenther@suse.de>
15859 * doc/match-and-simplify.texi: Amend accordingly.
15861 2020-08-03 Richard Biener <rguenther@suse.de>
15863 * genmatch.c (parser::gimple): New.
15864 (parser::parser): Initialize gimple flag member.
15865 (parser::parse_expr): Error on ! operator modifier when
15866 not targeting GIMPLE.
15867 (main): Pass down gimple flag to parser ctor.
15869 2020-08-03 Aldy Hernandez <aldyh@redhat.com>
15871 * Makefile.in (GTFILES): Move value-range.h up.
15872 * gengtype-lex.l: Set yylval to handle GTY markers on templates.
15873 * ipa-cp.c (initialize_node_lattices): Call value_range
15875 (ipcp_propagate_stage): Use in-place new so value_range construct
15877 * ipa-fnsummary.c (evaluate_conditions_for_known_args): Use std
15878 vec instead of GCC's vec<>.
15879 (evaluate_properties_for_edge): Adjust for std vec.
15880 (ipa_fn_summary_t::duplicate): Same.
15881 (estimate_ipcp_clone_size_and_time): Same.
15882 * ipa-prop.c (ipa_get_value_range): Use in-place new for
15884 * ipa-prop.h (struct GTY): Remove class keyword for m_vr.
15885 * range-op.cc (empty_range_check): Rename to...
15886 (empty_range_varying): ...this and adjust for varying.
15887 (undefined_shift_range_check): Adjust for irange.
15888 (range_operator::wi_fold): Same.
15889 (range_operator::fold_range): Adjust for irange. Special case
15890 single pairs for performance.
15891 (range_operator::op1_range): Adjust for irange.
15892 (range_operator::op2_range): Same.
15893 (value_range_from_overflowed_bounds): Same.
15894 (value_range_with_overflow): Same.
15895 (create_possibly_reversed_range): Same.
15896 (range_true): Same.
15897 (range_false): Same.
15898 (range_true_and_false): Same.
15899 (get_bool_state): Adjust for irange and tweak for performance.
15900 (operator_equal::fold_range): Adjust for irange.
15901 (operator_equal::op1_range): Same.
15902 (operator_equal::op2_range): Same.
15903 (operator_not_equal::fold_range): Same.
15904 (operator_not_equal::op1_range): Same.
15905 (operator_not_equal::op2_range): Same.
15910 (operator_lt::fold_range): Same.
15911 (operator_lt::op1_range): Same.
15912 (operator_lt::op2_range): Same.
15913 (operator_le::fold_range): Same.
15914 (operator_le::op1_range): Same.
15915 (operator_le::op2_range): Same.
15916 (operator_gt::fold_range): Same.
15917 (operator_gt::op1_range): Same.
15918 (operator_gt::op2_range): Same.
15919 (operator_ge::fold_range): Same.
15920 (operator_ge::op1_range): Same.
15921 (operator_ge::op2_range): Same.
15922 (operator_plus::wi_fold): Same.
15923 (operator_plus::op1_range): Same.
15924 (operator_plus::op2_range): Same.
15925 (operator_minus::wi_fold): Same.
15926 (operator_minus::op1_range): Same.
15927 (operator_minus::op2_range): Same.
15928 (operator_min::wi_fold): Same.
15929 (operator_max::wi_fold): Same.
15930 (cross_product_operator::wi_cross_product): Same.
15931 (operator_mult::op1_range): New.
15932 (operator_mult::op2_range): New.
15933 (operator_mult::wi_fold): Adjust for irange.
15934 (operator_div::wi_fold): Same.
15935 (operator_exact_divide::op1_range): Same.
15936 (operator_lshift::fold_range): Same.
15937 (operator_lshift::wi_fold): Same.
15938 (operator_lshift::op1_range): New.
15939 (operator_rshift::op1_range): New.
15940 (operator_rshift::fold_range): Adjust for irange.
15941 (operator_rshift::wi_fold): Same.
15942 (operator_cast::truncating_cast_p): Abstract out from
15943 operator_cast::fold_range.
15944 (operator_cast::fold_range): Adjust for irange and tweak for
15946 (operator_cast::inside_domain_p): Abstract out from fold_range.
15947 (operator_cast::fold_pair): Same.
15948 (operator_cast::op1_range): Use abstracted methods above. Adjust
15949 for irange and tweak for performance.
15950 (operator_logical_and::fold_range): Adjust for irange.
15951 (operator_logical_and::op1_range): Same.
15952 (operator_logical_and::op2_range): Same.
15953 (unsigned_singleton_p): New.
15954 (operator_bitwise_and::remove_impossible_ranges): New.
15955 (operator_bitwise_and::fold_range): New.
15956 (wi_optimize_and_or): Adjust for irange.
15957 (operator_bitwise_and::wi_fold): Same.
15958 (set_nonzero_range_from_mask): New.
15959 (operator_bitwise_and::simple_op1_range_solver): New.
15960 (operator_bitwise_and::op1_range): Adjust for irange.
15961 (operator_bitwise_and::op2_range): Same.
15962 (operator_logical_or::fold_range): Same.
15963 (operator_logical_or::op1_range): Same.
15964 (operator_logical_or::op2_range): Same.
15965 (operator_bitwise_or::wi_fold): Same.
15966 (operator_bitwise_or::op1_range): Same.
15967 (operator_bitwise_or::op2_range): Same.
15968 (operator_bitwise_xor::wi_fold): Same.
15969 (operator_bitwise_xor::op1_range): New.
15970 (operator_bitwise_xor::op2_range): New.
15971 (operator_trunc_mod::wi_fold): Adjust for irange.
15972 (operator_logical_not::fold_range): Same.
15973 (operator_logical_not::op1_range): Same.
15974 (operator_bitwise_not::fold_range): Same.
15975 (operator_bitwise_not::op1_range): Same.
15976 (operator_cst::fold_range): Same.
15977 (operator_identity::fold_range): Same.
15978 (operator_identity::op1_range): Same.
15979 (class operator_unknown): New.
15980 (operator_unknown::fold_range): New.
15981 (class operator_abs): Adjust for irange.
15982 (operator_abs::wi_fold): Same.
15983 (operator_abs::op1_range): Same.
15984 (operator_absu::wi_fold): Same.
15985 (class operator_negate): Same.
15986 (operator_negate::fold_range): Same.
15987 (operator_negate::op1_range): Same.
15988 (operator_addr_expr::fold_range): Same.
15989 (operator_addr_expr::op1_range): Same.
15990 (pointer_plus_operator::wi_fold): Same.
15991 (pointer_min_max_operator::wi_fold): Same.
15992 (pointer_and_operator::wi_fold): Same.
15993 (pointer_or_operator::op1_range): New.
15994 (pointer_or_operator::op2_range): New.
15995 (pointer_or_operator::wi_fold): Adjust for irange.
15996 (integral_table::integral_table): Add entries for IMAGPART_EXPR
15997 and POINTER_DIFF_EXPR.
15998 (range_cast): Adjust for irange.
15999 (build_range3): New.
16000 (range3_tests): New.
16001 (widest_irange_tests): New.
16002 (multi_precision_range_tests): New.
16003 (operator_tests): New.
16004 (range_tests): New.
16005 * range-op.h (class range_operator): Adjust for irange.
16006 (range_cast): Same.
16007 * tree-vrp.c (range_fold_binary_symbolics_p): Adjust for irange and
16008 tweak for performance.
16009 (range_fold_binary_expr): Same.
16010 (masked_increment): Change to extern.
16011 * tree-vrp.h (masked_increment): New.
16012 * tree.c (cache_wide_int_in_type_cache): New function abstracted
16013 out from wide_int_to_tree_1.
16014 (wide_int_to_tree_1): Cache 0, 1, and MAX for pointers.
16015 * value-range-equiv.cc (value_range_equiv::deep_copy): Use kind
16017 (value_range_equiv::move): Same.
16018 (value_range_equiv::check): Adjust for irange.
16019 (value_range_equiv::intersect): Same.
16020 (value_range_equiv::union_): Same.
16021 (value_range_equiv::dump): Same.
16022 * value-range.cc (irange::operator=): Same.
16023 (irange::maybe_anti_range): New.
16024 (irange::copy_legacy_range): New.
16025 (irange::set_undefined): Adjust for irange.
16026 (irange::swap_out_of_order_endpoints): Abstract out from set().
16027 (irange::set_varying): Adjust for irange.
16028 (irange::irange_set): New.
16029 (irange::irange_set_anti_range): New.
16030 (irange::set): Adjust for irange.
16031 (value_range::set_nonzero): Move to header file.
16032 (value_range::set_zero): Move to header file.
16033 (value_range::check): Rename to...
16034 (irange::verify_range): ...this.
16035 (value_range::num_pairs): Rename to...
16036 (irange::legacy_num_pairs): ...this, and adjust for irange.
16037 (value_range::lower_bound): Rename to...
16038 (irange::legacy_lower_bound): ...this, and adjust for irange.
16039 (value_range::upper_bound): Rename to...
16040 (irange::legacy_upper_bound): ...this, and adjust for irange.
16041 (value_range::equal_p): Rename to...
16042 (irange::legacy_equal_p): ...this.
16043 (value_range::operator==): Move to header file.
16044 (irange::equal_p): New.
16045 (irange::symbolic_p): Adjust for irange.
16046 (irange::constant_p): Same.
16047 (irange::singleton_p): Same.
16048 (irange::value_inside_range): Same.
16049 (irange::may_contain_p): Same.
16050 (irange::contains_p): Same.
16051 (irange::normalize_addresses): Same.
16052 (irange::normalize_symbolics): Same.
16053 (irange::legacy_intersect): Same.
16054 (irange::legacy_union): Same.
16055 (irange::union_): Same.
16056 (irange::intersect): Same.
16057 (irange::irange_union): New.
16058 (irange::irange_intersect): New.
16059 (subtract_one): New.
16060 (irange::invert): Adjust for irange.
16061 (dump_bound_with_infinite_markers): New.
16062 (irange::dump): Adjust for irange.
16063 (debug): Add irange versions.
16064 (range_has_numeric_bounds_p): Adjust for irange.
16065 (vrp_val_max): Move to header file.
16066 (vrp_val_min): Move to header file.
16067 (DEFINE_INT_RANGE_GC_STUBS): New.
16068 (DEFINE_INT_RANGE_INSTANCE): New.
16069 * value-range.h (class irange): New.
16070 (class int_range): New.
16071 (class value_range): Rename to a instantiation of int_range.
16072 (irange::legacy_mode_p): New.
16073 (value_range::value_range): Remove.
16074 (irange::kind): New.
16075 (irange::num_pairs): Adjust for irange.
16076 (irange::type): Adjust for irange.
16077 (irange::tree_lower_bound): New.
16078 (irange::tree_upper_bound): New.
16079 (irange::type): Adjust for irange.
16080 (irange::min): Same.
16081 (irange::max): Same.
16082 (irange::varying_p): Same.
16083 (irange::undefined_p): Same.
16084 (irange::zero_p): Same.
16085 (irange::nonzero_p): Same.
16086 (irange::supports_type_p): Same.
16087 (range_includes_zero_p): Same.
16090 (irange::irange): New.
16091 (int_range::int_range): New.
16092 (int_range::operator=): New.
16093 (irange::set): Moved from value-range.cc and adjusted for irange.
16094 (irange::set_undefined): Same.
16095 (irange::set_varying): Same.
16096 (irange::operator==): Same.
16097 (irange::lower_bound): Same.
16098 (irange::upper_bound): Same.
16099 (irange::union_): Same.
16100 (irange::intersect): Same.
16101 (irange::set_nonzero): Same.
16102 (irange::set_zero): Same.
16103 (irange::normalize_min_max): New.
16104 (vrp_val_max): Move from value-range.cc.
16105 (vrp_val_min): Same.
16106 * vr-values.c (vr_values::get_lattice_entry): Call value_range
16109 2020-08-02 Sergei Trofimovich <siarheit@google.com>
16112 * var-tracking.c (vt_find_locations): Fully initialize
16113 all 'in_pending' bits.
16115 2020-08-01 Jan Hubicka <jh@suse.cz>
16117 * symtab.c (symtab_node::verify_base): Verify order.
16118 (symtab_node::verify_symtab_nodes): Verify order.
16120 2020-08-01 Jan Hubicka <jh@suse.cz>
16122 * predict.c (estimate_bb_frequencies): Cap recursive calls by 90%.
16124 2020-08-01 Jojo R <jiejie_rong@c-sky.com>
16126 * config/csky/csky_opts.h (float_abi_type): New.
16127 * config/csky/csky.h (TARGET_SOFT_FLOAT): New.
16128 (TARGET_HARD_FLOAT): New.
16129 (TARGET_HARD_FLOAT_ABI): New.
16130 (OPTION_DEFAULT_SPECS): Use mfloat-abi.
16131 * config/csky/csky.opt (mfloat-abi): New.
16132 * doc/invoke.texi (C-SKY Options): Document -mfloat-abi=.
16134 2020-08-01 Cooper Qu <cooper.qu@linux.alibaba.com>
16136 * config/csky/t-csky-linux: Delete big endian CPUs' multilib.
16138 2020-07-31 Roger Sayle <roger@nextmovesoftware.com>
16139 Tom de Vries <tdevries@suse.de>
16142 * config/nvptx/nvptx.c (nvptx_truly_noop_truncation): Implement.
16143 (TARGET_TRULY_NOOP_TRUNCATION): Define.
16145 2020-07-31 Richard Biener <rguenther@suse.de>
16148 * langhooks-def.h (lhd_finalize_early_debug): Declare.
16149 (LANG_HOOKS_FINALIZE_EARLY_DEBUG): Define.
16150 (LANG_HOOKS_INITIALIZER): Amend.
16151 * langhooks.c: Include cgraph.h and debug.h.
16152 (lhd_finalize_early_debug): Default implementation from
16153 former code in finalize_compilation_unit.
16154 * langhooks.h (lang_hooks::finalize_early_debug): Add.
16155 * cgraphunit.c (symbol_table::finalize_compilation_unit):
16156 Call the finalize_early_debug langhook.
16158 2020-07-31 Richard Biener <rguenther@suse.de>
16160 * genmatch.c (expr::force_leaf): Add and initialize.
16161 (expr::gen_transform): Honor force_leaf by passing
16162 NULL as sequence argument to maybe_push_res_to_seq.
16163 (parser::parse_expr): Allow ! marker on result expression
16165 * doc/match-and-simplify.texi: Amend.
16167 2020-07-31 Kewen Lin <linkw@linux.ibm.com>
16169 * tree-vect-loop.c (vect_get_known_peeling_cost): Don't consider branch
16170 taken costs for prologue and epilogue if they don't exist.
16171 (vect_estimate_min_profitable_iters): Likewise.
16173 2020-07-31 Martin Liska <mliska@suse.cz>
16175 * cgraph.h: Remove leading empty lines.
16176 * cgraphunit.c (enum cgraph_order_sort_kind): Remove
16178 (struct cgraph_order_sort): Add constructors.
16179 (cgraph_order_sort::process): New.
16180 (cgraph_order_cmp): New.
16181 (output_in_order): Simplify and push nodes to vector.
16183 2020-07-31 Richard Biener <rguenther@suse.de>
16185 PR middle-end/96369
16186 * fold-const.c (fold_range_test): Special-case constant
16187 LHS for short-circuiting operations.
16189 2020-07-31 Martin Liska <mliska@suse.cz>
16191 * gcov-io.h (GCOV_PREALLOCATED_KVP): New.
16193 2020-07-31 Zhiheng Xie <xiezhiheng@huawei.com>
16195 * config/aarch64/aarch64-builtins.c (aarch64_general_add_builtin):
16196 Add new argument ATTRS.
16197 (aarch64_call_properties): New function.
16198 (aarch64_modifies_global_state_p): Likewise.
16199 (aarch64_reads_global_state_p): Likewise.
16200 (aarch64_could_trap_p): Likewise.
16201 (aarch64_add_attribute): Likewise.
16202 (aarch64_get_attributes): Likewise.
16203 (aarch64_init_simd_builtins): Add attributes for each built-in function.
16205 2020-07-31 Richard Biener <rguenther@suse.de>
16208 * var-tracking.c (vt_find_locations): Use
16209 rev_post_order_and_mark_dfs_back_seme and separately iterate
16210 over toplevel SCCs.
16212 2020-07-31 Richard Biener <rguenther@suse.de>
16214 * cfganal.h (rev_post_order_and_mark_dfs_back_seme): Adjust
16216 * cfganal.c (rpoamdbs_bb_data): New struct with pre BB data.
16217 (tag_header): New helper.
16218 (cmp_edge_dest_pre): Likewise.
16219 (rev_post_order_and_mark_dfs_back_seme): Compute SCCs,
16220 find SCC exits and perform a DFS walk with extra edges to
16221 compute a RPO with adjacent SCC members when requesting an
16222 iteration optimized order and populate the toplevel SCC array.
16223 * tree-ssa-sccvn.c (do_rpo_vn): Remove ad-hoc computation
16224 of max_rpo and fill it in from SCC extent info instead.
16226 2020-07-30 Will Schmidt <will_schmidt@vnet.ibm.com>
16228 * config/rs6000/altivec.h (vec_test_lsbb_all_ones): New define.
16229 (vec_test_lsbb_all_zeros): New define.
16230 * config/rs6000/rs6000-builtin.def (BU_P10_VSX_1): New built-in
16232 (XVTLSBB_ZEROS, XVTLSBB_ONES): New builtin defines.
16233 (xvtlsbb_all_zeros, xvtlsbb_all_ones): New builtin overloads.
16234 * config/rs6000/rs6000-call.c (P10_BUILTIN_VEC_XVTLSBB_ZEROS,
16235 P10_BUILTIN_VEC_XVTLSBB_ONES): New altivec_builtin_types entries.
16236 * config/rs6000/rs6000.md (UNSPEC_XVTLSBB): New unspec.
16237 * config/rs6000/vsx.md (*xvtlsbb_internal): New instruction define.
16238 (xvtlsbbo, xvtlsbbz): New instruction expands.
16240 2020-07-30 Cooper Qu <cooper.qu@linux.alibaba.com>
16242 * config/riscv/riscv-opts.h (stack_protector_guard): New enum.
16243 * config/riscv/riscv.c (riscv_option_override): Handle
16245 * config/riscv/riscv.md (stack_protect_set): New pattern to handle
16246 flexible stack protector guard settings.
16247 (stack_protect_set_<mode>): Ditto.
16248 (stack_protect_test): Ditto.
16249 (stack_protect_test_<mode>): Ditto.
16250 * config/riscv/riscv.opt (mstack-protector-guard=,
16251 mstack-protector-guard-reg=, mstack-protector-guard-offset=): New
16253 * doc/invoke.texi (Option Summary) [RISC-V Options]:
16254 Add -mstack-protector-guard=, -mstack-protector-guard-reg=, and
16255 -mstack-protector-guard-offset=.
16256 (RISC-V Options): Ditto.
16258 2020-07-30 H.J. Lu <hjl.tools@gmail.com>
16261 * configure: Regenerated.
16263 2020-07-30 Richard Biener <rguenther@suse.de>
16265 PR tree-optimization/96370
16266 * tree-ssa-reassoc.c (rewrite_expr_tree): Add operation
16267 code parameter and use it instead of picking it up from
16268 the stmt that is being rewritten.
16269 (reassociate_bb): Pass down the operation code.
16271 2020-07-30 Roger Sayle <roger@nextmovesoftware.com>
16272 Tom de Vries <tdevries@suse.de>
16274 * config/nvptx/nvptx.md (nvptx_vector_index_operand): New predicate.
16275 (VECELEM): New mode attribute for a vector's uppercase element mode.
16276 (Vecelem): New mode attribute for a vector's lowercase element mode.
16277 (*vec_set<mode>_0, *vec_set<mode>_1, *vec_set<mode>_2)
16278 (*vec_set<mode>_3): New instructions.
16279 (vec_set<mode>): New expander to generate one of the above insns.
16280 (vec_extract<mode><Vecelem>): New instruction.
16282 2020-07-30 Martin Liska <mliska@suse.cz>
16285 * config/i386/x86-tune-costs.h: Use libcall for large sizes for
16286 -m32. Start using libcall from 128+ bytes.
16288 2020-07-30 Martin Liska <mliska@suse.cz>
16290 * config/i386/x86-tune-costs.h: Change code formatting.
16292 2020-07-29 Roger Sayle <roger@nextmovesoftware.com>
16294 * config/nvptx/nvptx.md (recip<mode>2): New instruction.
16296 2020-07-29 Fangrui Song <maskray@google.com>
16299 * opts.c (common_handle_option): Don't make -gsplit-dwarf imply -g.
16300 * doc/invoke.texi (-gsplit-dwarf): Update documentation.
16302 2020-07-29 Joe Ramsay <joe.ramsay@arm.com>
16304 * config/arm/arm-protos.h (arm_coproc_mem_operand_no_writeback):
16306 (arm_mve_mode_and_operands_type_check): Declare prototype.
16307 * config/arm/arm.c (arm_coproc_mem_operand): Refactor to use
16308 _arm_coproc_mem_operand.
16309 (arm_coproc_mem_operand_wb): New function to cover full, limited
16311 (arm_coproc_mem_operand_no_writeback): New constraint for memory
16312 operand with no writeback.
16313 (arm_print_operand): Extend 'E' specifier for memory operand
16314 that does not support writeback.
16315 (arm_mve_mode_and_operands_type_check): New constraint check for
16316 MVE memory operands.
16317 * config/arm/constraints.md: Add Uj constraint for VFP vldr.16
16319 * config/arm/vfp.md (*mov_load_vfp_hf16): New pattern for
16321 (*mov_store_vfp_hf16): New pattern for vstr.16.
16322 (*mov<mode>_vfp_<mode>16): Remove MVE moves.
16324 2020-07-29 Richard Biener <rguenther@suse.de>
16326 PR tree-optimization/96349
16327 * tree-ssa-loop-split.c (stmt_semi_invariant_p_1): When the
16328 condition runs into a loop PHI with an abnormal entry value give up.
16330 2020-07-29 Richard Biener <rguenther@suse.de>
16332 * tree-vectorizer.c (vectorize_loops): Reset the SCEV
16333 cache if we removed any SIMD UID SSA defs.
16334 * gimple-loop-interchange.cc (pass_linterchange::execute):
16335 Reset the scev cache if we interchanged a loop.
16337 2020-07-29 Richard Biener <rguenther@suse.de>
16339 PR tree-optimization/95679
16340 * tree-ssa-propagate.h
16341 (substitute_and_fold_engine::propagate_into_phi_args): Return
16342 whether anything changed.
16343 * tree-ssa-propagate.c
16344 (substitute_and_fold_engine::propagate_into_phi_args): Likewise.
16345 (substitute_and_fold_dom_walker::before_dom_children): Update
16348 2020-07-29 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
16350 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
16351 Ensure that loop variable npeel_tmp advances in each iteration.
16353 2020-07-29 Hans-Peter Nilsson <hp@bitrange.com>
16355 * config/mmix/mmix.h (NO_FUNCTION_CSE): Define to 1.
16357 2020-07-29 Hans-Peter Nilsson <hp@bitrange.com>
16359 * config/mmix/mmix.h (ASM_OUTPUT_EXTERNAL): Define to
16360 default_elf_asm_output_external.
16362 2020-07-28 Sergei Trofimovich <siarheit@google.com>
16365 * ipa-cp.c (has_undead_caller_from_outside_scc_p): Consider
16366 unoptimized callers as undead.
16368 2020-07-28 Roger Sayle <roger@nextmovesoftware.com>
16369 Richard Biener <rguenther@suse.de>
16371 * match.pd (popcount(x)&1 -> parity(x)): New simplification.
16372 (parity(~x) -> parity(x)): New simplification.
16373 (parity(x)^parity(y) -> parity(x^y)): New simplification.
16374 (parity(x&1) -> x&1): New simplification.
16375 (popcount(x) -> x>>C): New simplification.
16377 2020-07-28 Roger Sayle <roger@nextmovesoftware.com>
16378 Tom de Vries <tdevries@suse.de>
16380 * config/nvptx/nvptx.md (extendqihi2): New instruction.
16381 (ashl<mode>3, ashr<mode>3, lshr<mode>3): Support HImode.
16383 2020-07-28 Jakub Jelinek <jakub@redhat.com>
16385 PR middle-end/96335
16386 * calls.c (maybe_warn_rdwr_sizes): Add FNDECL and FNTYPE arguments,
16387 instead of trying to rediscover them in the body.
16388 (initialize_argument_information): Adjust caller.
16390 2020-07-28 Kewen Lin <linkw@linux.ibm.com>
16392 * tree-vect-loop.c (vect_get_known_peeling_cost): Factor out some code
16393 to determine peel_iters_epilogue to...
16394 (vect_get_peel_iters_epilogue): ...this new function.
16395 (vect_estimate_min_profitable_iters): Refactor cost calculation on
16396 peel_iters_prologue and peel_iters_epilogue.
16398 2020-07-27 Martin Sebor <msebor@redhat.com>
16400 PR tree-optimization/84079
16401 * gimple-array-bounds.cc (array_bounds_checker::check_addr_expr):
16402 Only allow just-past-the-end references for the most significant
16405 2020-07-27 Hu Jiangping <hujiangping@cn.fujitsu.com>
16408 * opts.c (check_alignment_argument): Set the -falign-Name
16409 on/off flag on and set the -falign-Name string value null,
16410 when the command-line specified argument is zero.
16412 2020-07-27 Martin Liska <mliska@suse.cz>
16414 PR tree-optimization/96058
16415 * expr.c (string_constant): Build string_constant only
16416 for a type that has same precision as char_type_node
16417 and is an integral type.
16419 2020-07-27 Richard Biener <rguenther@suse.de>
16421 * var-tracking.c (variable_tracking_main_1): Remove call
16422 to mark_dfs_back_edges.
16424 2020-07-27 Martin Liska <mliska@suse.cz>
16426 PR tree-optimization/96128
16427 * tree-vect-generic.c (expand_vector_comparison): Do not expand
16428 vector comparison with VEC_COND_EXPR.
16430 2020-07-27 H.J. Lu <hjl.tools@gmail.com>
16433 * common.opt: Add -fcf-protection=check.
16434 * flag-types.h (cf_protection_level): Add CF_CHECK.
16435 * lto-wrapper.c (merge_and_complain): Issue an error for
16436 mismatching -fcf-protection values with -fcf-protection=check.
16437 Otherwise, merge -fcf-protection values.
16438 * doc/invoke.texi: Document -fcf-protection=check.
16440 2020-07-27 Martin Liska <mliska@suse.cz>
16443 * symbol-summary.h: Call vec_safe_reserve before grow is called
16444 in order to grow to a reasonable size.
16445 * vec.h (vec_safe_reserve): Add missing function for vl_ptr
16448 2020-07-26 Hans-Peter Nilsson <hp@bitrange.com>
16450 * configure.ac (out-of-tree linker .hidden support): Don't turn off
16451 for mmix-knuth-mmixware.
16452 * configure: Regenerate.
16454 2020-07-26 Aaron Sawdey <acsawdey@linux.ibm.com>
16456 * config/rs6000/rs6000.c (rs6000_option_override_internal):
16457 Set the default value for -mblock-ops-unaligned-vsx.
16458 * config/rs6000/rs6000.opt: Add -mblock-ops-unaligned-vsx.
16459 * doc/invoke.texi: Document -mblock-ops-unaligned-vsx.
16461 2020-07-25 Hans-Peter Nilsson <hp@bitrange.com>
16463 * config/mmix/mmix.c (TARGET_ASM_OUTPUT_IDENT): Override the default
16464 with default_asm_output_ident_directive.
16466 2020-07-25 Andrew Stubbs <ams@codesourcery.com>
16468 * config/gcn/gcn.c (gcn_scalar_mode_supported_p): New function.
16469 (TARGET_SCALAR_MODE_SUPPORTED_P): New define.
16471 2020-07-24 David Edelsohn <dje.gcc@gmail.com>
16472 Clement Chigot <clement.chigot@atos.net>
16474 * config.gcc (powerpc-ibm-aix7.1): Use t-aix64 and biarch64 for
16476 * config/rs6000/aix71.h (ASM_SPEC): Remove aix64 option.
16479 (ASM_CPU_SPEC): Remove vsx and altivec options.
16480 (CPP_SPEC_COMMON): Rename from CPP_SPEC.
16483 (CPLUSPLUS_CPP_SPEC): Rename to CPLUSPLUS_CPP_SPEC_COMMON..
16484 (TARGET_DEFAULT): Use 64 bit mask if BIARCH.
16485 (LIB_SPEC_COMMON): Rename from LIB_SPEC.
16488 (LINK_SPEC_COMMON): Rename from LINK_SPEC.
16489 (LINK_SPEC32): New.
16490 (LINK_SPEC64): New.
16491 (STARTFILE_SPEC): Add 64 bit version of crtcxa and crtdbase.
16492 (ASM_SPEC): Define 32 and 64 bit alternatives using DEFAULT_ARCH64_P.
16494 (CPLUSPLUS_CPP_SPEC): Same.
16497 (SUBTARGET_EXTRA_SPECS): Add new 32/64 specs.
16498 * config/rs6000/aix72.h (TARGET_DEFAULT): Use 64 bit mask if BIARCH.
16499 * config/rs6000/defaultaix64.h: Delete.
16501 2020-07-24 Segher Boessenkool <segher@kernel.crashing.org>
16503 * config/rs6000/rs6000.opt: Delete -mpower10.
16505 2020-07-24 Alexandre Oliva <oliva@adacore.com>
16507 * config/i386/intelmic-mkoffload.c
16508 (generate_target_descr_file): Use dumppfx for save_temps
16509 files. Pass -dumpbase et al down to the compiler.
16510 (generate_target_offloadend_file): Likewise.
16511 (generate_host_descr_file): Likewise.
16512 (prepare_target_image): Likewise. Move out_obj_filename
16514 (main): ... here. Detect -dumpbase, set dumppfx too.
16516 2020-07-24 Alexandre Oliva <oliva@adacore.com>
16519 * gcc.c (process_command): Adjust and document conditions to
16520 reset dumpbase_ext.
16522 2020-07-24 Matthias Klose <doko@ubuntu.com>
16524 * config/aarch64/aarch64.c (+aarch64_offload_options,
16525 TARGET_OFFLOAD_OPTIONS): New.
16527 2020-07-24 Uroš Bizjak <ubizjak@gmail.com>
16530 * config/i386/sync.md (mmem_thread_fence): Emit mfence_sse2 for -Os.
16532 2020-07-23 Roger Sayle <roger@nextmovesoftware.com>
16534 PR rtl-optimization/96298
16535 * simplify-rtx.c (simplify_binary_operation_1) [XOR]: Xor doesn't
16536 distribute over xor, so (a^b)^(c^b) is not the same as (a^c)^b.
16538 2020-07-23 Dong JianQiang <dongjianqiang2@huawei.com>
16540 PR gcov-profile/96267
16541 * gcov-io.c (gcov_open): enable if IN_GCOV_TOOL.
16543 2020-07-23 Kewen Lin <linkw@linux.ibm.com>
16545 * config/rs6000/rs6000.c (adjust_vectorization_cost): Renamed to ...
16546 (rs6000_adjust_vect_cost_per_stmt): ... here.
16547 (rs6000_add_stmt_cost): Rename adjust_vectorization_cost to
16548 rs6000_adjust_vect_cost_per_stmt.
16550 2020-07-23 Kewen Lin <linkw@linux.ibm.com>
16552 * tree-ssa-loop-ivopts.c (get_mem_type_for_internal_fn): Handle
16553 IFN_LEN_LOAD and IFN_LEN_STORE.
16554 (get_alias_ptr_type_for_ptr_address): Likewise.
16556 2020-07-23 Kito Cheng <kito.cheng@sifive.com>
16559 * asan.c (asan_shadow_offset_set_p): New.
16560 * asan.h (asan_shadow_offset_set_p): Ditto.
16561 * toplev.c (process_options): Allow -fsanitize=kernel-address
16562 even TARGET_ASAN_SHADOW_OFFSET not implemented, only check when
16563 asan stack protection is enabled.
16565 2020-07-22 Peter Bergner <bergner@linux.ibm.com>
16568 * config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Handle
16569 little-endian memory ordering.
16571 2020-07-22 Nathan Sidwell <nathan@acm.org>
16573 * dumpfile.c (parse_dump_option): Deal with filenames
16576 2020-07-22 Nathan Sidwell <nathan@acm.org>
16578 * incpath.c (add_path): Avoid multiple strlen calls.
16580 2020-07-22 Jozef Lawrynowicz <jozef.l@mittosystems.com>
16582 * expmed.c (expand_sdiv_pow2): Check return value from emit_store_flag
16583 is not NULL_RTX before use.
16585 2020-07-22 Jozef Lawrynowicz <jozef.l@mittosystems.com>
16587 * expr.c (convert_modes): Allow a constant integer to be converted to
16588 any scalar int mode.
16590 2020-07-22 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
16592 * config/aarch64/aarch64-ldpstp.md: Add two peepholes for adjusted vector
16593 V2SI, V2SF, V2DI, V2DF load pair and store pair modes.
16594 * config/aarch64/aarch64-protos.h (aarch64_gen_adjusted_ldpstp):
16595 Change mode parameter to machine_mode.
16596 (aarch64_operands_adjust_ok_for_ldpstp): Change mode parameter to
16598 * config/aarch64/aarch64.c (aarch64_operands_adjust_ok_for_ldpstp):
16599 Change mode parameter to machine_mode.
16600 (aarch64_gen_adjusted_ldpstp): Change mode parameter to machine_mode.
16601 * config/aarch64/iterators.md (VP_2E): New iterator for 2 element vectors.
16603 2020-07-22 Wei Wentao <weiwt.fnst@cn.fujitsu.com>
16605 * doc/languages.texi: Fix “then”/“than” typo.
16607 2020-07-21 Sunil K Pandey <skpgkp2@gmail.com>
16610 * config/i386/i386-protos.h (ix86_local_alignment): Add
16611 another function parameter may_lower alignment. Default is
16613 * config/i386/i386.c (ix86_lower_local_decl_alignment): New
16615 (ix86_local_alignment): Amend ix86_local_alignment to accept
16616 another parameter may_lower. If may_lower is true, new align
16617 may be lower than incoming alignment. If may_lower is false,
16618 new align will be greater or equal to incoming alignment.
16619 (TARGET_LOWER_LOCAL_DECL_ALIGNMENT): Define.
16620 * doc/tm.texi: Regenerate.
16621 * doc/tm.texi.in (TARGET_LOWER_LOCAL_DECL_ALIGNMENT): New
16623 * target.def (lower_local_decl_alignment): New hook.
16625 2020-07-21 Uroš Bizjak <ubizjak@gmail.com>
16628 * config/i386/sync.md (mfence_sse2): Enable for
16629 TARGET_64BIT and TARGET_SSE2.
16630 (mfence_nosse): Always enable.
16632 2020-07-21 Jozef Lawrynowicz <jozef.l@mittosystems.com>
16634 * config/msp430/msp430-protos.h (msp430_do_not_relax_short_jumps):
16636 * config/msp430/msp430.c (msp430_do_not_relax_short_jumps): Likewise.
16637 * config/msp430/msp430.md (cbranchhi4_real): Remove special case for
16638 msp430_do_not_relax_short_jumps.
16640 2020-07-21 Jozef Lawrynowicz <jozef.l@mittosystems.com>
16642 * config/msp430/msp430.md: New "extendqipsi2" define_insn.
16644 2020-07-21 Jozef Lawrynowicz <jozef.l@mittosystems.com>
16646 * config/msp430/msp430.h (NO_FUNCTION_CSE): Set to true at -O2 and
16649 2020-07-21 Xionghu Luo <luoxhu@linux.ibm.com>
16651 PR rtl-optimization/89310
16652 * config/rs6000/rs6000.md (movsf_from_si2): New define_insn_and_split.
16654 2020-07-20 Hans-Peter Nilsson <hp@bitrange.com>
16656 * config/mmix/mmix.c (mmix_expand_prologue): Calculate the total
16657 allocated size and set current_function_static_stack_size, if
16658 flag_stack_usage_info.
16660 2020-07-20 Sergei Trofimovich <siarheit@google.com>
16663 * config/sparc/linux.h (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
16664 to get crtendS.o for !no-pie mode.
16665 * config/sparc/linux64.h (ENDFILE_SPEC): Ditto.
16667 2020-07-20 Yang Yang <yangyang305@huawei.com>
16669 * tree-vect-stmts.c (vectorizable_simd_clone_call): Add
16670 VIEW_CONVERT_EXPRs if the arguments types and return type
16671 of simd clone function are distinct with the vectype of stmt.
16673 2020-07-20 Uroš Bizjak <ubizjak@gmail.com>
16676 * config/i386/i386.h (TARGET_AVOID_MFENCE):
16677 Rename from TARGET_USE_XCHG_FOR_ATOMIC_STORE.
16678 * config/i386/sync.md (mfence_sse2): Disable for TARGET_AVOID_MFENCE.
16679 (mfence_nosse): Enable also for TARGET_AVOID_MFENCE. Emit stack
16680 referred memory in word_mode.
16681 (mem_thread_fence): Do not generate mfence_sse2 pattern when
16682 TARGET_AVOID_MFENCE is true.
16683 (atomic_store<mode>): Update for rename.
16684 * config/i386/x86-tune.def (X86_TUNE_AVOID_MFENCE):
16685 Rename from X86_TUNE_USE_XCHG_FOR_ATOMIC_STORE.
16687 2020-07-20 Martin Sebor <msebor@redhat.com>
16689 PR middle-end/95189
16690 PR middle-end/95886
16691 * builtins.c (inline_expand_builtin_string_cmp): Rename...
16692 (inline_expand_builtin_bytecmp): ...to this.
16693 (builtin_memcpy_read_str): Don't expect data to be nul-terminated.
16694 (expand_builtin_memory_copy_args): Handle object representations
16695 with embedded nul bytes.
16696 (expand_builtin_memcmp): Same.
16697 (expand_builtin_strcmp): Adjust call to naming change.
16698 (expand_builtin_strncmp): Same.
16699 * expr.c (string_constant): Create empty strings with nonzero size.
16700 * fold-const.c (c_getstr): Rename locals and update comments.
16701 * tree.c (build_string): Accept null pointer argument.
16702 (build_string_literal): Same.
16703 * tree.h (build_string): Provide a default.
16704 (build_string_literal): Same.
16706 2020-07-20 Richard Biener <rguenther@suse.de>
16708 * cfganal.c (rev_post_order_and_mark_dfs_back_seme): Remove
16709 write-only post array.
16711 2020-07-20 Jakub Jelinek <jakub@redhat.com>
16714 * gimple-fold.c (fold_const_aggregate_ref_1): For COMPONENT_REF
16715 of a bitfield not aligned on byte boundaries try to
16716 fold_ctor_reference DECL_BIT_FIELD_REPRESENTATIVE if any and
16717 adjust it depending on endianity.
16719 2020-07-20 Jakub Jelinek <jakub@redhat.com>
16722 * fold-const.c (native_encode_initializer): Handle bit-fields.
16724 2020-07-20 Kewen Lin <linkw@linux.ibm.com>
16726 * config/rs6000/rs6000.c (rs6000_option_override_internal):
16727 Set param_vect_partial_vector_usage to 0 explicitly.
16728 * doc/invoke.texi (vect-partial-vector-usage): Document new option.
16729 * optabs-query.c (get_len_load_store_mode): New function.
16730 * optabs-query.h (get_len_load_store_mode): New declare.
16731 * params.opt (vect-partial-vector-usage): New.
16732 * tree-vect-loop-manip.c (vect_set_loop_controls_directly): Add the
16733 handlings for vectorization using length-based partial vectors, call
16734 vect_gen_len for length generation, and rename some variables with
16735 items instead of scalars.
16736 (vect_set_loop_condition_partial_vectors): Add the handlings for
16737 vectorization using length-based partial vectors.
16738 (vect_do_peeling): Allow remaining eiters less than epilogue vf for
16739 LOOP_VINFO_USING_PARTIAL_VECTORS_P.
16740 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Init
16741 epil_using_partial_vectors_p.
16742 (_loop_vec_info::~_loop_vec_info): Call release_vec_loop_controls
16743 for lengths destruction.
16744 (vect_verify_loop_lens): New function.
16745 (vect_analyze_loop): Add handlings for epilogue of loop when it's
16746 marked to use vectorization using partial vectors.
16747 (vect_analyze_loop_2): Add the check to allow only one vectorization
16748 approach using partial vectorization at the same time. Check param
16749 vect-partial-vector-usage for partial vectors decision. Mark
16750 LOOP_VINFO_EPIL_USING_PARTIAL_VECTORS_P if the epilogue is
16751 considerable to use partial vectors. Call release_vec_loop_controls
16752 for lengths destruction.
16753 (vect_estimate_min_profitable_iters): Adjust for loop vectorization
16754 using length-based partial vectors.
16755 (vect_record_loop_mask): Init factor to 1 for vectorization using
16756 mask-based partial vectors.
16757 (vect_record_loop_len): New function.
16758 (vect_get_loop_len): Likewise.
16759 * tree-vect-stmts.c (check_load_store_for_partial_vectors): Add
16760 checks for vectorization using length-based partial vectors. Factor
16761 some code to lambda function get_valid_nvectors.
16762 (vectorizable_store): Add handlings when using length-based partial
16764 (vectorizable_load): Likewise.
16765 (vect_gen_len): New function.
16766 * tree-vectorizer.h (struct rgroup_controls): Add field factor
16767 mainly for length-based partial vectors.
16768 (vec_loop_lens): New typedef.
16769 (_loop_vec_info): Add lens and epil_using_partial_vectors_p.
16770 (LOOP_VINFO_EPIL_USING_PARTIAL_VECTORS_P): New macro.
16771 (LOOP_VINFO_LENS): Likewise.
16772 (LOOP_VINFO_FULLY_WITH_LENGTH_P): Likewise.
16773 (vect_record_loop_len): New declare.
16774 (vect_get_loop_len): Likewise.
16775 (vect_gen_len): Likewise.
16777 2020-07-20 Hans-Peter Nilsson <hp@bitrange.com>
16779 * config/mmix/mmix.c (mmix_option_override): Reinstate default
16780 integer-emitting targetm.asm_out pseudos when dumping detailed
16782 (mmix_assemble_integer): Update comment.
16784 2020-07-19 H.J. Lu <hjl.tools@gmail.com>
16788 * config/i386/cpuid.h: Add include guard.
16791 2020-07-18 H.J. Lu <hjl.tools@gmail.com>
16794 * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
16796 2020-07-18 Peter Bergner <bergner@linux.ibm.com>
16799 * config/rs6000/dfp.md (trunctdsd2): New define_insn.
16800 * config/rs6000/rs6000.md (define_attr "isa"): Add p9.
16801 (define_attr "enabled"): Handle p9.
16803 2020-07-17 Roger Sayle <roger@nextmovesoftware.com>
16805 * function.c (assign_parm_setup_block): Use the macro
16806 TRULY_NOOP_TRUNCATION_MODES_P instead of calling
16807 targetm.truly_noop_truncation directly.
16809 2020-07-17 H.J. Lu <hjl.tools@gmail.com>
16813 * config/i386/sse.md (VF_AVX512VL_VF1_128_256): Renamed to ...
16814 (VF1_AVX512ER_128_256): This. Drop DF vector modes.
16815 (rsqrt<mode>2): Replace VF_AVX512VL_VF1_128_256 with
16816 VF1_AVX512ER_128_256.
16818 2020-07-17 Tamar Christina <tamar.christina@arm.com>
16820 * doc/sourcebuild.texi (dg-set-compiler-env-var,
16821 dg-set-target-env-var): Document.
16823 2020-07-17 Tamar Christina <tamar.christina@arm.com>
16825 * config/arm/driver-arm.c (host_detect_local_cpu): Add GCC_CPUINFO.
16827 2020-07-17 Tamar Christina <tamar.christina@arm.com>
16829 * config/aarch64/driver-aarch64.c (host_detect_local_cpu):
16832 2020-07-17 Tamar Christina <tamar.christina@arm.com>
16834 * config/aarch64/driver-aarch64.c (INCLUDE_SET): New.
16835 (parse_field): Use std::string.
16836 (split_words, readline, find_field): New.
16837 (host_detect_local_cpu): Fix truncation issues.
16839 2020-07-17 Andrew Stubbs <ams@codesourcery.com>
16841 * config/gcn/mkoffload.c (EM_AMDGPU): Undefine before defining.
16842 (ELFOSABI_AMDGPU_HSA): Likewise.
16843 (ELFABIVERSION_AMDGPU_HSA): Likewise.
16844 (EF_AMDGPU_MACH_AMDGCN_GFX803): Likewise.
16845 (EF_AMDGPU_MACH_AMDGCN_GFX900): Likewise.
16846 (EF_AMDGPU_MACH_AMDGCN_GFX906): Likewise.
16847 (reserved): Delete.
16849 2020-07-17 Andrew Pinski <apinksi@marvell.com>
16850 Dmitrij Pochepko <dmitrij.pochepko@bell-sw.com>
16853 * config/aarch64/aarch64.c (aarch64_evpc_ins): New function.
16854 (aarch64_expand_vec_perm_const_1): Call it.
16855 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_copy_lane): Make
16856 public, and add a "@" prefix.
16858 2020-07-17 Andrew Pinski <apinksi@marvell.com>
16859 Dmitrij Pochepko <dmitrij.pochepko@bell-sw.com>
16862 * config/aarch64/aarch64.c (aarch64_evpc_reencode): New function.
16863 (aarch64_expand_vec_perm_const_1): Call it.
16865 2020-07-17 Zhiheng Xie <xiezhiheng@huawei.com>
16867 * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
16868 Add new field flags.
16869 (VAR1): Add new field FLAG in macro.
16885 (aarch64_general_fold_builtin): Likewise.
16886 (aarch64_general_gimple_fold_builtin): Likewise.
16887 * config/aarch64/aarch64-simd-builtins.def: Add default flag for
16888 each built-in function.
16889 * config/aarch64/geniterators.sh: Add new field in BUILTIN macro.
16891 2020-07-17 Andreas Krebbel <krebbel@linux.ibm.com>
16894 * config/s390/s390.c (s390_expand_insv): Invoke the movstrict
16895 expanders to generate the pattern.
16896 * config/s390/s390.md ("*movstricthi", "*movstrictqi"): Remove the
16897 '*' to have callable expanders.
16899 2020-07-16 Hans-Peter Nilsson <hp@axis.com>
16900 Segher Boessenkool <segher@kernel.crashing.org>
16903 * combine.c (is_just_move): Take an rtx_insn* as argument. Use
16906 2020-07-16 Uroš Bizjak <ubizjak@gmail.com>
16909 * config/i386/sync.md
16910 (peephole2 to remove unneded compare after CMPXCHG):
16911 New pattern, also handle XOR zeroing and load of -1 by OR.
16913 2020-07-16 Eric Botcazou <ebotcazou@adacore.com>
16915 * config/i386/i386.c (ix86_compute_frame_layout): Minor tweak.
16916 (ix86_adjust_stack_and_probe): Delete.
16917 (ix86_adjust_stack_and_probe_stack_clash): Rename to above and add
16918 PROTECTION_AREA parameter. If it is true, probe PROBE_INTERVAL plus
16919 a small dope beyond SIZE bytes.
16920 (ix86_emit_probe_stack_range): Use local variable.
16921 (ix86_expand_prologue): Adjust calls to ix86_adjust_stack_and_probe
16922 and tidy up the stack checking code.
16923 * explow.c (get_stack_check_protect): Fix head comment.
16924 (anti_adjust_stack_and_probe_stack_clash): Likewise.
16925 (allocate_dynamic_stack_space): Add comment.
16926 * tree-nested.c (lookup_field_for_decl): Set the DECL_IGNORED_P and
16927 TREE_NO_WARNING but not TREE_ADDRESSABLE flags on the field.
16929 2020-07-16 Andrew Stubbs <ams@codesourcery.com>
16931 * config/gcn/mkoffload.c: Include simple-object.h and elf.h.
16932 (EM_AMDGPU): New macro.
16933 (ELFOSABI_AMDGPU_HSA): New macro.
16934 (ELFABIVERSION_AMDGPU_HSA): New macro.
16935 (EF_AMDGPU_MACH_AMDGCN_GFX803): New macro.
16936 (EF_AMDGPU_MACH_AMDGCN_GFX900): New macro.
16937 (EF_AMDGPU_MACH_AMDGCN_GFX906): New macro.
16938 (R_AMDGPU_NONE): New macro.
16939 (R_AMDGPU_ABS32_LO): New macro.
16940 (R_AMDGPU_ABS32_HI): New macro.
16941 (R_AMDGPU_ABS64): New macro.
16942 (R_AMDGPU_REL32): New macro.
16943 (R_AMDGPU_REL64): New macro.
16944 (R_AMDGPU_ABS32): New macro.
16945 (R_AMDGPU_GOTPCREL): New macro.
16946 (R_AMDGPU_GOTPCREL32_LO): New macro.
16947 (R_AMDGPU_GOTPCREL32_HI): New macro.
16948 (R_AMDGPU_REL32_LO): New macro.
16949 (R_AMDGPU_REL32_HI): New macro.
16950 (reserved): New macro.
16951 (R_AMDGPU_RELATIVE64): New macro.
16952 (gcn_s1_name): Delete global variable.
16953 (gcn_s2_name): Delete global variable.
16954 (gcn_o_name): Delete global variable.
16955 (gcn_cfile_name): Delete global variable.
16956 (files_to_cleanup): New global variable.
16957 (offload_abi): New global variable.
16958 (tool_cleanup): Use files_to_cleanup, not explicit list.
16959 (copy_early_debug_info): New function.
16960 (main): New local variables gcn_s1_name, gcn_s2_name, gcn_o_name,
16962 Create files_to_cleanup obstack.
16963 Recognize -march options.
16964 Copy early debug info from input .o files.
16966 2020-07-16 Andrea Corallo <andrea.corallo@arm.com>
16968 * Makefile.in (TAGS): Remove 'params.def'.
16970 2020-07-16 Roger Sayle <roger@nextmovesoftware.com>
16972 * target.def (TARGET_TRULY_NOOP_TRUNCATION): Clarify that
16973 targets that return false, indicating SUBREGs shouldn't be
16974 used, also need to provide a trunc?i?i2 optab that performs this
16976 * doc/tm.texi: Regenerate.
16978 2020-07-15 Uroš Bizjak <ubizjak@gmail.com>
16981 * config/i386/sync.md
16982 (peephole2 to remove unneded compare after CMPXCHG): New pattern.
16984 2020-07-15 Jakub Jelinek <jakub@redhat.com>
16987 * omp-general.h (struct omp_for_data): Rename min_inner_iterations
16988 member to first_inner_iterations, adjust comment.
16989 * omp-general.c (omp_extract_for_data): Adjust for the above change.
16990 Always use n1first and n2first to compute it, rather than depending
16991 on single_nonrect_cond_code. Similarly, always compute factor
16992 as (m2 - m1) * outer_step / inner_step rather than sometimes m1 - m2
16993 depending on single_nonrect_cond_code.
16994 * omp-expand.c (expand_omp_for_init_vars): Rename min_inner_iterations
16995 to first_inner_iterations and min_inner_iterationsd to
16996 first_inner_iterationsd.
16998 2020-07-15 Jakub Jelinek <jakub@redhat.com>
17001 * config/i386/avx512fintrin.h (_mm512_cmpeq_pd_mask,
17002 _mm512_mask_cmpeq_pd_mask, _mm512_cmplt_pd_mask,
17003 _mm512_mask_cmplt_pd_mask, _mm512_cmple_pd_mask,
17004 _mm512_mask_cmple_pd_mask, _mm512_cmpunord_pd_mask,
17005 _mm512_mask_cmpunord_pd_mask, _mm512_cmpneq_pd_mask,
17006 _mm512_mask_cmpneq_pd_mask, _mm512_cmpnlt_pd_mask,
17007 _mm512_mask_cmpnlt_pd_mask, _mm512_cmpnle_pd_mask,
17008 _mm512_mask_cmpnle_pd_mask, _mm512_cmpord_pd_mask,
17009 _mm512_mask_cmpord_pd_mask, _mm512_cmpeq_ps_mask,
17010 _mm512_mask_cmpeq_ps_mask, _mm512_cmplt_ps_mask,
17011 _mm512_mask_cmplt_ps_mask, _mm512_cmple_ps_mask,
17012 _mm512_mask_cmple_ps_mask, _mm512_cmpunord_ps_mask,
17013 _mm512_mask_cmpunord_ps_mask, _mm512_cmpneq_ps_mask,
17014 _mm512_mask_cmpneq_ps_mask, _mm512_cmpnlt_ps_mask,
17015 _mm512_mask_cmpnlt_ps_mask, _mm512_cmpnle_ps_mask,
17016 _mm512_mask_cmpnle_ps_mask, _mm512_cmpord_ps_mask,
17017 _mm512_mask_cmpord_ps_mask): Move outside of __OPTIMIZE__ guarded
17020 2020-07-15 Jakub Jelinek <jakub@redhat.com>
17023 * builtins.c: Include gimple-ssa.h, tree-ssa-live.h and
17025 (expand_expr_force_mode): If exp is a SSA_NAME with different mode
17026 from MODE and get_gimple_for_ssa_name is a cast from MODE, use the
17029 2020-07-15 Jiufu Guo <guojiufu@cn.ibm.com>
17031 * config/rs6000/rs6000.c (rs6000_loop_unroll_adjust): Refine hook.
17033 2020-07-14 David Edelsohn <dje.gcc@gmail.com>
17035 * config/rs6000/rs6000.md (rotldi3_insert_sf): Add TARGET_POWERPC64
17037 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Add
17038 TARGET_POWERPC64 requirement to TARGET_P8_VECTOR case.
17040 2020-07-14 Lewis Hyatt <lhyatt@gmail.com>
17042 PR preprocessor/49973
17044 * common.opt: Handle -ftabstop here instead of in c-family
17045 options. Add -fdiagnostics-column-unit= and
17046 -fdiagnostics-column-origin= options.
17047 * opts.c (common_handle_option): Handle the new options.
17048 * diagnostic-format-json.cc (json_from_expanded_location): Add
17049 diagnostic_context argument. Use it to convert column numbers as per
17051 (json_from_location_range): Likewise.
17052 (json_from_fixit_hint): Likewise.
17053 (json_end_diagnostic): Pass the new context argument to helper
17054 functions above. Add "column-origin" field to the output.
17055 (test_unknown_location): Add the new context argument to calls to
17057 (test_bad_endpoints): Likewise.
17058 * diagnostic-show-locus.c
17059 (exploc_with_display_col::exploc_with_display_col): Support
17061 (layout_point::layout_point): Make use of class
17062 exploc_with_display_col.
17063 (layout_range::layout_range): Likewise.
17064 (struct line_bounds): Clarify that the units are now always
17065 display columns. Rename members accordingly. Add constructor.
17066 (layout::print_source_line): Add support for tab expansion.
17067 (make_range): Adapt to class layout_range changes.
17068 (layout::maybe_add_location_range): Likewise.
17069 (layout::layout): Adapt to class exploc_with_display_col changes.
17070 (layout::calculate_x_offset_display): Support tabstop parameter.
17071 (layout::print_annotation_line): Adapt to struct line_bounds changes.
17072 (layout::print_line): Likewise.
17073 (line_label::line_label): Add diagnostic_context argument.
17074 (get_affected_range): Likewise.
17075 (get_printed_columns): Likewise.
17076 (layout::print_any_labels): Adapt to struct line_label changes.
17077 (class correction): Add m_tabstop member.
17078 (correction::correction): Add tabstop argument.
17079 (correction::compute_display_cols): Use m_tabstop.
17080 (class line_corrections): Add m_context member.
17081 (line_corrections::line_corrections): Add diagnostic_context argument.
17082 (line_corrections::add_hint): Use m_context to handle tabstops.
17083 (layout::print_trailing_fixits): Adapt to class line_corrections
17085 (test_layout_x_offset_display_utf8): Support tabstop parameter.
17086 (test_layout_x_offset_display_tab): New selftest.
17087 (test_one_liner_colorized_utf8): Likewise.
17088 (test_tab_expansion): Likewise.
17089 (test_diagnostic_show_locus_one_liner_utf8): Call the new tests.
17090 (diagnostic_show_locus_c_tests): Likewise.
17091 (test_overlapped_fixit_printing): Adapt to helper class and
17093 (test_overlapped_fixit_printing_utf8): Likewise.
17094 (test_overlapped_fixit_printing_2): Likewise.
17095 * diagnostic.h (enum diagnostics_column_unit): New enum.
17096 (struct diagnostic_context): Add members for the new options.
17097 (diagnostic_converted_column): Declare.
17098 (json_from_expanded_location): Add new context argument.
17099 * diagnostic.c (diagnostic_initialize): Initialize new members.
17100 (diagnostic_converted_column): New function.
17101 (maybe_line_and_column): Be willing to output a column of 0.
17102 (diagnostic_get_location_text): Convert column number as per the new
17104 (diagnostic_report_current_module): Likewise.
17105 (assert_location_text): Add origin and column_unit arguments for
17106 testing the new functionality.
17107 (test_diagnostic_get_location_text): Test the new functionality.
17108 * doc/invoke.texi: Document the new options and behavior.
17109 * input.h (location_compute_display_column): Add tabstop argument.
17110 * input.c (location_compute_display_column): Likewise.
17111 (test_cpp_utf8): Add selftests for tab expansion.
17112 * tree-diagnostic-path.cc (default_tree_make_json_for_path): Pass the
17113 new context argument to json_from_expanded_location().
17115 2020-07-14 Jakub Jelinek <jakub@redhat.com>
17117 PR middle-end/96194
17118 * expr.c (expand_constructor): Don't create temporary for store to
17119 volatile MEM if exp has an addressable type.
17121 2020-07-14 Nathan Sidwell <nathan@acm.org>
17123 * hash-map.h (hash_map::get): Note it is a pointer to value.
17124 * incpath.h (incpath_kind): Align comments.
17126 2020-07-14 Nathan Sidwell <nathan@acm.org>
17128 * tree-core.h (tree_decl_with_vis, tree_function_decl):
17129 Note additional padding on 64-bits
17130 * tree.c (cache_integer_cst): Note why no caching of enum literals.
17131 (get_tree_code_name): Robustify error case.
17133 2020-07-14 Nathan Sidwell <nathan@acm.org>
17135 * doc/gty.texi: Fic gt_cleare_cache name.
17136 * doc/invoke.texi: Remove duplicate opindex Wabi-tag.
17138 2020-07-14 Jakub Jelinek <jakub@redhat.com>
17140 * omp-general.h (struct omp_for_data): Add adjn1 member.
17141 * omp-general.c (omp_extract_for_data): For non-rect loop, punt on
17142 count computing if n1, n2 or step are not INTEGER_CST earlier.
17143 Narrow the outer iterator range if needed so that non-rect loop
17144 has at least one iteration for each outer range iteration. Compute
17146 * omp-expand.c (expand_omp_for_init_vars): Use adjn1 if non-NULL
17147 instead of the outer loop's n1.
17149 2020-07-14 Matthias Klose <doko@ubuntu.com>
17152 * lto-wrapper.c (merge_and_complain): Add decoded options as parameter,
17153 error on different values for -fcf-protection.
17154 (append_compiler_options): Pass -fcf-protection option.
17155 (find_and_merge_options): Add decoded options as parameter,
17156 pass decoded_options to merge_and_complain.
17157 (run_gcc): Pass decoded options to find_and_merge_options.
17158 * lto-opts.c (lto_write_options): Pass -fcf-protection option.
17160 2020-07-13 Alan Modra <amodra@gmail.com>
17162 * config/rs6000/rs6000.md (sibcall_local): Merge sibcall_local32
17163 and sibcall_local64.
17164 (sibcall_value_local): Similarly.
17166 2020-07-13 Nathan Sidwell <nathan@acm.org>
17168 * Makefile.in (distclean): Remove long gone cxxmain.c
17170 2020-07-13 H.J. Lu <hjl.tools@gmail.com>
17173 * config/i386/i386.md (cmpstrnsi): Pass a copy of the string
17174 length to cmpstrnqi patterns.
17176 2020-07-13 Jakub Jelinek <jakub@redhat.com>
17179 * ipa-fnsummary.c (analyze_function_body): Treat NULL bb->aux
17180 as false predicate.
17182 2020-07-13 Richard Biener <rguenther@suse.de>
17184 PR tree-optimization/96163
17185 * tree-vect-slp.c (vect_schedule_slp_instance): Put new stmts
17186 at least after region begin.
17188 2020-07-13 Szabolcs Nagy <szabolcs.nagy@arm.com>
17190 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add
17191 __ARM_FEATURE_PAC_DEFAULT support.
17193 2020-07-13 Szabolcs Nagy <szabolcs.nagy@arm.com>
17196 * doc/extend.texi: Update the text for __builtin_return_address.
17198 2020-07-13 Szabolcs Nagy <szabolcs.nagy@arm.com>
17201 * config/aarch64/aarch64.c (aarch64_return_address_signing_enabled):
17202 Disable return address signing if __builtin_eh_return is used.
17204 2020-07-13 Szabolcs Nagy <szabolcs.nagy@arm.com>
17208 * config/aarch64/aarch64-protos.h (aarch64_return_addr_rtx): Declare.
17209 * config/aarch64/aarch64.c (aarch64_return_addr_rtx): New.
17210 (aarch64_return_addr): Use aarch64_return_addr_rtx.
17211 * config/aarch64/aarch64.h (PROFILE_HOOK): Likewise.
17213 2020-07-13 Richard Sandiford <richard.sandiford@arm.com>
17215 PR middle-end/95114
17216 * tree.h (virtual_method_call_p): Add a default-false parameter
17217 that indicates whether the function is being called from dump
17219 (obj_type_ref_class): Likewise.
17220 * tree.c (virtual_method_call_p): Likewise.
17221 * ipa-devirt.c (obj_type_ref_class): Likewise. Lazily add ODR
17222 type information for the type when the parameter is false.
17223 * tree-pretty-print.c (dump_generic_node): Update calls to
17224 virtual_method_call_p and obj_type_ref_class accordingly.
17226 2020-07-13 Julian Brown <julian@codesourcery.com>
17227 Thomas Schwinge <thomas@codesourcery.com>
17229 * gimplify.c (gimplify_scan_omp_clauses): Do not strip
17230 GOMP_MAP_TO_PSET/GOMP_MAP_POINTER for OpenACC enter/exit data
17231 directives (see also PR92929).
17233 2020-07-13 Roger Sayle <roger@nextmovesoftware.com>
17235 * convert.c (convert_to_integer_1): Narrow integer operations
17236 even on targets that require explicit truncation instructions.
17238 2020-07-13 Hans-Peter Nilsson <hp@axis.com>
17241 * config/cris/cris-passes.def: New file.
17242 * config/cris/t-cris (PASSES_EXTRA): Add cris-passes.def.
17243 * config/cris/cris.c: Add infrastructure bits and pass execute
17244 function cris_postdbr_cmpelim.
17245 * config/cris/cris-protos.h (make_pass_cris_postdbr_cmpelim): Declare.
17247 2020-07-13 Hans-Peter Nilsson <hp@axis.com>
17249 * config/cris/t-cris: Remove gt-cris.h-related excessive cargo.
17251 2020-07-13 Hans-Peter Nilsson <hp@axis.com>
17254 * config/cris/cris.md ("*add<mode>3_addi"): New splitter.
17255 ("*addi_b_<mode>"): New pattern.
17256 ("*addsi3<setnz>"): Remove stale %-related comment.
17258 2020-07-13 Hans-Peter Nilsson <hp@axis.com>
17260 * config/cris/cris.md ("setnz_subst", "setnz_subst", "setcc_subst"):
17261 Use match_dup in output template, not match_operand.
17263 2020-07-13 Richard Biener <rguenther@suse.de>
17265 * var-tracking.c (bb_heap_node_t): Remove unused typedef.
17266 (vt_find_locations): Eliminate visited bitmap in favor of
17267 RPO order check. Dump statistics about the number of
17268 local BB dataflow computes.
17270 2020-07-13 Richard Biener <rguenther@suse.de>
17272 PR middle-end/94600
17273 * expr.c (expand_constructor): Make a temporary also if we're
17274 storing to volatile memory.
17276 2020-07-13 Xionghu Luo <luoxhu@linux.ibm.com>
17278 * config/rs6000/rs6000.md (rotl_unspec): New
17279 define_insn_and_split.
17281 2020-07-13 Xionghu Luo <luoxhu@linux.ibm.com>
17283 * config/rs6000/rs6000.c (rs6000_expand_vector_init):
17284 Move V4SF to V4SI, init vector like V4SI and move to V4SF back.
17286 2020-07-11 Roger Sayle <roger@nextmovesoftware.com>
17288 * internal-fn.c (expand_mul_overflow): When checking for signed
17289 overflow from a widening multiplication, we access the truncated
17290 lowpart RES twice, so keep this value in a pseudo register.
17292 2020-07-11 Richard Sandiford <richard.sandiford@arm.com>
17294 PR tree-optimization/96146
17295 * value-range.cc (value_range::set): Only decompose POLY_INT_CST
17296 bounds to integers for VR_RANGE. Decay to VR_VARYING for anti-ranges
17297 involving POLY_INT_CSTs.
17299 2020-07-10 David Edelsohn <dje.gcc@gmail.com>
17302 * config/rs6000/rs6000.c (rs6000_xcoff_select_section): Only
17303 create named section for VAR_DECL or FUNCTION_DECL.
17305 2020-07-10 Joseph Myers <joseph@codesourcery.com>
17307 * glimits.h [__STDC_VERSION__ > 201710L] (BOOL_MAX, BOOL_WIDTH):
17310 2020-07-10 Alexander Popov <alex.popov@linux.com>
17312 * shrink-wrap.c (try_shrink_wrapping): Improve debug output.
17314 2020-07-10 Richard Sandiford <richard.sandiford@arm.com>
17316 PR middle-end/96151
17317 * expr.c (expand_expr_real_2): When reducing bit fields,
17318 clear the target if it has a different mode from the expression.
17319 (reduce_to_bit_field_precision): Don't do that here. Instead
17320 assert that the target already has the correct mode.
17322 2020-07-10 Richard Sandiford <richard.sandiford@arm.com>
17326 * config/arm/arm.c (arm_attribute_table): Add
17327 "Advanced SIMD type".
17328 (arm_comp_type_attributes): Check that the "Advanced SIMD type"
17329 attributes are equal.
17330 * config/arm/arm-builtins.c: Include stringpool.h and
17332 (arm_mangle_builtin_vector_type): Use the mangling recorded
17333 in the "Advanced SIMD type" attribute.
17334 (arm_init_simd_builtin_types): Add an "Advanced SIMD type"
17335 attribute to each Advanced SIMD type, using the mangled type
17336 as the attribute's single argument.
17338 2020-07-10 Carl Love <cel@us.ibm.com>
17340 * config/rs6000/vsx.md (VSX_MM): New define_mode_iterator.
17341 (VSX_MM4): New define_mode_iterator.
17342 (vec_mtvsrbmi): New define_insn.
17343 (vec_mtvsr_<mode>): New define_insn.
17344 (vec_cntmb_<mode>): New define_insn.
17345 (vec_extract_<mode>): New define_insn.
17346 (vec_expand_<mode>): New define_insn.
17347 (define_c_enum unspec): Add entries UNSPEC_MTVSBM, UNSPEC_VCNTMB,
17348 UNSPEC_VEXTRACT, UNSPEC_VEXPAND.
17349 * config/rs6000/altivec.h ( vec_genbm, vec_genhm, vec_genwm,
17350 vec_gendm, vec_genqm, vec_cntm, vec_expandm, vec_extractm): Add
17352 * config/rs6000/rs6000-builtin.def: Add defines BU_P10_2, BU_P10_1.
17353 (BU_P10_1): Add definitions for mtvsrbm, mtvsrhm, mtvsrwm,
17354 mtvsrdm, mtvsrqm, vexpandmb, vexpandmh, vexpandmw, vexpandmd,
17355 vexpandmq, vextractmb, vextractmh, vextractmw, vextractmd, vextractmq.
17356 (BU_P10_2): Add definitions for cntmbb, cntmbh, cntmbw, cntmbd.
17357 (BU_P10_OVERLOAD_1): Add definitions for mtvsrbm, mtvsrhm,
17358 mtvsrwm, mtvsrdm, mtvsrqm, vexpandm, vextractm.
17359 (BU_P10_OVERLOAD_2): Add defition for cntm.
17360 * config/rs6000/rs6000-call.c (rs6000_expand_binop_builtin): Add
17361 checks for CODE_FOR_vec_cntmbb_v16qi, CODE_FOR_vec_cntmb_v8hi,
17362 CODE_FOR_vec_cntmb_v4si, CODE_FOR_vec_cntmb_v2di.
17363 (altivec_overloaded_builtins): Add overloaded argument entries for
17364 P10_BUILTIN_VEC_MTVSRBM, P10_BUILTIN_VEC_MTVSRHM,
17365 P10_BUILTIN_VEC_MTVSRWM, P10_BUILTIN_VEC_MTVSRDM,
17366 P10_BUILTIN_VEC_MTVSRQM, P10_BUILTIN_VEC_VCNTMBB,
17367 P10_BUILTIN_VCNTMBB, P10_BUILTIN_VCNTMBH,
17368 P10_BUILTIN_VCNTMBW, P10_BUILTIN_VCNTMBD,
17369 P10_BUILTIN_VEXPANDMB, P10_BUILTIN_VEXPANDMH,
17370 P10_BUILTIN_VEXPANDMW, P10_BUILTIN_VEXPANDMD,
17371 P10_BUILTIN_VEXPANDMQ, P10_BUILTIN_VEXTRACTMB,
17372 P10_BUILTIN_VEXTRACTMH, P10_BUILTIN_VEXTRACTMW,
17373 P10_BUILTIN_VEXTRACTMD, P10_BUILTIN_VEXTRACTMQ.
17374 (builtin_function_type): Add case entries for P10_BUILTIN_MTVSRBM,
17375 P10_BUILTIN_MTVSRHM, P10_BUILTIN_MTVSRWM, P10_BUILTIN_MTVSRDM,
17376 P10_BUILTIN_MTVSRQM, P10_BUILTIN_VCNTMBB, P10_BUILTIN_VCNTMBH,
17377 P10_BUILTIN_VCNTMBW, P10_BUILTIN_VCNTMBD,
17378 P10_BUILTIN_VEXPANDMB, P10_BUILTIN_VEXPANDMH,
17379 P10_BUILTIN_VEXPANDMW, P10_BUILTIN_VEXPANDMD,
17380 P10_BUILTIN_VEXPANDMQ.
17381 * config/rs6000/rs6000-builtin.def (altivec_overloaded_builtins): Add
17382 entries for MTVSRBM, MTVSRHM, MTVSRWM, MTVSRDM, MTVSRQM, VCNTM,
17383 VEXPANDM, VEXTRACTM.
17385 2020-07-10 Bill Seurer, 507-253-3502, seurer@us.ibm.com <(no_default)>
17388 * config/rs6000/rs6000-call.c: Add new type v16qi_ftype_pcvoid.
17389 (altivec_init_builtins) Change __builtin_altivec_mask_for_load to use
17390 v16qi_ftype_pcvoid with correct number of parameters.
17392 2020-07-10 H.J. Lu <hjl.tools@gmail.com>
17395 * config/i386/i386-expand.c (ix86_emit_swsqrtsf): Check
17396 TARGET_AVX512VL when enabling FMA.
17398 2020-07-10 Andrea Corallo <andrea.corallo@arm.com>
17399 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
17400 Iain Apreotesei <iain.apreotesei@arm.com>
17402 * config/arm/arm-protos.h (arm_target_insn_ok_for_lob): New
17404 * config/arm/arm.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
17405 (arm_invalid_within_doloop): Implement invalid_within_doloop hook.
17406 (arm_target_insn_ok_for_lob): New function.
17407 * config/arm/arm.h (TARGET_HAVE_LOB): Define macro.
17408 * config/arm/thumb2.md (*doloop_end_internal, doloop_begin)
17409 (dls_insn): Add new patterns.
17410 (doloop_end): Modify to select LR when LOB is available.
17411 * config/arm/unspecs.md: Add new unspec.
17412 * doc/sourcebuild.texi (arm_v8_1_lob_ok)
17413 (arm_thumb2_ok_no_arm_v8_1_lob): Document new target supports
17416 2020-07-10 Richard Biener <rguenther@suse.de>
17418 PR tree-optimization/96133
17419 * gimple-fold.c (fold_array_ctor_reference): Do not
17420 recurse to folding a CTOR that does not fully cover the
17423 2020-07-10 Cui,Lili <lili.cui@intel.com>
17425 * common/config/i386/cpuinfo.h
17426 (get_intel_cpu): Handle sapphirerapids.
17427 * common/config/i386/i386-common.c
17428 (processor_names): Add sapphirerapids and alderlake.
17429 (processor_alias_table): Add sapphirerapids and alderlake.
17430 * common/config/i386/i386-cpuinfo.h
17431 (processor_subtypes): Add INTEL_COREI7_ALDERLAKE and
17432 INTEL_COREI7_ALDERLAKE.
17433 * config.gcc: Add -march=sapphirerapids and alderlake.
17434 * config/i386/driver-i386.c
17435 (host_detect_local_cpu) Handle sapphirerapids and alderlake.
17436 * config/i386/i386-c.c
17437 (ix86_target_macros_internal): Handle sapphirerapids and alderlake.
17438 * config/i386/i386-options.c
17439 (m_SAPPHIRERAPIDS) : Define.
17440 (m_ALDERLAKE): Ditto.
17441 (m_CORE_AVX512) : Add m_SAPPHIRERAPIDS.
17442 (processor_cost_table): Add sapphirerapids and alderlake.
17443 (ix86_option_override_internal) Handle PTA_WAITPKG, PTA_ENQCMD,
17444 PTA_CLDEMOTE, PTA_SERIALIZE, PTA_TSXLDTRK.
17445 * config/i386/i386.h
17446 (ix86_size_cost) : Define SAPPHIRERAPIDS and ALDERLAKE.
17447 (processor_type) : Add PROCESSOR_SAPPHIRERAPIDS and
17448 PROCESSOR_ALDERLAKE.
17450 (PTA_CLDEMOTE): Ditto.
17451 (PTA_SERIALIZE): Ditto.
17452 (PTA_TSXLDTRK): New.
17453 (PTA_SAPPHIRERAPIDS): Ditto.
17454 (PTA_ALDERLAKE): Ditto.
17455 (processor_type) : Add PROCESSOR_SAPPHIRERAPIDS and
17456 PROCESSOR_ALDERLAKE.
17457 * doc/extend.texi: Add sapphirerapids and alderlake.
17458 * doc/invoke.texi: Add sapphirerapids and alderlake.
17460 2020-07-10 Martin Liska <mliska@suse.cz>
17462 * dumpfile.c [profile-report]: Add new profile dump.
17463 * dumpfile.h (enum tree_dump_index): Ad TDI_profile_report.
17464 * passes.c (pass_manager::dump_profile_report): Change stderr
17467 2020-07-10 Kewen Lin <linkw@linux.ibm.com>
17469 * tree-vect-loop.c (vect_transform_loop): Use LOOP_VINFO_NITERS which
17470 is adjusted by considering peeled prologue for non
17471 vect_use_loop_mask_for_alignment_p cases.
17473 2020-07-09 Peter Bergner <bergner@linux.ibm.com>
17476 * config/rs6000/rs6000-call.c (rs6000_init_builtins): Define the MMA
17477 specific types __vector_quad and __vector_pair, and initialize the
17478 MMA built-ins if TARGET_EXTRA_BUILTINS is set.
17479 (mma_init_builtins): Don't test for mask set in rs6000_builtin_mask.
17480 Remove now unneeded mask variable.
17481 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add the
17482 OPTION_MASK_MMA flag for power10 if not already set.
17484 2020-07-09 Richard Biener <rguenther@suse.de>
17486 PR tree-optimization/96133
17487 * tree-vect-slp.c (vect_build_slp_tree_1): Compare load_p
17488 status between stmts.
17490 2020-07-09 H.J. Lu <hjl.tools@gmail.com>
17493 * config/i386/i386-expand.c (ix86_emit_swsqrtsf): Enable FMA.
17494 * config/i386/sse.md (VF_AVX512VL_VF1_128_256): New.
17495 (rsqrt<mode>2): Replace VF1_128_256 with VF_AVX512VL_VF1_128_256.
17496 (rsqrtv16sf2): Removed.
17498 2020-07-09 Richard Biener <rguenther@suse.de>
17500 * tree-vectorizer.h (vect_verify_datarefs_alignment): Remove.
17501 (vect_slp_analyze_and_verify_instance_alignment): Rename to ...
17502 (vect_slp_analyze_instance_alignment): ... this.
17503 * tree-vect-data-refs.c (verify_data_ref_alignment): Remove.
17504 (vect_verify_datarefs_alignment): Likewise.
17505 (vect_enhance_data_refs_alignment): Do not call
17506 vect_verify_datarefs_alignment.
17507 (vect_slp_analyze_node_alignment): Rename from
17508 vect_slp_analyze_and_verify_node_alignment and do not
17509 call verify_data_ref_alignment.
17510 (vect_slp_analyze_instance_alignment): Rename from
17511 vect_slp_analyze_and_verify_instance_alignment.
17512 * tree-vect-stmts.c (vectorizable_store): Dump when
17513 we vectorize an unaligned access.
17514 (vectorizable_load): Likewise.
17515 * tree-vect-loop.c (vect_analyze_loop_2): Do not call
17516 vect_verify_datarefs_alignment.
17517 * tree-vect-slp.c (vect_slp_analyze_bb_1): Adjust.
17519 2020-07-09 Bin Cheng <bin.cheng@linux.alibaba.com>
17521 PR tree-optimization/95804
17522 * tree-loop-distribution.c (break_alias_scc_partitions): Force
17523 negative post order to reduction partition.
17525 2020-07-09 Jakub Jelinek <jakub@redhat.com>
17527 * omp-general.h (struct omp_for_data): Add min_inner_iterations
17528 and factor members.
17529 * omp-general.c (omp_extract_for_data): Initialize them and remember
17530 them in OMP_CLAUSE_COLLAPSE_COUNT if needed and restore from there.
17531 * omp-expand.c (expand_omp_for_init_counts): Fix up computation of
17532 counts[fd->last_nonrect] if fd->loop.n2 is INTEGER_CST.
17533 (expand_omp_for_init_vars): For
17534 fd->first_nonrect + 1 == fd->last_nonrect loops with for now
17535 INTEGER_CST fd->loop.n2 find quadratic equation roots instead of
17536 using fallback method when possible.
17538 2020-07-09 Omar Tahir <omar.tahir@arm.com>
17540 * ira.c (move_unallocated_pseudos): Zero first_moveable_pseudo and
17541 last_moveable_pseudo before returning.
17543 2020-07-09 Szabolcs Nagy <szabolcs.nagy@arm.com>
17545 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add
17546 __ARM_FEATURE_BTI_DEFAULT support.
17548 2020-07-09 Matthew Malcomson <matthew.malcomson@arm.com>
17550 * config/aarch64/aarch64-protos.h (aarch64_indirect_call_asm):
17552 * config/aarch64/aarch64.c (aarch64_regno_regclass): Handle new
17553 stub registers class.
17554 (aarch64_class_max_nregs): Likewise.
17555 (aarch64_register_move_cost): Likewise.
17556 (aarch64_sls_shared_thunks): Global array to store stub labels.
17557 (aarch64_sls_emit_function_stub): New.
17558 (aarch64_create_blr_label): New.
17559 (aarch64_sls_emit_blr_function_thunks): New.
17560 (aarch64_sls_emit_shared_blr_thunks): New.
17561 (aarch64_asm_file_end): New.
17562 (aarch64_indirect_call_asm): New.
17563 (TARGET_ASM_FILE_END): Use aarch64_asm_file_end.
17564 (TARGET_ASM_FUNCTION_EPILOGUE): Use
17565 aarch64_sls_emit_blr_function_thunks.
17566 * config/aarch64/aarch64.h (STB_REGNUM_P): New.
17567 (enum reg_class): Add STUB_REGS class.
17568 (machine_function): Introduce `call_via` array for
17569 function-local stub labels.
17570 * config/aarch64/aarch64.md (*call_insn, *call_value_insn): Use
17571 aarch64_indirect_call_asm to emit code when hardening BLR
17573 * config/aarch64/constraints.md (Ucr): New constraint
17574 representing registers for indirect calls. Is GENERAL_REGS
17575 usually, and STUB_REGS when hardening BLR instruction against
17577 * config/aarch64/predicates.md (aarch64_general_reg): STUB_REGS class
17578 is also a general register.
17580 2020-07-09 Matthew Malcomson <matthew.malcomson@arm.com>
17582 * config/aarch64/aarch64-protos.h (aarch64_sls_barrier): New.
17583 * config/aarch64/aarch64.c (aarch64_output_casesi): Emit
17584 speculation barrier after BR instruction if needs be.
17585 (aarch64_trampoline_init): Handle ptr_mode value & adjust size
17587 (aarch64_sls_barrier): New.
17588 (aarch64_asm_trampoline_template): Add needed barriers.
17589 * config/aarch64/aarch64.h (AARCH64_ISA_SB): New.
17591 (TRAMPOLINE_SIZE): Account for barrier.
17592 * config/aarch64/aarch64.md (indirect_jump, *casesi_dispatch,
17593 simple_return, *do_return, *sibcall_insn, *sibcall_value_insn):
17594 Emit barrier if needs be, also account for possible barrier using
17595 "sls_length" attribute.
17596 (sls_length): New attribute.
17597 (length): Determine default using any non-default sls_length
17600 2020-07-09 Matthew Malcomson <matthew.malcomson@arm.com>
17602 * config/aarch64/aarch64-protos.h (aarch64_harden_sls_retbr_p):
17604 (aarch64_harden_sls_blr_p): New.
17605 * config/aarch64/aarch64.c (enum aarch64_sls_hardening_type):
17607 (aarch64_harden_sls_retbr_p): New.
17608 (aarch64_harden_sls_blr_p): New.
17609 (aarch64_validate_sls_mitigation): New.
17610 (aarch64_override_options): Parse options for SLS mitigation.
17611 * config/aarch64/aarch64.opt (-mharden-sls): New option.
17612 * doc/invoke.texi: Document new option.
17614 2020-07-09 Kewen Lin <linkw@linux.ibm.com>
17616 * tree-vect-stmts.c (vectorizable_condition): Prohibit vectorization
17617 with partial vectors explicitly excepting for EXTRACT_LAST_REDUCTION
17618 or nested-cycle reduction.
17620 2020-07-09 Kewen Lin <linkw@linux.ibm.com>
17622 * tree-vect-loop.c (vect_analyze_loop_2): Update dumping string
17623 for fully masking to be more common.
17625 2020-07-09 Kito Cheng <kito.cheng@sifive.com>
17627 * config/riscv/riscv.md (get_thread_pointer<mode>): New.
17628 (TP_REGNUM): Ditto.
17629 * doc/extend.texi (Target Builtins): Add RISC-V built-in section.
17630 Document __builtin_thread_pointer.
17632 2020-07-09 Kito Cheng <kito.cheng@sifive.com>
17634 * config/riscv/riscv-sr.c (riscv_remove_unneeded_save_restore_calls):
17635 Abort if any arguments on stack.
17637 2020-07-08 Eric Botcazou <ebotcazou@adacore.com>
17639 * gimple-fold.c (gimple_fold_builtin_memory_op): Do not fold if
17640 either type has reverse scalar storage order.
17641 * tree-ssa-sccvn.c (vn_reference_lookup_3): Do not propagate through
17642 a memory copy if either type has reverse scalar storage order.
17644 2020-07-08 Tobias Burnus <tobias@codesourcery.com>
17646 * config/gcn/mkoffload.c (compile_native, main): Pass -fPIC/-fpic
17647 on to the native compiler, if used.
17648 * config/nvptx/mkoffload.c (compile_native, main): Likewise.
17650 2020-07-08 Will Schmidt <will_schmidt@vnet.ibm.com>
17652 * config/rs6000/altivec.h (vec_vmsumudm): New define.
17653 * config/rs6000/altivec.md (UNSPEC_VMSUMUDM): New unspec.
17654 (altivec_vmsumudm): New define_insn.
17655 * config/rs6000/rs6000-builtin.def (altivec_vmsumudm): New BU_ALTIVEC_3
17656 entry. (vmsumudm): New BU_ALTIVEC_OVERLOAD_3 entry.
17657 * config/rs6000/rs6000-call.c (altivec_overloaded_builtins): Add entries for
17658 ALTIVEC_BUILTIN_VMSUMUDM variants of vec_msum.
17659 * doc/extend.texi: Add document for vmsumudm behind vmsum.
17661 2020-07-08 Richard Biener <rguenther@suse.de>
17663 * tree-vect-stmts.c (get_group_load_store_type): Pass
17664 in the SLP node and the alignment support scheme output.
17666 (get_load_store_type): Likewise.
17667 (vectorizable_store): Adjust.
17668 (vectorizable_load): Likewise.
17670 2020-07-08 Richard Sandiford <richard.sandiford@arm.com>
17672 PR middle-end/95694
17673 * expr.c (expand_expr_real_2): Get the mode from the type rather
17674 than the rtx, and assert that it is consistent with the mode of
17675 the rtx (where known). Optimize all constant integers, not just
17676 those that can be represented in poly_int64.
17678 2020-07-08 Kewen Lin <linkw@linux.ibm.com>
17680 * config/rs6000/vsx.md (len_load_v16qi): New define_expand.
17681 (len_store_v16qi): Likewise.
17683 2020-07-08 Kewen Lin <linkw@linux.ibm.com>
17685 * doc/md.texi (len_load_@var{m}): Document.
17686 (len_store_@var{m}): Likewise.
17687 * internal-fn.c (len_load_direct): New macro.
17688 (len_store_direct): Likewise.
17689 (expand_len_load_optab_fn): Likewise.
17690 (expand_len_store_optab_fn): Likewise.
17691 (direct_len_load_optab_supported_p): Likewise.
17692 (direct_len_store_optab_supported_p): Likewise.
17693 (expand_mask_load_optab_fn): New macro. Original renamed to ...
17694 (expand_partial_load_optab_fn): ... here. Add handlings for
17696 (expand_mask_store_optab_fn): New macro. Original renamed to ...
17697 (expand_partial_store_optab_fn): ... here. Add handlings for
17699 (internal_load_fn_p): Handle IFN_LEN_LOAD.
17700 (internal_store_fn_p): Handle IFN_LEN_STORE.
17701 (internal_fn_stored_value_index): Handle IFN_LEN_STORE.
17702 * internal-fn.def (LEN_LOAD): New internal function.
17703 (LEN_STORE): Likewise.
17704 * optabs.def (len_load_optab, len_store_optab): New optab.
17706 2020-07-07 Anton Youdkevitch <anton.youdkevitch@bell-sw.com>
17708 * config/aarch64/aarch64.c (thunderx2t99_regmove_cost,
17709 thunderx2t99_vector_cost): Likewise.
17711 2020-07-07 Richard Biener <rguenther@suse.de>
17713 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Fix
17714 group overlap condition to allow negative step DR groups.
17715 * tree-vect-stmts.c (get_group_load_store_type): For
17716 multi element SLP groups force VMAT_STRIDED_SLP when the step
17719 2020-07-07 Qian Jianhua <qianjh@cn.fujitsu.com>
17721 * doc/generic.texi: Fix typo.
17723 2020-07-07 Richard Biener <rguenther@suse.de>
17725 * lto-streamer-out.c (cmp_symbol_files): Use the computed
17726 order map to sort symbols from the same sub-file together.
17727 (lto_output): Compute a map of sub-file to an order number
17728 it appears in the symbol output array.
17730 2020-07-06 Richard Biener <rguenther@suse.de>
17732 PR tree-optimization/96075
17733 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
17734 TYPE_SIZE_UNIT of the vector component type instead of DR_STEP
17735 for the misalignment calculation for negative step.
17737 2020-07-06 Roger Sayle <roger@nextmovesoftware.com>
17739 * config/nvptx/nvptx.md (*vadd_addsi4): New instruction.
17740 (*vsub_addsi4): New instruction.
17742 2020-07-06 Hans-Peter Nilsson <hp@axis.com>
17744 * config/cris/cris.md (movulsr): New peephole2.
17746 2020-07-06 Hans-Peter Nilsson <hp@axis.com>
17748 * config/cris/sync.md ("cris_atomic_fetch_<atomic_op_name><mode>_1"):
17749 Correct gcc_assert of overlapping operands.
17751 2020-07-05 Hans-Peter Nilsson <hp@axis.com>
17753 * config/cris/cris.c (cris_select_cc_mode): Always return
17754 CC_NZmode for matching comparisons. Clarify comments.
17755 * config/cris/cris-modes.def: Clarify mode comment.
17756 * config/cris/cris.md (plusminus, plusminusumin, plusumin): New
17758 (addsub, addsubbo, nd): New code iterator attributes.
17759 ("*<addsub><su>qihi"): Rename from "*extopqihi". Use code
17760 iterator constructs instead of match_operator constructs.
17761 ("*<addsubbo><su><nd><mode>si<setnz>"): Similar from
17762 "*extop<mode>si<setnz>".
17763 ("*add<su>qihi_swap"): Similar from "*addxqihi_swap".
17764 ("*<addsubbo><su><nd><mode>si<setnz>_swap"): Similar from
17765 "*extop<mode>si<setnz>_swap".
17767 2020-07-05 Hans-Peter Nilsson <hp@axis.com>
17769 * config/cris/cris.md ("*extopqihi", "*extop<mode>si<setnz>_swap")
17770 ("*extop<mode>si<setnz>", "*addxqihi_swap"): Reinstate.
17772 2020-07-03 Eric Botcazou <ebotcazou@adacore.com>
17774 * gimple-fold.c (gimple_fold_builtin_memory_op): Fold calls that
17775 were initially created for the assignment of a variable-sized
17776 object and whose source is now a string constant.
17777 * gimple-ssa-store-merging.c (struct merged_store_group): Document
17778 STRING_CST for rhs_code field.
17779 Add string_concatenation boolean field.
17780 (merged_store_group::merged_store_group): Initialize it as well as
17781 bit_insertion here.
17782 (merged_store_group::do_merge): Set it upon seeing a STRING_CST.
17783 Also set bit_insertion here upon seeing a BIT_INSERT_EXPR.
17784 (merged_store_group::apply_stores): Clear it for small regions.
17785 Do not create a power-of-2-sized buffer if it is still true.
17786 And do not set bit_insertion here again.
17787 (encode_tree_to_bitpos): Deal with BLKmode for the expression.
17788 (merged_store_group::can_be_merged_into): Deal with STRING_CST.
17789 (imm_store_chain_info::coalesce_immediate_stores): Set bit_insertion
17790 to true after changing MEM_REF stores into BIT_INSERT_EXPR stores.
17791 (count_multiple_uses): Return 0 for STRING_CST.
17792 (split_group): Do not split the group for a string concatenation.
17793 (imm_store_chain_info::output_merged_store): Constify and rename
17794 some local variables. Build an array type as destination type
17795 for a string concatenation, as well as a zero mask, and call
17796 build_string to build the source.
17797 (lhs_valid_for_store_merging_p): Return true for VIEW_CONVERT_EXPR.
17798 (pass_store_merging::process_store): Accept STRING_CST on the RHS.
17799 * gimple.h (gimple_call_alloca_for_var_p): New accessor function.
17800 * gimplify.c (gimplify_modify_expr_to_memcpy): Set alloca_for_var.
17801 * tree.h (CALL_ALLOCA_FOR_VAR_P): Document it for BUILT_IN_MEMCPY.
17803 2020-07-03 Martin Jambor <mjambor@suse.cz>
17806 * ipa-sra.c (all_callee_accesses_present_p): Do not accept type
17807 mismatched accesses.
17809 2020-07-03 Roger Sayle <roger@nextmovesoftware.com>
17811 * config/nvptx/nvptx.md (popcount<mode>2): New instructions.
17812 (mulhishi3, mulsidi3, umulhisi3, umulsidi3): New instructions.
17814 2020-07-03 Martin Liska <mliska@suse.cz>
17815 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17818 * gcov-dump.c (tag_function): Use gcov_position_t
17821 2020-07-03 Richard Biener <rguenther@suse.de>
17823 PR tree-optimization/96037
17824 * tree-vect-stmts.c (vect_is_simple_use): Initialize *slp_def.
17826 2020-07-03 Richard Biener <rguenther@suse.de>
17828 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Cost the
17829 original non-pattern stmts, look at the pattern stmt
17830 vectorization status.
17832 2020-07-03 Andrew Stubbs <ams@codesourcery.com>
17834 * config/gcn/gcn-valu.md (fold_left_plus_<mode>): New.
17836 2020-07-03 Richard Biener <rguenther@suse.de>
17838 * tree-vectorizer.h (vec_info::insert_on_entry): New.
17839 (vec_info::insert_seq_on_entry): Likewise.
17840 * tree-vectorizer.c (vec_info::insert_on_entry): Implement.
17841 (vec_info::insert_seq_on_entry): Likewise.
17842 * tree-vect-stmts.c (vect_init_vector_1): Use
17843 vec_info::insert_on_entry.
17844 (vect_finish_stmt_generation): Set modified bit after
17846 * tree-vect-slp.c (vect_create_constant_vectors): Simplify
17847 by using vec_info::insert_seq_on_entry and bypassing
17849 (vect_schedule_slp_instance): Deal with all-constant
17852 2020-07-03 Roger Sayle <roger@nextmovesoftware.com>
17853 Tom de Vries <tdevries@suse.de>
17856 * config/nvptx/nvptx.c (nvptx_vector_alignment): Use tree_to_uhwi
17857 to access TYPE_SIZE (type). Return at least the mode's alignment.
17859 2020-07-02 Richard Biener <rguenther@suse.de>
17861 PR tree-optimization/96028
17862 * tree-vect-slp.c (vect_slp_convert_to_external): Make sure
17863 we have scalar stmts to use.
17864 (vect_slp_analyze_node_operations): When analyzing a child
17865 failed try externalizing the parent node.
17867 2020-07-02 Martin Jambor <mjambor@suse.cz>
17870 * ipa-param-manipulation.c (ipa_param_adjustments::modify_call): Adjust
17871 argument index if necessary.
17873 2020-07-02 Martin Liska <mliska@suse.cz>
17875 PR middle-end/95830
17876 * tree-vect-generic.c (expand_vector_condition): Forward declaration.
17877 (expand_vector_comparison): Do not expand a comparison if all
17878 uses are consumed by a VEC_COND_EXPR.
17879 (expand_vector_operation): Change void return type to bool.
17880 (expand_vector_operations_1): Pass dce_ssa_names.
17882 2020-07-02 Ilya Leoshkevich <iii@linux.ibm.com>
17885 * system.h (NULL): Redefine to nullptr.
17887 2020-07-02 Jakub Jelinek <jakub@redhat.com>
17889 PR tree-optimization/95857
17890 * tree-cfg.c (group_case_labels_stmt): When removing an unreachable
17891 base_bb, remember all forced and non-local labels on it and later
17892 treat those as if they have NULL label_to_block. Formatting fix.
17893 Fix a comment typo.
17895 2020-07-02 Richard Biener <rguenther@suse.de>
17897 PR tree-optimization/96022
17898 * tree-vect-stmts.c (vectorizable_shift): Only use the
17899 first vector stmt when extracting the scalar shift amount.
17900 * tree-vect-slp.c (vect_build_slp_tree_2): Also build unary
17901 nodes with all-scalar children from scalars but not stores.
17902 (vect_analyze_slp_instance): Mark the node not failed.
17904 2020-07-02 Felix Yang <felix.yang@huawei.com>
17906 PR tree-optimization/95961
17907 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Use the
17908 number of scalars instead of the number of vectors as an upper bound
17909 for the loop saving info about DR in the hash table. Remove unused
17912 2020-07-02 Jakub Jelinek <jakub@redhat.com>
17914 * omp-expand.c (expand_omp_for): Diagnose non-rectangular loops with
17915 invalid steps - ((m2 - m1) * incr_outer) % incr must be 0 in valid
17916 OpenMP non-rectangular loops. Use XALLOCAVEC.
17918 2020-07-02 Martin Liska <mliska@suse.cz>
17920 PR gcov-profile/95348
17921 * coverage.c (read_counts_file): Read only COUNTERS that are
17923 * gcov-dump.c (tag_function): Change signature from unsigned to
17925 (tag_blocks): Likewise.
17926 (tag_arcs): Likewise.
17927 (tag_lines): Likewise.
17928 (tag_counters): Likewise.
17929 (tag_summary): Likewise.
17930 * gcov.c (read_count_file): Read all non-zero counters
17933 2020-07-02 Kito Cheng <kito.cheng@sifive.com>
17935 * config/riscv/multilib-generator (arch_canonicalize): Handle
17936 multi-letter extension.
17937 Using underline as separator between different extensions.
17939 2020-07-01 Pip Cet <pipcet@gmail.com>
17941 * spellcheck.c (test_data): Add problematic strings.
17942 (test_metric_conditions): Don't test the triangle inequality
17943 condition, which our distance function does not satisfy.
17945 2020-07-01 Omar Tahir <omar.tahir@arm.com>
17947 * config/aarch64/aarch64.c (aarch64_asm_trampoline_template): Always
17948 generate a BTI instruction.
17950 2020-07-01 Jeff Law <law@redhat.com>
17952 PR tree-optimization/94882
17953 * match.pd (x & y) - (x | y) - 1 -> ~(x ^ y): New simplification.
17955 2020-07-01 Jeff Law <law@redhat.com>
17957 * config/m68k/m68k.c (m68k_output_btst): Drop "register" keyword.
17958 (emit_move_sequence, output_iorsi3, output_xorsi3): Likewise.
17960 2020-07-01 Andrea Corallo <andrea.corallo@arm.com>
17962 * config/aarch64/aarch64-builtins.c (aarch64_builtins): Add enums
17963 for 64bits fpsr/fpcr getter setters builtin variants.
17964 (aarch64_init_fpsr_fpcr_builtins): New function.
17965 (aarch64_general_init_builtins): Modify to make use of the later.
17966 (aarch64_expand_fpsr_fpcr_setter): New function.
17967 (aarch64_general_expand_builtin): Modify to make use of the later.
17968 * config/aarch64/aarch64.md (@aarch64_set_<fpscr_name><GPI:mode>)
17969 (@aarch64_get_<fpscr_name><GPI:mode>): New patterns replacing and
17970 generalizing 'get_fpcr', 'set_fpsr'.
17971 * config/aarch64/iterators.md (GET_FPSCR, SET_FPSCR): New int
17973 (fpscr_name): New int attribute.
17974 * doc/extend.texi (__builtin_aarch64_get_fpcr64)
17975 (__builtin_aarch64_set_fpcr64, __builtin_aarch64_get_fpsr64)
17976 (__builtin_aarch64_set_fpsr64): Add into AArch64 Built-in
17979 2020-07-01 Martin Liska <mliska@suse.cz>
17981 * gcov.c (print_usage): Avoid trailing space for -j option.
17983 2020-07-01 Richard Biener <rguenther@suse.de>
17985 PR tree-optimization/95839
17986 * tree-vect-slp.c (vect_slp_tree_uniform_p): Pre-existing
17987 vectors are not uniform.
17988 (vect_build_slp_tree_1): Handle BIT_FIELD_REFs of
17990 (vect_build_slp_tree_2): For groups of lane extracts
17991 from a vector register generate a permute node
17992 with a special child representing the pre-existing vector.
17993 (vect_prologue_cost_for_slp): Pre-existing vectors cost nothing.
17994 (vect_slp_analyze_node_operations): Use SLP_TREE_LANES.
17995 (vectorizable_slp_permutation): Do not generate or cost identity
17997 (vect_schedule_slp_instance): Handle pre-existing vector
17998 that are function arguments.
18000 2020-07-01 Richard Biener <rguenther@suse.de>
18002 * system.h (INCLUDE_ISL): New guarded include.
18003 * graphite-dependences.c: Use it.
18004 * graphite-isl-ast-to-gimple.c: Likewise.
18005 * graphite-optimize-isl.c: Likewise.
18006 * graphite-poly.c: Likewise.
18007 * graphite-scop-detection.c: Likewise.
18008 * graphite-sese-to-poly.c: Likewise.
18009 * graphite.c: Likewise.
18010 * graphite.h: Drop the includes here.
18012 2020-07-01 Martin Liska <mliska@suse.cz>
18014 * gcov.c (print_usage): Shorted option description for -j
18017 2020-07-01 Martin Liska <mliska@suse.cz>
18019 * doc/gcov.texi: Rename 2 options.
18020 * gcov.c (print_usage): Rename -i,--json-format to
18021 -j,--json-format and -j,--human-readable to -H,--human-readable.
18022 (process_args): Fix up parsing. Document obsolete options and
18023 how are they changed.
18025 2020-07-01 Jeff Law <law@redhat.com>
18027 * config/pa/pa.c (pa_emit_move_sequence): Drop register keyword.
18028 (pa_output_ascii): Likewise.
18030 2020-07-01 Kito Cheng <kito.cheng@sifive.com>
18032 * common/config/riscv/riscv-common.c (riscv_subset_t): New field
18034 (riscv_subset_list::parsing_subset_version): Add parameter for
18035 indicate explicitly version, and handle explicitly version.
18036 (riscv_subset_list::handle_implied_ext): Ditto.
18037 (riscv_subset_list::add): Ditto.
18038 (riscv_subset_t::riscv_subset_t): Init new field.
18039 (riscv_subset_list::to_string): Always output version info if version
18040 explicitly specified.
18041 (riscv_subset_list::parsing_subset_version): Handle explicitly
18043 (riscv_subset_list::parse_std_ext): Ditto.
18044 (riscv_subset_list::parse_multiletter_ext): Ditto.
18046 2020-06-30 Richard Sandiford <richard.sandiford@arm.com>
18050 * config/aarch64/aarch64.c (aarch64_attribute_table): Add
18051 "Advanced SIMD type".
18052 (aarch64_comp_type_attributes): Check that the "Advanced SIMD type"
18053 attributes are equal.
18054 * config/aarch64/aarch64-builtins.c: Include stringpool.h and
18056 (aarch64_mangle_builtin_vector_type): Use the mangling recorded
18057 in the "Advanced SIMD type" attribute.
18058 (aarch64_init_simd_builtin_types): Add an "Advanced SIMD type"
18059 attribute to each Advanced SIMD type, using the mangled type
18060 as the attribute's single argument.
18062 2020-06-30 Christophe Lyon <christophe.lyon@linaro.org>
18065 * config/arm/arm.c (arm_handle_isr_attribute): Warn if
18066 -mgeneral-regs-only is not used.
18068 2020-06-30 Yang Yang <yangyang305@huawei.com>
18070 PR tree-optimization/95855
18071 * gimple-ssa-split-paths.c (is_feasible_trace): Add extra
18072 checks to recognize a missed if-conversion opportunity when
18073 judging whether to duplicate a block.
18075 2020-06-29 Segher Boessenkool <segher@kernel.crashing.org>
18077 * doc/extend.texi: Change references to "future architecture" to
18078 "ISA 3.1", "-mcpu=future" to "-mcpu=power10", and remove vaguer
18079 references to "future" (because the future is now).
18081 2020-06-29 Segher Boessenkool <segher@kernel.crashing.org>
18083 * config/rs6000/rs6000.md (isa): Rename "fut" to "p10".
18085 2020-06-29 Roger Sayle <roger@nextmovesoftware.com>
18087 * simplify-rtx.c (simplify_distributive_operation): New function
18088 to un-distribute a binary operation of two binary operations.
18089 (X & C) ^ (Y & C) to (X ^ Y) & C, when C is simple (i.e. a constant).
18090 (simplify_binary_operation_1) <IOR, XOR, AND>: Call it from here
18092 (test_scalar_int_ops): New function for unit self-testing
18093 scalar integer transformations in simplify-rtx.c.
18094 (test_scalar_ops): Call test_scalar_int_ops for each integer mode.
18095 (simplify_rtx_c_tests): Call test_scalar_ops.
18097 2020-06-29 Richard Biener <rguenther@suse.de>
18099 PR tree-optimization/95916
18100 * tree-vect-slp.c (vect_schedule_slp_instance): Explicitely handle
18101 the case of not vectorized externals.
18103 2020-06-29 Richard Biener <rguenther@suse.de>
18105 * tree-vectorizer.h: Do not include <utility>.
18107 2020-06-29 Martin Liska <mliska@suse.cz>
18109 * tree-ssa-ccp.c (gsi_prev_dom_bb_nondebug): Use gsi_bb
18110 instead of gimple_stmt_iterator::bb.
18111 * tree-ssa-math-opts.c (insert_reciprocals): Likewise.
18112 * tree-vectorizer.h: Likewise.
18114 2020-06-29 Andrew Stubbs <ams@codesourcery.com>
18116 * config/gcn/gcn-hsa.h (DBX_REGISTER_NUMBER): New macro.
18117 * config/gcn/gcn-protos.h (gcn_dwarf_register_number): New prototype.
18118 * config/gcn/gcn.c (gcn_expand_prologue): Add RTX_FRAME_RELATED_P
18119 and REG_FRAME_RELATED_EXPR to stack and frame pointer adjustments.
18120 (gcn_dwarf_register_number): New function.
18121 (gcn_dwarf_register_span): New function.
18122 (TARGET_DWARF_REGISTER_SPAN): New hook macro.
18124 2020-06-29 Kaipeng Zhou <zhoukaipeng3@huawei.com>
18126 PR tree-optimization/95854
18127 * gimple-ssa-store-merging.c (find_bswap_or_nop_1): Return NULL
18128 if operand 1 or 2 of a BIT_FIELD_REF cannot be converted to
18129 unsigned HOST_WIDE_INT.
18131 2020-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18133 * config/sparc/sparc.c (epilogue_renumber): Remove register.
18134 (sparc_print_operand_address): Likewise.
18135 (sparc_type_code): Likewise.
18136 (set_extends): Likewise.
18138 2020-06-29 Martin Liska <mliska@suse.cz>
18140 PR tree-optimization/92860
18141 * optc-save-gen.awk: Add exceptions for arc target.
18143 2020-06-29 Frederik Harwath <frederik@codesourcery.com>
18145 * doc/sourcebuild.texi: Describe globbing of the
18146 dump file scanning commands "suffix" argument.
18148 2020-06-28 Martin Sebor <msebor@redhat.com>
18151 * calls.c (maybe_warn_rdwr_sizes): Use location of argument if
18153 * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Same. Adjust
18155 * tree.c (get_nonnull_args): Consider the this pointer implicitly
18157 * var-tracking.c (deps_vec): New type.
18158 (var_loc_dep_vec): New function.
18159 (VAR_LOC_DEP_VEC): Use it.
18161 2020-06-28 Kewen Lin <linkw@linux.ibm.com>
18163 * internal-fn.c (direct_mask_load_optab_supported_p): Use
18164 convert_optab_supported_p instead of direct_optab_supported_p.
18165 (direct_mask_store_optab_supported_p): Likewise.
18167 2020-06-27 Aldy Hernandez <aldyh@redhat.com>
18169 * gimple-ssa-evrp-analyze.h (vrp_visit_cond_stmt): Use
18170 simplify_using_ranges class.
18171 * gimple-ssa-evrp.c (class evrp_folder): New simplify_using_ranges
18172 field. Adjust all methods to use new field.
18173 * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Use
18174 simplify_using_ranges class.
18175 * tree-vrp.c (class vrp_folder): New simplify_using_ranges
18176 field. Adjust all methods to use new field.
18177 (simplify_stmt_for_jump_threading): Use simplify_using_ranges class.
18178 (vrp_prop::vrp_finalize): New vrp_folder argument.
18179 (execute_vrp): Pass folder to vrp_finalize. Use
18180 simplify_using_ranges class.
18181 Remove cleanup_edges_and_switches call.
18182 * vr-values.c (vr_values::op_with_boolean_value_range_p): Change
18183 value_range_equiv uses to value_range.
18184 (simplify_using_ranges::op_with_boolean_value_range_p): Use
18185 simplify_using_ranges class.
18186 (check_for_binary_op_overflow): Make static.
18187 (vr_values::extract_range_basic): Pass this to
18188 check_for_binary_op_overflow.
18189 (compare_range_with_value): Change value_range_equiv uses to
18191 (vr_values::vr_values): Initialize simplifier field.
18192 Remove uses of to_remove_edges and to_update_switch_stmts.
18193 (vr_values::~vr_values): Remove uses of to_remove_edges and
18194 to_update_switch_stmts.
18195 (vr_values::get_vr_for_comparison): Move to simplify_using_ranges
18197 (vr_values::compare_name_with_value): Same.
18198 (vr_values::compare_names): Same.
18199 (vr_values::vrp_evaluate_conditional_warnv_with_ops): Same.
18200 (vr_values::vrp_evaluate_conditional): Same.
18201 (vr_values::vrp_visit_cond_stmt): Same.
18202 (find_case_label_ranges): Change value_range_equiv uses to
18204 (vr_values::extract_range_from_stmt): Use simplify_using_ranges class.
18205 (vr_values::simplify_truth_ops_using_ranges): Move to
18206 simplify_using_ranges class.
18207 (vr_values::simplify_div_or_mod_using_ranges): Same.
18208 (vr_values::simplify_min_or_max_using_ranges): Same.
18209 (vr_values::simplify_abs_using_ranges): Same.
18210 (vr_values::simplify_bit_ops_using_ranges): Same.
18211 (test_for_singularity): Change value_range_equiv uses to
18213 (range_fits_type_p): Same.
18214 (vr_values::simplify_cond_using_ranges_1): Same.
18215 (vr_values::simplify_cond_using_ranges_2): Make extern.
18216 (vr_values::fold_cond): Move to simplify_using_ranges class.
18217 (vr_values::simplify_switch_using_ranges): Same.
18218 (vr_values::cleanup_edges_and_switches): Same.
18219 (vr_values::simplify_float_conversion_using_ranges): Same.
18220 (vr_values::simplify_internal_call_using_ranges): Same.
18221 (vr_values::two_valued_val_range_p): Same.
18222 (vr_values::simplify_stmt_using_ranges): Move to...
18223 (simplify_using_ranges::simplify): ...here.
18224 * vr-values.h (class vr_values): Move all the simplification of
18225 statements using ranges methods and code from here...
18226 (class simplify_using_ranges): ...to here.
18227 (simplify_cond_using_ranges_2): New extern prototype.
18229 2020-06-27 Jakub Jelinek <jakub@redhat.com>
18231 * omp-general.h (struct omp_for_data_loop): Add non_rect_referenced
18232 member, move outer member.
18233 (struct omp_for_data): Add first_nonrect and last_nonrect members.
18234 * omp-general.c (omp_extract_for_data): Initialize first_nonrect,
18235 last_nonrect and non_rect_referenced members.
18236 * omp-expand.c (expand_omp_for_init_counts): Handle non-rectangular
18238 (expand_omp_for_init_vars): Add nonrect_bounds parameter. Handle
18239 non-rectangular loops.
18240 (extract_omp_for_update_vars): Likewise.
18241 (expand_omp_for_generic, expand_omp_for_static_nochunk,
18242 expand_omp_for_static_chunk, expand_omp_simd,
18243 expand_omp_taskloop_for_outer, expand_omp_taskloop_for_inner): Adjust
18244 expand_omp_for_init_vars and extract_omp_for_update_vars callers.
18245 (expand_omp_for): Don't sorry on non-composite worksharing-loop or
18248 2020-06-26 H.J. Lu <hjl.tools@gmail.com>
18251 * config/i386/gnu-user.h (SUBTARGET_FRAME_POINTER_REQUIRED):
18253 * config/i386/i386.c (ix86_frame_pointer_required): Update
18256 2020-06-26 Yichao Yu <yyc1992@gmail.com>
18258 * multiple_target.c (redirect_to_specific_clone): Fix tests
18259 to check individual attribute rather than an attribute list.
18261 2020-06-26 Peter Bergner <bergner@linux.ibm.com>
18263 * config/rs6000/rs6000-call.c (cpu_is_info) <power10>: New.
18264 * doc/extend.texi (PowerPC Built-in Functions): Document power10,
18267 2020-06-26 Marek Polacek <polacek@redhat.com>
18269 * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
18270 * doc/standards.texi (C Language): Correct the default dialect.
18271 (C++ Language): Update the default for C++ to gnu++17.
18273 2020-06-26 Eric Botcazou <ebotcazou@adacore.com>
18275 * tree-ssa-reassoc.c (dump_range_entry): New function.
18276 (debug_range_entry): New debug function.
18277 (update_range_test): Invoke dump_range_entry for dumping.
18278 (optimize_range_tests_to_bit_test): Merge the entry test in the
18279 bit test when possible and lower the profitability threshold.
18281 2020-06-26 Richard Biener <rguenther@suse.de>
18283 PR tree-optimization/95897
18284 * tree-vectorizer.h (vectorizable_induction): Remove
18285 unused gimple_stmt_iterator * parameter.
18286 * tree-vect-loop.c (vectorizable_induction): Likewise.
18287 (vect_analyze_loop_operations): Adjust.
18288 * tree-vect-stmts.c (vect_analyze_stmt): Likewise.
18289 (vect_transform_stmt): Likewise.
18290 * tree-vect-slp.c (vect_schedule_slp_instance): Adjust
18291 for fold-left reductions, clarify existing reduction case.
18293 2020-06-25 Nick Clifton <nickc@redhat.com>
18295 * config/m32r/m32r.md (movsicc): Disable pattern.
18297 2020-06-25 Richard Biener <rguenther@suse.de>
18299 PR tree-optimization/95839
18300 * tree-vect-slp.c (vect_slp_analyze_bb_1): Remove premature
18301 check on the number of datarefs.
18303 2020-06-25 Iain Sandoe <iain@sandoe.co.uk>
18305 * config/rs6000/rs6000-call.c (mma_init_builtins): Cast
18306 the insn_data n_operands value to unsigned.
18308 2020-06-25 Richard Biener <rguenther@suse.de>
18310 * tree-vect-slp.c (vect_schedule_slp_instance): Always use
18311 vector defs to determine insertion place.
18313 2020-06-25 H.J. Lu <hjl.tools@gmail.com>
18316 * config/i386/i386.h (PTA_ICELAKE_CLIENT): Remove PTA_CLWB.
18317 (PTA_ICELAKE_SERVER): Add PTA_CLWB.
18318 (PTA_TIGERLAKE): Add PTA_CLWB.
18320 2020-06-25 Richard Biener <rguenther@suse.de>
18322 PR tree-optimization/95866
18323 * tree-vect-stmts.c (vectorizable_shift): Reject incompatible
18324 vectorized shift operands. For scalar shifts use lane zero
18325 of a vectorized shift operand.
18327 2020-06-25 Martin Liska <mliska@suse.cz>
18329 PR tree-optimization/95745
18330 PR middle-end/95830
18331 * gimple-isel.cc (gimple_expand_vec_cond_exprs): Delete dead
18332 SSA_NAMEs used as the first argument of a VEC_COND_EXPR. Always
18334 * tree-vect-generic.c (expand_vector_condition): Remove dead
18335 SSA_NAMEs used as the first argument of a VEC_COND_EXPR.
18337 2020-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
18340 * config/rs6000/altivec.h (vec_pack_to_short_fp32): Update.
18341 * config/rs6000/altivec.md (UNSPEC_CONVERT_4F32_8F16): New unspec.
18342 (convert_4f32_8f16): New define_expand
18343 * config/rs6000/rs6000-builtin.def (convert_4f32_8f16): New builtin define
18345 * config/rs6000/rs6000-call.c (P9V_BUILTIN_VEC_CONVERT_4F32_8F16): New
18346 overloaded builtin entry.
18347 * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSPHP): New unspec.
18348 (vsx_xvcvsphp): New define_insn.
18350 2020-06-24 Roger Sayle <roger@nextmovesoftware.com>
18351 Segher Boessenkool <segher@kernel.crashing.org>
18353 * simplify-rtx.c (simplify_unary_operation_1): Simplify rotates by 0.
18355 2020-06-24 Roger Sayle <roger@nextmovesoftware.com>
18357 * simplify-rtx.c (simplify_unary_operation_1): Simplify
18358 (parity (parity x)) as (parity x), i.e. PARITY is idempotent.
18360 2020-06-24 Richard Biener <rguenther@suse.de>
18362 PR tree-optimization/95866
18363 * tree-vect-slp.c (vect_slp_tree_uniform_p): New.
18364 (vect_build_slp_tree_2): Properly reset matches[0],
18365 ignore uniform constants.
18367 2020-06-24 H.J. Lu <hjl.tools@gmail.com>
18370 * common/config/i386/cpuinfo.h (get_intel_cpu): Remove brand_id.
18371 (cpu_indicator_init): Likewise.
18372 * config/i386/driver-i386.c (host_detect_local_cpu): Updated.
18374 2020-06-24 H.J. Lu <hjl.tools@gmail.com>
18377 * common/config/i386/cpuinfo.h (get_intel_cpu): Add Cooper Lake
18378 detection with AVX512BF16.
18380 2020-06-24 H.J. Lu <hjl.tools@gmail.com>
18383 * common/config/i386/i386-isas.h: New file. Extracted from
18384 gcc/config/i386/i386-builtins.c.
18385 (_isa_names_table): Add option.
18386 (ISA_NAMES_TABLE_START): New.
18387 (ISA_NAMES_TABLE_END): Likewise.
18388 (ISA_NAMES_TABLE_ENTRY): Likewise.
18389 (isa_names_table): Defined with ISA_NAMES_TABLE_START,
18390 ISA_NAMES_TABLE_END and ISA_NAMES_TABLE_ENTRY. Add more ISAs
18391 from enum processor_features.
18392 * config/i386/driver-i386.c: Include
18393 "common/config/i386/cpuinfo.h" and
18394 "common/config/i386/i386-isas.h".
18395 (has_feature): New macro.
18396 (host_detect_local_cpu): Call cpu_indicator_init to get CPU
18397 features. Use has_feature to detect processor features. Call
18398 Call get_intel_cpu to get the newer Intel CPU name. Use
18399 isa_names_table to generate command-line options.
18400 * config/i386/i386-builtins.c: Include
18401 "common/config/i386/i386-isas.h".
18402 (_arch_names_table): Removed.
18403 (isa_names_table): Likewise.
18405 2020-06-24 H.J. Lu <hjl.tools@gmail.com>
18408 * common/config/i386/cpuinfo.h: New file.
18409 (__processor_model): Moved from libgcc/config/i386/cpuinfo.h.
18410 (__processor_model2): New.
18411 (CHECK___builtin_cpu_is): New. Defined as empty if not defined.
18412 (has_cpu_feature): New function.
18413 (set_cpu_feature): Likewise.
18414 (get_amd_cpu): Moved from libgcc/config/i386/cpuinfo.c. Use
18415 CHECK___builtin_cpu_is. Return AMD CPU name.
18416 (get_intel_cpu): Moved from libgcc/config/i386/cpuinfo.c. Use
18417 Use CHECK___builtin_cpu_is. Return Intel CPU name.
18418 (get_available_features): Moved from libgcc/config/i386/cpuinfo.c.
18419 Also check FEATURE_3DNOW, FEATURE_3DNOWP, FEATURE_ADX,
18420 FEATURE_ABM, FEATURE_CLDEMOTE, FEATURE_CLFLUSHOPT, FEATURE_CLWB,
18421 FEATURE_CLZERO, FEATURE_CMPXCHG16B, FEATURE_CMPXCHG8B,
18422 FEATURE_ENQCMD, FEATURE_F16C, FEATURE_FSGSBASE, FEATURE_FXSAVE,
18423 FEATURE_HLE, FEATURE_IBT, FEATURE_LAHF_LM, FEATURE_LM,
18424 FEATURE_LWP, FEATURE_LZCNT, FEATURE_MOVBE, FEATURE_MOVDIR64B,
18425 FEATURE_MOVDIRI, FEATURE_MWAITX, FEATURE_OSXSAVE,
18426 FEATURE_PCONFIG, FEATURE_PKU, FEATURE_PREFETCHWT1, FEATURE_PRFCHW,
18427 FEATURE_PTWRITE, FEATURE_RDPID, FEATURE_RDRND, FEATURE_RDSEED,
18428 FEATURE_RTM, FEATURE_SERIALIZE, FEATURE_SGX, FEATURE_SHA,
18429 FEATURE_SHSTK, FEATURE_TBM, FEATURE_TSXLDTRK, FEATURE_VAES,
18430 FEATURE_WAITPKG, FEATURE_WBNOINVD, FEATURE_XSAVE, FEATURE_XSAVEC,
18431 FEATURE_XSAVEOPT and FEATURE_XSAVES
18432 (cpu_indicator_init): Moved from libgcc/config/i386/cpuinfo.c.
18433 Also update cpu_model2.
18434 * common/config/i386/i386-cpuinfo.h (processor_vendor): Add
18435 Add VENDOR_CENTAUR, VENDOR_CYRIX and VENDOR_NSC.
18436 (processor_features): Moved from gcc/config/i386/i386-builtins.c.
18437 Renamed F_XXX to FEATURE_XXX. Add FEATURE_3DNOW, FEATURE_3DNOWP,
18438 FEATURE_ADX, FEATURE_ABM, FEATURE_CLDEMOTE, FEATURE_CLFLUSHOPT,
18439 FEATURE_CLWB, FEATURE_CLZERO, FEATURE_CMPXCHG16B,
18440 FEATURE_CMPXCHG8B, FEATURE_ENQCMD, FEATURE_F16C,
18441 FEATURE_FSGSBASE, FEATURE_FXSAVE, FEATURE_HLE, FEATURE_IBT,
18442 FEATURE_LAHF_LM, FEATURE_LM, FEATURE_LWP, FEATURE_LZCNT,
18443 FEATURE_MOVBE, FEATURE_MOVDIR64B, FEATURE_MOVDIRI,
18444 FEATURE_MWAITX, FEATURE_OSXSAVE, FEATURE_PCONFIG,
18445 FEATURE_PKU, FEATURE_PREFETCHWT1, FEATURE_PRFCHW,
18446 FEATURE_PTWRITE, FEATURE_RDPID, FEATURE_RDRND, FEATURE_RDSEED,
18447 FEATURE_RTM, FEATURE_SERIALIZE, FEATURE_SGX, FEATURE_SHA,
18448 FEATURE_SHSTK, FEATURE_TBM, FEATURE_TSXLDTRK, FEATURE_VAES,
18449 FEATURE_WAITPKG, FEATURE_WBNOINVD, FEATURE_XSAVE, FEATURE_XSAVEC,
18450 FEATURE_XSAVEOPT, FEATURE_XSAVES and CPU_FEATURE_MAX.
18451 (SIZE_OF_CPU_FEATURES): New.
18452 * config/i386/i386-builtins.c (processor_features): Removed.
18453 (isa_names_table): Replace F_XXX with FEATURE_XXX.
18454 (fold_builtin_cpu): Change __cpu_features2 to an array.
18456 2020-06-24 H.J. Lu <hjl.tools@gmail.com>
18459 * common/config/i386/i386-common.c (processor_alias_table): Add
18460 processor model and priority to each entry.
18461 (pta_size): Updated with -6.
18462 (num_arch_names): New.
18463 * common/config/i386/i386-cpuinfo.h: New file.
18464 * config/i386/i386-builtins.c (feature_priority): Removed.
18465 (processor_model): Likewise.
18466 (_arch_names_table): Likewise.
18467 (arch_names_table): Likewise.
18468 (_isa_names_table): Replace P_ZERO with P_NONE.
18469 (get_builtin_code_for_version): Replace P_ZERO with P_NONE. Use
18470 processor_alias_table.
18471 (fold_builtin_cpu): Replace arch_names_table with
18472 processor_alias_table.
18473 * config/i386/i386.h: Include "common/config/i386/i386-cpuinfo.h".
18474 (pta): Add model and priority.
18475 (num_arch_names): New.
18477 2020-06-24 Richard Biener <rguenther@suse.de>
18479 * tree-vectorizer.h (vect_find_first_scalar_stmt_in_slp):
18481 * tree-vect-data-refs.c (vect_preserves_scalar_order_p):
18482 Simplify for new position of vectorized SLP loads.
18483 (vect_slp_analyze_node_dependences): Adjust for it.
18484 (vect_slp_analyze_and_verify_node_alignment): Compute alignment
18485 for the first stmts dataref.
18486 * tree-vect-slp.c (vect_find_first_scalar_stmt_in_slp): New.
18487 (vect_schedule_slp_instance): Emit loads before the
18489 * tree-vect-stmts.c (vectorizable_load): Do what the comment
18490 says and use vect_find_first_scalar_stmt_in_slp.
18492 2020-06-24 Richard Biener <rguenther@suse.de>
18494 PR tree-optimization/95856
18495 * tree-vectorizer.c (vect_stmt_dominates_stmt_p): Honor
18498 2020-06-24 Jakub Jelinek <jakub@redhat.com>
18500 PR middle-end/95810
18501 * fold-const.c (fold_cond_expr_with_comparison): Optimize
18502 A <= 0 ? A : -A into (type)-absu(A) rather than -abs(A).
18504 2020-06-24 Jakub Jelinek <jakub@redhat.com>
18506 * omp-low.c (lower_omp_for): Fix two pastos.
18508 2020-06-24 Martin Liska <mliska@suse.cz>
18510 * optc-save-gen.awk: Compare string options in cl_optimization_compare
18513 2020-06-23 Aaron Sawdey <acsawdey@linux.ibm.com>
18515 * config.gcc: Identify power10 as a 64-bit processor and as valid
18516 for --with-cpu and --with-tune.
18518 2020-06-23 David Edelsohn <dje.gcc@gmail.com>
18520 * Makefile.in (LANG_MAKEFRAGS): Same.
18521 (tmake_file): Use -include.
18522 (xmake_file): Same.
18524 2020-06-23 Michael Meissner <meissner@linux.ibm.com>
18526 * REVISION: Delete file meant for a private branch.
18528 2020-06-23 Andre Vieira <andre.simoesdiasvieira@arm.com>
18531 * config/arm/arm.c: (cmse_nonsecure_entry_clear_before_return): Use
18532 'callee_saved_reg_p' instead of 'calL_used_or_fixed_reg_p'.
18534 2020-06-23 Alexandre Oliva <oliva@adacore.com>
18536 * collect-utils.h (dumppfx): New.
18537 * collect-utils.c (dumppfx): Likewise.
18538 * lto-wrapper.c (run_gcc): Set global dumppfx.
18539 (compile_offload_image): Pass a -dumpbase on to mkoffload.
18540 * config/nvptx/mkoffload.c (ptx_dumpbase): New.
18541 (main): Handle incoming -dumpbase. Set ptx_dumpbase. Obey
18543 (compile_native): Pass -dumpbase et al to compiler.
18544 * config/gcn/mkoffload.c (gcn_dumpbase): New.
18545 (main): Handle incoming -dumpbase. Set gcn_dumpbase. Obey
18546 save_temps. Pass -dumpbase et al to offload target compiler.
18547 (compile_native): Pass -dumpbase et al to compiler.
18549 2020-06-23 Michael Meissner <meissner@linux.ibm.com>
18551 * REVISION: New file.
18553 2020-06-22 Segher Boessenkool <segher@kernel.crashing.org>
18555 * config/rs6000/altivec.h: Use _ARCH_PWR10, not _ARCH_PWR_FUTURE.
18556 Update comment for ISA 3.1.
18557 * config/rs6000/altivec.md: Use TARGET_POWER10, not TARGET_FUTURE.
18558 * config/rs6000/driver-rs6000.c (asm_names): Use -mpwr10 for power10
18559 on AIX, and -mpower10 elsewhere.
18560 * config/rs6000/future.md: Delete.
18561 * config/rs6000/linux64.h: Update comments. Use TARGET_POWER10, not
18563 * config/rs6000/power10.md: New file.
18564 * config/rs6000/ppc-auxv.h: Use PPC_PLATFORM_POWER10, not
18565 PPC_PLATFORM_FUTURE.
18566 * config/rs6000/rs6000-builtin.def: Update comments. Use BU_P10V_*
18567 names instead of BU_FUTURE_V_* names. Use RS6000_BTM_P10 instead of
18568 RS6000_BTM_FUTURE. Use P10_BUILTIN_* instead of FUTURE_BUILTIN_*.
18569 Use BU_P10_* instead of BU_FUTURE_*.
18570 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
18571 _ARCH_PWR10 instead of _ARCH_PWR_FUTURE.
18572 (altivec_resolve_overloaded_builtin): Use P10_BUILTIN_VEC_XXEVAL, not
18573 FUTURE_BUILTIN_VEC_XXEVAL.
18574 * config/rs6000/rs6000-call.c: Use P10_BUILTIN_*, not FUTURE_BUILTIN_*.
18575 Update compiler messages.
18576 * config/rs6000/rs6000-cpus.def: Update comments. Use ISA_3_1_*, not
18577 ISA_FUTURE_*. Use OPTION_MASK_POWER10, not OPTION_MASK_FUTURE.
18578 * config/rs6000/rs6000-opts.h: Use PROCESSOR_POWER10, not
18580 * config/rs6000/rs6000-string.c: Ditto.
18581 * config/rs6000/rs6000-tables.opt (rs6000_cpu_opt_value): Use "power10"
18582 instead of "future", reorder it to right after "power9".
18583 * config/rs6000/rs6000.c: Update comments. Use OPTION_MASK_POWER10,
18584 not OPTION_MASK_FUTURE. Use TARGET_POWER10, not TARGET_FUTURE. Use
18585 RS6000_BTM_P10, not RS6000_BTM_FUTURE. Update compiler messages.
18586 Use PROCESSOR_POWER10, not PROCESSOR_FUTURE. Use ISA_3_1_MASKS_SERVER,
18587 not ISA_FUTURE_MASKS_SERVER.
18588 (rs6000_opt_masks): Use "power10" instead of "future".
18589 (rs6000_builtin_mask_names): Ditto.
18590 (rs6000_disable_incompatible_switches): Ditto.
18591 * config/rs6000/rs6000.h: Use -mpower10, not -mfuture. Use
18592 -mcpu=power10, not -mcpu=future. Use MASK_POWER10, not MASK_FUTURE.
18593 Use OPTION_MASK_POWER10, not OPTION_MASK_FUTURE. Use RS6000_BTM_P10,
18594 not RS6000_BTM_FUTURE.
18595 * config/rs6000/rs6000.md: Use "power10", not "future". Use
18596 TARGET_POWER10, not TARGET_FUTURE. Include "power10.md", not
18598 * config/rs6000/rs6000.opt (mfuture): Delete.
18600 * config/rs6000/t-rs6000: Use "power10.md", not "future.md".
18601 * config/rs6000/vsx.md: Use TARGET_POWER10, not TARGET_FUTURE.
18603 2020-06-22 Richard Sandiford <richard.sandiford@arm.com>
18605 * coretypes.h (first_type): Delete.
18606 * recog.h (insn_gen_fn::operator()): Go back to using a decltype.
18608 2020-06-22 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
18610 * doc/sourcebuild.texi (arm_v8_1m_mve_fp_ok): Add item.
18611 (arm_mve_hw): Likewise.
18613 2020-06-22 H.J. Lu <hjl.tools@gmail.com>
18616 * config/i386/i386.c (ix86_dirflag_mode_needed): Skip
18619 2020-06-22 Richard Biener <rguenther@suse.de>
18621 PR tree-optimization/95770
18622 * tree-vect-slp.c (vect_schedule_slp_instance): Also consider
18625 2020-06-22 Andrew Stubbs <ams@codesourcery.com>
18627 * config/gcn/gcn.c (gcn_function_arg): Disallow vector arguments.
18628 (gcn_return_in_memory): Return vectors in memory.
18630 2020-06-22 Jakub Jelinek <jakub@redhat.com>
18632 * omp-general.c (omp_extract_for_data): For triangular loops with
18633 all loop invariant expressions constant where the innermost loop is
18634 executed at least once compute number of iterations at compile time.
18636 2020-06-22 Kito Cheng <kito.cheng@sifive.com>
18638 * config/riscv/riscv.h (ASM_SPEC): Remove riscv_expand_arch call.
18639 (DRIVER_SELF_SPECS): New.
18641 2020-06-22 Kito Cheng <kito.cheng@sifive.com>
18643 * config/riscv/riscv-builtins.c (RISCV_FTYPE_NAME0): New.
18644 (RISCV_FTYPE_ATYPES0): New.
18645 (riscv_builtins): Using RISCV_USI_FTYPE for frflags.
18646 * config/riscv/riscv-ftypes.def: Remove VOID argument.
18648 2020-06-21 David Edelsohn <dje.gcc@gmail.com>
18650 * config.gcc: Use t-aix64, biarch64 and default64 for cpu_is_64bit.
18651 * config/rs6000/aix72.h (ASM_SPEC): Remove aix64 option.
18654 (ASM_CPU_SPEC): Remove vsx and altivec options.
18655 (CPP_SPEC_COMMON): Rename from CPP_SPEC.
18658 (CPLUSPLUS_CPP_SPEC): Rename to CPLUSPLUS_CPP_SPEC_COMMON..
18659 (TARGET_DEFAULT): Only define if not BIARCH.
18660 (LIB_SPEC_COMMON): Rename from LIB_SPEC.
18663 (LINK_SPEC_COMMON): Rename from LINK_SPEC.
18664 (LINK_SPEC32): New.
18665 (LINK_SPEC64): New.
18666 (STARTFILE_SPEC): Add 64 bit version of crtcxa and crtdbase.
18667 (ASM_SPEC): Define 32 and 64 bit alternatives using DEFAULT_ARCH64_P.
18669 (CPLUSPLUS_CPP_SPEC): Same.
18672 (SUBTARGET_EXTRA_SPECS): Add new 32/64 specs.
18673 * config/rs6000/defaultaix64.h: New file.
18674 * config/rs6000/t-aix64: New file.
18676 2020-06-21 Peter Bergner <bergner@linux.ibm.com>
18678 * config/rs6000/predicates.md (mma_assemble_input_operand): New.
18679 * config/rs6000/rs6000-builtin.def (BU_MMA_1, BU_MMA_V2, BU_MMA_3,
18680 BU_MMA_5, BU_MMA_6, BU_VSX_1): Add support macros for defining MMA
18681 built-in functions.
18682 (ASSEMBLE_ACC, ASSEMBLE_PAIR, DISASSEMBLE_ACC, DISASSEMBLE_PAIR,
18683 PMXVBF16GER2, PMXVBF16GER2NN, PMXVBF16GER2NP, PMXVBF16GER2PN,
18684 PMXVBF16GER2PP, PMXVF16GER2, PMXVF16GER2NN, PMXVF16GER2NP,
18685 PMXVF16GER2PN, PMXVF16GER2PP, PMXVF32GER, PMXVF32GERNN,
18686 PMXVF32GERNP, PMXVF32GERPN, PMXVF32GERPP, PMXVF64GER, PMXVF64GERNN,
18687 PMXVF64GERNP, PMXVF64GERPN, PMXVF64GERPP, PMXVI16GER2, PMXVI16GER2PP,
18688 PMXVI16GER2S, PMXVI16GER2SPP, PMXVI4GER8, PMXVI4GER8PP, PMXVI8GER4,
18689 PMXVI8GER4PP, PMXVI8GER4SPP, XVBF16GER2, XVBF16GER2NN, XVBF16GER2NP,
18690 XVBF16GER2PN, XVBF16GER2PP, XVCVBF16SP, XVCVSPBF16, XVF16GER2,
18691 XVF16GER2NN, XVF16GER2NP, XVF16GER2PN, XVF16GER2PP, XVF32GER,
18692 XVF32GERNN, XVF32GERNP, XVF32GERPN, XVF32GERPP, XVF64GER, XVF64GERNN,
18693 XVF64GERNP, XVF64GERPN, XVF64GERPP, XVI16GER2, XVI16GER2PP, XVI16GER2S,
18694 XVI16GER2SPP, XVI4GER8, XVI4GER8PP, XVI8GER4, XVI8GER4PP, XVI8GER4SPP,
18695 XXMFACC, XXMTACC, XXSETACCZ): Add MMA built-ins.
18696 * config/rs6000/rs6000.c (rs6000_emit_move): Use CONST_INT_P.
18697 Allow zero constants.
18698 (print_operand) <case 'A'>: New output modifier.
18699 (rs6000_split_multireg_move): Add support for inserting accumulator
18700 priming and depriming instructions. Add support for splitting an
18701 assemble accumulator pattern.
18702 * config/rs6000/rs6000-call.c (mma_init_builtins, mma_expand_builtin,
18703 rs6000_gimple_fold_mma_builtin): New functions.
18704 (RS6000_BUILTIN_M): New macro.
18705 (def_builtin): Handle RS6000_BTC_QUAD and RS6000_BTC_PAIR attributes.
18706 (bdesc_mma): Add new MMA built-in support.
18707 (htm_expand_builtin): Use RS6000_BTC_OPND_MASK.
18708 (rs6000_invalid_builtin): Add handling of RS6000_BTM_FUTURE and
18710 (rs6000_builtin_valid_without_lhs): Handle RS6000_BTC_VOID attribute.
18711 (rs6000_gimple_fold_builtin): Call rs6000_builtin_is_supported_p
18712 and rs6000_gimple_fold_mma_builtin.
18713 (rs6000_expand_builtin): Call mma_expand_builtin.
18714 Use RS6000_BTC_OPND_MASK.
18715 (rs6000_init_builtins): Adjust comment. Call mma_init_builtins.
18716 (htm_init_builtins): Use RS6000_BTC_OPND_MASK.
18717 (builtin_function_type): Handle VSX_BUILTIN_XVCVSPBF16 and
18718 VSX_BUILTIN_XVCVBF16SP.
18719 * config/rs6000/rs6000.h (RS6000_BTC_QUINARY, RS6000_BTC_SENARY,
18720 RS6000_BTC_OPND_MASK, RS6000_BTC_QUAD, RS6000_BTC_PAIR,
18721 RS6000_BTC_QUADPAIR, RS6000_BTC_GIMPLE): New defines.
18722 (RS6000_BTC_PREDICATE, RS6000_BTC_ABS, RS6000_BTC_DST,
18723 RS6000_BTC_TYPE_MASK, RS6000_BTC_ATTR_MASK): Adjust values.
18724 * config/rs6000/mma.md (MAX_MMA_OPERANDS): New define_constant.
18725 (UNSPEC_MMA_ASSEMBLE_ACC, UNSPEC_MMA_PMXVBF16GER2,
18726 UNSPEC_MMA_PMXVBF16GER2NN, UNSPEC_MMA_PMXVBF16GER2NP,
18727 UNSPEC_MMA_PMXVBF16GER2PN, UNSPEC_MMA_PMXVBF16GER2PP,
18728 UNSPEC_MMA_PMXVF16GER2, UNSPEC_MMA_PMXVF16GER2NN,
18729 UNSPEC_MMA_PMXVF16GER2NP, UNSPEC_MMA_PMXVF16GER2PN,
18730 UNSPEC_MMA_PMXVF16GER2PP, UNSPEC_MMA_PMXVF32GER,
18731 UNSPEC_MMA_PMXVF32GERNN, UNSPEC_MMA_PMXVF32GERNP,
18732 UNSPEC_MMA_PMXVF32GERPN, UNSPEC_MMA_PMXVF32GERPP,
18733 UNSPEC_MMA_PMXVF64GER, UNSPEC_MMA_PMXVF64GERNN,
18734 UNSPEC_MMA_PMXVF64GERNP, UNSPEC_MMA_PMXVF64GERPN,
18735 UNSPEC_MMA_PMXVF64GERPP, UNSPEC_MMA_PMXVI16GER2,
18736 UNSPEC_MMA_PMXVI16GER2PP, UNSPEC_MMA_PMXVI16GER2S,
18737 UNSPEC_MMA_PMXVI16GER2SPP, UNSPEC_MMA_PMXVI4GER8,
18738 UNSPEC_MMA_PMXVI4GER8PP, UNSPEC_MMA_PMXVI8GER4,
18739 UNSPEC_MMA_PMXVI8GER4PP, UNSPEC_MMA_PMXVI8GER4SPP,
18740 UNSPEC_MMA_XVBF16GER2, UNSPEC_MMA_XVBF16GER2NN,
18741 UNSPEC_MMA_XVBF16GER2NP, UNSPEC_MMA_XVBF16GER2PN,
18742 UNSPEC_MMA_XVBF16GER2PP, UNSPEC_MMA_XVF16GER2, UNSPEC_MMA_XVF16GER2NN,
18743 UNSPEC_MMA_XVF16GER2NP, UNSPEC_MMA_XVF16GER2PN, UNSPEC_MMA_XVF16GER2PP,
18744 UNSPEC_MMA_XVF32GER, UNSPEC_MMA_XVF32GERNN, UNSPEC_MMA_XVF32GERNP,
18745 UNSPEC_MMA_XVF32GERPN, UNSPEC_MMA_XVF32GERPP, UNSPEC_MMA_XVF64GER,
18746 UNSPEC_MMA_XVF64GERNN, UNSPEC_MMA_XVF64GERNP, UNSPEC_MMA_XVF64GERPN,
18747 UNSPEC_MMA_XVF64GERPP, UNSPEC_MMA_XVI16GER2, UNSPEC_MMA_XVI16GER2PP,
18748 UNSPEC_MMA_XVI16GER2S, UNSPEC_MMA_XVI16GER2SPP, UNSPEC_MMA_XVI4GER8,
18749 UNSPEC_MMA_XVI4GER8PP, UNSPEC_MMA_XVI8GER4, UNSPEC_MMA_XVI8GER4PP,
18750 UNSPEC_MMA_XVI8GER4SPP, UNSPEC_MMA_XXMFACC, UNSPEC_MMA_XXMTACC): New.
18751 (MMA_ACC, MMA_VV, MMA_AVV, MMA_PV, MMA_APV, MMA_VVI4I4I8,
18752 MMA_AVVI4I4I8, MMA_VVI4I4I2, MMA_AVVI4I4I2, MMA_VVI4I4,
18753 MMA_AVVI4I4, MMA_PVI4I2, MMA_APVI4I2, MMA_VVI4I4I4,
18754 MMA_AVVI4I4I4): New define_int_iterator.
18755 (acc, vv, avv, pv, apv, vvi4i4i8, avvi4i4i8, vvi4i4i2,
18756 avvi4i4i2, vvi4i4, avvi4i4, pvi4i2, apvi4i2, vvi4i4i4,
18757 avvi4i4i4): New define_int_attr.
18758 (*movpxi): Add zero constant alternative.
18759 (mma_assemble_pair, mma_assemble_acc): New define_expand.
18760 (*mma_assemble_acc): New define_insn_and_split.
18761 (mma_<acc>, mma_xxsetaccz, mma_<vv>, mma_<avv>, mma_<pv>, mma_<apv>,
18762 mma_<vvi4i4i8>, mma_<avvi4i4i8>, mma_<vvi4i4i2>, mma_<avvi4i4i2>,
18763 mma_<vvi4i4>, mma_<avvi4i4>, mma_<pvi4i2>, mma_<apvi4i2>,
18764 mma_<vvi4i4i4>, mma_<avvi4i4i4>): New define_insn.
18765 * config/rs6000/rs6000.md (define_attr "type"): New type mma.
18766 * config/rs6000/vsx.md (UNSPEC_VSX_XVCVBF16SP): New.
18767 (UNSPEC_VSX_XVCVSPBF16): Likewise.
18768 (XVCVBF16): New define_int_iterator.
18769 (xvcvbf16): New define_int_attr.
18770 (vsx_<xvcvbf16>): New define_insn.
18771 * doc/extend.texi: Document the mma built-ins.
18773 2020-06-21 Peter Bergner <bergner@linux.ibm.com>
18774 Michael Meissner <meissner@linux.ibm.com>
18776 * config/rs6000/mma.md: New file.
18777 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
18779 * config/rs6000/rs6000-call.c (rs6000_init_builtins): Add support
18780 for __vector_pair and __vector_quad types.
18781 * config/rs6000/rs6000-cpus.def (OTHER_FUTURE_MASKS): Add
18783 (POWERPC_MASKS): Likewise.
18784 * config/rs6000/rs6000-modes.def (OI, XI): New integer modes.
18785 (POI, PXI): New partial integer modes.
18786 * config/rs6000/rs6000.c (TARGET_INVALID_CONVERSION): Define.
18787 (rs6000_hard_regno_nregs_internal): Use VECTOR_ALIGNMENT_P.
18788 (rs6000_hard_regno_mode_ok_uncached): Likewise.
18789 Add support for POImode being allowed in VSX registers and PXImode
18790 being allowed in FP registers.
18791 (rs6000_modes_tieable_p): Adjust comment.
18792 Add support for POImode and PXImode.
18793 (rs6000_debug_reg_global) <print_tieable_modes>: Add OImode, POImode
18794 XImode, PXImode, V2SImode, V2SFmode and CCFPmode..
18795 (rs6000_setup_reg_addr_masks): Use VECTOR_ALIGNMENT_P.
18796 Set up appropriate addr_masks for vector pair and vector quad addresses.
18797 (rs6000_init_hard_regno_mode_ok): Add support for vector pair and
18798 vector quad registers. Setup reload handlers for POImode and PXImode.
18799 (rs6000_builtin_mask_calculate): Add support for RS6000_BTM_MMA.
18800 (rs6000_option_override_internal): Error if -mmma is specified
18801 without -mcpu=future.
18802 (rs6000_slow_unaligned_access): Use VECTOR_ALIGNMENT_P.
18803 (quad_address_p): Change size test to less than 16 bytes.
18804 (reg_offset_addressing_ok_p): Add support for ISA 3.1 vector pair
18805 and vector quad instructions.
18806 (avoiding_indexed_address_p): Likewise.
18807 (rs6000_emit_move): Disallow POImode and PXImode moves involving
18809 (rs6000_preferred_reload_class): Prefer VSX registers for POImode
18810 and FP registers for PXImode.
18811 (rs6000_split_multireg_move): Support splitting POImode and PXImode
18813 (rs6000_mangle_type): Adjust comment. Add support for mangling
18814 __vector_pair and __vector_quad types.
18815 (rs6000_opt_masks): Add entry for mma.
18816 (rs6000_builtin_mask_names): Add RS6000_BTM_MMA and RS6000_BTM_FUTURE.
18817 (rs6000_function_value): Use VECTOR_ALIGNMENT_P.
18818 (address_to_insn_form): Likewise.
18819 (reg_to_non_prefixed): Likewise.
18820 (rs6000_invalid_conversion): New function.
18821 * config/rs6000/rs6000.h (MASK_MMA): Define.
18822 (BIGGEST_ALIGNMENT): Set to 512 if MMA support is enabled.
18823 (VECTOR_ALIGNMENT_P): New helper macro.
18824 (ALTIVEC_VECTOR_MODE): Use VECTOR_ALIGNMENT_P.
18825 (RS6000_BTM_MMA): Define.
18826 (RS6000_BTM_COMMON): Add RS6000_BTM_MMA and RS6000_BTM_FUTURE.
18827 (rs6000_builtin_type_index): Add RS6000_BTI_vector_pair and
18828 RS6000_BTI_vector_quad.
18829 (vector_pair_type_node): New.
18830 (vector_quad_type_node): New.
18831 * config/rs6000/rs6000.md: Include mma.md.
18832 (define_mode_iterator RELOAD): Add POI and PXI.
18833 * config/rs6000/t-rs6000 (MD_INCLUDES): Add mma.md.
18834 * config/rs6000/rs6000.opt (-mmma): New.
18835 * doc/invoke.texi: Document -mmma.
18837 2020-06-20 Bin Cheng <bin.cheng@linux.alibaba.com>
18839 PR tree-optimization/95638
18840 * tree-loop-distribution.c (pg_edge_callback_data): New field.
18841 (loop_distribution::break_alias_scc_partitions): Record and restore
18842 postorder information. Fix memory leak.
18844 2020-06-19 Tobias Burnus <tobias@codesourcery.com>
18846 * config/gcn/gcn.c (gcn_related_vector_mode): Add ARG_UNUSED.
18847 (output_file_start): Use const 'char *'.
18849 2020-06-19 Przemyslaw Wirkus <Przemyslaw.Wirkus@arm.com>
18851 PR tree-optimization/94880
18852 * match.pd (A | B) - B -> (A & ~B): New simplification.
18854 2020-06-19 Richard Biener <rguenther@suse.de>
18856 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Adjust
18857 for lane permutations.
18859 2020-06-19 Richard Biener <rguenther@suse.de>
18861 PR tree-optimization/95761
18862 * tree-vect-slp.c (vect_schedule_slp_instance): Walk all
18863 vectorized stmts for finding the last one.
18865 2020-06-18 Felix Yang <felix.yang@huawei.com>
18867 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Call
18868 vect_relevant_for_alignment_p to filter out data references in
18869 the loop whose alignment is irrelevant when trying loop peeling
18870 to force alignment.
18872 2020-06-18 Uroš Bizjak <ubizjak@gmail.com>
18874 * config/i386/i386.md (*cmpqi_ext<mode>_1): Use SWI248 mode
18875 iterator instead of SImode for ZERO_EXTRACT RTX. Use SWI248
18876 mode iterator for the first operand of ZERO_EXTRACT RTX.
18877 Change ext_register_operand predicate to register_operand.
18878 Rename from *cmpqi_ext_1.
18879 (*cmpqi_ext<mode>_2): Ditto. Rename from *cmpqi_ext_2.
18880 (*cmpqi_ext<mode>_3): Ditto. Rename from *cmpqi_ext_3.
18881 (*cmpqi_ext<mode>_4): Ditto. Rename from *cmpqi_ext_4.
18882 (cmpi_ext_3): Use HImode instead of SImode for ZERO_EXTRACT RTX.
18883 (*extv<mode>): Use SWI24 mode iterator for the first operand
18884 of ZERO_EXTRACT RTX. Change ext_register_operand predicate
18885 to register_operand.
18886 (*extzv<mode>): Use SWI248 mode iterator for the first operand
18887 of ZERO_EXTRACT RTX. Change ext_register_operand predicate
18888 to register_operand.
18889 (*extzvqi): Use SWI248 mode iterator instead of SImode for
18890 ZERO_EXTRACT RTX. Use SWI248 mode iterator for the first operand
18891 of ZERO_EXTRACT RTX. Change ext_register_operand predicate to
18893 (*extzvqi_mem_rex64 and corresponding peephole2): Use SWI248 mode
18894 iterator instead of SImode for ZERO_EXTRACT RTX. Use SWI248
18895 mode iterator for the first operand of ZERO_EXTRACT RTX.
18896 Change ext_register_operand predicate to register_operand.
18897 (@insv<mode>_1): Use SWI248 mode iterator for the first operand
18898 of ZERO_EXTRACT RTX. Change ext_register_operand predicate to
18900 (*insvqi_1): Use SWI248 mode iterator instead of SImode
18901 for ZERO_EXTRACT RTX. Use SWI248 mode iterator for the
18902 first operand of ZERO_EXTRACT RTX. Change ext_register_operand
18903 predicate to register_operand.
18904 (*insvqi_2): Ditto.
18905 (*insvqi_3): Ditto.
18906 (*insvqi_1_mem_rex64 and corresponding peephole2): Use SWI248 mode
18907 iterator instead of SImode for ZERO_EXTRACT RTX. Use SWI248
18908 mode iterator for the first operand of ZERO_EXTRACT RTX.
18909 Change ext_register_operand predicate to register_operand.
18910 (addqi_ext_1): New expander.
18911 (*addqi_ext<mode>_1): Use SWI248 mode iterator instead of SImode
18912 for ZERO_EXTRACT RTX. Use SWI248 mode iterator for the first
18913 operand of ZERO_EXTRACT RTX. Change ext_register_operand predicate
18914 to register_operand. Rename from *addqi_ext_1.
18915 (*addqi_ext<mode>_2): Ditto. Rename from *addqi_ext_2.
18916 (divmodqi4): Use HImode instead of SImode for ZERO_EXTRACT RTX.
18917 (udivmodqi4): Ditto.
18918 (testqi_ext_1): Use HImode instead of SImode for ZERO_EXTRACT RTX.
18919 (*testqi_ext<mode>_1): Use SWI248 mode iterator instead of SImode
18920 for ZERO_EXTRACT RTX. Use SWI248 mode iterator for the first
18921 operand of ZERO_EXTRACT RTX. Change ext_register_operand predicate
18922 to register_operand. Rename from *testqi_ext_1.
18923 (*testqi_ext<mode>_2): Ditto. Rename from *testqi_ext_2.
18924 (andqi_ext_1): New expander.
18925 (*andqi_ext<mode>_1): Use SWI248 mode iterator instead of SImode
18926 for ZERO_EXTRACT RTX. Use SWI248 mode iterator for the first
18927 operand of ZERO_EXTRACT RTX. Change ext_register_operand predicate
18928 to register_operand. Rename from andqi_ext_1.
18929 (*andqi_ext<mode>_1_cc): Ditto. Rename from *andqi_ext_1_cc.
18930 (*andqi_ext<mode>_2): Ditto. Rename from *andqi_ext_2.
18931 (*<code>qi_ext<mode>_1): Ditto. Rename from *<code>qi_ext_1.
18932 (*<code>qi_ext<mode>_2): Ditto. Rename from *<code>qi_ext_2.
18933 (xorqi_ext_1_cc): Use HImode instead of SImode for ZERO_EXTRACT RTX.
18934 (*xorqi_ext<mode>_1_cc): Use SWI248 mode iterator instead of SImode
18935 for ZERO_EXTRACT RTX. Use SWI248 mode iterator for the first
18936 operand of ZERO_EXTRACT RTX. Change ext_register_operand predicate
18937 to register_operand. Rename from *xorqi_ext_1_cc.
18938 * config/i386/i386-expand.c (ix86_split_idivmod): Emit ZERO_EXTRACT
18939 in mode, matching its first operand.
18940 (promote_duplicated_reg): Update for renamed insv<mode>_1.
18941 * config/i386/predicates.md (ext_register_operand): Remove predicate.
18943 2020-06-18 Martin Sebor <msebor@redhat.com>
18945 PR middle-end/95667
18946 PR middle-end/92814
18947 * builtins.c (compute_objsize): Remove call to
18948 compute_builtin_object_size and instead compute conservative sizes
18951 2020-06-18 Martin Liska <mliska@suse.cz>
18953 * coretypes.h (struct iterator_range): New type.
18954 * tree-vect-patterns.c (vect_determine_precisions): Use
18955 range-based iterator.
18956 (vect_pattern_recog): Likewise.
18957 * tree-vect-slp.c (_bb_vec_info): Likewise.
18958 (_bb_vec_info::~_bb_vec_info): Likewise.
18959 (vect_slp_check_for_constructors): Likewise.
18960 * tree-vectorizer.h:Add new iterators
18961 and functions that use it.
18963 2020-06-18 Martin Liska <mliska@suse.cz>
18965 * config/rs6000/rs6000-call.c (fold_build_vec_cmp):
18966 Since 502d63b6d6141597bb18fd23c87736a1b384cf8f, first argument
18967 of a VEC_COND_EXPR cannot be tcc_comparison and so that
18968 a SSA_NAME needs to be created before we use it for the first
18969 argument of the VEC_COND_EXPR.
18970 (fold_compare_helper): Pass gsi to fold_build_vec_cmp.
18972 2020-06-18 Richard Biener <rguenther@suse.de>
18974 PR middle-end/95739
18975 * internal-fn.c (expand_vect_cond_optab_fn): Move the result
18976 to the target if necessary.
18977 (expand_vect_cond_mask_optab_fn): Likewise.
18979 2020-06-18 Martin Liska <mliska@suse.cz>
18981 * tree-ssa-reassoc.c (ovce_extract_ops): Replace *vcond with
18982 vcond as we check for NULL pointer.
18984 2020-06-18 Tobias Burnus <tobias@codesourcery.com>
18986 * gimple-pretty-print.c (dump_binary_rhs): Use braces to
18987 silence empty-body warning with gcc_fallthrough.
18989 2020-06-18 Jakub Jelinek <jakub@redhat.com>
18991 PR tree-optimization/95699
18992 * tree-ssa-phiopt.c (minmax_replacement): Treat (signed int)x < 0
18993 as x > INT_MAX and (signed int)x >= 0 as x <= INT_MAX. Move variable
18994 declarations to the statements that set them where possible.
18996 2020-06-18 Jakub Jelinek <jakub@redhat.com>
18999 * tree-ssa-forwprop.c (simplify_vector_constructor): Don't allow
19000 scalar mode halfvectype other than vector boolean for
19001 VEC_PACK_TRUNC_EXPR.
19003 2020-06-18 Richard Biener <rguenther@suse.de>
19005 * varasm.c (assemble_variable): Make sure to not
19006 defer output when outputting addressed constants.
19007 (output_constant_def_contents): Likewise.
19008 (add_constant_to_table): Take and pass on whether to
19010 (output_addressed_constants): Likewise.
19011 (output_constant_def): Pass on whether to defer output
19012 to add_constant_to_table.
19013 (tree_output_constant_def): Defer output of constants.
19015 2020-06-18 Richard Biener <rguenther@suse.de>
19017 * tree-vectorizer.h (_slp_tree::two_operators): Remove.
19018 (_slp_tree::lane_permutation): New member.
19019 (_slp_tree::code): Likewise.
19020 (SLP_TREE_TWO_OPERATORS): Remove.
19021 (SLP_TREE_LANE_PERMUTATION): New.
19022 (SLP_TREE_CODE): Likewise.
19023 (vect_stmt_dominates_stmt_p): Declare.
19024 * tree-vectorizer.c (vect_stmt_dominates_stmt_p): New function.
19025 * tree-vect-stmts.c (vect_model_simple_cost): Remove
19026 SLP_TREE_TWO_OPERATORS handling.
19027 * tree-vect-slp.c (_slp_tree::_slp_tree): Amend.
19028 (_slp_tree::~_slp_tree): Likewise.
19029 (vect_two_operations_perm_ok_p): Remove.
19030 (vect_build_slp_tree_1): Remove verification of two-operator
19032 (vect_build_slp_tree_2): When we have two different operators
19033 build two computation SLP nodes and a blend.
19034 (vect_print_slp_tree): Print the lane permutation if it exists.
19035 (slp_copy_subtree): Copy it.
19036 (vect_slp_rearrange_stmts): Re-arrange it.
19037 (vect_slp_analyze_node_operations_1): Handle SLP_TREE_CODE
19038 VEC_PERM_EXPR explicitely.
19039 (vect_schedule_slp_instance): Likewise. Remove old
19040 SLP_TREE_TWO_OPERATORS code.
19041 (vectorizable_slp_permutation): New function.
19043 2020-06-18 Martin Liska <mliska@suse.cz>
19045 * tree-vect-generic.c (expand_vector_condition): Check
19046 for gassign before inspecting RHS.
19048 2020-06-17 Thomas Schwinge <thomas@codesourcery.com>
19050 * gimplify.c (omp_notice_threadprivate_variable)
19051 (omp_default_clause, omp_notice_variable): 'inform' after 'error'
19052 diagnostic. Adjust all users.
19054 2020-06-17 Thomas Schwinge <thomas@codesourcery.com>
19056 * hsa-gen.c (gen_hsa_insns_for_call): Move 'function_decl ==
19057 NULL_TREE' check earlier.
19059 2020-06-17 Forrest Timour <forrest.timour@gmail.com>
19061 * doc/extend.texi (attribute access): Fix a typo.
19063 2020-06-17 Bin Cheng <bin.cheng@linux.alibaba.com>
19064 Kaipeng Zhou <zhoukaipeng3@huawei.com>
19066 PR tree-optimization/95199
19067 * tree-vect-stmts.c: Eliminate common stmts for bump and offset in
19068 strided load/store operations and remove redundant code.
19070 2020-06-17 Richard Sandiford <richard.sandiford@arm.com>
19072 * coretypes.h (first_type): New alias template.
19073 * recog.h (insn_gen_fn::operator()): Use it instead of a decltype.
19074 Remove spurious “...” and split the function type out into a typedef.
19076 2020-06-17 Andreas Krebbel <krebbel@linux.ibm.com>
19078 * config/s390/s390.c (s390_fix_long_loop_prediction): Exit early
19081 2020-06-17 Richard Biener <rguenther@suse.de>
19083 * tree-vect-slp.c (vect_build_slp_tree_1): Set the passed
19084 in *vectype parameter.
19085 (vect_build_slp_tree_2): Set SLP_TREE_VECTYPE from what
19086 vect_build_slp_tree_1 computed.
19087 (vect_analyze_slp_instance): Set SLP_TREE_VECTYPE.
19088 (vect_slp_analyze_node_operations_1): Use the SLP node vector type.
19089 (vect_schedule_slp_instance): Likewise.
19090 * tree-vect-stmts.c (vect_is_simple_use): Take the vector type
19091 from SLP_TREE_VECTYPE.
19093 2020-06-17 Richard Biener <rguenther@suse.de>
19095 PR tree-optimization/95717
19096 * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg):
19097 Move BB SSA updating before exit/latch PHI current def copying.
19099 2020-06-17 Martin Liska <mliska@suse.cz>
19101 * Makefile.in: Add new file.
19102 * expr.c (expand_expr_real_2): Add gcc_unreachable as we should
19103 not meet this condition.
19104 (do_store_flag): Likewise.
19105 * gimplify.c (gimplify_expr): Gimplify first argument of
19106 VEC_COND_EXPR to be a SSA name.
19107 * internal-fn.c (vec_cond_mask_direct): New.
19108 (vec_cond_direct): Likewise.
19109 (vec_condu_direct): Likewise.
19110 (vec_condeq_direct): Likewise.
19111 (expand_vect_cond_optab_fn): New.
19112 (expand_vec_cond_optab_fn): Likewise.
19113 (expand_vec_condu_optab_fn): Likewise.
19114 (expand_vec_condeq_optab_fn): Likewise.
19115 (expand_vect_cond_mask_optab_fn): Likewise.
19116 (expand_vec_cond_mask_optab_fn): Likewise.
19117 (direct_vec_cond_mask_optab_supported_p): Likewise.
19118 (direct_vec_cond_optab_supported_p): Likewise.
19119 (direct_vec_condu_optab_supported_p): Likewise.
19120 (direct_vec_condeq_optab_supported_p): Likewise.
19121 * internal-fn.def (VCOND): New OPTAB.
19122 (VCONDU): Likewise.
19123 (VCONDEQ): Likewise.
19124 (VCOND_MASK): Likewise.
19125 * optabs.c (get_rtx_code): Make it global.
19126 (expand_vec_cond_mask_expr): Removed.
19127 (expand_vec_cond_expr): Removed.
19128 * optabs.h (expand_vec_cond_expr): Likewise.
19129 (vector_compare_rtx): Make it global.
19130 * passes.def: Add new pass_gimple_isel pass.
19131 * tree-cfg.c (verify_gimple_assign_ternary): Add check
19132 for VEC_COND_EXPR about first argument.
19133 * tree-pass.h (make_pass_gimple_isel): New.
19134 * tree-ssa-forwprop.c (pass_forwprop::execute): Prevent
19135 propagation of the first argument of a VEC_COND_EXPR.
19136 * tree-ssa-reassoc.c (ovce_extract_ops): Support SSA_NAME as
19137 first argument of a VEC_COND_EXPR.
19138 (optimize_vec_cond_expr): Likewise.
19139 * tree-vect-generic.c (expand_vector_divmod): Make SSA_NAME
19140 for a first argument of created VEC_COND_EXPR.
19141 (expand_vector_condition): Fix coding style.
19142 * tree-vect-stmts.c (vectorizable_condition): Gimplify
19144 * gimple-isel.cc: New file.
19146 2020-06-17 Andrew Stubbs <ams@codesourcery.com>
19148 * config/gcn/gcn-hsa.h (TEXT_SECTION_ASM_OP): Use ".text".
19149 (BSS_SECTION_ASM_OP): Use ".bss".
19150 (ASM_SPEC): Remove "-mattr=-code-object-v3".
19151 (LINK_SPEC): Add "--export-dynamic".
19152 * config/gcn/gcn-opts.h (processor_type): Replace PROCESSOR_VEGA with
19153 PROCESSOR_VEGA10 and PROCESSOR_VEGA20.
19154 * config/gcn/gcn-run.c (HSA_RUNTIME_LIB): Use ".so.1" variant.
19155 (load_image): Remove obsolete relocation handling.
19156 Add ".kd" suffix to the symbol names.
19157 * config/gcn/gcn.c (MAX_NORMAL_SGPR_COUNT): Set to 62.
19158 (gcn_option_override): Update gcn_isa test.
19159 (gcn_kernel_arg_types): Update all the assembler directives.
19160 Remove the obsolete options.
19161 (gcn_conditional_register_usage): Update MAX_NORMAL_SGPR_COUNT usage.
19162 (gcn_omp_device_kind_arch_isa): Handle PROCESSOR_VEGA10 and
19164 (output_file_start): Rework assembler file header.
19165 (gcn_hsa_declare_function_name): Rework kernel metadata.
19166 * config/gcn/gcn.h (GCN_KERNEL_ARG_TYPES): Set to 16.
19167 * config/gcn/gcn.opt (PROCESSOR_VEGA): Remove enum.
19168 (PROCESSOR_VEGA10): New enum value.
19169 (PROCESSOR_VEGA20): New enum value.
19171 2020-06-17 Martin Liska <mliska@suse.cz>
19173 * gcov-dump.c (print_version): Collapse lisence header to 2 lines
19175 * gcov-tool.c (print_version): Likewise.
19176 * gcov.c (print_version): Likewise.
19178 2020-06-17 liuhongt <hongtao.liu@intel.com>
19181 * config/i386/i386-expand.c
19182 (ix86_expand_vec_shift_qihi_constant): New function.
19183 * config/i386/i386-protos.h
19184 (ix86_expand_vec_shift_qihi_constant): Declare.
19185 * config/i386/sse.md (<shift_insn><mode>3): Optimize shift
19186 V*QImode by constant.
19188 2020-06-16 Aldy Hernandez <aldyh@redhat.com>
19190 PR tree-optimization/95649
19191 * tree-ssa-propagate.c (propagate_into_phi_args): Do not propagate unless
19192 value is a constant.
19194 2020-06-16 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
19196 * config.in: Regenerate.
19197 * config/s390/s390.c (print_operand): Emit vector alignment hints
19198 for target z13, if AS accepts them. For other targets the logic
19200 * config/s390/s390.h (TARGET_VECTOR_LOADSTORE_ALIGNMENT_HINTS): Define
19202 * configure: Regenerate.
19203 * configure.ac: Check HAVE_AS_VECTOR_LOADSTORE_ALIGNMENT_HINTS_ON_Z13.
19205 2020-06-16 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
19207 * config/arm/arm_mve.h (__arm_vaddq_m_n_s8): Correct the intrinsic
19209 (__arm_vaddq_m_n_s32): Likewise.
19210 (__arm_vaddq_m_n_s16): Likewise.
19211 (__arm_vaddq_m_n_u8): Likewise.
19212 (__arm_vaddq_m_n_u32): Likewise.
19213 (__arm_vaddq_m_n_u16): Likewise.
19214 (__arm_vaddq_m): Modify polymorphic variant.
19216 2020-06-16 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
19218 * config/arm/mve.md (mve_uqrshll_sat<supf>_di): Correct the predicate
19219 and constraint of all the operands.
19220 (mve_sqrshrl_sat<supf>_di): Likewise.
19221 (mve_uqrshl_si): Likewise.
19222 (mve_sqrshr_si): Likewise.
19223 (mve_uqshll_di): Likewise.
19224 (mve_urshrl_di): Likewise.
19225 (mve_uqshl_si): Likewise.
19226 (mve_urshr_si): Likewise.
19227 (mve_sqshl_si): Likewise.
19228 (mve_srshr_si): Likewise.
19229 (mve_srshrl_di): Likewise.
19230 (mve_sqshll_di): Likewise.
19231 * config/arm/predicates.md (arm_low_register_operand): Define.
19233 2020-06-16 Jakub Jelinek <jakub@redhat.com>
19235 * tree.h (OMP_FOR_NON_RECTANGULAR): Define.
19236 * gimplify.c (gimplify_omp_for): Diagnose schedule, ordered
19237 or dist_schedule clause on non-rectangular loops. Handle
19238 gimplification of non-rectangular lb/b expressions. When changing
19239 iteration variable, adjust also non-rectangular lb/b expressions
19241 * omp-general.h (struct omp_for_data_loop): Add m1, m2 and outer
19243 (struct omp_for_data): Add non_rect member.
19244 * omp-general.c (omp_extract_for_data): Handle non-rectangular
19245 loops. Fill in non_rect, m1, m2 and outer.
19246 * omp-low.c (lower_omp_for): Handle non-rectangular lb/b expressions.
19247 * omp-expand.c (expand_omp_for): Emit sorry_at for unsupported
19248 non-rectangular loop cases and assert for cases that can't be
19250 * tree-pretty-print.c (dump_mem_ref): Formatting fix.
19251 (dump_omp_loop_non_rect_expr): New function.
19252 (dump_generic_node): Handle non-rectangular OpenMP loops.
19253 * tree-pretty-print.h (dump_omp_loop_non_rect_expr): Declare.
19254 * gimple-pretty-print.c (dump_gimple_omp_for): Handle non-rectangular
19257 2020-06-16 Richard Biener <rguenther@suse.de>
19259 PR middle-end/95690
19260 * varasm.c (build_constant_desc): Remove set_mem_attributes call.
19262 2020-06-16 Kito Cheng <kito.cheng@sifive.com>
19265 * config/riscv/riscv.c (riscv_gpr_save_operation_p): Remove
19266 assertion and turn it into a early exit check.
19268 2020-06-15 Eric Botcazou <ebotcazou@adacore.com>
19270 * gimplify.c (gimplify_init_constructor) <AGGREGATE_TYPE>: Declare
19271 new ENSURE_SINGLE_ACCESS constant and move variables down. If it is
19272 true and all elements are zero, then always clear. Return GS_ERROR
19273 if a temporary would be created for it and NOTIFY_TEMP_CREATION set.
19274 (gimplify_modify_expr_rhs) <VAR_DECL>: If the target is volatile but
19275 the type is aggregate non-addressable, ask gimplify_init_constructor
19276 whether it can generate a single access to the target.
19278 2020-06-15 Eric Botcazou <ebotcazou@adacore.com>
19280 * tree-sra.c (propagate_subaccesses_from_rhs): When a non-scalar
19281 access on the LHS is replaced with a scalar access, propagate the
19282 TYPE_REVERSE_STORAGE_ORDER flag of the type of the original access.
19284 2020-06-15 Max Filippov <jcmvbkbc@gmail.com>
19286 * config/xtensa/xtensa.c (TARGET_HAVE_TLS): Remove
19287 TARGET_THREADPTR reference.
19288 (xtensa_tls_symbol_p, xtensa_tls_referenced_p): Use
19289 targetm.have_tls instead of TARGET_HAVE_TLS.
19290 (xtensa_option_override): Set targetm.have_tls to false in
19291 configurations without THREADPTR.
19293 2020-06-15 Max Filippov <jcmvbkbc@gmail.com>
19295 * config/xtensa/elf.h (ASM_SPEC, LINK_SPEC): Pass ABI switch to
19297 * config/xtensa/linux.h (ASM_SPEC, LINK_SPEC): Ditto.
19298 * config/xtensa/uclinux.h (ASM_SPEC, LINK_SPEC): Ditto.
19299 * config/xtensa/xtensa.c (xtensa_option_override): Initialize
19300 xtensa_windowed_abi if needed.
19301 * config/xtensa/xtensa.h (TARGET_WINDOWED_ABI_DEFAULT): New
19303 (TARGET_WINDOWED_ABI): Redefine to xtensa_windowed_abi.
19304 * config/xtensa/xtensa.opt (xtensa_windowed_abi): New target
19306 (mabi=call0, mabi=windowed): New options.
19307 * doc/invoke.texi: Document new -mabi= Xtensa-specific options.
19309 2020-06-15 Max Filippov <jcmvbkbc@gmail.com>
19311 * config/xtensa/xtensa.c (xtensa_can_eliminate): New function.
19312 (TARGET_CAN_ELIMINATE): New macro.
19313 * config/xtensa/xtensa.h
19314 (XTENSA_WINDOWED_HARD_FRAME_POINTER_REGNUM)
19315 (XTENSA_CALL0_HARD_FRAME_POINTER_REGNUM): New macros.
19316 (HARD_FRAME_POINTER_REGNUM): Define using
19317 XTENSA_*_HARD_FRAME_POINTER_REGNUM.
19318 (ELIMINABLE_REGS): Replace lines with HARD_FRAME_POINTER_REGNUM
19319 by lines with XTENSA_WINDOWED_HARD_FRAME_POINTER_REGNUM and
19320 XTENSA_CALL0_HARD_FRAME_POINTER_REGNUM.
19322 2020-06-15 Felix Yang <felix.yang@huawei.com>
19324 * tree-vect-data-refs.c (vect_verify_datarefs_alignment): Rename
19325 parameter to loop_vinfo and update uses. Use LOOP_VINFO_DATAREFS
19327 (vect_analyze_data_refs_alignment): Likewise, and use LOOP_VINFO_DDRS
19329 * tree-vect-loop.c (vect_dissolve_slp_only_groups): Use
19330 LOOP_VINFO_DATAREFS when possible.
19331 (update_epilogue_loop_vinfo): Likewise.
19333 2020-06-15 Kito Cheng <kito.cheng@sifive.com>
19335 * config/riscv/riscv.c (riscv_gen_gpr_save_insn): Change type to
19337 (riscv_gpr_save_operation_p): Change type to unsigned for i and
19340 2020-06-15 Hongtao Liu <hongtao.liu@intel.com>
19343 * config/i386/i386-expand.c (ix86_expand_vecmul_qihi): New
19345 * config/i386/i386-protos.h (ix86_expand_vecmul_qihi): Declare.
19346 * config/i386/sse.md (mul<mode>3): Drop mask_name since
19347 there's no real simd int8 multiplication instruction with
19348 mask. Also optimize it under TARGET_AVX512BW.
19349 (mulv8qi3): New expander.
19351 2020-06-12 Marco Elver <elver@google.com>
19353 * gimplify.c (gimplify_function_tree): Optimize and do not emit
19354 IFN_TSAN_FUNC_EXIT in a finally block if we do not need it.
19355 * params.opt: Add --param=tsan-instrument-func-entry-exit=.
19356 * tsan.c (instrument_memory_accesses): Make
19357 fentry_exit_instrument bool depend on new param.
19359 2020-06-12 Felix Yang <felix.yang@huawei.com>
19361 PR tree-optimization/95570
19362 * tree-vect-data-refs.c (vect_relevant_for_alignment_p): New function.
19363 (vect_verify_datarefs_alignment): Call it to filter out data references
19364 in the loop whose alignment is irrelevant.
19365 (vect_get_peeling_costs_all_drs): Likewise.
19366 (vect_peeling_supportable): Likewise.
19367 (vect_enhance_data_refs_alignment): Likewise.
19369 2020-06-12 Richard Biener <rguenther@suse.de>
19371 PR tree-optimization/95633
19372 * tree-vect-stmts.c (vectorizable_condition): Properly
19373 guard the vec_else_clause access with EXTRACT_LAST_REDUCTION.
19375 2020-06-12 Martin Liška <mliska@suse.cz>
19377 * cgraphunit.c (process_symver_attribute): Wrap weakref keyword.
19378 * dbgcnt.c (dbg_cnt_set_limit_by_index): Do not print extra new
19380 * lto-wrapper.c (merge_and_complain): Wrap option names.
19382 2020-06-12 Kewen Lin <linkw@gcc.gnu.org>
19384 * tree-vect-loop-manip.c (vect_set_loop_controls_directly): Rename
19385 LOOP_VINFO_MASK_COMPARE_TYPE to LOOP_VINFO_RGROUP_COMPARE_TYPE. Rename
19386 LOOP_VINFO_MASK_IV_TYPE to LOOP_VINFO_RGROUP_IV_TYPE.
19387 (vect_set_loop_condition_masked): Renamed to ...
19388 (vect_set_loop_condition_partial_vectors): ... this. Rename
19389 LOOP_VINFO_MASK_COMPARE_TYPE to LOOP_VINFO_RGROUP_COMPARE_TYPE. Rename
19390 vect_iv_limit_for_full_masking to vect_iv_limit_for_partial_vectors.
19391 (vect_set_loop_condition_unmasked): Renamed to ...
19392 (vect_set_loop_condition_normal): ... this.
19393 (vect_set_loop_condition): Rename vect_set_loop_condition_unmasked to
19394 vect_set_loop_condition_normal. Rename vect_set_loop_condition_masked
19395 to vect_set_loop_condition_partial_vectors.
19396 (vect_prepare_for_masked_peels): Rename LOOP_VINFO_MASK_COMPARE_TYPE
19397 to LOOP_VINFO_RGROUP_COMPARE_TYPE.
19398 * tree-vect-loop.c (vect_known_niters_smaller_than_vf): New, factored
19400 (vect_analyze_loop_costing): ... this.
19401 (_loop_vec_info::_loop_vec_info): Rename mask_compare_type to
19403 (vect_min_prec_for_max_niters): New, factored out from ...
19404 (vect_verify_full_masking): ... this. Rename
19405 vect_iv_limit_for_full_masking to vect_iv_limit_for_partial_vectors.
19406 Rename LOOP_VINFO_MASK_COMPARE_TYPE to LOOP_VINFO_RGROUP_COMPARE_TYPE.
19407 Rename LOOP_VINFO_MASK_IV_TYPE to LOOP_VINFO_RGROUP_IV_TYPE.
19408 (vectorizable_reduction): Update some dumpings with partial
19409 vectors instead of fully-masked.
19410 (vectorizable_live_operation): Likewise.
19411 (vect_iv_limit_for_full_masking): Renamed to ...
19412 (vect_iv_limit_for_partial_vectors): ... this.
19413 * tree-vect-stmts.c (check_load_store_masking): Renamed to ...
19414 (check_load_store_for_partial_vectors): ... this. Update some
19415 dumpings with partial vectors instead of fully-masked.
19416 (vectorizable_store): Rename check_load_store_masking to
19417 check_load_store_for_partial_vectors.
19418 (vectorizable_load): Likewise.
19419 * tree-vectorizer.h (LOOP_VINFO_MASK_COMPARE_TYPE): Renamed to ...
19420 (LOOP_VINFO_RGROUP_COMPARE_TYPE): ... this.
19421 (LOOP_VINFO_MASK_IV_TYPE): Renamed to ...
19422 (LOOP_VINFO_RGROUP_IV_TYPE): ... this.
19423 (vect_iv_limit_for_full_masking): Renamed to ...
19424 (vect_iv_limit_for_partial_vectors): this.
19425 (_loop_vec_info): Rename mask_compare_type to rgroup_compare_type.
19426 Rename iv_type to rgroup_iv_type.
19428 2020-06-12 Richard Sandiford <richard.sandiford@arm.com>
19430 * recog.h (insn_gen_fn::f0, insn_gen_fn::f1, insn_gen_fn::f2)
19431 (insn_gen_fn::f3, insn_gen_fn::f4, insn_gen_fn::f5, insn_gen_fn::f6)
19432 (insn_gen_fn::f7, insn_gen_fn::f8, insn_gen_fn::f9, insn_gen_fn::f10)
19433 (insn_gen_fn::f11, insn_gen_fn::f12, insn_gen_fn::f13)
19434 (insn_gen_fn::f14, insn_gen_fn::f15, insn_gen_fn::f16): Delete.
19435 (insn_gen_fn::operator()): Replace overloaded definitions with
19436 a parameter-pack version.
19438 2020-06-12 H.J. Lu <hjl.tools@gmail.com>
19441 * config/i386/i386-features.c (rest_of_insert_endbranch):
19443 (rest_of_insert_endbr_and_patchable_area): Change return type
19444 to void. Add need_endbr and patchable_area_size arguments.
19445 Don't call timevar_push nor timevar_pop. Replace
19446 endbr_queued_at_entrance with insn_queued_at_entrance. Insert
19447 UNSPECV_PATCHABLE_AREA for patchable area.
19448 (pass_data_insert_endbranch): Renamed to ...
19449 (pass_data_insert_endbr_and_patchable_area): This. Change
19450 pass name to endbr_and_patchable_area.
19451 (pass_insert_endbranch): Renamed to ...
19452 (pass_insert_endbr_and_patchable_area): This. Add need_endbr
19453 and patchable_area_size;.
19454 (pass_insert_endbr_and_patchable_area::gate): Set and check
19455 need_endbr and patchable_area_size.
19456 (pass_insert_endbr_and_patchable_area::execute): Call
19457 timevar_push and timevar_pop. Pass need_endbr and
19458 patchable_area_size to rest_of_insert_endbr_and_patchable_area.
19459 (make_pass_insert_endbranch): Renamed to ...
19460 (make_pass_insert_endbr_and_patchable_area): This.
19461 * config/i386/i386-passes.def: Replace pass_insert_endbranch
19462 with pass_insert_endbr_and_patchable_area.
19463 * config/i386/i386-protos.h (ix86_output_patchable_area): New.
19464 (make_pass_insert_endbranch): Renamed to ...
19465 (make_pass_insert_endbr_and_patchable_area): This.
19466 * config/i386/i386.c (ix86_asm_output_function_label): Set
19467 function_label_emitted to true.
19468 (ix86_print_patchable_function_entry): New function.
19469 (ix86_output_patchable_area): Likewise.
19470 (x86_function_profiler): Replace endbr_queued_at_entrance with
19471 insn_queued_at_entrance. Generate ENDBR only for TYPE_ENDBR.
19472 Call ix86_output_patchable_area to generate patchable area if
19474 (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY): New.
19475 * config/i386/i386.h (queued_insn_type): New.
19476 (machine_function): Add function_label_emitted. Replace
19477 endbr_queued_at_entrance with insn_queued_at_entrance.
19478 * config/i386/i386.md (UNSPECV_PATCHABLE_AREA): New.
19479 (patchable_area): New.
19481 2020-06-11 Martin Liska <mliska@suse.cz>
19483 * config/rs6000/rs6000.c (rs6000_density_test): Fix GNU coding
19486 2020-06-11 Martin Liska <mliska@suse.cz>
19489 * config/rs6000/rs6000.c (rs6000_density_test): Skip debug
19492 2020-06-11 Martin Liska <mliska@suse.cz>
19493 Jakub Jelinek <jakub@redhat.com>
19496 * asan.c (asan_emit_stack_protection): Fix emission for ilp32
19497 by using Pmode instead of ptr_mode.
19499 2020-06-11 Kewen Lin <linkw@gcc.gnu.org>
19501 * tree-vect-loop-manip.c (vect_set_loop_mask): Renamed to ...
19502 (vect_set_loop_control): ... this.
19503 (vect_maybe_permute_loop_masks): Rename rgroup_masks related things.
19504 (vect_set_loop_masks_directly): Renamed to ...
19505 (vect_set_loop_controls_directly): ... this. Also rename some
19506 variables with ctrl instead of mask. Rename vect_set_loop_mask to
19507 vect_set_loop_control.
19508 (vect_set_loop_condition_masked): Rename rgroup_masks related things.
19509 Also rename some variables with ctrl instead of mask.
19510 * tree-vect-loop.c (release_vec_loop_masks): Renamed to ...
19511 (release_vec_loop_controls): ... this. Rename rgroup_masks related
19513 (_loop_vec_info::~_loop_vec_info): Rename release_vec_loop_masks to
19514 release_vec_loop_controls.
19515 (can_produce_all_loop_masks_p): Rename rgroup_masks related things.
19516 (vect_get_max_nscalars_per_iter): Likewise.
19517 (vect_estimate_min_profitable_iters): Likewise.
19518 (vect_record_loop_mask): Likewise.
19519 (vect_get_loop_mask): Likewise.
19520 * tree-vectorizer.h (struct rgroup_masks): Renamed to ...
19521 (struct rgroup_controls): ... this. Also rename mask_type
19522 to type and rename masks to controls.
19524 2020-06-11 Kewen Lin <linkw@gcc.gnu.org>
19526 * tree-vect-loop-manip.c (vect_set_loop_condition): Rename
19527 LOOP_VINFO_FULLY_MASKED_P to LOOP_VINFO_USING_PARTIAL_VECTORS_P.
19528 (vect_gen_vector_loop_niters): Likewise.
19529 (vect_do_peeling): Likewise.
19530 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Rename
19531 fully_masked_p to using_partial_vectors_p.
19532 (vect_analyze_loop_costing): Rename LOOP_VINFO_FULLY_MASKED_P to
19533 LOOP_VINFO_USING_PARTIAL_VECTORS_P.
19534 (determine_peel_for_niter): Likewise.
19535 (vect_estimate_min_profitable_iters): Likewise.
19536 (vect_transform_loop): Likewise.
19537 * tree-vectorizer.h (LOOP_VINFO_FULLY_MASKED_P): Updated.
19538 (LOOP_VINFO_USING_PARTIAL_VECTORS_P): New macro.
19540 2020-06-11 Kewen Lin <linkw@gcc.gnu.org>
19542 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Rename
19543 can_fully_mask_p to can_use_partial_vectors_p.
19544 (vect_analyze_loop_2): Rename LOOP_VINFO_CAN_FULLY_MASK_P to
19545 LOOP_VINFO_CAN_USE_PARTIAL_VECTORS_P. Rename saved_can_fully_mask_p
19546 to saved_can_use_partial_vectors_p.
19547 (vectorizable_reduction): Rename LOOP_VINFO_CAN_FULLY_MASK_P to
19548 LOOP_VINFO_CAN_USE_PARTIAL_VECTORS_P.
19549 (vectorizable_live_operation): Likewise.
19550 * tree-vect-stmts.c (permute_vec_elements): Likewise.
19551 (check_load_store_masking): Likewise.
19552 (vectorizable_operation): Likewise.
19553 (vectorizable_store): Likewise.
19554 (vectorizable_load): Likewise.
19555 (vectorizable_condition): Likewise.
19556 * tree-vectorizer.h (LOOP_VINFO_CAN_FULLY_MASK_P): Renamed to ...
19557 (LOOP_VINFO_CAN_USE_PARTIAL_VECTORS_P): ... this.
19558 (_loop_vec_info): Rename can_fully_mask_p to can_use_partial_vectors_p.
19560 2020-06-11 Martin Liska <mliska@suse.cz>
19562 * optc-save-gen.awk: Quote error string.
19564 2020-06-11 Alexandre Oliva <oliva@adacore.com>
19566 * print-rtl.c (print_mem_expr): Enable TDF_SLIM in dump_flags.
19568 2020-06-11 Kito Cheng <kito.cheng@sifive.com>
19570 * config/riscv/riscv-protos.h (riscv_output_gpr_save): Remove.
19571 * config/riscv/riscv-sr.c (riscv_sr_match_prologue): Update
19573 * config/riscv/riscv.c (riscv_output_gpr_save): Remove.
19574 * config/riscv/riscv.md (gpr_save): Update output asm pattern.
19576 2020-06-11 Kito Cheng <kito.cheng@sifive.com>
19578 * config/riscv/predicates.md (gpr_save_operation): New.
19579 * config/riscv/riscv-protos.h (riscv_gen_gpr_save_insn): New.
19580 (riscv_gpr_save_operation_p): Ditto.
19581 * config/riscv/riscv-sr.c (riscv_remove_unneeded_save_restore_calls):
19582 Ignore USEs for gpr_save patter.
19583 * config/riscv/riscv.c (gpr_save_reg_order): New.
19584 (riscv_expand_prologue): Use riscv_gen_gpr_save_insn to gen gpr_save.
19585 (riscv_gen_gpr_save_insn): New.
19586 (riscv_gpr_save_operation_p): Ditto.
19587 * config/riscv/riscv.md (S3_REGNUM): New.
19588 (S4_REGNUM): Ditto.
19589 (S5_REGNUM): Ditto.
19590 (S6_REGNUM): Ditto.
19591 (S7_REGNUM): Ditto.
19592 (S8_REGNUM): Ditto.
19593 (S9_REGNUM): Ditto.
19594 (S10_REGNUM): Ditto.
19595 (S11_REGNUM): Ditto.
19596 (gpr_save): Model USEs correctly.
19598 2020-06-10 Martin Sebor <msebor@redhat.com>
19600 PR middle-end/95353
19601 PR middle-end/92939
19602 * builtins.c (inform_access): New function.
19603 (check_access): Call it. Add argument.
19604 (addr_decl_size): Remove.
19605 (get_range): New function.
19606 (compute_objsize): New overload. Only use compute_builtin_object_size
19607 with raw memory function.
19608 (check_memop_access): Pass new argument to compute_objsize and
19610 (expand_builtin_memchr, expand_builtin_strcat): Same.
19611 (expand_builtin_strcpy, expand_builtin_stpcpy_1): Same.
19612 (expand_builtin_stpncpy, check_strncat_sizes): Same.
19613 (expand_builtin_strncat, expand_builtin_strncpy): Same.
19614 (expand_builtin_memcmp): Same.
19615 * builtins.h (check_nul_terminated_array): Declare extern.
19616 (check_access): Add argument.
19617 (struct access_ref, struct access_data): New structs.
19618 * gimple-ssa-warn-restrict.c (clamp_offset): New helper.
19619 (builtin_access::overlap): Call it.
19620 * tree-object-size.c (decl_init_size): Declare extern.
19621 (addr_object_size): Correct offset computation.
19622 * tree-object-size.h (decl_init_size): Declare.
19623 * tree-ssa-strlen.c (handle_integral_assign): Remove a call
19624 to maybe_warn_overflow when assigning to an SSA_NAME.
19626 2020-06-10 Richard Biener <rguenther@suse.de>
19628 * tree-vect-loop.c (vect_determine_vectorization_factor):
19630 (_loop_vec_info::_loop_vec_info): Likewise.
19631 (vect_update_vf_for_slp): Likewise.
19632 (vect_analyze_loop_operations): Likewise.
19633 (update_epilogue_loop_vinfo): Likewise.
19634 * tree-vect-patterns.c (vect_determine_precisions): Likewise.
19635 (vect_pattern_recog): Likewise.
19636 * tree-vect-slp.c (vect_detect_hybrid_slp): Likewise.
19637 (_bb_vec_info::_bb_vec_info): Likewise.
19638 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized):
19641 2020-06-10 Richard Biener <rguenther@suse.de>
19643 PR tree-optimization/95576
19644 * tree-vect-slp.c (vect_slp_bb): Skip leading debug stmts.
19646 2020-06-10 Haijian Zhang <z.zhanghaijian@huawei.com>
19649 * config/aarch64/aarch64-sve-builtins.h
19650 (sve_switcher::m_old_maximum_field_alignment): New member.
19651 * config/aarch64/aarch64-sve-builtins.cc
19652 (sve_switcher::sve_switcher): Save maximum_field_alignment in
19653 m_old_maximum_field_alignment and clear maximum_field_alignment.
19654 (sve_switcher::~sve_switcher): Restore maximum_field_alignment.
19656 2020-06-10 Richard Biener <rguenther@suse.de>
19658 * tree-vectorizer.h (_slp_tree::vec_stmts): Make it a vector
19660 (_stmt_vec_info::vec_stmts): Likewise.
19661 (vec_info::stmt_vec_info_ro): New flag.
19662 (vect_finish_replace_stmt): Adjust declaration.
19663 (vect_finish_stmt_generation): Likewise.
19664 (vectorizable_induction): Likewise.
19665 (vect_transform_reduction): Likewise.
19666 (vectorizable_lc_phi): Likewise.
19667 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Do not
19668 allocate stmt infos for increments.
19669 (vect_record_grouped_load_vectors): Adjust.
19670 * tree-vect-loop.c (vect_create_epilog_for_reduction): Likewise.
19671 (vectorize_fold_left_reduction): Likewise.
19672 (vect_transform_reduction): Likewise.
19673 (vect_transform_cycle_phi): Likewise.
19674 (vectorizable_lc_phi): Likewise.
19675 (vectorizable_induction): Likewise.
19676 (vectorizable_live_operation): Likewise.
19677 (vect_transform_loop): Likewise.
19678 * tree-vect-patterns.c (vect_pattern_recog): Set stmt_vec_info_ro.
19679 * tree-vect-slp.c (vect_get_slp_vect_def): Adjust.
19680 (vect_get_slp_defs): Likewise.
19681 (vect_transform_slp_perm_load): Likewise.
19682 (vect_schedule_slp_instance): Likewise.
19683 (vectorize_slp_instance_root_stmt): Likewise.
19684 * tree-vect-stmts.c (vect_get_vec_defs_for_operand): Likewise.
19685 (vect_finish_stmt_generation_1): Do not allocate a stmt info.
19686 (vect_finish_replace_stmt): Do not return anything.
19687 (vect_finish_stmt_generation): Likewise.
19688 (vect_build_gather_load_calls): Adjust.
19689 (vectorizable_bswap): Likewise.
19690 (vectorizable_call): Likewise.
19691 (vectorizable_simd_clone_call): Likewise.
19692 (vect_create_vectorized_demotion_stmts): Likewise.
19693 (vectorizable_conversion): Likewise.
19694 (vectorizable_assignment): Likewise.
19695 (vectorizable_shift): Likewise.
19696 (vectorizable_operation): Likewise.
19697 (vectorizable_scan_store): Likewise.
19698 (vectorizable_store): Likewise.
19699 (vectorizable_load): Likewise.
19700 (vectorizable_condition): Likewise.
19701 (vectorizable_comparison): Likewise.
19702 (vect_transform_stmt): Likewise.
19703 * tree-vectorizer.c (vec_info::vec_info): Initialize
19705 (vec_info::replace_stmt): Copy over stmt UID rather than
19706 unsetting/setting a stmt info allocating a new UID.
19707 (vec_info::set_vinfo_for_stmt): Assert !stmt_vec_info_ro.
19709 2020-06-10 Aldy Hernandez <aldyh@redhat.com>
19711 * gimple-loop-versioning.cc (loop_versioning::name_prop::get_value):
19712 Add stmt parameter.
19713 * gimple-ssa-evrp.c (class evrp_folder): New.
19714 (class evrp_dom_walker): Remove.
19715 (execute_early_vrp): Use evrp_folder instead of evrp_dom_walker.
19716 * tree-ssa-ccp.c (ccp_folder::get_value): Add stmt parameter.
19717 * tree-ssa-copy.c (copy_folder::get_value): Same.
19718 * tree-ssa-propagate.c (substitute_and_fold_engine::replace_uses_in):
19719 Pass stmt to get_value.
19720 (substitute_and_fold_engine::replace_phi_args_in): Same.
19721 (substitute_and_fold_dom_walker::after_dom_children): Call
19723 (substitute_and_fold_dom_walker::foreach_new_stmt_in_bb): New.
19724 (substitute_and_fold_dom_walker::propagate_into_phi_args): New.
19725 (substitute_and_fold_dom_walker::before_dom_children): Adjust to
19726 call virtual functions for folding, pre_folding, and post folding.
19727 Call get_value with PHI. Tweak dump.
19728 * tree-ssa-propagate.h (class substitute_and_fold_engine):
19729 New argument to get_value.
19730 New virtual function pre_fold_bb.
19731 New virtual function post_fold_bb.
19732 New virtual function pre_fold_stmt.
19733 New virtual function post_new_stmt.
19734 New function propagate_into_phi_args.
19735 * tree-vrp.c (vrp_folder::get_value): Add stmt argument.
19736 * vr-values.c (vr_values::extract_range_from_stmt): Adjust dump
19738 (vr_values::fold_cond): New.
19739 (vr_values::simplify_cond_using_ranges_1): Call fold_cond.
19740 * vr-values.h (class vr_values): Add
19741 simplify_cond_using_ranges_when_edge_is_known.
19743 2020-06-10 Martin Liska <mliska@suse.cz>
19746 * asan.c (asan_emit_stack_protection): Emit
19747 also **SavedFlagPtr(FakeStack, class_id) = 0 in order to release
19750 2020-06-10 Tamar Christina <tamar.christina@arm.com>
19752 * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Adjust costs for mul.
19754 2020-06-10 Richard Biener <rguenther@suse.de>
19756 * tree-vect-data-refs.c (vect_vfa_access_size): Adjust.
19757 (vect_record_grouped_load_vectors): Likewise.
19758 * tree-vect-loop.c (vect_create_epilog_for_reduction): Likewise.
19759 (vectorize_fold_left_reduction): Likewise.
19760 (vect_transform_reduction): Likewise.
19761 (vect_transform_cycle_phi): Likewise.
19762 (vectorizable_lc_phi): Likewise.
19763 (vectorizable_induction): Likewise.
19764 (vectorizable_live_operation): Likewise.
19765 (vect_transform_loop): Likewise.
19766 * tree-vect-slp.c (vect_get_slp_defs): New function, split out
19768 * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): Remove.
19769 (vect_get_vec_def_for_operand): Likewise.
19770 (vect_get_vec_def_for_stmt_copy): Likewise.
19771 (vect_get_vec_defs_for_stmt_copy): Likewise.
19772 (vect_get_vec_defs_for_operand): New function.
19773 (vect_get_vec_defs): Likewise.
19774 (vect_build_gather_load_calls): Adjust.
19775 (vect_get_gather_scatter_ops): Likewise.
19776 (vectorizable_bswap): Likewise.
19777 (vectorizable_call): Likewise.
19778 (vectorizable_simd_clone_call): Likewise.
19779 (vect_get_loop_based_defs): Remove.
19780 (vect_create_vectorized_demotion_stmts): Adjust.
19781 (vectorizable_conversion): Likewise.
19782 (vectorizable_assignment): Likewise.
19783 (vectorizable_shift): Likewise.
19784 (vectorizable_operation): Likewise.
19785 (vectorizable_scan_store): Likewise.
19786 (vectorizable_store): Likewise.
19787 (vectorizable_load): Likewise.
19788 (vectorizable_condition): Likewise.
19789 (vectorizable_comparison): Likewise.
19790 (vect_transform_stmt): Adjust and remove no longer applicable
19792 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize
19793 STMT_VINFO_VEC_STMTS.
19794 (vec_info::free_stmt_vec_info): Relase it.
19795 * tree-vectorizer.h (_stmt_vec_info::vectorized_stmt): Remove.
19796 (_stmt_vec_info::vec_stmts): Add.
19797 (STMT_VINFO_VEC_STMT): Remove.
19798 (STMT_VINFO_VEC_STMTS): New.
19799 (vect_get_vec_def_for_operand_1): Remove.
19800 (vect_get_vec_def_for_operand): Likewise.
19801 (vect_get_vec_defs_for_stmt_copy): Likewise.
19802 (vect_get_vec_def_for_stmt_copy): Likewise.
19803 (vect_get_vec_defs): New overloads.
19804 (vect_get_vec_defs_for_operand): New.
19805 (vect_get_slp_defs): Declare.
19807 2020-06-10 Qian Chao <qianchao9@huawei.com>
19809 PR tree-optimization/95569
19810 * trans-mem.c (expand_assign_tm): Ensure that rtmp is marked TREE_ADDRESSABLE.
19812 2020-06-10 Martin Liska <mliska@suse.cz>
19814 PR tree-optimization/92860
19815 * optc-save-gen.awk: Generate new function cl_optimization_compare.
19816 * opth-gen.awk: Generate declaration of the function.
19818 2020-06-09 Michael Meissner <meissner@linux.ibm.com>
19820 * config/rs6000/ppc-auxv.h (PPC_PLATFORM_FUTURE): Allocate
19821 'future' PowerPC platform.
19822 (PPC_FEATURE2_ARCH_3_1): New HWCAP2 bit for ISA 3.1.
19823 (PPC_FEATURE2_MMA): New HWCAP2 bit for MMA.
19824 * config/rs6000/rs6000-call.c (cpu_supports_info): Add ISA 3.1 and
19826 * config/rs6000/rs6000.c (CLONE_ISA_3_1): New clone support.
19827 (rs6000_clone_map): Add 'future' system target_clones support.
19829 2020-06-09 Michael Kuhn <gcc@ikkoku.de>
19831 * Makefile.in (ZSTD_INC): Define.
19832 (ZSTD_LIB): Include ZSTD_LDFLAGS.
19833 (CFLAGS-lto-compress.o): Add ZSTD_INC.
19834 * configure.ac (ZSTD_CPPFLAGS, ZSTD_LDFLAGS): New variables for
19836 * configure: Rebuilt.
19838 2020-06-09 Jason Merrill <jason@redhat.com>
19841 * tree.c (walk_tree_1): Call func on the TYPE_DECL of a DECL_EXPR.
19843 2020-06-09 Marco Elver <elver@google.com>
19845 * params.opt: Define --param=tsan-distinguish-volatile=[0,1].
19846 * sanitizer.def (BUILT_IN_TSAN_VOLATILE_READ1): Define new
19847 builtin for volatile instrumentation of reads/writes.
19848 (BUILT_IN_TSAN_VOLATILE_READ2): Likewise.
19849 (BUILT_IN_TSAN_VOLATILE_READ4): Likewise.
19850 (BUILT_IN_TSAN_VOLATILE_READ8): Likewise.
19851 (BUILT_IN_TSAN_VOLATILE_READ16): Likewise.
19852 (BUILT_IN_TSAN_VOLATILE_WRITE1): Likewise.
19853 (BUILT_IN_TSAN_VOLATILE_WRITE2): Likewise.
19854 (BUILT_IN_TSAN_VOLATILE_WRITE4): Likewise.
19855 (BUILT_IN_TSAN_VOLATILE_WRITE8): Likewise.
19856 (BUILT_IN_TSAN_VOLATILE_WRITE16): Likewise.
19857 * tsan.c (get_memory_access_decl): Argument if access is
19858 volatile. If param tsan-distinguish-volatile is non-zero, and
19859 access if volatile, return volatile instrumentation decl.
19860 (instrument_expr): Check if access is volatile.
19862 2020-06-09 Richard Biener <rguenther@suse.de>
19864 * tree-vect-loop.c (vectorizable_induction): Remove dead code.
19866 2020-06-09 Tobias Burnus <tobias@codesourcery.com>
19868 * omp-offload.c (add_decls_addresses_to_decl_constructor,
19869 omp_finish_file): With in_lto_p, stream out all offload-table
19870 items even if the symtab_node does not exist.
19872 2020-06-09 Richard Biener <rguenther@suse.de>
19874 * tree-vect-stmts.c (vect_transform_stmt): Remove dead code.
19876 2020-06-09 Martin Liska <mliska@suse.cz>
19878 * gcov-dump.c (print_usage): Fix spacing for --raw option
19881 2020-06-09 Martin Liska <mliska@suse.cz>
19883 * cif-code.def (ATTRIBUTE_MISMATCH): Rename to...
19884 (SANITIZE_ATTRIBUTE_MISMATCH): ...this.
19885 * ipa-inline.c (sanitize_attrs_match_for_inline_p):
19886 Handle all sanitizer options.
19887 (can_inline_edge_p): Use renamed CIF_* enum value.
19889 2020-06-09 Joe Ramsay <joe.ramsay@arm.com>
19891 * config/aarch64/aarch64-sve.md (<optab><mode>2): Add support for
19893 (@aarch64_pred_<optab><mode>): Add support for unpacked vectors.
19894 (@aarch64_bic<mode>): Enable unpacked BIC.
19895 (*bic<mode>3): Enable unpacked BIC.
19897 2020-06-09 Martin Liska <mliska@suse.cz>
19899 PR gcov-profile/95365
19900 * doc/gcov.texi: Compile and link one example in 2 steps.
19902 2020-06-09 Jakub Jelinek <jakub@redhat.com>
19904 PR tree-optimization/95527
19905 * match.pd (__builtin_ffs (X) cmp CST): New optimizations.
19907 2020-06-09 Michael Meissner <meissner@linux.ibm.com>
19909 * config/rs6000/ppc-auxv.h (PPC_PLATFORM_FUTURE): Allocate
19910 'future' PowerPC platform.
19911 (PPC_FEATURE2_ARCH_3_1): New HWCAP2 bit for ISA 3.1.
19912 (PPC_FEATURE2_MMA): New HWCAP2 bit for MMA.
19913 * config/rs6000/rs6000-call.c (cpu_supports_info): Add ISA 3.1 and
19915 * config/rs6000/rs6000.c (CLONE_ISA_3_1): New clone support.
19916 (rs6000_clone_map): Add 'future' system target_clones support.
19918 2020-06-08 Tobias Burnus <tobias@codesourcery.com>
19921 PR middle-end/95551
19922 * omp-offload.c (add_decls_addresses_to_decl_constructor,
19923 omp_finish_file): Skip removed items.
19924 * lto-cgraph.c (output_offload_tables): Likewise; set force_output
19925 to this node for variables and functions.
19927 2020-06-08 Jason Merrill <jason@redhat.com>
19929 * aclocal.m4: Remove ax_cxx_compile_stdcxx.m4.
19930 * configure.ac: Remove AX_CXX_COMPILE_STDCXX.
19931 * configure: Regenerate.
19933 2020-06-08 Martin Sebor <msebor@redhat.com>
19935 * postreload.c (reload_cse_simplify_operands): Clear first array element
19936 before using it. Assert a precondition.
19938 2020-06-08 Jakub Jelinek <jakub@redhat.com>
19941 * tree-ssa-forwprop.c (simplify_vector_constructor): Don't use
19942 VEC_UNPACK*_EXPR or VEC_PACK_TRUNC_EXPR with scalar modes unless the
19943 type is vector boolean.
19945 2020-06-08 Tamar Christina <tamar.christina@arm.com>
19947 * config/aarch64/aarch64.c (aarch64_layout_frame): Expand comments.
19949 2020-06-08 Christophe Lyon <christophe.lyon@linaro.org>
19951 * config/arm/predicates.md (vfp_register_operand): Use VFP_HI_REGS
19952 instead of VFP_REGS.
19954 2020-06-08 Martin Liska <mliska@suse.cz>
19956 * config/rs6000/vector.md: Replace FAIL with gcc_unreachable
19957 in all vcond* patterns.
19959 2020-06-08 Christophe Lyon <christophe.lyon@linaro.org>
19961 * common/config/arm/arm-common.c (INCLUDE_ALGORITHM):
19962 Define. No longer include <algorithm>.
19964 2020-06-07 Roger Sayle <roger@nextmovesoftware.com>
19966 * config/i386/i386.md (paritydi2, paritysi2): Expand reduction
19967 via shift and xor to an USPEC PARITY matching a parityhi2_cmp.
19968 (paritydi2_cmp, paritysi2_cmp): Delete these define_insn_and_split.
19969 (parityhi2, parityqi2): New expanders.
19970 (parityhi2_cmp): Implement set parity flag with xorb insn.
19971 (parityqi2_cmp): Implement set parity flag with testb insn.
19972 New peephole2s to use these insns (UNSPEC PARITY) when appropriate.
19974 2020-06-07 Jiufu Guo <guojiufu@linux.ibm.com>
19977 * config/rs6000/rs6000.c (rs6000_option_override_internal):
19978 Override flag_cunroll_grow_size.
19980 2020-06-07 Jiufu Guo <guojiufu@linux.ibm.com>
19982 * common.opt (flag_cunroll_grow_size): New flag.
19983 * toplev.c (process_options): Set flag_cunroll_grow_size.
19984 * tree-ssa-loop-ivcanon.c (pass_complete_unroll::execute):
19985 Use flag_cunroll_grow_size.
19987 2020-06-06 Jan Hubicka <hubicka@ucw.cz>
19990 * ipa-devirt.c (struct odr_enum_val): Turn values to wide_int.
19991 (ipa_odr_summary_write): Update streaming.
19992 (ipa_odr_read_section): Update streaming.
19994 2020-06-06 Alexandre Oliva <oliva@adacore.com>
19997 * gcc.c (do_spec_1): Don't call memcpy (_, NULL, 0).
19999 2020-06-05 Thomas Schwinge <thomas@codesourcery.com>
20000 Julian Brown <julian@codesourcery.com>
20002 * gimplify.c (gimplify_adjust_omp_clauses): Remove
20003 'GOMP_MAP_STRUCT' mapping from OpenACC 'exit data' directives.
20005 2020-06-05 Richard Biener <rguenther@suse.de>
20007 PR tree-optimization/95539
20008 * tree-vect-data-refs.c
20009 (vect_slp_analyze_and_verify_instance_alignment): Use
20010 SLP_TREE_REPRESENTATIVE for the data-ref check.
20011 * tree-vect-stmts.c (vectorizable_load): Reset stmt_info
20012 back to the first scalar stmt rather than the
20013 SLP_TREE_REPRESENTATIVE to match previous behavior.
20015 2020-06-05 Felix Yang <felix.yang@huawei.com>
20018 * expr.c (emit_move_insn): Check src and dest of the copy to see
20019 if one or both of them are subregs, try to remove the subregs when
20020 innermode and outermode are equal in size and the mode change involves
20021 an implicit round trip through memory.
20023 2020-06-05 Jakub Jelinek <jakub@redhat.com>
20026 * config/i386/i386.md (*ctzsi2_zext, *clzsi2_lzcnt_zext): New
20027 define_insn_and_split patterns.
20028 (*ctzsi2_zext_falsedep, *clzsi2_lzcnt_zext_falsedep): New
20029 define_insn patterns.
20031 2020-06-05 Jonathan Wakely <jwakely@redhat.com>
20033 * alloc-pool.h (object_allocator::remove_raw): New.
20034 * tree-ssa-math-opts.c (struct occurrence): Use NSMDI.
20035 (occurrence::occurrence): Add.
20036 (occurrence::~occurrence): Likewise.
20037 (occurrence::new): Likewise.
20038 (occurrence::delete): Likewise.
20040 (insert_bb): Use new occurence (...) instead of occ_new.
20041 (register_division_in): Likewise.
20042 (free_bb): Use delete occ instead of manually removing
20045 2020-06-05 Richard Biener <rguenther@suse.de>
20047 PR middle-end/95493
20048 * cfgexpand.c (expand_debug_expr): Avoid calling
20049 set_mem_attributes_minus_bitpos when we were expanding
20051 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
20052 ARRAY_REF special-casing, add CONSTRUCTOR to the set of
20053 special-cases we do not want MEM_EXPRs for. Assert
20054 we end up with reasonable MEM_EXPRs.
20056 2020-06-05 Lili Cui <lili.cui@intel.com>
20059 * config/i386/i386.h (PTA_WAITPKG): Change bitmask value.
20061 2020-06-04 Martin Sebor <msebor@redhat.com>
20063 PR middle-end/10138
20064 PR middle-end/95136
20065 * attribs.c (init_attr_rdwr_indices): Move function here.
20066 * attribs.h (rdwr_access_hash, rdwr_map): Define.
20067 (attr_access): Add 'none'.
20068 (init_attr_rdwr_indices): Declared function.
20069 * builtins.c (warn_for_access)): New function.
20070 (check_access): Call it.
20071 * builtins.h (checK-access): Add an optional argument.
20072 * calls.c (rdwr_access_hash, rdwr_map): Move to attribs.h.
20073 (init_attr_rdwr_indices): Declare extern.
20074 (append_attrname): Handle attr_access::none.
20075 (maybe_warn_rdwr_sizes): Same.
20076 (initialize_argument_information): Update comments.
20077 * doc/extend.texi (attribute access): Document 'none'.
20078 * tree-ssa-uninit.c (struct wlimits): New.
20079 (maybe_warn_operand): New function.
20080 (maybe_warn_pass_by_reference): Same.
20081 (warn_uninitialized_vars): Refactor code into maybe_warn_operand.
20082 Also call for function calls.
20083 (pass_late_warn_uninitialized::execute): Adjust comments.
20084 (execute_early_warn_uninitialized): Same.
20086 2020-06-04 Vladimir Makarov <vmakarov@redhat.com>
20088 PR middle-end/95464
20089 * lra.c (lra_emit_move): Add processing STRICT_LOW_PART.
20090 * lra-constraints.c (match_reload): Use STRICT_LOW_PART in output
20091 reload if the original insn has it too.
20093 2020-06-04 Richard Biener <rguenther@suse.de>
20095 * config/aarch64/aarch64.c (aarch64_gimplify_va_arg_expr):
20096 Ensure that tmp_ha is marked TREE_ADDRESSABLE.
20098 2020-06-04 Martin Jambor <mjambor@suse.cz>
20101 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Move non-call
20102 exceptions check to...
20103 * tree-eh.c (stmt_unremovable_because_of_non_call_eh_p): ...this
20105 * tree-eh.h (stmt_unremovable_because_of_non_call_eh_p): Declare it.
20106 * ipa-sra.c (isra_track_scalar_value_uses): Use it. New parameter
20109 2020-06-04 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
20112 * config/arm/predicates.md (mve_scatter_memory): Define to
20113 match (mem (reg)) for scatter store memory.
20114 * config/arm/mve.md (mve_vstrbq_scatter_offset_<supf><mode>): Modify
20115 define_insn to define_expand.
20116 (mve_vstrbq_scatter_offset_p_<supf><mode>): Likewise.
20117 (mve_vstrhq_scatter_offset_<supf><mode>): Likewise.
20118 (mve_vstrhq_scatter_shifted_offset_p_<supf><mode>): Likewise.
20119 (mve_vstrhq_scatter_shifted_offset_<supf><mode>): Likewise.
20120 (mve_vstrdq_scatter_offset_p_<supf>v2di): Likewise.
20121 (mve_vstrdq_scatter_offset_<supf>v2di): Likewise.
20122 (mve_vstrdq_scatter_shifted_offset_p_<supf>v2di): Likewise.
20123 (mve_vstrdq_scatter_shifted_offset_<supf>v2di): Likewise.
20124 (mve_vstrhq_scatter_offset_fv8hf): Likewise.
20125 (mve_vstrhq_scatter_offset_p_fv8hf): Likewise.
20126 (mve_vstrhq_scatter_shifted_offset_fv8hf): Likewise.
20127 (mve_vstrhq_scatter_shifted_offset_p_fv8hf): Likewise.
20128 (mve_vstrwq_scatter_offset_fv4sf): Likewise.
20129 (mve_vstrwq_scatter_offset_p_fv4sf): Likewise.
20130 (mve_vstrwq_scatter_offset_p_<supf>v4si): Likewise.
20131 (mve_vstrwq_scatter_offset_<supf>v4si): Likewise.
20132 (mve_vstrwq_scatter_shifted_offset_fv4sf): Likewise.
20133 (mve_vstrwq_scatter_shifted_offset_p_fv4sf): Likewise.
20134 (mve_vstrwq_scatter_shifted_offset_p_<supf>v4si): Likewise.
20135 (mve_vstrwq_scatter_shifted_offset_<supf>v4si): Likewise.
20136 (mve_vstrbq_scatter_offset_<supf><mode>_insn): Define insn for scatter
20138 (mve_vstrbq_scatter_offset_p_<supf><mode>_insn): Likewise.
20139 (mve_vstrhq_scatter_offset_<supf><mode>_insn): Likewise.
20140 (mve_vstrhq_scatter_shifted_offset_p_<supf><mode>_insn): Likewise.
20141 (mve_vstrhq_scatter_shifted_offset_<supf><mode>_insn): Likewise.
20142 (mve_vstrdq_scatter_offset_p_<supf>v2di_insn): Likewise.
20143 (mve_vstrdq_scatter_offset_<supf>v2di_insn): Likewise.
20144 (mve_vstrdq_scatter_shifted_offset_p_<supf>v2di_insn): Likewise.
20145 (mve_vstrdq_scatter_shifted_offset_<supf>v2di_insn): Likewise.
20146 (mve_vstrhq_scatter_offset_fv8hf_insn): Likewise.
20147 (mve_vstrhq_scatter_offset_p_fv8hf_insn): Likewise.
20148 (mve_vstrhq_scatter_shifted_offset_fv8hf_insn): Likewise.
20149 (mve_vstrhq_scatter_shifted_offset_p_fv8hf_insn): Likewise.
20150 (mve_vstrwq_scatter_offset_fv4sf_insn): Likewise.
20151 (mve_vstrwq_scatter_offset_p_fv4sf_insn): Likewise.
20152 (mve_vstrwq_scatter_offset_p_<supf>v4si_insn): Likewise.
20153 (mve_vstrwq_scatter_offset_<supf>v4si_insn): Likewise.
20154 (mve_vstrwq_scatter_shifted_offset_fv4sf_insn): Likewise.
20155 (mve_vstrwq_scatter_shifted_offset_p_fv4sf_insn): Likewise.
20156 (mve_vstrwq_scatter_shifted_offset_p_<supf>v4si_insn): Likewise.
20157 (mve_vstrwq_scatter_shifted_offset_<supf>v4si_insn): Likewise.
20159 2020-06-04 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
20161 * config/arm/arm_mve.h (__arm_vbicq_n_u16): Correct the intrinsic
20163 (__arm_vbicq_n_s16): Likewise.
20164 (__arm_vbicq_n_u32): Likewise.
20165 (__arm_vbicq_n_s32): Likewise.
20166 (__arm_vbicq): Modify polymorphic variant.
20168 2020-06-04 Richard Biener <rguenther@suse.de>
20170 * tree-vectorizer.h (vect_get_slp_vect_def): Declare.
20171 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use it.
20172 * tree-vect-stmts.c (vect_transform_stmt): Likewise.
20173 (vect_is_simple_use): Use SLP_TREE_REPRESENTATIVE.
20174 * tree-vect-slp.c (vect_get_slp_vect_defs): Fold into single
20176 (vect_get_slp_defs): ... here.
20177 (vect_get_slp_vect_def): New function.
20179 2020-06-04 Richard Biener <rguenther@suse.de>
20181 * tree-vectorizer.h (_slp_tree::lanes): New.
20182 (SLP_TREE_LANES): Likewise.
20183 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use it.
20184 (vectorizable_reduction): Likewise.
20185 (vect_transform_cycle_phi): Likewise.
20186 (vectorizable_induction): Likewise.
20187 (vectorizable_live_operation): Likewise.
20188 * tree-vect-slp.c (_slp_tree::_slp_tree): Initialize lanes.
20189 (vect_create_new_slp_node): Likewise.
20190 (slp_copy_subtree): Copy it.
20191 (vect_optimize_slp): Use it.
20192 (vect_slp_analyze_node_operations_1): Likewise.
20193 (vect_slp_convert_to_external): Likewise.
20194 (vect_bb_vectorization_profitable_p): Likewise.
20195 * tree-vect-stmts.c (vectorizable_load): Likewise.
20196 (get_vectype_for_scalar_type): Likewise.
20198 2020-06-04 Richard Biener <rguenther@suse.de>
20200 * tree-vect-slp.c (vect_update_all_shared_vectypes): Remove.
20201 (vect_build_slp_tree_2): Simplify building all external op
20202 nodes from scalars.
20203 (vect_slp_analyze_node_operations): Remove push/pop of
20204 STMT_VINFO_DEF_TYPE.
20205 (vect_schedule_slp_instance): Likewise.
20206 * tree-vect-stmts.c (ect_check_store_rhs): Pass in the
20207 stmt_info, use the vect_is_simple_use overload combining
20208 SLP and stmt_info analysis.
20209 (vect_is_simple_cond): Likewise.
20210 (vectorizable_store): Adjust.
20211 (vectorizable_condition): Likewise.
20212 (vect_is_simple_use): Fully handle invariant SLP nodes
20213 here. Amend stmt_info operand extraction with COND_EXPR
20215 * tree-vect-loop.c (vectorizable_reduction): Deal with
20216 COND_EXPR representation ugliness.
20218 2020-06-04 Hongtao Liu <hongtao.liu@inte.com>
20221 * config/i386/sse.md (*vcvtps2ph_store<merge_mask_name>):
20222 Refine from *vcvtps2ph_store<mask_name>.
20223 (vcvtps2ph256<mask_name>): Refine constraint from vm to v.
20224 (<mask_codefor>avx512f_vcvtps2ph512<mask_name>): Ditto.
20225 (*vcvtps2ph256<merge_mask_name>): New define_insn.
20226 (*avx512f_vcvtps2ph512<merge_mask_name>): Ditto.
20227 * config/i386/subst.md (merge_mask): New define_subst.
20228 (merge_mask_name): New define_subst_attr.
20229 (merge_mask_operand3): Ditto.
20231 2020-06-04 Hao Liu <hliu@os.amperecomputing.com>
20233 PR tree-optimization/89430
20234 * tree-ssa-phiopt.c
20235 (struct name_to_bb): Rename to ref_to_bb; add a new field exp;
20236 remove ssa_name_ver, store, offset fields.
20237 (struct ssa_names_hasher): Rename to refs_hasher; update functions.
20238 (class nontrapping_dom_walker): Rename m_seen_ssa_names to m_seen_refs.
20239 (nontrapping_dom_walker::add_or_mark_expr): Extend to support ARRAY_REFs
20240 and COMPONENT_REFs.
20242 2020-06-04 Andreas Schwab <schwab@suse.de>
20245 * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Call assemble_external.
20247 2020-06-04 Hongtao.liu <hongtao.liu@intel.com>
20249 * config/i386/sse.md (pmov_dst_3_lower): New mode attribute.
20250 (trunc<mode><pmov_dst_3_lower>2): Refine from
20251 trunc<mode><pmov_dst_3>2.
20253 2020-06-03 Vitor Guidi <vitor.guidi@usp.br>
20255 * match.pd (tanh/sinh -> 1/cosh): New simplification.
20257 2020-06-03 Aaron Sawdey <acsawdey@linux.ibm.com>
20260 * config/rs6000/rs6000.c (is_stfs_insn): Rename to
20261 is_lfs_stfs_insn and make it recognize lfs as well.
20262 (prefixed_store_p): Use is_lfs_stfs_insn().
20263 (prefixed_load_p): Use is_lfs_stfs_insn() to recognize lfs.
20265 2020-06-03 Jan Hubicka <hubicka@ucw.cz>
20267 * ipa-devirt.c: Include data-streamer.h, lto-streamer.h and
20269 (odr_enums): New static var.
20270 (struct odr_enum_val): New struct.
20271 (class odr_enum): New struct.
20272 (odr_enum_map): New hashtable.
20273 (odr_types_equivalent_p): Drop code testing TYPE_VALUES.
20274 (add_type_duplicate): Likewise.
20275 (free_odr_warning_data): Do not free TYPE_VALUES.
20276 (register_odr_enum): New function.
20277 (ipa_odr_summary_write): New function.
20278 (ipa_odr_read_section): New function.
20279 (ipa_odr_summary_read): New function.
20280 (class pass_ipa_odr): New pass.
20281 (make_pass_ipa_odr): New function.
20282 * ipa-utils.h (register_odr_enum): Declare.
20283 * lto-section-in.c: (lto_section_name): Add odr_types section.
20284 * lto-streamer.h (enum lto_section_type): Add odr_types section.
20285 * passes.def: Add odr_types pass.
20286 * lto-streamer-out.c (DFS::DFS_write_tree_body): Do not stream
20288 (hash_tree): Likewise.
20289 * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers):
20291 * tree-streamer-out.c (write_ts_type_non_common_tree_pointers):
20293 * timevar.def (TV_IPA_ODR): New timervar.
20294 * tree-pass.h (make_pass_ipa_odr): Declare.
20295 * tree.c (free_lang_data_in_type): Regiser ODR types.
20297 2020-06-03 Romain Naour <romain.naour@gmail.com>
20299 * Makefile.in (SELFTEST_DEPS): Move before including language makefile
20302 2020-06-03 Richard Biener <rguenther@suse.de>
20304 PR tree-optimization/95487
20305 * tree-vect-stmts.c (vectorizable_store): Use a truth type
20306 for the scatter mask.
20308 2020-06-03 Richard Biener <rguenther@suse.de>
20310 PR tree-optimization/95495
20311 * tree-vect-slp.c (vect_slp_analyze_node_operations): Use
20312 SLP_TREE_REPRESENTATIVE in the shift assertion.
20314 2020-06-03 Tom Tromey <tromey@adacore.com>
20316 * spellcheck.c (CASE_COST): New define.
20317 (BASE_COST): New define.
20318 (get_edit_distance): Recognize case changes.
20319 (get_edit_distance_cutoff): Update.
20320 (test_edit_distances): Update.
20321 (get_old_cutoff): Update.
20322 (test_find_closest_string): Add case sensitivity test.
20324 2020-06-03 Richard Biener <rguenther@suse.de>
20326 * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Loop over
20327 the cost vector to unset the visited flag on stmts.
20329 2020-06-03 Tobias Burnus <tobias@codesourcery.com>
20331 * gimplify.c (omp_notice_variable): Use new hook.
20332 * langhooks-def.h (lhd_omp_predetermined_mapping): Declare.
20333 (LANG_HOOKS_OMP_PREDETERMINED_MAPPING): Define
20334 (LANG_HOOKS_DECLS): Add it.
20335 * langhooks.c (lhd_omp_predetermined_sharing): Remove bogus unused attr.
20336 (lhd_omp_predetermined_mapping): New.
20337 * langhooks.h (struct lang_hooks_for_decls): Add new hook.
20339 2020-06-03 Jan Hubicka <jh@suse.cz>
20341 * lto-streamer.h (LTO_tags): Reorder so frequent tags has small indexes;
20342 add LTO_first_tree_tag and LTO_first_gimple_tag.
20343 (lto_tag_is_tree_code_p): Update.
20344 (lto_tag_is_gimple_code_p): Update.
20345 (lto_gimple_code_to_tag): Update.
20346 (lto_tag_to_gimple_code): Update.
20347 (lto_tree_code_to_tag): Update.
20348 (lto_tag_to_tree_code): Update.
20350 2020-06-02 Felix Yang <felix.yang@huawei.com>
20353 * config/aarch64/aarch64.c (aarch64_short_vector_p):
20354 Leave later code to report an error if SVE is disabled.
20356 2020-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20358 * config/aarch64/aarch64-cores.def (zeus): Define.
20359 * config/aarch64/aarch64-tune.md: Regenerate.
20360 * doc/invoke.texi (AArch64 Options): Document zeus -mcpu option.
20362 2020-06-02 Aaron Sawdey <acsawdey@linux.ibm.com>
20365 * config/rs6000/rs6000.c (prefixed_store_p): Add special case
20367 (is_stfs_insn): New helper function.
20369 2020-06-02 Jan Hubicka <jh@suse.cz>
20371 * lto-streamer-in.c (stream_read_tree_ref): Simplify streaming of
20373 * lto-streamer-out.c (stream_write_tree_ref): Likewise.
20375 2020-06-02 Andrew Stubbs <ams@codesourcery.com>
20377 * config/gcn/gcn-hsa.h (CC1_SPEC): Delete.
20378 * config/gcn/gcn.opt (-mlocal-symbol-id): Delete.
20379 * config/gcn/mkoffload.c (main): Don't use -mlocal-symbol-id.
20381 2020-06-02 Eric Botcazou <ebotcazou@adacore.com>
20383 PR middle-end/95395
20384 * optabs.c (expand_unop): Fix bits/bytes confusion in latest change.
20385 * tree-pretty-print.c (dump_generic_node) <ARRAY_TYPE>: Print quals.
20387 2020-06-02 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
20389 * config/s390/s390.c (print_operand): Emit vector alignment
20392 2020-06-02 Martin Liska <mliska@suse.cz>
20394 * coverage.c (get_coverage_counts): Skip sanity check for TOP N counters
20395 as they have variable number of counters.
20396 * gcov-dump.c (main): Add new option -r.
20397 (print_usage): Likewise.
20398 (tag_counters): All new raw format.
20399 * gcov-io.h (struct gcov_kvp): New.
20400 (GCOV_TOPN_VALUES): Remove.
20401 (GCOV_TOPN_VALUES_COUNTERS): Likewise.
20402 (GCOV_TOPN_MEM_COUNTERS): New.
20403 (GCOV_TOPN_DISK_COUNTERS): Likewise.
20404 (GCOV_TOPN_MAXIMUM_TRACKED_VALUES): Likewise.
20405 * ipa-profile.c (ipa_profile_generate_summary): Use
20406 GCOV_TOPN_MAXIMUM_TRACKED_VALUES.
20407 (ipa_profile_write_edge_summary): Likewise.
20408 (ipa_profile_read_edge_summary): Likewise.
20409 (ipa_profile): Remove usage of GCOV_TOPN_VALUES.
20410 * profile.c (sort_hist_values): Sort variable number
20412 (compute_value_histograms): Special case for TOP N counters
20413 that have dynamic number of key-value pairs.
20414 * value-prof.c (dump_histogram_value): Dump variable number
20415 of key-value pairs.
20416 (stream_in_histogram_value): Stream in variable number
20417 of key-value pairs for TOP N counter.
20418 (get_nth_most_common_value): Deal with variable number
20419 of key-value pairs.
20420 (dump_ic_profile): Use GCOV_TOPN_MAXIMUM_TRACKED_VALUES
20421 for loop iteration.
20422 (gimple_find_values_to_profile): Set GCOV_TOPN_MEM_COUNTERS
20424 * doc/gcov-dump.texi: Document new -r option.
20426 2020-06-02 Iain Buclaw <ibuclaw@gdcproject.org>
20429 * config.gcc (arm-wrs-vxworks7*): Set default cpu to generic-armv7-a.
20431 2020-06-01 Jeff Law <law@torsion.usersys.redhat.com>
20433 * lower-subreg.c (resolve_simple_move): If simplify_gen_subreg_concatn
20434 returns (const_int 0) for the destination, then emit nothing.
20436 2020-06-01 Jan Hubicka <hubicka@ucw.cz>
20438 * lto-streamer.h (enum LTO_tags): Remove LTO_field_decl_ref,
20439 LTO_function_decl_ref, LTO_label_decl_ref, LTO_namespace_decl_ref,
20440 LTO_result_decl_ref, LTO_type_decl_ref, LTO_type_ref,
20441 LTO_const_decl_ref, LTO_imported_decl_ref,
20442 LTO_translation_unit_decl_ref, LTO_global_decl_ref and
20443 LTO_namelist_decl_ref; add LTO_global_stream_ref.
20444 * lto-streamer-in.c (lto_input_tree_ref): Simplify.
20445 (lto_input_scc): Update.
20446 (lto_input_tree_1): Update.
20447 * lto-streamer-out.c (lto_indexable_tree_ref): Simlify.
20448 * lto-streamer.c (lto_tag_name): Update.
20450 2020-06-01 Jan Hubicka <hubicka@ucw.cz>
20452 * ipa-reference.c (stream_out_bitmap): Use lto_output_var_decl_ref.
20453 (ipa_reference_read_optimization_summary): Use lto_intput_var_decl_ref.
20454 * lto-cgraph.c (lto_output_node): Likewise.
20455 (lto_output_varpool_node): Likewise.
20456 (output_offload_tables): Likewise.
20457 (input_node): Likewise.
20458 (input_varpool_node): Likewise.
20459 (input_offload_tables): Likewise.
20460 * lto-streamer-in.c (lto_input_tree_ref): Declare.
20461 (lto_input_var_decl_ref): Declare.
20462 (lto_input_fn_decl_ref): Declare.
20463 * lto-streamer-out.c (lto_indexable_tree_ref): Use only one decl stream.
20464 (lto_output_var_decl_index): Rename to ..
20465 (lto_output_var_decl_ref): ... this.
20466 (lto_output_fn_decl_index): Rename to ...
20467 (lto_output_fn_decl_ref): ... this.
20468 * lto-streamer.h (enum lto_decl_stream_e_t): Remove per-type streams.
20469 (DEFINE_DECL_STREAM_FUNCS): Remove.
20470 (lto_output_var_decl_index): Remove.
20471 (lto_output_fn_decl_index): Remove.
20472 (lto_output_var_decl_ref): Declare.
20473 (lto_output_fn_decl_ref): Declare.
20474 (lto_input_var_decl_ref): Declare.
20475 (lto_input_fn_decl_ref): Declare.
20477 2020-06-01 Feng Xue <fxue@os.amperecomputing.com>
20479 * cgraphclones.c (materialize_all_clones): Adjust replace map dump.
20480 * ipa-param-manipulation.c (ipa_dump_adjusted_parameters): Do not
20481 dump infomation if there is no adjusted parameter.
20482 * (ipa_param_adjustments::dump): Adjust prefix spaces for dump string.
20484 2020-06-01 Aldy Hernandez <aldyh@redhat.com>
20486 * Makefile.in (gimple-array-bounds.o): New.
20487 * tree-vrp.c: Move array bounds code...
20488 * gimple-array-bounds.cc: ...here...
20489 * gimple-array-bounds.h: ...and here.
20491 2020-06-01 Aldy Hernandez <aldyh@redhat.com>
20493 * Makefile.in (OBJS): Add value-range-equiv.o.
20494 * tree-vrp.c (*value_range_equiv*): Move to...
20495 * value-range-equiv.cc: ...here.
20496 * tree-vrp.h (class value_range_equiv): Move to...
20497 * value-range-equiv.h: ...here.
20498 * vr-values.h: Include value-range-equiv.h.
20500 2020-06-01 Feng Xue <fxue@os.amperecomputing.com>
20503 * ipa-cp.c (propagate_aggs_across_jump_function): Check aggregate
20504 lattice for simple pass-through by-ref argument.
20506 2020-05-31 Jeff Law <law@redhat.com>
20508 * lra.c (add_auto_inc_notes): Remove function.
20509 * reload1.c (add_auto_inc_notes): Similarly. Move into...
20510 * rtlanal.c (add_auto_inc_notes): New function.
20511 * rtl.h (add_auto_inc_notes): Add prototype.
20512 * recog.c (peep2_attempt): Scan and add REG_INC notes to new insns
20515 2020-05-31 Jan Hubicka <jh@suse.cz>
20517 * lto-section-out.c (lto_output_decl_index): Remove.
20518 (lto_output_field_decl_index): Move to lto-streamer-out.c
20519 (lto_output_fn_decl_index): Move to lto-streamer-out.c
20520 (lto_output_namespace_decl_index): Remove.
20521 (lto_output_var_decl_index): Remove.
20522 (lto_output_type_decl_index): Remove.
20523 (lto_output_type_ref_index): Remove.
20524 * lto-streamer-out.c (output_type_ref): Remove.
20525 (lto_get_index): New function.
20526 (lto_output_tree_ref): Remove.
20527 (lto_indexable_tree_ref): New function.
20528 (lto_output_var_decl_index): Move here from lto-section-out.c; simplify.
20529 (lto_output_fn_decl_index): Move here from lto-section-out.c; simplify.
20530 (stream_write_tree_ref): Update.
20531 (lto_output_tree): Update.
20532 * lto-streamer.h (lto_output_decl_index): Remove prototype.
20533 (lto_output_field_decl_index): Remove prototype.
20534 (lto_output_namespace_decl_index): Remove prototype.
20535 (lto_output_type_decl_index): Remove prototype.
20536 (lto_output_type_ref_index): Remove prototype.
20537 (lto_output_var_decl_index): Move.
20538 (lto_output_fn_decl_index): Move
20540 2020-05-31 Jakub Jelinek <jakub@redhat.com>
20542 PR middle-end/95052
20543 * expr.c (store_expr): For shortedned_string_cst, ensure temp has
20546 2020-05-31 Jeff Law <law@redhat.com>
20548 * config/h8300/jumpcall.md (brabs, brabc): Disable patterns.
20550 2020-05-31 Jim Wilson <jimw@sifive.com>
20552 * config/riscv/riscv.md (zero_extendsidi2_shifted): New.
20554 2020-05-30 Jonathan Yong <10walls@gmail.com>
20556 * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Insert -lkernel32
20557 after -lmsvcrt. This is necessary as libmsvcrt.a is not a pure
20558 import library, but also contains some functions that invoke
20559 others in KERNEL32.DLL.
20561 2020-05-29 Segher Boessenkool <segher@kernel.crashing.org>
20563 * config/rs6000/altivec.md (altivec_vmrghw_direct): Prefer VSX form.
20564 (altivec_vmrglw_direct): Ditto.
20565 (altivec_vperm_<mode>_direct): Ditto.
20566 (altivec_vperm_v8hiv16qi): Ditto.
20567 (*altivec_vperm_<mode>_uns_internal): Ditto.
20568 (*altivec_vpermr_<mode>_internal): Ditto.
20569 (vperm_v8hiv4si): Ditto.
20570 (vperm_v16qiv8hi): Ditto.
20572 2020-05-29 Jan Hubicka <jh@suse.cz>
20574 * lto-streamer-in.c (streamer_read_chain): Move here from
20575 tree-streamer-in.c.
20576 (stream_read_tree_ref): New.
20577 (lto_input_tree_1): Simplify.
20578 * lto-streamer-out.c (stream_write_tree_ref): New.
20579 (lto_write_tree_1): Simplify.
20580 (lto_output_tree_1): Simplify.
20581 (DFS::DFS_write_tree): Simplify.
20582 (streamer_write_chain): Move here from tree-stremaer-out.c.
20583 * lto-streamer.h (lto_output_tree_ref): Update prototype.
20584 (stream_read_tree_ref): Declare
20585 (stream_write_tree_ref): Declare
20586 * tree-streamer-in.c (streamer_read_chain): Update to use
20587 stream_read_tree_ref.
20588 (lto_input_ts_common_tree_pointers): Likewise.
20589 (lto_input_ts_vector_tree_pointers): Likewise.
20590 (lto_input_ts_poly_tree_pointers): Likewise.
20591 (lto_input_ts_complex_tree_pointers): Likewise.
20592 (lto_input_ts_decl_minimal_tree_pointers): Likewise.
20593 (lto_input_ts_decl_common_tree_pointers): Likewise.
20594 (lto_input_ts_decl_with_vis_tree_pointers): Likewise.
20595 (lto_input_ts_field_decl_tree_pointers): Likewise.
20596 (lto_input_ts_function_decl_tree_pointers): Likewise.
20597 (lto_input_ts_type_common_tree_pointers): Likewise.
20598 (lto_input_ts_type_non_common_tree_pointers): Likewise.
20599 (lto_input_ts_list_tree_pointers): Likewise.
20600 (lto_input_ts_vec_tree_pointers): Likewise.
20601 (lto_input_ts_exp_tree_pointers): Likewise.
20602 (lto_input_ts_block_tree_pointers): Likewise.
20603 (lto_input_ts_binfo_tree_pointers): Likewise.
20604 (lto_input_ts_constructor_tree_pointers): Likewise.
20605 (lto_input_ts_omp_clause_tree_pointers): Likewise.
20606 * tree-streamer-out.c (streamer_write_chain): Update to use
20607 stream_write_tree_ref.
20608 (write_ts_common_tree_pointers): Likewise.
20609 (write_ts_vector_tree_pointers): Likewise.
20610 (write_ts_poly_tree_pointers): Likewise.
20611 (write_ts_complex_tree_pointers): Likewise.
20612 (write_ts_decl_minimal_tree_pointers): Likewise.
20613 (write_ts_decl_common_tree_pointers): Likewise.
20614 (write_ts_decl_non_common_tree_pointers): Likewise.
20615 (write_ts_decl_with_vis_tree_pointers): Likewise.
20616 (write_ts_field_decl_tree_pointers): Likewise.
20617 (write_ts_function_decl_tree_pointers): Likewise.
20618 (write_ts_type_common_tree_pointers): Likewise.
20619 (write_ts_type_non_common_tree_pointers): Likewise.
20620 (write_ts_list_tree_pointers): Likewise.
20621 (write_ts_vec_tree_pointers): Likewise.
20622 (write_ts_exp_tree_pointers): Likewise.
20623 (write_ts_block_tree_pointers): Likewise.
20624 (write_ts_binfo_tree_pointers): Likewise.
20625 (write_ts_constructor_tree_pointers): Likewise.
20626 (write_ts_omp_clause_tree_pointers): Likewise.
20627 (streamer_write_tree_body): Likewise.
20628 (streamer_write_integer_cst): Likewise.
20629 * tree-streamer.h (streamer_read_chain):Declare.
20630 (streamer_write_chain):Declare.
20631 (streamer_write_tree_body): Update prototype.
20632 (streamer_write_integer_cst): Update prototype.
20634 2020-05-29 H.J. Lu <hjl.tools@gmail.com>
20637 * configure: Regenerated.
20639 2020-05-29 Andrew Stubbs <ams@codesourcery.com>
20641 * config/gcn/gcn-valu.md (add<mode>3_vcc_zext_dup): Add early clobber.
20642 (add<mode>3_vcc_zext_dup_exec): Likewise.
20643 (add<mode>3_vcc_zext_dup2): Likewise.
20644 (add<mode>3_vcc_zext_dup2_exec): Likewise.
20646 2020-05-29 Richard Biener <rguenther@suse.de>
20648 PR tree-optimization/95272
20649 * tree-vectorizer.h (_slp_tree::representative): Add.
20650 (SLP_TREE_REPRESENTATIVE): Likewise.
20651 * tree-vect-loop.c (vectorizable_reduction): Adjust SLP
20653 (vectorizable_live_operation): Use the representative to
20654 attach the reduction info to.
20655 * tree-vect-slp.c (_slp_tree::_slp_tree): Initialize
20656 SLP_TREE_REPRESENTATIVE.
20657 (vect_create_new_slp_node): Likewise.
20658 (slp_copy_subtree): Copy it.
20659 (vect_slp_rearrange_stmts): Re-arrange even COND_EXPR stmts.
20660 (vect_slp_analyze_node_operations_1): Pass the representative
20661 to vect_analyze_stmt.
20662 (vect_schedule_slp_instance): Pass the representative to
20663 vect_transform_stmt.
20665 2020-05-29 Richard Biener <rguenther@suse.de>
20667 PR tree-optimization/95356
20668 * tree-vect-stmts.c (vectorizable_shift): Do in-place SLP
20669 node hacking during analysis.
20671 2020-05-29 Jan Hubicka <hubicka@ucw.cz>
20674 * lto-streamer-out.c (lto_output_tree): Disable redundant streaming.
20676 2020-05-29 Richard Biener <rguenther@suse.de>
20678 PR tree-optimization/95403
20679 * tree-vect-stmts.c (vect_init_vector_1): Guard against NULL
20682 2020-05-29 Jakub Jelinek <jakub@redhat.com>
20684 PR middle-end/95315
20685 * omp-general.c (omp_resolve_declare_variant): Fix up addition of
20686 declare variant cgraph node removal callback.
20688 2020-05-29 Jakub Jelinek <jakub@redhat.com>
20690 PR middle-end/95052
20691 * expr.c (store_expr): If expr_size is constant and significantly
20692 larger than TREE_STRING_LENGTH, set temp to just the
20693 TREE_STRING_LENGTH portion of the STRING_CST.
20695 2020-05-29 Richard Biener <rguenther@suse.de>
20697 PR tree-optimization/95393
20698 * tree-ssa-phiopt.c (minmax_replacement): Use gimple_build
20699 to build the min/max expression so we simplify cases like
20700 MAX(0, s) immediately.
20702 2020-05-29 Joe Ramsay <joe.ramsay@arm.com>
20704 * config/aarch64/aarch64-sve.md (<LOGICAL:optab><mode>3): Add support
20705 for unpacked EOR, ORR, AND.
20707 2020-05-28 Nicolas Bértolo <nicolasbertolo@gmail.com>
20709 * Makefile.in: don't look for libiberty in the "pic" subdirectory
20710 when building for Mingw. Add dependency on xgcc with the proper
20713 2020-05-28 Jeff Law <law@redhat.com>
20715 * config/h8300/logical.md (bclrhi_msx): Remove pattern.
20717 2020-05-28 Jeff Law <law@redhat.com>
20719 * config/h8300/logical.md (HImode H8/SX bit-and splitter): Don't
20720 make a nonzero adjustment to the memory offset.
20721 (b<ior,xor>hi_msx): Turn into a splitter.
20723 2020-05-28 Eric Botcazou <ebotcazou@adacore.com>
20725 * gimple-ssa-store-merging.c (merged_store_group::can_be_merged_into):
20726 Fix off-by-one error.
20728 2020-05-28 Richard Sandiford <richard.sandiford@arm.com>
20730 * config/aarch64/aarch64.h (aarch64_frame): Add a comment above
20731 wb_candidate1 and wb_candidate2.
20732 * config/aarch64/aarch64.c (aarch64_layout_frame): Invalidate
20733 wb_candidate1 and wb_candidate2 if we decided not to use them.
20735 2020-05-28 Richard Sandiford <richard.sandiford@arm.com>
20738 * config/aarch64/aarch64.c (aarch64_expand_epilogue): Assert that
20739 we have at least some CFI operations when using a frame pointer.
20740 Only redefine the CFA if we have CFI operations.
20742 2020-05-28 Richard Biener <rguenther@suse.de>
20744 * tree-vect-slp.c (vect_prologue_cost_for_slp): Remove
20745 case for !SLP_TREE_VECTYPE.
20746 (vect_slp_analyze_node_operations): Adjust.
20748 2020-05-28 Richard Biener <rguenther@suse.de>
20750 * tree-vectorizer.h (_slp_tree::vec_defs): Add.
20751 (SLP_TREE_VEC_DEFS): Likewise.
20752 * tree-vect-slp.c (_slp_tree::_slp_tree): Adjust.
20753 (_slp_tree::~_slp_tree): Likewise.
20754 (vect_mask_constant_operand_p): Remove unused function.
20755 (vect_get_constant_vectors): Rename to...
20756 (vect_create_constant_vectors): ... this. Take the
20757 invariant node as argument and code generate it. Remove
20758 dead code, remove temporary asserts. Pass a NULL stmt_info
20759 to vect_init_vector.
20760 (vect_get_slp_defs): Simplify.
20761 (vect_schedule_slp_instance): Code-generate externals and
20762 invariants using vect_create_constant_vectors.
20764 2020-05-28 Richard Biener <rguenther@suse.de>
20766 * tree-vect-stmts.c (vect_finish_stmt_generation_1):
20767 Conditionalize stmt_info use, assert the new stmt cannot throw
20768 when not specified.
20769 (vect_finish_stmt_generation): Adjust assert.
20771 2020-05-28 Richard Biener <rguenther@suse.de>
20773 PR tree-optimization/95273
20774 PR tree-optimization/95356
20775 * tree-vect-stmts.c (vectorizable_shift): Adjust when and to
20776 what we set the vector type of the shift operand SLP node
20779 2020-05-28 Andrea Corallo <andrea.corallo@arm.com>
20781 * config/arm/arm.c (mve_vector_mem_operand): Fix unwanted
20784 2020-05-28 Martin Liska <mliska@suse.cz>
20787 * doc/invoke.texi: Add missing params, remove max-once-peeled-insns and
20788 rename ipcp-unit-growth to ipa-cp-unit-growth.
20790 2020-05-28 Hongtao Liu <hongtao.liu@intel.com>
20792 * config/i386/sse.md (*avx512vl_<code>v2div2qi2_store_1): Rename
20793 from *avx512vl_<code>v2div2qi_store and refine memory size of
20795 (*avx512vl_<code>v2div2qi2_mask_store_1): Ditto.
20796 (*avx512vl_<code><mode>v4qi2_store_1): Ditto.
20797 (*avx512vl_<code><mode>v4qi2_mask_store_1): Ditto.
20798 (*avx512vl_<code><mode>v8qi2_store_1): Ditto.
20799 (*avx512vl_<code><mode>v8qi2_mask_store_1): Ditto.
20800 (*avx512vl_<code><mode>v4hi2_store_1): Ditto.
20801 (*avx512vl_<code><mode>v4hi2_mask_store_1): Ditto.
20802 (*avx512vl_<code>v2div2hi2_store_1): Ditto.
20803 (*avx512vl_<code>v2div2hi2_mask_store_1): Ditto.
20804 (*avx512vl_<code>v2div2si2_store_1): Ditto.
20805 (*avx512vl_<code>v2div2si2_mask_store_1): Ditto.
20806 (*avx512f_<code>v8div16qi2_store_1): Ditto.
20807 (*avx512f_<code>v8div16qi2_mask_store_1): Ditto.
20808 (*avx512vl_<code>v2div2qi2_store_2): New define_insn_and_split.
20809 (*avx512vl_<code>v2div2qi2_mask_store_2): Ditto.
20810 (*avx512vl_<code><mode>v4qi2_store_2): Ditto.
20811 (*avx512vl_<code><mode>v4qi2_mask_store_2): Ditto.
20812 (*avx512vl_<code><mode>v8qi2_store_2): Ditto.
20813 (*avx512vl_<code><mode>v8qi2_mask_store_2): Ditto.
20814 (*avx512vl_<code><mode>v4hi2_store_2): Ditto.
20815 (*avx512vl_<code><mode>v4hi2_mask_store_2): Ditto.
20816 (*avx512vl_<code>v2div2hi2_store_2): Ditto.
20817 (*avx512vl_<code>v2div2hi2_mask_store_2): Ditto.
20818 (*avx512vl_<code>v2div2si2_store_2): Ditto.
20819 (*avx512vl_<code>v2div2si2_mask_store_2): Ditto.
20820 (*avx512f_<code>v8div16qi2_store_2): Ditto.
20821 (*avx512f_<code>v8div16qi2_mask_store_2): Ditto.
20822 * config/i386/i386-builtin-types.def: Adjust builtin type.
20823 * config/i386/i386-expand.c: Ditto.
20824 * config/i386/i386-builtin.def: Adjust builtin.
20825 * config/i386/avx512fintrin.h: Ditto.
20826 * config/i386/avx512vlbwintrin.h: Ditto.
20827 * config/i386/avx512vlintrin.h: Ditto.
20829 2020-05-28 Dong JianQiang <dongjianqiang2@huawei.com>
20831 PR gcov-profile/95332
20832 * gcov-io.c (gcov_var::endian): Move field.
20833 (from_file): Add IN_GCOV_TOOL check.
20834 * gcov-io.h (gcov_magic): Ditto.
20836 2020-05-28 Max Filippov <jcmvbkbc@gmail.com>
20838 * config/xtensa/xtensa.c (xtensa_delegitimize_address): New
20840 (TARGET_DELEGITIMIZE_ADDRESS): New macro.
20842 2020-05-27 Eric Botcazou <ebotcazou@adacore.com>
20844 * builtin-types.def (BT_UINT128): New primitive type.
20845 (BT_FN_UINT128_UINT128): New function type.
20846 * builtins.def (BUILT_IN_BSWAP128): New GCC builtin.
20847 * doc/extend.texi (__builtin_bswap128): Document it.
20848 * builtins.c (expand_builtin): Deal with BUILT_IN_BSWAP128.
20849 (is_inexpensive_builtin): Likewise.
20850 * fold-const-call.c (fold_const_call_ss): Likewise.
20851 * fold-const.c (tree_call_nonnegative_warnv_p): Likewise.
20852 * tree-ssa-ccp.c (evaluate_stmt): Likewise.
20853 * tree-vect-stmts.c (vect_get_data_ptr_increment): Likewise.
20854 (vectorizable_call): Likewise.
20855 * optabs.c (expand_unop): Always use the double word path for it.
20856 * tree-core.h (enum tree_index): Add TI_UINT128_TYPE.
20857 * tree.h (uint128_type_node): New global type.
20858 * tree.c (build_common_tree_nodes): Build it if TImode is supported.
20860 2020-05-27 Uroš Bizjak <ubizjak@gmail.com>
20862 * config/i386/mmx.md (*mmx_haddv2sf3): Remove SSE alternatives.
20863 (mmx_hsubv2sf3): Ditto.
20864 (mmx_haddsubv2sf3): New expander.
20865 (*mmx_haddsubv2sf3): Rename from mmx_addsubv2sf3. Correct
20866 RTL template to model horizontal subtraction and addition.
20867 * config/i386/i386-builtin.def (IX86_BUILTIN_PFPNACC):
20870 2020-05-27 Uroš Bizjak <ubizjak@gmail.com>
20873 * config/i386/sse.md
20874 (<mask_codefor>avx512f_<code>v16qiv16si2<mask_name>):
20875 Remove %q operand modifier from insn template.
20876 (avx512f_<code>v8hiv8di2<mask_name>): Ditto.
20878 2020-05-27 Uroš Bizjak <ubizjak@gmail.com>
20880 * config/i386/mmx.md (mmx_pswapdsf2): Add SSE alternatives.
20881 Enable insn pattern for TARGET_MMX_WITH_SSE.
20882 (*mmx_movshdup): New insn pattern.
20883 (*mmx_movsldup): Ditto.
20884 (*mmx_movss): Ditto.
20885 * config/i386/i386-expand.c (ix86_vectorize_vec_perm_const):
20887 (expand_vec_perm_movs): Handle E_V2SFmode.
20888 (expand_vec_perm_even_odd): Ditto.
20889 (expand_vec_perm_broadcast_1): Assert that E_V2SFmode
20890 is already handled by standard shuffle patterns.
20892 2020-05-27 Richard Biener <rguenther@suse.de>
20894 PR tree-optimization/95295
20895 * tree-ssa-loop-im.c (sm_seq_valid_bb): Fix sinking after
20896 merging stores from paths.
20898 2020-05-27 Richard Biener <rguenther@suse.de>
20900 PR tree-optimization/95356
20901 * tree-vect-stmts.c (vectorizable_shift): Adjust vector
20902 type for the shift operand.
20904 2020-05-27 Richard Biener <rguenther@suse.de>
20906 PR tree-optimization/95335
20907 * tree-vect-slp.c (vect_slp_analyze_node_operations): Reset
20908 lvisited for nodes made external.
20910 2020-05-27 Richard Biener <rguenther@suse.de>
20912 * dump-context.h (debug_dump_context): New class.
20913 (dump_context): Make it friend.
20914 * dumpfile.c (debug_dump_context::debug_dump_context):
20916 (debug_dump_context::~debug_dump_context): Likewise.
20917 * tree-vect-slp.c: Include dump-context.h.
20918 (vect_print_slp_tree): Dump a single SLP node.
20919 (debug): New overload for slp_tree.
20920 (vect_print_slp_graph): Rename from vect_print_slp_tree and
20922 (vect_analyze_slp_instance): Adjust.
20924 2020-05-27 Jakub Jelinek <jakub@redhat.com>
20926 PR middle-end/95315
20927 * omp-general.c (omp_declare_variant_remove_hook): New function.
20928 (omp_resolve_declare_variant): Always return base if it is already
20929 declare_variant_alt magic decl itself. Register
20930 omp_declare_variant_remove_hook as cgraph node removal hook.
20932 2020-05-27 Jeff Law <law@redhat.com>
20934 * config/h8300/testcompare.md (tst_extzv_1_n): Do not accept constants
20935 for the primary input operand.
20936 (tstsi_variable_bit_qi): Similarly.
20938 2020-05-26 Uroš Bizjak <ubizjak@gmail.com>
20940 * config/i386/mmx.md (mmx_pswapdv2si2): Add SSE2 alternative.
20942 2020-05-26 Tobias Burnus <tobias@codesourcery.com>
20945 * ipa-utils.h (odr_type_p): Also permit calls with
20946 only flag_generate_offload set.
20948 2020-05-26 Alexandre Oliva <oliva@adacore.com>
20950 * gcc.c (validate_switches): Add braced parameter. Adjust all
20951 callers. Expected and skip trailing brace only if braced.
20952 Return after handling one atom otherwise.
20953 (DUMPS_OPTIONS): New.
20954 (cpp_debug_options): Define in terms of it.
20956 2020-05-26 Richard Biener <rguenther@suse.de>
20958 PR tree-optimization/95327
20959 * tree-vect-stmts.c (vectorizable_shift): Compute op1_vectype
20960 when we are not using a scalar shift.
20962 2020-05-26 Uroš Bizjak <ubizjak@gmail.com>
20964 * config/i386/mmx.md (*mmx_pshufd_1): New insn pattern.
20965 * config/i386/i386-expand.c (ix86_vectorize_vec_perm_const):
20966 Handle E_V2SImode and E_V4HImode.
20967 (expand_vec_perm_even_odd_1): Handle E_V4HImode.
20968 Assert that E_V2SImode is already handled.
20969 (expand_vec_perm_broadcast_1): Assert that E_V2SImode
20970 is already handled by standard shuffle patterns.
20972 2020-05-26 Jan Hubicka <jh@suse.cz>
20974 * tree.c (free_lang_data_in_type): Simpify types of TYPE_VALUES in
20977 2020-05-26 Jakub Jelinek <jakub@redhat.com>
20980 * gimplify.c (find_combined_omp_for): Move to omp-general.c.
20981 * omp-general.h (find_combined_omp_for): Declare.
20982 * omp-general.c: Include tree-iterator.h.
20983 (find_combined_omp_for): New function, moved from gimplify.c.
20985 2020-05-26 Alexandre Oliva <oliva@adacore.com>
20987 * common.opt (aux_base_name): Define.
20988 (dumpbase, dumpdir): Mark as Driver options.
20989 (-dumpbase, -dumpdir): Likewise.
20990 (dumpbase-ext, -dumpbase-ext): New.
20991 (auxbase, auxbase-strip): Drop.
20992 * doc/invoke.texi (-dumpbase, -dumpbase-ext, -dumpdir):
20994 (-o): Introduce the notion of primary output, mention it
20995 influences auxiliary and dump output names as well, add
20997 (-save-temps): Adjust, move examples into -dump*.
20998 (-save-temps=cwd, -save-temps=obj): Likewise.
20999 (-fdump-final-insns): Adjust.
21000 * dwarf2out.c (gen_producer_string): Drop auxbase and
21001 auxbase_strip; add dumpbase_ext.
21002 * gcc.c (enum save_temps): Add SAVE_TEMPS_DUMP.
21003 (save_temps_prefix, save_temps_length): Drop.
21004 (save_temps_overrides_dumpdir): New.
21005 (dumpdir, dumpbase, dumpbase_ext): New.
21006 (dumpdir_length, dumpdir_trailing_dash_added): New.
21007 (outbase, outbase_length): New.
21008 (The Specs Language): Introduce %". Adjust %b and %B.
21009 (ASM_FINAL_SPEC): Use %b.dwo for an aux output name always.
21010 Precede object file with %w when it's the primary output.
21011 (cpp_debug_options): Do not pass on incoming -dumpdir,
21012 -dumpbase and -dumpbase-ext options; recompute them with
21014 (cc1_options): Drop auxbase with and without compare-debug;
21015 use cpp_debug_options instead of dumpbase. Mark asm output
21016 with %w when it's the primary output.
21017 (static_spec_functions): Drop %:compare-debug-auxbase-opt and
21018 %:replace-exception. Add %:dumps.
21019 (driver_handle_option): Implement -save-temps=*/-dumpdir
21020 mutual overriding logic. Save dumpdir, dumpbase and
21021 dumpbase-ext options. Do not save output_file in
21023 (adds_single_suffix_p): New.
21024 (single_input_file_index): New.
21025 (process_command): Combine output dir, output base name, and
21026 dumpbase into dumpdir and outbase.
21027 (set_collect_gcc_options): Pass a possibly-adjusted -dumpdir.
21028 (do_spec_1): Optionally dumpdir instead of save_temps_prefix,
21029 and outbase instead of input_basename in %b, %B and in
21030 -save-temps aux files. Handle empty argument %".
21031 (driver::maybe_run_linker): Adjust dumpdir and auxbase.
21032 (compare_debug_dump_opt_spec_function): Adjust gkd dump file
21033 naming. Spec-quote the computed -fdump-final-insns file name.
21034 (debug_auxbase_opt): Drop.
21035 (compare_debug_self_opt_spec_function): Drop auxbase-strip
21037 (compare_debug_auxbase_opt_spec_function): Drop.
21038 (not_actual_file_p): New.
21039 (replace_extension_spec_func): Drop.
21040 (dumps_spec_func): New.
21041 (convert_white_space): Split-out parts into...
21042 (quote_string, whitespace_to_convert_p): ... these. New.
21043 (quote_spec_char_p, quote_spec, quote_spec_arg): New.
21044 (driver::finalize): Release and reset new variables; drop
21046 * lto-wrapper.c (HAVE_TARGET_EXECUTABLE_SUFFIX): Define if...
21047 (TARGET_EXECUTABLE_SUFFIX): ... is defined; define this to the
21048 empty string otherwise.
21049 (DUMPBASE_SUFFIX): Drop leading period.
21050 (debug_objcopy): Use concat.
21051 (run_gcc): Recognize -save-temps=* as -save-temps too. Obey
21052 -dumpdir. Pass on empty dumpdir and dumpbase with a directory
21053 component. Simplify temp file names.
21054 * opts.c (finish_options): Drop aux base name handling.
21055 (common_handle_option): Drop auxbase-strip handling.
21056 * toplev.c (print_switch_values): Drop auxbase, add
21058 (process_options): Derive aux_base_name from dump_base_name
21060 (lang_dependent_init): Compute dump_base_ext along with
21061 dump_base_name. Disable stack usage and callgraph-info during
21062 lto generation and compare-debug recompilation.
21064 2020-05-26 Hongtao Liu <hongtao.liu@intel.com>
21065 Uroš Bizjak <ubizjak@gmail.com>
21069 * config/i386/sse.md (<floatunssuffix>v2div2sf2): New expander.
21070 (fix<fixunssuffix>_truncv2sfv2di2): Ditto.
21071 (avx512dq_float<floatunssuffix>v2div2sf2): Renaming from
21072 float<floatunssuffix>v2div2sf2.
21073 (avx512dq_fix<fixunssuffix>_truncv2sfv2di2<mask_name>):
21074 Renaming from fix<fixunssuffix>_truncv2sfv2di2<mask_name>.
21075 (vec_pack<floatprefix>_float_<mode>): Adjust icode name.
21076 (vec_unpack_<fixprefix>fix_trunc_lo_<mode>): Ditto.
21077 (vec_unpack_<fixprefix>fix_trunc_hi_<mode>): Ditto.
21078 * config/i386/i386-builtin.def: Ditto.
21079 * emit-rtl.c (validate_subreg): Allow use of *paradoxical* vector
21080 subregs when both omode and imode are vector mode and
21081 have the same inner mode.
21083 2020-05-25 Eric Botcazou <ebotcazou@adacore.com>
21085 * gimple-ssa-store-merging.c (merged_store_group::can_be_merged_into):
21086 Only turn MEM_REFs into bit-field stores for small bit-field regions.
21087 (imm_store_chain_info::output_merged_store): Be prepared for sources
21088 with non-integral type in the bit-field insertion case.
21089 (pass_store_merging::process_store): Use MAX_BITSIZE_MODE_ANY_INT as
21090 the largest size for the bit-field case.
21092 2020-05-25 Uroš Bizjak <ubizjak@gmail.com>
21094 * config/i386/mmx.md (*vec_dupv2sf): Redefine as define_insn.
21095 (mmx_pshufw_1): Change Yv constraint to xYw. Correct type attribute.
21096 (*vec_dupv4hi): Redefine as define_insn.
21097 Remove alternative with general register input.
21098 (*vec_dupv2si): Ditto.
21100 2020-05-25 Richard Biener <rguenther@suse.de>
21102 PR tree-optimization/95309
21103 * tree-vect-slp.c (vect_get_constant_vectors): Move number
21104 of vector computation ...
21105 (vect_slp_analyze_node_operations): ... to analysis phase.
21107 2020-05-25 Jan Hubicka <hubicka@ucw.cz>
21109 * lto-streamer-out.c (lto_output_tree): Add streamer_debugging check.
21110 * lto-streamer.h (streamer_debugging): New constant
21111 * tree-streamer-in.c (streamer_read_tree_bitfields): Add
21112 streamer_debugging check.
21113 (streamer_get_pickled_tree): Likewise.
21114 * tree-streamer-out.c (pack_ts_base_value_fields): Likewise.
21116 2020-05-25 Richard Biener <rguenther@suse.de>
21118 PR tree-optimization/95308
21119 * tree-ssa-forwprop.c (pass_forwprop::execute): Generalize
21120 test for TARGET_MEM_REFs.
21122 2020-05-25 Richard Biener <rguenther@suse.de>
21124 PR tree-optimization/95295
21125 * tree-ssa-loop-im.c (sm_seq_valid_bb): Compare remat stores
21126 RHSes and drop to full sm_other if they are not equal.
21128 2020-05-25 Richard Biener <rguenther@suse.de>
21130 PR tree-optimization/95271
21131 * tree-vect-stmts.c (vectorizable_bswap): Update invariant SLP
21132 children vector type.
21133 (vectorizable_call): Pass down slp ops.
21135 2020-05-25 Richard Biener <rguenther@suse.de>
21137 PR tree-optimization/95297
21138 * tree-vect-stmts.c (vectorizable_shift): For scalar_shift_arg
21139 skip updating operand 1 vector type.
21141 2020-05-25 Richard Biener <rguenther@suse.de>
21143 PR tree-optimization/95284
21144 * tree-ssa-sink.c (sink_common_stores_to_bb): Amend previous
21147 2020-05-25 Hongtao Liu <hongtao.liu@intel.com>
21150 * config/i386/sse.md (sf2dfmode_lower): New mode attribute.
21151 (trunc<mode><sf2dfmode_lower>2) New expander.
21152 (extend<sf2dfmode_lower><mode>2): Ditto.
21154 2020-05-23 Iain Sandoe <iain@sandoe.co.uk>
21156 * config/darwin.h (ASM_GENERATE_INTERNAL_LABEL): Make
21157 ubsan_{data,type},ASAN symbols linker-visible.
21159 2020-05-22 Jan Hubicka <hubicka@ucw.cz>
21161 * lto-streamer-out.c (DFS::DFS): Silence warning.
21163 2020-05-22 Uroš Bizjak <ubizjak@gmail.com>
21166 * config/i386/i386.md (<rounding_insn><mode>2): Do not try to
21167 expand non-sse4 ROUND_ROUNDEVEN rounding via SSE support routines.
21169 2020-05-22 Jan Hubicka <hubicka@ucw.cz>
21171 * lto-streamer-out.c (lto_output_tree): Do not stream final ref if
21174 2020-05-22 Jan Hubicka <hubicka@ucw.cz>
21176 * lto-section-out.c (lto_output_decl_index): Adjust dump indentation.
21177 * lto-streamer-out.c (create_output_block): Fix whitespace
21178 (lto_write_tree_1): Add (debug) dump.
21179 (DFS::DFS): Add dump.
21180 (DFS::DFS_write_tree_body): Do not dump here.
21181 (lto_output_tree): Improve dumping; do not stream ref when not needed.
21182 (produce_asm_for_decls): Fix whitespace.
21183 * tree-streamer-out.c (streamer_write_tree_header): Add dump.
21184 * tree-streamer-out.c (streamer_write_integer_cst): Add debug dump.
21186 2020-05-22 Hongtao.liu <hongtao.liu@intel.com>
21189 * config/i386/sse.md (trunc<pmov_src_lower><mode>2): New expander
21190 (truncv32hiv32qi2): Ditto.
21191 (trunc<ssedoublemodelower><mode>2): Ditto.
21192 (trunc<mode><pmov_dst_3>2): Ditto.
21193 (trunc<mode><pmov_dst_mode_4>2): Ditto.
21194 (truncv2div2si2): Ditto.
21195 (truncv8div8qi2): Ditto.
21196 (avx512f_<code>v8div16qi2): Renaming from *avx512f_<code>v8div16qi2.
21197 (avx512vl_<code>v2div2si): Renaming from *avx512vl_<code>v2div2si2.
21198 (avx512vl_<code><mode>v2<ssecakarnum>qi2): Renaming from
21199 *avx512vl_<code><mode>v<ssescalarnum>qi2.
21201 2020-05-22 H.J. Lu <hongjiu.lu@intel.com>
21204 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
21207 2020-05-22 Richard Biener <rguenther@suse.de>
21209 PR tree-optimization/95268
21210 * tree-ssa-sink.c (sink_common_stores_to_bb): Handle clobbers
21213 2020-05-22 Jan Hubicka <hubicka@ucw.cz>
21215 * tree-streamer.c (record_common_node): Fix hash value of pre-streamed
21218 2020-05-22 Jan Hubicka <hubicka@ucw.cz>
21220 * lto-streamer-in.c (lto_read_tree): Do not stream end markers.
21221 (lto_input_scc): Optimize streaming of entry lengths.
21222 * lto-streamer-out.c (lto_write_tree): Do not stream end markers
21223 (DFS::DFS): Optimize stremaing of entry lengths
21225 2020-05-22 Richard Biener <rguenther@suse.de>
21228 * doc/invoke.texi (flto): Document behavior of diagnostic
21231 2020-05-22 Richard Biener <rguenther@suse.de>
21233 * tree-vectorizer.h (vect_is_simple_use): New overload.
21234 (vect_maybe_update_slp_op_vectype): New.
21235 * tree-vect-stmts.c (vect_is_simple_use): New overload
21236 accessing operands of SLP vs. non-SLP operation transparently.
21237 (vect_maybe_update_slp_op_vectype): New function updating
21238 the possibly shared SLP operands vector type.
21239 (vectorizable_operation): Be a bit more SLP vs non-SLP agnostic
21240 using the new vect_is_simple_use overload; update SLP invariant
21241 operand nodes vector type.
21242 (vectorizable_comparison): Likewise.
21243 (vectorizable_call): Likewise.
21244 (vectorizable_conversion): Likewise.
21245 (vectorizable_shift): Likewise.
21246 (vectorizable_store): Likewise.
21247 (vectorizable_condition): Likewise.
21248 (vectorizable_assignment): Likewise.
21249 * tree-vect-loop.c (vectorizable_reduction): Likewise.
21250 * tree-vect-slp.c (vect_get_constant_vectors): Enforce
21251 present SLP_TREE_VECTYPE and check it matches previous
21254 2020-05-22 Richard Biener <rguenther@suse.de>
21256 PR tree-optimization/95248
21257 * tree-ssa-loop-im.c (sm_seq_valid_bb): Remove bogus early out.
21259 2020-05-22 Richard Biener <rguenther@suse.de>
21261 * tree-vectorizer.h (_slp_tree::_slp_tree): New.
21262 (_slp_tree::~_slp_tree): Likewise.
21263 * tree-vect-slp.c (_slp_tree::_slp_tree): Factor out code
21265 (_slp_tree::~_slp_tree): Implement.
21266 (vect_free_slp_tree): Simplify.
21267 (vect_create_new_slp_node): Likewise. Add nops parameter.
21268 (vect_build_slp_tree_2): Adjust.
21269 (vect_analyze_slp_instance): Likewise.
21271 2020-05-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21273 * adjust-alignment.c: Include memmodel.h.
21275 2020-05-21 H.J. Lu <hongjiu.lu@intel.com>
21278 * config/i386/cpuid.h: Use hexadecimal in comments.
21280 2020-05-21 H.J. Lu <hongjiu.lu@intel.com>
21283 * config/i386/i386-builtins.c (processor_features): Move
21284 F_AVX512VP2INTERSECT after F_AVX512BF16.
21285 (isa_names_table): Likewise.
21287 2020-05-21 Martin Liska <mliska@suse.cz>
21289 * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
21290 Handle OPT_moutline_atomics.
21291 * config/aarch64/aarch64.c: Add outline-atomics to
21292 aarch64_attributes.
21293 * doc/extend.texi: Document the newly added target attribute.
21295 2020-05-21 Uroš Bizjak <ubizjak@gmail.com>
21299 * config/i386/mmx.md (*mmx_<code>v2sf): Do not mark
21300 operands 1 and 2 commutative. Manually swap operands.
21301 (*mmx_nabsv2sf2): Ditto.
21304 2020-05-18 Uroš Bizjak <ubizjak@gmail.com>
21306 * config/i386/i386.md (*<code>tf2_1):
21307 Mark operands 1 and 2 commutative.
21308 (*nabstf2_1): Ditto.
21309 * config/i386/sse.md (*<code><mode>2): Mark operands 1 and 2
21310 commutative. Do not swap operands.
21311 (*nabs<mode>2): Ditto.
21313 2020-05-20 Uroš Bizjak <ubizjak@gmail.com>
21316 * config/i386/sse.md (<code>v8qiv8hi2): Use
21317 simplify_gen_subreg instead of simplify_subreg.
21318 (<code>v8qiv8si2): Ditto.
21319 (<code>v4qiv4si2): Ditto.
21320 (<code>v4hiv4si2): Ditto.
21321 (<code>v8qiv8di2): Ditto.
21322 (<code>v4qiv4di2): Ditto.
21323 (<code>v2qiv2di2): Ditto.
21324 (<code>v4hiv4di2): Ditto.
21325 (<code>v2hiv2di2): Ditto.
21326 (<code>v2siv2di2): Ditto.
21328 2020-05-20 Uroš Bizjak <ubizjak@gmail.com>
21331 * config/i386/i386.md (*pushsi2_rex64):
21332 Use "e" constraint instead of "i".
21334 2020-05-20 Jan Hubicka <hubicka@ucw.cz>
21336 * lto-streamer-in.c (lto_input_scc): Add SHARED_SCC parameter.
21337 (lto_input_tree_1): Strenghten sanity check.
21338 (lto_input_tree): Update call of lto_input_scc.
21339 * lto-streamer-out.c: Include ipa-utils.h
21340 (create_output_block): Initialize local_trees if merigng is going
21342 (destroy_output_block): Destroy local_trees.
21343 (DFS): Add max_local_entry.
21344 (local_tree_p): New function.
21345 (DFS::DFS): Initialize and maintain it.
21346 (DFS::DFS_write_tree): Decide on streaming format.
21347 (lto_output_tree): Stream inline singleton SCCs
21348 * lto-streamer.h (enum LTO_tags): Add LTO_trees.
21349 (struct output_block): Add local_trees.
21350 (lto_input_scc): Update prototype.
21352 2020-05-20 Patrick Palka <ppalka@redhat.com>
21355 * hash-table.h (hash_table::find_with_hash): Move up the call to
21356 hash_table::verify.
21358 2020-05-20 Martin Liska <mliska@suse.cz>
21360 * lto-compress.c (lto_compression_zstd): Fill up
21361 num_compressed_il_bytes.
21362 (lto_uncompression_zstd): Likewise for num_uncompressed_il_bytes here.
21364 2020-05-20 Richard Biener <rguenther@suse.de>
21366 PR tree-optimization/95219
21367 * tree-vect-loop.c (vectorizable_induction): Reduce
21368 group_size before computing the number of required IVs.
21370 2020-05-20 Richard Biener <rguenther@suse.de>
21372 PR middle-end/95231
21373 * tree-inline.c (remap_gimple_stmt): Revert adjusting
21374 COND_EXPR and VEC_COND_EXPR for a -fnon-call-exception boundary.
21376 2020-05-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
21377 Andre Vieira <andre.simoesdiasvieira@arm.com>
21380 * config/arm/arm-protos.h (arm_mode_base_reg_class): Function
21382 (mve_vector_mem_operand): Likewise.
21383 * config/arm/arm.c (thumb2_legitimate_address_p): For MVE target check
21384 the load from memory to a core register is legitimate for give mode.
21385 (mve_vector_mem_operand): Define function.
21386 (arm_print_operand): Modify comment.
21387 (arm_mode_base_reg_class): Define.
21388 * config/arm/arm.h (MODE_BASE_REG_CLASS): Modify to add check for
21389 TARGET_HAVE_MVE and expand to arm_mode_base_reg_class on TRUE.
21390 * config/arm/constraints.md (Ux): Likewise.
21392 * config/arm/mve.md (mve_mov): Replace constraint Us with Ux and also
21393 add support for missing Vector Store Register and Vector Load Register.
21394 Add a new alternative to support load from memory to PC (or label) in
21396 (mve_vstrbq_<supf><mode>): Modify constraint Us to Ux.
21397 (mve_vldrbq_<supf><mode>): Modify constriant Us to Ux, predicate to
21398 mve_memory_operand and also modify the MVE instructions to emit.
21399 (mve_vldrbq_z_<supf><mode>): Modify constraint Us to Ux.
21400 (mve_vldrhq_fv8hf): Modify constriant Us to Ux, predicate to
21401 mve_memory_operand and also modify the MVE instructions to emit.
21402 (mve_vldrhq_<supf><mode>): Modify constriant Us to Ux, predicate to
21403 mve_memory_operand and also modify the MVE instructions to emit.
21404 (mve_vldrhq_z_fv8hf): Likewise.
21405 (mve_vldrhq_z_<supf><mode>): Likewise.
21406 (mve_vldrwq_fv4sf): Likewise.
21407 (mve_vldrwq_<supf>v4si): Likewise.
21408 (mve_vldrwq_z_fv4sf): Likewise.
21409 (mve_vldrwq_z_<supf>v4si): Likewise.
21410 (mve_vld1q_f<mode>): Modify constriant Us to Ux.
21411 (mve_vld1q_<supf><mode>): Likewise.
21412 (mve_vstrhq_fv8hf): Modify constriant Us to Ux, predicate to
21413 mve_memory_operand.
21414 (mve_vstrhq_p_fv8hf): Modify constriant Us to Ux, predicate to
21415 mve_memory_operand and also modify the MVE instructions to emit.
21416 (mve_vstrhq_p_<supf><mode>): Likewise.
21417 (mve_vstrhq_<supf><mode>): Modify constriant Us to Ux, predicate to
21418 mve_memory_operand.
21419 (mve_vstrwq_fv4sf): Modify constriant Us to Ux.
21420 (mve_vstrwq_p_fv4sf): Modify constriant Us to Ux and also modify the MVE
21421 instructions to emit.
21422 (mve_vstrwq_p_<supf>v4si): Likewise.
21423 (mve_vstrwq_<supf>v4si): Likewise.Modify constriant Us to Ux.
21424 * config/arm/predicates.md (mve_memory_operand): Define.
21426 2020-05-30 Richard Biener <rguenther@suse.de>
21429 * c-fold.c (c_fully_fold_internal): Enhance guard on
21432 2020-05-20 Kito Cheng <kito.cheng@sifive.com>
21435 * Makefile.in (OBJS): Add adjust-alignment.o.
21436 * adjust-alignment.c (pass_data_adjust_alignment): New.
21437 (pass_adjust_alignment): New.
21438 (pass_adjust_alignment::execute): New.
21439 (make_pass_adjust_alignment): New.
21440 * tree-pass.h (make_pass_adjust_alignment): New.
21441 * passes.def: Add pass_adjust_alignment.
21443 2020-05-19 Alex Coplan <alex.coplan@arm.com>
21446 * config/aarch64/aarch64.c (aarch64_evpc_rev_local): Don't match
21447 identity permutation.
21449 2020-05-19 Jozef Lawrynowicz <jozef.l@mittosystems.com>
21451 * doc/sourcebuild.texi: Document new short_eq_int, ptr_eq_short,
21452 msp430_small, msp430_large and size24plus DejaGNU effective
21454 Improve grammar in descriptions for size20plus and size32plus effective
21457 2020-05-19 Jose E. Marchesi <jose.marchesi@oracle.com>
21459 * config/bpf/bpf.c (bpf_compute_frame_layout): Include space for
21460 callee saved registers only in xBPF.
21461 (bpf_expand_prologue): Save callee saved registers only in xBPF.
21462 (bpf_expand_epilogue): Likewise for restoring.
21463 * doc/invoke.texi (eBPF Options): Document this is activated by
21466 2020-05-19 Jose E. Marchesi <jose.marchesi@oracle.com>
21468 * config/bpf/bpf.opt (mxbpf): New option.
21469 * doc/invoke.texi (Option Summary): Add -mxbpf.
21470 (eBPF Options): Document -mxbbpf.
21472 2020-05-19 Uroš Bizjak <ubizjak@gmail.com>
21475 * config/i386/sse.md (<code>v16qiv16hi2): New expander.
21476 (<code>v32qiv32hi2): Ditto.
21477 (<code>v8qiv8hi2): Ditto.
21478 (<code>v16qiv16si2): Ditto.
21479 (<code>v8qiv8si2): Ditto.
21480 (<code>v4qiv4si2): Ditto.
21481 (<code>v16hiv16si2): Ditto.
21482 (<code>v8hiv8si2): Ditto.
21483 (<code>v4hiv4si2): Ditto.
21484 (<code>v8qiv8di2): Ditto.
21485 (<code>v4qiv4di2): Ditto.
21486 (<code>v2qiv2di2): Ditto.
21487 (<code>v8hiv8di2): Ditto.
21488 (<code>v4hiv4di2): Ditto.
21489 (<code>v2hiv2di2): Ditto.
21490 (<code>v8siv8di2): Ditto.
21491 (<code>v4siv4di2): Ditto.
21492 (<code>v2siv2di2): Ditto.
21494 2020-05-19 Kito Cheng <kito.cheng@sifive.com>
21496 * common/config/riscv/riscv-common.c (riscv_implied_info_t): New.
21497 (riscv_implied_info): New.
21498 (riscv_subset_list): Add handle_implied_ext.
21499 (riscv_subset_list::to_string): New parameter version_p to
21500 control output format.
21501 (riscv_subset_list::handle_implied_ext): New.
21502 (riscv_subset_list::parse_std_ext): Call handle_implied_ext.
21503 (riscv_arch_str): New parameter version_p to control output format.
21504 (riscv_expand_arch): New.
21505 * config/riscv/riscv-protos.h (riscv_arch_str): New parameter,
21507 * config/riscv/riscv.h (riscv_expand_arch): New,
21508 (EXTRA_SPEC_FUNCTIONS): Define.
21509 (ASM_SPEC): Transform -march= via riscv_expand_arch.
21511 2020-05-19 Kito Cheng <kito.cheng@sifive.com>
21513 * riscv-common.c (parse_sv_or_non_std_ext): Rename to
21514 parse_multiletter_ext.
21515 (parse_multiletter_ext): Add parsing `h` and `z`, drop `sx`,
21516 adjust parsing order for 's' and 'x'.
21518 2020-05-19 Richard Biener <rguenther@suse.de>
21520 * tree-vectorizer.h (_slp_tree::vectype): Add field.
21521 (SLP_TREE_VECTYPE): New.
21522 * tree-vect-slp.c (vect_create_new_slp_node): Initialize
21524 (vect_create_new_slp_node): Likewise.
21525 (vect_prologue_cost_for_slp): Move here from tree-vect-stmts.c
21527 (vect_slp_analyze_node_operations): Walk nodes children for
21529 (vect_get_constant_vectors): Use local scope op variable.
21530 * tree-vect-stmts.c (vect_prologue_cost_for_slp_op): Remove here.
21531 (vect_model_simple_cost): Adjust.
21532 (vect_model_store_cost): Likewise.
21533 (vectorizable_store): Likewise.
21535 2020-05-18 Martin Sebor <msebor@redhat.com>
21537 PR middle-end/92815
21538 * tree-object-size.c (decl_init_size): New function.
21539 (addr_object_size): Call it.
21540 * tree.h (last_field): Declare.
21541 (first_field): Add attribute nonnull.
21543 2020-05-18 Martin Sebor <msebor@redhat.com>
21545 PR middle-end/94940
21546 * tree-vrp.c (vrp_prop::check_mem_ref): Remove unreachable code.
21547 * tree.c (component_ref_size): Correct the handling or array members
21549 Drop a pointless test.
21550 Rename a local variable.
21552 2020-05-18 Jason Merrill <jason@redhat.com>
21554 * aclocal.m4: Add ax_cxx_compile_stdcxx.m4.
21555 * configure.ac: Use AX_CXX_COMPILE_STDCXX(11).
21557 2020-05-14 Jason Merrill <jason@redhat.com>
21559 * doc/install.texi (Prerequisites): Update boostrap compiler
21560 requirement to C++11/GCC 4.8.
21562 2020-05-18 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
21564 PR tree-optimization/94952
21565 * gimple-ssa-store-merging.c (pass_store_merging::process_store):
21566 Initialize variables bitpos, bitregion_start, and bitregion_end in
21567 order to silence warnings about use of uninitialized variables.
21569 2020-05-18 Carl Love <cel@us.ibm.com>
21572 * config/rs6000/vsx.md (define_expand): Fix instruction generation for
21573 first_match_index_<mode>.
21574 * testsuite/gcc.target/powerpc/builtins-8-p9-runnable.c (main): Add
21575 additional test cases with zero vector elements.
21577 2020-05-18 Uroš Bizjak <ubizjak@gmail.com>
21580 * config/i386/i386-expand.c (ix86_expand_int_movcc):
21581 Avoid reversing a non-trapping comparison to a trapping one.
21583 2020-05-18 Alex Coplan <alex.coplan@arm.com>
21585 * config/arm/arm.c (output_move_double): Fix codegen when loading into
21586 a register pair with an odd base register.
21588 2020-05-18 Uroš Bizjak <ubizjak@gmail.com>
21590 * config/i386/i386-expand.c (ix86_expand_fp_absneg_operator):
21591 Do not emit FLAGS_REG clobber for TFmode.
21592 * config/i386/i386.md (*<code>tf2_1): Rewrite as
21593 define_insn_and_split. Mark operands 1 and 2 commutative.
21594 (*nabstf2_1): Ditto.
21595 (absneg SSE splitter): Use MODEF mode iterator instead of SSEMODEF.
21596 Do not swap memory operands. Simplify RTX generation.
21597 (neg abs SSE splitter): Ditto.
21598 * config/i386/sse.md (*<code><mode>2): Mark operands 1 and 2
21599 commutative. Do not swap operands. Simplify RTX generation.
21600 (*nabs<mode>2): Ditto.
21602 2020-05-18 Richard Biener <rguenther@suse.de>
21604 * tree-vect-slp.c (vect_slp_bb): Start after labels.
21605 (vect_get_constant_vectors): Really place init stmt after scalar defs.
21606 * tree-vect-stmts.c (vect_init_vector_1): Insert before
21609 2020-05-18 H.J. Lu <hongjiu.lu@intel.com>
21611 * config/i386/driver-i386.c (host_detect_local_cpu): Support
21612 Intel Airmont, Tremont, Comet Lake, Ice Lake and Tiger Lake
21613 processor families.
21615 2020-05-18 Richard Biener <rguenther@suse.de>
21617 PR middle-end/95171
21618 * tree-inline.c (remap_gimple_stmt): Split out trapping compares
21619 when inlining into a non-call EH function.
21621 2020-05-18 Richard Biener <rguenther@suse.de>
21623 PR tree-optimization/95172
21624 * tree-ssa-loop-im.c (execute_sm): Get flag whether we
21625 eventually need the conditional processing.
21626 (execute_sm_exit): When processing an orderd sequence
21627 avoid doing any conditional processing.
21628 (hoist_memory_references): Pass down whether all edges
21629 have ordered processing for a ref to execute_sm.
21631 2020-05-17 Jeff Law <law@redhat.com>
21633 * config/h8300/predicates.md (pc_or_label_operand): New predicate.
21634 * config/h8300/jumpcall.md (branch_true, branch_false): Consolidate
21635 into a single pattern using pc_or_label_operand.
21636 * config/h8300/combiner.md (bit branch patterns): Likewise.
21637 * config/h8300/peepholes.md (HImode and SImode branches): Likewise.
21639 2020-05-17 H.J. Lu <hongjiu.lu@intel.com>
21642 * config/i386/i386-features.c (has_non_address_hard_reg):
21644 (pseudo_reg_set): This. Return the SET expression. Ignore
21645 pseudo register push.
21646 (general_scalar_to_vector_candidate_p): Combine single_set and
21647 has_non_address_hard_reg calls to pseudo_reg_set.
21648 (timode_scalar_to_vector_candidate_p): Likewise.
21649 * config/i386/i386.md (*pushv1ti2): New pattern.
21651 2020-05-17 Aldy Hernandez <aldyh@redhat.com>
21654 2020-05-17 Aldy Hernandez <aldyh@redhat.com>
21656 * tree-vrp.c (operand_less_p): Move to...
21657 * vr-values.c (operand_less_p): ...here.
21658 * tree-vrp.h (operand_less_p): Remove.
21660 2020-05-17 Aldy Hernandez <aldyh@redhat.com>
21662 * tree-vrp.c (operand_less_p): Move to...
21663 * vr-values.c (operand_less_p): ...here.
21664 * tree-vrp.h (operand_less_p): Remove.
21666 2020-05-17 Aldy Hernandez <aldyh@redhat.com>
21668 * tree-vrp.c (class vrp_insert): Remove prototype for
21671 2020-05-17 Aldy Hernandez <aldyh@redhat.com>
21673 * tree-vrp.c (class live_names): New.
21674 (live_on_edge): Move into live_names.
21675 (build_assert_expr_for): Move into vrp_insert.
21676 (find_assert_locations_in_bb): Rename from
21677 find_assert_locations_1.
21678 (process_assert_insertions_for): Move into vrp_insert.
21679 (compare_assert_loc): Same.
21680 (remove_range_assertions): Same.
21681 (dump_asserts_for): Rename to vrp_insert::dump.
21682 (debug_asserts_for): Rename to vrp_insert::debug.
21683 (dump_all_asserts): Rename to vrp_insert::dump.
21684 (debug_all_asserts): Rename to vrp_insert::debug.
21686 2020-05-17 Aldy Hernandez <aldyh@redhat.com>
21688 * tree-vrp.c (class vrp_prop): Move check_all_array_refs,
21689 check_array_ref, check_mem_ref, and search_for_addr_array
21691 (class array_bounds_checker): ...here.
21692 (class check_array_bounds_dom_walker): Adjust to use
21693 array_bounds_checker.
21694 (check_all_array_refs): Move into array_bounds_checker and rename
21696 (class vrp_folder): Make fold_predicate_in private.
21698 2020-05-15 Jeff Law <law@redhat.com>
21700 * config/h8300/h8300.md (SFI iterator): New iterator for
21702 * config/h8300/peepholes.md (memory comparison): Use mode
21703 iterator to consolidate 3 patterns into one.
21704 (stack allocation and stack store): Handle SFmode. Handle
21705 8 byte allocations.
21707 2020-05-15 Segher Boessenkool <segher@kernel.crashing.org>
21709 * config/rs6000/rs6000-builtin.def (BU_FUTURE_MISC_2): Also require
21710 RS6000_BTM_POWERPC64.
21712 2020-05-15 Uroš Bizjak <ubizjak@gmail.com>
21714 * config/i386/i386.md (SWI48DWI): New mode iterator.
21715 (*push<mode>2): Allow XMM registers.
21716 (*pushdi2_rex64): Ditto.
21717 (*pushsi2_rex64): Ditto.
21719 (push XMM reg splitter): New splitter
21721 (*pushdf) Change "x" operand constraint to "v".
21722 (*pushsf_rex64): Ditto.
21725 2020-05-15 Richard Biener <rguenther@suse.de>
21727 PR tree-optimization/92260
21728 * tree-vect-slp.c (vect_get_constant_vectors): Compute
21729 the number of vector stmts in a canonical way.
21731 2020-05-15 Martin Liska <mliska@suse.cz>
21733 * hsa-gen.c (get_symbol_for_decl): Fix misleading indentation
21736 2020-05-15 Andrew Stubbs <ams@codesourcery.com>
21738 * config/gcn/gcn-valu.md (v<expander><mode>3): Fix unsignedp.
21740 2020-05-15 Richard Biener <rguenther@suse.de>
21742 PR tree-optimization/95133
21743 * gimple-ssa-split-paths.c
21744 (find_block_to_duplicate_for_splitting_paths): Check for
21747 2020-05-15 Christophe Lyon <christophe.lyon@linaro.org>
21749 * config/arm/arm.c (reg_needs_saving_p): Add support for interrupt
21751 (arm_compute_save_reg0_reg12_mask): Use reg_needs_saving_p.
21753 2020-05-15 Tobias Burnus <tobias@codesourcery.com>
21755 PR middle-end/94635
21756 * gimplify.c (gimplify_scan_omp_clauses): For MAP_TO_PSET with
21757 OMP_TARGET_EXIT_DATA, use 'release:' unless the associated
21760 2020-05-15 Uroš Bizjak <ubizjak@gmail.com>
21763 * config/i386/i386.md (isa): Add sse3_noavx.
21764 (enabled): Handle sse3_noavx.
21766 * config/i386/mmx.md (mmx_haddv2sf3): New expander.
21767 (*mmx_haddv2sf3): Rename from mmx_haddv2sf3. Add SSE/AVX
21768 alternatives. Match commutative vec_select selector operands.
21769 (*mmx_haddv2sf3_low): New insn pattern.
21771 (*mmx_hsubv2sf3): Add SSE/AVX alternatives.
21772 (*mmx_hsubv2sf3_low): New insn pattern.
21774 2020-05-15 Richard Biener <rguenther@suse.de>
21776 PR tree-optimization/33315
21777 * tree-ssa-sink.c: Include tree-eh.h.
21778 (sink_stats): Add commoned member.
21779 (sink_common_stores_to_bb): New function implementing store
21780 commoning by sinking to the successor.
21781 (sink_code_in_bb): Call it, pass down TODO_cleanup_cfg returned.
21782 (pass_sink_code::execute): Likewise. Record commoned stores
21785 2020-05-14 Xiong Hu Luo <luoxhu@linux.ibm.com>
21787 PR rtl-optimization/37451, part of PR target/61837
21788 * loop-doloop.c (doloop_simplify_count): New function. Simplify
21789 (add -1; zero_ext; add +1) to zero_ext when not wrapping.
21790 (doloop_modify): Call doloop_simplify_count.
21792 2020-05-14 H.J. Lu <hongjiu.lu@intel.com>
21795 * doc/sourcebuild.texi: Document effective target lgccjit.
21797 2020-05-14 Andrew Stubbs <ams@codesourcery.com>
21799 * config/gcn/gcn-valu.md (add<mode>3_zext_dup): Change to a
21800 define_expand, and rename the original to ...
21801 (add<mode>3_vcc_zext_dup): ... this, and add a custom VCC operand.
21802 (add<mode>3_zext_dup_exec): Likewise, with ...
21803 (add<mode>3_vcc_zext_dup_exec): ... this.
21804 (add<mode>3_zext_dup2): Likewise, with ...
21805 (add<mode>3_zext_dup_exec): ... this.
21806 (add<mode>3_zext_dup2_exec): Likewise, with ...
21807 (add<mode>3_zext_dup2): ... this.
21808 * config/gcn/gcn.c (gcn_expand_scalar_to_vector_address): Switch
21809 addv64di3_zext* calls to use addv64di3_vcc_zext*.
21811 2020-05-14 Uroš Bizjak <ubizjak@gmail.com>
21814 * config/i386/sse.md (truncv2dfv2df2): New insn pattern.
21815 (extendv2sfv2df2): Ditto.
21817 2020-05-14 H.J. Lu <hongjiu.lu@intel.com>
21819 * configure: Regenerated.
21821 2020-05-14 Christophe Lyon <christophe.lyon@linaro.org>
21823 * config/arm/arm.c (reg_needs_saving_p): New function.
21824 (use_return_insn): Use reg_needs_saving_p.
21825 (arm_get_vfp_saved_size): Likewise.
21826 (arm_compute_frame_layout): Likewise.
21827 (arm_save_coproc_regs): Likewise.
21828 (thumb1_expand_epilogue): Likewise.
21829 (arm_expand_epilogue_apcs_frame): Likewise.
21830 (arm_expand_epilogue): Likewise.
21832 2020-05-14 Christophe Lyon <christophe.lyon@linaro.org>
21834 * config/arm/arm.c (thumb1_expand_prologue): Update error message.
21836 2020-05-14 Uroš Bizjak <ubizjak@gmail.com>
21839 * config/i386/sse.md (sse2_cvtpi2pd): Add memory to alternative 1.
21841 (floatv2siv2df2): New expander.
21842 (floatunsv2siv2df2): New insn pattern.
21844 (fix_truncv2dfv2si2): New expander.
21845 (fixuns_truncv2dfv2si2): New insn pattern.
21847 2020-05-14 Richard Sandiford <richard.sandiford@arm.com>
21850 * config/aarch64/aarch64-sve-builtins.cc
21851 (handle_arm_sve_vector_bits_attribute): Create a copy of the
21852 original type's TYPE_MAIN_VARIANT, then reapply all the differences
21853 between the original type and its main variant.
21855 2020-05-14 Richard Biener <rguenther@suse.de>
21857 PR middle-end/95118
21858 * real.c (real_to_decimal_for_mode): Make sure we handle
21859 a zero with nonzero exponent.
21861 2020-05-14 Jakub Jelinek <jakub@redhat.com>
21863 * Makefile.in (GTFILES): Add omp-general.c.
21864 * cgraph.h (struct cgraph_node): Add declare_variant_alt and
21865 calls_declare_variant_alt members and initialize them in the
21867 * ipa.c (symbol_table::remove_unreachable_nodes): Handle direct
21868 calls to declare_variant_alt nodes.
21869 * lto-cgraph.c (lto_output_node): Write declare_variant_alt
21870 and calls_declare_variant_alt.
21871 (input_overwrite_node): Read them back.
21872 * omp-simd-clone.c (simd_clone_create): Copy calls_declare_variant_alt
21874 * tree-inline.c (expand_call_inline): Or in calls_declare_variant_alt
21876 (tree_function_versioning): Copy calls_declare_variant_alt bit.
21877 * omp-offload.c (execute_omp_device_lower): Call
21878 omp_resolve_declare_variant on direct function calls.
21879 (pass_omp_device_lower::gate): Also enable for
21880 calls_declare_variant_alt functions.
21881 * omp-general.c (omp_maybe_offloaded): Return false after inlining.
21882 (omp_context_selector_matches): Handle the case when
21883 cfun->curr_properties has PROP_gimple_any bit set.
21884 (struct omp_declare_variant_entry): New type.
21885 (struct omp_declare_variant_base_entry): New type.
21886 (struct omp_declare_variant_hasher): New type.
21887 (omp_declare_variant_hasher::hash, omp_declare_variant_hasher::equal):
21889 (omp_declare_variants): New variable.
21890 (struct omp_declare_variant_alt_hasher): New type.
21891 (omp_declare_variant_alt_hasher::hash,
21892 omp_declare_variant_alt_hasher::equal): New methods.
21893 (omp_declare_variant_alt): New variables.
21894 (omp_resolve_late_declare_variant): New function.
21895 (omp_resolve_declare_variant): Call omp_resolve_late_declare_variant
21896 when called late. Create a magic declare_variant_alt fndecl and
21897 cgraph node and return that if decision needs to be deferred until
21898 after gimplification.
21899 * cgraph.c (symbol_table::create_edge): Or in calls_declare_variant_alt
21902 PR middle-end/95108
21903 * omp-simd-clone.c (struct modify_stmt_info): Add after_stmt member.
21904 (ipa_simd_modify_stmt_ops): For PHIs, only add before first stmt in
21905 entry block if info->after_stmt is NULL, otherwise add after that stmt
21906 and update it after adding each stmt.
21907 (ipa_simd_modify_function_body): Initialize info.after_stmt.
21909 * function.h (struct function): Add has_omp_target bit.
21910 * omp-offload.c (omp_discover_declare_target_fn_r): New function,
21912 (omp_discover_declare_target_tgt_fn_r): ... this.
21913 (omp_discover_declare_target_var_r): Call
21914 omp_discover_declare_target_tgt_fn_r instead of
21915 omp_discover_declare_target_fn_r.
21916 (omp_discover_implicit_declare_target): Also queue functions with
21917 has_omp_target bit set, for those walk with
21918 omp_discover_declare_target_fn_r, for declare target to functions
21919 walk with omp_discover_declare_target_tgt_fn_r.
21921 2020-05-14 Uroš Bizjak <ubizjak@gmail.com>
21924 * config/i386/mmx.md (mmx_fix_truncv2sfv2si2): Rename from mmx_pf2id.
21925 Add SSE/AVX alternative. Change operand predicates from
21926 nonimmediate_operand to register_mmxmem_operand.
21927 Enable instruction pattern for TARGET_MMX_WITH_SSE.
21928 (fix_truncv2sfv2si2): New expander.
21929 (fixuns_truncv2sfv2si2): New insn pattern.
21931 (mmx_floatv2siv2sf2): rename from mmx_floatv2si2.
21932 Add SSE/AVX alternative. Change operand predicates from
21933 nonimmediate_operand to register_mmxmem_operand.
21934 Enable instruction pattern for TARGET_MMX_WITH_SSE.
21935 (floatv2siv2sf2): New expander.
21936 (floatunsv2siv2sf2): New insn pattern.
21938 * config/i386/i386-builtin.def (IX86_BUILTIN_PF2ID):
21940 (IX86_BUILTIN_PI2FD): Ditto.
21942 2020-05-14 Andreas Krebbel <krebbel@linux.ibm.com>
21944 * config/s390/s390.c (s390_emit_stack_probe): Call the probe_stack
21946 * config/s390/s390.md ("@probe_stack2<mode>", "probe_stack"): New
21949 2020-05-14 Andreas Krebbel <krebbel@linux.ibm.com>
21951 * config/s390/s390.c (allocate_stack_space): Add missing updates
21952 of last_probe_offset.
21954 2020-05-14 Andreas Krebbel <krebbel@linux.ibm.com>
21956 * config/s390/s390.md ("allocate_stack"): Call
21957 anti_adjust_stack_and_probe_stack_clash when stack clash
21958 protection is enabled.
21959 * explow.c (anti_adjust_stack_and_probe_stack_clash): Remove
21960 prototype. Remove static.
21961 * explow.h (anti_adjust_stack_and_probe_stack_clash): Add
21964 2020-05-13 Kelvin Nilsen <kelvin@gcc.gnu.org>
21966 * config/rs6000/altivec.h (vec_extractl): New #define.
21967 (vec_extracth): Likewise.
21968 * config/rs6000/altivec.md (UNSPEC_EXTRACTL): New constant.
21969 (UNSPEC_EXTRACTR): Likewise.
21970 (vextractl<mode>): New expansion.
21971 (vextractl<mode>_internal): New insn.
21972 (vextractr<mode>): New expansion.
21973 (vextractr<mode>_internal): New insn.
21974 * config/rs6000/rs6000-builtin.def (__builtin_altivec_vextdubvlx):
21975 New built-in function.
21976 (__builtin_altivec_vextduhvlx): Likewise.
21977 (__builtin_altivec_vextduwvlx): Likewise.
21978 (__builtin_altivec_vextddvlx): Likewise.
21979 (__builtin_altivec_vextdubvhx): Likewise.
21980 (__builtin_altivec_vextduhvhx): Likewise.
21981 (__builtin_altivec_vextduwvhx): Likewise.
21982 (__builtin_altivec_vextddvhx): Likewise.
21983 (__builtin_vec_extractl): New overloaded built-in function.
21984 (__builtin_vec_extracth): Likewise.
21985 * config/rs6000/rs6000-call.c (altivec_overloaded_builtins):
21986 Define overloaded forms of __builtin_vec_extractl and
21987 __builtin_vec_extracth.
21988 (builtin_function_type): Add cases to mark arguments of new
21989 built-in functions as unsigned.
21990 (rs6000_common_init_builtins): Add
21991 opaque_ftype_opaque_opaque_opaque_opaque.
21992 * config/rs6000/rs6000.md (du_or_d): New mode attribute.
21993 * doc/extend.texi (PowerPC AltiVec Built-in Functions Available
21994 for a Future Architecture): Add description of vec_extractl and
21995 vec_extractr built-in functions.
21997 2020-05-13 Richard Biener <rguenther@suse.de>
21999 * target.def (add_stmt_cost): Add new vectype parameter.
22000 * targhooks.c (default_add_stmt_cost): Adjust.
22001 * targhooks.h (default_add_stmt_cost): Likewise.
22002 * config/aarch64/aarch64.c (aarch64_add_stmt_cost): Take new
22004 * config/arm/arm.c (arm_add_stmt_cost): Likewise.
22005 * config/i386/i386.c (ix86_add_stmt_cost): Likewise.
22006 * config/rs6000/rs6000.c (rs6000_add_stmt_cost): Likewise.
22008 * tree-vectorizer.h (stmt_info_for_cost::vectype): Add.
22009 (dump_stmt_cost): Add new vectype parameter.
22010 (add_stmt_cost): Likewise.
22011 (record_stmt_cost): Likewise.
22012 (record_stmt_cost): Add overload with old signature.
22013 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
22015 (vect_get_known_peeling_cost): Likewise.
22016 (vect_estimate_min_profitable_iters): Likewise.
22017 * tree-vectorizer.c (dump_stmt_cost): Add new vectype parameter.
22018 * tree-vect-stmts.c (record_stmt_cost): Likewise.
22019 (vect_prologue_cost_for_slp_op): Remove stmt_vec_info parameter
22020 and pass down correct vectype and NULL stmt_info.
22021 (vect_model_simple_cost): Adjust.
22022 (vect_model_store_cost): Likewise.
22024 2020-05-13 Richard Biener <rguenther@suse.de>
22026 * tree-vectorizer.h (SLP_INSTANCE_GROUP_SIZE): Remove.
22027 (_slp_instance::group_size): Likewise.
22028 * tree-vect-loop.c (vectorizable_reduction): The group size
22029 is the number of lanes in the node.
22030 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Likewise.
22031 (vect_analyze_slp_instance): Do not set SLP_INSTANCE_GROUP_SIZE,
22032 verify it matches the instance trees number of lanes.
22033 (vect_slp_analyze_node_operations_1): Use the numer of lanes
22034 in the node as group size.
22035 (vect_bb_vectorization_profitable_p): Use the instance root
22036 number of lanes for the size of life.
22037 (vect_schedule_slp_instance): Use the number of lanes as
22039 * tree-vect-stmts.c (vectorizable_load): Remove SLP instance
22040 parameter. Use the number of lanes of the load for the group
22041 size in the gap adjustment code.
22042 (vect_analyze_stmt): Adjust.
22043 (vect_transform_stmt): Likewise.
22045 2020-05-13 Jakub Jelinek <jakub@redhat.com>
22048 * cfgrtl.c (purge_dead_edges): Skip over debug and note insns even
22049 if the last insn is a note.
22051 PR tree-optimization/95060
22052 * tree-ssa-math-opts.c (convert_mult_to_fma_1): Fold a NEGATE_EXPR
22053 if it is the single use of the FMA internal builtin.
22055 2020-05-13 Bin Cheng <bin.cheng@linux.alibaba.com>
22057 PR tree-optimization/94969
22058 * tree-data-dependence.c (constant_access_functions): Rename to...
22059 (invariant_access_functions): ...this. Add parameter. Check for
22060 invariant access function, rather than constant.
22061 (build_classic_dist_vector): Call above function.
22062 * tree-loop-distribution.c (pg_add_dependence_edges): Add comment.
22064 2020-05-13 Hongtao Liu <hongtao.liu@intel.com>
22067 * doc/extend.texi (x86Operandmodifiers): Document more x86
22069 * gcc/config/i386/i386.c: Add comment for operand modifier N and I.
22071 2020-05-12 Giuliano Belinassi <giuliano.belinassi@usp.br>
22073 * tree-vrp.c (class vrp_insert): New.
22074 (insert_range_assertions): Move to class vrp_insert.
22075 (dump_all_asserts): Same as above.
22076 (dump_asserts_for): Same as above.
22077 (live): Same as above.
22078 (need_assert_for): Same as above.
22079 (live_on_edge): Same as above.
22080 (finish_register_edge_assert_for): Same as above.
22081 (find_switch_asserts): Same as above.
22082 (find_assert_locations): Same as above.
22083 (find_assert_locations_1): Same as above.
22084 (find_conditional_asserts): Same as above.
22085 (process_assert_insertions): Same as above.
22086 (register_new_assert_for): Same as above.
22087 (vrp_prop): New variable fun.
22088 (vrp_initialize): New parameter.
22089 (identify_jump_threads): Same as above.
22090 (execute_vrp): Same as above.
22093 2020-05-12 Keith Packard <keith.packard@sifive.com>
22095 * config/riscv/riscv.c (riscv_unique_section): New.
22096 (TARGET_ASM_UNIQUE_SECTION): New.
22098 2020-05-12 Craig Blackmore <craig.blackmore@embecosm.com>
22100 * config.gcc: Add riscv-shorten-memrefs.o to extra_objs for riscv.
22101 * config/riscv/riscv-passes.def: New file.
22102 * config/riscv/riscv-protos.h (make_pass_shorten_memrefs): Declare.
22103 * config/riscv/riscv-shorten-memrefs.c: New file.
22104 * config/riscv/riscv.c (tree-pass.h): New include.
22105 (riscv_compressed_reg_p): New Function
22106 (riscv_compressed_lw_offset_p): Likewise.
22107 (riscv_compressed_lw_address_p): Likewise.
22108 (riscv_shorten_lw_offset): Likewise.
22109 (riscv_legitimize_address): Attempt to convert base + large_offset
22110 to compressible new_base + small_offset.
22111 (riscv_address_cost): Make anticipated compressed load/stores
22112 cheaper for code size than uncompressed load/stores.
22113 (riscv_register_priority): Move compressed register check to
22114 riscv_compressed_reg_p.
22115 * config/riscv/riscv.h (C_S_BITS): Define.
22116 (CSW_MAX_OFFSET): Define.
22117 * config/riscv/riscv.opt (mshorten-memefs): New option.
22118 * config/riscv/t-riscv (riscv-shorten-memrefs.o): New rule.
22119 (PASSES_EXTRA): Add riscv-passes.def.
22120 * doc/invoke.texi: Document -mshorten-memrefs.
22122 * config/riscv/riscv.c (riscv_new_address_profitable_p): New function.
22123 (TARGET_NEW_ADDRESS_PROFITABLE_P): Define.
22124 * doc/tm.texi: Regenerate.
22125 * doc/tm.texi.in (TARGET_NEW_ADDRESS_PROFITABLE_P): New hook.
22126 * sched-deps.c (attempt_change): Use old address if it is cheaper than
22128 * target.def (new_address_profitable_p): New hook.
22129 * targhooks.c (default_new_address_profitable_p): New function.
22130 * targhooks.h (default_new_address_profitable_p): Declare.
22132 2020-05-12 Uroš Bizjak <ubizjak@gmail.com>
22135 * config/i386/mmx.md (copysignv2sf3): New expander.
22136 (xorsignv2sf3): Ditto.
22137 (signbitv2sf3): Ditto.
22139 2020-05-12 Uroš Bizjak <ubizjak@gmail.com>
22142 * config/i386/mmx.md (fmav2sf4): New insn pattern.
22144 (fnmav2sf4): Ditto.
22145 (fnmsv2sf4): Ditto.
22147 2020-05-12 H.J. Lu <hongjiu.lu@intel.com>
22149 * Makefile.in (CET_HOST_FLAGS): New.
22150 (COMPILER): Add $(CET_HOST_FLAGS).
22151 * configure.ac: Add GCC_CET_HOST_FLAGS(CET_HOST_FLAGS) and
22152 AC_SUBST(CET_HOST_FLAGS). Clear CET_HOST_FLAGS if jit isn't
22154 * aclocal.m4: Regenerated.
22155 * configure: Likewise.
22157 2020-05-12 Uroš Bizjak <ubizjak@gmail.com>
22160 * config/i386/mmx.md (<code>v2sf2): New insn pattern.
22161 (*mmx_<code>v2sf2): New insn_and_split pattern.
22162 (*mmx_nabsv2sf2): Ditto.
22163 (*mmx_andnotv2sf3): New insn pattern.
22164 (*mmx_<code>v2sf3): Ditto.
22165 * config/i386/i386.md (absneg_op): New code attribute.
22166 * config/i386/i386.c (ix86_build_const_vector): Handle V2SFmode.
22167 (ix86_build_signbit_mask): Ditto.
22169 2020-05-12 Richard Biener <rguenther@suse.de>
22171 * tree-ssa-live.c (remove_unused_locals): Remove dead debug
22174 2020-05-12 Jozef Lawrynowicz <jozef.l@mittosystems.com>
22176 * config/msp430/msp430-protos.h (msp430_output_aligned_decl_common):
22177 Update prototype to include "local" argument.
22178 * config/msp430/msp430.c (msp430_output_aligned_decl_common): Add
22179 "local" argument. Handle local common decls.
22180 * config/msp430/msp430.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Adjust
22181 msp430_output_aligned_decl_common call with 0 for "local" argument.
22182 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
22184 2020-05-12 Richard Biener <rguenther@suse.de>
22186 * cfghooks.c (split_edge): Preserve EDGE_DFS_BACK if set.
22188 2020-05-12 Martin Liska <mliska@suse.cz>
22192 * sanopt.c (sanitize_rewrite_addressable_params):
22193 Clear DECL_NOT_GIMPLE_REG_P for argument.
22195 2020-05-12 Richard Sandiford <richard.sandiford@arm.com>
22197 PR tree-optimization/94980
22198 * tree-vect-generic.c (expand_vector_comparison): Use
22199 vector_element_bits_tree to get the element size in bits,
22200 rather than using TYPE_SIZE.
22201 (expand_vector_condition, vector_element): Likewise.
22203 2020-05-12 Richard Sandiford <richard.sandiford@arm.com>
22205 PR tree-optimization/94980
22206 * tree-vect-generic.c (build_replicated_const): Take the number
22207 of bits as a parameter, instead of the type of the elements.
22208 (do_plus_minus): Update accordingly, using vector_element_bits
22209 to calculate the correct number of bits.
22210 (do_negate): Likewise.
22212 2020-05-12 Richard Sandiford <richard.sandiford@arm.com>
22214 PR tree-optimization/94980
22215 * tree.h (vector_element_bits, vector_element_bits_tree): Declare.
22216 * tree.c (vector_element_bits, vector_element_bits_tree): New.
22217 * match.pd: Use the new functions instead of determining the
22218 vector element size directly from TYPE_SIZE(_UNIT).
22219 * tree-vect-data-refs.c (vect_gather_scatter_fn_p): Likewise.
22220 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Likewise.
22221 * tree-vect-stmts.c (vect_is_simple_cond): Likewise.
22222 * tree-vect-generic.c (expand_vector_piecewise): Likewise.
22223 (expand_vector_conversion): Likewise.
22224 (expand_vector_addition): Likewise for a TYPE_SIZE_UNIT used as
22225 a divisor. Convert the dividend to bits to compensate.
22226 * tree-vect-loop.c (vectorizable_live_operation): Call
22227 vector_element_bits instead of open-coding it.
22229 2020-05-12 Jakub Jelinek <jakub@redhat.com>
22231 * omp-offload.h (omp_discover_implicit_declare_target): Declare.
22232 * omp-offload.c: Include context.h.
22233 (omp_declare_target_fn_p, omp_declare_target_var_p,
22234 omp_discover_declare_target_fn_r, omp_discover_declare_target_var_r,
22235 omp_discover_implicit_declare_target): New functions.
22236 * cgraphunit.c (analyze_functions): Call
22237 omp_discover_implicit_declare_target.
22239 2020-05-12 Richard Biener <rguenther@suse.de>
22241 * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Canonicalize
22242 literal constant &MEM[..] to a constant literal.
22244 2020-05-12 Richard Biener <rguenther@suse.de>
22246 PR tree-optimization/95045
22247 * dbgcnt.def (lim): Add debug-counter.
22248 * tree-ssa-loop-im.c: Include dbgcnt.h.
22249 (find_refs_for_sm): Use lim debug counter for store motion
22251 (do_store_motion): Rename form store_motion. Commit edge
22253 (store_motion_loop): ... here.
22254 (tree_ssa_lim): Adjust.
22256 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
22258 * config/rs6000/altivec.h (vec_clzm): Rename to vec_cntlzm.
22259 (vec_ctzm): Rename to vec_cnttzm.
22260 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
22261 Change fourth operand for vec_ternarylogic to require
22262 compatibility with unsigned SImode rather than unsigned QImode.
22263 * config/rs6000/rs6000-call.c (altivec_overloaded_builtins):
22264 Remove overloaded forms of vec_gnb that are no longer needed.
22265 * doc/extend.texi (PowerPC AltiVec Built-in Functions Available
22266 for a Future Architecture): Replace vec_clzm with vec_cntlzm;
22267 replace vec_ctzm with vec_cntlzm; remove four unwanted forms of
22268 vec_gnb; move vec_ternarylogic documentation into this section
22269 and replace const unsigned char with const unsigned int as its
22272 2020-05-11 Carl Love <cel@us.ibm.com>
22274 * config/rs6000/altivec.h (vec_genpcvm): New #define.
22275 * config/rs6000/rs6000-builtin.def (XXGENPCVM_V16QI): New built-in
22277 (XXGENPCVM_V8HI): Likewise.
22278 (XXGENPCVM_V4SI): Likewise.
22279 (XXGENPCVM_V2DI): Likewise.
22280 (XXGENPCVM): New overloaded built-in instantiation.
22281 * config/rs6000/rs6000-call.c (altivec_overloaded_builtins): Add
22282 entries for FUTURE_BUILTIN_VEC_XXGENPCVM.
22283 (altivec_expand_builtin): Add special handling for
22284 FUTURE_BUILTIN_VEC_XXGENPCVM.
22285 (builtin_function_type): Add handling for
22286 FUTURE_BUILTIN_XXGENPCVM_{V16QI,V8HI,V4SI,V2DI}.
22287 * config/rs6000/vsx.md (VSX_EXTRACT_I4): New mode iterator.
22288 (UNSPEC_XXGENPCV): New constant.
22289 (xxgenpcvm_<mode>_internal): New insn.
22290 (xxgenpcvm_<mode>): New expansion.
22291 * doc/extend.texi: Add documentation for vec_genpcvm built-ins.
22293 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
22295 * config/rs6000/altivec.h (vec_strir): New #define.
22296 (vec_stril): Likewise.
22297 (vec_strir_p): Likewise.
22298 (vec_stril_p): Likewise.
22299 * config/rs6000/altivec.md (UNSPEC_VSTRIR): New constant.
22300 (UNSPEC_VSTRIL): Likewise.
22301 (vstrir_<mode>): New expansion.
22302 (vstrir_code_<mode>): New insn.
22303 (vstrir_p_<mode>): New expansion.
22304 (vstrir_p_code_<mode>): New insn.
22305 (vstril_<mode>): New expansion.
22306 (vstril_code_<mode>): New insn.
22307 (vstril_p_<mode>): New expansion.
22308 (vstril_p_code_<mode>): New insn.
22309 * config/rs6000/rs6000-builtin.def (__builtin_altivec_vstribr):
22310 New built-in function.
22311 (__builtin_altivec_vstrihr): Likewise.
22312 (__builtin_altivec_vstribl): Likewise.
22313 (__builtin_altivec_vstrihl): Likewise.
22314 (__builtin_altivec_vstribr_p): Likewise.
22315 (__builtin_altivec_vstrihr_p): Likewise.
22316 (__builtin_altivec_vstribl_p): Likewise.
22317 (__builtin_altivec_vstrihl_p): Likewise.
22318 (__builtin_vec_strir): New overloaded built-in function.
22319 (__builtin_vec_stril): Likewise.
22320 (__builtin_vec_strir_p): Likewise.
22321 (__builtin_vec_stril_p): Likewise.
22322 * config/rs6000/rs6000-call.c (altivec_overloaded_builtins):
22323 Define overloaded forms of __builtin_vec_strir,
22324 __builtin_vec_stril, __builtin_vec_strir_p, and
22325 __builtin_vec_stril_p.
22326 * doc/extend.texi (PowerPC AltiVec Built-in Functions Available
22327 for a Future Architecture): Add description of vec_stril,
22328 vec_stril_p, vec_strir, and vec_strir_p built-in functions.
22330 2020-05-11 Kelvin Nilsen <wschmidt@linux.ibm.com>
22332 * config/rs6000/altivec.h (vec_ternarylogic): New #define.
22333 * config/rs6000/altivec.md (UNSPEC_XXEVAL): New constant.
22334 (xxeval): New insn.
22335 * config/rs6000/predicates.md (u8bit_cint_operand): New predicate.
22336 * config/rs6000/rs6000-builtin.def: Add handling of new macro
22338 (BU_FUTURE_V_4): New macro. Use it.
22339 (BU_FUTURE_OVERLOAD_4): Likewise.
22340 * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin): Add
22341 handling for quaternary built-in functions.
22342 (altivec_resolve_overloaded_builtin): Add special-case handling
22343 for __builtin_vec_xxeval.
22344 * config/rs6000/rs6000-call.c: Add handling of new macro
22345 RS6000_BUILTIN_4 in initialization of rs6000_builtin_info,
22346 bdesc0_arg, bdesc1_arg, bdesc2_arg, bdesc_3arg,
22347 bdesc_altivec_preds, bdesc_abs, and bdesc_htm arrays.
22348 (altivec_overloaded_builtins): Add definitions for
22349 FUTURE_BUILTIN_VEC_XXEVAL.
22350 (bdesc_4arg): New array.
22351 (htm_expand_builtin): Add handling for quaternary built-in
22353 (rs6000_expand_quaternop_builtin): New function.
22354 (rs6000_expand_builtin): Add handling for quaternary built-in
22356 (rs6000_init_builtins): Initialize builtin_mode_to_type entries
22357 for unsigned QImode and unsigned HImode.
22358 (builtin_quaternary_function_type): New function.
22359 (rs6000_common_init_builtins): Add handling of quaternary
22361 * config/rs6000/rs6000.h (RS6000_BTC_QUATERNARY): New defined
22363 (RS6000_BTC_PREDICATE): Change value of constant.
22364 (RS6000_BTC_ABS): Likewise.
22365 (rs6000_builtins): Add support for new macro RS6000_BUILTIN_4.
22366 * doc/extend.texi (PowerPC AltiVec Built-In Functions Available
22367 for a Future Architecture): Add description of vec_ternarylogic
22370 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
22372 * config/rs6000/rs6000-builtin.def (__builtin_pdepd): New built-in
22374 (__builtin_pextd): Likewise.
22375 * config/rs6000/rs6000.md (UNSPEC_PDEPD): New constant.
22376 (UNSPEC_PEXTD): Likewise.
22379 * doc/extend.texi (Basic PowerPC Built-in Functions Available for
22380 a Future Architecture): Add descriptions of __builtin_pdepd and
22381 __builtin_pextd functions.
22383 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
22385 * config/rs6000/altivec.h (vec_clrl): New #define.
22386 (vec_clrr): Likewise.
22387 * config/rs6000/altivec.md (UNSPEC_VCLRLB): New constant.
22388 (UNSPEC_VCLRRB): Likewise.
22389 (vclrlb): New insn.
22390 (vclrrb): Likewise.
22391 * config/rs6000/rs6000-builtin.def (__builtin_altivec_vclrlb): New
22393 (__builtin_altivec_vclrrb): Likewise.
22394 (__builtin_vec_clrl): New overloaded built-in function.
22395 (__builtin_vec_clrr): Likewise.
22396 * config/rs6000/rs6000-call.c (altivec_overloaded_builtins):
22397 Define overloaded forms of __builtin_vec_clrl and
22398 __builtin_vec_clrr.
22399 * doc/extend.texi (PowerPC AltiVec Built-in Functions Available
22400 for a Future Architecture): Add descriptions of vec_clrl and
22403 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
22405 * config/rs6000/rs6000-builtin.def (__builtin_cntlzdm): New
22406 built-in function definition.
22407 (__builtin_cnttzdm): Likewise.
22408 * config/rs6000/rs6000.md (UNSPEC_CNTLZDM): New constant.
22409 (UNSPEC_CNTTZDM): Likewise.
22410 (cntlzdm): New insn.
22411 (cnttzdm): Likewise.
22412 * doc/extend.texi (Basic PowerPC Built-in Functions available for
22413 a Future Architecture): Add descriptions of __builtin_cntlzdm and
22414 __builtin_cnttzdm functions.
22416 2020-05-11 Uroš Bizjak <ubizjak@gmail.com>
22419 * config/i386/mmx.md (sqrtv2sf2): New insn pattern.
22421 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
22423 * config/rs6000/altivec.h (vec_cfuge): New #define.
22424 * config/rs6000/altivec.md (UNSPEC_VCFUGED): New constant.
22425 (vcfuged): New insn.
22426 * config/rs6000/rs6000-builtin.def (__builtin_altivec_vcfuged):
22427 New built-in function.
22428 * config/rs6000/rs6000-call.c (builtin_function_type): Add
22429 handling for FUTURE_BUILTIN_VCFUGED case.
22430 * doc/extend.texi (PowerPC AltiVec Built-in Functions Available
22431 for a Future Architecture): Add description of vec_cfuge built-in
22434 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
22436 * config/rs6000/rs6000-builtin.def (BU_FUTURE_MISC_0): New
22438 (BU_FUTURE_MISC_1): Likewise.
22439 (BU_FUTURE_MISC_2): Likewise.
22440 (BU_FUTURE_MISC_3): Likewise.
22441 (__builtin_cfuged): New built-in function definition.
22442 * config/rs6000/rs6000.md (UNSPEC_CFUGED): New constant.
22443 (cfuged): New insn.
22444 * doc/extend.texi (Basic PowerPC Built-in Functions Available for
22445 a Future Architecture): New subsubsection.
22447 2020-05-11 Richard Biener <rguenther@suse.de>
22449 PR tree-optimization/95049
22450 * tree-ssa-sccvn.c (set_ssa_val_to): Reject lattice transition
22451 between different constants.
22453 2020-05-11 Richard Sandiford <richard.sandiford@arm.com>
22455 * tree-pretty-print.c (dump_generic_node): Handle BOOLEAN_TYPEs.
22457 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
22458 Bill Schmidt <wschmidt@linux.ibm.com>
22460 * config/rs6000/altivec.h (vec_gnb): New #define.
22461 * config/rs6000/altivec.md (UNSPEC_VGNB): New constant.
22463 * config/rs6000/rs6000-builtin.def (BU_FUTURE_OVERLOAD_1): New
22465 (BU_FUTURE_OVERLOAD_2): Likewise.
22466 (BU_FUTURE_OVERLOAD_3): Likewise.
22467 (__builtin_altivec_gnb): New built-in function.
22468 (__buiiltin_vec_gnb): New overloaded built-in function.
22469 * config/rs6000/rs6000-call.c (altivec_overloaded_builtins):
22470 Define overloaded forms of __builtin_vec_gnb.
22471 (rs6000_expand_binop_builtin): Add error checking for 2nd argument
22472 of __builtin_vec_gnb.
22473 (builtin_function_type): Mark return value and arguments unsigned
22474 for FUTURE_BUILTIN_VGNB.
22475 * doc/extend.texi (PowerPC AltiVec Built-in Functions Available
22476 for a Future Architecture): Add description of vec_gnb built-in
22479 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
22480 Bill Schmidt <wschmidt@linux.ibm.com>
22482 * config/rs6000/altivec.h (vec_pdep): New macro implementing new
22484 (vec_pext): Likewise.
22485 * config/rs6000/altivec.md (UNSPEC_VPDEPD): New constant.
22486 (UNSPEC_VPEXTD): Likewise.
22487 (vpdepd): New insn.
22488 (vpextd): Likewise.
22489 * config/rs6000/rs6000-builtin.def (__builtin_altivec_vpdepd): New
22491 (__builtin_altivec_vpextd): Likewise.
22492 * config/rs6000/rs6000-call.c (builtin_function_type): Add
22493 handling for FUTURE_BUILTIN_VPDEPD and FUTURE_BUILTIN_VPEXTD
22495 * doc/extend.texi (PowerPC Altivec Built-in Functions Available
22496 for a Future Architecture): Add description of vec_pdep and
22497 vec_pext built-in functions.
22499 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
22500 Bill Schmidt <wschmidt@linux.ibm.com>
22502 * config/rs6000/altivec.h (vec_clzm): New macro.
22503 (vec_ctzm): Likewise.
22504 * config/rs6000/altivec.md (UNSPEC_VCLZDM): New constant.
22505 (UNSPEC_VCTZDM): Likewise.
22506 (vclzdm): New insn.
22507 (vctzdm): Likewise.
22508 * config/rs6000/rs6000-builtin.def (BU_FUTURE_V_0): New macro.
22509 (BU_FUTURE_V_1): Likewise.
22510 (BU_FUTURE_V_2): Likewise.
22511 (BU_FUTURE_V_3): Likewise.
22512 (__builtin_altivec_vclzdm): New builtin definition.
22513 (__builtin_altivec_vctzdm): Likewise.
22514 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Cause
22515 _ARCH_PWR_FUTURE macro to be defined if OPTION_MASK_FUTURE flag is
22517 * config/rs6000/rs6000-call.c (builtin_function_type): Set return
22518 value and parameter types to be unsigned for VCLZDM and VCTZDM.
22519 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
22520 support for TARGET_FUTURE flag.
22521 * config/rs6000/rs6000.h (RS6000_BTM_FUTURE): New macro constant.
22522 * doc/extend.texi (PowerPC Altivec Built-in Functions Available
22523 for a Future Architecture): New subsubsection.
22525 2020-05-11 Richard Biener <rguenther@suse.de>
22527 PR tree-optimization/94988
22528 PR tree-optimization/95025
22529 * tree-ssa-loop-im.c (seq_entry): Make a struct, add from.
22530 (sm_seq_push_down): Take extra parameter denoting where we
22532 (execute_sm_exit): Re-issue sm_other stores in the correct
22534 (sm_seq_valid_bb): When always executed, allow sm_other to
22535 prevail inbetween sm_ord and record their stored value.
22536 (hoist_memory_references): Adjust refs_not_supported propagation
22537 and prune sm_other from the end of the ordered sequences.
22539 2020-05-11 Felix Yang <felix.yang@huawei.com>
22542 * config/aarch64/aarch64.md (mov<mode>):
22543 Bitcasts to the equivalent integer mode using gen_lowpart
22544 instead of doing FAIL for scalar floating point move.
22546 2020-05-11 Alex Coplan <alex.coplan@arm.com>
22548 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Add case
22549 to correctly calculate cost for new pattern (*csinv3_uxtw_insn3).
22550 * config/aarch64/aarch64.md (*csinv3_utxw_insn1): New.
22551 (*csinv3_uxtw_insn2): New.
22552 (*csinv3_uxtw_insn3): New.
22553 * config/aarch64/iterators.md (neg_not_cs): New.
22555 2020-05-11 Uroš Bizjak <ubizjak@gmail.com>
22558 * config/i386/mmx.md (mmx_addv2sf3): Use "v" constraint
22559 instead of "Yv" for AVX alternatives. Add "prefix" attribute.
22560 (*mmx_addv2sf3): Ditto.
22561 (*mmx_subv2sf3): Ditto.
22562 (*mmx_mulv2sf3): Ditto.
22563 (*mmx_<code>v2sf3): Ditto.
22564 (mmx_ieee_<ieee_maxmin>v2sf3): Ditto.
22566 2020-05-11 Uroš Bizjak <ubizjak@gmail.com>
22569 * config/i386/i386.c (ix86_vector_mode_supported_p):
22570 Vectorize 3dNOW! vector modes for TARGET_MMX_WITH_SSE.
22571 * config/i386/mmx.md (*mov<mode>_internal): Do not set
22572 mode of alternative 13 to V2SF for TARGET_MMX_WITH_SSE.
22574 (mmx_addv2sf3): Change operand predicates from
22575 nonimmediate_operand to register_mmxmem_operand.
22576 (addv2sf3): New expander.
22577 (*mmx_addv2sf3): Add SSE/AVX alternatives. Change operand
22578 predicates from nonimmediate_operand to register_mmxmem_operand.
22579 Enable instruction pattern for TARGET_MMX_WITH_SSE.
22581 (mmx_subv2sf3): Change operand predicate from
22582 nonimmediate_operand to register_mmxmem_operand.
22583 (mmx_subrv2sf3): Ditto.
22584 (subv2sf3): New expander.
22585 (*mmx_subv2sf3): Add SSE/AVX alternatives. Change operand
22586 predicates from nonimmediate_operand to register_mmxmem_operand.
22587 Enable instruction pattern for TARGET_MMX_WITH_SSE.
22589 (mmx_mulv2sf3): Change operand predicates from
22590 nonimmediate_operand to register_mmxmem_operand.
22591 (mulv2sf3): New expander.
22592 (*mmx_mulv2sf3): Add SSE/AVX alternatives. Change operand
22593 predicates from nonimmediate_operand to register_mmxmem_operand.
22594 Enable instruction pattern for TARGET_MMX_WITH_SSE.
22596 (mmx_<code>v2sf3): Change operand predicates from
22597 nonimmediate_operand to register_mmxmem_operand.
22598 (<code>v2sf3): New expander.
22599 (*mmx_<code>v2sf3): Add SSE/AVX alternatives. Change operand
22600 predicates from nonimmediate_operand to register_mmxmem_operand.
22601 Enable instruction pattern for TARGET_MMX_WITH_SSE.
22602 (mmx_ieee_<ieee_maxmin>v2sf3): Ditto.
22604 2020-05-11 Martin Liska <mliska@suse.cz>
22607 * common.opt: Fix typo in option description.
22609 2020-05-11 Martin Liska <mliska@suse.cz>
22611 PR gcov-profile/94928
22612 * gcov-io.h: Add caveat about coverage format parsing and
22613 possible outdated documentation.
22615 2020-05-11 Xiong Hu Luo <luoxhu@linux.ibm.com>
22617 PR tree-optimization/83403
22618 * tree-affine.c (expr_to_aff_combination): Replace SSA_NAME with
22619 determine_value_range, Add fold conversion of MULT_EXPR, fix the
22620 previous PLUS_EXPR.
22622 2020-05-10 Gerald Pfeifer <gerald@pfeifer.com>
22624 * config/i386/i386-c.c (ix86_target_macros): Define _ILP32 and
22625 __ILP32__ for 32-bit targets.
22627 2020-05-09 Eric Botcazou <ebotcazou@adacore.com>
22629 * tree.h (expr_align): Delete.
22630 * tree.c (expr_align): Likewise.
22632 2020-05-09 Hans-Peter Nilsson <hp@axis.com>
22634 * resource.c (init_resource_info): Filter-out TARGET_FLAGS_REGNUM
22635 from end_of_function_needs.
22637 * config.gcc: Remove support for crisv32-*-* and cris-*-linux*.
22638 * config/cris/t-linux, config/cris/linux.h, config/cris/linux.opt:
22640 * config/cris/t-elfmulti: Remove crisv32 multilib.
22641 * config/cris: Remove shared-library and CRIS v32 support.
22643 Move trivially from cc0 to reg:CC model, removing most optimizations.
22644 * config/cris/cris.md: Remove all side-effect patterns and their
22645 splitters. Remove most peepholes. Add clobbers of CRIS_CC0_REGNUM
22646 to all but post-reload control-flow and movem insns. Remove
22647 constraints on all modified expanders. Remove obsoleted cc0-related
22649 (attr "cc"): Remove alternative "rev".
22650 (mode_iterator BWDD, DI_, SI_): New.
22651 (mode_attr sCC_destc, cmp_op1c, cmp_op2c): New.
22652 ("tst<mode>"): Remove; fold as "M" alternative into compare insn.
22653 ("mstep_shift", "mstep_mul"): Remove patterns.
22654 ("s<rcond>", "s<ocond>", "s<ncond>"): Anonymize.
22655 * config/cris/cris.c: Change all non-condition-code,
22656 non-control-flow emitted insns to add a parallel with clobber of
22657 CRIS_CC0_REGNUM, mostly by changing from gen_rtx_SET with
22658 emit_insn to use of emit_move_insn, gen_add2_insn or
22659 cris_emit_insn, as convenient.
22660 (cris_reg_overlap_mentioned_p)
22661 (cris_normal_notice_update_cc, cris_notice_update_cc): Remove.
22662 (cris_movem_load_rest_p): Don't assume all elements in a
22664 (cris_store_multiple_op_p): Ditto.
22665 (cris_emit_insn): New function.
22666 * cris/cris-protos.h (cris_emit_insn): Declare.
22669 * config/cris/cris.md (zcond): New code_iterator.
22670 ("*cbranch<mode>4_btstq<CC>"): New insn_and_split.
22672 * config/cris/cris.c (TARGET_FLAGS_REGNUM): Define.
22674 * config/cris/cris.h (REVERSIBLE_CC_MODE): Define to true.
22676 * config/cris/cris.md ("movsi"): For memory destination
22677 post-reload, generate clobberless variant. Similarly for a
22678 zero-source post-reload.
22679 ("*mov_tomem<mode>_split"): New split.
22680 ("*mov_tomem<mode>"): New insn.
22681 ("enabled", mov_tomem_enabled): Define and use to exclude "x" ->
22682 "Q>m" for less-than-SImode.
22683 ("*mov_fromzero<mode>_split"): New split.
22684 ("*mov_fromzero<mode>"): New insn.
22686 Prepare for cmpelim pass to eliminate redundant compare insns.
22687 * config/cris/cris-modes.def: New file.
22688 * config/cris/cris-protos.h (cris_select_cc_mode): Declare.
22689 (cris_notice_update_cc): Remove left-over declaration.
22690 * config/cris/cris.c (TARGET_CC_MODES_COMPATIBLE): Define.
22691 (cris_select_cc_mode, cris_cc_modes_compatible): New functions.
22692 * config/cris/cris.h (SELECT_CC_MODE): Define.
22693 * config/cris/cris.md (NZSET, NZUSE, NZVCSET, NZVCUSE): New
22695 (cond): New code_iterator.
22696 (nzcond): Replacement for incorrect ncond. All callers changed.
22697 (nzvccond): Replacement for ocond. All callers changed.
22698 (rnzcond): Replacement for rcond. All callers changed.
22699 (xCC): New code_attr.
22700 (cmp_op1c, cmp_op0c): Renumber from cmp_op1c and cmp_op2c. All
22702 ("*cmpdi<NZVCSET:mode>"): Rename from "*cmpdi". Replace
22703 CCmode with iteration over NZVCSET.
22704 ("*cmp_ext<BW:mode><NZVCSET:mode>"): Similarly; rename from
22706 ("*cmpsi<NZVCSET:mode>"): Similarly, from "*cmpsi".
22707 ("*cmp<BW:mode><NZVCSET:mode>"): Similarly from "*cmp<mode>".
22708 ("*btst<mode>"): Similarly, from "*btst".
22709 ("*cbranch<mode><code>4"): Rename from "*cbranch<mode>4",
22710 iterating over cond instead of matching the comparison with
22711 ordered_comparison_operator.
22712 ("*cbranch<mode>4_btstq<CC>"): Correct label operand number.
22713 ("b<zcond:code><mode>"): Rename from "b<ncond:code>", iterating
22715 ("b<nzvccond:code><mode>"): Similarly from "b<ocond:code>", over
22716 NZVCUSE. Remove FIXME.
22717 ("*b<nzcond:code>_reversed<mode>"): Similarly from
22718 "*b<ncond:code>_reversed", over NZUSE.
22719 ("*b<nzvccond:code>_reversed<mode>"): Similarly from
22720 "*b<ocond:code>_reversed", over NZVCUSE. Remove FIXME.
22721 ("b<rnzcond:code><mode>"): Similarly from "b<rcond:code>",
22722 over NZUSE. Reinstate "b<oCC>" vs. "b<CC>" mnemonic choice,
22723 depending on CC_NZmode vs. CCmode. Remove FIXME.
22724 ("*b<rnzcond:code>_reversed<mode>"): Similarly from
22725 "*b<rcond:code>_reversed", over NZUSE.
22726 ("*cstore<mode><code>4"): Rename from "*cstore<mode>4",
22727 iterating over cond instead of matching the comparison with
22728 ordered_comparison_operator.
22729 ("*s<nzcond:code><mode>"): Rename from "*s<ncond:code>",
22730 iterating over NZUSE.
22731 ("*s<rnzcond:code><mode>"): Similar from "*s<rcond:code>", over
22732 NZUSE. Reinstate "b<oCC>" vs. "b<CC>" mnemonic choice,
22733 depending on CC_NZmode vs. CCmode.
22734 ("*s<nzvccond:code><mode>"): Simlar from "*s<ocond:code>", over
22735 NZVCUSE. Remove FIXME.
22736 ("cc"): Comment on new use.
22737 ("cc_enabled"): New attribute.
22738 ("enabled"): Make default fall back to cc_enabled.
22739 ("setnz", "ccnz", "setnzvc", "ccnzvc", "setcc", "cccc"): New
22740 default_subst_attrs.
22741 ("setnz_subst", "setnzvc_subst", "setcc_subst"): New default_subst.
22742 ("*movsi_internal<setcc><setnz><setnzvc>"): Rename from
22743 "*movsi_internal". Correct contents of, and rename attribute
22744 "cc" to "cc<cccc><ccnz><ccnzvc>".
22745 ("anz", "anzvc", "acc"): New define_subst_attrs.
22746 ("<acc><anz><anzvc>movhi<setcc><setnz><setnzvc>"): Rename from
22747 "movhi". Rename "cc" attribute to "cc<cccc><ccnz><ccnzvc>".
22748 ("<acc><anz><anzvc>movqi<setcc><setnz><setnzvc>"): Similar from
22749 "movqi". Correct contents of, and rename "cc" attribute to
22750 "cc<cccc><ccnz><ccnzvc>".
22751 ("*b<zcond:code><mode>"): Rename from "b<zcond:code><mode>".
22752 ("*b<nzvccond:code><mode>"): Rename from "b<nzvccond:code><mode>".
22753 ("*b<rnzcond:code><mode>"): Rename from "*b<rnzcond:code><mode>".
22754 ("<acc><anz><anzvc>extend<mode>si2<setcc><setnz><setnzvc>"):
22755 Rename from "extend<mode>si2".
22756 ("<acc><anz><anzvc>zero_extend<mode>si2<setcc><setnz><setnzvc>"):
22757 Similar, from "zero_extend<mode>si2".
22758 ("*adddi3<setnz>"): Rename from "*adddi3".
22759 ("*subdi3<setnz>"): Similarly from "*subdi3".
22760 ("*addsi3<setnz>"): Similarly from "*addsi3".
22761 ("*subsi3<setnz>"): Similarly from "*subsi3".
22762 ("*addhi3<setnz>"): Similarly from "*addhi3" and decorate the
22763 "cc" attribute to "cc<ccnz>".
22764 ("*addqi3<setnz>"): Similarly from "*addqi3".
22765 ("*sub<mode>3<setnz>"): Similarly from "*sub<mode>3".
22766 ("*expanded_andsi<setcc><setnz><setnzvc>"): Rename from
22768 ("*iorsi3<setcc><setnz><setnzvc>"): Similar from "*iorsi3".
22769 Decorate "cc" attribute to make "cc<cccc><ccnz><ccnzvc>".
22770 ("*iorhi3<setcc><setnz><setnzvc>"): Similar from "*iorhi3".
22771 ("*iorqi3<setcc><setnz><setnzvc>"): Similar from "*iorqi3".
22772 ("*expanded_andhi<setcc><setnz><setnzvc>"): Similar from
22773 "*expanded_andhi". Add quick cc-setting alternative for 0..31.
22774 ("*andqi3<setcc><setnz><setnzvc>"): Similar from "*andqi3".
22775 ("<acc><anz><anzvc>xorsi3<setcc><setnz><setnzvc>"): Rename
22777 ("<acc><anz><anzvc>one_cmplsi2<setcc><setnz><setnzvc>"): Rename
22778 from "one_cmplsi2".
22779 ("<acc><anz><anzvc><shlr>si3<setcc><setnz><setnzvc>"): Rename
22781 ("<acc><anz><anzvc>clzsi2<setcc><setnz><setnzvc>"): Rename
22783 ("<acc><anz><anzvc>bswapsi2<setcc><setnz><setnzvc>"): Rename
22785 ("*uminsi3<setcc><setnz><setnzvc>"): Rename from "*uminsi3".
22787 * config/cris/cris-modes.def (CC_ZnN): New CC_MODE.
22788 * config/cris/cris.c (cris_rtx_costs): Handle pre-split bit-test
22789 * config/cris/cris.md (ZnNNZSET, ZnNNZUSE): New mode_iterators.
22790 (znnCC, rznnCC): New code_attrs.
22791 ("*btst<mode>"): Iterator over ZnNNZSET instead of NZVCSET. Remove
22792 obseolete comment. Add belt-and-suspenders mode-test to condition.
22793 Add fixme regarding remaining matched-but-not-generated case.
22794 ("*cbranch<mode>4_btstrq1_<CC>"): New insn_and_split.
22795 ("*cbranch<mode>4_btstqb0_<CC>"): Rename from
22796 "*cbranch<mode>4_btstq<CC>". Split to CC_NZ instead of CC.
22797 ("*b<zcond:code><mode>"): Iterate over ZnNNZUSE instead of NZUSE.
22798 Handle output of CC_ZnNmode.
22799 ("*b<nzcond:code>_reversed<mode>"): Ditto.
22801 * config/cris/cris.c (cris_select_cc_mode): Return CC_NZmode for
22802 NEG too. Correct comment.
22803 * config/cris/cris.md ("<anz>neg<mode>2<setnz>"): Rename from
22806 2020-05-08 Vladimir Makarov <vmakarov@redhat.com>
22808 * ira-color.c (update_costs_from_allocno): Remove
22809 conflict_cost_update_p argument. Propagate costs only along
22810 threads. Always do conflict cost update. Add printing debugging
22812 (update_costs_from_copies): Add printing debugging info.
22813 (restore_costs_from_copies): Ditto.
22814 (assign_hard_reg): Improve debug info.
22815 (push_only_colorable): Ditto. Call update_costs_from_prefs.
22816 (color_allocnos): Remove update_costs_from_prefs.
22818 2020-05-08 Richard Biener <rguenther@suse.de>
22820 * tree-vectorizer.h (vec_info::slp_loads): New.
22821 (vect_optimize_slp): Declare.
22822 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Do
22823 nothing when there are no loads.
22824 (vect_gather_slp_loads): Gather loads into a vector.
22825 (vect_supported_load_permutation_p): Remove.
22826 (vect_analyze_slp_instance): Do not verify permutation
22828 (vect_analyze_slp): Optimize permutations of reductions
22829 after all SLP instances have been gathered and gather
22831 (vect_optimize_slp): New function split out from
22832 vect_supported_load_permutation_p. Elide some permutations.
22833 (vect_slp_analyze_bb_1): Call vect_optimize_slp.
22834 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
22835 * tree-vect-stmts.c (vectorizable_load): Check whether
22836 the load can be permuted. When generating code assert we can.
22838 2020-05-08 Richard Biener <rguenther@suse.de>
22840 * tree-ssa-sccvn.c (rpo_avail): Change type to
22841 eliminate_dom_walker *.
22842 (eliminate_with_rpo_vn): Adjust rpo_avail to make vn_valueize
22843 use the DOM walker availability.
22844 (vn_reference_fold_indirect): Use get_addr_base_and_unit_offset_1
22845 with vn_valueize as valueization callback.
22846 (vn_reference_maybe_forwprop_address): Likewise.
22847 * tree-dfa.c (get_addr_base_and_unit_offset_1): Also valueize
22848 array_ref_low_bound.
22850 2020-05-08 Jakub Jelinek <jakub@redhat.com>
22852 PR tree-optimization/94786
22853 * match.pd (A ^ ((A ^ B) & -(C cmp D)) -> (C cmp D) ? B : A): New
22857 * config/i386/i386.md (peephole2 after *add<mode>3_cc_overflow_1): New
22860 PR middle-end/94724
22861 * tree.c (get_narrower): Reuse the op temporary instead of
22864 PR tree-optimization/94783
22865 * match.pd ((X + (X >> (prec - 1))) ^ (X >> (prec - 1)) to abs (X)):
22866 New simplification.
22868 PR tree-optimization/94956
22869 * match.pd (FFS): Optimize __builtin_ffs* of non-zero argument into
22870 __builtin_ctz* + 1 if direct IFN_CTZ is supported.
22872 PR tree-optimization/94913
22873 * match.pd (A - B + -1 >= A to B >= A): New simplification.
22874 (A - B > A to A < B): Don't test TYPE_OVERFLOW_WRAPS which is always
22875 true for TYPE_UNSIGNED integral types.
22878 PR rtl-optimization/94516
22879 * rtl.h (remove_reg_equal_equiv_notes): Add a bool argument defaulted
22881 * rtlanal.c (remove_reg_equal_equiv_notes): Add no_rescan argument.
22882 Call df_notes_rescan if that argument is not true and returning true.
22883 * combine.c (adjust_for_new_dest): Pass true as second argument to
22884 remove_reg_equal_equiv_notes.
22885 * postreload.c (reload_combine_recognize_pattern): Don't call
22888 2020-05-07 Segher Boessenkool <segher@kernel.crashing.org>
22890 * config/rs6000/rs6000.md (*setnbc_<un>signed_<GPR:mode>): New
22892 (*setnbcr_<un>signed_<GPR:mode>): New define_insn.
22893 (*neg_eq_<mode>): Avoid for TARGET_FUTURE; add missing && 1.
22894 (*neg_ne_<mode>): Likewise.
22896 2020-05-07 Segher Boessenkool <segher@kernel.crashing.org>
22898 * config/rs6000/rs6000.md (setbc_<un>signed_<GPR:mode>): New
22900 (*setbcr_<un>signed_<GPR:mode>): Likewise.
22901 (cstore<mode>4): Use setbc[r] if available.
22902 (<code><GPR:mode><GPR2:mode>2_isel): Avoid for TARGET_FUTURE.
22903 (eq<mode>3): Use setbc for TARGET_FUTURE.
22904 (*eq<mode>3): Avoid for TARGET_FUTURE.
22905 (ne<mode>3): Replace :P with :GPR; use setbc for TARGET_FUTURE;
22906 else for non-Pmode, use gen_eq and gen_xor.
22907 (*ne<mode>3): Avoid for TARGET_FUTURE.
22908 (*eqsi3_ext<mode>): Avoid for TARGET_FUTURE; fix missing && 1.
22910 2020-05-07 Jeff Law <law@redhat.com>
22912 * config/h8300/h8300.md: Move expanders and patterns into
22913 files based on functionality.
22914 * config/h8300/addsub.md: New file.
22915 * config/h8300/bitfield.md: New file
22916 * config/h8300/combiner.md: New file
22917 * config/h8300/divmod.md: New file
22918 * config/h8300/extensions.md: New file
22919 * config/h8300/jumpcall.md: New file
22920 * config/h8300/logical.md: New file
22921 * config/h8300/movepush.md: New file
22922 * config/h8300/multiply.md: New file
22923 * config/h8300/other.md: New file
22924 * config/h8300/proepi.md: New file
22925 * config/h8300/shiftrotate.md: New file
22926 * config/h8300/testcompare.md: New file
22928 * config/h8300/h8300.md (adds/subs splitters): Merge into single
22930 (negation expanders and patterns): Simplify and combine using
22932 (one_cmpl expanders and patterns): Likewise.
22933 (tablejump, indirect_jump patterns ): Likewise.
22934 (shift and rotate expanders and patterns): Likewise.
22935 (absolute value expander and pattern): Drop expander, rename pattern
22937 (peephole2 patterns): Move into...
22938 * config/h8300/peepholes.md: New file.
22940 * config/h8300/constraints.md (L and N): Simplify now that we're not
22941 longer supporting the original H8/300 chip.
22942 * config/h8300/elf.h (LINK_SPEC): Likewise. Default to H8/300H.
22943 * config/h8300/h8300.c (shift_alg_qi): Drop H8/300 support.
22944 (shift_alg_hi, shift_alg_si): Similarly.
22945 (h8300_option_overrides): Similarly. Default to H8/300H. If
22946 compiling for H8/S, then turn off H8/300H. Do not update the
22947 shift_alg tables for H8/300 port.
22948 (h8300_emit_stack_adjustment): Remove support for H8/300. Simplify
22950 (push, split_adds_subs, h8300_rtx_costs): Likewise.
22951 (h8300_print_operand, compute_mov_length): Likewise.
22952 (output_plussi, compute_plussi_length): Likewise.
22953 (compute_plussi_cc, output_logical_op): Likewise.
22954 (compute_logical_op_length, compute_logical_op_cc): Likewise.
22955 (get_shift_alg, h8300_shift_needs_scratch): Likewise.
22956 (output_a_shift, compute_a_shift_length): Likewise.
22957 (output_a_rotate, compute_a_rotate_length): Likewise.
22958 (output_simode_bld, h8300_hard_regno_mode_ok): Likewise.
22959 (h8300_modes_tieable_p, h8300_return_in_memory): Likewise.
22960 * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Likewise.
22961 (attr_cpu, TARGET_H8300): Remove.
22962 (TARGET_DEFAULT): Update.
22963 (UNITS_PER_WORD, PARM_BOUNDARY): Simplify where possible.
22964 (BIGGEST_ALIGNMENT, STACK_BOUNDARY): Likewise.
22965 (CONSTANT_ADDRESS_P, MOVE_MAX, Pmode): Likewise.
22966 (SIZE_TYPE, POINTER_SIZE, ASM_WORD_OP): Likewise.
22967 * config/h8300/h8300.md: Simplify patterns throughout.
22968 * config/h8300/t-h8300: Update multilib configuration.
22970 * config/h8300/h8300.h (LINK_SPEC): Remove.
22971 (USER_LABEL_PREFIX): Likewise.
22973 * config/h8300/h8300.c (h8300_asm_named_section): Remove.
22974 (h8300_option_override): Remove remnants of COFF support.
22976 2020-05-07 Alan Modra <amodra@gmail.com>
22978 * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Replace
22979 set_rtx_cost with set_src_cost.
22980 * tree-switch-conversion.c (bit_test_cluster::emit): Likewise.
22982 2020-05-07 Kewen Lin <linkw@gcc.gnu.org>
22984 * tree-vect-stmts.c (vectorizable_load): Check alignment to avoid
22985 redundant half vector handlings for no peeling gaps.
22987 2020-05-07 Giuliano Belinassi <giuliano.belinassi@usp.br>
22989 * tree-ssa-operands.c (operands_scanner): New class.
22990 (operands_bitmap_obstack): Remove.
22991 (n_initialized): Remove.
22992 (build_uses): Move to operands_scanner class.
22993 (build_vuse): Same as above.
22994 (build_vdef): Same as above.
22995 (verify_ssa_operands): Same as above.
22996 (finalize_ssa_uses): Same as above.
22997 (cleanup_build_arrays): Same as above.
22998 (finalize_ssa_stmt_operands): Same as above.
22999 (start_ssa_stmt_operands): Same as above.
23000 (append_use): Same as above.
23001 (append_vdef): Same as above.
23002 (add_virtual_operand): Same as above.
23003 (add_stmt_operand): Same as above.
23004 (get_mem_ref_operands): Same as above.
23005 (get_tmr_operands): Same as above.
23006 (maybe_add_call_vops): Same as above.
23007 (get_asm_stmt_operands): Same as above.
23008 (get_expr_operands): Same as above.
23009 (parse_ssa_operands): Same as above.
23010 (finalize_ssa_defs): Same as above.
23011 (build_ssa_operands): Same as above, plus create a C-like wrapper.
23012 (update_stmt_operands): Create an instance of operands_scanner.
23014 2020-05-07 Richard Biener <rguenther@suse.de>
23017 * tree-ssa-structalias.c (refered_from_nonlocal_fn): Use
23018 DECL_EXTERNAL || TREE_PUBLIC instead of externally_visible.
23019 (refered_from_nonlocal_var): Likewise.
23020 (ipa_pta_execute): Likewise.
23022 2020-05-07 Erick Ochoa <erick.ochoa@theobroma-systems.com>
23024 * gcc/tree-ssa-struct-alias.c: Fix comments
23026 2020-05-07 Martin Liska <mliska@suse.cz>
23028 * doc/invoke.texi: Fix 2 optindex entries.
23030 2020-05-07 Richard Biener <rguenther@suse.de>
23032 PR middle-end/94703
23033 * tree-core.h (tree_decl_common::gimple_reg_flag): Rename ...
23034 (tree_decl_common::not_gimple_reg_flag): ... to this.
23035 * tree.h (DECL_GIMPLE_REG_P): Rename ...
23036 (DECL_NOT_GIMPLE_REG_P): ... to this.
23037 * gimple-expr.c (copy_var_decl): Copy DECL_NOT_GIMPLE_REG_P.
23038 (create_tmp_reg): Simplify.
23039 (create_tmp_reg_fn): Likewise.
23040 (is_gimple_reg): Check DECL_NOT_GIMPLE_REG_P for all regs.
23041 * gimplify.c (create_tmp_from_val): Simplify.
23042 (gimplify_bind_expr): Likewise.
23043 (gimplify_compound_literal_expr): Likewise.
23044 (gimplify_function_tree): Likewise.
23045 (prepare_gimple_addressable): Set DECL_NOT_GIMPLE_REG_P.
23046 * asan.c (create_odr_indicator): Do not clear DECL_GIMPLE_REG_P.
23047 (asan_add_global): Copy it.
23048 * cgraphunit.c (cgraph_node::expand_thunk): Force args
23050 * function.c (gimplify_parameters): Copy
23051 DECL_NOT_GIMPLE_REG_P.
23052 * ipa-param-manipulation.c
23053 (ipa_param_body_adjustments::common_initialization): Simplify.
23054 (ipa_param_body_adjustments::reset_debug_stmts): Copy
23055 DECL_NOT_GIMPLE_REG_P.
23056 * omp-low.c (lower_omp_for_scan): Do not set DECL_GIMPLE_REG_P.
23057 * sanopt.c (sanitize_rewrite_addressable_params): Likewise.
23058 * tree-cfg.c (make_blocks_1): Simplify.
23059 (verify_address): Do not verify DECL_GIMPLE_REG_P setting.
23060 * tree-eh.c (lower_eh_constructs_2): Simplify.
23061 * tree-inline.c (declare_return_variable): Adjust and
23063 (copy_decl_to_var): Copy DECL_NOT_GIMPLE_REG_P.
23064 (copy_result_decl_to_var): Likewise.
23065 * tree-into-ssa.c (pass_build_ssa::execute): Adjust comment.
23066 * tree-nested.c (create_tmp_var_for): Simplify.
23067 * tree-parloops.c (separate_decls_in_region_name): Copy
23068 DECL_NOT_GIMPLE_REG_P.
23069 * tree-sra.c (create_access_replacement): Adjust and
23070 generalize partial def support.
23071 * tree-ssa-forwprop.c (pass_forwprop::execute): Set
23072 DECL_NOT_GIMPLE_REG_P on decls we introduce partial defs on.
23073 * tree-ssa.c (maybe_optimize_var): Handle clearing of
23074 TREE_ADDRESSABLE and setting/clearing DECL_NOT_GIMPLE_REG_P
23076 * lto-streamer-out.c (hash_tree): Hash DECL_NOT_GIMPLE_REG_P.
23077 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Stream
23078 DECL_NOT_GIMPLE_REG_P.
23079 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
23080 * cfgexpand.c (avoid_type_punning_on_regs): New.
23081 (discover_nonconstant_array_refs): Call
23082 avoid_type_punning_on_regs to avoid unsupported mode punning.
23084 2020-05-07 Alex Coplan <alex.coplan@arm.com>
23086 * config/arm/arm.c (arm_add_stmt_cost): Fix declaration, remove class
23089 2020-05-07 Richard Biener <rguenther@suse.de>
23091 PR tree-optimization/57359
23092 * tree-ssa-loop-im.c (im_mem_ref::indep_loop): Remove.
23093 (in_mem_ref::dep_loop): Repurpose.
23094 (LOOP_DEP_BIT): Remove.
23095 (enum dep_kind): New.
23096 (enum dep_state): Likewise.
23097 (record_loop_dependence): New function to populate the
23099 (query_loop_dependence): New function to query the dependence
23101 (memory_accesses::refs_in_loop): Rename to ...
23102 (memory_accesses::refs_loaded_in_loop): ... this and change to
23104 (outermost_indep_loop): Adjust.
23105 (mem_ref_alloc): Likewise.
23106 (gather_mem_refs_stmt): Likewise.
23107 (mem_refs_may_alias_p): Add tbaa_p parameter and pass it down.
23108 (struct sm_aux): New.
23109 (execute_sm): Split code generation on exits, record state
23111 (enum sm_kind): New.
23112 (execute_sm_exit): Exit code generation part.
23113 (sm_seq_push_down): Helper for sm_seq_valid_bb performing
23114 dependence checking on stores reached from exits.
23115 (sm_seq_valid_bb): New function gathering SM stores on exits.
23116 (hoist_memory_references): Re-implement.
23117 (refs_independent_p): Add tbaa_p parameter and pass it down.
23118 (record_dep_loop): Remove.
23119 (ref_indep_loop_p_1): Fold into ...
23120 (ref_indep_loop_p): ... this and generalize for three kinds
23121 of dependence queries.
23122 (can_sm_ref_p): Adjust according to hoist_memory_references
23124 (store_motion_loop): Don't do anything if the set of SM
23125 candidates is empty.
23126 (tree_ssa_lim_initialize): Adjust.
23127 (tree_ssa_lim_finalize): Likewise.
23129 2020-05-07 Eric Botcazou <ebotcazou@adacore.com>
23130 Pierre-Marie de Rodat <derodat@adacore.com>
23132 * dwarf2out.c (add_data_member_location_attribute): Take into account
23133 the variant part offset in the computation of the data bit offset.
23134 (add_bit_offset_attribute): Remove CTX parameter. Pass a new context
23135 in the call to field_byte_offset.
23136 (gen_field_die): Adjust call to add_bit_offset_attribute and remove
23137 confusing assertion.
23138 (analyze_variant_discr): Deal with boolean subtypes.
23140 2020-05-07 Martin Liska <mliska@suse.cz>
23142 * lto-wrapper.c: Split arguments of MAKE environment
23145 2020-05-07 Uroš Bizjak <ubizjak@gmail.com>
23147 * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): Use
23148 TARGET_EXPR instead of MODIFY_EXPR for the first assignments to
23149 fenv_var and new_fenv_var.
23151 2020-05-06 Jakub Jelinek <jakub@redhat.com>
23154 * config/i386/subst.md (store_mask_constraint, store_mask_predicate):
23156 (avx512dq_vextract<shuffletype>64x2_1_maskm,
23157 avx512f_vextract<shuffletype>32x4_1_maskm,
23158 vec_extract_lo_<mode>_maskm, vec_extract_hi_<mode>_maskm): Remove.
23159 (<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>): Split
23161 (*avx512dq_vextract<shuffletype>64x2_1,
23162 avx512dq_vextract<shuffletype>64x2_1_mask): ... these new
23163 define_insns. Even in the masked variant allow memory output but in
23164 that case use 0 rather than 0C constraint on the source of masked-out
23166 (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Split
23168 (*avx512f_vextract<shuffletype>32x4_1,
23169 avx512f_vextract<shuffletype>32x4_1_mask): ... these new define_insns.
23170 Even in the masked variant allow memory output but in that case use
23171 0 rather than 0C constraint on the source of masked-out elts.
23172 (vec_extract_lo_<mode><mask_name>): Split into ...
23173 (vec_extract_lo_<mode>, vec_extract_lo_<mode>_mask): ... these new
23174 define_insns. Even in the masked variant allow memory output but in
23175 that case use 0 rather than 0C constraint on the source of masked-out
23177 (vec_extract_hi_<mode><mask_name>): Split into ...
23178 (vec_extract_hi_<mode>, vec_extract_hi_<mode>_mask): ... these new
23179 define_insns. Even in the masked variant allow memory output but in
23180 that case use 0 rather than 0C constraint on the source of masked-out
23183 2020-05-06 qing zhao <qing.zhao@oracle.com>
23186 * common.opt: Add -flarge-source-files.
23187 * doc/invoke.texi: Document it.
23188 * toplev.c (process_options): set line_table->default_range_bits
23189 to 0 when flag_large_source_files is true.
23191 2020-05-06 Uroš Bizjak <ubizjak@gmail.com>
23194 * config/i386/predicates.md (add_comparison_operator): New predicate.
23195 * config/i386/i386.md (compare->add splitter): New splitters.
23197 2020-05-06 Richard Biener <rguenther@suse.de>
23199 * tree-vectorizer.h (vect_transform_slp_perm_load): Adjust.
23200 * tree-vect-data-refs.c (vect_slp_analyze_node_dependences):
23201 Remove slp_instance parameter, just iterate over all scalar stmts.
23202 (vect_slp_analyze_instance_dependence): Adjust and likewise.
23203 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Remove unused BB
23205 (vect_schedule_slp): Just iterate over all scalar stmts.
23206 (vect_supported_load_permutation_p): Adjust.
23207 (vect_transform_slp_perm_load): Remove slp_instance parameter,
23208 instead use the number of lanes in the node as group size.
23209 * tree-vect-stmts.c (vect_model_load_cost): Get vectorization
23210 factor instead of slp_instance as parameter.
23211 (vectorizable_load): Adjust.
23213 2020-05-06 Andreas Schwab <schwab@suse.de>
23215 * config/aarch64/driver-aarch64.c: Include "aarch64-protos.h".
23216 (aarch64_get_extension_string_for_isa_flags): Don't declare.
23218 2020-05-06 Richard Biener <rguenther@suse.de>
23220 PR middle-end/94964
23221 * cfgloopmanip.c (create_preheader): Require non-complex
23222 preheader edge for CP_SIMPLE_PREHEADERS.
23224 2020-05-06 Richard Biener <rguenther@suse.de>
23226 PR tree-optimization/94963
23227 * tree-ssa-loop-im.c (execute_sm_if_changed): Remove
23228 no-warning marking of the conditional store.
23229 (execute_sm): Instead mark the uninitialized state
23230 on loop entry to be not warned about.
23232 2020-05-06 Hongtao Liu <hongtao.liu@intel.com>
23234 * common/config/i386/i386-common.c (OPTION_MASK_ISA2_TSXLDTRK_SET,
23235 OPTION_MASK_ISA2_TSXLDTRK_UNSET): New macros.
23236 * config.gcc: Add tsxldtrkintrin.h to extra_headers.
23237 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
23239 * config/i386/i386-builtin.def: Add new builtins.
23240 * config/i386/i386-c.c (ix86_target_macros_internal): Define
23242 * config/i386/i386-options.c (ix86_target_string): Add
23244 (ix86_valid_target_attribute_inner_p): Add attribute tsxldtrk.
23245 * config/i386/i386.h (TARGET_TSXLDTRK, TARGET_TSXLDTRK_P):
23247 * config/i386/i386.md (define_c_enum "unspec"): Add
23248 UNSPECV_SUSLDTRK, UNSPECV_RESLDTRK.
23249 (TSXLDTRK): New define_int_iterator.
23250 ("<tsxldtrk>"): New define_insn.
23251 * config/i386/i386.opt: Add -mtsxldtrk.
23252 * config/i386/immintrin.h: Include tsxldtrkintrin.h.
23253 * config/i386/tsxldtrkintrin.h: New.
23254 * doc/invoke.texi: Document -mtsxldtrk.
23256 2020-05-06 Jakub Jelinek <jakub@redhat.com>
23258 PR tree-optimization/94921
23259 * match.pd (~(~X - Y) -> X + Y, ~(~X + Y) -> X - Y): New
23262 2020-05-06 Richard Biener <rguenther@suse.de>
23264 PR tree-optimization/94965
23265 * tree-vect-stmts.c (vectorizable_load): Fix typo.
23267 2020-05-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23269 * doc/install.texi: Replace Sun with Solaris as appropriate.
23270 (Tools/packages necessary for building GCC, Perl version between
23271 5.6.1 and 5.6.24): Remove Solaris 8 reference.
23272 (Installing GCC: Binaries, Solaris 2 (SPARC, Intel)): Remove
23274 (Specific, i?86-*-solaris2*): Update version references for
23275 Solaris 11.3 and later. Remove gas 2.26 caveat.
23276 (Specific, *-*-solaris2*): Update version references for
23277 Solaris 11.3 and later. Remove boehm-gc reference.
23278 Document GMP, MPFR caveats on Solaris 11.3.
23279 (Specific, sparc-sun-solaris2*): Update Solaris 9 references.
23280 (Specific, sparc64-*-solaris2*): Likewise.
23281 Document --build requirement.
23283 2020-05-06 Jakub Jelinek <jakub@redhat.com>
23286 * config/riscv/riscv-builtins.c (riscv_atomic_assign_expand_fenv): Use
23287 TARGET_EXPR instead of MODIFY_EXPR for first assignment to old_flags.
23289 PR rtl-optimization/94873
23290 * combine.c (combine_instructions): Don't optimize using REG_EQUAL
23291 note if SET_SRC (set) has side-effects.
23293 2020-05-06 Hongtao Liu <hongtao.liu@intel.com>
23294 Wei Xiao <wei3.xiao@intel.com>
23296 * common/config/i386/i386-common.c (OPTION_MASK_ISA2_SERIALIZE_SET,
23297 OPTION_MASK_ISA2_SERIALIZE_UNSET): New macros.
23298 (ix86_handle_option): Handle -mserialize.
23299 * config.gcc (serializeintrin.h): New header file.
23300 * config/i386/cpuid.h (bit_SERIALIZE): New bit.
23301 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
23303 * config/i386/i386-builtin.def: Add new builtin.
23304 * config/i386/i386-c.c (__SERIALIZE__): New macro.
23305 * config/i386/i386-options.c (ix86_target_opts_isa2_opts):
23307 * (ix86_valid_target_attribute_inner_p): Add target attribute
23309 * config/i386/i386.h (TARGET_SERIALIZE, TARGET_SERIALIZE_P):
23311 * config/i386/i386.md (UNSPECV_SERIALIZE): New unspec.
23312 (serialize): New define_insn.
23313 * config/i386/i386.opt (mserialize): New option
23314 * config/i386/immintrin.h: Include serailizeintrin.h.
23315 * config/i386/serializeintrin.h: New header file.
23316 * doc/invoke.texi: Add documents for -mserialize.
23318 2020-05-06 Richard Biener <rguenther@suse.de>
23320 * tree-cfg.c (verify_gimple_assign_unary): Adjust integer
23321 to/from pointer conversion checking.
23323 2020-05-05 Michael Meissner <meissner@linux.ibm.com>
23325 * config/rs6000/rs6000-builtin.def: Delete changes meant for a
23327 * config/rs6000/rs6000-c.c: Likewise.
23328 * config/rs6000/rs6000-call.c: Likewise.
23329 * config/rs6000/rs6000.c: Likewise.
23331 2020-05-05 Sebastian Huber <sebastian.huber@embedded-brains.de>
23333 * config/rtems.h (RTEMS_STARTFILE_SPEC): Define if undefined.
23334 (RTEMS_ENDFILE_SPEC): Likewise.
23335 (STARTFILE_SPEC): Update comment. Add RTEMS_STARTFILE_SPEC.
23336 (ENDFILE_SPEC): Add RTEMS_ENDFILE_SPEC.
23337 (LIB_SPECS): Support -nodefaultlibs option.
23338 * config/or1k/rtems.h (RTEMS_STARTFILE_SPEC): Define.
23339 (RTEMS_ENDFILE_SPEC): Likewise.
23340 * config/rs6000/rtems.h (RTEMS_STARTFILE_SPEC): Likewise.
23341 (RTEMS_ENDFILE_SPEC): Likewise.
23342 * config/v850/rtems.h (RTEMS_STARTFILE_SPEC): Likewise.
23343 (RTEMS_ENDFILE_SPEC): Likewise.
23345 2020-05-05 Dimitar Dimitrov <dimitar@dinux.eu>
23347 * config/pru/pru.c (pru_hard_regno_call_part_clobbered): Remove.
23348 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Remove.
23350 2020-05-05 Dimitar Dimitrov <dimitar@dinux.eu>
23352 * config/pru/pru.h: Mark R3.w0 as caller saved.
23354 2020-05-05 Dimitar Dimitrov <dimitar@dinux.eu>
23356 * config/pru/pru.c (pru_emit_doloop): Use new gen_doloop_end_internal
23357 and gen_doloop_begin_internal.
23358 (pru_reorg_loop): Use gen_pruloop with mode.
23359 * config/pru/pru.md: Use new @insn syntax.
23361 2020-05-05 Dimitar Dimitrov <dimitar@dinux.eu>
23363 * config/pru/pru.c (pru_print_operand): Fix fall through comment.
23365 2020-05-05 Uroš Bizjak <ubizjak@gmail.com>
23367 * config/i386/i386.md (fixuns_trunc<mode>si2): Use
23368 "clobber (scratch:M)" instad of "clobber (match_scratch:M N)".
23369 (addqi3_cconly_overflow): Ditto.
23370 (umulv<mode>4): Ditto.
23371 (<s>mul<mode>3_highpart): Ditto.
23372 (tls_global_dynamic_32): Ditto.
23373 (tls_local_dynamic_base_32): Ditto.
23380 (*adddi_4): Remove "m" constraint from scratch operand.
23381 (*add<mode>_4): Ditto.
23383 2020-05-05 Jakub Jelinek <jakub@redhat.com>
23385 PR rtl-optimization/94516
23386 * postreload.c (reload_cse_simplify): When replacing sp = sp + const
23387 with sp = reg, add REG_EQUAL note with sp + const.
23388 * combine-stack-adj.c (try_apply_stack_adjustment): Change return
23389 type from int to bool. Add LIVE and OTHER_INSN arguments. Undo
23390 postreload sp = sp + const to sp = reg optimization if needed and
23392 (combine_stack_adjustments_for_block): Add LIVE argument. Handle
23393 reg = sp insn with sp + const REG_EQUAL note. Adjust
23394 try_apply_stack_adjustment caller, call
23395 df_simulate_initialize_forwards and df_simulate_one_insn_forwards.
23396 (combine_stack_adjustments): Allocate and free LIVE bitmap,
23397 adjust combine_stack_adjustments_for_block caller.
23399 2020-05-05 Martin Liska <mliska@suse.cz>
23401 PR gcov-profile/93623
23402 * tree-cfg.c (stmt_can_terminate_bb_p): Update comment to reflect
23405 2020-05-05 Martin Liska <mliska@suse.cz>
23407 * opt-functions.awk (opt_args_non_empty): New function.
23408 * opt-read.awk: Use the function for various option arguments.
23410 2020-05-05 Martin Liska <mliska@suse.cz>
23413 * lto-wrapper.c (run_gcc): When using -flto=jobserver,
23414 report warning when the jobserver is not detected.
23416 2020-05-05 Martin Liska <mliska@suse.cz>
23418 PR gcov-profile/94636
23419 * gcov.c (main): Print total lines summary at the end.
23420 (generate_results): Expect file_name always being non-null.
23421 Print newline after intermediate file is printed in order to align with
23422 what we do for normal files.
23424 2020-05-05 Martin Liska <mliska@suse.cz>
23426 * dumpfile.c (dump_switch_p): Change return type
23427 and print option suggestion.
23428 * dumpfile.h: Change return type.
23429 * opts-global.c (handle_common_deferred_options):
23430 Move error into dump_switch_p function.
23432 2020-05-05 Martin Liska <mliska@suse.cz>
23435 * alloc-pool.h: Use const for some arguments.
23436 * bitmap.h: Likewise.
23437 * mem-stats.h: Likewise.
23438 * sese.h (get_entry_bb): Likewise.
23439 (get_exit_bb): Likewise.
23441 2020-05-05 Richard Biener <rguenther@suse.de>
23443 * tree-vect-slp.c (struct vdhs_data): New.
23444 (vect_detect_hybrid_slp): New walker.
23445 (vect_detect_hybrid_slp): Rewrite.
23447 2020-05-05 Richard Biener <rguenther@suse.de>
23450 * tree-ssa-structalias.c (ipa_pta_execute): Use
23451 varpool_node::externally_visible_p ().
23452 (refered_from_nonlocal_var): Likewise.
23454 2020-05-05 Eric Botcazou <ebotcazou@adacore.com>
23456 * gcc.c (LTO_PLUGIN_SPEC): Define if not already.
23457 (LINK_PLUGIN_SPEC): Execute LTO_PLUGIN_SPEC.
23458 * config/vxworks.h (LTO_PLUGIN_SPEC): Define.
23460 2020-05-05 Eric Botcazou <ebotcazou@adacore.com>
23462 * gimplify.c (gimplify_init_constructor): Do not put the constructor
23463 into static memory if it is not complete.
23465 2020-05-05 Richard Biener <rguenther@suse.de>
23467 PR tree-optimization/94949
23468 * tree-ssa-loop-im.c (execute_sm): Check whether we use
23469 the multithreaded model or always compute the stored value
23470 before eliding a load.
23472 2020-05-05 Alex Coplan <alex.coplan@arm.com>
23474 * config/aarch64/aarch64.md (*one_cmpl_zero_extend): New.
23476 2020-05-05 Jakub Jelinek <jakub@redhat.com>
23478 PR tree-optimization/94800
23479 * match.pd (X + (X << C) to X * (1 + (1 << C)),
23480 (X << C1) + (X << C2) to X * ((1 << C1) + (1 << C2))): New
23484 * config/i386/mmx.md (*vec_dupv4hi): Use xYw constraints instead of Yv.
23486 PR tree-optimization/94914
23487 * match.pd ((((type)A * B) >> prec) != 0 to .MUL_OVERFLOW(A, B) != 0):
23488 New simplification.
23490 2020-05-05 Uroš Bizjak <ubizjak@gmail.com>
23492 * config/i386/i386.md (*testqi_ext_3): Use
23493 int_nonimmediate_operand instead of manual mode checks.
23494 (*x86_mov<SWI48:mode>cc_0_m1_neg_leu<SWI:mode>):
23495 Use int_nonimmediate_operand predicate. Rewrite
23496 define_insn_and_split pattern to a combine pass splitter.
23498 2020-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23500 * configure.ac <i[34567]86-*-*>: Add --32 to tls_as_opt on Solaris.
23501 * configure: Regenerate.
23503 2020-05-05 Jakub Jelinek <jakub@redhat.com>
23506 * config/i386/sse.md (avx2_ph<plusminus_mnemonic>wv16hi3,
23507 ssse3_ph<plusminus_mnemonic>wv8hi3, ssse3_ph<plusminus_mnemonic>wv4hi3,
23508 avx2_ph<plusminus_mnemonic>dv8si3, ssse3_ph<plusminus_mnemonic>dv4si3,
23509 ssse3_ph<plusminus_mnemonic>dv2si3): Simplify RTL patterns.
23511 2020-05-04 Clement Chigot <clement.chigot@atos.net>
23512 David Edelsohn <dje.gcc@gmail.com>
23514 * config/rs6000/rs6000-call.c (rs6000_init_builtins): Override explicit
23515 for fmodl, frexpl, ldexpl and modfl builtins.
23517 2020-05-04 Richard Sandiford <richard.sandiford@arm.com>
23519 PR middle-end/94941
23520 * internal-fn.c (expand_load_lanes_optab_fn): Emit a move if the
23521 chosen lhs is different from the gcall lhs.
23522 (expand_mask_load_optab_fn): Likewise.
23523 (expand_gather_load_optab_fn): Likewise.
23525 2020-05-04 Uroš Bizjak <ubizjak@gmail.com>
23528 * config/i386/i386.md (*neg<mode>_ccc): New insn pattern.
23529 (EQ compare->LTU compare splitter): New splitter.
23530 (NE compare->NEG splitter): Ditto.
23532 2020-05-04 Marek Polacek <polacek@redhat.com>
23535 2020-04-30 Marek Polacek <polacek@redhat.com>
23538 * tree.c (check_base_type): Return true only if TYPE_USER_ALIGN match.
23539 (check_aligned_type): Check if TYPE_USER_ALIGN match.
23541 2020-05-04 Richard Biener <rguenther@suse.de>
23543 PR tree-optimization/93891
23544 * tree-ssa-sccvn.c (vn_reference_lookup_3): Fall back to
23545 the original reference tree for assessing access alignment.
23547 2020-05-04 Richard Biener <rguenther@suse.de>
23549 PR tree-optimization/39612
23550 * tree-ssa-loop-im.c (im_mem_ref::loaded): New member.
23551 (set_ref_loaded_in_loop): New.
23552 (mark_ref_loaded): Likewise.
23553 (gather_mem_refs_stmt): Call mark_ref_loaded for loads.
23554 (execute_sm): Avoid issueing a load when it was not there.
23555 (execute_sm_if_changed): Avoid issueing warnings for the
23558 2020-05-04 Martin Jambor <mjambor@suse.cz>
23561 * tree-inline.c (tree_function_versioning): Leave any type conversion
23562 of replacements to setup_one_parameter and its friend
23563 force_value_to_type.
23565 2020-05-04 Uroš Bizjak <ubizjak@gmail.com>
23568 * config/i386/predicates.md (shr_comparison_operator): New predicate.
23569 * config/i386/i386.md (compare->shr splitter): New splitters.
23571 2020-05-04 Jakub Jelinek <jakub@redhat.com>
23573 PR tree-optimization/94718
23574 * match.pd ((X < 0) != (Y < 0) into (X ^ Y) < 0): New simplification.
23576 PR tree-optimization/94718
23577 * match.pd (bitop (convert @0) (convert? @1)): For GIMPLE, if we can,
23578 replace two nop conversions on bit_{and,ior,xor} argument
23579 and result with just one conversion on the result or another argument.
23581 PR tree-optimization/94718
23582 * fold-const.c (fold_binary_loc): Move (X & C) eqne (Y & C)
23583 -> (X ^ Y) & C eqne 0 optimization to ...
23584 * match.pd ((X & C) op (Y & C) into (X ^ Y) & C op 0): ... here.
23586 * opts.c (get_option_html_page): Instead of hardcoding a list of
23587 options common between C/C++ and Fortran only use gfortran/
23588 documentation for warnings that have CL_Fortran set but not
23591 2020-05-03 Uroš Bizjak <ubizjak@gmail.com>
23593 * config/i386/i386-expand.c (ix86_expand_int_movcc):
23594 Use plus_constant instead of gen_rtx_PLUS with GEN_INT.
23595 (emit_memmov): Ditto.
23596 (emit_memset): Ditto.
23597 (ix86_expand_strlensi_unroll_1): Ditto.
23598 (release_scratch_register_on_entry): Ditto.
23599 (gen_frame_set): Ditto.
23600 (ix86_emit_restore_reg_using_pop): Ditto.
23601 (ix86_emit_outlined_ms2sysv_restore): Ditto.
23602 (ix86_expand_epilogue): Ditto.
23603 (ix86_expand_split_stack_prologue): Ditto.
23604 * config/i386/i386.md (push immediate splitter): Ditto.
23608 2020-05-02 Iain Sandoe <iain@sandoe.co.uk>
23610 PR translation/93861
23611 * config/darwin-driver.c (darwin_driver_init): Adjust spelling in
23614 2020-05-02 Jakub Jelinek <jakub@redhat.com>
23616 * config/tilegx/tilegx.md
23617 (insn_stnt<I124MODE:n>_add<I48MODE:bitsuffix>): Use <I124MODE:n>
23618 rather than just <n>.
23620 2020-05-01 H.J. Lu <hongjiu.lu@intel.com>
23623 * cfgexpand.c (pass_expand::execute): Set crtl->patch_area_size
23624 and crtl->patch_area_entry.
23625 * emit-rtl.h (rtl_data): Add patch_area_size and patch_area_entry.
23626 * opts.c (common_handle_option): Limit
23627 function_entry_patch_area_size and function_entry_patch_area_start
23628 to USHRT_MAX. Fix a typo in error message.
23629 * varasm.c (assemble_start_function): Use crtl->patch_area_size
23630 and crtl->patch_area_entry.
23631 * doc/invoke.texi: Document the maximum value for
23632 -fpatchable-function-entry.
23634 2020-05-01 Iain Sandoe <iain@sandoe.co.uk>
23636 * config/i386/darwin.h: Repair SUBTARGET_INIT_BUILTINS.
23637 Override SUBTARGET_SHADOW_OFFSET macro.
23639 2020-05-01 Andreas Tobler <andreast@gcc.gnu.org>
23641 * config/i386/i386.h: Define a new macro: SUBTARGET_SHADOW_OFFSET.
23642 * config/i386/i386.c (ix86_asan_shadow_offset): Use this macro.
23643 * config/i386/darwin.h: Override the SUBTARGET_SHADOW_OFFSET macro.
23644 * config/i386/freebsd.h: Likewise.
23645 * config/freebsd.h (LIBASAN_EARLY_SPEC): Define.
23646 LIBTSAN_EARLY_SPEC): Likewise. (LIBLSAN_EARLY_SPEC): Likewise.
23648 2020-04-30 Alexandre Oliva <oliva@adacore.com>
23650 * doc/sourcebuild.texi (Effective-Target Keywords): Document
23651 the newly-introduced fileio effective target.
23653 2020-04-30 Richard Sandiford <richard.sandiford@arm.com>
23655 PR rtl-optimization/94740
23656 * cse.c (cse_process_notes_1): Replace with...
23657 (cse_process_note_1): ...this new function, acting as a
23658 simplify_replace_fn_rtx callback to process_note. Handle only
23659 REGs and MEMs directly. Validate the MEM if cse_process_note
23660 changes its address.
23661 (cse_process_notes): Replace with...
23662 (cse_process_note): ...this new function.
23663 (cse_extended_basic_block): Update accordingly, iterating over
23664 the register notes and passing individual notes to cse_process_note.
23666 2020-04-30 Carl Love <cel@us.ibm.com>
23668 * config/rs6000/emmintrin.h (_mm_movemask_epi8): Fix comment.
23670 2020-04-30 Martin Jambor <mjambor@suse.cz>
23673 * cgraph.c (clone_of_p): Also consider thunks whih had their bodies
23674 saved by the inliner and thunks which had their call inlined.
23675 * ipa-inline-transform.c (save_inline_function_body): Fill in
23676 former_clone_of of new body holders.
23678 2020-04-30 Jakub Jelinek <jakub@redhat.com>
23680 * BASE-VER: Set to 11.0.0.
23682 2020-04-30 Jonathan Wakely <jwakely@redhat.com>
23684 * pretty-print.c (pp_take_prefix): Fix spelling in comment.
23686 2020-04-30 Marek Polacek <polacek@redhat.com>
23689 * tree.c (check_base_type): Return true only if TYPE_USER_ALIGN match.
23690 (check_aligned_type): Check if TYPE_USER_ALIGN match.
23692 2020-04-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23694 * config/aarch64/aarch64.h (TARGET_OUTLINE_ATOMICS): Define.
23695 * config/aarch64/aarch64.opt (moutline-atomics): Change to Int variable.
23696 * doc/invoke.texi (moutline-atomics): Document as on by default.
23698 2020-04-30 Szabolcs Nagy <szabolcs.nagy@arm.com>
23701 * config/aarch64/aarch64-bti-insert.c (rest_of_insert_bti): Remove
23702 the check for NOTE_INSN_DELETED_LABEL.
23704 2020-04-30 Jakub Jelinek <jakub@redhat.com>
23706 * configure.ac (--with-documentation-root-url,
23707 --with-changes-root-url): Diagnose URL not ending with /,
23708 use AC_DEFINE_UNQUOTED instead of AC_SUBST.
23709 * opts.h (get_changes_url): Remove.
23710 * opts.c (get_changes_url): Remove.
23711 * Makefile.in (CFLAGS-opts.o): Don't add -DDOCUMENTATION_ROOT_URL
23712 or -DCHANGES_ROOT_URL.
23713 * doc/install.texi (--with-documentation-root-url,
23714 --with-changes-root-url): Document.
23715 * config/arm/arm.c (aapcs_vfp_is_call_or_return_candidate): Don't call
23716 get_changes_url and free, change url variable type to const char * and
23717 set it to CHANGES_ROOT_URL "gcc-10/changes.html#empty_base".
23718 * config/s390/s390.c (s390_function_arg_vector,
23719 s390_function_arg_float): Likewise.
23720 * config/aarch64/aarch64.c (aarch64_vfp_is_call_or_return_candidate):
23722 * config/rs6000/rs6000-call.c (rs6000_discover_homogeneous_aggregate):
23724 * config.in: Regenerate.
23725 * configure: Regenerate.
23727 2020-04-30 Christophe Lyon <christophe.lyon@linaro.org>
23730 * config/arm/arm.c (isr_attribute_args): Remove duplicate entries.
23732 2020-04-30 Andreas Krebbel <krebbel@linux.ibm.com>
23734 * config/s390/constraints.md ("j>f", "jb4"): New constraints.
23735 * config/s390/vecintrin.h (vec_load_len_r, vec_store_len_r): Fix
23737 * config/s390/vx-builtins.md ("vlrlrv16qi", "vstrlrv16qi"): Add a
23739 ("*vlrlrv16qi", "*vstrlrv16qi"): Add alternative for vl/vst.
23740 Change constraint for vlrl/vstrl to jb4.
23742 2020-04-30 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
23744 * var-tracking.c (vt_initialize): Move variables pre and post
23745 into inner block and initialize both in order to fix warning
23746 about uninitialized use. Remove unnecessary checks for
23747 frame_pointer_needed.
23749 2020-04-30 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
23751 * toplev.c (output_stack_usage_1): Ensure that first
23752 argument to fprintf is not null.
23754 2020-04-29 Jakub Jelinek <jakub@redhat.com>
23756 * configure.ac (-with-changes-root-url): New configure option,
23757 defaulting to https://gcc.gnu.org/.
23758 * Makefile.in (CFLAGS-opts.o): Define CHANGES_ROOT_URL for
23760 * pretty-print.c (get_end_url_string): New function.
23761 (pp_format): Handle %{ and %} for URLs.
23762 (pp_begin_url): Use pp_string instead of pp_printf.
23763 (pp_end_url): Use get_end_url_string.
23764 * opts.h (get_changes_url): Declare.
23765 * opts.c (get_changes_url): New function.
23766 * config/rs6000/rs6000-call.c: Include opts.h.
23767 (rs6000_discover_homogeneous_aggregate): Use %{in GCC 10.1%} instead
23768 of just in GCC 10.1 in diagnostics and add URL.
23769 * config/arm/arm.c (aapcs_vfp_is_call_or_return_candidate): Likewise.
23770 * config/aarch64/aarch64.c (aarch64_vfp_is_call_or_return_candidate):
23772 * config/s390/s390.c (s390_function_arg_vector,
23773 s390_function_arg_float): Likewise.
23774 * configure: Regenerated.
23777 * config/s390/s390.c (s390_function_arg_vector,
23778 s390_function_arg_float): Use DECL_FIELD_ABI_IGNORED instead of
23779 cxx17_empty_base_field_p. In -Wpsabi diagnostics use the type
23780 passed to the function rather than the type of the single element.
23781 Rename cxx17_empty_base_seen variable to empty_base_seen, change
23782 type to int, and adjust diagnostics depending on if the field
23783 has [[no_unique_attribute]] or not.
23786 * config/i386/avx512bwintrin.h (_mm512_alignr_epi8,
23787 _mm512_mask_alignr_epi8, _mm512_maskz_alignr_epi8): Wrap macro operands
23788 used in casts into parens.
23789 * config/i386/avx512fintrin.h (_mm512_cvt_roundps_ph, _mm512_cvtps_ph,
23790 _mm512_mask_cvt_roundps_ph, _mm512_mask_cvtps_ph,
23791 _mm512_maskz_cvt_roundps_ph, _mm512_maskz_cvtps_ph,
23792 _mm512_mask_cmp_epi64_mask, _mm512_mask_cmp_epi32_mask,
23793 _mm512_mask_cmp_epu64_mask, _mm512_mask_cmp_epu32_mask,
23794 _mm512_mask_cmp_round_pd_mask, _mm512_mask_cmp_round_ps_mask,
23795 _mm512_mask_cmp_pd_mask, _mm512_mask_cmp_ps_mask): Likewise.
23796 * config/i386/avx512vlbwintrin.h (_mm256_mask_alignr_epi8,
23797 _mm256_maskz_alignr_epi8, _mm_mask_alignr_epi8, _mm_maskz_alignr_epi8,
23798 _mm256_mask_cmp_epu8_mask): Likewise.
23799 * config/i386/avx512vlintrin.h (_mm_mask_cvtps_ph, _mm_maskz_cvtps_ph,
23800 _mm256_mask_cvtps_ph, _mm256_maskz_cvtps_ph): Likewise.
23801 * config/i386/f16cintrin.h (_mm_cvtps_ph, _mm256_cvtps_ph): Likewise.
23802 * config/i386/shaintrin.h (_mm_sha1rnds4_epu32): Likewise.
23805 * config/i386/avx2intrin.h (_mm_mask_i32gather_pd,
23806 _mm256_mask_i32gather_pd, _mm_mask_i64gather_pd,
23807 _mm256_mask_i64gather_pd, _mm_mask_i32gather_ps,
23808 _mm256_mask_i32gather_ps, _mm_mask_i64gather_ps,
23809 _mm256_mask_i64gather_ps, _mm_i32gather_epi64,
23810 _mm_mask_i32gather_epi64, _mm256_i32gather_epi64,
23811 _mm256_mask_i32gather_epi64, _mm_i64gather_epi64,
23812 _mm_mask_i64gather_epi64, _mm256_i64gather_epi64,
23813 _mm256_mask_i64gather_epi64, _mm_i32gather_epi32,
23814 _mm_mask_i32gather_epi32, _mm256_i32gather_epi32,
23815 _mm256_mask_i32gather_epi32, _mm_i64gather_epi32,
23816 _mm_mask_i64gather_epi32, _mm256_i64gather_epi32,
23817 _mm256_mask_i64gather_epi32): Surround macro parameter uses with
23819 (_mm_i32gather_pd, _mm256_i32gather_pd, _mm_i64gather_pd,
23820 _mm256_i64gather_pd, _mm_i32gather_ps, _mm256_i32gather_ps,
23821 _mm_i64gather_ps, _mm256_i64gather_ps): Likewise. Don't use
23822 as mask vector containing -1.0 or -1.0f elts, but instead vector
23823 with all bits set using _mm*_cmpeq_p? with zero operands.
23824 * config/i386/avx512fintrin.h (_mm512_i32gather_ps,
23825 _mm512_mask_i32gather_ps, _mm512_i32gather_pd,
23826 _mm512_mask_i32gather_pd, _mm512_i64gather_ps,
23827 _mm512_mask_i64gather_ps, _mm512_i64gather_pd,
23828 _mm512_mask_i64gather_pd, _mm512_i32gather_epi32,
23829 _mm512_mask_i32gather_epi32, _mm512_i32gather_epi64,
23830 _mm512_mask_i32gather_epi64, _mm512_i64gather_epi32,
23831 _mm512_mask_i64gather_epi32, _mm512_i64gather_epi64,
23832 _mm512_mask_i64gather_epi64, _mm512_i32scatter_ps,
23833 _mm512_mask_i32scatter_ps, _mm512_i32scatter_pd,
23834 _mm512_mask_i32scatter_pd, _mm512_i64scatter_ps,
23835 _mm512_mask_i64scatter_ps, _mm512_i64scatter_pd,
23836 _mm512_mask_i64scatter_pd, _mm512_i32scatter_epi32,
23837 _mm512_mask_i32scatter_epi32, _mm512_i32scatter_epi64,
23838 _mm512_mask_i32scatter_epi64, _mm512_i64scatter_epi32,
23839 _mm512_mask_i64scatter_epi32, _mm512_i64scatter_epi64,
23840 _mm512_mask_i64scatter_epi64): Surround macro parameter uses with
23842 * config/i386/avx512pfintrin.h (_mm512_prefetch_i32gather_pd,
23843 _mm512_prefetch_i32gather_ps, _mm512_mask_prefetch_i32gather_pd,
23844 _mm512_mask_prefetch_i32gather_ps, _mm512_prefetch_i64gather_pd,
23845 _mm512_prefetch_i64gather_ps, _mm512_mask_prefetch_i64gather_pd,
23846 _mm512_mask_prefetch_i64gather_ps, _mm512_prefetch_i32scatter_pd,
23847 _mm512_prefetch_i32scatter_ps, _mm512_mask_prefetch_i32scatter_pd,
23848 _mm512_mask_prefetch_i32scatter_ps, _mm512_prefetch_i64scatter_pd,
23849 _mm512_prefetch_i64scatter_ps, _mm512_mask_prefetch_i64scatter_pd,
23850 _mm512_mask_prefetch_i64scatter_ps): Likewise.
23851 * config/i386/avx512vlintrin.h (_mm256_mmask_i32gather_ps,
23852 _mm_mmask_i32gather_ps, _mm256_mmask_i32gather_pd,
23853 _mm_mmask_i32gather_pd, _mm256_mmask_i64gather_ps,
23854 _mm_mmask_i64gather_ps, _mm256_mmask_i64gather_pd,
23855 _mm_mmask_i64gather_pd, _mm256_mmask_i32gather_epi32,
23856 _mm_mmask_i32gather_epi32, _mm256_mmask_i32gather_epi64,
23857 _mm_mmask_i32gather_epi64, _mm256_mmask_i64gather_epi32,
23858 _mm_mmask_i64gather_epi32, _mm256_mmask_i64gather_epi64,
23859 _mm_mmask_i64gather_epi64, _mm256_i32scatter_ps,
23860 _mm256_mask_i32scatter_ps, _mm_i32scatter_ps, _mm_mask_i32scatter_ps,
23861 _mm256_i32scatter_pd, _mm256_mask_i32scatter_pd, _mm_i32scatter_pd,
23862 _mm_mask_i32scatter_pd, _mm256_i64scatter_ps,
23863 _mm256_mask_i64scatter_ps, _mm_i64scatter_ps, _mm_mask_i64scatter_ps,
23864 _mm256_i64scatter_pd, _mm256_mask_i64scatter_pd, _mm_i64scatter_pd,
23865 _mm_mask_i64scatter_pd, _mm256_i32scatter_epi32,
23866 _mm256_mask_i32scatter_epi32, _mm_i32scatter_epi32,
23867 _mm_mask_i32scatter_epi32, _mm256_i32scatter_epi64,
23868 _mm256_mask_i32scatter_epi64, _mm_i32scatter_epi64,
23869 _mm_mask_i32scatter_epi64, _mm256_i64scatter_epi32,
23870 _mm256_mask_i64scatter_epi32, _mm_i64scatter_epi32,
23871 _mm_mask_i64scatter_epi32, _mm256_i64scatter_epi64,
23872 _mm256_mask_i64scatter_epi64, _mm_i64scatter_epi64,
23873 _mm_mask_i64scatter_epi64): Likewise.
23875 2020-04-29 Jeff Law <law@redhat.com>
23877 * config/h8300/h8300.md (H8/SX div patterns): All H8/SX specific
23878 division instructions are 4 bytes long.
23880 2020-04-29 Jakub Jelinek <jakub@redhat.com>
23883 * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv): Use
23884 TARGET_EXPR instead of MODIFY_EXPR for first assignment to
23885 fenv_var, fenv_clear and old_fenv variables. For fenv_addr
23886 take address of TARGET_EXPR of fenv_var with void_node initializer.
23889 2020-04-29 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
23891 PR tree-optimization/94774
23892 * gimple-ssa-sprintf.c (try_substitute_return_value): Initialize
23895 2020-04-29 Richard Sandiford <richard.sandiford@arm.com>
23897 * calls.h (cxx17_empty_base_field_p): Turn into a function declaration.
23898 * calls.c (cxx17_empty_base_field_p): New function. Check
23899 DECL_ARTIFICIAL and RECORD_OR_UNION_TYPE_P in addition to the
23902 2020-04-29 H.J. Lu <hongjiu.lu@intel.com>
23905 * config/i386/i386-options.c (ix86_set_indirect_branch_type):
23906 Allow -fcf-protection with -mindirect-branch=thunk-extern and
23907 -mfunction-return=thunk-extern.
23908 * doc/invoke.texi: Update notes for -fcf-protection=branch with
23909 -mindirect-branch=thunk-extern and -mindirect-return=thunk-extern.
23911 2020-04-29 Richard Sandiford <richard.sandiford@arm.com>
23913 * doc/sourcebuild.texi: Add missing arm_arch_v8a_hard_ok anchor.
23915 2020-04-29 Richard Sandiford <richard.sandiford@arm.com>
23917 * config/arm/arm-builtins.c (arm_atomic_assign_expand_fenv): Use
23918 TARGET_EXPR instead of MODIFY_EXPR for the first assignments to
23919 fenv_var and new_fenv_var.
23921 2020-04-29 Richard Sandiford <richard.sandiford@arm.com>
23923 * doc/sourcebuild.texi (arm_arch_v8a_hard_ok): Document new
23924 effective-target keyword.
23925 (arm_arch_v8a_hard_multilib): Likewise.
23926 (arm_arch_v8a_hard): Document new dg-add-options keyword.
23927 * config/arm/arm.c (arm_return_in_memory): Note that the APCS
23928 code is deprecated and has not been updated to handle
23929 DECL_FIELD_ABI_IGNORED.
23930 (WARN_PSABI_EMPTY_CXX17_BASE): New constant.
23931 (WARN_PSABI_NO_UNIQUE_ADDRESS): Likewise.
23932 (aapcs_vfp_sub_candidate): Replace the boolean pointer parameter
23933 avoid_cxx17_empty_base with a pointer to a bitmask. Ignore fields
23934 whose DECL_FIELD_ABI_IGNORED bit is set when determining whether
23935 something actually is a HFA or HVA. Record whether we see a
23936 [[no_unique_address]] field that previous GCCs would not have
23937 ignored in this way.
23938 (aapcs_vfp_is_call_or_return_candidate): Update the calls to
23939 aapcs_vfp_sub_candidate and report a -Wpsabi warning for the
23940 [[no_unique_address]] case. Use TYPE_MAIN_VARIANT in the
23941 diagnostic messages.
23942 (arm_needs_doubleword_align): Add a comment explaining why we
23943 consider even zero-sized fields.
23945 2020-04-29 Richard Biener <rguenther@suse.de>
23946 Li Zekun <lizekun1@huawei.com>
23949 * tree.c (component_ref_size): Guard against error_mark_node
23950 DECL_INITIAL as it happens with LTO.
23952 2020-04-29 Richard Sandiford <richard.sandiford@arm.com>
23954 * config/aarch64/aarch64.c (aarch64_function_arg_alignment): Add a
23955 comment explaining why we consider even zero-sized fields.
23956 (WARN_PSABI_EMPTY_CXX17_BASE): New constant.
23957 (WARN_PSABI_NO_UNIQUE_ADDRESS): Likewise.
23958 (aapcs_vfp_sub_candidate): Replace the boolean pointer parameter
23959 avoid_cxx17_empty_base with a pointer to a bitmask. Ignore fields
23960 whose DECL_FIELD_ABI_IGNORED bit is set when determining whether
23961 something actually is a HFA or HVA. Record whether we see a
23962 [[no_unique_address]] field that previous GCCs would not have
23963 ignored in this way.
23964 (aarch64_vfp_is_call_or_return_candidate): Add a parameter to say
23965 whether diagnostics should be suppressed. Update the calls to
23966 aapcs_vfp_sub_candidate and report a -Wpsabi warning for the
23967 [[no_unique_address]] case.
23968 (aarch64_return_in_msb): Update call accordingly, never silencing
23970 (aarch64_function_value): Likewise.
23971 (aarch64_return_in_memory_1): Likewise.
23972 (aarch64_init_cumulative_args): Likewise.
23973 (aarch64_gimplify_va_arg_expr): Likewise.
23974 (aarch64_pass_by_reference_1): Take a CUMULATIVE_ARGS pointer and
23975 use it to decide whether arch64_vfp_is_call_or_return_candidate
23977 (aarch64_pass_by_reference): Update calls accordingly.
23978 (aarch64_vfp_is_call_candidate): Use the CUMULATIVE_ARGS argument
23979 to decide whether arch64_vfp_is_call_or_return_candidate should be
23982 2020-04-29 Haijian Zhang <z.zhanghaijian@huawei.com>
23985 * config/aarch64/aarch64-builtins.c
23986 (aarch64_atomic_assign_expand_fenv): Use TARGET_EXPR instead of
23987 MODIFY_EXPR for first assignment to fenv_cr, fenv_sr and
23990 2020-04-29 Thomas Schwinge <thomas@codesourcery.com>
23992 * configure.ac <$enable_offload_targets>: Do parsing as done
23994 * configure: Regenerate.
23996 * configure.ac <$enable_offload_targets>: 'amdgcn' is 'gcn'.
23997 * configure: Regenerate.
24000 * rtlanal.c (set_noop_p): Handle non-constant selectors.
24003 * common/config/gcn/gcn-common.c (gcn_except_unwind_info): New
24005 (TARGET_EXCEPT_UNWIND_INFO): Define.
24007 2020-04-29 Jakub Jelinek <jakub@redhat.com>
24010 * config/gcn/gcn.md (*mov<mode>_insn): Use
24011 'reg_overlap_mentioned_p' to check for overlap.
24014 * config/ia64/ia64.c (hfa_element_mode): Use DECL_FIELD_ABI_IGNORED
24015 instead of cxx17_empty_base_field_p.
24018 * tree-core.h (tree_decl_common): Note decl_flag_0 used for
24019 DECL_FIELD_ABI_IGNORED.
24020 * tree.h (DECL_FIELD_ABI_IGNORED): Define.
24021 * calls.h (cxx17_empty_base_field_p): Change into a temporary
24022 macro, check DECL_FIELD_ABI_IGNORED flag with no "no_unique_address"
24024 * calls.c (cxx17_empty_base_field_p): Remove.
24025 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Handle
24026 DECL_FIELD_ABI_IGNORED.
24027 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
24028 * lto-streamer-out.c (hash_tree): Likewise.
24029 * config/rs6000/rs6000-call.c (rs6000_aggregate_candidate): Rename
24030 cxx17_empty_base_seen to empty_base_seen, change type to int *,
24031 adjust recursive calls, use DECL_FIELD_ABI_IGNORED instead of
24032 cxx17_empty_base_field_p, if "no_unique_address" attribute is
24033 present, propagate that to the caller too.
24034 (rs6000_discover_homogeneous_aggregate): Adjust
24035 rs6000_aggregate_candidate caller, emit different diagnostics
24036 when c++17 empty base fields are present and when empty
24037 [[no_unique_address]] fields are present.
24038 * config/rs6000/rs6000.c (rs6000_special_round_type_align,
24039 darwin_rs6000_special_round_type_align): Skip DECL_FIELD_ABI_IGNORED
24042 2020-04-29 Richard Biener <rguenther@suse.de>
24044 * tree-ssa-loop-im.c (ref_always_accessed::operator ()):
24045 Just check whether the stmt stores.
24047 2020-04-28 Alexandre Oliva <oliva@adacore.com>
24050 * config/rs6000/rs6000.md (rs6000_mffsl): Copy result to
24051 output operand in emulation. Don't overwrite pseudos.
24053 2020-04-28 Jeff Law <law@redhat.com>
24055 * config/h8300/h8300.md (H8/SX mult patterns): All H8/SX specific
24056 multiply patterns are 4 bytes long.
24058 2020-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24060 * config/arm/arm-cpus.in (cortex-m55): Remove +nofp option.
24061 * doc/invoke.texi (Arm Options): Remove -mcpu=cortex-m55 from +nofp option.
24063 2020-04-28 Matthew Malcomson <matthew.malcomson@arm.com>
24064 Jakub Jelinek <jakub@redhat.com>
24067 * config/arm/arm.c (aapcs_vfp_sub_candidate): Account for C++17 empty
24068 base class artificial fields.
24069 (aapcs_vfp_is_call_or_return_candidate): Warn when PCS ABI
24070 decision is different after this fix.
24072 2020-04-28 David Malcolm <dmalcolm@redhat.com>
24078 * doc/invoke.texi (Static Analyzer Options): Remove
24079 -Wanalyzer-use-of-uninitialized-value.
24080 (-Wno-analyzer-use-of-uninitialized-value): Remove item.
24082 2020-04-28 Jakub Jelinek <jakub@redhat.com>
24084 PR tree-optimization/94809
24085 * tree.c (build_call_expr_internal_loc_array): Call
24086 process_call_operands.
24088 2020-04-27 Anton Youdkevitch <anton.youdkevitch@bell-sw.com>
24090 * config/aarch64/aarch64-cores.def (thunderx3t110): Add the chip name.
24091 * config/aarch64/aarch64-tune.md: Regenerate.
24092 * config/aarch64/aarch64.c (thunderx3t110_addrcost_table): Define.
24093 (thunderx3t110_regmove_cost): Likewise.
24094 (thunderx3t110_vector_cost): Likewise.
24095 (thunderx3t110_prefetch_tune): Likewise.
24096 (thunderx3t110_tunings): Likewise.
24097 * config/aarch64/aarch64-cost-tables.h (thunderx3t110_extra_costs):
24099 * config/aarch64/thunderx3t110.md: New file.
24100 * config/aarch64/aarch64.md: Include thunderx3t110.md.
24101 * doc/invoke.texi (AArch64 options): Add thunderx3t110.
24103 2020-04-28 Jakub Jelinek <jakub@redhat.com>
24106 * config/s390/s390.c (s390_function_arg_vector,
24107 s390_function_arg_float): Emit -Wpsabi diagnostics if the ABI changed.
24109 2020-04-28 Richard Sandiford <richard.sandiford@arm.com>
24111 PR tree-optimization/94727
24112 * tree-vect-stmts.c (vect_is_simple_cond): If both comparison
24113 operands are invariant booleans, use the mask type associated with the
24114 STMT_VINFO_VECTYPE. Use !slp_node instead of !vectype to exclude SLP.
24115 (vectorizable_condition): Pass vectype unconditionally to
24116 vect_is_simple_cond.
24118 2020-04-27 Jakub Jelinek <jakub@redhat.com>
24121 * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Use
24122 TARGET_EXPR instead of MODIFY_EXPR for first assignment to
24123 sw_var, exceptions_var, mxcsr_orig_var and mxcsr_mod_var.
24125 2020-04-27 David Malcolm <dmalcolm@redhat.com>
24128 * configure.ac (DOCUMENTATION_ROOT_URL): Drop trailing "gcc/" from
24129 default value, so that it can by supplied by get_option_html_page.
24130 * configure: Regenerate.
24131 * opts.c: Include "selftest.h".
24132 (get_option_html_page): New function.
24133 (get_option_url): Use it. Reformat to place comments next to the
24134 expressions they refer to.
24135 (selftest::test_get_option_html_page): New.
24136 (selftest::opts_c_tests): New.
24137 * selftest-run-tests.c (selftest::run_tests): Call
24138 selftest::opts_c_tests.
24139 * selftest.h (selftest::opts_c_tests): New decl.
24141 2020-04-27 Richard Sandiford <richard.sandiford@arm.com>
24143 * config/arm/arm-builtins.c (arm_expand_builtin_args): Only apply
24144 UINTVAL to CONST_INTs.
24146 2020-04-27 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
24148 * config/arm/constraints.md (e): Remove constraint.
24149 (Te): Define constraint.
24150 * config/arm/mve.md (vaddvq_<supf><mode>): Modify constraint in
24151 operand 0 from "e" to "Te".
24152 (vaddvaq_<supf><mode>): Likewise.
24153 (vaddvq_p_<supf><mode>): Likewise.
24154 (vmladavq_<supf><mode>): Likewise.
24155 (vmladavxq_s<mode>): Likewise.
24156 (vmlsdavq_s<mode>): Likewise.
24157 (vmlsdavxq_s<mode>): Likewise.
24158 (vaddvaq_p_<supf><mode>): Likewise.
24159 (vmladavaq_<supf><mode>): Likewise.
24160 (vmladavq_p_<supf><mode>): Likewise.
24161 (vmladavxq_p_s<mode>): Likewise.
24162 (vmlsdavq_p_s<mode>): Likewise.
24163 (vmlsdavxq_p_s<mode>): Likewise.
24164 (vmlsdavaxq_s<mode>): Likewise.
24165 (vmlsdavaq_s<mode>): Likewise.
24166 (vmladavaxq_s<mode>): Likewise.
24167 (vmladavaq_p_<supf><mode>): Likewise.
24168 (vmladavaxq_p_s<mode>): Likewise.
24169 (vmlsdavaq_p_s<mode>): Likewise.
24170 (vmlsdavaxq_p_s<mode>): Likewise.
24172 2020-04-27 Andre Vieira <andre.simoesdiasvieira@arm.com>
24174 * config/arm/arm.c (output_move_neon): Only get the first operand if
24177 2020-04-27 Felix Yang <felix.yang@huawei.com>
24179 PR tree-optimization/94784
24180 * tree-ssa-forwprop.c (simplify_vector_constructor): Flip the
24181 assert around so that it checks that the two vectors have equal
24182 TYPE_VECTOR_SUBPARTS and that converting the corresponding element
24183 types is a useless_type_conversion_p.
24185 2020-04-27 Szabolcs Nagy <szabolcs.nagy@arm.com>
24188 * dwarf2cfi.c (struct GTY): Add ra_mangled.
24189 (cfi_row_equal_p): Check ra_mangled.
24190 (dwarf2out_frame_debug_cfa_window_save): Remove the argument,
24191 this only handles the sparc logic now.
24192 (dwarf2out_frame_debug_cfa_toggle_ra_mangle): New function for
24193 the aarch64 specific logic.
24194 (dwarf2out_frame_debug): Update to use the new subroutines.
24195 (change_cfi_row): Check ra_mangled.
24197 2020-04-27 Jakub Jelinek <jakub@redhat.com>
24200 * config/s390/s390.c (s390_function_arg_vector,
24201 s390_function_arg_float): Ignore cxx17_empty_base_field_p fields.
24203 2020-04-27 Jiufu Guo <guojiufu@cn.ibm.com>
24205 * common/config/rs6000/rs6000-common.c
24206 (rs6000_option_optimization_table) [OPT_LEVELS_ALL]: Remove turn off
24208 * config/rs6000/rs6000.c (rs6000_option_override_internal): Avoid to
24211 2020-04-27 Martin Liska <mliska@suse.cz>
24214 * cgraph.h (cgraph_node::can_remove_if_no_direct_calls_and_refs_p):
24215 Do not remove ifunc_resolvers in remove unreachable nodes in LTO.
24217 2020-04-27 Xiong Hu Luo <luoxhu@linux.ibm.com>
24220 * config/rs6000/rs6000-logue.c (frame_pointer_needed_indeed):
24222 (rs6000_emit_prologue_components):
24223 Check with frame_pointer_needed_indeed.
24224 (rs6000_emit_epilogue_components): Likewise.
24225 (rs6000_emit_prologue): Likewise.
24226 (rs6000_emit_epilogue): Set frame_pointer_needed_indeed.
24228 2020-04-25 David Edelsohn <dje.gcc@gmail.com>
24230 * config/rs6000/rs6000-logue.c (rs6000_stack_info): Don't push a
24231 stack frame when debugging and flag_compare_debug is enabled.
24233 2020-04-25 Michael Meissner <meissner@linux.ibm.com>
24235 * config/rs6000/linux64.h (PCREL_SUPPORTED_BY_OS): Define to
24236 enable PC-relative addressing for -mcpu=future.
24237 * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Move
24238 after OTHER_FUTURE_MASKS. Use OTHER_FUTURE_MASKS.
24239 * config/rs6000/rs6000.c (PCREL_SUPPORTED_BY_OS): If not defined,
24240 suppress PC-relative addressing.
24241 (rs6000_option_override_internal): Split up error messages
24242 checking for -mprefixed and -mpcrel. Enable -mpcrel if the target
24243 system supports it.
24245 2020-04-25 Jakub Jelinek <jakub@redhat.com>
24246 Richard Biener <rguenther@suse.de>
24248 PR tree-optimization/94734
24249 PR tree-optimization/89430
24250 * tree-ssa-phiopt.c: Include tree-eh.h.
24251 (cond_store_replacement): Return false if an automatic variable
24252 access could trap. If -fstore-data-races, don't return false
24253 just because an automatic variable is addressable.
24255 2020-04-24 Andrew Stubbs <ams@codesourcery.com>
24257 * config/gcn/gcn-valu.md (add<mode>_zext_dup2_exec): Fix merge
24259 (add<mode>_sext_dup2_exec): Likewise.
24261 2020-04-24 Segher Boessenkool <segher@kernel.crashing.org>
24264 * config/rs6000/vector.md (vec_shr_<mode> for VEC_L): Correct little
24265 endian byteshift_val calculation.
24267 2020-04-24 Andrew Stubbs <ams@codesourcery.com>
24269 * config/gcn/gcn.md (*mov<mode>_insn): Only split post-reload.
24271 2020-04-24 Richard Sandiford <richard.sandiford@arm.com>
24273 * config/aarch64/arm_sve.h: Add a comment.
24275 2020-04-24 Haijian Zhang <z.zhanghaijian@huawei.com>
24277 PR rtl-optimization/94708
24278 * combine.c (simplify_if_then_else): Add check for
24279 !HONOR_NANS (mode) && !HONOR_SIGNED_ZEROS (mode).
24281 2020-04-23 Martin Sebor <msebor@redhat.com>
24284 * common.opt (-Wno-frame-larger-than): New option.
24285 (-Wno-larger-than, -Wno-stack-usage): Same.
24287 2020-04-23 Andrew Stubbs <ams@codesourcery.com>
24289 * config/gcn/gcn-valu.md (mov<mode>_exec): Swap the numbers on operands
24291 (mov<mode>_exec): Likewise.
24292 (trunc<vndi><mode>2_exec): Swap parameters to gen_mov<mode>_exec.
24293 (<convop><mode><vndi>2_exec): Likewise.
24295 2019-04-23 Eric Botcazou <ebotcazou@adacore.com>
24297 PR tree-optimization/94717
24298 * gimple-ssa-store-merging.c (try_coalesce_bswap): Return false if one
24299 of the stores doesn't have the same landing pad number as the first.
24300 (coalesce_immediate_stores): Do not try to coalesce the store using
24301 bswap if it doesn't have the same landing pad number as the first.
24303 2020-04-23 Bill Schmidt <wschmidt@linux.ibm.com>
24305 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
24306 Replace outdated link to ELFv2 ABI.
24308 2020-04-23 Jakub Jelinek <jakub@redhat.com>
24311 * optabs.c (expand_vec_perm_const): For shift_amt const0_rtx
24314 PR middle-end/94724
24315 * tree.c (get_narrower): Instead of creating COMPOUND_EXPRs
24316 temporarily with non-final second operand and updating it later,
24317 push COMPOUND_EXPRs into a vector and process it in reverse,
24318 creating COMPOUND_EXPRs with the final operands.
24320 2020-04-23 Szabolcs Nagy <szabolcs.nagy@arm.com>
24323 * config/aarch64/aarch64-bti-insert.c (rest_of_insert_bti): Swap
24324 bti c and bti j handling.
24326 2020-04-23 Andrew Stubbs <ams@codesourcery.com>
24327 Thomas Schwinge <thomas@codesourcery.com>
24329 PR middle-end/93488
24331 * omp-expand.c (expand_omp_target): Use force_gimple_operand_gsi on
24332 t_async and the wait arguments.
24334 2020-04-23 Richard Sandiford <richard.sandiford@arm.com>
24336 PR tree-optimization/94727
24337 * tree-vect-stmts.c (vectorizable_comparison): Use mask_type when
24338 comparing invariant scalar booleans.
24340 2020-04-23 Matthew Malcomson <matthew.malcomson@arm.com>
24341 Jakub Jelinek <jakub@redhat.com>
24344 * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Account for C++17
24345 empty base class artificial fields.
24346 (aarch64_vfp_is_call_or_return_candidate): Warn when ABI PCS decision is
24347 different after this fix.
24349 2020-04-23 Jakub Jelinek <jakub@redhat.com>
24352 * config/rs6000/rs6000-call.c (rs6000_discover_homogeneous_aggregate):
24353 Use TYPE_UID (TYPE_MAIN_VARIANT (type)) instead of type to check
24354 if the same type has been diagnosed most recently already.
24356 2020-04-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
24358 * config/arm/arm_mve.h (__arm_vbicq_n_u16): Modify function parameter's
24360 (__arm_vbicq_n_s16): Likewise.
24361 (__arm_vbicq_n_u32): Likewise.
24362 (__arm_vbicq_n_s32): Likewise.
24363 (__arm_vbicq): Likewise.
24364 (__arm_vbicq_n_s16): Modify MVE polymorphic variant argument's datatype.
24365 (__arm_vbicq_n_s32): Likewise.
24366 (__arm_vbicq_n_u16): Likewise.
24367 (__arm_vbicq_n_u32): Likewise.
24368 (__arm_vdupq_m_n_s8): Likewise.
24369 (__arm_vdupq_m_n_s16): Likewise.
24370 (__arm_vdupq_m_n_s32): Likewise.
24371 (__arm_vdupq_m_n_u8): Likewise.
24372 (__arm_vdupq_m_n_u16): Likewise.
24373 (__arm_vdupq_m_n_u32): Likewise.
24374 (__arm_vdupq_m_n_f16): Likewise.
24375 (__arm_vdupq_m_n_f32): Likewise.
24376 (__arm_vldrhq_gather_offset_s16): Likewise.
24377 (__arm_vldrhq_gather_offset_s32): Likewise.
24378 (__arm_vldrhq_gather_offset_u16): Likewise.
24379 (__arm_vldrhq_gather_offset_u32): Likewise.
24380 (__arm_vldrhq_gather_offset_f16): Likewise.
24381 (__arm_vldrhq_gather_offset_z_s16): Likewise.
24382 (__arm_vldrhq_gather_offset_z_s32): Likewise.
24383 (__arm_vldrhq_gather_offset_z_u16): Likewise.
24384 (__arm_vldrhq_gather_offset_z_u32): Likewise.
24385 (__arm_vldrhq_gather_offset_z_f16): Likewise.
24386 (__arm_vldrhq_gather_shifted_offset_s16): Likewise.
24387 (__arm_vldrhq_gather_shifted_offset_s32): Likewise.
24388 (__arm_vldrhq_gather_shifted_offset_u16): Likewise.
24389 (__arm_vldrhq_gather_shifted_offset_u32): Likewise.
24390 (__arm_vldrhq_gather_shifted_offset_f16): Likewise.
24391 (__arm_vldrhq_gather_shifted_offset_z_s16): Likewise.
24392 (__arm_vldrhq_gather_shifted_offset_z_s32): Likewise.
24393 (__arm_vldrhq_gather_shifted_offset_z_u16): Likewise.
24394 (__arm_vldrhq_gather_shifted_offset_z_u32): Likewise.
24395 (__arm_vldrhq_gather_shifted_offset_z_f16): Likewise.
24396 (__arm_vldrwq_gather_offset_s32): Likewise.
24397 (__arm_vldrwq_gather_offset_u32): Likewise.
24398 (__arm_vldrwq_gather_offset_f32): Likewise.
24399 (__arm_vldrwq_gather_offset_z_s32): Likewise.
24400 (__arm_vldrwq_gather_offset_z_u32): Likewise.
24401 (__arm_vldrwq_gather_offset_z_f32): Likewise.
24402 (__arm_vldrwq_gather_shifted_offset_s32): Likewise.
24403 (__arm_vldrwq_gather_shifted_offset_u32): Likewise.
24404 (__arm_vldrwq_gather_shifted_offset_f32): Likewise.
24405 (__arm_vldrwq_gather_shifted_offset_z_s32): Likewise.
24406 (__arm_vldrwq_gather_shifted_offset_z_u32): Likewise.
24407 (__arm_vldrwq_gather_shifted_offset_z_f32): Likewise.
24408 (__arm_vdwdupq_x_n_u8): Likewise.
24409 (__arm_vdwdupq_x_n_u16): Likewise.
24410 (__arm_vdwdupq_x_n_u32): Likewise.
24411 (__arm_viwdupq_x_n_u8): Likewise.
24412 (__arm_viwdupq_x_n_u16): Likewise.
24413 (__arm_viwdupq_x_n_u32): Likewise.
24414 (__arm_vidupq_x_n_u8): Likewise.
24415 (__arm_vddupq_x_n_u8): Likewise.
24416 (__arm_vidupq_x_n_u16): Likewise.
24417 (__arm_vddupq_x_n_u16): Likewise.
24418 (__arm_vidupq_x_n_u32): Likewise.
24419 (__arm_vddupq_x_n_u32): Likewise.
24420 (__arm_vldrdq_gather_offset_s64): Likewise.
24421 (__arm_vldrdq_gather_offset_u64): Likewise.
24422 (__arm_vldrdq_gather_offset_z_s64): Likewise.
24423 (__arm_vldrdq_gather_offset_z_u64): Likewise.
24424 (__arm_vldrdq_gather_shifted_offset_s64): Likewise.
24425 (__arm_vldrdq_gather_shifted_offset_u64): Likewise.
24426 (__arm_vldrdq_gather_shifted_offset_z_s64): Likewise.
24427 (__arm_vldrdq_gather_shifted_offset_z_u64): Likewise.
24428 (__arm_vidupq_m_n_u8): Likewise.
24429 (__arm_vidupq_m_n_u16): Likewise.
24430 (__arm_vidupq_m_n_u32): Likewise.
24431 (__arm_vddupq_m_n_u8): Likewise.
24432 (__arm_vddupq_m_n_u16): Likewise.
24433 (__arm_vddupq_m_n_u32): Likewise.
24434 (__arm_vidupq_n_u16): Likewise.
24435 (__arm_vidupq_n_u32): Likewise.
24436 (__arm_vidupq_n_u8): Likewise.
24437 (__arm_vddupq_n_u16): Likewise.
24438 (__arm_vddupq_n_u32): Likewise.
24439 (__arm_vddupq_n_u8): Likewise.
24441 2020-04-23 Iain Buclaw <ibuclaw@gdcproject.org>
24443 * doc/install.texi (D-Specific Options): Document
24444 --enable-libphobos-checking and --with-libphobos-druntime-only.
24446 2020-04-23 Jakub Jelinek <jakub@redhat.com>
24449 * config/rs6000/rs6000-call.c (rs6000_aggregate_candidate): Add
24450 cxx17_empty_base_seen argument. Pass it to recursive calls.
24451 Ignore cxx17_empty_base_field_p fields after setting
24452 *cxx17_empty_base_seen to true.
24453 (rs6000_discover_homogeneous_aggregate): Adjust
24454 rs6000_aggregate_candidate caller. With -Wpsabi, diagnose homogeneous
24455 aggregates with C++17 empty base fields.
24458 * attribs.c (decl_attribute): Don't diagnose attribute exclusions
24459 if last_decl is error_mark_node or has such a TREE_TYPE.
24462 * attribs.c (decl_attribute): Don't diagnose attribute exclusions
24463 if last_decl is error_mark_node or has such a TREE_TYPE.
24465 2020-04-22 Felix Yang <felix.yang@huawei.com>
24468 * config/aarch64/aarch64.h (TARGET_SVE):
24469 Add && !TARGET_GENERAL_REGS_ONLY.
24470 (TARGET_SVE2): Add && TARGET_SVE.
24471 (TARGET_SVE2_AES, TARGET_SVE2_BITPERM, TARGET_SVE2_SHA3,
24472 TARGET_SVE2_SM4): Add && TARGET_SVE2.
24473 * config/aarch64/aarch64-sve-builtins.h
24474 (sve_switcher::m_old_general_regs_only): New member.
24475 * config/aarch64/aarch64-sve-builtins.cc (check_required_registers):
24477 (reported_missing_registers_p): New variable.
24478 (check_required_extensions): Call check_required_registers before
24479 return if all required extenstions are present.
24480 (sve_switcher::sve_switcher): Save TARGET_GENERAL_REGS_ONLY in
24481 m_old_general_regs_only and clear MASK_GENERAL_REGS_ONLY in
24482 global_options.x_target_flags.
24483 (sve_switcher::~sve_switcher): Set MASK_GENERAL_REGS_ONLY in
24484 global_options.x_target_flags if m_old_general_regs_only is true.
24486 2020-04-22 Zackery Spytz <zspytz@gmail.com>
24488 * doc/extend.exi: Add "free" to list of other builtin functions
24491 2020-04-20 Aaron Sawdey <acsawdey@linux.ibm.com>
24494 * config/rs6000/sync.md (load_quadpti): Add attr "prefixed"
24495 if TARGET_PREFIXED.
24496 (store_quadpti): Ditto.
24497 (atomic_load<mode>): Do not swap doublewords if TARGET_PREFIXED as
24498 plq will be used and doesn't need it.
24499 (atomic_store<mode>): Ditto, for pstq.
24501 2020-04-22 Erick Ochoa <erick.ochoa@theobroma-systems.com>
24503 * doc/invoke.texi: Update flags turned on by -O3.
24505 2020-04-22 Jakub Jelinek <jakub@redhat.com>
24508 * config/ia64/ia64.c (hfa_element_mode): Ignore
24509 cxx17_empty_base_field_p fields.
24512 * calls.h (cxx17_empty_base_field_p): Declare.
24513 * calls.c (cxx17_empty_base_field_p): Define.
24515 2020-04-22 Christophe Lyon <christophe.lyon@linaro.org>
24517 * doc/sourcebuild.texi (arm_softfp_ok, arm_hard_ok): Document.
24519 2020-04-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24520 Andre Vieira <andre.simoesdiasvieira@arm.com>
24521 Mihail Ionescu <mihail.ionescu@arm.com>
24523 * config/arm/arm.c (arm_file_start): Handle isa_bit_quirk_no_asmcpu.
24524 * config/arm/arm-cpus.in (quirk_no_asmcpu): Define.
24525 (ALL_QUIRKS): Add quirk_no_asmcpu.
24526 (cortex-m55): Define new cpu.
24527 * config/arm/arm-tables.opt: Regenerate.
24528 * config/arm/arm-tune.md: Likewise.
24529 * doc/invoke.texi (Arm Options): Document -mcpu=cortex-m55.
24531 2020-04-22 Richard Sandiford <richard.sandiford@arm.com>
24533 PR tree-optimization/94700
24534 * tree-ssa-forwprop.c (simplify_vector_constructor): When processing
24535 an identity constructor, use a VIEW_CONVERT_EXPR to handle mixtures
24536 of similarly-structured but distinct vector types.
24538 2020-04-21 Martin Sebor <msebor@redhat.com>
24540 PR middle-end/94647
24541 * gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Correct
24542 the computation of the lower bound of the source access size.
24543 (builtin_access::generic_overlap): Remove a hack for setting ranges
24544 of overlap offsets.
24546 2020-04-21 John David Anglin <danglin@gcc.gnu.org>
24548 * config/pa/som.h (ASM_WEAKEN_LABEL): Delete.
24549 (ASM_WEAKEN_DECL): New define.
24550 (HAVE_GAS_WEAKREF): Undefine.
24552 2020-04-21 Richard Sandiford <richard.sandiford@arm.com>
24554 PR tree-optimization/94683
24555 * tree-ssa-forwprop.c (simplify_vector_constructor): Use a
24556 VIEW_CONVERT_EXPR to handle mixtures of similarly-structured
24557 but distinct vector types.
24559 2020-04-21 Jakub Jelinek <jakub@redhat.com>
24562 * stor-layout.c (place_field, finalize_record_size): Don't emit
24563 -Wpadded warning on TYPE_ARTIFICIAL rli->t.
24564 * ubsan.c (ubsan_get_type_descriptor_type,
24565 ubsan_get_source_location_type, ubsan_create_data): Set
24567 * asan.c (asan_global_struct): Likewise.
24569 2020-04-21 Duan bo <duanbo3@huawei.com>
24572 * config/aarch64/aarch64.c: Add an error message for option conflict.
24573 * doc/invoke.texi (-mcmodel=large): Mention that -mcmodel=large is
24574 incompatible with -fpic, -fPIC and -mabi=ilp32.
24576 2020-04-21 Frederik Harwath <frederik@codesourcery.com>
24579 * omp-low.c (new_omp_context): Remove assignments to
24580 ctx->outer_reduction_clauses and ctx->local_reduction_clauses.
24582 2020-04-20 Andreas Krebbel <krebbel@linux.ibm.com>
24584 * config/s390/vector.md ("popcountv8hi2_vx", "popcountv4si2_vx")
24585 ("popcountv2di2_vx"): Use simplify_gen_subreg.
24587 2020-04-20 Andreas Krebbel <krebbel@linux.ibm.com>
24590 * config/s390/s390-builtin-types.def: Add 3 new function modes.
24591 * config/s390/s390-builtins.def: Add mode dependent low-level
24592 builtin and map the overloaded builtins to these.
24593 * config/s390/vx-builtins.md ("vec_selV_HW"): Rename to ...
24594 ("vsel<V_HW"): ... this and rewrite the pattern with bitops.
24596 2020-04-20 Richard Sandiford <richard.sandiford@arm.com>
24598 * tree-vect-loop.c (vect_better_loop_vinfo_p): If old_loop_vinfo
24599 has a variable VF, prefer new_loop_vinfo if it is cheaper for the
24600 estimated VF and is no worse at double the estimated VF.
24602 2020-04-20 Richard Sandiford <richard.sandiford@arm.com>
24605 * config/aarch64/aarch64.c (aarch64_sve_expand_vector_init): Fix
24606 order of arguments to rtx_vector_builder.
24607 (aarch64_sve_expand_vector_init_handle_trailing_constants): Likewise.
24608 When extending the trailing constants to a full vector, replace any
24609 variables with zeros.
24611 2020-04-20 Jan Hubicka <hubicka@ucw.cz>
24614 * tree-inline.c (optimize_inline_calls): Recompute calls_comdat_local
24617 2020-04-20 Martin Liska <mliska@suse.cz>
24619 * symtab.c (symtab_node::dump_references): Add space after
24621 (symtab_node::dump_referring): Likewise.
24623 2020-04-18 Jeff Law <law@redhat.com>
24626 * regrename.c (check_new_reg_p): Ignore DEBUG_INSNs when walking
24629 2020-04-18 Iain Buclaw <ibuclaw@gdcproject.org>
24631 * doc/sourcebuild.texi (Effective-Target Keywords, Environment
24632 attributes): Document d_runtime_has_std_library.
24634 2020-04-17 Jeff Law <law@redhat.com>
24636 PR rtl-optimization/90275
24637 * cse.c (cse_insn): Avoid recording nop sets in multi-set parallels
24638 when the destination has a REG_UNUSED note.
24640 2020-04-17 Tobias Burnus <tobias@codesourcery.com>
24642 PR middle-end/94635
24643 * gimplify.c (gimplify_scan_omp_clauses): Turn MAP_TO_PSET to
24646 2020-04-17 Richard Sandiford <richard.sandiford@arm.com>
24648 * config/aarch64/aarch64.c (aarch64_advsimd_ldp_stp_p): New function.
24649 (aarch64_sve_adjust_stmt_cost): Add a vectype parameter. Double the
24650 cost of load and store insns if one loop iteration has enough scalar
24651 elements to use an Advanced SIMD LDP or STP.
24652 (aarch64_add_stmt_cost): Update call accordingly.
24654 2020-04-17 Jakub Jelinek <jakub@redhat.com>
24655 Jeff Law <law@redhat.com>
24658 * config/i386/i386.md (*testqi_ext_3): Use CCZmode rather than
24659 CCNOmode in ix86_match_ccmode if len is equal to <MODE>mode precision,
24660 or pos + len >= 32, or pos + len is equal to operands[2] precision
24661 and operands[2] is not a register operand. During splitting perform
24662 SImode AND if operands[0] doesn't have CCZmode and pos + len is
24663 equal to mode precision.
24665 2020-04-17 Richard Biener <rguenther@suse.de>
24668 * cgraphclones.c (cgraph_node::create_clone): Remove duplicate
24670 * dwarf2out.c (dw_val_equal_p): Fix pasto in
24671 dw_val_class_vms_delta comparison.
24672 * optabs.c (expand_binop_directly): Fix pasto in commutation
24674 * tree-ssa-sccvn.c (vn_reference_lookup_pieces): Fix pasto in
24677 2020-04-17 Jakub Jelinek <jakub@redhat.com>
24679 PR rtl-optimization/94618
24680 * cfgrtl.c (delete_insn_and_edges): Set purge not just when
24681 insn is the BB_END of its block, but also when it is only followed
24682 by DEBUG_INSNs in its block.
24684 PR tree-optimization/94621
24685 * tree-inline.c (remap_type_1): Don't dereference NULL TYPE_DOMAIN.
24686 Move id->adjust_array_error_bounds check first in the condition.
24688 2020-04-17 Martin Liska <mliska@suse.cz>
24689 Jonathan Yong <10walls@gmail.com>
24691 PR gcov-profile/94570
24692 * coverage.c (coverage_init): Use separator properly.
24694 2020-04-16 Peter Bergner <bergner@linux.ibm.com>
24696 PR rtl-optimization/93974
24697 * config/rs6000/rs6000.c (TARGET_CANNOT_SUBSTITUTE_MEM_EQUIV_P): Define.
24698 (rs6000_cannot_substitute_mem_equiv_p): New function.
24700 2020-04-16 Martin Jambor <mjambor@suse.cz>
24703 * ipa-inline.h (ipa_saved_clone_sources): Declare.
24704 * ipa-inline-transform.c (ipa_saved_clone_sources): New variable.
24705 (save_inline_function_body): Link the new body holder with the
24707 * cgraph.c: Include ipa-inline.h.
24708 (cgraph_edge::redirect_call_stmt_to_callee): Try to find the decl from
24709 the statement in ipa_saved_clone_sources.
24710 * cgraphunit.c: Include ipa-inline.h.
24711 (expand_all_functions): Free ipa_saved_clone_sources.
24713 2020-04-16 Richard Sandiford <richard.sandiford@arm.com>
24716 * config/aarch64/aarch64.c (aarch64_expand_sve_const_pred_eor): Take
24717 the VNx16BI lowpart of the recursively-generated constant.
24719 2020-04-16 Martin Liska <mliska@suse.cz>
24720 Jakub Jelinek <jakub@redhat.com>
24723 * cgraphclones.c (set_new_clone_decl_and_node_flags): Drop
24724 DECL_IS_REPLACEABLE_OPERATOR during cloning.
24725 * tree-ssa-dce.c (valid_new_delete_pair_p): New function.
24726 (propagate_necessity): Check operator names.
24728 2020-04-16 Richard Sandiford <richard.sandiford@arm.com>
24730 PR rtl-optimization/94605
24731 * early-remat.c (early_remat::process_block): Handle insns that
24732 set multiple candidate registers.
24733 2020-04-16 Jan Hubicka <hubicka@ucw.cz>
24735 PR gcov-profile/93401
24736 * common.opt (profile-prefix-path): New option.
24737 * coverae.c: Include diagnostics.h.
24738 (coverage_init): Strip profile prefix path.
24739 * doc/invoke.texi (-fprofile-prefix-path): Document.
24741 2020-04-16 Richard Biener <rguenther@suse.de>
24743 PR middle-end/94614
24744 * expr.c (emit_move_multi_word): Do not generate code when
24745 the destination part is undefined_operand_subword_p.
24746 * lower-subreg.c (resolve_clobber): Look through a paradoxica
24749 2020-04-16 Martin Jambor <mjambor@suse.cz>
24751 PR tree-optimization/94598
24752 * tree-sra.c (verify_sra_access_forest): Fix verification of total
24753 scalarization accesses under access to one-element arrays.
24755 2020-04-16 Jakub Jelinek <jakub@redhat.com>
24758 * function.c (assign_parm_find_data_types): Add workaround for
24759 BROKEN_VALUE_INITIALIZATION compilers.
24761 2020-04-16 Richard Biener <rguenther@suse.de>
24763 * gdbhooks.py (TreePrinter): Print SSA_NAME_VERSION of SSA_NAME
24766 2020-04-15 Uroš Bizjak <ubizjak@gmail.com>
24769 * config/i386/i386-builtin.def (__builtin_ia32_movq128):
24770 Require OPTION_MASK_ISA_SSE2.
24772 2020-04-15 Gustavo Romero <gromero@linux.ibm.com>
24775 * dumpfile.c (selftest::temp_dump_context::temp_dump_context):
24776 Don't construct a dump_context temporary to call static method.
24778 2020-04-15 Andrea Corallo <andrea.corallo@arm.com>
24780 * config/aarch64/falkor-tag-collision-avoidance.c
24781 (valid_src_p): Check for aarch64_address_info type before
24782 accessing base field.
24784 2020-04-15 Andre Vieira <andre.simoesdiasvieira@arm.com>
24786 * config/arm/mve.md (mve_vec_duplicate<mode>): New pattern.
24787 (V_sz_elem2): Remove unused mode attribute.
24789 2020-04-15 Matthew Malcomson <matthew.malcomson@arm.com>
24791 * config/arm/arm.md (arm_movdi): Disallow for MVE.
24793 2020-04-15 Richard Biener <rguenther@suse.de>
24795 PR middle-end/94539
24796 * tree-ssa-alias.c (same_type_for_tbaa): Defer to
24797 alias_sets_conflict_p for pointers.
24799 2020-04-14 Max Filippov <jcmvbkbc@gmail.com>
24802 * config/xtensa/xtensa.md (zero_extendhisi2, zero_extendqisi2)
24803 (extendhisi2_internal): Add %v1 before the load instructions.
24805 2020-04-14 Aaron Sawdey <acsawdey@linux.ibm.com>
24808 * config/rs6000/rs6000.c (address_to_insn_form): Do not attempt to
24809 use PC-relative addressing for TLS references.
24811 2020-04-14 Martin Jambor <mjambor@suse.cz>
24814 * ipa-sra.c: Include internal-fn.h.
24815 (enum isra_scan_context): Update comment.
24816 (scan_function): Treat calls to internal_functions like loads or stores.
24818 2020-04-14 Yang Yang <yangyang305@huawei.com>
24820 PR tree-optimization/94574
24821 * tree-ssa.c (non_rewritable_lvalue_p): Add size check when analyzing
24822 whether a vector-insert is rewritable using a BIT_INSERT_EXPR.
24824 2020-04-14 H.J. Lu <hongjiu.lu@intel.com>
24827 * config/i386/i386.c (ix86_get_ssemov): Remove mode size check.
24829 2020-04-13 Martin Sebor <msebor@redhat.com>
24831 * doc/extend.texi (-Wall): Mention -Wformat-overflow and
24832 -Wformat-truncation. Move -Wzero-length-bounds last.
24833 (-Wrestrict): Document positive form of option enabled by -Wall.
24835 2020-04-13 Zachary Spytz <zspytz@gmail.com>
24837 * doc/extend.texi: Add realloc to list of built-in functions
24838 are recognized by the compiler.
24840 2020-04-13 H.J. Lu <hongjiu.lu@intel.com>
24843 * config/i386/i386.c (ix86_expand_epilogue): Restore the frame
24844 pointer in word_mode for eh_return epilogues.
24846 2020-04-13 Jozef Lawrynowicz <jozef.l@mittosystems.com>
24848 * config/msp430/msp430.c (msp430_print_operand): Don't add offsets to
24849 memory references in %B, %C and %D operand selectors when the inner
24850 operand is a post increment address.
24852 2020-04-13 Jozef Lawrynowicz <jozef.l@mittosystems.com>
24854 * config/msp430/msp430.c (msp430_print_operand): Offset a %C memory
24855 reference by 4 bytes, and %D memory reference by 6 bytes.
24857 2020-04-11 Uroš Bizjak <ubizjak@gmail.com>
24860 * config/i386/sse.md (REDUC_SSE_SMINMAX_MODE): Use TARGET_SSE2
24861 condition for V4SI, V8HI and V16QI modes.
24863 2020-04-11 Jakub Jelinek <jakub@redhat.com>
24867 * cselib.c (cselib_record_sp_cfa_base_equiv): Set PRESERVED_VALUE_P on
24870 2020-04-10 Thomas Schwinge <thomas@codesourcery.com>
24872 PR middle-end/89433
24873 PR middle-end/93465
24874 * omp-general.c (oacc_verify_routine_clauses): Diagnose if
24875 "#pragma omp declare target" has also been applied.
24877 2020-04-09 Jozef Lawrynowicz <jozef.l@mittosystems.com>
24879 * config/msp430/msp430.c (msp430_expand_epilogue): Use emit_jump_insn
24880 when to emit the epilogue_helper insn.
24881 * config/msp430/msp430.md (epilogue_helper): Add a return insn to the
24884 2020-04-09 Jakub Jelinek <jakub@redhat.com>
24887 * cselib.h (cselib_record_sp_cfa_base_equiv,
24888 cselib_sp_derived_value_p): Declare.
24889 * cselib.c (cselib_record_sp_cfa_base_equiv,
24890 cselib_sp_derived_value_p): New functions.
24891 * var-tracking.c (add_stores): Don't record MO_VAL_SET for
24892 cselib_sp_derived_value_p values.
24893 (vt_initialize): Call cselib_record_sp_cfa_base_equiv at the
24894 start of extended basic blocks other than the first one
24895 for !frame_pointer_needed functions.
24897 2020-04-09 Richard Sandiford <richard.sandiford@arm.com>
24899 * doc/sourcebuild.texi (aarch64_sve_hw, aarch64_sve128_hw)
24900 (aarch64_sve256_hw, aarch64_sve512_hw, aarch64_sve1024_hw)
24901 (aarch64_sve2048_hw): Document.
24902 * config/aarch64/aarch64-protos.h
24903 (aarch64_sve::handle_arm_sve_vector_bits_attribute): Declare.
24904 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
24905 __ARM_FEATURE_SVE_VECTOR_OPERATIONS when SVE is enabled.
24906 * config/aarch64/aarch64-sve-builtins.cc (matches_type_p): New
24908 (find_type_suffix_for_scalar_type): Use it instead of comparing
24909 TYPE_MAIN_VARIANTs.
24910 (function_resolver::infer_vector_or_tuple_type): Likewise.
24911 (function_resolver::require_vector_type): Likewise.
24912 (handle_arm_sve_vector_bits_attribute): New function.
24913 * config/aarch64/aarch64.c (pure_scalable_type_info): New class.
24914 (aarch64_attribute_table): Add arm_sve_vector_bits.
24915 (aarch64_return_in_memory_1):
24916 (pure_scalable_type_info::piece::get_rtx): New function.
24917 (pure_scalable_type_info::num_zr): Likewise.
24918 (pure_scalable_type_info::num_pr): Likewise.
24919 (pure_scalable_type_info::get_rtx): Likewise.
24920 (pure_scalable_type_info::analyze): Likewise.
24921 (pure_scalable_type_info::analyze_registers): Likewise.
24922 (pure_scalable_type_info::analyze_array): Likewise.
24923 (pure_scalable_type_info::analyze_record): Likewise.
24924 (pure_scalable_type_info::add_piece): Likewise.
24925 (aarch64_some_values_include_pst_objects_p): Likewise.
24926 (aarch64_returns_value_in_sve_regs_p): Use pure_scalable_type_info
24927 to analyze whether the type is returned in SVE registers.
24928 (aarch64_takes_arguments_in_sve_regs_p): Likwise whether the type
24929 is passed in SVE registers.
24930 (aarch64_pass_by_reference_1): New function, extracted from...
24931 (aarch64_pass_by_reference): ...here. Use pure_scalable_type_info
24932 to analyze whether the type is a pure scalable type and, if so,
24933 whether it should be passed by reference.
24934 (aarch64_return_in_msb): Return false for pure scalable types.
24935 (aarch64_function_value_1): Fold back into...
24936 (aarch64_function_value): ...this function. Use
24937 pure_scalable_type_info to analyze whether the type is a pure
24938 scalable type and, if so, which registers it should use. Handle
24939 types that include pure scalable types but are not themselves
24940 pure scalable types.
24941 (aarch64_return_in_memory_1): New function, split out from...
24942 (aarch64_return_in_memory): ...here. Use pure_scalable_type_info
24943 to analyze whether the type is a pure scalable type and, if so,
24944 whether it should be returned by reference.
24945 (aarch64_layout_arg): Remove orig_mode argument. Use
24946 pure_scalable_type_info to analyze whether the type is a pure
24947 scalable type and, if so, which registers it should use. Handle
24948 types that include pure scalable types but are not themselves
24949 pure scalable types.
24950 (aarch64_function_arg): Update call accordingly.
24951 (aarch64_function_arg_advance): Likewise.
24952 (aarch64_pad_reg_upward): On big-endian targets, return false for
24953 pure scalable types that are smaller than 16 bytes.
24954 (aarch64_member_type_forces_blk): New function.
24955 (aapcs_vfp_sub_candidate): Exit early for built-in SVE types.
24956 (aarch64_short_vector_p): Return false for VECTOR_TYPEs that
24957 correspond to built-in SVE types. Do not rely on a vector mode
24958 if the type includes an pure scalable type. When returning true,
24959 assert that the mode is not an SVE mode.
24960 (aarch64_vfp_is_call_or_return_candidate): Do not check for SVE
24961 built-in types here. When returning true, assert that the type
24962 does not have an SVE mode.
24963 (aarch64_can_change_mode_class): Don't allow anything to change
24964 between a predicate mode and a non-predicate mode. Also don't
24965 allow changes between SVE vector modes and other modes that
24966 might be bigger than 128 bits.
24967 (aarch64_invalid_binary_op): Reject binary operations that mix
24968 SVE and GNU vector types.
24969 (TARGET_MEMBER_TYPE_FORCES_BLK): Define.
24971 2020-04-09 Richard Sandiford <richard.sandiford@arm.com>
24973 * config/aarch64/aarch64.c (aarch64_attribute_table): Add
24974 "SVE sizeless type".
24975 * config/aarch64/aarch64-sve-builtins.cc (make_type_sizeless)
24976 (sizeless_type_p): New functions.
24977 (register_builtin_types): Apply make_type_sizeless to the type.
24978 (register_tuple_type): Likewise.
24979 (verify_type_context): Use sizeless_type_p instead of builin_type_p.
24981 2020-04-09 Matthew Malcomson <matthew.malcomson@arm.com>
24983 * config/arm/arm_cde.h: Remove `extern "C"` when compiling for
24986 2020-04-09 Martin Jambor <mjambor@suse.cz>
24987 Richard Biener <rguenther@suse.de>
24989 PR tree-optimization/94482
24990 * tree-sra.c (create_access_replacement): Dump new replacement with
24992 (sra_modify_expr): Fix handling of cases when the original EXPR writes
24993 to only part of the replacement.
24994 * tree-ssa-forwprop.c (pass_forwprop::execute): Properly verify
24995 the first operand of combinations into REAL/IMAGPART_EXPR and
24998 2020-04-09 Richard Sandiford <richard.sandiford@arm.com>
25000 * doc/sourcebuild.texi (check-function-bodies): Treat the third
25001 parameter as a list of option regexps and require each regexp
25004 2020-04-09 Andrea Corallo <andrea.corallo@arm.com>
25007 * config/aarch64/falkor-tag-collision-avoidance.c
25008 (valid_src_p): Fix missing rtx type check.
25010 2020-04-09 Bin Cheng <bin.cheng@linux.alibaba.com>
25011 Richard Biener <rguenther@suse.de>
25013 PR tree-optimization/93674
25014 * tree-ssa-loop-ivopts.c (langhooks.h): New include.
25015 (add_iv_candidate_for_use): For iv_use of non integer or pointer type,
25016 or non-mode precision type, add candidate in unsigned type with the
25019 2020-04-08 Clement Chigot <clement.chigot@atos.net>
25021 * config/rs6000/aix61.h (LIB_SPEC): Add -lc128 with -mlong-double-128.
25022 * config/rs6000/aix71.h (LIB_SPEC): Likewise.
25023 * config/rs6000/aix72.h (LIB_SPEC): Likewise.
25025 2020-04-08 Jakub Jelinek <jakub@redhat.com>
25027 PR middle-end/94526
25028 * cselib.c (autoinc_split): Handle e->val_rtx being SP_DERIVED_VALUE_P
25030 * reload1.c (eliminate_regs_1): Avoid creating
25031 (plus (reg) (const_int 0)) in DEBUG_INSNs.
25033 PR tree-optimization/94524
25034 * tree-vect-generic.c (expand_vector_divmod): If any elt of op1 is
25035 negative for signed TRUNC_MOD_EXPR, multiply with absolute value of
25036 op1 rather than op1 itself at the end. Punt for signed modulo by
25037 most negative constant.
25038 * tree-vect-patterns.c (vect_recog_divmod_pattern): Punt for signed
25039 modulo by most negative constant.
25041 2020-04-08 Richard Biener <rguenther@suse.de>
25043 PR rtl-optimization/93946
25044 * cse.c (cse_insn): Record the tabled expression in
25045 src_related. Verify a redundant store removal is valid.
25047 2020-04-08 H.J. Lu <hongjiu.lu@intel.com>
25050 * config/i386/i386-features.c (rest_of_insert_endbranch): Insert
25051 ENDBR at function entry if function will be called indirectly.
25053 2020-04-08 Jakub Jelinek <jakub@redhat.com>
25056 * config/i386/i386.c (ix86_get_mask_mode): Only use int mask for elem_size
25059 2020-04-08 Martin Liska <mliska@suse.cz>
25062 * gimple.c (gimple_call_operator_delete_p): Rename to...
25063 (gimple_call_replaceable_operator_delete_p): ... this.
25064 Use DECL_IS_REPLACEABLE_OPERATOR_DELETE_P.
25065 * gimple.h (gimple_call_operator_delete_p): Rename to ...
25066 (gimple_call_replaceable_operator_delete_p): ... this.
25067 * tree-core.h (tree_function_decl): Add replaceable_operator
25069 * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1):
25070 Use DECL_IS_REPLACEABLE_OPERATOR_DELETE_P.
25071 (propagate_necessity): Use gimple_call_replaceable_operator_delete_p.
25072 (eliminate_unnecessary_stmts): Likewise.
25073 * tree-streamer-in.c (unpack_ts_function_decl_value_fields):
25074 Pack DECL_IS_REPLACEABLE_OPERATOR.
25075 * tree-streamer-out.c (pack_ts_function_decl_value_fields):
25076 Unpack the field here.
25077 * tree.h (DECL_IS_REPLACEABLE_OPERATOR): New.
25078 (DECL_IS_REPLACEABLE_OPERATOR_NEW_P): New.
25079 (DECL_IS_REPLACEABLE_OPERATOR_DELETE_P): New.
25080 * cgraph.c (cgraph_node::dump): Dump if an operator is replaceable.
25081 * ipa-icf.c (sem_item::compare_referenced_symbol_properties): Compare
25082 replaceable operator flags.
25084 2020-04-08 Dennis Zhang <dennis.zhang@arm.com>
25085 Matthew Malcomson <matthew.malcomson@arm.com>
25087 * config/arm/arm-builtins.c (CX_IMM_QUALIFIERS): New macro.
25088 (CX_UNARY_QUALIFIERS, CX_BINARY_QUALIFIERS): Likewise.
25089 (CX_TERNARY_QUALIFIERS): Likewise.
25090 (ARM_BUILTIN_CDE_PATTERN_START): Likewise.
25091 (ARM_BUILTIN_CDE_PATTERN_END): Likewise.
25092 (arm_init_acle_builtins): Initialize CDE builtins.
25093 (arm_expand_acle_builtin): Check CDE constant operands.
25094 * config/arm/arm.h (ARM_CDE_CONST_COPROC): New macro to set the range
25095 of CDE constant operand.
25096 * config/arm/arm.c (arm_hard_regno_mode_ok): Support DImode for
25098 (ARM_VCDE_CONST_1, ARM_VCDE_CONST_2, ARM_VCDE_CONST_3): Likewise.
25099 * config/arm/arm_cde.h (__arm_vcx1_u32): New macro of ACLE interface.
25100 (__arm_vcx1a_u32, __arm_vcx2_u32, __arm_vcx2a_u32): Likewise.
25101 (__arm_vcx3_u32, __arm_vcx3a_u32, __arm_vcx1d_u64): Likewise.
25102 (__arm_vcx1da_u64, __arm_vcx2d_u64, __arm_vcx2da_u64): Likewise.
25103 (__arm_vcx3d_u64, __arm_vcx3da_u64): Likewise.
25104 * config/arm/arm_cde_builtins.def: New file.
25105 * config/arm/iterators.md (V_reg): New attribute of SI.
25106 * config/arm/predicates.md (const_int_coproc_operand): New.
25107 (const_int_vcde1_operand, const_int_vcde2_operand): New.
25108 (const_int_vcde3_operand): New.
25109 * config/arm/unspecs.md (UNSPEC_VCDE, UNSPEC_VCDEA): New.
25110 * config/arm/vfp.md (arm_vcx1<mode>): New entry.
25111 (arm_vcx1a<mode>, arm_vcx2<mode>, arm_vcx2a<mode>): Likewise.
25112 (arm_vcx3<mode>, arm_vcx3a<mode>): Likewise.
25114 2020-04-08 Dennis Zhang <dennis.zhang@arm.com>
25116 * config.gcc: Add arm_cde.h.
25117 * config/arm/arm-c.c (arm_cpu_builtins): Define or undefine
25118 __ARM_FEATURE_CDE and __ARM_FEATURE_CDE_COPROC.
25119 * config/arm/arm-cpus.in (cdecp0, cdecp1, ..., cdecp7): New options.
25120 * config/arm/arm.c (arm_option_reconfigure_globals): Configure
25121 arm_arch_cde and arm_arch_cde_coproc to store the feature bits.
25122 * config/arm/arm.h (TARGET_CDE): New macro.
25123 * config/arm/arm_cde.h: New file.
25124 * doc/invoke.texi: Document CDE options +cdecp[0-7].
25125 * doc/sourcebuild.texi (arm_v8m_main_cde_ok): Document new target
25127 (arm_v8m_main_cde_fp, arm_v8_1m_main_cde_mve): Likewise.
25129 2020-04-08 Jakub Jelinek <jakub@redhat.com>
25131 PR rtl-optimization/94516
25132 * postreload.c: Include rtl-iter.h.
25133 (reload_cse_move2add): Handle SP autoinc here by FOR_EACH_SUBRTX_VAR
25134 looking for all MEMs with RTX_AUTOINC operand.
25135 (move2add_note_store): Remove {PRE,POST}_{INC,DEC} handling.
25137 2020-04-08 Tobias Burnus <tobias@codesourcery.com>
25139 * omp-grid.c (grid_eliminate_combined_simd_part): Use
25140 OMP_CLAUSE_CODE to access the omp clause code.
25142 2020-04-07 Jeff Law <law@redhat.com>
25144 PR rtl-optimization/92264
25145 * config/h8300/h8300.md (mov;add peephole2): Avoid applying when
25146 the destination is the stack pointer.
25148 2020-04-07 Jakub Jelinek <jakub@redhat.com>
25150 PR rtl-optimization/94291
25151 PR rtl-optimization/84169
25152 * combine.c (try_combine): For split_i2i3, don't assume SET_DEST
25153 must be a REG or SUBREG of REG; if it is not one of these, don't
25156 2020-04-07 Richard Biener <rguenther@suse.de>
25158 PR middle-end/94479
25159 * gimplify.c (gimplify_addr_expr): Also consider generated
25162 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
25164 * config/arm/arm_mve.h: Add C++ polymorphism and fix preserve MACROs.
25166 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
25168 * config/arm/arm_mve.h: Cast some pointers to expected types.
25170 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
25172 * config/arm/arm_mve.h: Replace all uses of vuninitializedq_* with the
25173 same with '__arm_' prefix.
25175 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
25177 * config/arm/mve.md (mve_vec_extract*): Allow memory operands in set.
25179 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
25181 * config/arm/arm.c (arm_mve_immediate_check): Removed.
25182 * config/arm/mve.md (MVE_pred2, MVE_constraint2): Added FP types.
25183 (mve_vcvtq_n_to_f_*, mve_vcvtq_n_from_f_*, mve_vqshrnbq_n_*,
25184 mve_vqshrntq_n_*, mve_vqshrunbq_n_s*, mve_vqshruntq_n_s*,
25185 mve_vcvtq_m_n_from_f_*, mve_vcvtq_m_n_to_f_*, mve_vqshrnbq_m_n_*,
25186 mve_vqrshruntq_m_n_s*, mve_vqshrunbq_m_n_s*,
25187 mve_vqshruntq_m_n_s*): Fixed immediate constraints.
25189 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
25191 * config/arm/arm.d (ashldi3): Don't use lsll for constant 32-bit shifts.
25193 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
25195 * config/arm/arm_mve.h: Fix v[id]wdup intrinsics.
25196 * config/arm/mve/md: Fix v[id]wdup patterns.
25198 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
25200 * config/arm/arm.c (output_move_neon): Deal with label + offset cases.
25201 * config/arm/mve.md (*mve_mov<mode>): Handle const vectors.
25203 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
25205 * config/arm/arm_mve.h: Remove use of typeof for addr pointer parameters
25206 and remove const_ptr enums.
25208 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
25210 * config/arm/arm_mve.h (vsubq_n): Merge with...
25212 (vmulq_n): Merge with...
25214 (__ARM_mve_typeid): Simplify scalar and constant detection.
25216 2020-04-07 Jakub Jelinek <jakub@redhat.com>
25219 * config/i386/i386-expand.c (expand_vec_perm_pshufb): Fix the check
25220 for inter-lane permutation for 64-byte modes.
25223 * config/aarch64/aarch64-simd.md (ashl<mode>3, lshr<mode>3,
25224 ashr<mode>3): Force operands[2] into reg whenever it is not CONST_INT.
25225 Assume it is a REG after that instead of testing it and doing FAIL
25226 otherwise. Formatting fix.
25228 2020-04-07 Sebastian Huber <sebastian.huber@embedded-brains.de>
25230 * config/rs6000/t-rtems: Delete mcpu=8540 multilib.
25232 2020-04-07 Jakub Jelinek <jakub@redhat.com>
25235 * config/i386/i386-expand.c (emit_reduc_half): For V{64QI,32HI}mode
25236 handle i < 64 using avx512bw_lshrv4ti3. Formatting fixes.
25238 2020-04-06 Jakub Jelinek <jakub@redhat.com>
25240 * cselib.c (cselib_subst_to_values): For SP_DERIVED_VALUE_P
25241 + const0_rtx return the SP_DERIVED_VALUE_P.
25243 2020-04-06 Richard Sandiford <richard.sandiford@arm.com>
25245 PR rtl-optimization/92989
25246 * lra-lives.c (process_bb_lives): Do not treat eh_return data
25247 registers as being live at the beginning of the EH receiver.
25249 2020-04-05 Zachary Spytz <zspytz@gmail.com>
25251 * extend.texi: Add free to list of ISO C90 functions that
25252 are recognized by the compiler.
25254 2020-04-05 Nagaraju Mekala <nmekala@xilix.com>
25256 * config/microblaze/microblaze.c (microblaze_must_save_register): Check
25257 for fast_interrupt.
25259 * config/microblaze/microblaze.md (trap): Update output pattern.
25261 2020-04-04 Hannes Domani <ssbssa@yahoo.de>
25262 Jakub Jelinek <jakub@redhat.com>
25265 * dwarf2out.c (gen_subprogram_die): Look through references, pointers,
25266 arrays, pointer-to-members, function types and qualifiers when
25267 checking if in-class DIE had an 'auto' or 'decltype(auto)' return type
25268 to emit type again on definition.
25270 2020-04-04 Jan Hubicka <hubicka@ucw.cz>
25273 * ipa-fnsummary.c (vrp_will_run_p): New function.
25274 (fre_will_run_p): New function.
25275 (evaluate_properties_for_edge): Use it.
25276 * ipa-inline.c (can_inline_edge_by_limits_p): Do not inline
25277 !optimize_debug to optimize_debug.
25279 2020-04-04 Jakub Jelinek <jakub@redhat.com>
25281 PR rtl-optimization/94468
25282 * cselib.c (references_value_p): Formatting fix.
25283 (cselib_useless_value_p): New function.
25284 (discard_useless_locs, discard_useless_values,
25285 cselib_invalidate_regno_val, cselib_invalidate_mem,
25286 cselib_record_set): Use it instead of
25287 v->locs == 0 && !PRESERVED_VALUE_P (v->val_rtx).
25290 * tree-iterator.h (expr_single): Declare.
25291 * tree-iterator.c (expr_single): New function.
25292 * tree.h (protected_set_expr_location_if_unset): Declare.
25293 * tree.c (protected_set_expr_location): Use expr_single.
25294 (protected_set_expr_location_if_unset): New function.
25296 2020-04-03 Jeff Law <law@redhat.com>
25298 PR rtl-optimization/92264
25299 * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Handle
25300 reloading of auto-increment addressing modes.
25302 2020-04-03 H.J. Lu <hongjiu.lu@intel.com>
25305 * config/i386/sse.md (ssse3_pshufbv8qi3): Mark scratch operand
25308 2020-04-03 Jeff Law <law@redhat.com>
25310 PR rtl-optimization/92264
25311 * config/m32r/m32r.c (m32r_output_block_move): Properly account for
25312 post-increment addressing of source operands as well as residuals
25313 when computing any adjustments to the input pointer.
25315 2020-04-03 Jakub Jelinek <jakub@redhat.com>
25318 * config/i386/sse.md (avx2_ph<plusminus_mnemonic>wv16hi3,
25319 avx2_ph<plusminus_mnemonic>dv8si3): Fix up RTL pattern to do
25320 second half of first lane from first lane of second operand and
25321 first half of second lane from second lane of first operand.
25323 2020-04-03 Andre Vieira <andre.simoesdiasvieira@arm.com>
25325 * config/arm/arm_mve.h: Condition the header file on __ARM_FEATURE_MVE.
25327 2020-04-03 Tamar Christina <tamar.christina@arm.com>
25330 * common/config/aarch64/aarch64-common.c
25331 (aarch64_get_extension_string_for_isa_flags): Handle default flags.
25333 2020-04-03 Richard Biener <rguenther@suse.de>
25335 PR middle-end/94465
25336 * tree.c (array_ref_low_bound): Deal with released SSA names
25339 2020-04-03 Kwok Cheung Yeung <kcy@codesourcery.com>
25341 * config/gcn/gcn.c (print_operand): Handle unordered comparison
25343 * config/gcn/predicates.md (gcn_fp_compare_operator): Add unordered
25344 comparison operators.
25346 2020-04-03 Kewen Lin <linkw@gcc.gnu.org>
25348 PR tree-optimization/94443
25349 * tree-vect-loop.c (vectorizable_live_operation): Use
25350 gsi_insert_seq_before to replace gsi_insert_before.
25352 2020-04-03 Martin Liska <mliska@suse.cz>
25355 * ipa-icf-gimple.c (func_checker::compare_gimple_call):
25356 Compare type attributes for gimple_call_fntypes.
25358 2020-04-02 Sandra Loosemore <sandra@codesourcery.com>
25360 * alias.c (get_alias_set): Fix comment typos.
25362 2020-04-02 Fritz Reese <foreese@gcc.gnu.org>
25365 * fortran/decl.c (match_attr_spec): Lump COMP_STRUCTURE/COMP_MAP into
25366 attribute checking used by TYPE.
25368 2020-04-02 Martin Jambor <mjambor@suse.cz>
25371 * ipa-sra.c (struct caller_issues): New fields candidate and
25372 call_from_outside_comdat.
25373 (check_for_caller_issues): Check for calls from outsied of
25374 candidate's same_comdat_group.
25375 (check_all_callers_for_issues): Set up issues.candidate, check result
25377 (mark_callers_calls_comdat_local): New function.
25378 (process_isra_node_results): Set calls_comdat_local of callers if
25381 2020-04-02 Richard Biener <rguenther@suse.de>
25384 * common.opt (ffinite-loops): Initialize to zero.
25385 * opts.c (default_options_table): Remove OPT_ffinite_loops
25387 * cfgloop.h (loop::finite_p): New member.
25388 * cfgloopmanip.c (copy_loop_info): Copy finite_p.
25389 * ipa-icf-gimple.c (func_checker::compare_loops): Compare
25391 * lto-streamer-in.c (input_cfg): Stream finite_p.
25392 * lto-streamer-out.c (output_cfg): Likewise.
25393 * tree-cfg.c (replace_loop_annotate): Initialize finite_p
25394 from flag_finite_loops at CFG build time.
25395 * tree-ssa-loop-niter.c (finite_loop_p): Check the loops
25396 finite_p flag instead of flag_finite_loops.
25397 * doc/invoke.texi (ffinite-loops): Adjust documentation of
25400 2020-04-02 Richard Biener <rguenther@suse.de>
25403 * dwarf2out.c (dwarf2out_early_finish): Remove code emitting
25404 DW_TAG_imported_unit.
25406 2020-04-02 Maciej W. Rozycki <macro@wdc.com>
25408 * doc/install.texi (Specific) <riscv32-*-elf, riscv32-*-linux>
25409 <riscv64-*-elf, riscv64-*-linux>: Update binutils requirement to
25412 2020-04-02 Kewen Lin <linkw@gcc.gnu.org>
25414 PR tree-optimization/94401
25415 * tree-vect-loop.c (vectorizable_load): Handle VMAT_CONTIGUOUS_REVERSE
25416 access type when loading halves of vector to avoid peeling for gaps.
25418 2020-04-02 Jakub Jelinek <jakub@redhat.com>
25420 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add a space in
25421 between a string literal and MIPS_SYSVERSION_SPEC macro.
25423 2020-04-02 Martin Jambor <mjambor@suse.cz>
25425 * doc/invoke.texi (Optimize Options): Document sra-max-propagations.
25427 2020-04-02 Jakub Jelinek <jakub@redhat.com>
25429 PR rtl-optimization/92264
25430 * params.opt (-param=max-find-base-term-values=): Decrease default
25433 PR rtl-optimization/92264
25434 * rtl.h (struct rtx_def): Mention that call bit is used as
25435 SP_DERIVED_VALUE_P in cselib.c.
25436 * cselib.c (SP_DERIVED_VALUE_P): Define.
25437 (PRESERVED_VALUE_P, SP_BASED_VALUE_P): Move definitions earlier.
25438 (cselib_hasher::equal): Handle equality between SP_DERIVED_VALUE_P
25439 val_rtx and sp based expression where offsets cancel each other.
25440 (preserve_constants_and_equivs): Formatting fix.
25441 (cselib_reset_table): Add reverse op loc to SP_DERIVED_VALUE_P
25442 locs list for cfa_base_preserved_val if needed. Formatting fix.
25443 (autoinc_split): If the to be returned value is a REG, MEM or
25444 VALUE which has SP_DERIVED_VALUE_P + CONST_INT as one of its
25445 locs, return the SP_DERIVED_VALUE_P VALUE and adjust *off.
25446 (rtx_equal_for_cselib_1): Call autoinc_split even if both
25447 expressions are PLUS in Pmode with CONST_INT second operands.
25448 Handle SP_DERIVED_VALUE_P cases.
25449 (cselib_hash_plus_const_int): New function.
25450 (cselib_hash_rtx): Use it for PLUS in Pmode with CONST_INT
25451 second operand, as well as for PRE_DEC etc. that ought to be
25452 hashed the same way.
25453 (cselib_subst_to_values): Substitute PLUS with Pmode and
25454 CONST_INT operand if the first operand is a VALUE which has
25455 SP_DERIVED_VALUE_P + CONST_INT as one of its locs for the
25456 SP_DERIVED_VALUE_P + adjusted offset.
25457 (cselib_lookup_1): When creating a new VALUE for stack_pointer_rtx,
25458 set SP_DERIVED_VALUE_P on it. Set PRESERVED_VALUE_P when adding
25459 SP_DERIVED_VALUE_P PRESERVED_VALUE_P subseted VALUE location.
25460 * var-tracking.c (vt_initialize): Call cselib_add_permanent_equiv
25461 on the sp value before calling cselib_add_permanent_equiv on the
25463 * dse.c (check_for_inc_dec_1, check_for_inc_dec): Punt on RTX_AUTOINC
25464 in the insn without REG_INC note.
25465 (replace_read): Punt on RTX_AUTOINC in the *loc being replaced.
25466 Punt on invalid insns added by copy_to_mode_reg. Formatting fixes.
25469 * config/aarch64/aarch64.c (aarch64_gen_compare_reg_maybe_ze): For
25470 y_mode E_[QH]Imode and y being a CONST_INT, change y_mode to SImode.
25472 2020-04-02 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
25475 * config/arm/arm-builtins.c (LDRGBWBXU_QUALIFIERS): Define.
25476 (LDRGBWBXU_Z_QUALIFIERS): Likewise.
25477 * config/arm/arm_mve.h (__arm_vldrdq_gather_base_wb_s64): Modify
25478 intrinsic defintion by adding a new builtin call to writeback into base
25480 (__arm_vldrdq_gather_base_wb_u64): Likewise.
25481 (__arm_vldrdq_gather_base_wb_z_s64): Likewise.
25482 (__arm_vldrdq_gather_base_wb_z_u64): Likewise.
25483 (__arm_vldrwq_gather_base_wb_s32): Likewise.
25484 (__arm_vldrwq_gather_base_wb_u32): Likewise.
25485 (__arm_vldrwq_gather_base_wb_z_s32): Likewise.
25486 (__arm_vldrwq_gather_base_wb_z_u32): Likewise.
25487 (__arm_vldrwq_gather_base_wb_f32): Likewise.
25488 (__arm_vldrwq_gather_base_wb_z_f32): Likewise.
25489 * config/arm/arm_mve_builtins.def (vldrwq_gather_base_wb_z_u): Modify
25490 builtin's qualifier.
25491 (vldrdq_gather_base_wb_z_u): Likewise.
25492 (vldrwq_gather_base_wb_u): Likewise.
25493 (vldrdq_gather_base_wb_u): Likewise.
25494 (vldrwq_gather_base_wb_z_s): Likewise.
25495 (vldrwq_gather_base_wb_z_f): Likewise.
25496 (vldrdq_gather_base_wb_z_s): Likewise.
25497 (vldrwq_gather_base_wb_s): Likewise.
25498 (vldrwq_gather_base_wb_f): Likewise.
25499 (vldrdq_gather_base_wb_s): Likewise.
25500 (vldrwq_gather_base_nowb_z_u): Define builtin.
25501 (vldrdq_gather_base_nowb_z_u): Likewise.
25502 (vldrwq_gather_base_nowb_u): Likewise.
25503 (vldrdq_gather_base_nowb_u): Likewise.
25504 (vldrwq_gather_base_nowb_z_s): Likewise.
25505 (vldrwq_gather_base_nowb_z_f): Likewise.
25506 (vldrdq_gather_base_nowb_z_s): Likewise.
25507 (vldrwq_gather_base_nowb_s): Likewise.
25508 (vldrwq_gather_base_nowb_f): Likewise.
25509 (vldrdq_gather_base_nowb_s): Likewise.
25510 * config/arm/mve.md (mve_vldrwq_gather_base_nowb_<supf>v4si): Define RTL
25512 (mve_vldrwq_gather_base_wb_<supf>v4si): Modify RTL pattern.
25513 (mve_vldrwq_gather_base_nowb_z_<supf>v4si): Define RTL pattern.
25514 (mve_vldrwq_gather_base_wb_z_<supf>v4si): Modify RTL pattern.
25515 (mve_vldrwq_gather_base_wb_fv4sf): Modify RTL pattern.
25516 (mve_vldrwq_gather_base_nowb_fv4sf): Define RTL pattern.
25517 (mve_vldrwq_gather_base_wb_z_fv4sf): Modify RTL pattern.
25518 (mve_vldrwq_gather_base_nowb_z_fv4sf): Define RTL pattern.
25519 (mve_vldrdq_gather_base_nowb_<supf>v4di): Define RTL pattern.
25520 (mve_vldrdq_gather_base_wb_<supf>v4di): Modify RTL pattern.
25521 (mve_vldrdq_gather_base_nowb_z_<supf>v4di): Define RTL pattern.
25522 (mve_vldrdq_gather_base_wb_z_<supf>v4di): Modify RTL pattern.
25524 2020-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
25526 * config/s390/vector.md ("<ti*>add<mode>3", "mul<mode>3")
25527 ("and<mode>3", "notand<mode>3", "ior<mode>3", "ior_not<mode>3")
25528 ("xor<mode>3", "notxor<mode>3", "smin<mode>3", "smax<mode>3")
25529 ("umin<mode>3", "umax<mode>3", "vec_widen_smult_even_<mode>")
25530 ("vec_widen_umult_even_<mode>", "vec_widen_smult_odd_<mode>")
25531 ("vec_widen_umult_odd_<mode>", "add<mode>3", "sub<mode>3")
25532 ("mul<mode>3", "fma<mode>4", "fms<mode>4", "neg_fma<mode>4")
25533 ("neg_fms<mode>4", "*smax<mode>3_vxe", "*smaxv2df3_vx")
25534 ("*smin<mode>3_vxe", "*sminv2df3_vx"): Remove % constraint
25536 ("vec_widen_umult_lo_<mode>", "vec_widen_umult_hi_<mode>")
25537 ("vec_widen_smult_lo_<mode>", "vec_widen_smult_hi_<mode>"):
25538 Remove constraints from expander.
25539 * config/s390/vx-builtins.md ("vacc<bhfgq>_<mode>", "vacq")
25540 ("vacccq", "vec_avg<mode>", "vec_avgu<mode>", "vec_vmal<mode>")
25541 ("vec_vmah<mode>", "vec_vmalh<mode>", "vec_vmae<mode>")
25542 ("vec_vmale<mode>", "vec_vmao<mode>", "vec_vmalo<mode>")
25543 ("vec_smulh<mode>", "vec_umulh<mode>", "vec_nor<mode>3")
25544 ("vfmin<mode>", "vfmax<mode>"): Remove % constraint modifier.
25546 2020-04-01 Peter Bergner <bergner@linux.ibm.com>
25548 PR rtl-optimization/94123
25549 * lower-subreg.c (pass_lower_subreg3::gate): Remove test for
25550 flag_split_wide_types_early.
25552 2020-04-01 Joerg Sonnenberger <joerg@bec.de>
25554 * doc/extend.texi (Common Function Attributes): Fix typo.
25556 2020-04-01 Segher Boessenkool <segher@kernel.crashing.org>
25559 * config/rs6000/rs6000.md (*tocref<mode> for P): Add insn condition
25562 2020-04-01 Zackery Spytz <zspytz@gmail.com>
25564 * doc/extend.texi: Fix a typo in the documentation of the
25565 copy function attribute.
25567 2020-04-01 Jakub Jelinek <jakub@redhat.com>
25569 PR middle-end/94423
25570 * tree-object-size.c (pass_object_sizes::execute): Don't call
25571 replace_uses_by for SSA_NAME_OCCURS_IN_ABNORMAL_PHI lhs, instead
25572 call replace_call_with_value.
25574 2020-04-01 Kewen Lin <linkw@gcc.gnu.org>
25576 PR tree-optimization/94043
25577 * tree-vect-loop.c (vectorizable_live_operation): Generate loop-closed
25578 phi for vec_lhs and use it for lane extraction.
25580 2020-03-31 Felix Yang <felix.yang@huawei.com>
25582 PR tree-optimization/94398
25583 * tree-vect-stmts.c (vectorizable_store): Instead of calling
25584 vect_supportable_dr_alignment, set alignment_support_scheme to
25585 dr_unaligned_supported for gather-scatter accesses.
25586 (vectorizable_load): Likewise.
25588 2020-03-31 Andrew Stubbs <ams@codesourcery.com>
25590 * config/gcn/gcn-valu.md (V_QI, V_HI, V_HF, V_SI, V_SF, V_DI, V_DF):
25591 New mode iterators.
25592 (vnsi, VnSI, vndi, VnDI): New mode attributes.
25593 (mov<mode>): Use <VnDI> in place of V64DI.
25594 (mov<mode>_exec): Likewise.
25595 (mov<mode>_sgprbase): Likewise.
25596 (reload_out<mode>): Likewise.
25597 (*vec_set<mode>_1): Use GET_MODE_NUNITS instead of constant 64.
25598 (gather_load<mode>v64si): Rename to ...
25599 (gather_load<mode><vnsi>): ... this, and use <VnSI> in place of V64SI,
25600 and <VnDI> in place of V64DI.
25601 (gather<mode>_insn_1offset<exec>): Use <VnDI> in place of V64DI.
25602 (gather<mode>_insn_1offset_ds<exec>): Use <VnSI> in place of V64SI.
25603 (gather<mode>_insn_2offsets<exec>): Use <VnSI> and <VnDI>.
25604 (scatter_store<mode>v64si): Rename to ...
25605 (scatter_store<mode><vnsi>): ... this, and use <VnSI> and <VnDI>.
25606 (scatter<mode>_expr<exec_scatter>): Use <VnSI> and <VnDI>.
25607 (scatter<mode>_insn_1offset<exec_scatter>): Likewise.
25608 (scatter<mode>_insn_1offset_ds<exec_scatter>): Likewise.
25609 (scatter<mode>_insn_2offsets<exec_scatter>): Likewise.
25610 (ds_bpermute<mode>): Use <VnSI>.
25611 (addv64si3_vcc<exec_vcc>): Rename to ...
25612 (add<mode>3_vcc<exec_vcc>): ... this, and use V_SI.
25613 (addv64si3_vcc_dup<exec_vcc>): Rename to ...
25614 (add<mode>3_vcc_dup<exec_vcc>): ... this, and use V_SI.
25615 (addcv64si3<exec_vcc>): Rename to ...
25616 (addc<mode>3<exec_vcc>): ... this, and use V_SI.
25617 (subv64si3_vcc<exec_vcc>): Rename to ...
25618 (sub<mode>3_vcc<exec_vcc>): ... this, and use V_SI.
25619 (subcv64si3<exec_vcc>): Rename to ...
25620 (subc<mode>3<exec_vcc>): ... this, and use V_SI.
25621 (addv64di3): Rename to ...
25622 (add<mode>3): ... this, and use V_DI.
25623 (addv64di3_exec): Rename to ...
25624 (add<mode>3_exec): ... this, and use V_DI.
25625 (subv64di3): Rename to ...
25626 (sub<mode>3): ... this, and use V_DI.
25627 (subv64di3_exec): Rename to ...
25628 (sub<mode>3_exec): ... this, and use V_DI.
25629 (addv64di3_zext): Rename to ...
25630 (add<mode>3_zext): ... this, and use V_DI and <VnSI>.
25631 (addv64di3_zext_exec): Rename to ...
25632 (add<mode>3_zext_exec): ... this, and use V_DI and <VnSI>.
25633 (addv64di3_zext_dup): Rename to ...
25634 (add<mode>3_zext_dup): ... this, and use V_DI and <VnSI>.
25635 (addv64di3_zext_dup_exec): Rename to ...
25636 (add<mode>3_zext_dup_exec): ... this, and use V_DI and <VnSI>.
25637 (addv64di3_zext_dup2): Rename to ...
25638 (add<mode>3_zext_dup2): ... this, and use V_DI and <VnSI>.
25639 (addv64di3_zext_dup2_exec): Rename to ...
25640 (add<mode>3_zext_dup2_exec): ... this, and use V_DI and <VnSI>.
25641 (addv64di3_sext_dup2): Rename to ...
25642 (add<mode>3_sext_dup2): ... this, and use V_DI and <VnSI>.
25643 (addv64di3_sext_dup2_exec): Rename to ...
25644 (add<mode>3_sext_dup2_exec): ... this, and use V_DI and <VnSI>.
25645 (<su>mulv64si3_highpart<exec>): Rename to ...
25646 (<su>mul<mode>3_highpart<exec>): ... this and use V_SI and <VnDI>.
25647 (mulv64di3): Rename to ...
25648 (mul<mode>3): ... this, and use V_DI and <VnSI>.
25649 (mulv64di3_exec): Rename to ...
25650 (mul<mode>3_exec): ... this, and use V_DI and <VnSI>.
25651 (mulv64di3_zext): Rename to ...
25652 (mul<mode>3_zext): ... this, and use V_DI and <VnSI>.
25653 (mulv64di3_zext_exec): Rename to ...
25654 (mul<mode>3_zext_exec): ... this, and use V_DI and <VnSI>.
25655 (mulv64di3_zext_dup2): Rename to ...
25656 (mul<mode>3_zext_dup2): ... this, and use V_DI and <VnSI>.
25657 (mulv64di3_zext_dup2_exec): Rename to ...
25658 (mul<mode>3_zext_dup2_exec): ... this, and use V_DI and <VnSI>.
25659 (<expander>v64di3): Rename to ...
25660 (<expander><mode>3): ... this, and use V_DI and <VnSI>.
25661 (<expander>v64di3_exec): Rename to ...
25662 (<expander><mode>3_exec): ... this, and use V_DI and <VnSI>.
25663 (<expander>v64si3<exec>): Rename to ...
25664 (<expander><mode>3<exec>): ... this, and use V_SI and <VnSI>.
25665 (v<expander>v64si3<exec>): Rename to ...
25666 (v<expander><mode>3<exec>): ... this, and use V_SI and <VnSI>.
25667 (<expander>v64si3<exec>): Rename to ...
25668 (<expander><vnsi>3<exec>): ... this, and use V_SI.
25669 (subv64df3<exec>): Rename to ...
25670 (sub<mode>3<exec>): ... this, and use V_DF.
25671 (truncv64di<mode>2): Rename to ...
25672 (trunc<vndi><mode>2): ... this, and use <VnDI>.
25673 (truncv64di<mode>2_exec): Rename to ...
25674 (trunc<vndi><mode>2_exec): ... this, and use <VnDI>.
25675 (<convop><mode>v64di2): Rename to ...
25676 (<convop><mode><vndi>2): ... this, and use <VnDI>.
25677 (<convop><mode>v64di2_exec): Rename to ...
25678 (<convop><mode><vndi>2_exec): ... this, and use <VnDI>.
25679 (vec_cmp<u>v64qidi): Rename to ...
25680 (vec_cmp<u><mode>di): ... this, and use <VnSI>.
25681 (vec_cmp<u>v64qidi_exec): Rename to ...
25682 (vec_cmp<u><mode>di_exec): ... this, and use <VnSI>.
25683 (vcond_mask_<mode>di): Use <VnDI>.
25684 (maskload<mode>di): Likewise.
25685 (maskstore<mode>di): Likewise.
25686 (mask_gather_load<mode>v64si): Rename to ...
25687 (mask_gather_load<mode><vnsi>): ... this, and use <VnSI> and <VnDI>.
25688 (mask_scatter_store<mode>v64si): Rename to ...
25689 (mask_scatter_store<mode><vnsi>): ... this, and use <VnSI> and <VnDI>.
25690 (*<reduc_op>_dpp_shr_v64di): Rename to ...
25691 (*<reduc_op>_dpp_shr_<mode>): ... this, and use V_DI and <VnSI>.
25692 (*plus_carry_in_dpp_shr_v64si): Rename to ...
25693 (*plus_carry_in_dpp_shr_<mode>): ... this, and use V_SI.
25694 (*plus_carry_dpp_shr_v64di): Rename to ...
25695 (*plus_carry_dpp_shr_<mode>): ... this, and use V_DI and <VnSI>.
25696 (vec_seriesv64si): Rename to ...
25697 (vec_series<mode>): ... this, and use V_SI.
25698 (vec_seriesv64di): Rename to ...
25699 (vec_series<mode>): ... this, and use V_DI.
25701 2020-03-31 Claudiu Zissulescu <claziss@synopsys.com>
25703 * config/arc/arc.c (arc_print_operand): Use
25704 HOST_WIDE_INT_PRINT_DEC macro.
25706 2020-03-31 Claudiu Zissulescu <claziss@synopsys.com>
25708 * config/arc/arc.h (ASM_FORMAT_PRIVATE_NAME): Fix it.
25710 2020-03-31 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
25712 * config/arm/arm_mve.h (vbicq): Define MVE intrinsic polymorphic
25714 (__arm_vbicq): Likewise.
25716 2020-03-31 Vineet Gupta <vgupta@synopsys.com>
25718 * config/arc/linux.h: GLIBC_DYNAMIC_LINKER support BE/arc700.
25720 2020-03-31 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
25722 * config/arm/arm_mve.h (vaddlvq): Move the polymorphic variant to the
25723 common section of both MVE Integer and MVE Floating Point.
25724 (vaddvq): Likewise.
25725 (vaddlvq_p): Likewise.
25726 (vaddvaq): Likewise.
25727 (vaddvq_p): Likewise.
25728 (vcmpcsq): Likewise.
25729 (vmlsdavxq): Likewise.
25730 (vmlsdavq): Likewise.
25731 (vmladavxq): Likewise.
25732 (vmladavq): Likewise.
25733 (vminvq): Likewise.
25734 (vminavq): Likewise.
25735 (vmaxvq): Likewise.
25736 (vmaxavq): Likewise.
25737 (vmlaldavq): Likewise.
25738 (vcmphiq): Likewise.
25739 (vaddlvaq): Likewise.
25740 (vrmlaldavhq): Likewise.
25741 (vrmlaldavhxq): Likewise.
25742 (vrmlsldavhq): Likewise.
25743 (vrmlsldavhxq): Likewise.
25744 (vmlsldavxq): Likewise.
25745 (vmlsldavq): Likewise.
25746 (vabavq): Likewise.
25747 (vrmlaldavhaq): Likewise.
25748 (vcmpgeq_m_n): Likewise.
25749 (vmlsdavxq_p): Likewise.
25750 (vmlsdavq_p): Likewise.
25751 (vmlsdavaxq): Likewise.
25752 (vmlsdavaq): Likewise.
25753 (vaddvaq_p): Likewise.
25754 (vcmpcsq_m_n): Likewise.
25755 (vcmpcsq_m): Likewise.
25756 (vmladavxq_p): Likewise.
25757 (vmladavq_p): Likewise.
25758 (vmladavaxq): Likewise.
25759 (vmladavaq): Likewise.
25760 (vminvq_p): Likewise.
25761 (vminavq_p): Likewise.
25762 (vmaxvq_p): Likewise.
25763 (vmaxavq_p): Likewise.
25764 (vcmphiq_m): Likewise.
25765 (vaddlvaq_p): Likewise.
25766 (vmlaldavaq): Likewise.
25767 (vmlaldavaxq): Likewise.
25768 (vmlaldavq_p): Likewise.
25769 (vmlaldavxq_p): Likewise.
25770 (vmlsldavaq): Likewise.
25771 (vmlsldavaxq): Likewise.
25772 (vmlsldavq_p): Likewise.
25773 (vmlsldavxq_p): Likewise.
25774 (vrmlaldavhaxq): Likewise.
25775 (vrmlaldavhq_p): Likewise.
25776 (vrmlaldavhxq_p): Likewise.
25777 (vrmlsldavhaq): Likewise.
25778 (vrmlsldavhaxq): Likewise.
25779 (vrmlsldavhq_p): Likewise.
25780 (vrmlsldavhxq_p): Likewise.
25781 (vabavq_p): Likewise.
25782 (vmladavaq_p): Likewise.
25783 (vstrbq_scatter_offset): Likewise.
25784 (vstrbq_p): Likewise.
25785 (vstrbq_scatter_offset_p): Likewise.
25786 (vstrdq_scatter_base_p): Likewise.
25787 (vstrdq_scatter_base): Likewise.
25788 (vstrdq_scatter_offset_p): Likewise.
25789 (vstrdq_scatter_offset): Likewise.
25790 (vstrdq_scatter_shifted_offset_p): Likewise.
25791 (vstrdq_scatter_shifted_offset): Likewise.
25792 (vmaxq_x): Likewise.
25793 (vminq_x): Likewise.
25794 (vmovlbq_x): Likewise.
25795 (vmovltq_x): Likewise.
25796 (vmulhq_x): Likewise.
25797 (vmullbq_int_x): Likewise.
25798 (vmullbq_poly_x): Likewise.
25799 (vmulltq_int_x): Likewise.
25800 (vmulltq_poly_x): Likewise.
25801 (vstrbq): Likewise.
25803 2020-03-31 Jakub Jelinek <jakub@redhat.com>
25806 * config/aarch64/constraints.md (Uph): New constraint.
25807 * config/aarch64/atomics.md (cas_short_expected_imm): New mode attr.
25808 (@aarch64_compare_and_swap<mode>): Use it instead of n in operand 2's
25811 2020-03-31 Marc Glisse <marc.glisse@inria.fr>
25812 Jakub Jelinek <jakub@redhat.com>
25814 PR middle-end/94412
25815 * fold-const.c (fold_binary_loc) <case TRUNC_DIV_EXPR>: Use
25816 ANY_INTEGRAL_TYPE_P instead of INTEGRAL_TYPE_P.
25818 2020-03-31 Jakub Jelinek <jakub@redhat.com>
25820 PR tree-optimization/94403
25821 * gimple-ssa-store-merging.c (verify_symbolic_number_p): Allow also
25822 ENUMERAL_TYPE lhs_type.
25824 PR rtl-optimization/94344
25825 * tree-ssa-forwprop.c (simplify_rotate): Handle also same precision
25826 conversions, either on both operands of |^+ or just one. Handle
25827 also extra same precision conversion on RSHIFT_EXPR first operand
25828 provided RSHIFT_EXPR is performed in unsigned type.
25830 2020-03-30 David Malcolm <dmalcolm@redhat.com>
25832 * lra.c (finish_insn_code_data_once): Set the array elements
25833 to NULL after freeing them.
25835 2020-03-30 Andreas Schwab <schwab@suse.de>
25837 * config/host-linux.c (TRY_EMPTY_VM_SPACE) [__riscv && __LP64__]:
25840 2020-03-30 Will Schmidt <will_schmidt@vnet.ibm.com>
25842 * config/rs6000/rs6000-call.c altivec_init_builtins(): Remove code
25843 to skip defining builtins based on builtin_mask.
25845 2020-03-30 Jakub Jelinek <jakub@redhat.com>
25848 * config/i386/sse.md (<mask_codefor>one_cmpl<mode>2<mask_name>): If
25849 !TARGET_AVX512VL, use 512-bit vpternlog and make sure the input
25850 operand is a register. Don't enable masked variants for V*[QH]Imode.
25853 * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Use
25854 <store_mask_constraint> instead of m in output operand constraint.
25855 (vec_extract_hi_<mode><mask_name>): Use <mask_operand2> instead of
25858 2020-03-30 Alan Modra <amodra@gmail.com>
25860 * config/rs6000/rs6000.c (rs6000_call_aix): Emit cookie to pattern.
25861 (rs6000_indirect_call_template_1): Adjust to suit.
25862 * config/rs6000/rs6000.md (call_local): Merge call_local32,
25863 call_local64, and call_local_aix.
25864 (call_value_local): Simlarly.
25865 (call_nonlocal_aix, call_value_nonlocal_aix): Adjust rtl to suit,
25866 and disable pattern when CALL_LONG.
25867 (call_indirect_aix, call_value_indirect_aix): Adjust rtl.
25868 (call_indirect_elfv2, call_indirect_pcrel): Likewise.
25869 (call_value_indirect_elfv2, call_value_indirect_pcrel): Likewise.
25871 2020-03-29 H.J. Lu <hongjiu.lu@intel.com>
25874 * doc/invoke.texi: Update -falign-functions, -falign-loops and
25875 -falign-jumps documentation.
25877 2020-03-29 Martin Liska <mliska@suse.cz>
25880 * cgraphunit.c (process_function_and_variable_attributes): Remove
25881 double 'attribute' words.
25883 2020-03-29 John David Anglin <dave.anglin@bell.net>
25885 * config/pa/pa.c (pa_asm_output_aligned_bss): Delete duplicate
25888 2020-03-28 Jakub Jelinek <jakub@redhat.com>
25891 * c-decl.c (grokdeclarator): After issuing errors, set size_int_const
25892 to true after setting size to integer_one_node.
25894 PR tree-optimization/94329
25895 * tree-ssa-reassoc.c (reassociate_bb): When calling reassoc_remove_stmt
25896 on the last stmt in a bb, make sure gsi_prev isn't done immediately
25899 2020-03-27 Alan Modra <amodra@gmail.com>
25902 * config/rs6000/rs6000.c (rs6000_longcall_ref): Use unspec_volatile
25903 for PLT16_LO and PLT_PCREL.
25904 * config/rs6000/rs6000.md (UNSPEC_PLT16_LO, UNSPEC_PLT_PCREL): Remove.
25905 (UNSPECV_PLT16_LO, UNSPECV_PLT_PCREL): Define.
25906 (pltseq_plt16_lo_, pltseq_plt_pcrel): Use unspec_volatile.
25908 2020-03-27 Martin Sebor <msebor@redhat.com>
25911 * calls.c (init_attr_rdwr_indices): Iterate over all access attributes.
25913 2020-03-27 Andrew Stubbs <ams@codesourcery.com>
25915 * config/gcn/gcn-valu.md:
25916 (VEC_SUBDWORD_MODE): Rename to V_QIHI throughout.
25917 (VEC_1REG_MODE): Delete.
25918 (VEC_1REG_ALT): Delete.
25919 (VEC_ALL1REG_MODE): Rename to V_1REG throughout.
25920 (VEC_1REG_INT_MODE): Delete.
25921 (VEC_ALL1REG_INT_MODE): Rename to V_INT_1REG throughout.
25922 (VEC_ALL1REG_INT_ALT): Rename to V_INT_1REG_ALT throughout.
25923 (VEC_2REG_MODE): Rename to V_2REG throughout.
25924 (VEC_REG_MODE): Rename to V_noHI throughout.
25925 (VEC_ALLREG_MODE): Rename to V_ALL throughout.
25926 (VEC_ALLREG_ALT): Rename to V_ALL_ALT throughout.
25927 (VEC_ALLREG_INT_MODE): Rename to V_INT throughout.
25928 (VEC_INT_MODE): Delete.
25929 (VEC_FP_MODE): Rename to V_FP throughout and move to top.
25930 (VEC_FP_1REG_MODE): Rename to V_FP_1REG throughout and move to top.
25931 (FP_MODE): Delete and replace with FP throughout.
25932 (FP_1REG_MODE): Delete and replace with FP_1REG throughout.
25933 (VCMP_MODE): Rename to V_noQI throughout and move to top.
25934 (VCMP_MODE_INT): Rename to V_INT_noQI throughout and move to top.
25935 * config/gcn/gcn.md (FP): New mode iterator.
25936 (FP_1REG): New mode iterator.
25938 2020-03-27 David Malcolm <dmalcolm@redhat.com>
25940 * doc/invoke.texi (-fdump-analyzer-supergraph): Document that this
25941 now emits two .dot files.
25942 * graphviz.cc (graphviz_out::begin_tr): Only emit a TR, not a TD.
25943 (graphviz_out::end_tr): Only close a TR, not a TD.
25944 (graphviz_out::begin_td): New.
25945 (graphviz_out::end_td): New.
25946 (graphviz_out::begin_trtd): New, replacing the old implementation
25947 of graphviz_out::begin_tr.
25948 (graphviz_out::end_tdtr): New, replacing the old implementation
25949 of graphviz_out::end_tr.
25950 * graphviz.h (graphviz_out::begin_td): New decl.
25951 (graphviz_out::end_td): New decl.
25952 (graphviz_out::begin_trtd): New decl.
25953 (graphviz_out::end_tdtr): New decl.
25955 2020-03-27 Richard Biener <rguenther@suse.de>
25958 * dwarf2out.c (should_emit_struct_debug): Return false for
25961 2020-03-27 Richard Biener <rguenther@suse.de>
25963 PR tree-optimization/94352
25964 * tree-ssa-propagate.c (ssa_prop_init): Move seeding of the
25966 (ssa_propagation_engine::ssa_propagate): ... here after
25967 initializing curr_order.
25969 2020-03-27 Kewen Lin <linkw@gcc.gnu.org>
25971 PR tree-optimization/90332
25972 * tree-vect-stmts.c (vector_vector_composition_type): New function.
25973 (get_group_load_store_type): Adjust to call
25974 vector_vector_composition_type, extend it to construct with scalar
25976 (vectorizable_load): Likewise.
25978 2020-03-27 Roman Zhuykov <zhroma@ispras.ru>
25980 * ddg.c (create_ddg_dep_from_intra_loop_link): Remove assertions.
25981 (create_ddg_dep_no_link): Likewise.
25982 (add_cross_iteration_register_deps): Move debug instruction check.
25983 Other minor refactoring.
25984 (add_intra_loop_mem_dep): Do not check for debug instructions.
25985 (add_inter_loop_mem_dep): Likewise.
25986 (build_intra_loop_deps): Likewise.
25987 (create_ddg): Do not include debug insns into the graph.
25988 * ddg.h (struct ddg): Remove num_debug field.
25989 * modulo-sched.c (doloop_register_get): Adjust condition.
25990 (res_MII): Remove DDG num_debug field usage.
25991 (sms_schedule_by_order): Use assertion against debug insns.
25992 (ps_has_conflicts): Drop debug insn check.
25994 2020-03-26 Jakub Jelinek <jakub@redhat.com>
25997 * tree.c (protected_set_expr_location): Recurse on STATEMENT_LIST
25998 that contains exactly one non-DEBUG_BEGIN_STMT statement.
26001 * gimple.h (gimple_seq_first_nondebug_stmt): New function.
26002 (gimple_seq_last_nondebug_stmt): Don't return NULL if seq contains
26003 a single non-debug stmt followed by one or more debug stmts.
26004 * gimplify.c (gimplify_body): Use gimple_seq_first_nondebug_stmt
26005 instead of gimple_seq_first_stmt, use gimple_seq_first_nondebug_stmt
26006 and gimple_seq_last_nondebug_stmt instead of gimple_seq_first and
26007 gimple_seq_last to check if outer_stmt gbind could be reused and
26008 if yes and it is surrounded by any debug stmts, move them into the
26011 PR rtl-optimization/92264
26012 * var-tracking.c (add_stores): Call cselib_set_value_sp_based even
26013 for sp based values in !frame_pointer_needed
26014 && !ACCUMULATE_OUTGOING_ARGS functions.
26016 2020-03-26 Felix Yang <felix.yang@huawei.com>
26018 PR tree-optimization/94269
26019 * tree-ssa-math-opts.c (convert_plusminus_to_widen): Restrict
26021 operation to single basic block.
26023 2020-03-25 Jeff Law <law@redhat.com>
26025 PR rtl-optimization/90275
26026 * config/sh/sh.md (mov_neg_si_t): Clobber the T register in the
26029 2020-03-25 Jakub Jelinek <jakub@redhat.com>
26032 * config/arm/arm.c (arm_gen_dicompare_reg): Set mode of COMPARE to
26033 mode rather than VOIDmode.
26035 2020-03-25 Martin Sebor <msebor@redhat.com>
26037 PR middle-end/94004
26038 * gimple-ssa-warn-alloca.c (pass_walloca::execute): Issue warnings
26039 even for alloca calls resulting from system macro expansion.
26040 Include inlining context in all warnings.
26042 2020-03-25 Richard Sandiford <richard.sandiford@arm.com>
26045 * config/rs6000/rs6000.c (rs6000_can_change_mode_class): Allow
26046 FPRs to change between SDmode and DDmode.
26048 2020-03-25 Martin Sebor <msebor@redhat.com>
26050 PR tree-optimization/94131
26051 * gimple-fold.c (get_range_strlen_tree): Fail for variable-length
26053 * tree-ssa-strlen.c (get_range_strlen_dynamic): Avoid assuming
26054 types have constant sizes.
26056 2020-03-25 Martin Liska <mliska@suse.cz>
26059 * configure.ac: Report error only when --with-zstd
26061 * configure: Regenerate.
26063 2020-03-25 Jakub Jelinek <jakub@redhat.com>
26066 * config/i386/i386-features.c (ix86_add_reg_usage_to_vzeroupper): Set
26067 INSN_CODE (insn) to -1 when changing the pattern.
26069 2020-03-25 Martin Liska <mliska@suse.cz>
26073 * config/i386/i386-features.c (make_resolver_func): Drop
26074 public flag for resolver.
26075 * config/rs6000/rs6000.c (make_resolver_func): Add comdat
26076 group for resolver and drop public flag if possible.
26077 * multiple_target.c (create_dispatcher_calls): Drop unique_name
26078 and resolution as we want to enable LTO privatization of the default
26081 2020-03-25 Martin Liska <mliska@suse.cz>
26084 * configure.ac: Respect --without-zstd and report
26085 error when we can't find header file with --with-zstd.
26086 * configure: Regenerate.
26088 2020-03-25 Jakub Jelinek <jakub@redhat.com>
26090 PR middle-end/94303
26091 * varasm.c (output_constructor_array_range): If local->index
26092 RANGE_EXPR doesn't start at the current location in the constructor,
26093 skip needed number of bytes using assemble_zeros or assert we don't
26097 * langhooks.c (lhd_set_decl_assembler_name): Use a static ulong
26098 counter instead of DECL_UID.
26100 PR tree-optimization/94300
26101 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): If pd.offset
26102 is positive, make sure that off + size isn't larger than needed_len.
26104 2020-03-25 Richard Biener <rguenther@suse.de>
26105 Jakub Jelinek <jakub@redhat.com>
26108 * tree-if-conv.c (ifcvt_local_dce): Delete dead statements backwards.
26110 2020-03-24 Christophe Lyon <christophe.lyon@linaro.org>
26112 * doc/sourcebuild.texi (ARM-specific attributes): Add
26114 (Features for dg-add-options): Add arm_fp_dp.
26116 2020-03-24 John David Anglin <danglin@gcc.gnu.org>
26119 * config/pa/pa.h (TARGET_CPU_CPP_BUILTINS): Define __BIG_ENDIAN__.
26121 2020-03-24 Tobias Burnus <tobias@codesourcery.com>
26124 * omp-offload.c (omp_finish_file): Fix target-link handling if
26125 targetm_common.have_named_sections is false.
26127 2020-03-24 Jakub Jelinek <jakub@redhat.com>
26130 * config/arm/arm.md (subvdi4, usubvsi4, usubvdi4): Use gen_int_mode
26131 instead of GEN_INT.
26134 * tree-ssa-loop-manip.c (create_iv): If after, set stmt location to
26135 e->goto_locus even if gsi_bb (*incr_pos) contains only debug stmts.
26136 If not after and at *incr_pos is a debug stmt, set stmt location to
26137 location of next non-debug stmt after it if any.
26140 * tree-if-conv.c (ifcvt_local_dce): For gimple debug stmts, just set
26141 GF_PLF_2, but don't add them to worklist. Don't add an assigment to
26142 worklist or set GF_PLF_2 just because it is used in a debug stmt in
26143 another bb. Formatting improvements.
26146 * cgraphunit.c (check_global_declaration): For DECL_EXTERNAL and
26147 non-TREE_PUBLIC non-DECL_ARTIFICIAL FUNCTION_DECLs, set TREE_PUBLIC
26148 regardless of whether TREE_NO_WARNING is set on it or whether
26149 warn_unused_function is true or not.
26151 2020-03-23 Jeff Law <law@redhat.com>
26153 PR rtl-optimization/90275
26156 * simplify-rtx.c (comparison_code_valid_for_mode): New function.
26157 (simplify_logical_relational_operation): Use it.
26159 2020-03-23 Jakub Jelinek <jakub@redhat.com>
26162 * tree.c (get_narrower): Handle COMPOUND_EXPR by recursing on
26163 ultimate rhs and if returned something different, reconstructing
26164 the COMPOUND_EXPRs.
26166 2020-03-23 Lewis Hyatt <lhyatt@gmail.com>
26168 * opts.c (print_filtered_help): Improve the help text for alias options.
26170 2020-03-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
26171 Andre Vieira <andre.simoesdiasvieira@arm.com>
26172 Mihail Ionescu <mihail.ionescu@arm.com>
26174 * config/arm/arm_mve.h (vshlcq_m_s8): Define macro.
26175 (vshlcq_m_u8): Likewise.
26176 (vshlcq_m_s16): Likewise.
26177 (vshlcq_m_u16): Likewise.
26178 (vshlcq_m_s32): Likewise.
26179 (vshlcq_m_u32): Likewise.
26180 (__arm_vshlcq_m_s8): Define intrinsic.
26181 (__arm_vshlcq_m_u8): Likewise.
26182 (__arm_vshlcq_m_s16): Likewise.
26183 (__arm_vshlcq_m_u16): Likewise.
26184 (__arm_vshlcq_m_s32): Likewise.
26185 (__arm_vshlcq_m_u32): Likewise.
26186 (vshlcq_m): Define polymorphic variant.
26187 * config/arm/arm_mve_builtins.def (QUADOP_NONE_NONE_UNONE_IMM_UNONE):
26188 Use builtin qualifier.
26189 (QUADOP_UNONE_UNONE_UNONE_IMM_UNONE): Likewise.
26190 * config/arm/mve.md (mve_vshlcq_m_vec_<supf><mode>): Define RTL pattern.
26191 (mve_vshlcq_m_carry_<supf><mode>): Likewise.
26192 (mve_vshlcq_m_<supf><mode>): Likewise.
26194 2020-03-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
26196 * config/arm/arm-builtins.c (LSLL_QUALIFIERS): Define builtin qualifier.
26197 (UQSHL_QUALIFIERS): Likewise.
26198 (ASRL_QUALIFIERS): Likewise.
26199 (SQSHL_QUALIFIERS): Likewise.
26200 * config/arm/arm_mve.h (__ARM_BIG_ENDIAN): Check to not support MVE in
26202 (sqrshr): Define macro.
26203 (sqrshrl): Likewise.
26204 (sqrshrl_sat48): Likewise.
26206 (sqshll): Likewise.
26208 (srshrl): Likewise.
26209 (uqrshl): Likewise.
26210 (uqrshll): Likewise.
26211 (uqrshll_sat48): Likewise.
26213 (uqshll): Likewise.
26215 (urshrl): Likewise.
26218 (__arm_lsll): Define intrinsic.
26219 (__arm_asrl): Likewise.
26220 (__arm_uqrshll): Likewise.
26221 (__arm_uqrshll_sat48): Likewise.
26222 (__arm_sqrshrl): Likewise.
26223 (__arm_sqrshrl_sat48): Likewise.
26224 (__arm_uqshll): Likewise.
26225 (__arm_urshrl): Likewise.
26226 (__arm_srshrl): Likewise.
26227 (__arm_sqshll): Likewise.
26228 (__arm_uqrshl): Likewise.
26229 (__arm_sqrshr): Likewise.
26230 (__arm_uqshl): Likewise.
26231 (__arm_urshr): Likewise.
26232 (__arm_sqshl): Likewise.
26233 (__arm_srshr): Likewise.
26234 * config/arm/arm_mve_builtins.def (LSLL_QUALIFIERS): Use builtin
26236 (UQSHL_QUALIFIERS): Likewise.
26237 (ASRL_QUALIFIERS): Likewise.
26238 (SQSHL_QUALIFIERS): Likewise.
26239 * config/arm/mve.md (mve_uqrshll_sat<supf>_di): Define RTL pattern.
26240 (mve_sqrshrl_sat<supf>_di): Likewise.
26241 (mve_uqrshl_si): Likewise.
26242 (mve_sqrshr_si): Likewise.
26243 (mve_uqshll_di): Likewise.
26244 (mve_urshrl_di): Likewise.
26245 (mve_uqshl_si): Likewise.
26246 (mve_urshr_si): Likewise.
26247 (mve_sqshl_si): Likewise.
26248 (mve_srshr_si): Likewise.
26249 (mve_srshrl_di): Likewise.
26250 (mve_sqshll_di): Likewise.
26252 2020-03-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
26253 Andre Vieira <andre.simoesdiasvieira@arm.com>
26254 Mihail Ionescu <mihail.ionescu@arm.com>
26256 * config/arm/arm_mve.h (vsetq_lane_f16): Define macro.
26257 (vsetq_lane_f32): Likewise.
26258 (vsetq_lane_s16): Likewise.
26259 (vsetq_lane_s32): Likewise.
26260 (vsetq_lane_s8): Likewise.
26261 (vsetq_lane_s64): Likewise.
26262 (vsetq_lane_u8): Likewise.
26263 (vsetq_lane_u16): Likewise.
26264 (vsetq_lane_u32): Likewise.
26265 (vsetq_lane_u64): Likewise.
26266 (vgetq_lane_f16): Likewise.
26267 (vgetq_lane_f32): Likewise.
26268 (vgetq_lane_s16): Likewise.
26269 (vgetq_lane_s32): Likewise.
26270 (vgetq_lane_s8): Likewise.
26271 (vgetq_lane_s64): Likewise.
26272 (vgetq_lane_u8): Likewise.
26273 (vgetq_lane_u16): Likewise.
26274 (vgetq_lane_u32): Likewise.
26275 (vgetq_lane_u64): Likewise.
26276 (__ARM_NUM_LANES): Likewise.
26277 (__ARM_LANEQ): Likewise.
26278 (__ARM_CHECK_LANEQ): Likewise.
26279 (__arm_vsetq_lane_s16): Define intrinsic.
26280 (__arm_vsetq_lane_s32): Likewise.
26281 (__arm_vsetq_lane_s8): Likewise.
26282 (__arm_vsetq_lane_s64): Likewise.
26283 (__arm_vsetq_lane_u8): Likewise.
26284 (__arm_vsetq_lane_u16): Likewise.
26285 (__arm_vsetq_lane_u32): Likewise.
26286 (__arm_vsetq_lane_u64): Likewise.
26287 (__arm_vgetq_lane_s16): Likewise.
26288 (__arm_vgetq_lane_s32): Likewise.
26289 (__arm_vgetq_lane_s8): Likewise.
26290 (__arm_vgetq_lane_s64): Likewise.
26291 (__arm_vgetq_lane_u8): Likewise.
26292 (__arm_vgetq_lane_u16): Likewise.
26293 (__arm_vgetq_lane_u32): Likewise.
26294 (__arm_vgetq_lane_u64): Likewise.
26295 (__arm_vsetq_lane_f16): Likewise.
26296 (__arm_vsetq_lane_f32): Likewise.
26297 (__arm_vgetq_lane_f16): Likewise.
26298 (__arm_vgetq_lane_f32): Likewise.
26299 (vgetq_lane): Define polymorphic variant.
26300 (vsetq_lane): Likewise.
26301 * config/arm/mve.md (mve_vec_extract<mode><V_elem_l>): Define RTL
26303 (mve_vec_extractv2didi): Likewise.
26304 (mve_vec_extract_sext_internal<mode>): Likewise.
26305 (mve_vec_extract_zext_internal<mode>): Likewise.
26306 (mve_vec_set<mode>_internal): Likewise.
26307 (mve_vec_setv2di_internal): Likewise.
26308 * config/arm/neon.md (vec_set<mode>): Move RTL pattern to vec-common.md
26310 (vec_extract<mode><V_elem_l>): Rename to
26311 "neon_vec_extract<mode><V_elem_l>".
26312 (vec_extractv2didi): Rename to "neon_vec_extractv2didi".
26313 * config/arm/vec-common.md (vec_extract<mode><V_elem_l>): Define RTL
26314 pattern common for MVE and NEON.
26315 (vec_set<mode>): Move RTL pattern from neon.md and modify to accept both
26318 2020-03-23 Andre Vieira <andre.simoesdiasvieira@arm.com>
26320 * config/arm/mve.md (earlyclobber_32): New mode attribute.
26321 (mve_vrev64q_*, mve_vcaddq*, mve_vhcaddq_*, mve_vcmulq_*,
26322 mve_vmull[bt]q_*, mve_vqdmull[bt]q_*): Add appropriate early clobbers.
26324 2020-03-23 Richard Biener <rguenther@suse.de>
26326 PR tree-optimization/94261
26327 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove
26328 IL operand swapping code.
26329 (vect_slp_rearrange_stmts): Do not arrange isomorphic
26330 nodes that would need operation code adjustments.
26332 2020-03-23 Tobias Burnus <tobias@codesourcery.com>
26334 * doc/install.texi (amdgcn-*-amdhsa): Renamed
26335 from amdgcn-unknown-amdhsa; change
26336 amdgcn-unknown-amdhsa to amdgcn-amdhsa.
26338 2020-03-23 Richard Biener <rguenther@suse.de>
26341 * ipa-prop.c (ipa_read_jump_function): Build the ADDR_EXRP
26342 directly rather than also folding it via build_fold_addr_expr.
26344 2020-03-23 Richard Biener <rguenther@suse.de>
26346 PR tree-optimization/94266
26347 * tree-ssa-forwprop.c (pass_forwprop::execute): Do not propagate
26348 addresses of TARGET_MEM_REFs.
26350 2020-03-23 Martin Liska <mliska@suse.cz>
26353 * symtab.c (symtab_node::clone_references): Save speculative_id
26354 as ref may be overwritten by create_reference.
26355 (symtab_node::clone_referring): Likewise.
26356 (symtab_node::clone_reference): Likewise.
26358 2020-03-22 Iain Sandoe <iain@sandoe.co.uk>
26360 * config/i386/darwin.h (JUMP_TABLES_IN_TEXT_SECTION): Remove
26361 references to Darwin.
26362 * config/i386/i386.h (JUMP_TABLES_IN_TEXT_SECTION): Define this
26363 unconditionally and comment on why.
26365 2020-03-21 Iain Sandoe <iain@sandoe.co.uk>
26367 * config/darwin.c (darwin_mergeable_constant_section): Collect
26368 section anchor checks into the caller.
26369 (machopic_select_section): Collect section anchor checks into
26370 the determination of 'effective zero-size' objects. When the
26371 size is unknown, assume it is non-zero, and thus return the
26372 'generic' section for the DECL.
26374 2020-03-21 Iain Sandoe <iain@sandoe.co.uk>
26377 * config/darwin.opt: Amend options descriptions.
26379 2020-03-21 Richard Sandiford <richard.sandiford@arm.com>
26381 PR rtl-optimization/94052
26382 * lra-constraints.c (simplify_operand_subreg): Reload the inner
26383 register of a paradoxical subreg if simplify_subreg_regno fails
26384 to give a valid hard register for the outer mode.
26386 2020-03-20 Martin Jambor <mjambor@suse.cz>
26388 PR tree-optimization/93435
26389 * params.opt (sra-max-propagations): New parameter.
26390 * tree-sra.c (propagation_budget): New variable.
26391 (budget_for_propagation_access): New function.
26392 (propagate_subaccesses_from_rhs): Use it.
26393 (propagate_subaccesses_from_lhs): Likewise.
26394 (propagate_all_subaccesses): Set up and destroy propagation_budget.
26396 2020-03-20 Carl Love <cel@us.ibm.com>
26399 * config/rs6000/rs6000.c (rs6000_option_override_internal):
26400 Add check for TARGET_FPRND for Power 7 or newer.
26402 2020-03-20 Jan Hubicka <hubicka@ucw.cz>
26405 * cgraph.c (symbol_table::create_edge): Update calls_comdat_local flag.
26406 (cgraph_edge::redirect_callee): Move here; likewise.
26407 (cgraph_node::remove_callees): Update calls_comdat_local flag.
26408 (cgraph_node::verify_node): Verify that calls_comdat_local flag match
26410 (cgraph_node::check_calls_comdat_local_p): New member function.
26411 * cgraph.h (cgraph_node::check_calls_comdat_local_p): Declare.
26412 (cgraph_edge::redirect_callee): Move offline.
26413 * ipa-fnsummary.c (compute_fn_summary): Do not compute
26414 calls_comdat_local flag here.
26415 * ipa-inline-transform.c (inline_call): Fix updating of
26416 calls_comdat_local flag.
26417 * ipa-split.c (split_function): Use true instead of 1 to set the flag.
26418 * symtab.c (symtab_node::add_to_same_comdat_group): Update
26419 calls_comdat_local flag.
26421 2020-03-20 Richard Biener <rguenther@suse.de>
26423 * tree-vect-slp.c (vect_analyze_slp_instance): Dump SLP tree
26424 from the possibly modified root.
26426 2020-03-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
26427 Andre Vieira <andre.simoesdiasvieira@arm.com>
26428 Mihail Ionescu <mihail.ionescu@arm.com>
26430 * config/arm/arm_mve.h (vst1q_p_u8): Define macro.
26431 (vst1q_p_s8): Likewise.
26432 (vst2q_s8): Likewise.
26433 (vst2q_u8): Likewise.
26434 (vld1q_z_u8): Likewise.
26435 (vld1q_z_s8): Likewise.
26436 (vld2q_s8): Likewise.
26437 (vld2q_u8): Likewise.
26438 (vld4q_s8): Likewise.
26439 (vld4q_u8): Likewise.
26440 (vst1q_p_u16): Likewise.
26441 (vst1q_p_s16): Likewise.
26442 (vst2q_s16): Likewise.
26443 (vst2q_u16): Likewise.
26444 (vld1q_z_u16): Likewise.
26445 (vld1q_z_s16): Likewise.
26446 (vld2q_s16): Likewise.
26447 (vld2q_u16): Likewise.
26448 (vld4q_s16): Likewise.
26449 (vld4q_u16): Likewise.
26450 (vst1q_p_u32): Likewise.
26451 (vst1q_p_s32): Likewise.
26452 (vst2q_s32): Likewise.
26453 (vst2q_u32): Likewise.
26454 (vld1q_z_u32): Likewise.
26455 (vld1q_z_s32): Likewise.
26456 (vld2q_s32): Likewise.
26457 (vld2q_u32): Likewise.
26458 (vld4q_s32): Likewise.
26459 (vld4q_u32): Likewise.
26460 (vld4q_f16): Likewise.
26461 (vld2q_f16): Likewise.
26462 (vld1q_z_f16): Likewise.
26463 (vst2q_f16): Likewise.
26464 (vst1q_p_f16): Likewise.
26465 (vld4q_f32): Likewise.
26466 (vld2q_f32): Likewise.
26467 (vld1q_z_f32): Likewise.
26468 (vst2q_f32): Likewise.
26469 (vst1q_p_f32): Likewise.
26470 (__arm_vst1q_p_u8): Define intrinsic.
26471 (__arm_vst1q_p_s8): Likewise.
26472 (__arm_vst2q_s8): Likewise.
26473 (__arm_vst2q_u8): Likewise.
26474 (__arm_vld1q_z_u8): Likewise.
26475 (__arm_vld1q_z_s8): Likewise.
26476 (__arm_vld2q_s8): Likewise.
26477 (__arm_vld2q_u8): Likewise.
26478 (__arm_vld4q_s8): Likewise.
26479 (__arm_vld4q_u8): Likewise.
26480 (__arm_vst1q_p_u16): Likewise.
26481 (__arm_vst1q_p_s16): Likewise.
26482 (__arm_vst2q_s16): Likewise.
26483 (__arm_vst2q_u16): Likewise.
26484 (__arm_vld1q_z_u16): Likewise.
26485 (__arm_vld1q_z_s16): Likewise.
26486 (__arm_vld2q_s16): Likewise.
26487 (__arm_vld2q_u16): Likewise.
26488 (__arm_vld4q_s16): Likewise.
26489 (__arm_vld4q_u16): Likewise.
26490 (__arm_vst1q_p_u32): Likewise.
26491 (__arm_vst1q_p_s32): Likewise.
26492 (__arm_vst2q_s32): Likewise.
26493 (__arm_vst2q_u32): Likewise.
26494 (__arm_vld1q_z_u32): Likewise.
26495 (__arm_vld1q_z_s32): Likewise.
26496 (__arm_vld2q_s32): Likewise.
26497 (__arm_vld2q_u32): Likewise.
26498 (__arm_vld4q_s32): Likewise.
26499 (__arm_vld4q_u32): Likewise.
26500 (__arm_vld4q_f16): Likewise.
26501 (__arm_vld2q_f16): Likewise.
26502 (__arm_vld1q_z_f16): Likewise.
26503 (__arm_vst2q_f16): Likewise.
26504 (__arm_vst1q_p_f16): Likewise.
26505 (__arm_vld4q_f32): Likewise.
26506 (__arm_vld2q_f32): Likewise.
26507 (__arm_vld1q_z_f32): Likewise.
26508 (__arm_vst2q_f32): Likewise.
26509 (__arm_vst1q_p_f32): Likewise.
26510 (vld1q_z): Define polymorphic variant.
26513 (vst1q_p): Likewise.
26515 * config/arm/arm_mve_builtins.def (STORE1): Use builtin qualifier.
26517 * config/arm/mve.md (mve_vst2q<mode>): Define RTL pattern.
26518 (mve_vld2q<mode>): Likewise.
26519 (mve_vld4q<mode>): Likewise.
26521 2020-03-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
26522 Andre Vieira <andre.simoesdiasvieira@arm.com>
26523 Mihail Ionescu <mihail.ionescu@arm.com>
26525 * config/arm/arm-builtins.c (ARM_BUILTIN_GET_FPSCR_NZCVQC): Define.
26526 (ARM_BUILTIN_SET_FPSCR_NZCVQC): Likewise.
26527 (arm_init_mve_builtins): Add "__builtin_arm_get_fpscr_nzcvqc" and
26528 "__builtin_arm_set_fpscr_nzcvqc" to arm_builtin_decls array.
26529 (arm_expand_builtin): Define case ARM_BUILTIN_GET_FPSCR_NZCVQC
26530 and ARM_BUILTIN_SET_FPSCR_NZCVQC.
26531 * config/arm/arm_mve.h (vadciq_s32): Define macro.
26532 (vadciq_u32): Likewise.
26533 (vadciq_m_s32): Likewise.
26534 (vadciq_m_u32): Likewise.
26535 (vadcq_s32): Likewise.
26536 (vadcq_u32): Likewise.
26537 (vadcq_m_s32): Likewise.
26538 (vadcq_m_u32): Likewise.
26539 (vsbciq_s32): Likewise.
26540 (vsbciq_u32): Likewise.
26541 (vsbciq_m_s32): Likewise.
26542 (vsbciq_m_u32): Likewise.
26543 (vsbcq_s32): Likewise.
26544 (vsbcq_u32): Likewise.
26545 (vsbcq_m_s32): Likewise.
26546 (vsbcq_m_u32): Likewise.
26547 (__arm_vadciq_s32): Define intrinsic.
26548 (__arm_vadciq_u32): Likewise.
26549 (__arm_vadciq_m_s32): Likewise.
26550 (__arm_vadciq_m_u32): Likewise.
26551 (__arm_vadcq_s32): Likewise.
26552 (__arm_vadcq_u32): Likewise.
26553 (__arm_vadcq_m_s32): Likewise.
26554 (__arm_vadcq_m_u32): Likewise.
26555 (__arm_vsbciq_s32): Likewise.
26556 (__arm_vsbciq_u32): Likewise.
26557 (__arm_vsbciq_m_s32): Likewise.
26558 (__arm_vsbciq_m_u32): Likewise.
26559 (__arm_vsbcq_s32): Likewise.
26560 (__arm_vsbcq_u32): Likewise.
26561 (__arm_vsbcq_m_s32): Likewise.
26562 (__arm_vsbcq_m_u32): Likewise.
26563 (vadciq_m): Define polymorphic variant.
26564 (vadciq): Likewise.
26565 (vadcq_m): Likewise.
26567 (vsbciq_m): Likewise.
26568 (vsbciq): Likewise.
26569 (vsbcq_m): Likewise.
26571 * config/arm/arm_mve_builtins.def (BINOP_NONE_NONE_NONE): Use builtin
26573 (BINOP_UNONE_UNONE_UNONE): Likewise.
26574 (QUADOP_NONE_NONE_NONE_NONE_UNONE): Likewise.
26575 (QUADOP_UNONE_UNONE_UNONE_UNONE_UNONE): Likewise.
26576 * config/arm/mve.md (VADCIQ): Define iterator.
26577 (VADCIQ_M): Likewise.
26579 (VSBCQ_M): Likewise.
26580 (VSBCIQ): Likewise.
26581 (VSBCIQ_M): Likewise.
26583 (VADCQ_M): Likewise.
26584 (mve_vadciq_m_<supf>v4si): Define RTL pattern.
26585 (mve_vadciq_<supf>v4si): Likewise.
26586 (mve_vadcq_m_<supf>v4si): Likewise.
26587 (mve_vadcq_<supf>v4si): Likewise.
26588 (mve_vsbciq_m_<supf>v4si): Likewise.
26589 (mve_vsbciq_<supf>v4si): Likewise.
26590 (mve_vsbcq_m_<supf>v4si): Likewise.
26591 (mve_vsbcq_<supf>v4si): Likewise.
26592 (get_fpscr_nzcvqc): Define isns.
26593 (set_fpscr_nzcvqc): Define isns.
26594 * config/arm/unspecs.md (UNSPEC_GET_FPSCR_NZCVQC): Define.
26595 (UNSPEC_SET_FPSCR_NZCVQC): Define.
26597 2020-03-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
26599 * config/arm/arm_mve.h (vddupq_x_n_u8): Define macro.
26600 (vddupq_x_n_u16): Likewise.
26601 (vddupq_x_n_u32): Likewise.
26602 (vddupq_x_wb_u8): Likewise.
26603 (vddupq_x_wb_u16): Likewise.
26604 (vddupq_x_wb_u32): Likewise.
26605 (vdwdupq_x_n_u8): Likewise.
26606 (vdwdupq_x_n_u16): Likewise.
26607 (vdwdupq_x_n_u32): Likewise.
26608 (vdwdupq_x_wb_u8): Likewise.
26609 (vdwdupq_x_wb_u16): Likewise.
26610 (vdwdupq_x_wb_u32): Likewise.
26611 (vidupq_x_n_u8): Likewise.
26612 (vidupq_x_n_u16): Likewise.
26613 (vidupq_x_n_u32): Likewise.
26614 (vidupq_x_wb_u8): Likewise.
26615 (vidupq_x_wb_u16): Likewise.
26616 (vidupq_x_wb_u32): Likewise.
26617 (viwdupq_x_n_u8): Likewise.
26618 (viwdupq_x_n_u16): Likewise.
26619 (viwdupq_x_n_u32): Likewise.
26620 (viwdupq_x_wb_u8): Likewise.
26621 (viwdupq_x_wb_u16): Likewise.
26622 (viwdupq_x_wb_u32): Likewise.
26623 (vdupq_x_n_s8): Likewise.
26624 (vdupq_x_n_s16): Likewise.
26625 (vdupq_x_n_s32): Likewise.
26626 (vdupq_x_n_u8): Likewise.
26627 (vdupq_x_n_u16): Likewise.
26628 (vdupq_x_n_u32): Likewise.
26629 (vminq_x_s8): Likewise.
26630 (vminq_x_s16): Likewise.
26631 (vminq_x_s32): Likewise.
26632 (vminq_x_u8): Likewise.
26633 (vminq_x_u16): Likewise.
26634 (vminq_x_u32): Likewise.
26635 (vmaxq_x_s8): Likewise.
26636 (vmaxq_x_s16): Likewise.
26637 (vmaxq_x_s32): Likewise.
26638 (vmaxq_x_u8): Likewise.
26639 (vmaxq_x_u16): Likewise.
26640 (vmaxq_x_u32): Likewise.
26641 (vabdq_x_s8): Likewise.
26642 (vabdq_x_s16): Likewise.
26643 (vabdq_x_s32): Likewise.
26644 (vabdq_x_u8): Likewise.
26645 (vabdq_x_u16): Likewise.
26646 (vabdq_x_u32): Likewise.
26647 (vabsq_x_s8): Likewise.
26648 (vabsq_x_s16): Likewise.
26649 (vabsq_x_s32): Likewise.
26650 (vaddq_x_s8): Likewise.
26651 (vaddq_x_s16): Likewise.
26652 (vaddq_x_s32): Likewise.
26653 (vaddq_x_n_s8): Likewise.
26654 (vaddq_x_n_s16): Likewise.
26655 (vaddq_x_n_s32): Likewise.
26656 (vaddq_x_u8): Likewise.
26657 (vaddq_x_u16): Likewise.
26658 (vaddq_x_u32): Likewise.
26659 (vaddq_x_n_u8): Likewise.
26660 (vaddq_x_n_u16): Likewise.
26661 (vaddq_x_n_u32): Likewise.
26662 (vclsq_x_s8): Likewise.
26663 (vclsq_x_s16): Likewise.
26664 (vclsq_x_s32): Likewise.
26665 (vclzq_x_s8): Likewise.
26666 (vclzq_x_s16): Likewise.
26667 (vclzq_x_s32): Likewise.
26668 (vclzq_x_u8): Likewise.
26669 (vclzq_x_u16): Likewise.
26670 (vclzq_x_u32): Likewise.
26671 (vnegq_x_s8): Likewise.
26672 (vnegq_x_s16): Likewise.
26673 (vnegq_x_s32): Likewise.
26674 (vmulhq_x_s8): Likewise.
26675 (vmulhq_x_s16): Likewise.
26676 (vmulhq_x_s32): Likewise.
26677 (vmulhq_x_u8): Likewise.
26678 (vmulhq_x_u16): Likewise.
26679 (vmulhq_x_u32): Likewise.
26680 (vmullbq_poly_x_p8): Likewise.
26681 (vmullbq_poly_x_p16): Likewise.
26682 (vmullbq_int_x_s8): Likewise.
26683 (vmullbq_int_x_s16): Likewise.
26684 (vmullbq_int_x_s32): Likewise.
26685 (vmullbq_int_x_u8): Likewise.
26686 (vmullbq_int_x_u16): Likewise.
26687 (vmullbq_int_x_u32): Likewise.
26688 (vmulltq_poly_x_p8): Likewise.
26689 (vmulltq_poly_x_p16): Likewise.
26690 (vmulltq_int_x_s8): Likewise.
26691 (vmulltq_int_x_s16): Likewise.
26692 (vmulltq_int_x_s32): Likewise.
26693 (vmulltq_int_x_u8): Likewise.
26694 (vmulltq_int_x_u16): Likewise.
26695 (vmulltq_int_x_u32): Likewise.
26696 (vmulq_x_s8): Likewise.
26697 (vmulq_x_s16): Likewise.
26698 (vmulq_x_s32): Likewise.
26699 (vmulq_x_n_s8): Likewise.
26700 (vmulq_x_n_s16): Likewise.
26701 (vmulq_x_n_s32): Likewise.
26702 (vmulq_x_u8): Likewise.
26703 (vmulq_x_u16): Likewise.
26704 (vmulq_x_u32): Likewise.
26705 (vmulq_x_n_u8): Likewise.
26706 (vmulq_x_n_u16): Likewise.
26707 (vmulq_x_n_u32): Likewise.
26708 (vsubq_x_s8): Likewise.
26709 (vsubq_x_s16): Likewise.
26710 (vsubq_x_s32): Likewise.
26711 (vsubq_x_n_s8): Likewise.
26712 (vsubq_x_n_s16): Likewise.
26713 (vsubq_x_n_s32): Likewise.
26714 (vsubq_x_u8): Likewise.
26715 (vsubq_x_u16): Likewise.
26716 (vsubq_x_u32): Likewise.
26717 (vsubq_x_n_u8): Likewise.
26718 (vsubq_x_n_u16): Likewise.
26719 (vsubq_x_n_u32): Likewise.
26720 (vcaddq_rot90_x_s8): Likewise.
26721 (vcaddq_rot90_x_s16): Likewise.
26722 (vcaddq_rot90_x_s32): Likewise.
26723 (vcaddq_rot90_x_u8): Likewise.
26724 (vcaddq_rot90_x_u16): Likewise.
26725 (vcaddq_rot90_x_u32): Likewise.
26726 (vcaddq_rot270_x_s8): Likewise.
26727 (vcaddq_rot270_x_s16): Likewise.
26728 (vcaddq_rot270_x_s32): Likewise.
26729 (vcaddq_rot270_x_u8): Likewise.
26730 (vcaddq_rot270_x_u16): Likewise.
26731 (vcaddq_rot270_x_u32): Likewise.
26732 (vhaddq_x_n_s8): Likewise.
26733 (vhaddq_x_n_s16): Likewise.
26734 (vhaddq_x_n_s32): Likewise.
26735 (vhaddq_x_n_u8): Likewise.
26736 (vhaddq_x_n_u16): Likewise.
26737 (vhaddq_x_n_u32): Likewise.
26738 (vhaddq_x_s8): Likewise.
26739 (vhaddq_x_s16): Likewise.
26740 (vhaddq_x_s32): Likewise.
26741 (vhaddq_x_u8): Likewise.
26742 (vhaddq_x_u16): Likewise.
26743 (vhaddq_x_u32): Likewise.
26744 (vhcaddq_rot90_x_s8): Likewise.
26745 (vhcaddq_rot90_x_s16): Likewise.
26746 (vhcaddq_rot90_x_s32): Likewise.
26747 (vhcaddq_rot270_x_s8): Likewise.
26748 (vhcaddq_rot270_x_s16): Likewise.
26749 (vhcaddq_rot270_x_s32): Likewise.
26750 (vhsubq_x_n_s8): Likewise.
26751 (vhsubq_x_n_s16): Likewise.
26752 (vhsubq_x_n_s32): Likewise.
26753 (vhsubq_x_n_u8): Likewise.
26754 (vhsubq_x_n_u16): Likewise.
26755 (vhsubq_x_n_u32): Likewise.
26756 (vhsubq_x_s8): Likewise.
26757 (vhsubq_x_s16): Likewise.
26758 (vhsubq_x_s32): Likewise.
26759 (vhsubq_x_u8): Likewise.
26760 (vhsubq_x_u16): Likewise.
26761 (vhsubq_x_u32): Likewise.
26762 (vrhaddq_x_s8): Likewise.
26763 (vrhaddq_x_s16): Likewise.
26764 (vrhaddq_x_s32): Likewise.
26765 (vrhaddq_x_u8): Likewise.
26766 (vrhaddq_x_u16): Likewise.
26767 (vrhaddq_x_u32): Likewise.
26768 (vrmulhq_x_s8): Likewise.
26769 (vrmulhq_x_s16): Likewise.
26770 (vrmulhq_x_s32): Likewise.
26771 (vrmulhq_x_u8): Likewise.
26772 (vrmulhq_x_u16): Likewise.
26773 (vrmulhq_x_u32): Likewise.
26774 (vandq_x_s8): Likewise.
26775 (vandq_x_s16): Likewise.
26776 (vandq_x_s32): Likewise.
26777 (vandq_x_u8): Likewise.
26778 (vandq_x_u16): Likewise.
26779 (vandq_x_u32): Likewise.
26780 (vbicq_x_s8): Likewise.
26781 (vbicq_x_s16): Likewise.
26782 (vbicq_x_s32): Likewise.
26783 (vbicq_x_u8): Likewise.
26784 (vbicq_x_u16): Likewise.
26785 (vbicq_x_u32): Likewise.
26786 (vbrsrq_x_n_s8): Likewise.
26787 (vbrsrq_x_n_s16): Likewise.
26788 (vbrsrq_x_n_s32): Likewise.
26789 (vbrsrq_x_n_u8): Likewise.
26790 (vbrsrq_x_n_u16): Likewise.
26791 (vbrsrq_x_n_u32): Likewise.
26792 (veorq_x_s8): Likewise.
26793 (veorq_x_s16): Likewise.
26794 (veorq_x_s32): Likewise.
26795 (veorq_x_u8): Likewise.
26796 (veorq_x_u16): Likewise.
26797 (veorq_x_u32): Likewise.
26798 (vmovlbq_x_s8): Likewise.
26799 (vmovlbq_x_s16): Likewise.
26800 (vmovlbq_x_u8): Likewise.
26801 (vmovlbq_x_u16): Likewise.
26802 (vmovltq_x_s8): Likewise.
26803 (vmovltq_x_s16): Likewise.
26804 (vmovltq_x_u8): Likewise.
26805 (vmovltq_x_u16): Likewise.
26806 (vmvnq_x_s8): Likewise.
26807 (vmvnq_x_s16): Likewise.
26808 (vmvnq_x_s32): Likewise.
26809 (vmvnq_x_u8): Likewise.
26810 (vmvnq_x_u16): Likewise.
26811 (vmvnq_x_u32): Likewise.
26812 (vmvnq_x_n_s16): Likewise.
26813 (vmvnq_x_n_s32): Likewise.
26814 (vmvnq_x_n_u16): Likewise.
26815 (vmvnq_x_n_u32): Likewise.
26816 (vornq_x_s8): Likewise.
26817 (vornq_x_s16): Likewise.
26818 (vornq_x_s32): Likewise.
26819 (vornq_x_u8): Likewise.
26820 (vornq_x_u16): Likewise.
26821 (vornq_x_u32): Likewise.
26822 (vorrq_x_s8): Likewise.
26823 (vorrq_x_s16): Likewise.
26824 (vorrq_x_s32): Likewise.
26825 (vorrq_x_u8): Likewise.
26826 (vorrq_x_u16): Likewise.
26827 (vorrq_x_u32): Likewise.
26828 (vrev16q_x_s8): Likewise.
26829 (vrev16q_x_u8): Likewise.
26830 (vrev32q_x_s8): Likewise.
26831 (vrev32q_x_s16): Likewise.
26832 (vrev32q_x_u8): Likewise.
26833 (vrev32q_x_u16): Likewise.
26834 (vrev64q_x_s8): Likewise.
26835 (vrev64q_x_s16): Likewise.
26836 (vrev64q_x_s32): Likewise.
26837 (vrev64q_x_u8): Likewise.
26838 (vrev64q_x_u16): Likewise.
26839 (vrev64q_x_u32): Likewise.
26840 (vrshlq_x_s8): Likewise.
26841 (vrshlq_x_s16): Likewise.
26842 (vrshlq_x_s32): Likewise.
26843 (vrshlq_x_u8): Likewise.
26844 (vrshlq_x_u16): Likewise.
26845 (vrshlq_x_u32): Likewise.
26846 (vshllbq_x_n_s8): Likewise.
26847 (vshllbq_x_n_s16): Likewise.
26848 (vshllbq_x_n_u8): Likewise.
26849 (vshllbq_x_n_u16): Likewise.
26850 (vshlltq_x_n_s8): Likewise.
26851 (vshlltq_x_n_s16): Likewise.
26852 (vshlltq_x_n_u8): Likewise.
26853 (vshlltq_x_n_u16): Likewise.
26854 (vshlq_x_s8): Likewise.
26855 (vshlq_x_s16): Likewise.
26856 (vshlq_x_s32): Likewise.
26857 (vshlq_x_u8): Likewise.
26858 (vshlq_x_u16): Likewise.
26859 (vshlq_x_u32): Likewise.
26860 (vshlq_x_n_s8): Likewise.
26861 (vshlq_x_n_s16): Likewise.
26862 (vshlq_x_n_s32): Likewise.
26863 (vshlq_x_n_u8): Likewise.
26864 (vshlq_x_n_u16): Likewise.
26865 (vshlq_x_n_u32): Likewise.
26866 (vrshrq_x_n_s8): Likewise.
26867 (vrshrq_x_n_s16): Likewise.
26868 (vrshrq_x_n_s32): Likewise.
26869 (vrshrq_x_n_u8): Likewise.
26870 (vrshrq_x_n_u16): Likewise.
26871 (vrshrq_x_n_u32): Likewise.
26872 (vshrq_x_n_s8): Likewise.
26873 (vshrq_x_n_s16): Likewise.
26874 (vshrq_x_n_s32): Likewise.
26875 (vshrq_x_n_u8): Likewise.
26876 (vshrq_x_n_u16): Likewise.
26877 (vshrq_x_n_u32): Likewise.
26878 (vdupq_x_n_f16): Likewise.
26879 (vdupq_x_n_f32): Likewise.
26880 (vminnmq_x_f16): Likewise.
26881 (vminnmq_x_f32): Likewise.
26882 (vmaxnmq_x_f16): Likewise.
26883 (vmaxnmq_x_f32): Likewise.
26884 (vabdq_x_f16): Likewise.
26885 (vabdq_x_f32): Likewise.
26886 (vabsq_x_f16): Likewise.
26887 (vabsq_x_f32): Likewise.
26888 (vaddq_x_f16): Likewise.
26889 (vaddq_x_f32): Likewise.
26890 (vaddq_x_n_f16): Likewise.
26891 (vaddq_x_n_f32): Likewise.
26892 (vnegq_x_f16): Likewise.
26893 (vnegq_x_f32): Likewise.
26894 (vmulq_x_f16): Likewise.
26895 (vmulq_x_f32): Likewise.
26896 (vmulq_x_n_f16): Likewise.
26897 (vmulq_x_n_f32): Likewise.
26898 (vsubq_x_f16): Likewise.
26899 (vsubq_x_f32): Likewise.
26900 (vsubq_x_n_f16): Likewise.
26901 (vsubq_x_n_f32): Likewise.
26902 (vcaddq_rot90_x_f16): Likewise.
26903 (vcaddq_rot90_x_f32): Likewise.
26904 (vcaddq_rot270_x_f16): Likewise.
26905 (vcaddq_rot270_x_f32): Likewise.
26906 (vcmulq_x_f16): Likewise.
26907 (vcmulq_x_f32): Likewise.
26908 (vcmulq_rot90_x_f16): Likewise.
26909 (vcmulq_rot90_x_f32): Likewise.
26910 (vcmulq_rot180_x_f16): Likewise.
26911 (vcmulq_rot180_x_f32): Likewise.
26912 (vcmulq_rot270_x_f16): Likewise.
26913 (vcmulq_rot270_x_f32): Likewise.
26914 (vcvtaq_x_s16_f16): Likewise.
26915 (vcvtaq_x_s32_f32): Likewise.
26916 (vcvtaq_x_u16_f16): Likewise.
26917 (vcvtaq_x_u32_f32): Likewise.
26918 (vcvtnq_x_s16_f16): Likewise.
26919 (vcvtnq_x_s32_f32): Likewise.
26920 (vcvtnq_x_u16_f16): Likewise.
26921 (vcvtnq_x_u32_f32): Likewise.
26922 (vcvtpq_x_s16_f16): Likewise.
26923 (vcvtpq_x_s32_f32): Likewise.
26924 (vcvtpq_x_u16_f16): Likewise.
26925 (vcvtpq_x_u32_f32): Likewise.
26926 (vcvtmq_x_s16_f16): Likewise.
26927 (vcvtmq_x_s32_f32): Likewise.
26928 (vcvtmq_x_u16_f16): Likewise.
26929 (vcvtmq_x_u32_f32): Likewise.
26930 (vcvtbq_x_f32_f16): Likewise.
26931 (vcvttq_x_f32_f16): Likewise.
26932 (vcvtq_x_f16_u16): Likewise.
26933 (vcvtq_x_f16_s16): Likewise.
26934 (vcvtq_x_f32_s32): Likewise.
26935 (vcvtq_x_f32_u32): Likewise.
26936 (vcvtq_x_n_f16_s16): Likewise.
26937 (vcvtq_x_n_f16_u16): Likewise.
26938 (vcvtq_x_n_f32_s32): Likewise.
26939 (vcvtq_x_n_f32_u32): Likewise.
26940 (vcvtq_x_s16_f16): Likewise.
26941 (vcvtq_x_s32_f32): Likewise.
26942 (vcvtq_x_u16_f16): Likewise.
26943 (vcvtq_x_u32_f32): Likewise.
26944 (vcvtq_x_n_s16_f16): Likewise.
26945 (vcvtq_x_n_s32_f32): Likewise.
26946 (vcvtq_x_n_u16_f16): Likewise.
26947 (vcvtq_x_n_u32_f32): Likewise.
26948 (vrndq_x_f16): Likewise.
26949 (vrndq_x_f32): Likewise.
26950 (vrndnq_x_f16): Likewise.
26951 (vrndnq_x_f32): Likewise.
26952 (vrndmq_x_f16): Likewise.
26953 (vrndmq_x_f32): Likewise.
26954 (vrndpq_x_f16): Likewise.
26955 (vrndpq_x_f32): Likewise.
26956 (vrndaq_x_f16): Likewise.
26957 (vrndaq_x_f32): Likewise.
26958 (vrndxq_x_f16): Likewise.
26959 (vrndxq_x_f32): Likewise.
26960 (vandq_x_f16): Likewise.
26961 (vandq_x_f32): Likewise.
26962 (vbicq_x_f16): Likewise.
26963 (vbicq_x_f32): Likewise.
26964 (vbrsrq_x_n_f16): Likewise.
26965 (vbrsrq_x_n_f32): Likewise.
26966 (veorq_x_f16): Likewise.
26967 (veorq_x_f32): Likewise.
26968 (vornq_x_f16): Likewise.
26969 (vornq_x_f32): Likewise.
26970 (vorrq_x_f16): Likewise.
26971 (vorrq_x_f32): Likewise.
26972 (vrev32q_x_f16): Likewise.
26973 (vrev64q_x_f16): Likewise.
26974 (vrev64q_x_f32): Likewise.
26975 (__arm_vddupq_x_n_u8): Define intrinsic.
26976 (__arm_vddupq_x_n_u16): Likewise.
26977 (__arm_vddupq_x_n_u32): Likewise.
26978 (__arm_vddupq_x_wb_u8): Likewise.
26979 (__arm_vddupq_x_wb_u16): Likewise.
26980 (__arm_vddupq_x_wb_u32): Likewise.
26981 (__arm_vdwdupq_x_n_u8): Likewise.
26982 (__arm_vdwdupq_x_n_u16): Likewise.
26983 (__arm_vdwdupq_x_n_u32): Likewise.
26984 (__arm_vdwdupq_x_wb_u8): Likewise.
26985 (__arm_vdwdupq_x_wb_u16): Likewise.
26986 (__arm_vdwdupq_x_wb_u32): Likewise.
26987 (__arm_vidupq_x_n_u8): Likewise.
26988 (__arm_vidupq_x_n_u16): Likewise.
26989 (__arm_vidupq_x_n_u32): Likewise.
26990 (__arm_vidupq_x_wb_u8): Likewise.
26991 (__arm_vidupq_x_wb_u16): Likewise.
26992 (__arm_vidupq_x_wb_u32): Likewise.
26993 (__arm_viwdupq_x_n_u8): Likewise.
26994 (__arm_viwdupq_x_n_u16): Likewise.
26995 (__arm_viwdupq_x_n_u32): Likewise.
26996 (__arm_viwdupq_x_wb_u8): Likewise.
26997 (__arm_viwdupq_x_wb_u16): Likewise.
26998 (__arm_viwdupq_x_wb_u32): Likewise.
26999 (__arm_vdupq_x_n_s8): Likewise.
27000 (__arm_vdupq_x_n_s16): Likewise.
27001 (__arm_vdupq_x_n_s32): Likewise.
27002 (__arm_vdupq_x_n_u8): Likewise.
27003 (__arm_vdupq_x_n_u16): Likewise.
27004 (__arm_vdupq_x_n_u32): Likewise.
27005 (__arm_vminq_x_s8): Likewise.
27006 (__arm_vminq_x_s16): Likewise.
27007 (__arm_vminq_x_s32): Likewise.
27008 (__arm_vminq_x_u8): Likewise.
27009 (__arm_vminq_x_u16): Likewise.
27010 (__arm_vminq_x_u32): Likewise.
27011 (__arm_vmaxq_x_s8): Likewise.
27012 (__arm_vmaxq_x_s16): Likewise.
27013 (__arm_vmaxq_x_s32): Likewise.
27014 (__arm_vmaxq_x_u8): Likewise.
27015 (__arm_vmaxq_x_u16): Likewise.
27016 (__arm_vmaxq_x_u32): Likewise.
27017 (__arm_vabdq_x_s8): Likewise.
27018 (__arm_vabdq_x_s16): Likewise.
27019 (__arm_vabdq_x_s32): Likewise.
27020 (__arm_vabdq_x_u8): Likewise.
27021 (__arm_vabdq_x_u16): Likewise.
27022 (__arm_vabdq_x_u32): Likewise.
27023 (__arm_vabsq_x_s8): Likewise.
27024 (__arm_vabsq_x_s16): Likewise.
27025 (__arm_vabsq_x_s32): Likewise.
27026 (__arm_vaddq_x_s8): Likewise.
27027 (__arm_vaddq_x_s16): Likewise.
27028 (__arm_vaddq_x_s32): Likewise.
27029 (__arm_vaddq_x_n_s8): Likewise.
27030 (__arm_vaddq_x_n_s16): Likewise.
27031 (__arm_vaddq_x_n_s32): Likewise.
27032 (__arm_vaddq_x_u8): Likewise.
27033 (__arm_vaddq_x_u16): Likewise.
27034 (__arm_vaddq_x_u32): Likewise.
27035 (__arm_vaddq_x_n_u8): Likewise.
27036 (__arm_vaddq_x_n_u16): Likewise.
27037 (__arm_vaddq_x_n_u32): Likewise.
27038 (__arm_vclsq_x_s8): Likewise.
27039 (__arm_vclsq_x_s16): Likewise.
27040 (__arm_vclsq_x_s32): Likewise.
27041 (__arm_vclzq_x_s8): Likewise.
27042 (__arm_vclzq_x_s16): Likewise.
27043 (__arm_vclzq_x_s32): Likewise.
27044 (__arm_vclzq_x_u8): Likewise.
27045 (__arm_vclzq_x_u16): Likewise.
27046 (__arm_vclzq_x_u32): Likewise.
27047 (__arm_vnegq_x_s8): Likewise.
27048 (__arm_vnegq_x_s16): Likewise.
27049 (__arm_vnegq_x_s32): Likewise.
27050 (__arm_vmulhq_x_s8): Likewise.
27051 (__arm_vmulhq_x_s16): Likewise.
27052 (__arm_vmulhq_x_s32): Likewise.
27053 (__arm_vmulhq_x_u8): Likewise.
27054 (__arm_vmulhq_x_u16): Likewise.
27055 (__arm_vmulhq_x_u32): Likewise.
27056 (__arm_vmullbq_poly_x_p8): Likewise.
27057 (__arm_vmullbq_poly_x_p16): Likewise.
27058 (__arm_vmullbq_int_x_s8): Likewise.
27059 (__arm_vmullbq_int_x_s16): Likewise.
27060 (__arm_vmullbq_int_x_s32): Likewise.
27061 (__arm_vmullbq_int_x_u8): Likewise.
27062 (__arm_vmullbq_int_x_u16): Likewise.
27063 (__arm_vmullbq_int_x_u32): Likewise.
27064 (__arm_vmulltq_poly_x_p8): Likewise.
27065 (__arm_vmulltq_poly_x_p16): Likewise.
27066 (__arm_vmulltq_int_x_s8): Likewise.
27067 (__arm_vmulltq_int_x_s16): Likewise.
27068 (__arm_vmulltq_int_x_s32): Likewise.
27069 (__arm_vmulltq_int_x_u8): Likewise.
27070 (__arm_vmulltq_int_x_u16): Likewise.
27071 (__arm_vmulltq_int_x_u32): Likewise.
27072 (__arm_vmulq_x_s8): Likewise.
27073 (__arm_vmulq_x_s16): Likewise.
27074 (__arm_vmulq_x_s32): Likewise.
27075 (__arm_vmulq_x_n_s8): Likewise.
27076 (__arm_vmulq_x_n_s16): Likewise.
27077 (__arm_vmulq_x_n_s32): Likewise.
27078 (__arm_vmulq_x_u8): Likewise.
27079 (__arm_vmulq_x_u16): Likewise.
27080 (__arm_vmulq_x_u32): Likewise.
27081 (__arm_vmulq_x_n_u8): Likewise.
27082 (__arm_vmulq_x_n_u16): Likewise.
27083 (__arm_vmulq_x_n_u32): Likewise.
27084 (__arm_vsubq_x_s8): Likewise.
27085 (__arm_vsubq_x_s16): Likewise.
27086 (__arm_vsubq_x_s32): Likewise.
27087 (__arm_vsubq_x_n_s8): Likewise.
27088 (__arm_vsubq_x_n_s16): Likewise.
27089 (__arm_vsubq_x_n_s32): Likewise.
27090 (__arm_vsubq_x_u8): Likewise.
27091 (__arm_vsubq_x_u16): Likewise.
27092 (__arm_vsubq_x_u32): Likewise.
27093 (__arm_vsubq_x_n_u8): Likewise.
27094 (__arm_vsubq_x_n_u16): Likewise.
27095 (__arm_vsubq_x_n_u32): Likewise.
27096 (__arm_vcaddq_rot90_x_s8): Likewise.
27097 (__arm_vcaddq_rot90_x_s16): Likewise.
27098 (__arm_vcaddq_rot90_x_s32): Likewise.
27099 (__arm_vcaddq_rot90_x_u8): Likewise.
27100 (__arm_vcaddq_rot90_x_u16): Likewise.
27101 (__arm_vcaddq_rot90_x_u32): Likewise.
27102 (__arm_vcaddq_rot270_x_s8): Likewise.
27103 (__arm_vcaddq_rot270_x_s16): Likewise.
27104 (__arm_vcaddq_rot270_x_s32): Likewise.
27105 (__arm_vcaddq_rot270_x_u8): Likewise.
27106 (__arm_vcaddq_rot270_x_u16): Likewise.
27107 (__arm_vcaddq_rot270_x_u32): Likewise.
27108 (__arm_vhaddq_x_n_s8): Likewise.
27109 (__arm_vhaddq_x_n_s16): Likewise.
27110 (__arm_vhaddq_x_n_s32): Likewise.
27111 (__arm_vhaddq_x_n_u8): Likewise.
27112 (__arm_vhaddq_x_n_u16): Likewise.
27113 (__arm_vhaddq_x_n_u32): Likewise.
27114 (__arm_vhaddq_x_s8): Likewise.
27115 (__arm_vhaddq_x_s16): Likewise.
27116 (__arm_vhaddq_x_s32): Likewise.
27117 (__arm_vhaddq_x_u8): Likewise.
27118 (__arm_vhaddq_x_u16): Likewise.
27119 (__arm_vhaddq_x_u32): Likewise.
27120 (__arm_vhcaddq_rot90_x_s8): Likewise.
27121 (__arm_vhcaddq_rot90_x_s16): Likewise.
27122 (__arm_vhcaddq_rot90_x_s32): Likewise.
27123 (__arm_vhcaddq_rot270_x_s8): Likewise.
27124 (__arm_vhcaddq_rot270_x_s16): Likewise.
27125 (__arm_vhcaddq_rot270_x_s32): Likewise.
27126 (__arm_vhsubq_x_n_s8): Likewise.
27127 (__arm_vhsubq_x_n_s16): Likewise.
27128 (__arm_vhsubq_x_n_s32): Likewise.
27129 (__arm_vhsubq_x_n_u8): Likewise.
27130 (__arm_vhsubq_x_n_u16): Likewise.
27131 (__arm_vhsubq_x_n_u32): Likewise.
27132 (__arm_vhsubq_x_s8): Likewise.
27133 (__arm_vhsubq_x_s16): Likewise.
27134 (__arm_vhsubq_x_s32): Likewise.
27135 (__arm_vhsubq_x_u8): Likewise.
27136 (__arm_vhsubq_x_u16): Likewise.
27137 (__arm_vhsubq_x_u32): Likewise.
27138 (__arm_vrhaddq_x_s8): Likewise.
27139 (__arm_vrhaddq_x_s16): Likewise.
27140 (__arm_vrhaddq_x_s32): Likewise.
27141 (__arm_vrhaddq_x_u8): Likewise.
27142 (__arm_vrhaddq_x_u16): Likewise.
27143 (__arm_vrhaddq_x_u32): Likewise.
27144 (__arm_vrmulhq_x_s8): Likewise.
27145 (__arm_vrmulhq_x_s16): Likewise.
27146 (__arm_vrmulhq_x_s32): Likewise.
27147 (__arm_vrmulhq_x_u8): Likewise.
27148 (__arm_vrmulhq_x_u16): Likewise.
27149 (__arm_vrmulhq_x_u32): Likewise.
27150 (__arm_vandq_x_s8): Likewise.
27151 (__arm_vandq_x_s16): Likewise.
27152 (__arm_vandq_x_s32): Likewise.
27153 (__arm_vandq_x_u8): Likewise.
27154 (__arm_vandq_x_u16): Likewise.
27155 (__arm_vandq_x_u32): Likewise.
27156 (__arm_vbicq_x_s8): Likewise.
27157 (__arm_vbicq_x_s16): Likewise.
27158 (__arm_vbicq_x_s32): Likewise.
27159 (__arm_vbicq_x_u8): Likewise.
27160 (__arm_vbicq_x_u16): Likewise.
27161 (__arm_vbicq_x_u32): Likewise.
27162 (__arm_vbrsrq_x_n_s8): Likewise.
27163 (__arm_vbrsrq_x_n_s16): Likewise.
27164 (__arm_vbrsrq_x_n_s32): Likewise.
27165 (__arm_vbrsrq_x_n_u8): Likewise.
27166 (__arm_vbrsrq_x_n_u16): Likewise.
27167 (__arm_vbrsrq_x_n_u32): Likewise.
27168 (__arm_veorq_x_s8): Likewise.
27169 (__arm_veorq_x_s16): Likewise.
27170 (__arm_veorq_x_s32): Likewise.
27171 (__arm_veorq_x_u8): Likewise.
27172 (__arm_veorq_x_u16): Likewise.
27173 (__arm_veorq_x_u32): Likewise.
27174 (__arm_vmovlbq_x_s8): Likewise.
27175 (__arm_vmovlbq_x_s16): Likewise.
27176 (__arm_vmovlbq_x_u8): Likewise.
27177 (__arm_vmovlbq_x_u16): Likewise.
27178 (__arm_vmovltq_x_s8): Likewise.
27179 (__arm_vmovltq_x_s16): Likewise.
27180 (__arm_vmovltq_x_u8): Likewise.
27181 (__arm_vmovltq_x_u16): Likewise.
27182 (__arm_vmvnq_x_s8): Likewise.
27183 (__arm_vmvnq_x_s16): Likewise.
27184 (__arm_vmvnq_x_s32): Likewise.
27185 (__arm_vmvnq_x_u8): Likewise.
27186 (__arm_vmvnq_x_u16): Likewise.
27187 (__arm_vmvnq_x_u32): Likewise.
27188 (__arm_vmvnq_x_n_s16): Likewise.
27189 (__arm_vmvnq_x_n_s32): Likewise.
27190 (__arm_vmvnq_x_n_u16): Likewise.
27191 (__arm_vmvnq_x_n_u32): Likewise.
27192 (__arm_vornq_x_s8): Likewise.
27193 (__arm_vornq_x_s16): Likewise.
27194 (__arm_vornq_x_s32): Likewise.
27195 (__arm_vornq_x_u8): Likewise.
27196 (__arm_vornq_x_u16): Likewise.
27197 (__arm_vornq_x_u32): Likewise.
27198 (__arm_vorrq_x_s8): Likewise.
27199 (__arm_vorrq_x_s16): Likewise.
27200 (__arm_vorrq_x_s32): Likewise.
27201 (__arm_vorrq_x_u8): Likewise.
27202 (__arm_vorrq_x_u16): Likewise.
27203 (__arm_vorrq_x_u32): Likewise.
27204 (__arm_vrev16q_x_s8): Likewise.
27205 (__arm_vrev16q_x_u8): Likewise.
27206 (__arm_vrev32q_x_s8): Likewise.
27207 (__arm_vrev32q_x_s16): Likewise.
27208 (__arm_vrev32q_x_u8): Likewise.
27209 (__arm_vrev32q_x_u16): Likewise.
27210 (__arm_vrev64q_x_s8): Likewise.
27211 (__arm_vrev64q_x_s16): Likewise.
27212 (__arm_vrev64q_x_s32): Likewise.
27213 (__arm_vrev64q_x_u8): Likewise.
27214 (__arm_vrev64q_x_u16): Likewise.
27215 (__arm_vrev64q_x_u32): Likewise.
27216 (__arm_vrshlq_x_s8): Likewise.
27217 (__arm_vrshlq_x_s16): Likewise.
27218 (__arm_vrshlq_x_s32): Likewise.
27219 (__arm_vrshlq_x_u8): Likewise.
27220 (__arm_vrshlq_x_u16): Likewise.
27221 (__arm_vrshlq_x_u32): Likewise.
27222 (__arm_vshllbq_x_n_s8): Likewise.
27223 (__arm_vshllbq_x_n_s16): Likewise.
27224 (__arm_vshllbq_x_n_u8): Likewise.
27225 (__arm_vshllbq_x_n_u16): Likewise.
27226 (__arm_vshlltq_x_n_s8): Likewise.
27227 (__arm_vshlltq_x_n_s16): Likewise.
27228 (__arm_vshlltq_x_n_u8): Likewise.
27229 (__arm_vshlltq_x_n_u16): Likewise.
27230 (__arm_vshlq_x_s8): Likewise.
27231 (__arm_vshlq_x_s16): Likewise.
27232 (__arm_vshlq_x_s32): Likewise.
27233 (__arm_vshlq_x_u8): Likewise.
27234 (__arm_vshlq_x_u16): Likewise.
27235 (__arm_vshlq_x_u32): Likewise.
27236 (__arm_vshlq_x_n_s8): Likewise.
27237 (__arm_vshlq_x_n_s16): Likewise.
27238 (__arm_vshlq_x_n_s32): Likewise.
27239 (__arm_vshlq_x_n_u8): Likewise.
27240 (__arm_vshlq_x_n_u16): Likewise.
27241 (__arm_vshlq_x_n_u32): Likewise.
27242 (__arm_vrshrq_x_n_s8): Likewise.
27243 (__arm_vrshrq_x_n_s16): Likewise.
27244 (__arm_vrshrq_x_n_s32): Likewise.
27245 (__arm_vrshrq_x_n_u8): Likewise.
27246 (__arm_vrshrq_x_n_u16): Likewise.
27247 (__arm_vrshrq_x_n_u32): Likewise.
27248 (__arm_vshrq_x_n_s8): Likewise.
27249 (__arm_vshrq_x_n_s16): Likewise.
27250 (__arm_vshrq_x_n_s32): Likewise.
27251 (__arm_vshrq_x_n_u8): Likewise.
27252 (__arm_vshrq_x_n_u16): Likewise.
27253 (__arm_vshrq_x_n_u32): Likewise.
27254 (__arm_vdupq_x_n_f16): Likewise.
27255 (__arm_vdupq_x_n_f32): Likewise.
27256 (__arm_vminnmq_x_f16): Likewise.
27257 (__arm_vminnmq_x_f32): Likewise.
27258 (__arm_vmaxnmq_x_f16): Likewise.
27259 (__arm_vmaxnmq_x_f32): Likewise.
27260 (__arm_vabdq_x_f16): Likewise.
27261 (__arm_vabdq_x_f32): Likewise.
27262 (__arm_vabsq_x_f16): Likewise.
27263 (__arm_vabsq_x_f32): Likewise.
27264 (__arm_vaddq_x_f16): Likewise.
27265 (__arm_vaddq_x_f32): Likewise.
27266 (__arm_vaddq_x_n_f16): Likewise.
27267 (__arm_vaddq_x_n_f32): Likewise.
27268 (__arm_vnegq_x_f16): Likewise.
27269 (__arm_vnegq_x_f32): Likewise.
27270 (__arm_vmulq_x_f16): Likewise.
27271 (__arm_vmulq_x_f32): Likewise.
27272 (__arm_vmulq_x_n_f16): Likewise.
27273 (__arm_vmulq_x_n_f32): Likewise.
27274 (__arm_vsubq_x_f16): Likewise.
27275 (__arm_vsubq_x_f32): Likewise.
27276 (__arm_vsubq_x_n_f16): Likewise.
27277 (__arm_vsubq_x_n_f32): Likewise.
27278 (__arm_vcaddq_rot90_x_f16): Likewise.
27279 (__arm_vcaddq_rot90_x_f32): Likewise.
27280 (__arm_vcaddq_rot270_x_f16): Likewise.
27281 (__arm_vcaddq_rot270_x_f32): Likewise.
27282 (__arm_vcmulq_x_f16): Likewise.
27283 (__arm_vcmulq_x_f32): Likewise.
27284 (__arm_vcmulq_rot90_x_f16): Likewise.
27285 (__arm_vcmulq_rot90_x_f32): Likewise.
27286 (__arm_vcmulq_rot180_x_f16): Likewise.
27287 (__arm_vcmulq_rot180_x_f32): Likewise.
27288 (__arm_vcmulq_rot270_x_f16): Likewise.
27289 (__arm_vcmulq_rot270_x_f32): Likewise.
27290 (__arm_vcvtaq_x_s16_f16): Likewise.
27291 (__arm_vcvtaq_x_s32_f32): Likewise.
27292 (__arm_vcvtaq_x_u16_f16): Likewise.
27293 (__arm_vcvtaq_x_u32_f32): Likewise.
27294 (__arm_vcvtnq_x_s16_f16): Likewise.
27295 (__arm_vcvtnq_x_s32_f32): Likewise.
27296 (__arm_vcvtnq_x_u16_f16): Likewise.
27297 (__arm_vcvtnq_x_u32_f32): Likewise.
27298 (__arm_vcvtpq_x_s16_f16): Likewise.
27299 (__arm_vcvtpq_x_s32_f32): Likewise.
27300 (__arm_vcvtpq_x_u16_f16): Likewise.
27301 (__arm_vcvtpq_x_u32_f32): Likewise.
27302 (__arm_vcvtmq_x_s16_f16): Likewise.
27303 (__arm_vcvtmq_x_s32_f32): Likewise.
27304 (__arm_vcvtmq_x_u16_f16): Likewise.
27305 (__arm_vcvtmq_x_u32_f32): Likewise.
27306 (__arm_vcvtbq_x_f32_f16): Likewise.
27307 (__arm_vcvttq_x_f32_f16): Likewise.
27308 (__arm_vcvtq_x_f16_u16): Likewise.
27309 (__arm_vcvtq_x_f16_s16): Likewise.
27310 (__arm_vcvtq_x_f32_s32): Likewise.
27311 (__arm_vcvtq_x_f32_u32): Likewise.
27312 (__arm_vcvtq_x_n_f16_s16): Likewise.
27313 (__arm_vcvtq_x_n_f16_u16): Likewise.
27314 (__arm_vcvtq_x_n_f32_s32): Likewise.
27315 (__arm_vcvtq_x_n_f32_u32): Likewise.
27316 (__arm_vcvtq_x_s16_f16): Likewise.
27317 (__arm_vcvtq_x_s32_f32): Likewise.
27318 (__arm_vcvtq_x_u16_f16): Likewise.
27319 (__arm_vcvtq_x_u32_f32): Likewise.
27320 (__arm_vcvtq_x_n_s16_f16): Likewise.
27321 (__arm_vcvtq_x_n_s32_f32): Likewise.
27322 (__arm_vcvtq_x_n_u16_f16): Likewise.
27323 (__arm_vcvtq_x_n_u32_f32): Likewise.
27324 (__arm_vrndq_x_f16): Likewise.
27325 (__arm_vrndq_x_f32): Likewise.
27326 (__arm_vrndnq_x_f16): Likewise.
27327 (__arm_vrndnq_x_f32): Likewise.
27328 (__arm_vrndmq_x_f16): Likewise.
27329 (__arm_vrndmq_x_f32): Likewise.
27330 (__arm_vrndpq_x_f16): Likewise.
27331 (__arm_vrndpq_x_f32): Likewise.
27332 (__arm_vrndaq_x_f16): Likewise.
27333 (__arm_vrndaq_x_f32): Likewise.
27334 (__arm_vrndxq_x_f16): Likewise.
27335 (__arm_vrndxq_x_f32): Likewise.
27336 (__arm_vandq_x_f16): Likewise.
27337 (__arm_vandq_x_f32): Likewise.
27338 (__arm_vbicq_x_f16): Likewise.
27339 (__arm_vbicq_x_f32): Likewise.
27340 (__arm_vbrsrq_x_n_f16): Likewise.
27341 (__arm_vbrsrq_x_n_f32): Likewise.
27342 (__arm_veorq_x_f16): Likewise.
27343 (__arm_veorq_x_f32): Likewise.
27344 (__arm_vornq_x_f16): Likewise.
27345 (__arm_vornq_x_f32): Likewise.
27346 (__arm_vorrq_x_f16): Likewise.
27347 (__arm_vorrq_x_f32): Likewise.
27348 (__arm_vrev32q_x_f16): Likewise.
27349 (__arm_vrev64q_x_f16): Likewise.
27350 (__arm_vrev64q_x_f32): Likewise.
27351 (vabdq_x): Define polymorphic variant.
27352 (vabsq_x): Likewise.
27353 (vaddq_x): Likewise.
27354 (vandq_x): Likewise.
27355 (vbicq_x): Likewise.
27356 (vbrsrq_x): Likewise.
27357 (vcaddq_rot270_x): Likewise.
27358 (vcaddq_rot90_x): Likewise.
27359 (vcmulq_rot180_x): Likewise.
27360 (vcmulq_rot270_x): Likewise.
27361 (vcmulq_x): Likewise.
27362 (vcvtq_x): Likewise.
27363 (vcvtq_x_n): Likewise.
27364 (vcvtnq_m): Likewise.
27365 (veorq_x): Likewise.
27366 (vmaxnmq_x): Likewise.
27367 (vminnmq_x): Likewise.
27368 (vmulq_x): Likewise.
27369 (vnegq_x): Likewise.
27370 (vornq_x): Likewise.
27371 (vorrq_x): Likewise.
27372 (vrev32q_x): Likewise.
27373 (vrev64q_x): Likewise.
27374 (vrndaq_x): Likewise.
27375 (vrndmq_x): Likewise.
27376 (vrndnq_x): Likewise.
27377 (vrndpq_x): Likewise.
27378 (vrndq_x): Likewise.
27379 (vrndxq_x): Likewise.
27380 (vsubq_x): Likewise.
27381 (vcmulq_rot90_x): Likewise.
27382 (vadciq): Likewise.
27383 (vclsq_x): Likewise.
27384 (vclzq_x): Likewise.
27385 (vhaddq_x): Likewise.
27386 (vhcaddq_rot270_x): Likewise.
27387 (vhcaddq_rot90_x): Likewise.
27388 (vhsubq_x): Likewise.
27389 (vmaxq_x): Likewise.
27390 (vminq_x): Likewise.
27391 (vmovlbq_x): Likewise.
27392 (vmovltq_x): Likewise.
27393 (vmulhq_x): Likewise.
27394 (vmullbq_int_x): Likewise.
27395 (vmullbq_poly_x): Likewise.
27396 (vmulltq_int_x): Likewise.
27397 (vmulltq_poly_x): Likewise.
27398 (vmvnq_x): Likewise.
27399 (vrev16q_x): Likewise.
27400 (vrhaddq_x): Likewise.
27401 (vrmulhq_x): Likewise.
27402 (vrshlq_x): Likewise.
27403 (vrshrq_x): Likewise.
27404 (vshllbq_x): Likewise.
27405 (vshlltq_x): Likewise.
27406 (vshlq_x_n): Likewise.
27407 (vshlq_x): Likewise.
27408 (vdwdupq_x_u8): Likewise.
27409 (vdwdupq_x_u16): Likewise.
27410 (vdwdupq_x_u32): Likewise.
27411 (viwdupq_x_u8): Likewise.
27412 (viwdupq_x_u16): Likewise.
27413 (viwdupq_x_u32): Likewise.
27414 (vidupq_x_u8): Likewise.
27415 (vddupq_x_u8): Likewise.
27416 (vidupq_x_u16): Likewise.
27417 (vddupq_x_u16): Likewise.
27418 (vidupq_x_u32): Likewise.
27419 (vddupq_x_u32): Likewise.
27420 (vshrq_x): Likewise.
27422 2020-03-20 Richard Biener <rguenther@suse.de>
27424 * tree-vect-slp.c (vect_analyze_slp_instance): Push the stmts
27425 to vectorize for CTOR defs.
27427 2020-03-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
27428 Andre Vieira <andre.simoesdiasvieira@arm.com>
27429 Mihail Ionescu <mihail.ionescu@arm.com>
27431 * config/arm/arm-builtins.c (LDRGBWBS_QUALIFIERS): Define builtin
27433 (LDRGBWBU_QUALIFIERS): Likewise.
27434 (LDRGBWBS_Z_QUALIFIERS): Likewise.
27435 (LDRGBWBU_Z_QUALIFIERS): Likewise.
27436 (STRSBWBS_QUALIFIERS): Likewise.
27437 (STRSBWBU_QUALIFIERS): Likewise.
27438 (STRSBWBS_P_QUALIFIERS): Likewise.
27439 (STRSBWBU_P_QUALIFIERS): Likewise.
27440 * config/arm/arm_mve.h (vldrdq_gather_base_wb_s64): Define macro.
27441 (vldrdq_gather_base_wb_u64): Likewise.
27442 (vldrdq_gather_base_wb_z_s64): Likewise.
27443 (vldrdq_gather_base_wb_z_u64): Likewise.
27444 (vldrwq_gather_base_wb_f32): Likewise.
27445 (vldrwq_gather_base_wb_s32): Likewise.
27446 (vldrwq_gather_base_wb_u32): Likewise.
27447 (vldrwq_gather_base_wb_z_f32): Likewise.
27448 (vldrwq_gather_base_wb_z_s32): Likewise.
27449 (vldrwq_gather_base_wb_z_u32): Likewise.
27450 (vstrdq_scatter_base_wb_p_s64): Likewise.
27451 (vstrdq_scatter_base_wb_p_u64): Likewise.
27452 (vstrdq_scatter_base_wb_s64): Likewise.
27453 (vstrdq_scatter_base_wb_u64): Likewise.
27454 (vstrwq_scatter_base_wb_p_s32): Likewise.
27455 (vstrwq_scatter_base_wb_p_f32): Likewise.
27456 (vstrwq_scatter_base_wb_p_u32): Likewise.
27457 (vstrwq_scatter_base_wb_s32): Likewise.
27458 (vstrwq_scatter_base_wb_u32): Likewise.
27459 (vstrwq_scatter_base_wb_f32): Likewise.
27460 (__arm_vldrdq_gather_base_wb_s64): Define intrinsic.
27461 (__arm_vldrdq_gather_base_wb_u64): Likewise.
27462 (__arm_vldrdq_gather_base_wb_z_s64): Likewise.
27463 (__arm_vldrdq_gather_base_wb_z_u64): Likewise.
27464 (__arm_vldrwq_gather_base_wb_s32): Likewise.
27465 (__arm_vldrwq_gather_base_wb_u32): Likewise.
27466 (__arm_vldrwq_gather_base_wb_z_s32): Likewise.
27467 (__arm_vldrwq_gather_base_wb_z_u32): Likewise.
27468 (__arm_vstrdq_scatter_base_wb_s64): Likewise.
27469 (__arm_vstrdq_scatter_base_wb_u64): Likewise.
27470 (__arm_vstrdq_scatter_base_wb_p_s64): Likewise.
27471 (__arm_vstrdq_scatter_base_wb_p_u64): Likewise.
27472 (__arm_vstrwq_scatter_base_wb_p_s32): Likewise.
27473 (__arm_vstrwq_scatter_base_wb_p_u32): Likewise.
27474 (__arm_vstrwq_scatter_base_wb_s32): Likewise.
27475 (__arm_vstrwq_scatter_base_wb_u32): Likewise.
27476 (__arm_vldrwq_gather_base_wb_f32): Likewise.
27477 (__arm_vldrwq_gather_base_wb_z_f32): Likewise.
27478 (__arm_vstrwq_scatter_base_wb_f32): Likewise.
27479 (__arm_vstrwq_scatter_base_wb_p_f32): Likewise.
27480 (vstrwq_scatter_base_wb): Define polymorphic variant.
27481 (vstrwq_scatter_base_wb_p): Likewise.
27482 (vstrdq_scatter_base_wb_p): Likewise.
27483 (vstrdq_scatter_base_wb): Likewise.
27484 * config/arm/arm_mve_builtins.def (LDRGBWBS_QUALIFIERS): Use builtin
27486 * config/arm/mve.md (mve_vstrwq_scatter_base_wb_<supf>v4si): Define RTL
27488 (mve_vstrwq_scatter_base_wb_add_<supf>v4si): Likewise.
27489 (mve_vstrwq_scatter_base_wb_<supf>v4si_insn): Likewise.
27490 (mve_vstrwq_scatter_base_wb_p_<supf>v4si): Likewise.
27491 (mve_vstrwq_scatter_base_wb_p_add_<supf>v4si): Likewise.
27492 (mve_vstrwq_scatter_base_wb_p_<supf>v4si_insn): Likewise.
27493 (mve_vstrwq_scatter_base_wb_fv4sf): Likewise.
27494 (mve_vstrwq_scatter_base_wb_add_fv4sf): Likewise.
27495 (mve_vstrwq_scatter_base_wb_fv4sf_insn): Likewise.
27496 (mve_vstrwq_scatter_base_wb_p_fv4sf): Likewise.
27497 (mve_vstrwq_scatter_base_wb_p_add_fv4sf): Likewise.
27498 (mve_vstrwq_scatter_base_wb_p_fv4sf_insn): Likewise.
27499 (mve_vstrdq_scatter_base_wb_<supf>v2di): Likewise.
27500 (mve_vstrdq_scatter_base_wb_add_<supf>v2di): Likewise.
27501 (mve_vstrdq_scatter_base_wb_<supf>v2di_insn): Likewise.
27502 (mve_vstrdq_scatter_base_wb_p_<supf>v2di): Likewise.
27503 (mve_vstrdq_scatter_base_wb_p_add_<supf>v2di): Likewise.
27504 (mve_vstrdq_scatter_base_wb_p_<supf>v2di_insn): Likewise.
27505 (mve_vldrwq_gather_base_wb_<supf>v4si): Likewise.
27506 (mve_vldrwq_gather_base_wb_<supf>v4si_insn): Likewise.
27507 (mve_vldrwq_gather_base_wb_z_<supf>v4si): Likewise.
27508 (mve_vldrwq_gather_base_wb_z_<supf>v4si_insn): Likewise.
27509 (mve_vldrwq_gather_base_wb_fv4sf): Likewise.
27510 (mve_vldrwq_gather_base_wb_fv4sf_insn): Likewise.
27511 (mve_vldrwq_gather_base_wb_z_fv4sf): Likewise.
27512 (mve_vldrwq_gather_base_wb_z_fv4sf_insn): Likewise.
27513 (mve_vldrdq_gather_base_wb_<supf>v2di): Likewise.
27514 (mve_vldrdq_gather_base_wb_<supf>v2di_insn): Likewise.
27515 (mve_vldrdq_gather_base_wb_z_<supf>v2di): Likewise.
27516 (mve_vldrdq_gather_base_wb_z_<supf>v2di_insn): Likewise.
27518 2020-03-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
27519 Andre Vieira <andre.simoesdiasvieira@arm.com>
27520 Mihail Ionescu <mihail.ionescu@arm.com>
27522 * config/arm/arm-builtins.c
27523 (QUINOP_UNONE_UNONE_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Define quinary
27525 * config/arm/arm_mve.h (vddupq_m_n_u8): Define macro.
27526 (vddupq_m_n_u32): Likewise.
27527 (vddupq_m_n_u16): Likewise.
27528 (vddupq_m_wb_u8): Likewise.
27529 (vddupq_m_wb_u16): Likewise.
27530 (vddupq_m_wb_u32): Likewise.
27531 (vddupq_n_u8): Likewise.
27532 (vddupq_n_u32): Likewise.
27533 (vddupq_n_u16): Likewise.
27534 (vddupq_wb_u8): Likewise.
27535 (vddupq_wb_u16): Likewise.
27536 (vddupq_wb_u32): Likewise.
27537 (vdwdupq_m_n_u8): Likewise.
27538 (vdwdupq_m_n_u32): Likewise.
27539 (vdwdupq_m_n_u16): Likewise.
27540 (vdwdupq_m_wb_u8): Likewise.
27541 (vdwdupq_m_wb_u32): Likewise.
27542 (vdwdupq_m_wb_u16): Likewise.
27543 (vdwdupq_n_u8): Likewise.
27544 (vdwdupq_n_u32): Likewise.
27545 (vdwdupq_n_u16): Likewise.
27546 (vdwdupq_wb_u8): Likewise.
27547 (vdwdupq_wb_u32): Likewise.
27548 (vdwdupq_wb_u16): Likewise.
27549 (vidupq_m_n_u8): Likewise.
27550 (vidupq_m_n_u32): Likewise.
27551 (vidupq_m_n_u16): Likewise.
27552 (vidupq_m_wb_u8): Likewise.
27553 (vidupq_m_wb_u16): Likewise.
27554 (vidupq_m_wb_u32): Likewise.
27555 (vidupq_n_u8): Likewise.
27556 (vidupq_n_u32): Likewise.
27557 (vidupq_n_u16): Likewise.
27558 (vidupq_wb_u8): Likewise.
27559 (vidupq_wb_u16): Likewise.
27560 (vidupq_wb_u32): Likewise.
27561 (viwdupq_m_n_u8): Likewise.
27562 (viwdupq_m_n_u32): Likewise.
27563 (viwdupq_m_n_u16): Likewise.
27564 (viwdupq_m_wb_u8): Likewise.
27565 (viwdupq_m_wb_u32): Likewise.
27566 (viwdupq_m_wb_u16): Likewise.
27567 (viwdupq_n_u8): Likewise.
27568 (viwdupq_n_u32): Likewise.
27569 (viwdupq_n_u16): Likewise.
27570 (viwdupq_wb_u8): Likewise.
27571 (viwdupq_wb_u32): Likewise.
27572 (viwdupq_wb_u16): Likewise.
27573 (__arm_vddupq_m_n_u8): Define intrinsic.
27574 (__arm_vddupq_m_n_u32): Likewise.
27575 (__arm_vddupq_m_n_u16): Likewise.
27576 (__arm_vddupq_m_wb_u8): Likewise.
27577 (__arm_vddupq_m_wb_u16): Likewise.
27578 (__arm_vddupq_m_wb_u32): Likewise.
27579 (__arm_vddupq_n_u8): Likewise.
27580 (__arm_vddupq_n_u32): Likewise.
27581 (__arm_vddupq_n_u16): Likewise.
27582 (__arm_vdwdupq_m_n_u8): Likewise.
27583 (__arm_vdwdupq_m_n_u32): Likewise.
27584 (__arm_vdwdupq_m_n_u16): Likewise.
27585 (__arm_vdwdupq_m_wb_u8): Likewise.
27586 (__arm_vdwdupq_m_wb_u32): Likewise.
27587 (__arm_vdwdupq_m_wb_u16): Likewise.
27588 (__arm_vdwdupq_n_u8): Likewise.
27589 (__arm_vdwdupq_n_u32): Likewise.
27590 (__arm_vdwdupq_n_u16): Likewise.
27591 (__arm_vdwdupq_wb_u8): Likewise.
27592 (__arm_vdwdupq_wb_u32): Likewise.
27593 (__arm_vdwdupq_wb_u16): Likewise.
27594 (__arm_vidupq_m_n_u8): Likewise.
27595 (__arm_vidupq_m_n_u32): Likewise.
27596 (__arm_vidupq_m_n_u16): Likewise.
27597 (__arm_vidupq_n_u8): Likewise.
27598 (__arm_vidupq_m_wb_u8): Likewise.
27599 (__arm_vidupq_m_wb_u16): Likewise.
27600 (__arm_vidupq_m_wb_u32): Likewise.
27601 (__arm_vidupq_n_u32): Likewise.
27602 (__arm_vidupq_n_u16): Likewise.
27603 (__arm_vidupq_wb_u8): Likewise.
27604 (__arm_vidupq_wb_u16): Likewise.
27605 (__arm_vidupq_wb_u32): Likewise.
27606 (__arm_vddupq_wb_u8): Likewise.
27607 (__arm_vddupq_wb_u16): Likewise.
27608 (__arm_vddupq_wb_u32): Likewise.
27609 (__arm_viwdupq_m_n_u8): Likewise.
27610 (__arm_viwdupq_m_n_u32): Likewise.
27611 (__arm_viwdupq_m_n_u16): Likewise.
27612 (__arm_viwdupq_m_wb_u8): Likewise.
27613 (__arm_viwdupq_m_wb_u32): Likewise.
27614 (__arm_viwdupq_m_wb_u16): Likewise.
27615 (__arm_viwdupq_n_u8): Likewise.
27616 (__arm_viwdupq_n_u32): Likewise.
27617 (__arm_viwdupq_n_u16): Likewise.
27618 (__arm_viwdupq_wb_u8): Likewise.
27619 (__arm_viwdupq_wb_u32): Likewise.
27620 (__arm_viwdupq_wb_u16): Likewise.
27621 (vidupq_m): Define polymorphic variant.
27622 (vddupq_m): Likewise.
27623 (vidupq_u16): Likewise.
27624 (vidupq_u32): Likewise.
27625 (vidupq_u8): Likewise.
27626 (vddupq_u16): Likewise.
27627 (vddupq_u32): Likewise.
27628 (vddupq_u8): Likewise.
27629 (viwdupq_m): Likewise.
27630 (viwdupq_u16): Likewise.
27631 (viwdupq_u32): Likewise.
27632 (viwdupq_u8): Likewise.
27633 (vdwdupq_m): Likewise.
27634 (vdwdupq_u16): Likewise.
27635 (vdwdupq_u32): Likewise.
27636 (vdwdupq_u8): Likewise.
27637 * config/arm/arm_mve_builtins.def
27638 (QUINOP_UNONE_UNONE_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Use builtin
27640 * config/arm/mve.md (mve_vidupq_n_u<mode>): Define RTL pattern.
27641 (mve_vidupq_u<mode>_insn): Likewise.
27642 (mve_vidupq_m_n_u<mode>): Likewise.
27643 (mve_vidupq_m_wb_u<mode>_insn): Likewise.
27644 (mve_vddupq_n_u<mode>): Likewise.
27645 (mve_vddupq_u<mode>_insn): Likewise.
27646 (mve_vddupq_m_n_u<mode>): Likewise.
27647 (mve_vddupq_m_wb_u<mode>_insn): Likewise.
27648 (mve_vdwdupq_n_u<mode>): Likewise.
27649 (mve_vdwdupq_wb_u<mode>): Likewise.
27650 (mve_vdwdupq_wb_u<mode>_insn): Likewise.
27651 (mve_vdwdupq_m_n_u<mode>): Likewise.
27652 (mve_vdwdupq_m_wb_u<mode>): Likewise.
27653 (mve_vdwdupq_m_wb_u<mode>_insn): Likewise.
27654 (mve_viwdupq_n_u<mode>): Likewise.
27655 (mve_viwdupq_wb_u<mode>): Likewise.
27656 (mve_viwdupq_wb_u<mode>_insn): Likewise.
27657 (mve_viwdupq_m_n_u<mode>): Likewise.
27658 (mve_viwdupq_m_wb_u<mode>): Likewise.
27659 (mve_viwdupq_m_wb_u<mode>_insn): Likewise.
27661 2020-03-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
27663 * config/arm/arm_mve.h (vreinterpretq_s16_s32): Define macro.
27664 (vreinterpretq_s16_s64): Likewise.
27665 (vreinterpretq_s16_s8): Likewise.
27666 (vreinterpretq_s16_u16): Likewise.
27667 (vreinterpretq_s16_u32): Likewise.
27668 (vreinterpretq_s16_u64): Likewise.
27669 (vreinterpretq_s16_u8): Likewise.
27670 (vreinterpretq_s32_s16): Likewise.
27671 (vreinterpretq_s32_s64): Likewise.
27672 (vreinterpretq_s32_s8): Likewise.
27673 (vreinterpretq_s32_u16): Likewise.
27674 (vreinterpretq_s32_u32): Likewise.
27675 (vreinterpretq_s32_u64): Likewise.
27676 (vreinterpretq_s32_u8): Likewise.
27677 (vreinterpretq_s64_s16): Likewise.
27678 (vreinterpretq_s64_s32): Likewise.
27679 (vreinterpretq_s64_s8): Likewise.
27680 (vreinterpretq_s64_u16): Likewise.
27681 (vreinterpretq_s64_u32): Likewise.
27682 (vreinterpretq_s64_u64): Likewise.
27683 (vreinterpretq_s64_u8): Likewise.
27684 (vreinterpretq_s8_s16): Likewise.
27685 (vreinterpretq_s8_s32): Likewise.
27686 (vreinterpretq_s8_s64): Likewise.
27687 (vreinterpretq_s8_u16): Likewise.
27688 (vreinterpretq_s8_u32): Likewise.
27689 (vreinterpretq_s8_u64): Likewise.
27690 (vreinterpretq_s8_u8): Likewise.
27691 (vreinterpretq_u16_s16): Likewise.
27692 (vreinterpretq_u16_s32): Likewise.
27693 (vreinterpretq_u16_s64): Likewise.
27694 (vreinterpretq_u16_s8): Likewise.
27695 (vreinterpretq_u16_u32): Likewise.
27696 (vreinterpretq_u16_u64): Likewise.
27697 (vreinterpretq_u16_u8): Likewise.
27698 (vreinterpretq_u32_s16): Likewise.
27699 (vreinterpretq_u32_s32): Likewise.
27700 (vreinterpretq_u32_s64): Likewise.
27701 (vreinterpretq_u32_s8): Likewise.
27702 (vreinterpretq_u32_u16): Likewise.
27703 (vreinterpretq_u32_u64): Likewise.
27704 (vreinterpretq_u32_u8): Likewise.
27705 (vreinterpretq_u64_s16): Likewise.
27706 (vreinterpretq_u64_s32): Likewise.
27707 (vreinterpretq_u64_s64): Likewise.
27708 (vreinterpretq_u64_s8): Likewise.
27709 (vreinterpretq_u64_u16): Likewise.
27710 (vreinterpretq_u64_u32): Likewise.
27711 (vreinterpretq_u64_u8): Likewise.
27712 (vreinterpretq_u8_s16): Likewise.
27713 (vreinterpretq_u8_s32): Likewise.
27714 (vreinterpretq_u8_s64): Likewise.
27715 (vreinterpretq_u8_s8): Likewise.
27716 (vreinterpretq_u8_u16): Likewise.
27717 (vreinterpretq_u8_u32): Likewise.
27718 (vreinterpretq_u8_u64): Likewise.
27719 (vreinterpretq_s32_f16): Likewise.
27720 (vreinterpretq_s32_f32): Likewise.
27721 (vreinterpretq_u16_f16): Likewise.
27722 (vreinterpretq_u16_f32): Likewise.
27723 (vreinterpretq_u32_f16): Likewise.
27724 (vreinterpretq_u32_f32): Likewise.
27725 (vreinterpretq_u64_f16): Likewise.
27726 (vreinterpretq_u64_f32): Likewise.
27727 (vreinterpretq_u8_f16): Likewise.
27728 (vreinterpretq_u8_f32): Likewise.
27729 (vreinterpretq_f16_f32): Likewise.
27730 (vreinterpretq_f16_s16): Likewise.
27731 (vreinterpretq_f16_s32): Likewise.
27732 (vreinterpretq_f16_s64): Likewise.
27733 (vreinterpretq_f16_s8): Likewise.
27734 (vreinterpretq_f16_u16): Likewise.
27735 (vreinterpretq_f16_u32): Likewise.
27736 (vreinterpretq_f16_u64): Likewise.
27737 (vreinterpretq_f16_u8): Likewise.
27738 (vreinterpretq_f32_f16): Likewise.
27739 (vreinterpretq_f32_s16): Likewise.
27740 (vreinterpretq_f32_s32): Likewise.
27741 (vreinterpretq_f32_s64): Likewise.
27742 (vreinterpretq_f32_s8): Likewise.
27743 (vreinterpretq_f32_u16): Likewise.
27744 (vreinterpretq_f32_u32): Likewise.
27745 (vreinterpretq_f32_u64): Likewise.
27746 (vreinterpretq_f32_u8): Likewise.
27747 (vreinterpretq_s16_f16): Likewise.
27748 (vreinterpretq_s16_f32): Likewise.
27749 (vreinterpretq_s64_f16): Likewise.
27750 (vreinterpretq_s64_f32): Likewise.
27751 (vreinterpretq_s8_f16): Likewise.
27752 (vreinterpretq_s8_f32): Likewise.
27753 (vuninitializedq_u8): Likewise.
27754 (vuninitializedq_u16): Likewise.
27755 (vuninitializedq_u32): Likewise.
27756 (vuninitializedq_u64): Likewise.
27757 (vuninitializedq_s8): Likewise.
27758 (vuninitializedq_s16): Likewise.
27759 (vuninitializedq_s32): Likewise.
27760 (vuninitializedq_s64): Likewise.
27761 (vuninitializedq_f16): Likewise.
27762 (vuninitializedq_f32): Likewise.
27763 (__arm_vuninitializedq_u8): Define intrinsic.
27764 (__arm_vuninitializedq_u16): Likewise.
27765 (__arm_vuninitializedq_u32): Likewise.
27766 (__arm_vuninitializedq_u64): Likewise.
27767 (__arm_vuninitializedq_s8): Likewise.
27768 (__arm_vuninitializedq_s16): Likewise.
27769 (__arm_vuninitializedq_s32): Likewise.
27770 (__arm_vuninitializedq_s64): Likewise.
27771 (__arm_vreinterpretq_s16_s32): Likewise.
27772 (__arm_vreinterpretq_s16_s64): Likewise.
27773 (__arm_vreinterpretq_s16_s8): Likewise.
27774 (__arm_vreinterpretq_s16_u16): Likewise.
27775 (__arm_vreinterpretq_s16_u32): Likewise.
27776 (__arm_vreinterpretq_s16_u64): Likewise.
27777 (__arm_vreinterpretq_s16_u8): Likewise.
27778 (__arm_vreinterpretq_s32_s16): Likewise.
27779 (__arm_vreinterpretq_s32_s64): Likewise.
27780 (__arm_vreinterpretq_s32_s8): Likewise.
27781 (__arm_vreinterpretq_s32_u16): Likewise.
27782 (__arm_vreinterpretq_s32_u32): Likewise.
27783 (__arm_vreinterpretq_s32_u64): Likewise.
27784 (__arm_vreinterpretq_s32_u8): Likewise.
27785 (__arm_vreinterpretq_s64_s16): Likewise.
27786 (__arm_vreinterpretq_s64_s32): Likewise.
27787 (__arm_vreinterpretq_s64_s8): Likewise.
27788 (__arm_vreinterpretq_s64_u16): Likewise.
27789 (__arm_vreinterpretq_s64_u32): Likewise.
27790 (__arm_vreinterpretq_s64_u64): Likewise.
27791 (__arm_vreinterpretq_s64_u8): Likewise.
27792 (__arm_vreinterpretq_s8_s16): Likewise.
27793 (__arm_vreinterpretq_s8_s32): Likewise.
27794 (__arm_vreinterpretq_s8_s64): Likewise.
27795 (__arm_vreinterpretq_s8_u16): Likewise.
27796 (__arm_vreinterpretq_s8_u32): Likewise.
27797 (__arm_vreinterpretq_s8_u64): Likewise.
27798 (__arm_vreinterpretq_s8_u8): Likewise.
27799 (__arm_vreinterpretq_u16_s16): Likewise.
27800 (__arm_vreinterpretq_u16_s32): Likewise.
27801 (__arm_vreinterpretq_u16_s64): Likewise.
27802 (__arm_vreinterpretq_u16_s8): Likewise.
27803 (__arm_vreinterpretq_u16_u32): Likewise.
27804 (__arm_vreinterpretq_u16_u64): Likewise.
27805 (__arm_vreinterpretq_u16_u8): Likewise.
27806 (__arm_vreinterpretq_u32_s16): Likewise.
27807 (__arm_vreinterpretq_u32_s32): Likewise.
27808 (__arm_vreinterpretq_u32_s64): Likewise.
27809 (__arm_vreinterpretq_u32_s8): Likewise.
27810 (__arm_vreinterpretq_u32_u16): Likewise.
27811 (__arm_vreinterpretq_u32_u64): Likewise.
27812 (__arm_vreinterpretq_u32_u8): Likewise.
27813 (__arm_vreinterpretq_u64_s16): Likewise.
27814 (__arm_vreinterpretq_u64_s32): Likewise.
27815 (__arm_vreinterpretq_u64_s64): Likewise.
27816 (__arm_vreinterpretq_u64_s8): Likewise.
27817 (__arm_vreinterpretq_u64_u16): Likewise.
27818 (__arm_vreinterpretq_u64_u32): Likewise.
27819 (__arm_vreinterpretq_u64_u8): Likewise.
27820 (__arm_vreinterpretq_u8_s16): Likewise.
27821 (__arm_vreinterpretq_u8_s32): Likewise.
27822 (__arm_vreinterpretq_u8_s64): Likewise.
27823 (__arm_vreinterpretq_u8_s8): Likewise.
27824 (__arm_vreinterpretq_u8_u16): Likewise.
27825 (__arm_vreinterpretq_u8_u32): Likewise.
27826 (__arm_vreinterpretq_u8_u64): Likewise.
27827 (__arm_vuninitializedq_f16): Likewise.
27828 (__arm_vuninitializedq_f32): Likewise.
27829 (__arm_vreinterpretq_s32_f16): Likewise.
27830 (__arm_vreinterpretq_s32_f32): Likewise.
27831 (__arm_vreinterpretq_s16_f16): Likewise.
27832 (__arm_vreinterpretq_s16_f32): Likewise.
27833 (__arm_vreinterpretq_s64_f16): Likewise.
27834 (__arm_vreinterpretq_s64_f32): Likewise.
27835 (__arm_vreinterpretq_s8_f16): Likewise.
27836 (__arm_vreinterpretq_s8_f32): Likewise.
27837 (__arm_vreinterpretq_u16_f16): Likewise.
27838 (__arm_vreinterpretq_u16_f32): Likewise.
27839 (__arm_vreinterpretq_u32_f16): Likewise.
27840 (__arm_vreinterpretq_u32_f32): Likewise.
27841 (__arm_vreinterpretq_u64_f16): Likewise.
27842 (__arm_vreinterpretq_u64_f32): Likewise.
27843 (__arm_vreinterpretq_u8_f16): Likewise.
27844 (__arm_vreinterpretq_u8_f32): Likewise.
27845 (__arm_vreinterpretq_f16_f32): Likewise.
27846 (__arm_vreinterpretq_f16_s16): Likewise.
27847 (__arm_vreinterpretq_f16_s32): Likewise.
27848 (__arm_vreinterpretq_f16_s64): Likewise.
27849 (__arm_vreinterpretq_f16_s8): Likewise.
27850 (__arm_vreinterpretq_f16_u16): Likewise.
27851 (__arm_vreinterpretq_f16_u32): Likewise.
27852 (__arm_vreinterpretq_f16_u64): Likewise.
27853 (__arm_vreinterpretq_f16_u8): Likewise.
27854 (__arm_vreinterpretq_f32_f16): Likewise.
27855 (__arm_vreinterpretq_f32_s16): Likewise.
27856 (__arm_vreinterpretq_f32_s32): Likewise.
27857 (__arm_vreinterpretq_f32_s64): Likewise.
27858 (__arm_vreinterpretq_f32_s8): Likewise.
27859 (__arm_vreinterpretq_f32_u16): Likewise.
27860 (__arm_vreinterpretq_f32_u32): Likewise.
27861 (__arm_vreinterpretq_f32_u64): Likewise.
27862 (__arm_vreinterpretq_f32_u8): Likewise.
27863 (vuninitializedq): Define polymorphic variant.
27864 (vreinterpretq_f16): Likewise.
27865 (vreinterpretq_f32): Likewise.
27866 (vreinterpretq_s16): Likewise.
27867 (vreinterpretq_s32): Likewise.
27868 (vreinterpretq_s64): Likewise.
27869 (vreinterpretq_s8): Likewise.
27870 (vreinterpretq_u16): Likewise.
27871 (vreinterpretq_u32): Likewise.
27872 (vreinterpretq_u64): Likewise.
27873 (vreinterpretq_u8): Likewise.
27875 2020-03-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
27876 Andre Vieira <andre.simoesdiasvieira@arm.com>
27877 Mihail Ionescu <mihail.ionescu@arm.com>
27879 * config/arm/arm_mve.h (vaddq_s8): Define macro.
27880 (vaddq_s16): Likewise.
27881 (vaddq_s32): Likewise.
27882 (vaddq_u8): Likewise.
27883 (vaddq_u16): Likewise.
27884 (vaddq_u32): Likewise.
27885 (vaddq_f16): Likewise.
27886 (vaddq_f32): Likewise.
27887 (__arm_vaddq_s8): Define intrinsic.
27888 (__arm_vaddq_s16): Likewise.
27889 (__arm_vaddq_s32): Likewise.
27890 (__arm_vaddq_u8): Likewise.
27891 (__arm_vaddq_u16): Likewise.
27892 (__arm_vaddq_u32): Likewise.
27893 (__arm_vaddq_f16): Likewise.
27894 (__arm_vaddq_f32): Likewise.
27895 (vaddq): Define polymorphic variant.
27896 * config/arm/iterators.md (VNIM): Define mode iterator for common types
27897 Neon, IWMMXT and MVE.
27898 (VNINOTM): Likewise.
27899 * config/arm/mve.md (mve_vaddq<mode>): Define RTL pattern.
27900 (mve_vaddq_f<mode>): Define RTL pattern.
27901 * config/arm/neon.md (add<mode>3): Rename to addv4hf3 RTL pattern.
27902 (addv8hf3_neon): Define RTL pattern.
27903 * config/arm/vec-common.md (add<mode>3): Modify standard add RTL pattern
27905 (addv8hf3): Define standard RTL pattern for MVE and Neon.
27906 (add<mode>3): Modify existing standard add RTL pattern for Neon and IWMMXT.
27908 2020-03-20 Martin Liska <mliska@suse.cz>
27911 * ipa-cp.c (ipa_get_jf_ancestor_result): Use offset in bytes. Previously
27912 build_ref_for_offset function was used and it transforms off to bytes
27915 2020-03-20 Richard Biener <rguenther@suse.de>
27917 PR tree-optimization/94266
27918 * gimple-ssa-sprintf.c (get_origin_and_offset): Use the
27919 type of the underlying object to adjust for the containing
27920 field if available.
27922 2020-03-20 Andre Vieira <andre.simoesdiasvieira@arm.com>
27924 * config/arm/unspecs.md (UNSPEC_GET_FPSCR): Rename this to ...
27925 (VUNSPEC_GET_FPSCR): ... this, and move it to vunspec.
27926 * config/arm/vfp.md: (get_fpscr, set_fpscr): Revert to old patterns.
27928 2020-03-20 Andre Vieira <andre.simoesdiasvieira@arm.com>
27930 * config/arm/mve.md (mve_mov<mode>): Fix R->R case.
27932 2020-03-20 Jakub Jelinek <jakub@redhat.com>
27934 PR tree-optimization/94224
27935 * gimple-ssa-store-merging.c
27936 (imm_store_chain_info::coalesce_immediate): Don't consider overlapping
27937 or adjacent INTEGER_CST rhs_code stores as mergeable if they have
27940 2020-03-20 Andre Vieira <andre.simoesdiasvieira@arm.com>
27942 * config/arm/arm.md (define_attr "conds"): Fix logic for neon and mve.
27944 2020-03-19 Jan Hubicka <hubicka@ucw.cz>
27947 * cgraph.c (cgraph_node::function_symbol): Fix availability computation.
27948 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
27950 2020-03-19 Jan Hubicka <hubicka@ucw.cz>
27953 * cgraphunit.c (process_function_and_variable_attributes): warn
27954 for flatten attribute on alias.
27955 * ipa-inline.c (ipa_inline): Do not ICE on flatten attribute on alias.
27957 2020-03-19 Martin Liska <mliska@suse.cz>
27959 * lto-section-in.c: Add ext_symtab.
27960 * lto-streamer-out.c (write_symbol_extension_info): New.
27961 (produce_symtab_extension): New.
27962 (produce_asm_for_decls): Stream also produce_symtab_extension.
27963 * lto-streamer.h (enum lto_section_type): New section.
27965 2020-03-19 Jakub Jelinek <jakub@redhat.com>
27967 PR tree-optimization/94211
27968 * tree-ssa-phiopt.c (value_replacement): Use estimate_num_insns_seq
27969 instead of estimate_num_insns for bb_seq (middle_bb). Rename
27970 emtpy_or_with_defined_p variable to empty_or_with_defined_p, adjust
27973 2020-03-19 Richard Biener <rguenther@suse.de>
27976 * ipa-cp.c (ipa_get_jf_ancestor_result): Avoid build_fold_addr_expr
27977 and build_ref_for_offset.
27979 2020-03-19 Richard Biener <rguenther@suse.de>
27981 PR middle-end/94216
27982 * fold-const.c (fold_binary_loc): Avoid using
27983 build_fold_addr_expr when we really want an ADDR_EXPR.
27985 2020-03-18 Segher Boessenkool <segher@kernel.crashing.org>
27987 * config/rs6000/constraints.md (wd, wf, wi, ws, ww): New undocumented
27990 2020-03-12 Richard Sandiford <richard.sandiford@arm.com>
27992 PR rtl-optimization/90275
27993 * cse.c (cse_insn): Delete no-op register moves too.
27995 2020-03-18 Martin Sebor <msebor@redhat.com>
27998 * cgraphunit.c (process_function_and_variable_attributes): Also
27999 complain about weakref function definitions and drop all effects
28002 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
28003 Mihail Ionescu <mihail.ionescu@arm.com>
28004 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
28006 * config/arm/arm_mve.h (vstrdq_scatter_base_p_s64): Define macro.
28007 (vstrdq_scatter_base_p_u64): Likewise.
28008 (vstrdq_scatter_base_s64): Likewise.
28009 (vstrdq_scatter_base_u64): Likewise.
28010 (vstrdq_scatter_offset_p_s64): Likewise.
28011 (vstrdq_scatter_offset_p_u64): Likewise.
28012 (vstrdq_scatter_offset_s64): Likewise.
28013 (vstrdq_scatter_offset_u64): Likewise.
28014 (vstrdq_scatter_shifted_offset_p_s64): Likewise.
28015 (vstrdq_scatter_shifted_offset_p_u64): Likewise.
28016 (vstrdq_scatter_shifted_offset_s64): Likewise.
28017 (vstrdq_scatter_shifted_offset_u64): Likewise.
28018 (vstrhq_scatter_offset_f16): Likewise.
28019 (vstrhq_scatter_offset_p_f16): Likewise.
28020 (vstrhq_scatter_shifted_offset_f16): Likewise.
28021 (vstrhq_scatter_shifted_offset_p_f16): Likewise.
28022 (vstrwq_scatter_base_f32): Likewise.
28023 (vstrwq_scatter_base_p_f32): Likewise.
28024 (vstrwq_scatter_offset_f32): Likewise.
28025 (vstrwq_scatter_offset_p_f32): Likewise.
28026 (vstrwq_scatter_offset_p_s32): Likewise.
28027 (vstrwq_scatter_offset_p_u32): Likewise.
28028 (vstrwq_scatter_offset_s32): Likewise.
28029 (vstrwq_scatter_offset_u32): Likewise.
28030 (vstrwq_scatter_shifted_offset_f32): Likewise.
28031 (vstrwq_scatter_shifted_offset_p_f32): Likewise.
28032 (vstrwq_scatter_shifted_offset_p_s32): Likewise.
28033 (vstrwq_scatter_shifted_offset_p_u32): Likewise.
28034 (vstrwq_scatter_shifted_offset_s32): Likewise.
28035 (vstrwq_scatter_shifted_offset_u32): Likewise.
28036 (__arm_vstrdq_scatter_base_p_s64): Define intrinsic.
28037 (__arm_vstrdq_scatter_base_p_u64): Likewise.
28038 (__arm_vstrdq_scatter_base_s64): Likewise.
28039 (__arm_vstrdq_scatter_base_u64): Likewise.
28040 (__arm_vstrdq_scatter_offset_p_s64): Likewise.
28041 (__arm_vstrdq_scatter_offset_p_u64): Likewise.
28042 (__arm_vstrdq_scatter_offset_s64): Likewise.
28043 (__arm_vstrdq_scatter_offset_u64): Likewise.
28044 (__arm_vstrdq_scatter_shifted_offset_p_s64): Likewise.
28045 (__arm_vstrdq_scatter_shifted_offset_p_u64): Likewise.
28046 (__arm_vstrdq_scatter_shifted_offset_s64): Likewise.
28047 (__arm_vstrdq_scatter_shifted_offset_u64): Likewise.
28048 (__arm_vstrwq_scatter_offset_p_s32): Likewise.
28049 (__arm_vstrwq_scatter_offset_p_u32): Likewise.
28050 (__arm_vstrwq_scatter_offset_s32): Likewise.
28051 (__arm_vstrwq_scatter_offset_u32): Likewise.
28052 (__arm_vstrwq_scatter_shifted_offset_p_s32): Likewise.
28053 (__arm_vstrwq_scatter_shifted_offset_p_u32): Likewise.
28054 (__arm_vstrwq_scatter_shifted_offset_s32): Likewise.
28055 (__arm_vstrwq_scatter_shifted_offset_u32): Likewise.
28056 (__arm_vstrhq_scatter_offset_f16): Likewise.
28057 (__arm_vstrhq_scatter_offset_p_f16): Likewise.
28058 (__arm_vstrhq_scatter_shifted_offset_f16): Likewise.
28059 (__arm_vstrhq_scatter_shifted_offset_p_f16): Likewise.
28060 (__arm_vstrwq_scatter_base_f32): Likewise.
28061 (__arm_vstrwq_scatter_base_p_f32): Likewise.
28062 (__arm_vstrwq_scatter_offset_f32): Likewise.
28063 (__arm_vstrwq_scatter_offset_p_f32): Likewise.
28064 (__arm_vstrwq_scatter_shifted_offset_f32): Likewise.
28065 (__arm_vstrwq_scatter_shifted_offset_p_f32): Likewise.
28066 (vstrhq_scatter_offset): Define polymorphic variant.
28067 (vstrhq_scatter_offset_p): Likewise.
28068 (vstrhq_scatter_shifted_offset): Likewise.
28069 (vstrhq_scatter_shifted_offset_p): Likewise.
28070 (vstrwq_scatter_base): Likewise.
28071 (vstrwq_scatter_base_p): Likewise.
28072 (vstrwq_scatter_offset): Likewise.
28073 (vstrwq_scatter_offset_p): Likewise.
28074 (vstrwq_scatter_shifted_offset): Likewise.
28075 (vstrwq_scatter_shifted_offset_p): Likewise.
28076 (vstrdq_scatter_base_p): Likewise.
28077 (vstrdq_scatter_base): Likewise.
28078 (vstrdq_scatter_offset_p): Likewise.
28079 (vstrdq_scatter_offset): Likewise.
28080 (vstrdq_scatter_shifted_offset_p): Likewise.
28081 (vstrdq_scatter_shifted_offset): Likewise.
28082 * config/arm/arm_mve_builtins.def (STRSBS): Use builtin qualifier.
28083 (STRSBS_P): Likewise.
28084 (STRSBU): Likewise.
28085 (STRSBU_P): Likewise.
28087 (STRSS_P): Likewise.
28089 (STRSU_P): Likewise.
28090 * config/arm/constraints.md (Ri): Define.
28091 * config/arm/mve.md (VSTRDSBQ): Define iterator.
28092 (VSTRDSOQ): Likewise.
28093 (VSTRDSSOQ): Likewise.
28094 (VSTRWSOQ): Likewise.
28095 (VSTRWSSOQ): Likewise.
28096 (mve_vstrdq_scatter_base_p_<supf>v2di): Define RTL pattern.
28097 (mve_vstrdq_scatter_base_<supf>v2di): Likewise.
28098 (mve_vstrdq_scatter_offset_p_<supf>v2di): Likewise.
28099 (mve_vstrdq_scatter_offset_<supf>v2di): Likewise.
28100 (mve_vstrdq_scatter_shifted_offset_p_<supf>v2di): Likewise.
28101 (mve_vstrdq_scatter_shifted_offset_<supf>v2di): Likewise.
28102 (mve_vstrhq_scatter_offset_fv8hf): Likewise.
28103 (mve_vstrhq_scatter_offset_p_fv8hf): Likewise.
28104 (mve_vstrhq_scatter_shifted_offset_fv8hf): Likewise.
28105 (mve_vstrhq_scatter_shifted_offset_p_fv8hf): Likewise.
28106 (mve_vstrwq_scatter_base_fv4sf): Likewise.
28107 (mve_vstrwq_scatter_base_p_fv4sf): Likewise.
28108 (mve_vstrwq_scatter_offset_fv4sf): Likewise.
28109 (mve_vstrwq_scatter_offset_p_fv4sf): Likewise.
28110 (mve_vstrwq_scatter_offset_p_<supf>v4si): Likewise.
28111 (mve_vstrwq_scatter_offset_<supf>v4si): Likewise.
28112 (mve_vstrwq_scatter_shifted_offset_fv4sf): Likewise.
28113 (mve_vstrwq_scatter_shifted_offset_p_fv4sf): Likewise.
28114 (mve_vstrwq_scatter_shifted_offset_p_<supf>v4si): Likewise.
28115 (mve_vstrwq_scatter_shifted_offset_<supf>v4si): Likewise.
28116 * config/arm/predicates.md (Ri): Define predicate to check immediate
28117 is the range +/-1016 and multiple of 8.
28119 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
28120 Mihail Ionescu <mihail.ionescu@arm.com>
28121 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
28123 * config/arm/arm_mve.h (vst1q_f32): Define macro.
28124 (vst1q_f16): Likewise.
28125 (vst1q_s8): Likewise.
28126 (vst1q_s32): Likewise.
28127 (vst1q_s16): Likewise.
28128 (vst1q_u8): Likewise.
28129 (vst1q_u32): Likewise.
28130 (vst1q_u16): Likewise.
28131 (vstrhq_f16): Likewise.
28132 (vstrhq_scatter_offset_s32): Likewise.
28133 (vstrhq_scatter_offset_s16): Likewise.
28134 (vstrhq_scatter_offset_u32): Likewise.
28135 (vstrhq_scatter_offset_u16): Likewise.
28136 (vstrhq_scatter_offset_p_s32): Likewise.
28137 (vstrhq_scatter_offset_p_s16): Likewise.
28138 (vstrhq_scatter_offset_p_u32): Likewise.
28139 (vstrhq_scatter_offset_p_u16): Likewise.
28140 (vstrhq_scatter_shifted_offset_s32): Likewise.
28141 (vstrhq_scatter_shifted_offset_s16): Likewise.
28142 (vstrhq_scatter_shifted_offset_u32): Likewise.
28143 (vstrhq_scatter_shifted_offset_u16): Likewise.
28144 (vstrhq_scatter_shifted_offset_p_s32): Likewise.
28145 (vstrhq_scatter_shifted_offset_p_s16): Likewise.
28146 (vstrhq_scatter_shifted_offset_p_u32): Likewise.
28147 (vstrhq_scatter_shifted_offset_p_u16): Likewise.
28148 (vstrhq_s32): Likewise.
28149 (vstrhq_s16): Likewise.
28150 (vstrhq_u32): Likewise.
28151 (vstrhq_u16): Likewise.
28152 (vstrhq_p_f16): Likewise.
28153 (vstrhq_p_s32): Likewise.
28154 (vstrhq_p_s16): Likewise.
28155 (vstrhq_p_u32): Likewise.
28156 (vstrhq_p_u16): Likewise.
28157 (vstrwq_f32): Likewise.
28158 (vstrwq_s32): Likewise.
28159 (vstrwq_u32): Likewise.
28160 (vstrwq_p_f32): Likewise.
28161 (vstrwq_p_s32): Likewise.
28162 (vstrwq_p_u32): Likewise.
28163 (__arm_vst1q_s8): Define intrinsic.
28164 (__arm_vst1q_s32): Likewise.
28165 (__arm_vst1q_s16): Likewise.
28166 (__arm_vst1q_u8): Likewise.
28167 (__arm_vst1q_u32): Likewise.
28168 (__arm_vst1q_u16): Likewise.
28169 (__arm_vstrhq_scatter_offset_s32): Likewise.
28170 (__arm_vstrhq_scatter_offset_s16): Likewise.
28171 (__arm_vstrhq_scatter_offset_u32): Likewise.
28172 (__arm_vstrhq_scatter_offset_u16): Likewise.
28173 (__arm_vstrhq_scatter_offset_p_s32): Likewise.
28174 (__arm_vstrhq_scatter_offset_p_s16): Likewise.
28175 (__arm_vstrhq_scatter_offset_p_u32): Likewise.
28176 (__arm_vstrhq_scatter_offset_p_u16): Likewise.
28177 (__arm_vstrhq_scatter_shifted_offset_s32): Likewise.
28178 (__arm_vstrhq_scatter_shifted_offset_s16): Likewise.
28179 (__arm_vstrhq_scatter_shifted_offset_u32): Likewise.
28180 (__arm_vstrhq_scatter_shifted_offset_u16): Likewise.
28181 (__arm_vstrhq_scatter_shifted_offset_p_s32): Likewise.
28182 (__arm_vstrhq_scatter_shifted_offset_p_s16): Likewise.
28183 (__arm_vstrhq_scatter_shifted_offset_p_u32): Likewise.
28184 (__arm_vstrhq_scatter_shifted_offset_p_u16): Likewise.
28185 (__arm_vstrhq_s32): Likewise.
28186 (__arm_vstrhq_s16): Likewise.
28187 (__arm_vstrhq_u32): Likewise.
28188 (__arm_vstrhq_u16): Likewise.
28189 (__arm_vstrhq_p_s32): Likewise.
28190 (__arm_vstrhq_p_s16): Likewise.
28191 (__arm_vstrhq_p_u32): Likewise.
28192 (__arm_vstrhq_p_u16): Likewise.
28193 (__arm_vstrwq_s32): Likewise.
28194 (__arm_vstrwq_u32): Likewise.
28195 (__arm_vstrwq_p_s32): Likewise.
28196 (__arm_vstrwq_p_u32): Likewise.
28197 (__arm_vstrwq_p_f32): Likewise.
28198 (__arm_vstrwq_f32): Likewise.
28199 (__arm_vst1q_f32): Likewise.
28200 (__arm_vst1q_f16): Likewise.
28201 (__arm_vstrhq_f16): Likewise.
28202 (__arm_vstrhq_p_f16): Likewise.
28203 (vst1q): Define polymorphic variant.
28204 (vstrhq): Likewise.
28205 (vstrhq_p): Likewise.
28206 (vstrhq_scatter_offset_p): Likewise.
28207 (vstrhq_scatter_offset): Likewise.
28208 (vstrhq_scatter_shifted_offset_p): Likewise.
28209 (vstrhq_scatter_shifted_offset): Likewise.
28210 (vstrwq_p): Likewise.
28211 (vstrwq): Likewise.
28212 * config/arm/arm_mve_builtins.def (STRS): Use builtin qualifier.
28213 (STRS_P): Likewise.
28215 (STRSS_P): Likewise.
28217 (STRSU_P): Likewise.
28219 (STRU_P): Likewise.
28220 * config/arm/mve.md (VST1Q): Define iterator.
28221 (VSTRHSOQ): Likewise.
28222 (VSTRHSSOQ): Likewise.
28223 (VSTRHQ): Likewise.
28224 (VSTRWQ): Likewise.
28225 (mve_vstrhq_fv8hf): Define RTL pattern.
28226 (mve_vstrhq_p_fv8hf): Likewise.
28227 (mve_vstrhq_p_<supf><mode>): Likewise.
28228 (mve_vstrhq_scatter_offset_p_<supf><mode>): Likewise.
28229 (mve_vstrhq_scatter_offset_<supf><mode>): Likewise.
28230 (mve_vstrhq_scatter_shifted_offset_p_<supf><mode>): Likewise.
28231 (mve_vstrhq_scatter_shifted_offset_<supf><mode>): Likewise.
28232 (mve_vstrhq_<supf><mode>): Likewise.
28233 (mve_vstrwq_fv4sf): Likewise.
28234 (mve_vstrwq_p_fv4sf): Likewise.
28235 (mve_vstrwq_p_<supf>v4si): Likewise.
28236 (mve_vstrwq_<supf>v4si): Likewise.
28237 (mve_vst1q_f<mode>): Define expand.
28238 (mve_vst1q_<supf><mode>): Likewise.
28240 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
28241 Mihail Ionescu <mihail.ionescu@arm.com>
28242 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
28244 * config/arm/arm_mve.h (vld1q_s8): Define macro.
28245 (vld1q_s32): Likewise.
28246 (vld1q_s16): Likewise.
28247 (vld1q_u8): Likewise.
28248 (vld1q_u32): Likewise.
28249 (vld1q_u16): Likewise.
28250 (vldrhq_gather_offset_s32): Likewise.
28251 (vldrhq_gather_offset_s16): Likewise.
28252 (vldrhq_gather_offset_u32): Likewise.
28253 (vldrhq_gather_offset_u16): Likewise.
28254 (vldrhq_gather_offset_z_s32): Likewise.
28255 (vldrhq_gather_offset_z_s16): Likewise.
28256 (vldrhq_gather_offset_z_u32): Likewise.
28257 (vldrhq_gather_offset_z_u16): Likewise.
28258 (vldrhq_gather_shifted_offset_s32): Likewise.
28259 (vldrhq_gather_shifted_offset_s16): Likewise.
28260 (vldrhq_gather_shifted_offset_u32): Likewise.
28261 (vldrhq_gather_shifted_offset_u16): Likewise.
28262 (vldrhq_gather_shifted_offset_z_s32): Likewise.
28263 (vldrhq_gather_shifted_offset_z_s16): Likewise.
28264 (vldrhq_gather_shifted_offset_z_u32): Likewise.
28265 (vldrhq_gather_shifted_offset_z_u16): Likewise.
28266 (vldrhq_s32): Likewise.
28267 (vldrhq_s16): Likewise.
28268 (vldrhq_u32): Likewise.
28269 (vldrhq_u16): Likewise.
28270 (vldrhq_z_s32): Likewise.
28271 (vldrhq_z_s16): Likewise.
28272 (vldrhq_z_u32): Likewise.
28273 (vldrhq_z_u16): Likewise.
28274 (vldrwq_s32): Likewise.
28275 (vldrwq_u32): Likewise.
28276 (vldrwq_z_s32): Likewise.
28277 (vldrwq_z_u32): Likewise.
28278 (vld1q_f32): Likewise.
28279 (vld1q_f16): Likewise.
28280 (vldrhq_f16): Likewise.
28281 (vldrhq_z_f16): Likewise.
28282 (vldrwq_f32): Likewise.
28283 (vldrwq_z_f32): Likewise.
28284 (__arm_vld1q_s8): Define intrinsic.
28285 (__arm_vld1q_s32): Likewise.
28286 (__arm_vld1q_s16): Likewise.
28287 (__arm_vld1q_u8): Likewise.
28288 (__arm_vld1q_u32): Likewise.
28289 (__arm_vld1q_u16): Likewise.
28290 (__arm_vldrhq_gather_offset_s32): Likewise.
28291 (__arm_vldrhq_gather_offset_s16): Likewise.
28292 (__arm_vldrhq_gather_offset_u32): Likewise.
28293 (__arm_vldrhq_gather_offset_u16): Likewise.
28294 (__arm_vldrhq_gather_offset_z_s32): Likewise.
28295 (__arm_vldrhq_gather_offset_z_s16): Likewise.
28296 (__arm_vldrhq_gather_offset_z_u32): Likewise.
28297 (__arm_vldrhq_gather_offset_z_u16): Likewise.
28298 (__arm_vldrhq_gather_shifted_offset_s32): Likewise.
28299 (__arm_vldrhq_gather_shifted_offset_s16): Likewise.
28300 (__arm_vldrhq_gather_shifted_offset_u32): Likewise.
28301 (__arm_vldrhq_gather_shifted_offset_u16): Likewise.
28302 (__arm_vldrhq_gather_shifted_offset_z_s32): Likewise.
28303 (__arm_vldrhq_gather_shifted_offset_z_s16): Likewise.
28304 (__arm_vldrhq_gather_shifted_offset_z_u32): Likewise.
28305 (__arm_vldrhq_gather_shifted_offset_z_u16): Likewise.
28306 (__arm_vldrhq_s32): Likewise.
28307 (__arm_vldrhq_s16): Likewise.
28308 (__arm_vldrhq_u32): Likewise.
28309 (__arm_vldrhq_u16): Likewise.
28310 (__arm_vldrhq_z_s32): Likewise.
28311 (__arm_vldrhq_z_s16): Likewise.
28312 (__arm_vldrhq_z_u32): Likewise.
28313 (__arm_vldrhq_z_u16): Likewise.
28314 (__arm_vldrwq_s32): Likewise.
28315 (__arm_vldrwq_u32): Likewise.
28316 (__arm_vldrwq_z_s32): Likewise.
28317 (__arm_vldrwq_z_u32): Likewise.
28318 (__arm_vld1q_f32): Likewise.
28319 (__arm_vld1q_f16): Likewise.
28320 (__arm_vldrwq_f32): Likewise.
28321 (__arm_vldrwq_z_f32): Likewise.
28322 (__arm_vldrhq_z_f16): Likewise.
28323 (__arm_vldrhq_f16): Likewise.
28324 (vld1q): Define polymorphic variant.
28325 (vldrhq_gather_offset): Likewise.
28326 (vldrhq_gather_offset_z): Likewise.
28327 (vldrhq_gather_shifted_offset): Likewise.
28328 (vldrhq_gather_shifted_offset_z): Likewise.
28329 * config/arm/arm_mve_builtins.def (LDRU): Use builtin qualifier.
28331 (LDRU_Z): Likewise.
28332 (LDRS_Z): Likewise.
28333 (LDRGU_Z): Likewise.
28335 (LDRGS_Z): Likewise.
28337 * config/arm/mve.md (MVE_H_ELEM): Define mode iterator.
28338 (V_sz_elem1): Likewise.
28339 (VLD1Q): Define iterator.
28340 (VLDRHGOQ): Likewise.
28341 (VLDRHGSOQ): Likewise.
28342 (VLDRHQ): Likewise.
28343 (VLDRWQ): Likewise.
28344 (mve_vldrhq_fv8hf): Define RTL pattern.
28345 (mve_vldrhq_gather_offset_<supf><mode>): Likewise.
28346 (mve_vldrhq_gather_offset_z_<supf><mode>): Likewise.
28347 (mve_vldrhq_gather_shifted_offset_<supf><mode>): Likewise.
28348 (mve_vldrhq_gather_shifted_offset_z_<supf><mode>): Likewise.
28349 (mve_vldrhq_<supf><mode>): Likewise.
28350 (mve_vldrhq_z_fv8hf): Likewise.
28351 (mve_vldrhq_z_<supf><mode>): Likewise.
28352 (mve_vldrwq_fv4sf): Likewise.
28353 (mve_vldrwq_<supf>v4si): Likewise.
28354 (mve_vldrwq_z_fv4sf): Likewise.
28355 (mve_vldrwq_z_<supf>v4si): Likewise.
28356 (mve_vld1q_f<mode>): Define RTL expand pattern.
28357 (mve_vld1q_<supf><mode>): Likewise.
28359 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
28360 Mihail Ionescu <mihail.ionescu@arm.com>
28361 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
28363 * config/arm/arm_mve.h (vld1q_s8): Define macro.
28364 (vld1q_s32): Likewise.
28365 (vld1q_s16): Likewise.
28366 (vld1q_u8): Likewise.
28367 (vld1q_u32): Likewise.
28368 (vld1q_u16): Likewise.
28369 (vldrhq_gather_offset_s32): Likewise.
28370 (vldrhq_gather_offset_s16): Likewise.
28371 (vldrhq_gather_offset_u32): Likewise.
28372 (vldrhq_gather_offset_u16): Likewise.
28373 (vldrhq_gather_offset_z_s32): Likewise.
28374 (vldrhq_gather_offset_z_s16): Likewise.
28375 (vldrhq_gather_offset_z_u32): Likewise.
28376 (vldrhq_gather_offset_z_u16): Likewise.
28377 (vldrhq_gather_shifted_offset_s32): Likewise.
28378 (vldrhq_gather_shifted_offset_s16): Likewise.
28379 (vldrhq_gather_shifted_offset_u32): Likewise.
28380 (vldrhq_gather_shifted_offset_u16): Likewise.
28381 (vldrhq_gather_shifted_offset_z_s32): Likewise.
28382 (vldrhq_gather_shifted_offset_z_s16): Likewise.
28383 (vldrhq_gather_shifted_offset_z_u32): Likewise.
28384 (vldrhq_gather_shifted_offset_z_u16): Likewise.
28385 (vldrhq_s32): Likewise.
28386 (vldrhq_s16): Likewise.
28387 (vldrhq_u32): Likewise.
28388 (vldrhq_u16): Likewise.
28389 (vldrhq_z_s32): Likewise.
28390 (vldrhq_z_s16): Likewise.
28391 (vldrhq_z_u32): Likewise.
28392 (vldrhq_z_u16): Likewise.
28393 (vldrwq_s32): Likewise.
28394 (vldrwq_u32): Likewise.
28395 (vldrwq_z_s32): Likewise.
28396 (vldrwq_z_u32): Likewise.
28397 (vld1q_f32): Likewise.
28398 (vld1q_f16): Likewise.
28399 (vldrhq_f16): Likewise.
28400 (vldrhq_z_f16): Likewise.
28401 (vldrwq_f32): Likewise.
28402 (vldrwq_z_f32): Likewise.
28403 (__arm_vld1q_s8): Define intrinsic.
28404 (__arm_vld1q_s32): Likewise.
28405 (__arm_vld1q_s16): Likewise.
28406 (__arm_vld1q_u8): Likewise.
28407 (__arm_vld1q_u32): Likewise.
28408 (__arm_vld1q_u16): Likewise.
28409 (__arm_vldrhq_gather_offset_s32): Likewise.
28410 (__arm_vldrhq_gather_offset_s16): Likewise.
28411 (__arm_vldrhq_gather_offset_u32): Likewise.
28412 (__arm_vldrhq_gather_offset_u16): Likewise.
28413 (__arm_vldrhq_gather_offset_z_s32): Likewise.
28414 (__arm_vldrhq_gather_offset_z_s16): Likewise.
28415 (__arm_vldrhq_gather_offset_z_u32): Likewise.
28416 (__arm_vldrhq_gather_offset_z_u16): Likewise.
28417 (__arm_vldrhq_gather_shifted_offset_s32): Likewise.
28418 (__arm_vldrhq_gather_shifted_offset_s16): Likewise.
28419 (__arm_vldrhq_gather_shifted_offset_u32): Likewise.
28420 (__arm_vldrhq_gather_shifted_offset_u16): Likewise.
28421 (__arm_vldrhq_gather_shifted_offset_z_s32): Likewise.
28422 (__arm_vldrhq_gather_shifted_offset_z_s16): Likewise.
28423 (__arm_vldrhq_gather_shifted_offset_z_u32): Likewise.
28424 (__arm_vldrhq_gather_shifted_offset_z_u16): Likewise.
28425 (__arm_vldrhq_s32): Likewise.
28426 (__arm_vldrhq_s16): Likewise.
28427 (__arm_vldrhq_u32): Likewise.
28428 (__arm_vldrhq_u16): Likewise.
28429 (__arm_vldrhq_z_s32): Likewise.
28430 (__arm_vldrhq_z_s16): Likewise.
28431 (__arm_vldrhq_z_u32): Likewise.
28432 (__arm_vldrhq_z_u16): Likewise.
28433 (__arm_vldrwq_s32): Likewise.
28434 (__arm_vldrwq_u32): Likewise.
28435 (__arm_vldrwq_z_s32): Likewise.
28436 (__arm_vldrwq_z_u32): Likewise.
28437 (__arm_vld1q_f32): Likewise.
28438 (__arm_vld1q_f16): Likewise.
28439 (__arm_vldrwq_f32): Likewise.
28440 (__arm_vldrwq_z_f32): Likewise.
28441 (__arm_vldrhq_z_f16): Likewise.
28442 (__arm_vldrhq_f16): Likewise.
28443 (vld1q): Define polymorphic variant.
28444 (vldrhq_gather_offset): Likewise.
28445 (vldrhq_gather_offset_z): Likewise.
28446 (vldrhq_gather_shifted_offset): Likewise.
28447 (vldrhq_gather_shifted_offset_z): Likewise.
28448 * config/arm/arm_mve_builtins.def (LDRU): Use builtin qualifier.
28450 (LDRU_Z): Likewise.
28451 (LDRS_Z): Likewise.
28452 (LDRGU_Z): Likewise.
28454 (LDRGS_Z): Likewise.
28456 * config/arm/mve.md (MVE_H_ELEM): Define mode iterator.
28457 (V_sz_elem1): Likewise.
28458 (VLD1Q): Define iterator.
28459 (VLDRHGOQ): Likewise.
28460 (VLDRHGSOQ): Likewise.
28461 (VLDRHQ): Likewise.
28462 (VLDRWQ): Likewise.
28463 (mve_vldrhq_fv8hf): Define RTL pattern.
28464 (mve_vldrhq_gather_offset_<supf><mode>): Likewise.
28465 (mve_vldrhq_gather_offset_z_<supf><mode>): Likewise.
28466 (mve_vldrhq_gather_shifted_offset_<supf><mode>): Likewise.
28467 (mve_vldrhq_gather_shifted_offset_z_<supf><mode>): Likewise.
28468 (mve_vldrhq_<supf><mode>): Likewise.
28469 (mve_vldrhq_z_fv8hf): Likewise.
28470 (mve_vldrhq_z_<supf><mode>): Likewise.
28471 (mve_vldrwq_fv4sf): Likewise.
28472 (mve_vldrwq_<supf>v4si): Likewise.
28473 (mve_vldrwq_z_fv4sf): Likewise.
28474 (mve_vldrwq_z_<supf>v4si): Likewise.
28475 (mve_vld1q_f<mode>): Define RTL expand pattern.
28476 (mve_vld1q_<supf><mode>): Likewise.
28478 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
28479 Mihail Ionescu <mihail.ionescu@arm.com>
28480 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
28482 * config/arm/arm-builtins.c (LDRGBS_Z_QUALIFIERS): Define builtin
28484 (LDRGBU_Z_QUALIFIERS): Likewise.
28485 (LDRGS_Z_QUALIFIERS): Likewise.
28486 (LDRGU_Z_QUALIFIERS): Likewise.
28487 (LDRS_Z_QUALIFIERS): Likewise.
28488 (LDRU_Z_QUALIFIERS): Likewise.
28489 * config/arm/arm_mve.h (vldrbq_gather_offset_z_s16): Define macro.
28490 (vldrbq_gather_offset_z_u8): Likewise.
28491 (vldrbq_gather_offset_z_s32): Likewise.
28492 (vldrbq_gather_offset_z_u16): Likewise.
28493 (vldrbq_gather_offset_z_u32): Likewise.
28494 (vldrbq_gather_offset_z_s8): Likewise.
28495 (vldrbq_z_s16): Likewise.
28496 (vldrbq_z_u8): Likewise.
28497 (vldrbq_z_s8): Likewise.
28498 (vldrbq_z_s32): Likewise.
28499 (vldrbq_z_u16): Likewise.
28500 (vldrbq_z_u32): Likewise.
28501 (vldrwq_gather_base_z_u32): Likewise.
28502 (vldrwq_gather_base_z_s32): Likewise.
28503 (__arm_vldrbq_gather_offset_z_s8): Define intrinsic.
28504 (__arm_vldrbq_gather_offset_z_s32): Likewise.
28505 (__arm_vldrbq_gather_offset_z_s16): Likewise.
28506 (__arm_vldrbq_gather_offset_z_u8): Likewise.
28507 (__arm_vldrbq_gather_offset_z_u32): Likewise.
28508 (__arm_vldrbq_gather_offset_z_u16): Likewise.
28509 (__arm_vldrbq_z_s8): Likewise.
28510 (__arm_vldrbq_z_s32): Likewise.
28511 (__arm_vldrbq_z_s16): Likewise.
28512 (__arm_vldrbq_z_u8): Likewise.
28513 (__arm_vldrbq_z_u32): Likewise.
28514 (__arm_vldrbq_z_u16): Likewise.
28515 (__arm_vldrwq_gather_base_z_s32): Likewise.
28516 (__arm_vldrwq_gather_base_z_u32): Likewise.
28517 (vldrbq_gather_offset_z): Define polymorphic variant.
28518 * config/arm/arm_mve_builtins.def (LDRGBS_Z_QUALIFIERS): Use builtin
28520 (LDRGBU_Z_QUALIFIERS): Likewise.
28521 (LDRGS_Z_QUALIFIERS): Likewise.
28522 (LDRGU_Z_QUALIFIERS): Likewise.
28523 (LDRS_Z_QUALIFIERS): Likewise.
28524 (LDRU_Z_QUALIFIERS): Likewise.
28525 * config/arm/mve.md (mve_vldrbq_gather_offset_z_<supf><mode>): Define
28527 (mve_vldrbq_z_<supf><mode>): Likewise.
28528 (mve_vldrwq_gather_base_z_<supf>v4si): Likewise.
28530 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
28531 Mihail Ionescu <mihail.ionescu@arm.com>
28532 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
28534 * config/arm/arm-builtins.c (STRS_P_QUALIFIERS): Define builtin
28536 (STRU_P_QUALIFIERS): Likewise.
28537 (STRSU_P_QUALIFIERS): Likewise.
28538 (STRSS_P_QUALIFIERS): Likewise.
28539 (STRSBS_P_QUALIFIERS): Likewise.
28540 (STRSBU_P_QUALIFIERS): Likewise.
28541 * config/arm/arm_mve.h (vstrbq_p_s8): Define macro.
28542 (vstrbq_p_s32): Likewise.
28543 (vstrbq_p_s16): Likewise.
28544 (vstrbq_p_u8): Likewise.
28545 (vstrbq_p_u32): Likewise.
28546 (vstrbq_p_u16): Likewise.
28547 (vstrbq_scatter_offset_p_s8): Likewise.
28548 (vstrbq_scatter_offset_p_s32): Likewise.
28549 (vstrbq_scatter_offset_p_s16): Likewise.
28550 (vstrbq_scatter_offset_p_u8): Likewise.
28551 (vstrbq_scatter_offset_p_u32): Likewise.
28552 (vstrbq_scatter_offset_p_u16): Likewise.
28553 (vstrwq_scatter_base_p_s32): Likewise.
28554 (vstrwq_scatter_base_p_u32): Likewise.
28555 (__arm_vstrbq_p_s8): Define intrinsic.
28556 (__arm_vstrbq_p_s32): Likewise.
28557 (__arm_vstrbq_p_s16): Likewise.
28558 (__arm_vstrbq_p_u8): Likewise.
28559 (__arm_vstrbq_p_u32): Likewise.
28560 (__arm_vstrbq_p_u16): Likewise.
28561 (__arm_vstrbq_scatter_offset_p_s8): Likewise.
28562 (__arm_vstrbq_scatter_offset_p_s32): Likewise.
28563 (__arm_vstrbq_scatter_offset_p_s16): Likewise.
28564 (__arm_vstrbq_scatter_offset_p_u8): Likewise.
28565 (__arm_vstrbq_scatter_offset_p_u32): Likewise.
28566 (__arm_vstrbq_scatter_offset_p_u16): Likewise.
28567 (__arm_vstrwq_scatter_base_p_s32): Likewise.
28568 (__arm_vstrwq_scatter_base_p_u32): Likewise.
28569 (vstrbq_p): Define polymorphic variant.
28570 (vstrbq_scatter_offset_p): Likewise.
28571 (vstrwq_scatter_base_p): Likewise.
28572 * config/arm/arm_mve_builtins.def (STRS_P_QUALIFIERS): Use builtin
28574 (STRU_P_QUALIFIERS): Likewise.
28575 (STRSU_P_QUALIFIERS): Likewise.
28576 (STRSS_P_QUALIFIERS): Likewise.
28577 (STRSBS_P_QUALIFIERS): Likewise.
28578 (STRSBU_P_QUALIFIERS): Likewise.
28579 * config/arm/mve.md (mve_vstrbq_scatter_offset_p_<supf><mode>): Define
28581 (mve_vstrwq_scatter_base_p_<supf>v4si): Likewise.
28582 (mve_vstrbq_p_<supf><mode>): Likewise.
28584 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
28585 Mihail Ionescu <mihail.ionescu@arm.com>
28586 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
28588 * config/arm/arm-builtins.c (LDRGU_QUALIFIERS): Define builtin
28590 (LDRGS_QUALIFIERS): Likewise.
28591 (LDRS_QUALIFIERS): Likewise.
28592 (LDRU_QUALIFIERS): Likewise.
28593 (LDRGBS_QUALIFIERS): Likewise.
28594 (LDRGBU_QUALIFIERS): Likewise.
28595 * config/arm/arm_mve.h (vldrbq_gather_offset_u8): Define macro.
28596 (vldrbq_gather_offset_s8): Likewise.
28597 (vldrbq_s8): Likewise.
28598 (vldrbq_u8): Likewise.
28599 (vldrbq_gather_offset_u16): Likewise.
28600 (vldrbq_gather_offset_s16): Likewise.
28601 (vldrbq_s16): Likewise.
28602 (vldrbq_u16): Likewise.
28603 (vldrbq_gather_offset_u32): Likewise.
28604 (vldrbq_gather_offset_s32): Likewise.
28605 (vldrbq_s32): Likewise.
28606 (vldrbq_u32): Likewise.
28607 (vldrwq_gather_base_s32): Likewise.
28608 (vldrwq_gather_base_u32): Likewise.
28609 (__arm_vldrbq_gather_offset_u8): Define intrinsic.
28610 (__arm_vldrbq_gather_offset_s8): Likewise.
28611 (__arm_vldrbq_s8): Likewise.
28612 (__arm_vldrbq_u8): Likewise.
28613 (__arm_vldrbq_gather_offset_u16): Likewise.
28614 (__arm_vldrbq_gather_offset_s16): Likewise.
28615 (__arm_vldrbq_s16): Likewise.
28616 (__arm_vldrbq_u16): Likewise.
28617 (__arm_vldrbq_gather_offset_u32): Likewise.
28618 (__arm_vldrbq_gather_offset_s32): Likewise.
28619 (__arm_vldrbq_s32): Likewise.
28620 (__arm_vldrbq_u32): Likewise.
28621 (__arm_vldrwq_gather_base_s32): Likewise.
28622 (__arm_vldrwq_gather_base_u32): Likewise.
28623 (vldrbq_gather_offset): Define polymorphic variant.
28624 * config/arm/arm_mve_builtins.def (LDRGU_QUALIFIERS): Use builtin
28626 (LDRGS_QUALIFIERS): Likewise.
28627 (LDRS_QUALIFIERS): Likewise.
28628 (LDRU_QUALIFIERS): Likewise.
28629 (LDRGBS_QUALIFIERS): Likewise.
28630 (LDRGBU_QUALIFIERS): Likewise.
28631 * config/arm/mve.md (VLDRBGOQ): Define iterator.
28632 (VLDRBQ): Likewise.
28633 (VLDRWGBQ): Likewise.
28634 (mve_vldrbq_gather_offset_<supf><mode>): Define RTL pattern.
28635 (mve_vldrbq_<supf><mode>): Likewise.
28636 (mve_vldrwq_gather_base_<supf>v4si): Likewise.
28638 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
28639 Mihail Ionescu <mihail.ionescu@arm.com>
28640 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
28642 * config/arm/arm-builtins.c (STRS_QUALIFIERS): Define builtin qualifier.
28643 (STRU_QUALIFIERS): Likewise.
28644 (STRSS_QUALIFIERS): Likewise.
28645 (STRSU_QUALIFIERS): Likewise.
28646 (STRSBS_QUALIFIERS): Likewise.
28647 (STRSBU_QUALIFIERS): Likewise.
28648 * config/arm/arm_mve.h (vstrbq_s8): Define macro.
28649 (vstrbq_u8): Likewise.
28650 (vstrbq_u16): Likewise.
28651 (vstrbq_scatter_offset_s8): Likewise.
28652 (vstrbq_scatter_offset_u8): Likewise.
28653 (vstrbq_scatter_offset_u16): Likewise.
28654 (vstrbq_s16): Likewise.
28655 (vstrbq_u32): Likewise.
28656 (vstrbq_scatter_offset_s16): Likewise.
28657 (vstrbq_scatter_offset_u32): Likewise.
28658 (vstrbq_s32): Likewise.
28659 (vstrbq_scatter_offset_s32): Likewise.
28660 (vstrwq_scatter_base_s32): Likewise.
28661 (vstrwq_scatter_base_u32): Likewise.
28662 (__arm_vstrbq_scatter_offset_s8): Define intrinsic.
28663 (__arm_vstrbq_scatter_offset_s32): Likewise.
28664 (__arm_vstrbq_scatter_offset_s16): Likewise.
28665 (__arm_vstrbq_scatter_offset_u8): Likewise.
28666 (__arm_vstrbq_scatter_offset_u32): Likewise.
28667 (__arm_vstrbq_scatter_offset_u16): Likewise.
28668 (__arm_vstrbq_s8): Likewise.
28669 (__arm_vstrbq_s32): Likewise.
28670 (__arm_vstrbq_s16): Likewise.
28671 (__arm_vstrbq_u8): Likewise.
28672 (__arm_vstrbq_u32): Likewise.
28673 (__arm_vstrbq_u16): Likewise.
28674 (__arm_vstrwq_scatter_base_s32): Likewise.
28675 (__arm_vstrwq_scatter_base_u32): Likewise.
28676 (vstrbq): Define polymorphic variant.
28677 (vstrbq_scatter_offset): Likewise.
28678 (vstrwq_scatter_base): Likewise.
28679 * config/arm/arm_mve_builtins.def (STRS_QUALIFIERS): Use builtin
28681 (STRU_QUALIFIERS): Likewise.
28682 (STRSS_QUALIFIERS): Likewise.
28683 (STRSU_QUALIFIERS): Likewise.
28684 (STRSBS_QUALIFIERS): Likewise.
28685 (STRSBU_QUALIFIERS): Likewise.
28686 * config/arm/mve.md (MVE_B_ELEM): Define mode attribute iterator.
28687 (VSTRWSBQ): Define iterators.
28688 (VSTRBSOQ): Likewise.
28689 (VSTRBQ): Likewise.
28690 (mve_vstrbq_<supf><mode>): Define RTL pattern.
28691 (mve_vstrbq_scatter_offset_<supf><mode>): Likewise.
28692 (mve_vstrwq_scatter_base_<supf>v4si): Likewise.
28694 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
28695 Mihail Ionescu <mihail.ionescu@arm.com>
28696 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
28698 * config/arm/arm_mve.h (vabdq_m_f32): Define macro.
28699 (vabdq_m_f16): Likewise.
28700 (vaddq_m_f32): Likewise.
28701 (vaddq_m_f16): Likewise.
28702 (vaddq_m_n_f32): Likewise.
28703 (vaddq_m_n_f16): Likewise.
28704 (vandq_m_f32): Likewise.
28705 (vandq_m_f16): Likewise.
28706 (vbicq_m_f32): Likewise.
28707 (vbicq_m_f16): Likewise.
28708 (vbrsrq_m_n_f32): Likewise.
28709 (vbrsrq_m_n_f16): Likewise.
28710 (vcaddq_rot270_m_f32): Likewise.
28711 (vcaddq_rot270_m_f16): Likewise.
28712 (vcaddq_rot90_m_f32): Likewise.
28713 (vcaddq_rot90_m_f16): Likewise.
28714 (vcmlaq_m_f32): Likewise.
28715 (vcmlaq_m_f16): Likewise.
28716 (vcmlaq_rot180_m_f32): Likewise.
28717 (vcmlaq_rot180_m_f16): Likewise.
28718 (vcmlaq_rot270_m_f32): Likewise.
28719 (vcmlaq_rot270_m_f16): Likewise.
28720 (vcmlaq_rot90_m_f32): Likewise.
28721 (vcmlaq_rot90_m_f16): Likewise.
28722 (vcmulq_m_f32): Likewise.
28723 (vcmulq_m_f16): Likewise.
28724 (vcmulq_rot180_m_f32): Likewise.
28725 (vcmulq_rot180_m_f16): Likewise.
28726 (vcmulq_rot270_m_f32): Likewise.
28727 (vcmulq_rot270_m_f16): Likewise.
28728 (vcmulq_rot90_m_f32): Likewise.
28729 (vcmulq_rot90_m_f16): Likewise.
28730 (vcvtq_m_n_s32_f32): Likewise.
28731 (vcvtq_m_n_s16_f16): Likewise.
28732 (vcvtq_m_n_u32_f32): Likewise.
28733 (vcvtq_m_n_u16_f16): Likewise.
28734 (veorq_m_f32): Likewise.
28735 (veorq_m_f16): Likewise.
28736 (vfmaq_m_f32): Likewise.
28737 (vfmaq_m_f16): Likewise.
28738 (vfmaq_m_n_f32): Likewise.
28739 (vfmaq_m_n_f16): Likewise.
28740 (vfmasq_m_n_f32): Likewise.
28741 (vfmasq_m_n_f16): Likewise.
28742 (vfmsq_m_f32): Likewise.
28743 (vfmsq_m_f16): Likewise.
28744 (vmaxnmq_m_f32): Likewise.
28745 (vmaxnmq_m_f16): Likewise.
28746 (vminnmq_m_f32): Likewise.
28747 (vminnmq_m_f16): Likewise.
28748 (vmulq_m_f32): Likewise.
28749 (vmulq_m_f16): Likewise.
28750 (vmulq_m_n_f32): Likewise.
28751 (vmulq_m_n_f16): Likewise.
28752 (vornq_m_f32): Likewise.
28753 (vornq_m_f16): Likewise.
28754 (vorrq_m_f32): Likewise.
28755 (vorrq_m_f16): Likewise.
28756 (vsubq_m_f32): Likewise.
28757 (vsubq_m_f16): Likewise.
28758 (vsubq_m_n_f32): Likewise.
28759 (vsubq_m_n_f16): Likewise.
28760 (__attribute__): Likewise.
28761 (__arm_vabdq_m_f32): Likewise.
28762 (__arm_vabdq_m_f16): Likewise.
28763 (__arm_vaddq_m_f32): Likewise.
28764 (__arm_vaddq_m_f16): Likewise.
28765 (__arm_vaddq_m_n_f32): Likewise.
28766 (__arm_vaddq_m_n_f16): Likewise.
28767 (__arm_vandq_m_f32): Likewise.
28768 (__arm_vandq_m_f16): Likewise.
28769 (__arm_vbicq_m_f32): Likewise.
28770 (__arm_vbicq_m_f16): Likewise.
28771 (__arm_vbrsrq_m_n_f32): Likewise.
28772 (__arm_vbrsrq_m_n_f16): Likewise.
28773 (__arm_vcaddq_rot270_m_f32): Likewise.
28774 (__arm_vcaddq_rot270_m_f16): Likewise.
28775 (__arm_vcaddq_rot90_m_f32): Likewise.
28776 (__arm_vcaddq_rot90_m_f16): Likewise.
28777 (__arm_vcmlaq_m_f32): Likewise.
28778 (__arm_vcmlaq_m_f16): Likewise.
28779 (__arm_vcmlaq_rot180_m_f32): Likewise.
28780 (__arm_vcmlaq_rot180_m_f16): Likewise.
28781 (__arm_vcmlaq_rot270_m_f32): Likewise.
28782 (__arm_vcmlaq_rot270_m_f16): Likewise.
28783 (__arm_vcmlaq_rot90_m_f32): Likewise.
28784 (__arm_vcmlaq_rot90_m_f16): Likewise.
28785 (__arm_vcmulq_m_f32): Likewise.
28786 (__arm_vcmulq_m_f16): Likewise.
28787 (__arm_vcmulq_rot180_m_f32): Define intrinsic.
28788 (__arm_vcmulq_rot180_m_f16): Likewise.
28789 (__arm_vcmulq_rot270_m_f32): Likewise.
28790 (__arm_vcmulq_rot270_m_f16): Likewise.
28791 (__arm_vcmulq_rot90_m_f32): Likewise.
28792 (__arm_vcmulq_rot90_m_f16): Likewise.
28793 (__arm_vcvtq_m_n_s32_f32): Likewise.
28794 (__arm_vcvtq_m_n_s16_f16): Likewise.
28795 (__arm_vcvtq_m_n_u32_f32): Likewise.
28796 (__arm_vcvtq_m_n_u16_f16): Likewise.
28797 (__arm_veorq_m_f32): Likewise.
28798 (__arm_veorq_m_f16): Likewise.
28799 (__arm_vfmaq_m_f32): Likewise.
28800 (__arm_vfmaq_m_f16): Likewise.
28801 (__arm_vfmaq_m_n_f32): Likewise.
28802 (__arm_vfmaq_m_n_f16): Likewise.
28803 (__arm_vfmasq_m_n_f32): Likewise.
28804 (__arm_vfmasq_m_n_f16): Likewise.
28805 (__arm_vfmsq_m_f32): Likewise.
28806 (__arm_vfmsq_m_f16): Likewise.
28807 (__arm_vmaxnmq_m_f32): Likewise.
28808 (__arm_vmaxnmq_m_f16): Likewise.
28809 (__arm_vminnmq_m_f32): Likewise.
28810 (__arm_vminnmq_m_f16): Likewise.
28811 (__arm_vmulq_m_f32): Likewise.
28812 (__arm_vmulq_m_f16): Likewise.
28813 (__arm_vmulq_m_n_f32): Likewise.
28814 (__arm_vmulq_m_n_f16): Likewise.
28815 (__arm_vornq_m_f32): Likewise.
28816 (__arm_vornq_m_f16): Likewise.
28817 (__arm_vorrq_m_f32): Likewise.
28818 (__arm_vorrq_m_f16): Likewise.
28819 (__arm_vsubq_m_f32): Likewise.
28820 (__arm_vsubq_m_f16): Likewise.
28821 (__arm_vsubq_m_n_f32): Likewise.
28822 (__arm_vsubq_m_n_f16): Likewise.
28823 (vabdq_m): Define polymorphic variant.
28824 (vaddq_m): Likewise.
28825 (vaddq_m_n): Likewise.
28826 (vandq_m): Likewise.
28827 (vbicq_m): Likewise.
28828 (vbrsrq_m_n): Likewise.
28829 (vcaddq_rot270_m): Likewise.
28830 (vcaddq_rot90_m): Likewise.
28831 (vcmlaq_m): Likewise.
28832 (vcmlaq_rot180_m): Likewise.
28833 (vcmlaq_rot270_m): Likewise.
28834 (vcmlaq_rot90_m): Likewise.
28835 (vcmulq_m): Likewise.
28836 (vcmulq_rot180_m): Likewise.
28837 (vcmulq_rot270_m): Likewise.
28838 (vcmulq_rot90_m): Likewise.
28839 (veorq_m): Likewise.
28840 (vfmaq_m): Likewise.
28841 (vfmaq_m_n): Likewise.
28842 (vfmasq_m_n): Likewise.
28843 (vfmsq_m): Likewise.
28844 (vmaxnmq_m): Likewise.
28845 (vminnmq_m): Likewise.
28846 (vmulq_m): Likewise.
28847 (vmulq_m_n): Likewise.
28848 (vornq_m): Likewise.
28849 (vsubq_m): Likewise.
28850 (vsubq_m_n): Likewise.
28851 (vorrq_m): Likewise.
28852 * config/arm/arm_mve_builtins.def (QUADOP_NONE_NONE_NONE_IMM_UNONE): Use
28854 (QUADOP_NONE_NONE_NONE_NONE_UNONE): Likewise.
28855 (QUADOP_UNONE_UNONE_NONE_IMM_UNONE): Likewise.
28856 * config/arm/mve.md (mve_vabdq_m_f<mode>): Define RTL pattern.
28857 (mve_vaddq_m_f<mode>): Likewise.
28858 (mve_vaddq_m_n_f<mode>): Likewise.
28859 (mve_vandq_m_f<mode>): Likewise.
28860 (mve_vbicq_m_f<mode>): Likewise.
28861 (mve_vbrsrq_m_n_f<mode>): Likewise.
28862 (mve_vcaddq_rot270_m_f<mode>): Likewise.
28863 (mve_vcaddq_rot90_m_f<mode>): Likewise.
28864 (mve_vcmlaq_m_f<mode>): Likewise.
28865 (mve_vcmlaq_rot180_m_f<mode>): Likewise.
28866 (mve_vcmlaq_rot270_m_f<mode>): Likewise.
28867 (mve_vcmlaq_rot90_m_f<mode>): Likewise.
28868 (mve_vcmulq_m_f<mode>): Likewise.
28869 (mve_vcmulq_rot180_m_f<mode>): Likewise.
28870 (mve_vcmulq_rot270_m_f<mode>): Likewise.
28871 (mve_vcmulq_rot90_m_f<mode>): Likewise.
28872 (mve_veorq_m_f<mode>): Likewise.
28873 (mve_vfmaq_m_f<mode>): Likewise.
28874 (mve_vfmaq_m_n_f<mode>): Likewise.
28875 (mve_vfmasq_m_n_f<mode>): Likewise.
28876 (mve_vfmsq_m_f<mode>): Likewise.
28877 (mve_vmaxnmq_m_f<mode>): Likewise.
28878 (mve_vminnmq_m_f<mode>): Likewise.
28879 (mve_vmulq_m_f<mode>): Likewise.
28880 (mve_vmulq_m_n_f<mode>): Likewise.
28881 (mve_vornq_m_f<mode>): Likewise.
28882 (mve_vorrq_m_f<mode>): Likewise.
28883 (mve_vsubq_m_f<mode>): Likewise.
28884 (mve_vsubq_m_n_f<mode>): Likewise.
28886 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
28887 Mihail Ionescu <mihail.ionescu@arm.com>
28888 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
28890 * config/arm/arm-protos.h (arm_mve_immediate_check):
28891 * config/arm/arm.c (arm_mve_immediate_check): Define fuction to check
28892 mode and interger value.
28893 * config/arm/arm_mve.h (vmlaldavaq_p_s32): Define macro.
28894 (vmlaldavaq_p_s16): Likewise.
28895 (vmlaldavaq_p_u32): Likewise.
28896 (vmlaldavaq_p_u16): Likewise.
28897 (vmlaldavaxq_p_s32): Likewise.
28898 (vmlaldavaxq_p_s16): Likewise.
28899 (vmlaldavaxq_p_u32): Likewise.
28900 (vmlaldavaxq_p_u16): Likewise.
28901 (vmlsldavaq_p_s32): Likewise.
28902 (vmlsldavaq_p_s16): Likewise.
28903 (vmlsldavaxq_p_s32): Likewise.
28904 (vmlsldavaxq_p_s16): Likewise.
28905 (vmullbq_poly_m_p8): Likewise.
28906 (vmullbq_poly_m_p16): Likewise.
28907 (vmulltq_poly_m_p8): Likewise.
28908 (vmulltq_poly_m_p16): Likewise.
28909 (vqdmullbq_m_n_s32): Likewise.
28910 (vqdmullbq_m_n_s16): Likewise.
28911 (vqdmullbq_m_s32): Likewise.
28912 (vqdmullbq_m_s16): Likewise.
28913 (vqdmulltq_m_n_s32): Likewise.
28914 (vqdmulltq_m_n_s16): Likewise.
28915 (vqdmulltq_m_s32): Likewise.
28916 (vqdmulltq_m_s16): Likewise.
28917 (vqrshrnbq_m_n_s32): Likewise.
28918 (vqrshrnbq_m_n_s16): Likewise.
28919 (vqrshrnbq_m_n_u32): Likewise.
28920 (vqrshrnbq_m_n_u16): Likewise.
28921 (vqrshrntq_m_n_s32): Likewise.
28922 (vqrshrntq_m_n_s16): Likewise.
28923 (vqrshrntq_m_n_u32): Likewise.
28924 (vqrshrntq_m_n_u16): Likewise.
28925 (vqrshrunbq_m_n_s32): Likewise.
28926 (vqrshrunbq_m_n_s16): Likewise.
28927 (vqrshruntq_m_n_s32): Likewise.
28928 (vqrshruntq_m_n_s16): Likewise.
28929 (vqshrnbq_m_n_s32): Likewise.
28930 (vqshrnbq_m_n_s16): Likewise.
28931 (vqshrnbq_m_n_u32): Likewise.
28932 (vqshrnbq_m_n_u16): Likewise.
28933 (vqshrntq_m_n_s32): Likewise.
28934 (vqshrntq_m_n_s16): Likewise.
28935 (vqshrntq_m_n_u32): Likewise.
28936 (vqshrntq_m_n_u16): Likewise.
28937 (vqshrunbq_m_n_s32): Likewise.
28938 (vqshrunbq_m_n_s16): Likewise.
28939 (vqshruntq_m_n_s32): Likewise.
28940 (vqshruntq_m_n_s16): Likewise.
28941 (vrmlaldavhaq_p_s32): Likewise.
28942 (vrmlaldavhaq_p_u32): Likewise.
28943 (vrmlaldavhaxq_p_s32): Likewise.
28944 (vrmlsldavhaq_p_s32): Likewise.
28945 (vrmlsldavhaxq_p_s32): Likewise.
28946 (vrshrnbq_m_n_s32): Likewise.
28947 (vrshrnbq_m_n_s16): Likewise.
28948 (vrshrnbq_m_n_u32): Likewise.
28949 (vrshrnbq_m_n_u16): Likewise.
28950 (vrshrntq_m_n_s32): Likewise.
28951 (vrshrntq_m_n_s16): Likewise.
28952 (vrshrntq_m_n_u32): Likewise.
28953 (vrshrntq_m_n_u16): Likewise.
28954 (vshllbq_m_n_s8): Likewise.
28955 (vshllbq_m_n_s16): Likewise.
28956 (vshllbq_m_n_u8): Likewise.
28957 (vshllbq_m_n_u16): Likewise.
28958 (vshlltq_m_n_s8): Likewise.
28959 (vshlltq_m_n_s16): Likewise.
28960 (vshlltq_m_n_u8): Likewise.
28961 (vshlltq_m_n_u16): Likewise.
28962 (vshrnbq_m_n_s32): Likewise.
28963 (vshrnbq_m_n_s16): Likewise.
28964 (vshrnbq_m_n_u32): Likewise.
28965 (vshrnbq_m_n_u16): Likewise.
28966 (vshrntq_m_n_s32): Likewise.
28967 (vshrntq_m_n_s16): Likewise.
28968 (vshrntq_m_n_u32): Likewise.
28969 (vshrntq_m_n_u16): Likewise.
28970 (__arm_vmlaldavaq_p_s32): Define intrinsic.
28971 (__arm_vmlaldavaq_p_s16): Likewise.
28972 (__arm_vmlaldavaq_p_u32): Likewise.
28973 (__arm_vmlaldavaq_p_u16): Likewise.
28974 (__arm_vmlaldavaxq_p_s32): Likewise.
28975 (__arm_vmlaldavaxq_p_s16): Likewise.
28976 (__arm_vmlaldavaxq_p_u32): Likewise.
28977 (__arm_vmlaldavaxq_p_u16): Likewise.
28978 (__arm_vmlsldavaq_p_s32): Likewise.
28979 (__arm_vmlsldavaq_p_s16): Likewise.
28980 (__arm_vmlsldavaxq_p_s32): Likewise.
28981 (__arm_vmlsldavaxq_p_s16): Likewise.
28982 (__arm_vmullbq_poly_m_p8): Likewise.
28983 (__arm_vmullbq_poly_m_p16): Likewise.
28984 (__arm_vmulltq_poly_m_p8): Likewise.
28985 (__arm_vmulltq_poly_m_p16): Likewise.
28986 (__arm_vqdmullbq_m_n_s32): Likewise.
28987 (__arm_vqdmullbq_m_n_s16): Likewise.
28988 (__arm_vqdmullbq_m_s32): Likewise.
28989 (__arm_vqdmullbq_m_s16): Likewise.
28990 (__arm_vqdmulltq_m_n_s32): Likewise.
28991 (__arm_vqdmulltq_m_n_s16): Likewise.
28992 (__arm_vqdmulltq_m_s32): Likewise.
28993 (__arm_vqdmulltq_m_s16): Likewise.
28994 (__arm_vqrshrnbq_m_n_s32): Likewise.
28995 (__arm_vqrshrnbq_m_n_s16): Likewise.
28996 (__arm_vqrshrnbq_m_n_u32): Likewise.
28997 (__arm_vqrshrnbq_m_n_u16): Likewise.
28998 (__arm_vqrshrntq_m_n_s32): Likewise.
28999 (__arm_vqrshrntq_m_n_s16): Likewise.
29000 (__arm_vqrshrntq_m_n_u32): Likewise.
29001 (__arm_vqrshrntq_m_n_u16): Likewise.
29002 (__arm_vqrshrunbq_m_n_s32): Likewise.
29003 (__arm_vqrshrunbq_m_n_s16): Likewise.
29004 (__arm_vqrshruntq_m_n_s32): Likewise.
29005 (__arm_vqrshruntq_m_n_s16): Likewise.
29006 (__arm_vqshrnbq_m_n_s32): Likewise.
29007 (__arm_vqshrnbq_m_n_s16): Likewise.
29008 (__arm_vqshrnbq_m_n_u32): Likewise.
29009 (__arm_vqshrnbq_m_n_u16): Likewise.
29010 (__arm_vqshrntq_m_n_s32): Likewise.
29011 (__arm_vqshrntq_m_n_s16): Likewise.
29012 (__arm_vqshrntq_m_n_u32): Likewise.
29013 (__arm_vqshrntq_m_n_u16): Likewise.
29014 (__arm_vqshrunbq_m_n_s32): Likewise.
29015 (__arm_vqshrunbq_m_n_s16): Likewise.
29016 (__arm_vqshruntq_m_n_s32): Likewise.
29017 (__arm_vqshruntq_m_n_s16): Likewise.
29018 (__arm_vrmlaldavhaq_p_s32): Likewise.
29019 (__arm_vrmlaldavhaq_p_u32): Likewise.
29020 (__arm_vrmlaldavhaxq_p_s32): Likewise.
29021 (__arm_vrmlsldavhaq_p_s32): Likewise.
29022 (__arm_vrmlsldavhaxq_p_s32): Likewise.
29023 (__arm_vrshrnbq_m_n_s32): Likewise.
29024 (__arm_vrshrnbq_m_n_s16): Likewise.
29025 (__arm_vrshrnbq_m_n_u32): Likewise.
29026 (__arm_vrshrnbq_m_n_u16): Likewise.
29027 (__arm_vrshrntq_m_n_s32): Likewise.
29028 (__arm_vrshrntq_m_n_s16): Likewise.
29029 (__arm_vrshrntq_m_n_u32): Likewise.
29030 (__arm_vrshrntq_m_n_u16): Likewise.
29031 (__arm_vshllbq_m_n_s8): Likewise.
29032 (__arm_vshllbq_m_n_s16): Likewise.
29033 (__arm_vshllbq_m_n_u8): Likewise.
29034 (__arm_vshllbq_m_n_u16): Likewise.
29035 (__arm_vshlltq_m_n_s8): Likewise.
29036 (__arm_vshlltq_m_n_s16): Likewise.
29037 (__arm_vshlltq_m_n_u8): Likewise.
29038 (__arm_vshlltq_m_n_u16): Likewise.
29039 (__arm_vshrnbq_m_n_s32): Likewise.
29040 (__arm_vshrnbq_m_n_s16): Likewise.
29041 (__arm_vshrnbq_m_n_u32): Likewise.
29042 (__arm_vshrnbq_m_n_u16): Likewise.
29043 (__arm_vshrntq_m_n_s32): Likewise.
29044 (__arm_vshrntq_m_n_s16): Likewise.
29045 (__arm_vshrntq_m_n_u32): Likewise.
29046 (__arm_vshrntq_m_n_u16): Likewise.
29047 (vmullbq_poly_m): Define polymorphic variant.
29048 (vmulltq_poly_m): Likewise.
29049 (vshllbq_m): Likewise.
29050 (vshrntq_m_n): Likewise.
29051 (vshrnbq_m_n): Likewise.
29052 (vshlltq_m_n): Likewise.
29053 (vshllbq_m_n): Likewise.
29054 (vrshrntq_m_n): Likewise.
29055 (vrshrnbq_m_n): Likewise.
29056 (vqshruntq_m_n): Likewise.
29057 (vqshrunbq_m_n): Likewise.
29058 (vqdmullbq_m_n): Likewise.
29059 (vqdmullbq_m): Likewise.
29060 (vqdmulltq_m_n): Likewise.
29061 (vqdmulltq_m): Likewise.
29062 (vqrshrnbq_m_n): Likewise.
29063 (vqrshrntq_m_n): Likewise.
29064 (vqrshrunbq_m_n): Likewise.
29065 (vqrshruntq_m_n): Likewise.
29066 (vqshrnbq_m_n): Likewise.
29067 (vqshrntq_m_n): Likewise.
29068 * config/arm/arm_mve_builtins.def (QUADOP_NONE_NONE_NONE_IMM_UNONE): Use
29069 builtin qualifiers.
29070 (QUADOP_NONE_NONE_NONE_NONE_UNONE): Likewise.
29071 (QUADOP_UNONE_UNONE_NONE_IMM_UNONE): Likewise.
29072 (QUADOP_UNONE_UNONE_UNONE_IMM_UNONE): Likewise.
29073 (QUADOP_UNONE_UNONE_UNONE_UNONE_UNONE): Likewise.
29074 * config/arm/mve.md (VMLALDAVAQ_P): Define iterator.
29075 (VMLALDAVAXQ_P): Likewise.
29076 (VQRSHRNBQ_M_N): Likewise.
29077 (VQRSHRNTQ_M_N): Likewise.
29078 (VQSHRNBQ_M_N): Likewise.
29079 (VQSHRNTQ_M_N): Likewise.
29080 (VRSHRNBQ_M_N): Likewise.
29081 (VRSHRNTQ_M_N): Likewise.
29082 (VSHLLBQ_M_N): Likewise.
29083 (VSHLLTQ_M_N): Likewise.
29084 (VSHRNBQ_M_N): Likewise.
29085 (VSHRNTQ_M_N): Likewise.
29086 (mve_vmlaldavaq_p_<supf><mode>): Define RTL pattern.
29087 (mve_vmlaldavaxq_p_<supf><mode>): Likewise.
29088 (mve_vqrshrnbq_m_n_<supf><mode>): Likewise.
29089 (mve_vqrshrntq_m_n_<supf><mode>): Likewise.
29090 (mve_vqshrnbq_m_n_<supf><mode>): Likewise.
29091 (mve_vqshrntq_m_n_<supf><mode>): Likewise.
29092 (mve_vrmlaldavhaq_p_sv4si): Likewise.
29093 (mve_vrshrnbq_m_n_<supf><mode>): Likewise.
29094 (mve_vrshrntq_m_n_<supf><mode>): Likewise.
29095 (mve_vshllbq_m_n_<supf><mode>): Likewise.
29096 (mve_vshlltq_m_n_<supf><mode>): Likewise.
29097 (mve_vshrnbq_m_n_<supf><mode>): Likewise.
29098 (mve_vshrntq_m_n_<supf><mode>): Likewise.
29099 (mve_vmlsldavaq_p_s<mode>): Likewise.
29100 (mve_vmlsldavaxq_p_s<mode>): Likewise.
29101 (mve_vmullbq_poly_m_p<mode>): Likewise.
29102 (mve_vmulltq_poly_m_p<mode>): Likewise.
29103 (mve_vqdmullbq_m_n_s<mode>): Likewise.
29104 (mve_vqdmullbq_m_s<mode>): Likewise.
29105 (mve_vqdmulltq_m_n_s<mode>): Likewise.
29106 (mve_vqdmulltq_m_s<mode>): Likewise.
29107 (mve_vqrshrunbq_m_n_s<mode>): Likewise.
29108 (mve_vqrshruntq_m_n_s<mode>): Likewise.
29109 (mve_vqshrunbq_m_n_s<mode>): Likewise.
29110 (mve_vqshruntq_m_n_s<mode>): Likewise.
29111 (mve_vrmlaldavhaq_p_uv4si): Likewise.
29112 (mve_vrmlaldavhaxq_p_sv4si): Likewise.
29113 (mve_vrmlsldavhaq_p_sv4si): Likewise.
29114 (mve_vrmlsldavhaxq_p_sv4si): Likewise.
29116 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
29117 Mihail Ionescu <mihail.ionescu@arm.com>
29118 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
29120 * config/arm/arm_mve.h (vabdq_m_s8): Define macro.
29121 (vabdq_m_s32): Likewise.
29122 (vabdq_m_s16): Likewise.
29123 (vabdq_m_u8): Likewise.
29124 (vabdq_m_u32): Likewise.
29125 (vabdq_m_u16): Likewise.
29126 (vaddq_m_n_s8): Likewise.
29127 (vaddq_m_n_s32): Likewise.
29128 (vaddq_m_n_s16): Likewise.
29129 (vaddq_m_n_u8): Likewise.
29130 (vaddq_m_n_u32): Likewise.
29131 (vaddq_m_n_u16): Likewise.
29132 (vaddq_m_s8): Likewise.
29133 (vaddq_m_s32): Likewise.
29134 (vaddq_m_s16): Likewise.
29135 (vaddq_m_u8): Likewise.
29136 (vaddq_m_u32): Likewise.
29137 (vaddq_m_u16): Likewise.
29138 (vandq_m_s8): Likewise.
29139 (vandq_m_s32): Likewise.
29140 (vandq_m_s16): Likewise.
29141 (vandq_m_u8): Likewise.
29142 (vandq_m_u32): Likewise.
29143 (vandq_m_u16): Likewise.
29144 (vbicq_m_s8): Likewise.
29145 (vbicq_m_s32): Likewise.
29146 (vbicq_m_s16): Likewise.
29147 (vbicq_m_u8): Likewise.
29148 (vbicq_m_u32): Likewise.
29149 (vbicq_m_u16): Likewise.
29150 (vbrsrq_m_n_s8): Likewise.
29151 (vbrsrq_m_n_s32): Likewise.
29152 (vbrsrq_m_n_s16): Likewise.
29153 (vbrsrq_m_n_u8): Likewise.
29154 (vbrsrq_m_n_u32): Likewise.
29155 (vbrsrq_m_n_u16): Likewise.
29156 (vcaddq_rot270_m_s8): Likewise.
29157 (vcaddq_rot270_m_s32): Likewise.
29158 (vcaddq_rot270_m_s16): Likewise.
29159 (vcaddq_rot270_m_u8): Likewise.
29160 (vcaddq_rot270_m_u32): Likewise.
29161 (vcaddq_rot270_m_u16): Likewise.
29162 (vcaddq_rot90_m_s8): Likewise.
29163 (vcaddq_rot90_m_s32): Likewise.
29164 (vcaddq_rot90_m_s16): Likewise.
29165 (vcaddq_rot90_m_u8): Likewise.
29166 (vcaddq_rot90_m_u32): Likewise.
29167 (vcaddq_rot90_m_u16): Likewise.
29168 (veorq_m_s8): Likewise.
29169 (veorq_m_s32): Likewise.
29170 (veorq_m_s16): Likewise.
29171 (veorq_m_u8): Likewise.
29172 (veorq_m_u32): Likewise.
29173 (veorq_m_u16): Likewise.
29174 (vhaddq_m_n_s8): Likewise.
29175 (vhaddq_m_n_s32): Likewise.
29176 (vhaddq_m_n_s16): Likewise.
29177 (vhaddq_m_n_u8): Likewise.
29178 (vhaddq_m_n_u32): Likewise.
29179 (vhaddq_m_n_u16): Likewise.
29180 (vhaddq_m_s8): Likewise.
29181 (vhaddq_m_s32): Likewise.
29182 (vhaddq_m_s16): Likewise.
29183 (vhaddq_m_u8): Likewise.
29184 (vhaddq_m_u32): Likewise.
29185 (vhaddq_m_u16): Likewise.
29186 (vhcaddq_rot270_m_s8): Likewise.
29187 (vhcaddq_rot270_m_s32): Likewise.
29188 (vhcaddq_rot270_m_s16): Likewise.
29189 (vhcaddq_rot90_m_s8): Likewise.
29190 (vhcaddq_rot90_m_s32): Likewise.
29191 (vhcaddq_rot90_m_s16): Likewise.
29192 (vhsubq_m_n_s8): Likewise.
29193 (vhsubq_m_n_s32): Likewise.
29194 (vhsubq_m_n_s16): Likewise.
29195 (vhsubq_m_n_u8): Likewise.
29196 (vhsubq_m_n_u32): Likewise.
29197 (vhsubq_m_n_u16): Likewise.
29198 (vhsubq_m_s8): Likewise.
29199 (vhsubq_m_s32): Likewise.
29200 (vhsubq_m_s16): Likewise.
29201 (vhsubq_m_u8): Likewise.
29202 (vhsubq_m_u32): Likewise.
29203 (vhsubq_m_u16): Likewise.
29204 (vmaxq_m_s8): Likewise.
29205 (vmaxq_m_s32): Likewise.
29206 (vmaxq_m_s16): Likewise.
29207 (vmaxq_m_u8): Likewise.
29208 (vmaxq_m_u32): Likewise.
29209 (vmaxq_m_u16): Likewise.
29210 (vminq_m_s8): Likewise.
29211 (vminq_m_s32): Likewise.
29212 (vminq_m_s16): Likewise.
29213 (vminq_m_u8): Likewise.
29214 (vminq_m_u32): Likewise.
29215 (vminq_m_u16): Likewise.
29216 (vmladavaq_p_s8): Likewise.
29217 (vmladavaq_p_s32): Likewise.
29218 (vmladavaq_p_s16): Likewise.
29219 (vmladavaq_p_u8): Likewise.
29220 (vmladavaq_p_u32): Likewise.
29221 (vmladavaq_p_u16): Likewise.
29222 (vmladavaxq_p_s8): Likewise.
29223 (vmladavaxq_p_s32): Likewise.
29224 (vmladavaxq_p_s16): Likewise.
29225 (vmlaq_m_n_s8): Likewise.
29226 (vmlaq_m_n_s32): Likewise.
29227 (vmlaq_m_n_s16): Likewise.
29228 (vmlaq_m_n_u8): Likewise.
29229 (vmlaq_m_n_u32): Likewise.
29230 (vmlaq_m_n_u16): Likewise.
29231 (vmlasq_m_n_s8): Likewise.
29232 (vmlasq_m_n_s32): Likewise.
29233 (vmlasq_m_n_s16): Likewise.
29234 (vmlasq_m_n_u8): Likewise.
29235 (vmlasq_m_n_u32): Likewise.
29236 (vmlasq_m_n_u16): Likewise.
29237 (vmlsdavaq_p_s8): Likewise.
29238 (vmlsdavaq_p_s32): Likewise.
29239 (vmlsdavaq_p_s16): Likewise.
29240 (vmlsdavaxq_p_s8): Likewise.
29241 (vmlsdavaxq_p_s32): Likewise.
29242 (vmlsdavaxq_p_s16): Likewise.
29243 (vmulhq_m_s8): Likewise.
29244 (vmulhq_m_s32): Likewise.
29245 (vmulhq_m_s16): Likewise.
29246 (vmulhq_m_u8): Likewise.
29247 (vmulhq_m_u32): Likewise.
29248 (vmulhq_m_u16): Likewise.
29249 (vmullbq_int_m_s8): Likewise.
29250 (vmullbq_int_m_s32): Likewise.
29251 (vmullbq_int_m_s16): Likewise.
29252 (vmullbq_int_m_u8): Likewise.
29253 (vmullbq_int_m_u32): Likewise.
29254 (vmullbq_int_m_u16): Likewise.
29255 (vmulltq_int_m_s8): Likewise.
29256 (vmulltq_int_m_s32): Likewise.
29257 (vmulltq_int_m_s16): Likewise.
29258 (vmulltq_int_m_u8): Likewise.
29259 (vmulltq_int_m_u32): Likewise.
29260 (vmulltq_int_m_u16): Likewise.
29261 (vmulq_m_n_s8): Likewise.
29262 (vmulq_m_n_s32): Likewise.
29263 (vmulq_m_n_s16): Likewise.
29264 (vmulq_m_n_u8): Likewise.
29265 (vmulq_m_n_u32): Likewise.
29266 (vmulq_m_n_u16): Likewise.
29267 (vmulq_m_s8): Likewise.
29268 (vmulq_m_s32): Likewise.
29269 (vmulq_m_s16): Likewise.
29270 (vmulq_m_u8): Likewise.
29271 (vmulq_m_u32): Likewise.
29272 (vmulq_m_u16): Likewise.
29273 (vornq_m_s8): Likewise.
29274 (vornq_m_s32): Likewise.
29275 (vornq_m_s16): Likewise.
29276 (vornq_m_u8): Likewise.
29277 (vornq_m_u32): Likewise.
29278 (vornq_m_u16): Likewise.
29279 (vorrq_m_s8): Likewise.
29280 (vorrq_m_s32): Likewise.
29281 (vorrq_m_s16): Likewise.
29282 (vorrq_m_u8): Likewise.
29283 (vorrq_m_u32): Likewise.
29284 (vorrq_m_u16): Likewise.
29285 (vqaddq_m_n_s8): Likewise.
29286 (vqaddq_m_n_s32): Likewise.
29287 (vqaddq_m_n_s16): Likewise.
29288 (vqaddq_m_n_u8): Likewise.
29289 (vqaddq_m_n_u32): Likewise.
29290 (vqaddq_m_n_u16): Likewise.
29291 (vqaddq_m_s8): Likewise.
29292 (vqaddq_m_s32): Likewise.
29293 (vqaddq_m_s16): Likewise.
29294 (vqaddq_m_u8): Likewise.
29295 (vqaddq_m_u32): Likewise.
29296 (vqaddq_m_u16): Likewise.
29297 (vqdmladhq_m_s8): Likewise.
29298 (vqdmladhq_m_s32): Likewise.
29299 (vqdmladhq_m_s16): Likewise.
29300 (vqdmladhxq_m_s8): Likewise.
29301 (vqdmladhxq_m_s32): Likewise.
29302 (vqdmladhxq_m_s16): Likewise.
29303 (vqdmlahq_m_n_s8): Likewise.
29304 (vqdmlahq_m_n_s32): Likewise.
29305 (vqdmlahq_m_n_s16): Likewise.
29306 (vqdmlahq_m_n_u8): Likewise.
29307 (vqdmlahq_m_n_u32): Likewise.
29308 (vqdmlahq_m_n_u16): Likewise.
29309 (vqdmlsdhq_m_s8): Likewise.
29310 (vqdmlsdhq_m_s32): Likewise.
29311 (vqdmlsdhq_m_s16): Likewise.
29312 (vqdmlsdhxq_m_s8): Likewise.
29313 (vqdmlsdhxq_m_s32): Likewise.
29314 (vqdmlsdhxq_m_s16): Likewise.
29315 (vqdmulhq_m_n_s8): Likewise.
29316 (vqdmulhq_m_n_s32): Likewise.
29317 (vqdmulhq_m_n_s16): Likewise.
29318 (vqdmulhq_m_s8): Likewise.
29319 (vqdmulhq_m_s32): Likewise.
29320 (vqdmulhq_m_s16): Likewise.
29321 (vqrdmladhq_m_s8): Likewise.
29322 (vqrdmladhq_m_s32): Likewise.
29323 (vqrdmladhq_m_s16): Likewise.
29324 (vqrdmladhxq_m_s8): Likewise.
29325 (vqrdmladhxq_m_s32): Likewise.
29326 (vqrdmladhxq_m_s16): Likewise.
29327 (vqrdmlahq_m_n_s8): Likewise.
29328 (vqrdmlahq_m_n_s32): Likewise.
29329 (vqrdmlahq_m_n_s16): Likewise.
29330 (vqrdmlahq_m_n_u8): Likewise.
29331 (vqrdmlahq_m_n_u32): Likewise.
29332 (vqrdmlahq_m_n_u16): Likewise.
29333 (vqrdmlashq_m_n_s8): Likewise.
29334 (vqrdmlashq_m_n_s32): Likewise.
29335 (vqrdmlashq_m_n_s16): Likewise.
29336 (vqrdmlashq_m_n_u8): Likewise.
29337 (vqrdmlashq_m_n_u32): Likewise.
29338 (vqrdmlashq_m_n_u16): Likewise.
29339 (vqrdmlsdhq_m_s8): Likewise.
29340 (vqrdmlsdhq_m_s32): Likewise.
29341 (vqrdmlsdhq_m_s16): Likewise.
29342 (vqrdmlsdhxq_m_s8): Likewise.
29343 (vqrdmlsdhxq_m_s32): Likewise.
29344 (vqrdmlsdhxq_m_s16): Likewise.
29345 (vqrdmulhq_m_n_s8): Likewise.
29346 (vqrdmulhq_m_n_s32): Likewise.
29347 (vqrdmulhq_m_n_s16): Likewise.
29348 (vqrdmulhq_m_s8): Likewise.
29349 (vqrdmulhq_m_s32): Likewise.
29350 (vqrdmulhq_m_s16): Likewise.
29351 (vqrshlq_m_s8): Likewise.
29352 (vqrshlq_m_s32): Likewise.
29353 (vqrshlq_m_s16): Likewise.
29354 (vqrshlq_m_u8): Likewise.
29355 (vqrshlq_m_u32): Likewise.
29356 (vqrshlq_m_u16): Likewise.
29357 (vqshlq_m_n_s8): Likewise.
29358 (vqshlq_m_n_s32): Likewise.
29359 (vqshlq_m_n_s16): Likewise.
29360 (vqshlq_m_n_u8): Likewise.
29361 (vqshlq_m_n_u32): Likewise.
29362 (vqshlq_m_n_u16): Likewise.
29363 (vqshlq_m_s8): Likewise.
29364 (vqshlq_m_s32): Likewise.
29365 (vqshlq_m_s16): Likewise.
29366 (vqshlq_m_u8): Likewise.
29367 (vqshlq_m_u32): Likewise.
29368 (vqshlq_m_u16): Likewise.
29369 (vqsubq_m_n_s8): Likewise.
29370 (vqsubq_m_n_s32): Likewise.
29371 (vqsubq_m_n_s16): Likewise.
29372 (vqsubq_m_n_u8): Likewise.
29373 (vqsubq_m_n_u32): Likewise.
29374 (vqsubq_m_n_u16): Likewise.
29375 (vqsubq_m_s8): Likewise.
29376 (vqsubq_m_s32): Likewise.
29377 (vqsubq_m_s16): Likewise.
29378 (vqsubq_m_u8): Likewise.
29379 (vqsubq_m_u32): Likewise.
29380 (vqsubq_m_u16): Likewise.
29381 (vrhaddq_m_s8): Likewise.
29382 (vrhaddq_m_s32): Likewise.
29383 (vrhaddq_m_s16): Likewise.
29384 (vrhaddq_m_u8): Likewise.
29385 (vrhaddq_m_u32): Likewise.
29386 (vrhaddq_m_u16): Likewise.
29387 (vrmulhq_m_s8): Likewise.
29388 (vrmulhq_m_s32): Likewise.
29389 (vrmulhq_m_s16): Likewise.
29390 (vrmulhq_m_u8): Likewise.
29391 (vrmulhq_m_u32): Likewise.
29392 (vrmulhq_m_u16): Likewise.
29393 (vrshlq_m_s8): Likewise.
29394 (vrshlq_m_s32): Likewise.
29395 (vrshlq_m_s16): Likewise.
29396 (vrshlq_m_u8): Likewise.
29397 (vrshlq_m_u32): Likewise.
29398 (vrshlq_m_u16): Likewise.
29399 (vrshrq_m_n_s8): Likewise.
29400 (vrshrq_m_n_s32): Likewise.
29401 (vrshrq_m_n_s16): Likewise.
29402 (vrshrq_m_n_u8): Likewise.
29403 (vrshrq_m_n_u32): Likewise.
29404 (vrshrq_m_n_u16): Likewise.
29405 (vshlq_m_n_s8): Likewise.
29406 (vshlq_m_n_s32): Likewise.
29407 (vshlq_m_n_s16): Likewise.
29408 (vshlq_m_n_u8): Likewise.
29409 (vshlq_m_n_u32): Likewise.
29410 (vshlq_m_n_u16): Likewise.
29411 (vshrq_m_n_s8): Likewise.
29412 (vshrq_m_n_s32): Likewise.
29413 (vshrq_m_n_s16): Likewise.
29414 (vshrq_m_n_u8): Likewise.
29415 (vshrq_m_n_u32): Likewise.
29416 (vshrq_m_n_u16): Likewise.
29417 (vsliq_m_n_s8): Likewise.
29418 (vsliq_m_n_s32): Likewise.
29419 (vsliq_m_n_s16): Likewise.
29420 (vsliq_m_n_u8): Likewise.
29421 (vsliq_m_n_u32): Likewise.
29422 (vsliq_m_n_u16): Likewise.
29423 (vsubq_m_n_s8): Likewise.
29424 (vsubq_m_n_s32): Likewise.
29425 (vsubq_m_n_s16): Likewise.
29426 (vsubq_m_n_u8): Likewise.
29427 (vsubq_m_n_u32): Likewise.
29428 (vsubq_m_n_u16): Likewise.
29429 (__arm_vabdq_m_s8): Define intrinsic.
29430 (__arm_vabdq_m_s32): Likewise.
29431 (__arm_vabdq_m_s16): Likewise.
29432 (__arm_vabdq_m_u8): Likewise.
29433 (__arm_vabdq_m_u32): Likewise.
29434 (__arm_vabdq_m_u16): Likewise.
29435 (__arm_vaddq_m_n_s8): Likewise.
29436 (__arm_vaddq_m_n_s32): Likewise.
29437 (__arm_vaddq_m_n_s16): Likewise.
29438 (__arm_vaddq_m_n_u8): Likewise.
29439 (__arm_vaddq_m_n_u32): Likewise.
29440 (__arm_vaddq_m_n_u16): Likewise.
29441 (__arm_vaddq_m_s8): Likewise.
29442 (__arm_vaddq_m_s32): Likewise.
29443 (__arm_vaddq_m_s16): Likewise.
29444 (__arm_vaddq_m_u8): Likewise.
29445 (__arm_vaddq_m_u32): Likewise.
29446 (__arm_vaddq_m_u16): Likewise.
29447 (__arm_vandq_m_s8): Likewise.
29448 (__arm_vandq_m_s32): Likewise.
29449 (__arm_vandq_m_s16): Likewise.
29450 (__arm_vandq_m_u8): Likewise.
29451 (__arm_vandq_m_u32): Likewise.
29452 (__arm_vandq_m_u16): Likewise.
29453 (__arm_vbicq_m_s8): Likewise.
29454 (__arm_vbicq_m_s32): Likewise.
29455 (__arm_vbicq_m_s16): Likewise.
29456 (__arm_vbicq_m_u8): Likewise.
29457 (__arm_vbicq_m_u32): Likewise.
29458 (__arm_vbicq_m_u16): Likewise.
29459 (__arm_vbrsrq_m_n_s8): Likewise.
29460 (__arm_vbrsrq_m_n_s32): Likewise.
29461 (__arm_vbrsrq_m_n_s16): Likewise.
29462 (__arm_vbrsrq_m_n_u8): Likewise.
29463 (__arm_vbrsrq_m_n_u32): Likewise.
29464 (__arm_vbrsrq_m_n_u16): Likewise.
29465 (__arm_vcaddq_rot270_m_s8): Likewise.
29466 (__arm_vcaddq_rot270_m_s32): Likewise.
29467 (__arm_vcaddq_rot270_m_s16): Likewise.
29468 (__arm_vcaddq_rot270_m_u8): Likewise.
29469 (__arm_vcaddq_rot270_m_u32): Likewise.
29470 (__arm_vcaddq_rot270_m_u16): Likewise.
29471 (__arm_vcaddq_rot90_m_s8): Likewise.
29472 (__arm_vcaddq_rot90_m_s32): Likewise.
29473 (__arm_vcaddq_rot90_m_s16): Likewise.
29474 (__arm_vcaddq_rot90_m_u8): Likewise.
29475 (__arm_vcaddq_rot90_m_u32): Likewise.
29476 (__arm_vcaddq_rot90_m_u16): Likewise.
29477 (__arm_veorq_m_s8): Likewise.
29478 (__arm_veorq_m_s32): Likewise.
29479 (__arm_veorq_m_s16): Likewise.
29480 (__arm_veorq_m_u8): Likewise.
29481 (__arm_veorq_m_u32): Likewise.
29482 (__arm_veorq_m_u16): Likewise.
29483 (__arm_vhaddq_m_n_s8): Likewise.
29484 (__arm_vhaddq_m_n_s32): Likewise.
29485 (__arm_vhaddq_m_n_s16): Likewise.
29486 (__arm_vhaddq_m_n_u8): Likewise.
29487 (__arm_vhaddq_m_n_u32): Likewise.
29488 (__arm_vhaddq_m_n_u16): Likewise.
29489 (__arm_vhaddq_m_s8): Likewise.
29490 (__arm_vhaddq_m_s32): Likewise.
29491 (__arm_vhaddq_m_s16): Likewise.
29492 (__arm_vhaddq_m_u8): Likewise.
29493 (__arm_vhaddq_m_u32): Likewise.
29494 (__arm_vhaddq_m_u16): Likewise.
29495 (__arm_vhcaddq_rot270_m_s8): Likewise.
29496 (__arm_vhcaddq_rot270_m_s32): Likewise.
29497 (__arm_vhcaddq_rot270_m_s16): Likewise.
29498 (__arm_vhcaddq_rot90_m_s8): Likewise.
29499 (__arm_vhcaddq_rot90_m_s32): Likewise.
29500 (__arm_vhcaddq_rot90_m_s16): Likewise.
29501 (__arm_vhsubq_m_n_s8): Likewise.
29502 (__arm_vhsubq_m_n_s32): Likewise.
29503 (__arm_vhsubq_m_n_s16): Likewise.
29504 (__arm_vhsubq_m_n_u8): Likewise.
29505 (__arm_vhsubq_m_n_u32): Likewise.
29506 (__arm_vhsubq_m_n_u16): Likewise.
29507 (__arm_vhsubq_m_s8): Likewise.
29508 (__arm_vhsubq_m_s32): Likewise.
29509 (__arm_vhsubq_m_s16): Likewise.
29510 (__arm_vhsubq_m_u8): Likewise.
29511 (__arm_vhsubq_m_u32): Likewise.
29512 (__arm_vhsubq_m_u16): Likewise.
29513 (__arm_vmaxq_m_s8): Likewise.
29514 (__arm_vmaxq_m_s32): Likewise.
29515 (__arm_vmaxq_m_s16): Likewise.
29516 (__arm_vmaxq_m_u8): Likewise.
29517 (__arm_vmaxq_m_u32): Likewise.
29518 (__arm_vmaxq_m_u16): Likewise.
29519 (__arm_vminq_m_s8): Likewise.
29520 (__arm_vminq_m_s32): Likewise.
29521 (__arm_vminq_m_s16): Likewise.
29522 (__arm_vminq_m_u8): Likewise.
29523 (__arm_vminq_m_u32): Likewise.
29524 (__arm_vminq_m_u16): Likewise.
29525 (__arm_vmladavaq_p_s8): Likewise.
29526 (__arm_vmladavaq_p_s32): Likewise.
29527 (__arm_vmladavaq_p_s16): Likewise.
29528 (__arm_vmladavaq_p_u8): Likewise.
29529 (__arm_vmladavaq_p_u32): Likewise.
29530 (__arm_vmladavaq_p_u16): Likewise.
29531 (__arm_vmladavaxq_p_s8): Likewise.
29532 (__arm_vmladavaxq_p_s32): Likewise.
29533 (__arm_vmladavaxq_p_s16): Likewise.
29534 (__arm_vmlaq_m_n_s8): Likewise.
29535 (__arm_vmlaq_m_n_s32): Likewise.
29536 (__arm_vmlaq_m_n_s16): Likewise.
29537 (__arm_vmlaq_m_n_u8): Likewise.
29538 (__arm_vmlaq_m_n_u32): Likewise.
29539 (__arm_vmlaq_m_n_u16): Likewise.
29540 (__arm_vmlasq_m_n_s8): Likewise.
29541 (__arm_vmlasq_m_n_s32): Likewise.
29542 (__arm_vmlasq_m_n_s16): Likewise.
29543 (__arm_vmlasq_m_n_u8): Likewise.
29544 (__arm_vmlasq_m_n_u32): Likewise.
29545 (__arm_vmlasq_m_n_u16): Likewise.
29546 (__arm_vmlsdavaq_p_s8): Likewise.
29547 (__arm_vmlsdavaq_p_s32): Likewise.
29548 (__arm_vmlsdavaq_p_s16): Likewise.
29549 (__arm_vmlsdavaxq_p_s8): Likewise.
29550 (__arm_vmlsdavaxq_p_s32): Likewise.
29551 (__arm_vmlsdavaxq_p_s16): Likewise.
29552 (__arm_vmulhq_m_s8): Likewise.
29553 (__arm_vmulhq_m_s32): Likewise.
29554 (__arm_vmulhq_m_s16): Likewise.
29555 (__arm_vmulhq_m_u8): Likewise.
29556 (__arm_vmulhq_m_u32): Likewise.
29557 (__arm_vmulhq_m_u16): Likewise.
29558 (__arm_vmullbq_int_m_s8): Likewise.
29559 (__arm_vmullbq_int_m_s32): Likewise.
29560 (__arm_vmullbq_int_m_s16): Likewise.
29561 (__arm_vmullbq_int_m_u8): Likewise.
29562 (__arm_vmullbq_int_m_u32): Likewise.
29563 (__arm_vmullbq_int_m_u16): Likewise.
29564 (__arm_vmulltq_int_m_s8): Likewise.
29565 (__arm_vmulltq_int_m_s32): Likewise.
29566 (__arm_vmulltq_int_m_s16): Likewise.
29567 (__arm_vmulltq_int_m_u8): Likewise.
29568 (__arm_vmulltq_int_m_u32): Likewise.
29569 (__arm_vmulltq_int_m_u16): Likewise.
29570 (__arm_vmulq_m_n_s8): Likewise.
29571 (__arm_vmulq_m_n_s32): Likewise.
29572 (__arm_vmulq_m_n_s16): Likewise.
29573 (__arm_vmulq_m_n_u8): Likewise.
29574 (__arm_vmulq_m_n_u32): Likewise.
29575 (__arm_vmulq_m_n_u16): Likewise.
29576 (__arm_vmulq_m_s8): Likewise.
29577 (__arm_vmulq_m_s32): Likewise.
29578 (__arm_vmulq_m_s16): Likewise.
29579 (__arm_vmulq_m_u8): Likewise.
29580 (__arm_vmulq_m_u32): Likewise.
29581 (__arm_vmulq_m_u16): Likewise.
29582 (__arm_vornq_m_s8): Likewise.
29583 (__arm_vornq_m_s32): Likewise.
29584 (__arm_vornq_m_s16): Likewise.
29585 (__arm_vornq_m_u8): Likewise.
29586 (__arm_vornq_m_u32): Likewise.
29587 (__arm_vornq_m_u16): Likewise.
29588 (__arm_vorrq_m_s8): Likewise.
29589 (__arm_vorrq_m_s32): Likewise.
29590 (__arm_vorrq_m_s16): Likewise.
29591 (__arm_vorrq_m_u8): Likewise.
29592 (__arm_vorrq_m_u32): Likewise.
29593 (__arm_vorrq_m_u16): Likewise.
29594 (__arm_vqaddq_m_n_s8): Likewise.
29595 (__arm_vqaddq_m_n_s32): Likewise.
29596 (__arm_vqaddq_m_n_s16): Likewise.
29597 (__arm_vqaddq_m_n_u8): Likewise.
29598 (__arm_vqaddq_m_n_u32): Likewise.
29599 (__arm_vqaddq_m_n_u16): Likewise.
29600 (__arm_vqaddq_m_s8): Likewise.
29601 (__arm_vqaddq_m_s32): Likewise.
29602 (__arm_vqaddq_m_s16): Likewise.
29603 (__arm_vqaddq_m_u8): Likewise.
29604 (__arm_vqaddq_m_u32): Likewise.
29605 (__arm_vqaddq_m_u16): Likewise.
29606 (__arm_vqdmladhq_m_s8): Likewise.
29607 (__arm_vqdmladhq_m_s32): Likewise.
29608 (__arm_vqdmladhq_m_s16): Likewise.
29609 (__arm_vqdmladhxq_m_s8): Likewise.
29610 (__arm_vqdmladhxq_m_s32): Likewise.
29611 (__arm_vqdmladhxq_m_s16): Likewise.
29612 (__arm_vqdmlahq_m_n_s8): Likewise.
29613 (__arm_vqdmlahq_m_n_s32): Likewise.
29614 (__arm_vqdmlahq_m_n_s16): Likewise.
29615 (__arm_vqdmlahq_m_n_u8): Likewise.
29616 (__arm_vqdmlahq_m_n_u32): Likewise.
29617 (__arm_vqdmlahq_m_n_u16): Likewise.
29618 (__arm_vqdmlsdhq_m_s8): Likewise.
29619 (__arm_vqdmlsdhq_m_s32): Likewise.
29620 (__arm_vqdmlsdhq_m_s16): Likewise.
29621 (__arm_vqdmlsdhxq_m_s8): Likewise.
29622 (__arm_vqdmlsdhxq_m_s32): Likewise.
29623 (__arm_vqdmlsdhxq_m_s16): Likewise.
29624 (__arm_vqdmulhq_m_n_s8): Likewise.
29625 (__arm_vqdmulhq_m_n_s32): Likewise.
29626 (__arm_vqdmulhq_m_n_s16): Likewise.
29627 (__arm_vqdmulhq_m_s8): Likewise.
29628 (__arm_vqdmulhq_m_s32): Likewise.
29629 (__arm_vqdmulhq_m_s16): Likewise.
29630 (__arm_vqrdmladhq_m_s8): Likewise.
29631 (__arm_vqrdmladhq_m_s32): Likewise.
29632 (__arm_vqrdmladhq_m_s16): Likewise.
29633 (__arm_vqrdmladhxq_m_s8): Likewise.
29634 (__arm_vqrdmladhxq_m_s32): Likewise.
29635 (__arm_vqrdmladhxq_m_s16): Likewise.
29636 (__arm_vqrdmlahq_m_n_s8): Likewise.
29637 (__arm_vqrdmlahq_m_n_s32): Likewise.
29638 (__arm_vqrdmlahq_m_n_s16): Likewise.
29639 (__arm_vqrdmlahq_m_n_u8): Likewise.
29640 (__arm_vqrdmlahq_m_n_u32): Likewise.
29641 (__arm_vqrdmlahq_m_n_u16): Likewise.
29642 (__arm_vqrdmlashq_m_n_s8): Likewise.
29643 (__arm_vqrdmlashq_m_n_s32): Likewise.
29644 (__arm_vqrdmlashq_m_n_s16): Likewise.
29645 (__arm_vqrdmlashq_m_n_u8): Likewise.
29646 (__arm_vqrdmlashq_m_n_u32): Likewise.
29647 (__arm_vqrdmlashq_m_n_u16): Likewise.
29648 (__arm_vqrdmlsdhq_m_s8): Likewise.
29649 (__arm_vqrdmlsdhq_m_s32): Likewise.
29650 (__arm_vqrdmlsdhq_m_s16): Likewise.
29651 (__arm_vqrdmlsdhxq_m_s8): Likewise.
29652 (__arm_vqrdmlsdhxq_m_s32): Likewise.
29653 (__arm_vqrdmlsdhxq_m_s16): Likewise.
29654 (__arm_vqrdmulhq_m_n_s8): Likewise.
29655 (__arm_vqrdmulhq_m_n_s32): Likewise.
29656 (__arm_vqrdmulhq_m_n_s16): Likewise.
29657 (__arm_vqrdmulhq_m_s8): Likewise.
29658 (__arm_vqrdmulhq_m_s32): Likewise.
29659 (__arm_vqrdmulhq_m_s16): Likewise.
29660 (__arm_vqrshlq_m_s8): Likewise.
29661 (__arm_vqrshlq_m_s32): Likewise.
29662 (__arm_vqrshlq_m_s16): Likewise.
29663 (__arm_vqrshlq_m_u8): Likewise.
29664 (__arm_vqrshlq_m_u32): Likewise.
29665 (__arm_vqrshlq_m_u16): Likewise.
29666 (__arm_vqshlq_m_n_s8): Likewise.
29667 (__arm_vqshlq_m_n_s32): Likewise.
29668 (__arm_vqshlq_m_n_s16): Likewise.
29669 (__arm_vqshlq_m_n_u8): Likewise.
29670 (__arm_vqshlq_m_n_u32): Likewise.
29671 (__arm_vqshlq_m_n_u16): Likewise.
29672 (__arm_vqshlq_m_s8): Likewise.
29673 (__arm_vqshlq_m_s32): Likewise.
29674 (__arm_vqshlq_m_s16): Likewise.
29675 (__arm_vqshlq_m_u8): Likewise.
29676 (__arm_vqshlq_m_u32): Likewise.
29677 (__arm_vqshlq_m_u16): Likewise.
29678 (__arm_vqsubq_m_n_s8): Likewise.
29679 (__arm_vqsubq_m_n_s32): Likewise.
29680 (__arm_vqsubq_m_n_s16): Likewise.
29681 (__arm_vqsubq_m_n_u8): Likewise.
29682 (__arm_vqsubq_m_n_u32): Likewise.
29683 (__arm_vqsubq_m_n_u16): Likewise.
29684 (__arm_vqsubq_m_s8): Likewise.
29685 (__arm_vqsubq_m_s32): Likewise.
29686 (__arm_vqsubq_m_s16): Likewise.
29687 (__arm_vqsubq_m_u8): Likewise.
29688 (__arm_vqsubq_m_u32): Likewise.
29689 (__arm_vqsubq_m_u16): Likewise.
29690 (__arm_vrhaddq_m_s8): Likewise.
29691 (__arm_vrhaddq_m_s32): Likewise.
29692 (__arm_vrhaddq_m_s16): Likewise.
29693 (__arm_vrhaddq_m_u8): Likewise.
29694 (__arm_vrhaddq_m_u32): Likewise.
29695 (__arm_vrhaddq_m_u16): Likewise.
29696 (__arm_vrmulhq_m_s8): Likewise.
29697 (__arm_vrmulhq_m_s32): Likewise.
29698 (__arm_vrmulhq_m_s16): Likewise.
29699 (__arm_vrmulhq_m_u8): Likewise.
29700 (__arm_vrmulhq_m_u32): Likewise.
29701 (__arm_vrmulhq_m_u16): Likewise.
29702 (__arm_vrshlq_m_s8): Likewise.
29703 (__arm_vrshlq_m_s32): Likewise.
29704 (__arm_vrshlq_m_s16): Likewise.
29705 (__arm_vrshlq_m_u8): Likewise.
29706 (__arm_vrshlq_m_u32): Likewise.
29707 (__arm_vrshlq_m_u16): Likewise.
29708 (__arm_vrshrq_m_n_s8): Likewise.
29709 (__arm_vrshrq_m_n_s32): Likewise.
29710 (__arm_vrshrq_m_n_s16): Likewise.
29711 (__arm_vrshrq_m_n_u8): Likewise.
29712 (__arm_vrshrq_m_n_u32): Likewise.
29713 (__arm_vrshrq_m_n_u16): Likewise.
29714 (__arm_vshlq_m_n_s8): Likewise.
29715 (__arm_vshlq_m_n_s32): Likewise.
29716 (__arm_vshlq_m_n_s16): Likewise.
29717 (__arm_vshlq_m_n_u8): Likewise.
29718 (__arm_vshlq_m_n_u32): Likewise.
29719 (__arm_vshlq_m_n_u16): Likewise.
29720 (__arm_vshrq_m_n_s8): Likewise.
29721 (__arm_vshrq_m_n_s32): Likewise.
29722 (__arm_vshrq_m_n_s16): Likewise.
29723 (__arm_vshrq_m_n_u8): Likewise.
29724 (__arm_vshrq_m_n_u32): Likewise.
29725 (__arm_vshrq_m_n_u16): Likewise.
29726 (__arm_vsliq_m_n_s8): Likewise.
29727 (__arm_vsliq_m_n_s32): Likewise.
29728 (__arm_vsliq_m_n_s16): Likewise.
29729 (__arm_vsliq_m_n_u8): Likewise.
29730 (__arm_vsliq_m_n_u32): Likewise.
29731 (__arm_vsliq_m_n_u16): Likewise.
29732 (__arm_vsubq_m_n_s8): Likewise.
29733 (__arm_vsubq_m_n_s32): Likewise.
29734 (__arm_vsubq_m_n_s16): Likewise.
29735 (__arm_vsubq_m_n_u8): Likewise.
29736 (__arm_vsubq_m_n_u32): Likewise.
29737 (__arm_vsubq_m_n_u16): Likewise.
29738 (vqdmladhq_m): Define polymorphic variant.
29739 (vqdmladhxq_m): Likewise.
29740 (vqdmlsdhq_m): Likewise.
29741 (vqdmlsdhxq_m): Likewise.
29742 (vabdq_m): Likewise.
29743 (vandq_m): Likewise.
29744 (vbicq_m): Likewise.
29745 (vbrsrq_m_n): Likewise.
29746 (vcaddq_rot270_m): Likewise.
29747 (vcaddq_rot90_m): Likewise.
29748 (veorq_m): Likewise.
29749 (vmaxq_m): Likewise.
29750 (vminq_m): Likewise.
29751 (vmladavaq_p): Likewise.
29752 (vmlaq_m_n): Likewise.
29753 (vmlasq_m_n): Likewise.
29754 (vmulhq_m): Likewise.
29755 (vmullbq_int_m): Likewise.
29756 (vmulltq_int_m): Likewise.
29757 (vornq_m): Likewise.
29758 (vorrq_m): Likewise.
29759 (vqdmlahq_m_n): Likewise.
29760 (vqrdmlahq_m_n): Likewise.
29761 (vqrdmlashq_m_n): Likewise.
29762 (vqrshlq_m): Likewise.
29763 (vqshlq_m_n): Likewise.
29764 (vqshlq_m): Likewise.
29765 (vrhaddq_m): Likewise.
29766 (vrmulhq_m): Likewise.
29767 (vrshlq_m): Likewise.
29768 (vrshrq_m_n): Likewise.
29769 (vshlq_m_n): Likewise.
29770 (vshrq_m_n): Likewise.
29771 (vsliq_m): Likewise.
29772 (vaddq_m_n): Likewise.
29773 (vaddq_m): Likewise.
29774 (vhaddq_m_n): Likewise.
29775 (vhaddq_m): Likewise.
29776 (vhcaddq_rot270_m): Likewise.
29777 (vhcaddq_rot90_m): Likewise.
29778 (vhsubq_m): Likewise.
29779 (vhsubq_m_n): Likewise.
29780 (vmulq_m_n): Likewise.
29781 (vmulq_m): Likewise.
29782 (vqaddq_m_n): Likewise.
29783 (vqaddq_m): Likewise.
29784 (vqdmulhq_m_n): Likewise.
29785 (vqdmulhq_m): Likewise.
29786 (vsubq_m_n): Likewise.
29787 (vsliq_m_n): Likewise.
29788 (vqsubq_m_n): Likewise.
29789 (vqsubq_m): Likewise.
29790 (vqrdmulhq_m): Likewise.
29791 (vqrdmulhq_m_n): Likewise.
29792 (vqrdmlsdhxq_m): Likewise.
29793 (vqrdmlsdhq_m): Likewise.
29794 (vqrdmladhq_m): Likewise.
29795 (vqrdmladhxq_m): Likewise.
29796 (vmlsdavaxq_p): Likewise.
29797 (vmlsdavaq_p): Likewise.
29798 (vmladavaxq_p): Likewise.
29799 * config/arm/arm_mve_builtins.def (QUADOP_NONE_NONE_NONE_IMM_UNONE): Use
29801 (QUADOP_NONE_NONE_NONE_NONE_UNONE): Likewise.
29802 (QUADOP_UNONE_UNONE_UNONE_IMM_UNONE): Likewise.
29803 (QUADOP_UNONE_UNONE_UNONE_NONE_UNONE): Likewise.
29804 (QUADOP_UNONE_UNONE_UNONE_UNONE_UNONE): Likewise.
29805 * config/arm/mve.md (VHSUBQ_M): Define iterators.
29806 (VSLIQ_M_N): Likewise.
29807 (VQRDMLAHQ_M_N): Likewise.
29808 (VRSHLQ_M): Likewise.
29809 (VMINQ_M): Likewise.
29810 (VMULLBQ_INT_M): Likewise.
29811 (VMULHQ_M): Likewise.
29812 (VMULQ_M): Likewise.
29813 (VHSUBQ_M_N): Likewise.
29814 (VHADDQ_M_N): Likewise.
29815 (VORRQ_M): Likewise.
29816 (VRMULHQ_M): Likewise.
29817 (VQADDQ_M): Likewise.
29818 (VRSHRQ_M_N): Likewise.
29819 (VQSUBQ_M_N): Likewise.
29820 (VADDQ_M): Likewise.
29821 (VORNQ_M): Likewise.
29822 (VQDMLAHQ_M_N): Likewise.
29823 (VRHADDQ_M): Likewise.
29824 (VQSHLQ_M): Likewise.
29825 (VANDQ_M): Likewise.
29826 (VBICQ_M): Likewise.
29827 (VSHLQ_M_N): Likewise.
29828 (VCADDQ_ROT270_M): Likewise.
29829 (VQRSHLQ_M): Likewise.
29830 (VQADDQ_M_N): Likewise.
29831 (VADDQ_M_N): Likewise.
29832 (VMAXQ_M): Likewise.
29833 (VQSUBQ_M): Likewise.
29834 (VMLASQ_M_N): Likewise.
29835 (VMLADAVAQ_P): Likewise.
29836 (VBRSRQ_M_N): Likewise.
29837 (VMULQ_M_N): Likewise.
29838 (VCADDQ_ROT90_M): Likewise.
29839 (VMULLTQ_INT_M): Likewise.
29840 (VEORQ_M): Likewise.
29841 (VSHRQ_M_N): Likewise.
29842 (VSUBQ_M_N): Likewise.
29843 (VHADDQ_M): Likewise.
29844 (VABDQ_M): Likewise.
29845 (VQRDMLASHQ_M_N): Likewise.
29846 (VMLAQ_M_N): Likewise.
29847 (VQSHLQ_M_N): Likewise.
29848 (mve_vabdq_m_<supf><mode>): Define RTL pattern.
29849 (mve_vaddq_m_n_<supf><mode>): Likewise.
29850 (mve_vaddq_m_<supf><mode>): Likewise.
29851 (mve_vandq_m_<supf><mode>): Likewise.
29852 (mve_vbicq_m_<supf><mode>): Likewise.
29853 (mve_vbrsrq_m_n_<supf><mode>): Likewise.
29854 (mve_vcaddq_rot270_m_<supf><mode>): Likewise.
29855 (mve_vcaddq_rot90_m_<supf><mode>): Likewise.
29856 (mve_veorq_m_<supf><mode>): Likewise.
29857 (mve_vhaddq_m_n_<supf><mode>): Likewise.
29858 (mve_vhaddq_m_<supf><mode>): Likewise.
29859 (mve_vhsubq_m_n_<supf><mode>): Likewise.
29860 (mve_vhsubq_m_<supf><mode>): Likewise.
29861 (mve_vmaxq_m_<supf><mode>): Likewise.
29862 (mve_vminq_m_<supf><mode>): Likewise.
29863 (mve_vmladavaq_p_<supf><mode>): Likewise.
29864 (mve_vmlaq_m_n_<supf><mode>): Likewise.
29865 (mve_vmlasq_m_n_<supf><mode>): Likewise.
29866 (mve_vmulhq_m_<supf><mode>): Likewise.
29867 (mve_vmullbq_int_m_<supf><mode>): Likewise.
29868 (mve_vmulltq_int_m_<supf><mode>): Likewise.
29869 (mve_vmulq_m_n_<supf><mode>): Likewise.
29870 (mve_vmulq_m_<supf><mode>): Likewise.
29871 (mve_vornq_m_<supf><mode>): Likewise.
29872 (mve_vorrq_m_<supf><mode>): Likewise.
29873 (mve_vqaddq_m_n_<supf><mode>): Likewise.
29874 (mve_vqaddq_m_<supf><mode>): Likewise.
29875 (mve_vqdmlahq_m_n_<supf><mode>): Likewise.
29876 (mve_vqrdmlahq_m_n_<supf><mode>): Likewise.
29877 (mve_vqrdmlashq_m_n_<supf><mode>): Likewise.
29878 (mve_vqrshlq_m_<supf><mode>): Likewise.
29879 (mve_vqshlq_m_n_<supf><mode>): Likewise.
29880 (mve_vqshlq_m_<supf><mode>): Likewise.
29881 (mve_vqsubq_m_n_<supf><mode>): Likewise.
29882 (mve_vqsubq_m_<supf><mode>): Likewise.
29883 (mve_vrhaddq_m_<supf><mode>): Likewise.
29884 (mve_vrmulhq_m_<supf><mode>): Likewise.
29885 (mve_vrshlq_m_<supf><mode>): Likewise.
29886 (mve_vrshrq_m_n_<supf><mode>): Likewise.
29887 (mve_vshlq_m_n_<supf><mode>): Likewise.
29888 (mve_vshrq_m_n_<supf><mode>): Likewise.
29889 (mve_vsliq_m_n_<supf><mode>): Likewise.
29890 (mve_vsubq_m_n_<supf><mode>): Likewise.
29891 (mve_vhcaddq_rot270_m_s<mode>): Likewise.
29892 (mve_vhcaddq_rot90_m_s<mode>): Likewise.
29893 (mve_vmladavaxq_p_s<mode>): Likewise.
29894 (mve_vmlsdavaq_p_s<mode>): Likewise.
29895 (mve_vmlsdavaxq_p_s<mode>): Likewise.
29896 (mve_vqdmladhq_m_s<mode>): Likewise.
29897 (mve_vqdmladhxq_m_s<mode>): Likewise.
29898 (mve_vqdmlsdhq_m_s<mode>): Likewise.
29899 (mve_vqdmlsdhxq_m_s<mode>): Likewise.
29900 (mve_vqdmulhq_m_n_s<mode>): Likewise.
29901 (mve_vqdmulhq_m_s<mode>): Likewise.
29902 (mve_vqrdmladhq_m_s<mode>): Likewise.
29903 (mve_vqrdmladhxq_m_s<mode>): Likewise.
29904 (mve_vqrdmlsdhq_m_s<mode>): Likewise.
29905 (mve_vqrdmlsdhxq_m_s<mode>): Likewise.
29906 (mve_vqrdmulhq_m_n_s<mode>): Likewise.
29907 (mve_vqrdmulhq_m_s<mode>): Likewise.
29909 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
29910 Mihail Ionescu <mihail.ionescu@arm.com>
29911 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
29913 * config/arm/arm-builtins.c (QUADOP_UNONE_UNONE_NONE_NONE_UNONE_QUALIFIERS):
29914 Define builtin qualifier.
29915 (QUADOP_NONE_NONE_NONE_NONE_UNONE_QUALIFIERS): Likewise.
29916 (QUADOP_NONE_NONE_NONE_IMM_UNONE_QUALIFIERS): Likewise.
29917 (QUADOP_UNONE_UNONE_UNONE_UNONE_UNONE_QUALIFIERS): Likewise.
29918 (QUADOP_UNONE_UNONE_NONE_IMM_UNONE_QUALIFIERS): Likewise.
29919 (QUADOP_NONE_NONE_UNONE_IMM_UNONE_QUALIFIERS): Likewise.
29920 (QUADOP_UNONE_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Likewise.
29921 (QUADOP_UNONE_UNONE_UNONE_NONE_UNONE_QUALIFIERS): Likewise.
29922 * config/arm/arm_mve.h (vsriq_m_n_s8): Define macro.
29923 (vsubq_m_s8): Likewise.
29924 (vcvtq_m_n_f16_u16): Likewise.
29925 (vqshluq_m_n_s8): Likewise.
29926 (vabavq_p_s8): Likewise.
29927 (vsriq_m_n_u8): Likewise.
29928 (vshlq_m_u8): Likewise.
29929 (vsubq_m_u8): Likewise.
29930 (vabavq_p_u8): Likewise.
29931 (vshlq_m_s8): Likewise.
29932 (vcvtq_m_n_f16_s16): Likewise.
29933 (vsriq_m_n_s16): Likewise.
29934 (vsubq_m_s16): Likewise.
29935 (vcvtq_m_n_f32_u32): Likewise.
29936 (vqshluq_m_n_s16): Likewise.
29937 (vabavq_p_s16): Likewise.
29938 (vsriq_m_n_u16): Likewise.
29939 (vshlq_m_u16): Likewise.
29940 (vsubq_m_u16): Likewise.
29941 (vabavq_p_u16): Likewise.
29942 (vshlq_m_s16): Likewise.
29943 (vcvtq_m_n_f32_s32): Likewise.
29944 (vsriq_m_n_s32): Likewise.
29945 (vsubq_m_s32): Likewise.
29946 (vqshluq_m_n_s32): Likewise.
29947 (vabavq_p_s32): Likewise.
29948 (vsriq_m_n_u32): Likewise.
29949 (vshlq_m_u32): Likewise.
29950 (vsubq_m_u32): Likewise.
29951 (vabavq_p_u32): Likewise.
29952 (vshlq_m_s32): Likewise.
29953 (__arm_vsriq_m_n_s8): Define intrinsic.
29954 (__arm_vsubq_m_s8): Likewise.
29955 (__arm_vqshluq_m_n_s8): Likewise.
29956 (__arm_vabavq_p_s8): Likewise.
29957 (__arm_vsriq_m_n_u8): Likewise.
29958 (__arm_vshlq_m_u8): Likewise.
29959 (__arm_vsubq_m_u8): Likewise.
29960 (__arm_vabavq_p_u8): Likewise.
29961 (__arm_vshlq_m_s8): Likewise.
29962 (__arm_vsriq_m_n_s16): Likewise.
29963 (__arm_vsubq_m_s16): Likewise.
29964 (__arm_vqshluq_m_n_s16): Likewise.
29965 (__arm_vabavq_p_s16): Likewise.
29966 (__arm_vsriq_m_n_u16): Likewise.
29967 (__arm_vshlq_m_u16): Likewise.
29968 (__arm_vsubq_m_u16): Likewise.
29969 (__arm_vabavq_p_u16): Likewise.
29970 (__arm_vshlq_m_s16): Likewise.
29971 (__arm_vsriq_m_n_s32): Likewise.
29972 (__arm_vsubq_m_s32): Likewise.
29973 (__arm_vqshluq_m_n_s32): Likewise.
29974 (__arm_vabavq_p_s32): Likewise.
29975 (__arm_vsriq_m_n_u32): Likewise.
29976 (__arm_vshlq_m_u32): Likewise.
29977 (__arm_vsubq_m_u32): Likewise.
29978 (__arm_vabavq_p_u32): Likewise.
29979 (__arm_vshlq_m_s32): Likewise.
29980 (__arm_vcvtq_m_n_f16_u16): Likewise.
29981 (__arm_vcvtq_m_n_f16_s16): Likewise.
29982 (__arm_vcvtq_m_n_f32_u32): Likewise.
29983 (__arm_vcvtq_m_n_f32_s32): Likewise.
29984 (vcvtq_m_n): Define polymorphic variant.
29985 (vqshluq_m_n): Likewise.
29986 (vshlq_m): Likewise.
29987 (vsriq_m_n): Likewise.
29988 (vsubq_m): Likewise.
29989 (vabavq_p): Likewise.
29990 * config/arm/arm_mve_builtins.def
29991 (QUADOP_UNONE_UNONE_NONE_NONE_UNONE_QUALIFIERS): Use 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/mve.md (VABAVQ_P): Define iterator.
30000 (VSHLQ_M): Likewise.
30001 (VSRIQ_M_N): Likewise.
30002 (VSUBQ_M): Likewise.
30003 (VCVTQ_M_N_TO_F): Likewise.
30004 (mve_vabavq_p_<supf><mode>): Define RTL pattern.
30005 (mve_vqshluq_m_n_s<mode>): Likewise.
30006 (mve_vshlq_m_<supf><mode>): Likewise.
30007 (mve_vsriq_m_n_<supf><mode>): Likewise.
30008 (mve_vsubq_m_<supf><mode>): Likewise.
30009 (mve_vcvtq_m_n_to_f_<supf><mode>): Likewise.
30011 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
30012 Mihail Ionescu <mihail.ionescu@arm.com>
30013 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
30015 * config/arm/arm_mve.h (vrmlaldavhaxq_s32): Define macro.
30016 (vrmlsldavhaq_s32): Likewise.
30017 (vrmlsldavhaxq_s32): Likewise.
30018 (vaddlvaq_p_s32): Likewise.
30019 (vcvtbq_m_f16_f32): Likewise.
30020 (vcvtbq_m_f32_f16): Likewise.
30021 (vcvttq_m_f16_f32): Likewise.
30022 (vcvttq_m_f32_f16): Likewise.
30023 (vrev16q_m_s8): Likewise.
30024 (vrev32q_m_f16): Likewise.
30025 (vrmlaldavhq_p_s32): Likewise.
30026 (vrmlaldavhxq_p_s32): Likewise.
30027 (vrmlsldavhq_p_s32): Likewise.
30028 (vrmlsldavhxq_p_s32): Likewise.
30029 (vaddlvaq_p_u32): Likewise.
30030 (vrev16q_m_u8): Likewise.
30031 (vrmlaldavhq_p_u32): Likewise.
30032 (vmvnq_m_n_s16): Likewise.
30033 (vorrq_m_n_s16): Likewise.
30034 (vqrshrntq_n_s16): Likewise.
30035 (vqshrnbq_n_s16): Likewise.
30036 (vqshrntq_n_s16): Likewise.
30037 (vrshrnbq_n_s16): Likewise.
30038 (vrshrntq_n_s16): Likewise.
30039 (vshrnbq_n_s16): Likewise.
30040 (vshrntq_n_s16): Likewise.
30041 (vcmlaq_f16): Likewise.
30042 (vcmlaq_rot180_f16): Likewise.
30043 (vcmlaq_rot270_f16): Likewise.
30044 (vcmlaq_rot90_f16): Likewise.
30045 (vfmaq_f16): Likewise.
30046 (vfmaq_n_f16): Likewise.
30047 (vfmasq_n_f16): Likewise.
30048 (vfmsq_f16): Likewise.
30049 (vmlaldavaq_s16): Likewise.
30050 (vmlaldavaxq_s16): Likewise.
30051 (vmlsldavaq_s16): Likewise.
30052 (vmlsldavaxq_s16): Likewise.
30053 (vabsq_m_f16): Likewise.
30054 (vcvtmq_m_s16_f16): Likewise.
30055 (vcvtnq_m_s16_f16): Likewise.
30056 (vcvtpq_m_s16_f16): Likewise.
30057 (vcvtq_m_s16_f16): Likewise.
30058 (vdupq_m_n_f16): Likewise.
30059 (vmaxnmaq_m_f16): Likewise.
30060 (vmaxnmavq_p_f16): Likewise.
30061 (vmaxnmvq_p_f16): Likewise.
30062 (vminnmaq_m_f16): Likewise.
30063 (vminnmavq_p_f16): Likewise.
30064 (vminnmvq_p_f16): Likewise.
30065 (vmlaldavq_p_s16): Likewise.
30066 (vmlaldavxq_p_s16): Likewise.
30067 (vmlsldavq_p_s16): Likewise.
30068 (vmlsldavxq_p_s16): Likewise.
30069 (vmovlbq_m_s8): Likewise.
30070 (vmovltq_m_s8): Likewise.
30071 (vmovnbq_m_s16): Likewise.
30072 (vmovntq_m_s16): Likewise.
30073 (vnegq_m_f16): Likewise.
30074 (vpselq_f16): Likewise.
30075 (vqmovnbq_m_s16): Likewise.
30076 (vqmovntq_m_s16): Likewise.
30077 (vrev32q_m_s8): Likewise.
30078 (vrev64q_m_f16): Likewise.
30079 (vrndaq_m_f16): Likewise.
30080 (vrndmq_m_f16): Likewise.
30081 (vrndnq_m_f16): Likewise.
30082 (vrndpq_m_f16): Likewise.
30083 (vrndq_m_f16): Likewise.
30084 (vrndxq_m_f16): Likewise.
30085 (vcmpeqq_m_n_f16): Likewise.
30086 (vcmpgeq_m_f16): Likewise.
30087 (vcmpgeq_m_n_f16): Likewise.
30088 (vcmpgtq_m_f16): Likewise.
30089 (vcmpgtq_m_n_f16): Likewise.
30090 (vcmpleq_m_f16): Likewise.
30091 (vcmpleq_m_n_f16): Likewise.
30092 (vcmpltq_m_f16): Likewise.
30093 (vcmpltq_m_n_f16): Likewise.
30094 (vcmpneq_m_f16): Likewise.
30095 (vcmpneq_m_n_f16): Likewise.
30096 (vmvnq_m_n_u16): Likewise.
30097 (vorrq_m_n_u16): Likewise.
30098 (vqrshruntq_n_s16): Likewise.
30099 (vqshrunbq_n_s16): Likewise.
30100 (vqshruntq_n_s16): Likewise.
30101 (vcvtmq_m_u16_f16): Likewise.
30102 (vcvtnq_m_u16_f16): Likewise.
30103 (vcvtpq_m_u16_f16): Likewise.
30104 (vcvtq_m_u16_f16): Likewise.
30105 (vqmovunbq_m_s16): Likewise.
30106 (vqmovuntq_m_s16): Likewise.
30107 (vqrshrntq_n_u16): Likewise.
30108 (vqshrnbq_n_u16): Likewise.
30109 (vqshrntq_n_u16): Likewise.
30110 (vrshrnbq_n_u16): Likewise.
30111 (vrshrntq_n_u16): Likewise.
30112 (vshrnbq_n_u16): Likewise.
30113 (vshrntq_n_u16): Likewise.
30114 (vmlaldavaq_u16): Likewise.
30115 (vmlaldavaxq_u16): Likewise.
30116 (vmlaldavq_p_u16): Likewise.
30117 (vmlaldavxq_p_u16): Likewise.
30118 (vmovlbq_m_u8): Likewise.
30119 (vmovltq_m_u8): Likewise.
30120 (vmovnbq_m_u16): Likewise.
30121 (vmovntq_m_u16): Likewise.
30122 (vqmovnbq_m_u16): Likewise.
30123 (vqmovntq_m_u16): Likewise.
30124 (vrev32q_m_u8): Likewise.
30125 (vmvnq_m_n_s32): Likewise.
30126 (vorrq_m_n_s32): Likewise.
30127 (vqrshrntq_n_s32): Likewise.
30128 (vqshrnbq_n_s32): Likewise.
30129 (vqshrntq_n_s32): Likewise.
30130 (vrshrnbq_n_s32): Likewise.
30131 (vrshrntq_n_s32): Likewise.
30132 (vshrnbq_n_s32): Likewise.
30133 (vshrntq_n_s32): Likewise.
30134 (vcmlaq_f32): Likewise.
30135 (vcmlaq_rot180_f32): Likewise.
30136 (vcmlaq_rot270_f32): Likewise.
30137 (vcmlaq_rot90_f32): Likewise.
30138 (vfmaq_f32): Likewise.
30139 (vfmaq_n_f32): Likewise.
30140 (vfmasq_n_f32): Likewise.
30141 (vfmsq_f32): Likewise.
30142 (vmlaldavaq_s32): Likewise.
30143 (vmlaldavaxq_s32): Likewise.
30144 (vmlsldavaq_s32): Likewise.
30145 (vmlsldavaxq_s32): Likewise.
30146 (vabsq_m_f32): Likewise.
30147 (vcvtmq_m_s32_f32): Likewise.
30148 (vcvtnq_m_s32_f32): Likewise.
30149 (vcvtpq_m_s32_f32): Likewise.
30150 (vcvtq_m_s32_f32): Likewise.
30151 (vdupq_m_n_f32): Likewise.
30152 (vmaxnmaq_m_f32): Likewise.
30153 (vmaxnmavq_p_f32): Likewise.
30154 (vmaxnmvq_p_f32): Likewise.
30155 (vminnmaq_m_f32): Likewise.
30156 (vminnmavq_p_f32): Likewise.
30157 (vminnmvq_p_f32): Likewise.
30158 (vmlaldavq_p_s32): Likewise.
30159 (vmlaldavxq_p_s32): Likewise.
30160 (vmlsldavq_p_s32): Likewise.
30161 (vmlsldavxq_p_s32): Likewise.
30162 (vmovlbq_m_s16): Likewise.
30163 (vmovltq_m_s16): Likewise.
30164 (vmovnbq_m_s32): Likewise.
30165 (vmovntq_m_s32): Likewise.
30166 (vnegq_m_f32): Likewise.
30167 (vpselq_f32): Likewise.
30168 (vqmovnbq_m_s32): Likewise.
30169 (vqmovntq_m_s32): Likewise.
30170 (vrev32q_m_s16): Likewise.
30171 (vrev64q_m_f32): Likewise.
30172 (vrndaq_m_f32): Likewise.
30173 (vrndmq_m_f32): Likewise.
30174 (vrndnq_m_f32): Likewise.
30175 (vrndpq_m_f32): Likewise.
30176 (vrndq_m_f32): Likewise.
30177 (vrndxq_m_f32): Likewise.
30178 (vcmpeqq_m_n_f32): Likewise.
30179 (vcmpgeq_m_f32): Likewise.
30180 (vcmpgeq_m_n_f32): Likewise.
30181 (vcmpgtq_m_f32): Likewise.
30182 (vcmpgtq_m_n_f32): Likewise.
30183 (vcmpleq_m_f32): Likewise.
30184 (vcmpleq_m_n_f32): Likewise.
30185 (vcmpltq_m_f32): Likewise.
30186 (vcmpltq_m_n_f32): Likewise.
30187 (vcmpneq_m_f32): Likewise.
30188 (vcmpneq_m_n_f32): Likewise.
30189 (vmvnq_m_n_u32): Likewise.
30190 (vorrq_m_n_u32): Likewise.
30191 (vqrshruntq_n_s32): Likewise.
30192 (vqshrunbq_n_s32): Likewise.
30193 (vqshruntq_n_s32): Likewise.
30194 (vcvtmq_m_u32_f32): Likewise.
30195 (vcvtnq_m_u32_f32): Likewise.
30196 (vcvtpq_m_u32_f32): Likewise.
30197 (vcvtq_m_u32_f32): Likewise.
30198 (vqmovunbq_m_s32): Likewise.
30199 (vqmovuntq_m_s32): Likewise.
30200 (vqrshrntq_n_u32): Likewise.
30201 (vqshrnbq_n_u32): Likewise.
30202 (vqshrntq_n_u32): Likewise.
30203 (vrshrnbq_n_u32): Likewise.
30204 (vrshrntq_n_u32): Likewise.
30205 (vshrnbq_n_u32): Likewise.
30206 (vshrntq_n_u32): Likewise.
30207 (vmlaldavaq_u32): Likewise.
30208 (vmlaldavaxq_u32): Likewise.
30209 (vmlaldavq_p_u32): Likewise.
30210 (vmlaldavxq_p_u32): Likewise.
30211 (vmovlbq_m_u16): Likewise.
30212 (vmovltq_m_u16): Likewise.
30213 (vmovnbq_m_u32): Likewise.
30214 (vmovntq_m_u32): Likewise.
30215 (vqmovnbq_m_u32): Likewise.
30216 (vqmovntq_m_u32): Likewise.
30217 (vrev32q_m_u16): Likewise.
30218 (__arm_vrmlaldavhaxq_s32): Define intrinsic.
30219 (__arm_vrmlsldavhaq_s32): Likewise.
30220 (__arm_vrmlsldavhaxq_s32): Likewise.
30221 (__arm_vaddlvaq_p_s32): Likewise.
30222 (__arm_vrev16q_m_s8): Likewise.
30223 (__arm_vrmlaldavhq_p_s32): Likewise.
30224 (__arm_vrmlaldavhxq_p_s32): Likewise.
30225 (__arm_vrmlsldavhq_p_s32): Likewise.
30226 (__arm_vrmlsldavhxq_p_s32): Likewise.
30227 (__arm_vaddlvaq_p_u32): Likewise.
30228 (__arm_vrev16q_m_u8): Likewise.
30229 (__arm_vrmlaldavhq_p_u32): Likewise.
30230 (__arm_vmvnq_m_n_s16): Likewise.
30231 (__arm_vorrq_m_n_s16): Likewise.
30232 (__arm_vqrshrntq_n_s16): Likewise.
30233 (__arm_vqshrnbq_n_s16): Likewise.
30234 (__arm_vqshrntq_n_s16): Likewise.
30235 (__arm_vrshrnbq_n_s16): Likewise.
30236 (__arm_vrshrntq_n_s16): Likewise.
30237 (__arm_vshrnbq_n_s16): Likewise.
30238 (__arm_vshrntq_n_s16): Likewise.
30239 (__arm_vmlaldavaq_s16): Likewise.
30240 (__arm_vmlaldavaxq_s16): Likewise.
30241 (__arm_vmlsldavaq_s16): Likewise.
30242 (__arm_vmlsldavaxq_s16): Likewise.
30243 (__arm_vmlaldavq_p_s16): Likewise.
30244 (__arm_vmlaldavxq_p_s16): Likewise.
30245 (__arm_vmlsldavq_p_s16): Likewise.
30246 (__arm_vmlsldavxq_p_s16): Likewise.
30247 (__arm_vmovlbq_m_s8): Likewise.
30248 (__arm_vmovltq_m_s8): Likewise.
30249 (__arm_vmovnbq_m_s16): Likewise.
30250 (__arm_vmovntq_m_s16): Likewise.
30251 (__arm_vqmovnbq_m_s16): Likewise.
30252 (__arm_vqmovntq_m_s16): Likewise.
30253 (__arm_vrev32q_m_s8): Likewise.
30254 (__arm_vmvnq_m_n_u16): Likewise.
30255 (__arm_vorrq_m_n_u16): Likewise.
30256 (__arm_vqrshruntq_n_s16): Likewise.
30257 (__arm_vqshrunbq_n_s16): Likewise.
30258 (__arm_vqshruntq_n_s16): Likewise.
30259 (__arm_vqmovunbq_m_s16): Likewise.
30260 (__arm_vqmovuntq_m_s16): Likewise.
30261 (__arm_vqrshrntq_n_u16): Likewise.
30262 (__arm_vqshrnbq_n_u16): Likewise.
30263 (__arm_vqshrntq_n_u16): Likewise.
30264 (__arm_vrshrnbq_n_u16): Likewise.
30265 (__arm_vrshrntq_n_u16): Likewise.
30266 (__arm_vshrnbq_n_u16): Likewise.
30267 (__arm_vshrntq_n_u16): Likewise.
30268 (__arm_vmlaldavaq_u16): Likewise.
30269 (__arm_vmlaldavaxq_u16): Likewise.
30270 (__arm_vmlaldavq_p_u16): Likewise.
30271 (__arm_vmlaldavxq_p_u16): Likewise.
30272 (__arm_vmovlbq_m_u8): Likewise.
30273 (__arm_vmovltq_m_u8): Likewise.
30274 (__arm_vmovnbq_m_u16): Likewise.
30275 (__arm_vmovntq_m_u16): Likewise.
30276 (__arm_vqmovnbq_m_u16): Likewise.
30277 (__arm_vqmovntq_m_u16): Likewise.
30278 (__arm_vrev32q_m_u8): Likewise.
30279 (__arm_vmvnq_m_n_s32): Likewise.
30280 (__arm_vorrq_m_n_s32): Likewise.
30281 (__arm_vqrshrntq_n_s32): Likewise.
30282 (__arm_vqshrnbq_n_s32): Likewise.
30283 (__arm_vqshrntq_n_s32): Likewise.
30284 (__arm_vrshrnbq_n_s32): Likewise.
30285 (__arm_vrshrntq_n_s32): Likewise.
30286 (__arm_vshrnbq_n_s32): Likewise.
30287 (__arm_vshrntq_n_s32): Likewise.
30288 (__arm_vmlaldavaq_s32): Likewise.
30289 (__arm_vmlaldavaxq_s32): Likewise.
30290 (__arm_vmlsldavaq_s32): Likewise.
30291 (__arm_vmlsldavaxq_s32): Likewise.
30292 (__arm_vmlaldavq_p_s32): Likewise.
30293 (__arm_vmlaldavxq_p_s32): Likewise.
30294 (__arm_vmlsldavq_p_s32): Likewise.
30295 (__arm_vmlsldavxq_p_s32): Likewise.
30296 (__arm_vmovlbq_m_s16): Likewise.
30297 (__arm_vmovltq_m_s16): Likewise.
30298 (__arm_vmovnbq_m_s32): Likewise.
30299 (__arm_vmovntq_m_s32): Likewise.
30300 (__arm_vqmovnbq_m_s32): Likewise.
30301 (__arm_vqmovntq_m_s32): Likewise.
30302 (__arm_vrev32q_m_s16): Likewise.
30303 (__arm_vmvnq_m_n_u32): Likewise.
30304 (__arm_vorrq_m_n_u32): Likewise.
30305 (__arm_vqrshruntq_n_s32): Likewise.
30306 (__arm_vqshrunbq_n_s32): Likewise.
30307 (__arm_vqshruntq_n_s32): Likewise.
30308 (__arm_vqmovunbq_m_s32): Likewise.
30309 (__arm_vqmovuntq_m_s32): Likewise.
30310 (__arm_vqrshrntq_n_u32): Likewise.
30311 (__arm_vqshrnbq_n_u32): Likewise.
30312 (__arm_vqshrntq_n_u32): Likewise.
30313 (__arm_vrshrnbq_n_u32): Likewise.
30314 (__arm_vrshrntq_n_u32): Likewise.
30315 (__arm_vshrnbq_n_u32): Likewise.
30316 (__arm_vshrntq_n_u32): Likewise.
30317 (__arm_vmlaldavaq_u32): Likewise.
30318 (__arm_vmlaldavaxq_u32): Likewise.
30319 (__arm_vmlaldavq_p_u32): Likewise.
30320 (__arm_vmlaldavxq_p_u32): Likewise.
30321 (__arm_vmovlbq_m_u16): Likewise.
30322 (__arm_vmovltq_m_u16): Likewise.
30323 (__arm_vmovnbq_m_u32): Likewise.
30324 (__arm_vmovntq_m_u32): Likewise.
30325 (__arm_vqmovnbq_m_u32): Likewise.
30326 (__arm_vqmovntq_m_u32): Likewise.
30327 (__arm_vrev32q_m_u16): Likewise.
30328 (__arm_vcvtbq_m_f16_f32): Likewise.
30329 (__arm_vcvtbq_m_f32_f16): Likewise.
30330 (__arm_vcvttq_m_f16_f32): Likewise.
30331 (__arm_vcvttq_m_f32_f16): Likewise.
30332 (__arm_vrev32q_m_f16): Likewise.
30333 (__arm_vcmlaq_f16): Likewise.
30334 (__arm_vcmlaq_rot180_f16): Likewise.
30335 (__arm_vcmlaq_rot270_f16): Likewise.
30336 (__arm_vcmlaq_rot90_f16): Likewise.
30337 (__arm_vfmaq_f16): Likewise.
30338 (__arm_vfmaq_n_f16): Likewise.
30339 (__arm_vfmasq_n_f16): Likewise.
30340 (__arm_vfmsq_f16): Likewise.
30341 (__arm_vabsq_m_f16): Likewise.
30342 (__arm_vcvtmq_m_s16_f16): Likewise.
30343 (__arm_vcvtnq_m_s16_f16): Likewise.
30344 (__arm_vcvtpq_m_s16_f16): Likewise.
30345 (__arm_vcvtq_m_s16_f16): Likewise.
30346 (__arm_vdupq_m_n_f16): Likewise.
30347 (__arm_vmaxnmaq_m_f16): Likewise.
30348 (__arm_vmaxnmavq_p_f16): Likewise.
30349 (__arm_vmaxnmvq_p_f16): Likewise.
30350 (__arm_vminnmaq_m_f16): Likewise.
30351 (__arm_vminnmavq_p_f16): Likewise.
30352 (__arm_vminnmvq_p_f16): Likewise.
30353 (__arm_vnegq_m_f16): Likewise.
30354 (__arm_vpselq_f16): Likewise.
30355 (__arm_vrev64q_m_f16): Likewise.
30356 (__arm_vrndaq_m_f16): Likewise.
30357 (__arm_vrndmq_m_f16): Likewise.
30358 (__arm_vrndnq_m_f16): Likewise.
30359 (__arm_vrndpq_m_f16): Likewise.
30360 (__arm_vrndq_m_f16): Likewise.
30361 (__arm_vrndxq_m_f16): Likewise.
30362 (__arm_vcmpeqq_m_n_f16): Likewise.
30363 (__arm_vcmpgeq_m_f16): Likewise.
30364 (__arm_vcmpgeq_m_n_f16): Likewise.
30365 (__arm_vcmpgtq_m_f16): Likewise.
30366 (__arm_vcmpgtq_m_n_f16): Likewise.
30367 (__arm_vcmpleq_m_f16): Likewise.
30368 (__arm_vcmpleq_m_n_f16): Likewise.
30369 (__arm_vcmpltq_m_f16): Likewise.
30370 (__arm_vcmpltq_m_n_f16): Likewise.
30371 (__arm_vcmpneq_m_f16): Likewise.
30372 (__arm_vcmpneq_m_n_f16): Likewise.
30373 (__arm_vcvtmq_m_u16_f16): Likewise.
30374 (__arm_vcvtnq_m_u16_f16): Likewise.
30375 (__arm_vcvtpq_m_u16_f16): Likewise.
30376 (__arm_vcvtq_m_u16_f16): Likewise.
30377 (__arm_vcmlaq_f32): Likewise.
30378 (__arm_vcmlaq_rot180_f32): Likewise.
30379 (__arm_vcmlaq_rot270_f32): Likewise.
30380 (__arm_vcmlaq_rot90_f32): Likewise.
30381 (__arm_vfmaq_f32): Likewise.
30382 (__arm_vfmaq_n_f32): Likewise.
30383 (__arm_vfmasq_n_f32): Likewise.
30384 (__arm_vfmsq_f32): Likewise.
30385 (__arm_vabsq_m_f32): Likewise.
30386 (__arm_vcvtmq_m_s32_f32): Likewise.
30387 (__arm_vcvtnq_m_s32_f32): Likewise.
30388 (__arm_vcvtpq_m_s32_f32): Likewise.
30389 (__arm_vcvtq_m_s32_f32): Likewise.
30390 (__arm_vdupq_m_n_f32): Likewise.
30391 (__arm_vmaxnmaq_m_f32): Likewise.
30392 (__arm_vmaxnmavq_p_f32): Likewise.
30393 (__arm_vmaxnmvq_p_f32): Likewise.
30394 (__arm_vminnmaq_m_f32): Likewise.
30395 (__arm_vminnmavq_p_f32): Likewise.
30396 (__arm_vminnmvq_p_f32): Likewise.
30397 (__arm_vnegq_m_f32): Likewise.
30398 (__arm_vpselq_f32): Likewise.
30399 (__arm_vrev64q_m_f32): Likewise.
30400 (__arm_vrndaq_m_f32): Likewise.
30401 (__arm_vrndmq_m_f32): Likewise.
30402 (__arm_vrndnq_m_f32): Likewise.
30403 (__arm_vrndpq_m_f32): Likewise.
30404 (__arm_vrndq_m_f32): Likewise.
30405 (__arm_vrndxq_m_f32): Likewise.
30406 (__arm_vcmpeqq_m_n_f32): Likewise.
30407 (__arm_vcmpgeq_m_f32): Likewise.
30408 (__arm_vcmpgeq_m_n_f32): Likewise.
30409 (__arm_vcmpgtq_m_f32): Likewise.
30410 (__arm_vcmpgtq_m_n_f32): Likewise.
30411 (__arm_vcmpleq_m_f32): Likewise.
30412 (__arm_vcmpleq_m_n_f32): Likewise.
30413 (__arm_vcmpltq_m_f32): Likewise.
30414 (__arm_vcmpltq_m_n_f32): Likewise.
30415 (__arm_vcmpneq_m_f32): Likewise.
30416 (__arm_vcmpneq_m_n_f32): Likewise.
30417 (__arm_vcvtmq_m_u32_f32): Likewise.
30418 (__arm_vcvtnq_m_u32_f32): Likewise.
30419 (__arm_vcvtpq_m_u32_f32): Likewise.
30420 (__arm_vcvtq_m_u32_f32): Likewise.
30421 (vcvtq_m): Define polymorphic variant.
30422 (vabsq_m): Likewise.
30423 (vcmlaq): Likewise.
30424 (vcmlaq_rot180): Likewise.
30425 (vcmlaq_rot270): Likewise.
30426 (vcmlaq_rot90): Likewise.
30427 (vcmpeqq_m_n): Likewise.
30428 (vcmpgeq_m_n): Likewise.
30429 (vrndxq_m): Likewise.
30430 (vrndq_m): Likewise.
30431 (vrndpq_m): Likewise.
30432 (vcmpgtq_m_n): Likewise.
30433 (vcmpgtq_m): Likewise.
30434 (vcmpleq_m): Likewise.
30435 (vcmpleq_m_n): Likewise.
30436 (vcmpltq_m_n): Likewise.
30437 (vcmpltq_m): Likewise.
30438 (vcmpneq_m): Likewise.
30439 (vcmpneq_m_n): Likewise.
30440 (vcvtbq_m): Likewise.
30441 (vcvttq_m): Likewise.
30442 (vcvtmq_m): Likewise.
30443 (vcvtnq_m): Likewise.
30444 (vcvtpq_m): Likewise.
30445 (vdupq_m_n): Likewise.
30446 (vfmaq_n): Likewise.
30448 (vfmasq_n): Likewise.
30450 (vmaxnmaq_m): Likewise.
30451 (vmaxnmavq_m): Likewise.
30452 (vmaxnmvq_m): Likewise.
30453 (vmaxnmavq_p): Likewise.
30454 (vmaxnmvq_p): Likewise.
30455 (vminnmaq_m): Likewise.
30456 (vminnmavq_p): Likewise.
30457 (vminnmvq_p): Likewise.
30458 (vrndnq_m): Likewise.
30459 (vrndaq_m): Likewise.
30460 (vrndmq_m): Likewise.
30461 (vrev64q_m): Likewise.
30462 (vrev32q_m): Likewise.
30463 (vpselq): Likewise.
30464 (vnegq_m): Likewise.
30465 (vcmpgeq_m): Likewise.
30466 (vshrntq_n): Likewise.
30467 (vrshrntq_n): Likewise.
30468 (vmovlbq_m): Likewise.
30469 (vmovnbq_m): Likewise.
30470 (vmovntq_m): Likewise.
30471 (vmvnq_m_n): Likewise.
30472 (vmvnq_m): Likewise.
30473 (vshrnbq_n): Likewise.
30474 (vrshrnbq_n): Likewise.
30475 (vqshruntq_n): Likewise.
30476 (vrev16q_m): Likewise.
30477 (vqshrunbq_n): Likewise.
30478 (vqshrntq_n): Likewise.
30479 (vqrshruntq_n): Likewise.
30480 (vqrshrntq_n): Likewise.
30481 (vqshrnbq_n): Likewise.
30482 (vqmovuntq_m): Likewise.
30483 (vqmovntq_m): Likewise.
30484 (vqmovnbq_m): Likewise.
30485 (vorrq_m_n): Likewise.
30486 (vmovltq_m): Likewise.
30487 (vqmovunbq_m): Likewise.
30488 (vaddlvaq_p): Likewise.
30489 (vmlaldavaq): Likewise.
30490 (vmlaldavaxq): Likewise.
30491 (vmlaldavq_p): Likewise.
30492 (vmlaldavxq_p): Likewise.
30493 (vmlsldavaq): Likewise.
30494 (vmlsldavaxq): Likewise.
30495 (vmlsldavq_p): Likewise.
30496 (vmlsldavxq_p): Likewise.
30497 (vrmlaldavhaxq): Likewise.
30498 (vrmlaldavhq_p): Likewise.
30499 (vrmlaldavhxq_p): Likewise.
30500 (vrmlsldavhaq): Likewise.
30501 (vrmlsldavhaxq): Likewise.
30502 (vrmlsldavhq_p): Likewise.
30503 (vrmlsldavhxq_p): Likewise.
30504 * config/arm/arm_mve_builtins.def (TERNOP_NONE_NONE_IMM_UNONE): Use
30506 (TERNOP_NONE_NONE_NONE_IMM): Likewise.
30507 (TERNOP_NONE_NONE_NONE_NONE): Likewise.
30508 (TERNOP_NONE_NONE_NONE_UNONE): Likewise.
30509 (TERNOP_UNONE_NONE_NONE_UNONE): Likewise.
30510 (TERNOP_UNONE_UNONE_IMM_UNONE): Likewise.
30511 (TERNOP_UNONE_UNONE_NONE_IMM): Likewise.
30512 (TERNOP_UNONE_UNONE_NONE_UNONE): Likewise.
30513 (TERNOP_UNONE_UNONE_UNONE_IMM): Likewise.
30514 (TERNOP_UNONE_UNONE_UNONE_UNONE): Likewise.
30515 * config/arm/mve.md (MVE_constraint3): Define mode attribute iterator.
30516 (MVE_pred3): Likewise.
30517 (MVE_constraint1): Likewise.
30518 (MVE_pred1): Likewise.
30519 (VMLALDAVQ_P): Define iterator.
30520 (VQMOVNBQ_M): Likewise.
30521 (VMOVLTQ_M): Likewise.
30522 (VMOVNBQ_M): Likewise.
30523 (VRSHRNTQ_N): Likewise.
30524 (VORRQ_M_N): Likewise.
30525 (VREV32Q_M): Likewise.
30526 (VREV16Q_M): Likewise.
30527 (VQRSHRNTQ_N): Likewise.
30528 (VMOVNTQ_M): Likewise.
30529 (VMOVLBQ_M): Likewise.
30530 (VMLALDAVAQ): Likewise.
30531 (VQSHRNBQ_N): Likewise.
30532 (VSHRNBQ_N): Likewise.
30533 (VRSHRNBQ_N): Likewise.
30534 (VMLALDAVXQ_P): Likewise.
30535 (VQMOVNTQ_M): Likewise.
30536 (VMVNQ_M_N): Likewise.
30537 (VQSHRNTQ_N): Likewise.
30538 (VMLALDAVAXQ): Likewise.
30539 (VSHRNTQ_N): Likewise.
30540 (VCVTMQ_M): Likewise.
30541 (VCVTNQ_M): Likewise.
30542 (VCVTPQ_M): Likewise.
30543 (VCVTQ_M_N_FROM_F): Likewise.
30544 (VCVTQ_M_FROM_F): Likewise.
30545 (VRMLALDAVHQ_P): Likewise.
30546 (VADDLVAQ_P): Likewise.
30547 (mve_vrndq_m_f<mode>): Define RTL pattern.
30548 (mve_vabsq_m_f<mode>): Likewise.
30549 (mve_vaddlvaq_p_<supf>v4si): Likewise.
30550 (mve_vcmlaq_f<mode>): Likewise.
30551 (mve_vcmlaq_rot180_f<mode>): Likewise.
30552 (mve_vcmlaq_rot270_f<mode>): Likewise.
30553 (mve_vcmlaq_rot90_f<mode>): Likewise.
30554 (mve_vcmpeqq_m_n_f<mode>): Likewise.
30555 (mve_vcmpgeq_m_f<mode>): Likewise.
30556 (mve_vcmpgeq_m_n_f<mode>): Likewise.
30557 (mve_vcmpgtq_m_f<mode>): Likewise.
30558 (mve_vcmpgtq_m_n_f<mode>): Likewise.
30559 (mve_vcmpleq_m_f<mode>): Likewise.
30560 (mve_vcmpleq_m_n_f<mode>): Likewise.
30561 (mve_vcmpltq_m_f<mode>): Likewise.
30562 (mve_vcmpltq_m_n_f<mode>): Likewise.
30563 (mve_vcmpneq_m_f<mode>): Likewise.
30564 (mve_vcmpneq_m_n_f<mode>): Likewise.
30565 (mve_vcvtbq_m_f16_f32v8hf): Likewise.
30566 (mve_vcvtbq_m_f32_f16v4sf): Likewise.
30567 (mve_vcvttq_m_f16_f32v8hf): Likewise.
30568 (mve_vcvttq_m_f32_f16v4sf): Likewise.
30569 (mve_vdupq_m_n_f<mode>): Likewise.
30570 (mve_vfmaq_f<mode>): Likewise.
30571 (mve_vfmaq_n_f<mode>): Likewise.
30572 (mve_vfmasq_n_f<mode>): Likewise.
30573 (mve_vfmsq_f<mode>): Likewise.
30574 (mve_vmaxnmaq_m_f<mode>): Likewise.
30575 (mve_vmaxnmavq_p_f<mode>): Likewise.
30576 (mve_vmaxnmvq_p_f<mode>): Likewise.
30577 (mve_vminnmaq_m_f<mode>): Likewise.
30578 (mve_vminnmavq_p_f<mode>): Likewise.
30579 (mve_vminnmvq_p_f<mode>): Likewise.
30580 (mve_vmlaldavaq_<supf><mode>): Likewise.
30581 (mve_vmlaldavaxq_<supf><mode>): Likewise.
30582 (mve_vmlaldavq_p_<supf><mode>): Likewise.
30583 (mve_vmlaldavxq_p_<supf><mode>): Likewise.
30584 (mve_vmlsldavaq_s<mode>): Likewise.
30585 (mve_vmlsldavaxq_s<mode>): Likewise.
30586 (mve_vmlsldavq_p_s<mode>): Likewise.
30587 (mve_vmlsldavxq_p_s<mode>): Likewise.
30588 (mve_vmovlbq_m_<supf><mode>): Likewise.
30589 (mve_vmovltq_m_<supf><mode>): Likewise.
30590 (mve_vmovnbq_m_<supf><mode>): Likewise.
30591 (mve_vmovntq_m_<supf><mode>): Likewise.
30592 (mve_vmvnq_m_n_<supf><mode>): Likewise.
30593 (mve_vnegq_m_f<mode>): Likewise.
30594 (mve_vorrq_m_n_<supf><mode>): Likewise.
30595 (mve_vpselq_f<mode>): Likewise.
30596 (mve_vqmovnbq_m_<supf><mode>): Likewise.
30597 (mve_vqmovntq_m_<supf><mode>): Likewise.
30598 (mve_vqmovunbq_m_s<mode>): Likewise.
30599 (mve_vqmovuntq_m_s<mode>): Likewise.
30600 (mve_vqrshrntq_n_<supf><mode>): Likewise.
30601 (mve_vqrshruntq_n_s<mode>): Likewise.
30602 (mve_vqshrnbq_n_<supf><mode>): Likewise.
30603 (mve_vqshrntq_n_<supf><mode>): Likewise.
30604 (mve_vqshrunbq_n_s<mode>): Likewise.
30605 (mve_vqshruntq_n_s<mode>): Likewise.
30606 (mve_vrev32q_m_fv8hf): Likewise.
30607 (mve_vrev32q_m_<supf><mode>): Likewise.
30608 (mve_vrev64q_m_f<mode>): Likewise.
30609 (mve_vrmlaldavhaxq_sv4si): Likewise.
30610 (mve_vrmlaldavhxq_p_sv4si): Likewise.
30611 (mve_vrmlsldavhaxq_sv4si): Likewise.
30612 (mve_vrmlsldavhq_p_sv4si): Likewise.
30613 (mve_vrmlsldavhxq_p_sv4si): Likewise.
30614 (mve_vrndaq_m_f<mode>): Likewise.
30615 (mve_vrndmq_m_f<mode>): Likewise.
30616 (mve_vrndnq_m_f<mode>): Likewise.
30617 (mve_vrndpq_m_f<mode>): Likewise.
30618 (mve_vrndxq_m_f<mode>): Likewise.
30619 (mve_vrshrnbq_n_<supf><mode>): Likewise.
30620 (mve_vrshrntq_n_<supf><mode>): Likewise.
30621 (mve_vshrnbq_n_<supf><mode>): Likewise.
30622 (mve_vshrntq_n_<supf><mode>): Likewise.
30623 (mve_vcvtmq_m_<supf><mode>): Likewise.
30624 (mve_vcvtpq_m_<supf><mode>): Likewise.
30625 (mve_vcvtnq_m_<supf><mode>): Likewise.
30626 (mve_vcvtq_m_n_from_f_<supf><mode>): Likewise.
30627 (mve_vrev16q_m_<supf>v16qi): Likewise.
30628 (mve_vcvtq_m_from_f_<supf><mode>): Likewise.
30629 (mve_vrmlaldavhq_p_<supf>v4si): Likewise.
30630 (mve_vrmlsldavhaq_sv4si): Likewise.
30632 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
30633 Mihail Ionescu <mihail.ionescu@arm.com>
30634 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
30636 * config/arm/arm_mve.h (vpselq_u8): Define macro.
30637 (vpselq_s8): Likewise.
30638 (vrev64q_m_u8): Likewise.
30639 (vqrdmlashq_n_u8): Likewise.
30640 (vqrdmlahq_n_u8): Likewise.
30641 (vqdmlahq_n_u8): Likewise.
30642 (vmvnq_m_u8): Likewise.
30643 (vmlasq_n_u8): Likewise.
30644 (vmlaq_n_u8): Likewise.
30645 (vmladavq_p_u8): Likewise.
30646 (vmladavaq_u8): Likewise.
30647 (vminvq_p_u8): Likewise.
30648 (vmaxvq_p_u8): Likewise.
30649 (vdupq_m_n_u8): Likewise.
30650 (vcmpneq_m_u8): Likewise.
30651 (vcmpneq_m_n_u8): Likewise.
30652 (vcmphiq_m_u8): Likewise.
30653 (vcmphiq_m_n_u8): Likewise.
30654 (vcmpeqq_m_u8): Likewise.
30655 (vcmpeqq_m_n_u8): Likewise.
30656 (vcmpcsq_m_u8): Likewise.
30657 (vcmpcsq_m_n_u8): Likewise.
30658 (vclzq_m_u8): Likewise.
30659 (vaddvaq_p_u8): Likewise.
30660 (vsriq_n_u8): Likewise.
30661 (vsliq_n_u8): Likewise.
30662 (vshlq_m_r_u8): Likewise.
30663 (vrshlq_m_n_u8): Likewise.
30664 (vqshlq_m_r_u8): Likewise.
30665 (vqrshlq_m_n_u8): Likewise.
30666 (vminavq_p_s8): Likewise.
30667 (vminaq_m_s8): Likewise.
30668 (vmaxavq_p_s8): Likewise.
30669 (vmaxaq_m_s8): Likewise.
30670 (vcmpneq_m_s8): Likewise.
30671 (vcmpneq_m_n_s8): Likewise.
30672 (vcmpltq_m_s8): Likewise.
30673 (vcmpltq_m_n_s8): Likewise.
30674 (vcmpleq_m_s8): Likewise.
30675 (vcmpleq_m_n_s8): Likewise.
30676 (vcmpgtq_m_s8): Likewise.
30677 (vcmpgtq_m_n_s8): Likewise.
30678 (vcmpgeq_m_s8): Likewise.
30679 (vcmpgeq_m_n_s8): Likewise.
30680 (vcmpeqq_m_s8): Likewise.
30681 (vcmpeqq_m_n_s8): Likewise.
30682 (vshlq_m_r_s8): Likewise.
30683 (vrshlq_m_n_s8): Likewise.
30684 (vrev64q_m_s8): Likewise.
30685 (vqshlq_m_r_s8): Likewise.
30686 (vqrshlq_m_n_s8): Likewise.
30687 (vqnegq_m_s8): Likewise.
30688 (vqabsq_m_s8): Likewise.
30689 (vnegq_m_s8): Likewise.
30690 (vmvnq_m_s8): Likewise.
30691 (vmlsdavxq_p_s8): Likewise.
30692 (vmlsdavq_p_s8): Likewise.
30693 (vmladavxq_p_s8): Likewise.
30694 (vmladavq_p_s8): Likewise.
30695 (vminvq_p_s8): Likewise.
30696 (vmaxvq_p_s8): Likewise.
30697 (vdupq_m_n_s8): Likewise.
30698 (vclzq_m_s8): Likewise.
30699 (vclsq_m_s8): Likewise.
30700 (vaddvaq_p_s8): Likewise.
30701 (vabsq_m_s8): Likewise.
30702 (vqrdmlsdhxq_s8): Likewise.
30703 (vqrdmlsdhq_s8): Likewise.
30704 (vqrdmlashq_n_s8): Likewise.
30705 (vqrdmlahq_n_s8): Likewise.
30706 (vqrdmladhxq_s8): Likewise.
30707 (vqrdmladhq_s8): Likewise.
30708 (vqdmlsdhxq_s8): Likewise.
30709 (vqdmlsdhq_s8): Likewise.
30710 (vqdmlahq_n_s8): Likewise.
30711 (vqdmladhxq_s8): Likewise.
30712 (vqdmladhq_s8): Likewise.
30713 (vmlsdavaxq_s8): Likewise.
30714 (vmlsdavaq_s8): Likewise.
30715 (vmlasq_n_s8): Likewise.
30716 (vmlaq_n_s8): Likewise.
30717 (vmladavaxq_s8): Likewise.
30718 (vmladavaq_s8): Likewise.
30719 (vsriq_n_s8): Likewise.
30720 (vsliq_n_s8): Likewise.
30721 (vpselq_u16): Likewise.
30722 (vpselq_s16): Likewise.
30723 (vrev64q_m_u16): Likewise.
30724 (vqrdmlashq_n_u16): Likewise.
30725 (vqrdmlahq_n_u16): Likewise.
30726 (vqdmlahq_n_u16): Likewise.
30727 (vmvnq_m_u16): Likewise.
30728 (vmlasq_n_u16): Likewise.
30729 (vmlaq_n_u16): Likewise.
30730 (vmladavq_p_u16): Likewise.
30731 (vmladavaq_u16): Likewise.
30732 (vminvq_p_u16): Likewise.
30733 (vmaxvq_p_u16): Likewise.
30734 (vdupq_m_n_u16): Likewise.
30735 (vcmpneq_m_u16): Likewise.
30736 (vcmpneq_m_n_u16): Likewise.
30737 (vcmphiq_m_u16): Likewise.
30738 (vcmphiq_m_n_u16): Likewise.
30739 (vcmpeqq_m_u16): Likewise.
30740 (vcmpeqq_m_n_u16): Likewise.
30741 (vcmpcsq_m_u16): Likewise.
30742 (vcmpcsq_m_n_u16): Likewise.
30743 (vclzq_m_u16): Likewise.
30744 (vaddvaq_p_u16): Likewise.
30745 (vsriq_n_u16): Likewise.
30746 (vsliq_n_u16): Likewise.
30747 (vshlq_m_r_u16): Likewise.
30748 (vrshlq_m_n_u16): Likewise.
30749 (vqshlq_m_r_u16): Likewise.
30750 (vqrshlq_m_n_u16): Likewise.
30751 (vminavq_p_s16): Likewise.
30752 (vminaq_m_s16): Likewise.
30753 (vmaxavq_p_s16): Likewise.
30754 (vmaxaq_m_s16): Likewise.
30755 (vcmpneq_m_s16): Likewise.
30756 (vcmpneq_m_n_s16): Likewise.
30757 (vcmpltq_m_s16): Likewise.
30758 (vcmpltq_m_n_s16): Likewise.
30759 (vcmpleq_m_s16): Likewise.
30760 (vcmpleq_m_n_s16): Likewise.
30761 (vcmpgtq_m_s16): Likewise.
30762 (vcmpgtq_m_n_s16): Likewise.
30763 (vcmpgeq_m_s16): Likewise.
30764 (vcmpgeq_m_n_s16): Likewise.
30765 (vcmpeqq_m_s16): Likewise.
30766 (vcmpeqq_m_n_s16): Likewise.
30767 (vshlq_m_r_s16): Likewise.
30768 (vrshlq_m_n_s16): Likewise.
30769 (vrev64q_m_s16): Likewise.
30770 (vqshlq_m_r_s16): Likewise.
30771 (vqrshlq_m_n_s16): Likewise.
30772 (vqnegq_m_s16): Likewise.
30773 (vqabsq_m_s16): Likewise.
30774 (vnegq_m_s16): Likewise.
30775 (vmvnq_m_s16): Likewise.
30776 (vmlsdavxq_p_s16): Likewise.
30777 (vmlsdavq_p_s16): Likewise.
30778 (vmladavxq_p_s16): Likewise.
30779 (vmladavq_p_s16): Likewise.
30780 (vminvq_p_s16): Likewise.
30781 (vmaxvq_p_s16): Likewise.
30782 (vdupq_m_n_s16): Likewise.
30783 (vclzq_m_s16): Likewise.
30784 (vclsq_m_s16): Likewise.
30785 (vaddvaq_p_s16): Likewise.
30786 (vabsq_m_s16): Likewise.
30787 (vqrdmlsdhxq_s16): Likewise.
30788 (vqrdmlsdhq_s16): Likewise.
30789 (vqrdmlashq_n_s16): Likewise.
30790 (vqrdmlahq_n_s16): Likewise.
30791 (vqrdmladhxq_s16): Likewise.
30792 (vqrdmladhq_s16): Likewise.
30793 (vqdmlsdhxq_s16): Likewise.
30794 (vqdmlsdhq_s16): Likewise.
30795 (vqdmlahq_n_s16): Likewise.
30796 (vqdmladhxq_s16): Likewise.
30797 (vqdmladhq_s16): Likewise.
30798 (vmlsdavaxq_s16): Likewise.
30799 (vmlsdavaq_s16): Likewise.
30800 (vmlasq_n_s16): Likewise.
30801 (vmlaq_n_s16): Likewise.
30802 (vmladavaxq_s16): Likewise.
30803 (vmladavaq_s16): Likewise.
30804 (vsriq_n_s16): Likewise.
30805 (vsliq_n_s16): Likewise.
30806 (vpselq_u32): Likewise.
30807 (vpselq_s32): Likewise.
30808 (vrev64q_m_u32): Likewise.
30809 (vqrdmlashq_n_u32): Likewise.
30810 (vqrdmlahq_n_u32): Likewise.
30811 (vqdmlahq_n_u32): Likewise.
30812 (vmvnq_m_u32): Likewise.
30813 (vmlasq_n_u32): Likewise.
30814 (vmlaq_n_u32): Likewise.
30815 (vmladavq_p_u32): Likewise.
30816 (vmladavaq_u32): Likewise.
30817 (vminvq_p_u32): Likewise.
30818 (vmaxvq_p_u32): Likewise.
30819 (vdupq_m_n_u32): Likewise.
30820 (vcmpneq_m_u32): Likewise.
30821 (vcmpneq_m_n_u32): Likewise.
30822 (vcmphiq_m_u32): Likewise.
30823 (vcmphiq_m_n_u32): Likewise.
30824 (vcmpeqq_m_u32): Likewise.
30825 (vcmpeqq_m_n_u32): Likewise.
30826 (vcmpcsq_m_u32): Likewise.
30827 (vcmpcsq_m_n_u32): Likewise.
30828 (vclzq_m_u32): Likewise.
30829 (vaddvaq_p_u32): Likewise.
30830 (vsriq_n_u32): Likewise.
30831 (vsliq_n_u32): Likewise.
30832 (vshlq_m_r_u32): Likewise.
30833 (vrshlq_m_n_u32): Likewise.
30834 (vqshlq_m_r_u32): Likewise.
30835 (vqrshlq_m_n_u32): Likewise.
30836 (vminavq_p_s32): Likewise.
30837 (vminaq_m_s32): Likewise.
30838 (vmaxavq_p_s32): Likewise.
30839 (vmaxaq_m_s32): Likewise.
30840 (vcmpneq_m_s32): Likewise.
30841 (vcmpneq_m_n_s32): Likewise.
30842 (vcmpltq_m_s32): Likewise.
30843 (vcmpltq_m_n_s32): Likewise.
30844 (vcmpleq_m_s32): Likewise.
30845 (vcmpleq_m_n_s32): Likewise.
30846 (vcmpgtq_m_s32): Likewise.
30847 (vcmpgtq_m_n_s32): Likewise.
30848 (vcmpgeq_m_s32): Likewise.
30849 (vcmpgeq_m_n_s32): Likewise.
30850 (vcmpeqq_m_s32): Likewise.
30851 (vcmpeqq_m_n_s32): Likewise.
30852 (vshlq_m_r_s32): Likewise.
30853 (vrshlq_m_n_s32): Likewise.
30854 (vrev64q_m_s32): Likewise.
30855 (vqshlq_m_r_s32): Likewise.
30856 (vqrshlq_m_n_s32): Likewise.
30857 (vqnegq_m_s32): Likewise.
30858 (vqabsq_m_s32): Likewise.
30859 (vnegq_m_s32): Likewise.
30860 (vmvnq_m_s32): Likewise.
30861 (vmlsdavxq_p_s32): Likewise.
30862 (vmlsdavq_p_s32): Likewise.
30863 (vmladavxq_p_s32): Likewise.
30864 (vmladavq_p_s32): Likewise.
30865 (vminvq_p_s32): Likewise.
30866 (vmaxvq_p_s32): Likewise.
30867 (vdupq_m_n_s32): Likewise.
30868 (vclzq_m_s32): Likewise.
30869 (vclsq_m_s32): Likewise.
30870 (vaddvaq_p_s32): Likewise.
30871 (vabsq_m_s32): Likewise.
30872 (vqrdmlsdhxq_s32): Likewise.
30873 (vqrdmlsdhq_s32): Likewise.
30874 (vqrdmlashq_n_s32): Likewise.
30875 (vqrdmlahq_n_s32): Likewise.
30876 (vqrdmladhxq_s32): Likewise.
30877 (vqrdmladhq_s32): Likewise.
30878 (vqdmlsdhxq_s32): Likewise.
30879 (vqdmlsdhq_s32): Likewise.
30880 (vqdmlahq_n_s32): Likewise.
30881 (vqdmladhxq_s32): Likewise.
30882 (vqdmladhq_s32): Likewise.
30883 (vmlsdavaxq_s32): Likewise.
30884 (vmlsdavaq_s32): Likewise.
30885 (vmlasq_n_s32): Likewise.
30886 (vmlaq_n_s32): Likewise.
30887 (vmladavaxq_s32): Likewise.
30888 (vmladavaq_s32): Likewise.
30889 (vsriq_n_s32): Likewise.
30890 (vsliq_n_s32): Likewise.
30891 (vpselq_u64): Likewise.
30892 (vpselq_s64): Likewise.
30893 (__arm_vpselq_u8): Define intrinsic.
30894 (__arm_vpselq_s8): Likewise.
30895 (__arm_vrev64q_m_u8): Likewise.
30896 (__arm_vqrdmlashq_n_u8): Likewise.
30897 (__arm_vqrdmlahq_n_u8): Likewise.
30898 (__arm_vqdmlahq_n_u8): Likewise.
30899 (__arm_vmvnq_m_u8): Likewise.
30900 (__arm_vmlasq_n_u8): Likewise.
30901 (__arm_vmlaq_n_u8): Likewise.
30902 (__arm_vmladavq_p_u8): Likewise.
30903 (__arm_vmladavaq_u8): Likewise.
30904 (__arm_vminvq_p_u8): Likewise.
30905 (__arm_vmaxvq_p_u8): Likewise.
30906 (__arm_vdupq_m_n_u8): Likewise.
30907 (__arm_vcmpneq_m_u8): Likewise.
30908 (__arm_vcmpneq_m_n_u8): Likewise.
30909 (__arm_vcmphiq_m_u8): Likewise.
30910 (__arm_vcmphiq_m_n_u8): Likewise.
30911 (__arm_vcmpeqq_m_u8): Likewise.
30912 (__arm_vcmpeqq_m_n_u8): Likewise.
30913 (__arm_vcmpcsq_m_u8): Likewise.
30914 (__arm_vcmpcsq_m_n_u8): Likewise.
30915 (__arm_vclzq_m_u8): Likewise.
30916 (__arm_vaddvaq_p_u8): Likewise.
30917 (__arm_vsriq_n_u8): Likewise.
30918 (__arm_vsliq_n_u8): Likewise.
30919 (__arm_vshlq_m_r_u8): Likewise.
30920 (__arm_vrshlq_m_n_u8): Likewise.
30921 (__arm_vqshlq_m_r_u8): Likewise.
30922 (__arm_vqrshlq_m_n_u8): Likewise.
30923 (__arm_vminavq_p_s8): Likewise.
30924 (__arm_vminaq_m_s8): Likewise.
30925 (__arm_vmaxavq_p_s8): Likewise.
30926 (__arm_vmaxaq_m_s8): Likewise.
30927 (__arm_vcmpneq_m_s8): Likewise.
30928 (__arm_vcmpneq_m_n_s8): Likewise.
30929 (__arm_vcmpltq_m_s8): Likewise.
30930 (__arm_vcmpltq_m_n_s8): Likewise.
30931 (__arm_vcmpleq_m_s8): Likewise.
30932 (__arm_vcmpleq_m_n_s8): Likewise.
30933 (__arm_vcmpgtq_m_s8): Likewise.
30934 (__arm_vcmpgtq_m_n_s8): Likewise.
30935 (__arm_vcmpgeq_m_s8): Likewise.
30936 (__arm_vcmpgeq_m_n_s8): Likewise.
30937 (__arm_vcmpeqq_m_s8): Likewise.
30938 (__arm_vcmpeqq_m_n_s8): Likewise.
30939 (__arm_vshlq_m_r_s8): Likewise.
30940 (__arm_vrshlq_m_n_s8): Likewise.
30941 (__arm_vrev64q_m_s8): Likewise.
30942 (__arm_vqshlq_m_r_s8): Likewise.
30943 (__arm_vqrshlq_m_n_s8): Likewise.
30944 (__arm_vqnegq_m_s8): Likewise.
30945 (__arm_vqabsq_m_s8): Likewise.
30946 (__arm_vnegq_m_s8): Likewise.
30947 (__arm_vmvnq_m_s8): Likewise.
30948 (__arm_vmlsdavxq_p_s8): Likewise.
30949 (__arm_vmlsdavq_p_s8): Likewise.
30950 (__arm_vmladavxq_p_s8): Likewise.
30951 (__arm_vmladavq_p_s8): Likewise.
30952 (__arm_vminvq_p_s8): Likewise.
30953 (__arm_vmaxvq_p_s8): Likewise.
30954 (__arm_vdupq_m_n_s8): Likewise.
30955 (__arm_vclzq_m_s8): Likewise.
30956 (__arm_vclsq_m_s8): Likewise.
30957 (__arm_vaddvaq_p_s8): Likewise.
30958 (__arm_vabsq_m_s8): Likewise.
30959 (__arm_vqrdmlsdhxq_s8): Likewise.
30960 (__arm_vqrdmlsdhq_s8): Likewise.
30961 (__arm_vqrdmlashq_n_s8): Likewise.
30962 (__arm_vqrdmlahq_n_s8): Likewise.
30963 (__arm_vqrdmladhxq_s8): Likewise.
30964 (__arm_vqrdmladhq_s8): Likewise.
30965 (__arm_vqdmlsdhxq_s8): Likewise.
30966 (__arm_vqdmlsdhq_s8): Likewise.
30967 (__arm_vqdmlahq_n_s8): Likewise.
30968 (__arm_vqdmladhxq_s8): Likewise.
30969 (__arm_vqdmladhq_s8): Likewise.
30970 (__arm_vmlsdavaxq_s8): Likewise.
30971 (__arm_vmlsdavaq_s8): Likewise.
30972 (__arm_vmlasq_n_s8): Likewise.
30973 (__arm_vmlaq_n_s8): Likewise.
30974 (__arm_vmladavaxq_s8): Likewise.
30975 (__arm_vmladavaq_s8): Likewise.
30976 (__arm_vsriq_n_s8): Likewise.
30977 (__arm_vsliq_n_s8): Likewise.
30978 (__arm_vpselq_u16): Likewise.
30979 (__arm_vpselq_s16): Likewise.
30980 (__arm_vrev64q_m_u16): Likewise.
30981 (__arm_vqrdmlashq_n_u16): Likewise.
30982 (__arm_vqrdmlahq_n_u16): Likewise.
30983 (__arm_vqdmlahq_n_u16): Likewise.
30984 (__arm_vmvnq_m_u16): Likewise.
30985 (__arm_vmlasq_n_u16): Likewise.
30986 (__arm_vmlaq_n_u16): Likewise.
30987 (__arm_vmladavq_p_u16): Likewise.
30988 (__arm_vmladavaq_u16): Likewise.
30989 (__arm_vminvq_p_u16): Likewise.
30990 (__arm_vmaxvq_p_u16): Likewise.
30991 (__arm_vdupq_m_n_u16): Likewise.
30992 (__arm_vcmpneq_m_u16): Likewise.
30993 (__arm_vcmpneq_m_n_u16): Likewise.
30994 (__arm_vcmphiq_m_u16): Likewise.
30995 (__arm_vcmphiq_m_n_u16): Likewise.
30996 (__arm_vcmpeqq_m_u16): Likewise.
30997 (__arm_vcmpeqq_m_n_u16): Likewise.
30998 (__arm_vcmpcsq_m_u16): Likewise.
30999 (__arm_vcmpcsq_m_n_u16): Likewise.
31000 (__arm_vclzq_m_u16): Likewise.
31001 (__arm_vaddvaq_p_u16): Likewise.
31002 (__arm_vsriq_n_u16): Likewise.
31003 (__arm_vsliq_n_u16): Likewise.
31004 (__arm_vshlq_m_r_u16): Likewise.
31005 (__arm_vrshlq_m_n_u16): Likewise.
31006 (__arm_vqshlq_m_r_u16): Likewise.
31007 (__arm_vqrshlq_m_n_u16): Likewise.
31008 (__arm_vminavq_p_s16): Likewise.
31009 (__arm_vminaq_m_s16): Likewise.
31010 (__arm_vmaxavq_p_s16): Likewise.
31011 (__arm_vmaxaq_m_s16): Likewise.
31012 (__arm_vcmpneq_m_s16): Likewise.
31013 (__arm_vcmpneq_m_n_s16): Likewise.
31014 (__arm_vcmpltq_m_s16): Likewise.
31015 (__arm_vcmpltq_m_n_s16): Likewise.
31016 (__arm_vcmpleq_m_s16): Likewise.
31017 (__arm_vcmpleq_m_n_s16): Likewise.
31018 (__arm_vcmpgtq_m_s16): Likewise.
31019 (__arm_vcmpgtq_m_n_s16): Likewise.
31020 (__arm_vcmpgeq_m_s16): Likewise.
31021 (__arm_vcmpgeq_m_n_s16): Likewise.
31022 (__arm_vcmpeqq_m_s16): Likewise.
31023 (__arm_vcmpeqq_m_n_s16): Likewise.
31024 (__arm_vshlq_m_r_s16): Likewise.
31025 (__arm_vrshlq_m_n_s16): Likewise.
31026 (__arm_vrev64q_m_s16): Likewise.
31027 (__arm_vqshlq_m_r_s16): Likewise.
31028 (__arm_vqrshlq_m_n_s16): Likewise.
31029 (__arm_vqnegq_m_s16): Likewise.
31030 (__arm_vqabsq_m_s16): Likewise.
31031 (__arm_vnegq_m_s16): Likewise.
31032 (__arm_vmvnq_m_s16): Likewise.
31033 (__arm_vmlsdavxq_p_s16): Likewise.
31034 (__arm_vmlsdavq_p_s16): Likewise.
31035 (__arm_vmladavxq_p_s16): Likewise.
31036 (__arm_vmladavq_p_s16): Likewise.
31037 (__arm_vminvq_p_s16): Likewise.
31038 (__arm_vmaxvq_p_s16): Likewise.
31039 (__arm_vdupq_m_n_s16): Likewise.
31040 (__arm_vclzq_m_s16): Likewise.
31041 (__arm_vclsq_m_s16): Likewise.
31042 (__arm_vaddvaq_p_s16): Likewise.
31043 (__arm_vabsq_m_s16): Likewise.
31044 (__arm_vqrdmlsdhxq_s16): Likewise.
31045 (__arm_vqrdmlsdhq_s16): Likewise.
31046 (__arm_vqrdmlashq_n_s16): Likewise.
31047 (__arm_vqrdmlahq_n_s16): Likewise.
31048 (__arm_vqrdmladhxq_s16): Likewise.
31049 (__arm_vqrdmladhq_s16): Likewise.
31050 (__arm_vqdmlsdhxq_s16): Likewise.
31051 (__arm_vqdmlsdhq_s16): Likewise.
31052 (__arm_vqdmlahq_n_s16): Likewise.
31053 (__arm_vqdmladhxq_s16): Likewise.
31054 (__arm_vqdmladhq_s16): Likewise.
31055 (__arm_vmlsdavaxq_s16): Likewise.
31056 (__arm_vmlsdavaq_s16): Likewise.
31057 (__arm_vmlasq_n_s16): Likewise.
31058 (__arm_vmlaq_n_s16): Likewise.
31059 (__arm_vmladavaxq_s16): Likewise.
31060 (__arm_vmladavaq_s16): Likewise.
31061 (__arm_vsriq_n_s16): Likewise.
31062 (__arm_vsliq_n_s16): Likewise.
31063 (__arm_vpselq_u32): Likewise.
31064 (__arm_vpselq_s32): Likewise.
31065 (__arm_vrev64q_m_u32): Likewise.
31066 (__arm_vqrdmlashq_n_u32): Likewise.
31067 (__arm_vqrdmlahq_n_u32): Likewise.
31068 (__arm_vqdmlahq_n_u32): Likewise.
31069 (__arm_vmvnq_m_u32): Likewise.
31070 (__arm_vmlasq_n_u32): Likewise.
31071 (__arm_vmlaq_n_u32): Likewise.
31072 (__arm_vmladavq_p_u32): Likewise.
31073 (__arm_vmladavaq_u32): Likewise.
31074 (__arm_vminvq_p_u32): Likewise.
31075 (__arm_vmaxvq_p_u32): Likewise.
31076 (__arm_vdupq_m_n_u32): Likewise.
31077 (__arm_vcmpneq_m_u32): Likewise.
31078 (__arm_vcmpneq_m_n_u32): Likewise.
31079 (__arm_vcmphiq_m_u32): Likewise.
31080 (__arm_vcmphiq_m_n_u32): Likewise.
31081 (__arm_vcmpeqq_m_u32): Likewise.
31082 (__arm_vcmpeqq_m_n_u32): Likewise.
31083 (__arm_vcmpcsq_m_u32): Likewise.
31084 (__arm_vcmpcsq_m_n_u32): Likewise.
31085 (__arm_vclzq_m_u32): Likewise.
31086 (__arm_vaddvaq_p_u32): Likewise.
31087 (__arm_vsriq_n_u32): Likewise.
31088 (__arm_vsliq_n_u32): Likewise.
31089 (__arm_vshlq_m_r_u32): Likewise.
31090 (__arm_vrshlq_m_n_u32): Likewise.
31091 (__arm_vqshlq_m_r_u32): Likewise.
31092 (__arm_vqrshlq_m_n_u32): Likewise.
31093 (__arm_vminavq_p_s32): Likewise.
31094 (__arm_vminaq_m_s32): Likewise.
31095 (__arm_vmaxavq_p_s32): Likewise.
31096 (__arm_vmaxaq_m_s32): Likewise.
31097 (__arm_vcmpneq_m_s32): Likewise.
31098 (__arm_vcmpneq_m_n_s32): Likewise.
31099 (__arm_vcmpltq_m_s32): Likewise.
31100 (__arm_vcmpltq_m_n_s32): Likewise.
31101 (__arm_vcmpleq_m_s32): Likewise.
31102 (__arm_vcmpleq_m_n_s32): Likewise.
31103 (__arm_vcmpgtq_m_s32): Likewise.
31104 (__arm_vcmpgtq_m_n_s32): Likewise.
31105 (__arm_vcmpgeq_m_s32): Likewise.
31106 (__arm_vcmpgeq_m_n_s32): Likewise.
31107 (__arm_vcmpeqq_m_s32): Likewise.
31108 (__arm_vcmpeqq_m_n_s32): Likewise.
31109 (__arm_vshlq_m_r_s32): Likewise.
31110 (__arm_vrshlq_m_n_s32): Likewise.
31111 (__arm_vrev64q_m_s32): Likewise.
31112 (__arm_vqshlq_m_r_s32): Likewise.
31113 (__arm_vqrshlq_m_n_s32): Likewise.
31114 (__arm_vqnegq_m_s32): Likewise.
31115 (__arm_vqabsq_m_s32): Likewise.
31116 (__arm_vnegq_m_s32): Likewise.
31117 (__arm_vmvnq_m_s32): Likewise.
31118 (__arm_vmlsdavxq_p_s32): Likewise.
31119 (__arm_vmlsdavq_p_s32): Likewise.
31120 (__arm_vmladavxq_p_s32): Likewise.
31121 (__arm_vmladavq_p_s32): Likewise.
31122 (__arm_vminvq_p_s32): Likewise.
31123 (__arm_vmaxvq_p_s32): Likewise.
31124 (__arm_vdupq_m_n_s32): Likewise.
31125 (__arm_vclzq_m_s32): Likewise.
31126 (__arm_vclsq_m_s32): Likewise.
31127 (__arm_vaddvaq_p_s32): Likewise.
31128 (__arm_vabsq_m_s32): Likewise.
31129 (__arm_vqrdmlsdhxq_s32): Likewise.
31130 (__arm_vqrdmlsdhq_s32): Likewise.
31131 (__arm_vqrdmlashq_n_s32): Likewise.
31132 (__arm_vqrdmlahq_n_s32): Likewise.
31133 (__arm_vqrdmladhxq_s32): Likewise.
31134 (__arm_vqrdmladhq_s32): Likewise.
31135 (__arm_vqdmlsdhxq_s32): Likewise.
31136 (__arm_vqdmlsdhq_s32): Likewise.
31137 (__arm_vqdmlahq_n_s32): Likewise.
31138 (__arm_vqdmladhxq_s32): Likewise.
31139 (__arm_vqdmladhq_s32): Likewise.
31140 (__arm_vmlsdavaxq_s32): Likewise.
31141 (__arm_vmlsdavaq_s32): Likewise.
31142 (__arm_vmlasq_n_s32): Likewise.
31143 (__arm_vmlaq_n_s32): Likewise.
31144 (__arm_vmladavaxq_s32): Likewise.
31145 (__arm_vmladavaq_s32): Likewise.
31146 (__arm_vsriq_n_s32): Likewise.
31147 (__arm_vsliq_n_s32): Likewise.
31148 (__arm_vpselq_u64): Likewise.
31149 (__arm_vpselq_s64): Likewise.
31150 (vcmpneq_m_n): Define polymorphic variant.
31151 (vcmpneq_m): Likewise.
31152 (vqrdmlsdhq): Likewise.
31153 (vqrdmlsdhxq): Likewise.
31154 (vqrshlq_m_n): Likewise.
31155 (vqshlq_m_r): Likewise.
31156 (vrev64q_m): Likewise.
31157 (vrshlq_m_n): Likewise.
31158 (vshlq_m_r): Likewise.
31159 (vsliq_n): Likewise.
31160 (vsriq_n): Likewise.
31161 (vqrdmlashq_n): Likewise.
31162 (vqrdmlahq): Likewise.
31163 (vqrdmladhxq): Likewise.
31164 (vqrdmladhq): Likewise.
31165 (vqnegq_m): Likewise.
31166 (vqdmlsdhxq): Likewise.
31167 (vabsq_m): Likewise.
31168 (vclsq_m): Likewise.
31169 (vclzq_m): Likewise.
31170 (vcmpgeq_m): Likewise.
31171 (vcmpgeq_m_n): Likewise.
31172 (vdupq_m_n): Likewise.
31173 (vmaxaq_m): Likewise.
31174 (vmlaq_n): Likewise.
31175 (vmlasq_n): Likewise.
31176 (vmvnq_m): Likewise.
31177 (vnegq_m): Likewise.
31178 (vpselq): Likewise.
31179 (vqdmlahq_n): Likewise.
31180 (vqrdmlahq_n): Likewise.
31181 (vqdmlsdhq): Likewise.
31182 (vqdmladhq): Likewise.
31183 (vqabsq_m): Likewise.
31184 (vminaq_m): Likewise.
31185 (vrmlaldavhaq): Likewise.
31186 (vmlsdavxq_p): Likewise.
31187 (vmlsdavq_p): Likewise.
31188 (vmlsdavaxq): Likewise.
31189 (vmlsdavaq): Likewise.
31190 (vaddvaq_p): Likewise.
31191 (vcmpcsq_m_n): Likewise.
31192 (vcmpcsq_m): Likewise.
31193 (vcmpeqq_m_n): Likewise.
31194 (vcmpeqq_m): Likewise.
31195 (vmladavxq_p): Likewise.
31196 (vmladavq_p): Likewise.
31197 (vmladavaxq): Likewise.
31198 (vmladavaq): Likewise.
31199 (vminvq_p): Likewise.
31200 (vminavq_p): Likewise.
31201 (vmaxvq_p): Likewise.
31202 (vmaxavq_p): Likewise.
31203 (vcmpltq_m_n): Likewise.
31204 (vcmpltq_m): Likewise.
31205 (vcmpleq_m): Likewise.
31206 (vcmpleq_m_n): Likewise.
31207 (vcmphiq_m_n): Likewise.
31208 (vcmphiq_m): Likewise.
31209 (vcmpgtq_m_n): Likewise.
31210 (vcmpgtq_m): Likewise.
31211 * config/arm/arm_mve_builtins.def (TERNOP_NONE_NONE_NONE_IMM): Use
31213 (TERNOP_NONE_NONE_NONE_NONE): Likewise.
31214 (TERNOP_NONE_NONE_NONE_UNONE): Likewise.
31215 (TERNOP_UNONE_NONE_NONE_UNONE): Likewise.
31216 (TERNOP_UNONE_UNONE_NONE_UNONE): Likewise.
31217 (TERNOP_UNONE_UNONE_UNONE_IMM): Likewise.
31218 (TERNOP_UNONE_UNONE_UNONE_UNONE): Likewise.
31219 * config/arm/constraints.md (Rc): Define constraint to check constant is
31220 in the range of 0 to 15.
31221 (Re): Define constraint to check constant is in the range of 0 to 31.
31222 * config/arm/mve.md (VADDVAQ_P): Define iterator.
31223 (VCLZQ_M): Likewise.
31224 (VCMPEQQ_M_N): Likewise.
31225 (VCMPEQQ_M): Likewise.
31226 (VCMPNEQ_M_N): Likewise.
31227 (VCMPNEQ_M): Likewise.
31228 (VDUPQ_M_N): Likewise.
31229 (VMAXVQ_P): Likewise.
31230 (VMINVQ_P): Likewise.
31231 (VMLADAVAQ): Likewise.
31232 (VMLADAVQ_P): Likewise.
31233 (VMLAQ_N): Likewise.
31234 (VMLASQ_N): Likewise.
31235 (VMVNQ_M): Likewise.
31236 (VPSELQ): Likewise.
31237 (VQDMLAHQ_N): Likewise.
31238 (VQRDMLAHQ_N): Likewise.
31239 (VQRDMLASHQ_N): Likewise.
31240 (VQRSHLQ_M_N): Likewise.
31241 (VQSHLQ_M_R): Likewise.
31242 (VREV64Q_M): Likewise.
31243 (VRSHLQ_M_N): Likewise.
31244 (VSHLQ_M_R): Likewise.
31245 (VSLIQ_N): Likewise.
31246 (VSRIQ_N): Likewise.
31247 (mve_vabsq_m_s<mode>): Define RTL pattern.
31248 (mve_vaddvaq_p_<supf><mode>): Likewise.
31249 (mve_vclsq_m_s<mode>): Likewise.
31250 (mve_vclzq_m_<supf><mode>): Likewise.
31251 (mve_vcmpcsq_m_n_u<mode>): Likewise.
31252 (mve_vcmpcsq_m_u<mode>): Likewise.
31253 (mve_vcmpeqq_m_n_<supf><mode>): Likewise.
31254 (mve_vcmpeqq_m_<supf><mode>): Likewise.
31255 (mve_vcmpgeq_m_n_s<mode>): Likewise.
31256 (mve_vcmpgeq_m_s<mode>): Likewise.
31257 (mve_vcmpgtq_m_n_s<mode>): Likewise.
31258 (mve_vcmpgtq_m_s<mode>): Likewise.
31259 (mve_vcmphiq_m_n_u<mode>): Likewise.
31260 (mve_vcmphiq_m_u<mode>): Likewise.
31261 (mve_vcmpleq_m_n_s<mode>): Likewise.
31262 (mve_vcmpleq_m_s<mode>): Likewise.
31263 (mve_vcmpltq_m_n_s<mode>): Likewise.
31264 (mve_vcmpltq_m_s<mode>): Likewise.
31265 (mve_vcmpneq_m_n_<supf><mode>): Likewise.
31266 (mve_vcmpneq_m_<supf><mode>): Likewise.
31267 (mve_vdupq_m_n_<supf><mode>): Likewise.
31268 (mve_vmaxaq_m_s<mode>): Likewise.
31269 (mve_vmaxavq_p_s<mode>): Likewise.
31270 (mve_vmaxvq_p_<supf><mode>): Likewise.
31271 (mve_vminaq_m_s<mode>): Likewise.
31272 (mve_vminavq_p_s<mode>): Likewise.
31273 (mve_vminvq_p_<supf><mode>): Likewise.
31274 (mve_vmladavaq_<supf><mode>): Likewise.
31275 (mve_vmladavq_p_<supf><mode>): Likewise.
31276 (mve_vmladavxq_p_s<mode>): Likewise.
31277 (mve_vmlaq_n_<supf><mode>): Likewise.
31278 (mve_vmlasq_n_<supf><mode>): Likewise.
31279 (mve_vmlsdavq_p_s<mode>): Likewise.
31280 (mve_vmlsdavxq_p_s<mode>): Likewise.
31281 (mve_vmvnq_m_<supf><mode>): Likewise.
31282 (mve_vnegq_m_s<mode>): Likewise.
31283 (mve_vpselq_<supf><mode>): Likewise.
31284 (mve_vqabsq_m_s<mode>): Likewise.
31285 (mve_vqdmlahq_n_<supf><mode>): Likewise.
31286 (mve_vqnegq_m_s<mode>): Likewise.
31287 (mve_vqrdmladhq_s<mode>): Likewise.
31288 (mve_vqrdmladhxq_s<mode>): Likewise.
31289 (mve_vqrdmlahq_n_<supf><mode>): Likewise.
31290 (mve_vqrdmlashq_n_<supf><mode>): Likewise.
31291 (mve_vqrdmlsdhq_s<mode>): Likewise.
31292 (mve_vqrdmlsdhxq_s<mode>): Likewise.
31293 (mve_vqrshlq_m_n_<supf><mode>): Likewise.
31294 (mve_vqshlq_m_r_<supf><mode>): Likewise.
31295 (mve_vrev64q_m_<supf><mode>): Likewise.
31296 (mve_vrshlq_m_n_<supf><mode>): Likewise.
31297 (mve_vshlq_m_r_<supf><mode>): Likewise.
31298 (mve_vsliq_n_<supf><mode>): Likewise.
31299 (mve_vsriq_n_<supf><mode>): Likewise.
31300 (mve_vqdmlsdhxq_s<mode>): Likewise.
31301 (mve_vqdmlsdhq_s<mode>): Likewise.
31302 (mve_vqdmladhxq_s<mode>): Likewise.
31303 (mve_vqdmladhq_s<mode>): Likewise.
31304 (mve_vmlsdavaxq_s<mode>): Likewise.
31305 (mve_vmlsdavaq_s<mode>): Likewise.
31306 (mve_vmladavaxq_s<mode>): Likewise.
31307 * config/arm/predicates.md (mve_imm_15):Define predicate to check the
31308 matching constraint Rc.
31309 (mve_imm_31): Define predicate to check the matching constraint Re.
31311 2020-03-18 Andrew Stubbs <ams@codesourcery.com>
31313 * config/gcn/gcn-valu.md (vec_cmp<mode>di): Set operand 1 to DImode.
31314 (vec_cmp<mode>di_dup): Likewise.
31315 * config/gcn/gcn.h (STORE_FLAG_VALUE): Set to -1.
31317 2020-03-18 Andrew Stubbs <ams@codesourcery.com>
31319 * config/gcn/gcn-valu.md (COND_MODE): Delete.
31320 (COND_INT_MODE): Delete.
31321 (cond_op): Add "mult".
31322 (cond_<expander><mode>): Use VEC_ALLREG_MODE.
31323 (cond_<expander><mode>): Use VEC_ALLREG_INT_MODE.
31325 2020-03-18 Richard Biener <rguenther@suse.de>
31327 PR middle-end/94206
31328 * gimple-fold.c (gimple_fold_builtin_memset): Avoid using
31329 partial int modes or not mode-precision integer types for
31332 2020-03-18 Jakub Jelinek <jakub@redhat.com>
31334 * asan.c (get_mem_refs_of_builtin_call): Fix up duplicated word issue
31336 * config/arc/arc.c (frame_stack_add): Likewise.
31337 * gimple-loop-versioning.cc (loop_versioning::analyze_arbitrary_term):
31339 * ipa-predicate.c (predicate::remap_after_inlining): Likewise.
31340 * tree-ssa-strlen.h (handle_printf_call): Likewise.
31341 * tree-ssa-strlen.c (is_strlen_related_p): Likewise.
31342 * optinfo-emit-json.cc (optrecord_json_writer::add_record): Likewise.
31344 2020-03-18 Duan bo <duanbo3@huawei.com>
31347 * config/aarch64/aarch64.md (ldr_got_tiny): Delete.
31348 (@ldr_got_tiny_<mode>): New pattern.
31349 (ldr_got_tiny_sidi): Likewise.
31350 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Use
31351 them to handle SYMBOL_TINY_GOT for ILP32.
31353 2020-03-18 Richard Sandiford <richard.sandiford@arm.com>
31355 * config/aarch64/aarch64.c (aarch64_sve_abi): Treat p12-p15 as
31356 call-preserved for SVE PCS functions.
31357 (aarch64_layout_frame): Cope with up to 12 predicate save slots.
31358 Optimize the case in which there are no following vector save slots.
31360 2020-03-18 Richard Biener <rguenther@suse.de>
31362 PR middle-end/94188
31363 * fold-const.c (build_fold_addr_expr): Convert address to
31365 * asan.c (maybe_create_ssa_name): Strip useless type conversions.
31366 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Use build1
31367 to build the ADDR_EXPR which we don't really want to simplify.
31368 * tree-ssa-dom.c (record_equivalences_from_stmt): Likewise.
31369 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Likewise.
31370 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
31371 (simplify_builtin_call): Strip useless type conversions.
31372 * tree-ssa-strlen.c (new_strinfo): Likewise.
31374 2020-03-17 Alexey Neyman <stilor@att.net>
31377 * dwarf2out.c (gen_decl_die): Proceed to generating the DIE if
31378 the debug level is terse and the declaration is public. Do not
31379 generate type info.
31380 (dwarf2out_decl): Same.
31381 (add_type_attribute): Return immediately if debug level is
31384 2020-03-17 Richard Sandiford <richard.sandiford@arm.com>
31386 * config/aarch64/iterators.md (Vmtype): Handle V4BF and V8BF.
31388 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
31389 Mihail Ionescu <mihail.ionescu@arm.com>
31390 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
31392 * config/arm/arm-builtins.c (TERNOP_UNONE_UNONE_UNONE_IMM_QUALIFIERS):
31393 Define qualifier for ternary operands.
31394 (TERNOP_UNONE_UNONE_NONE_NONE_QUALIFIERS): Likewise.
31395 (TERNOP_UNONE_NONE_UNONE_IMM_QUALIFIERS): Likewise.
31396 (TERNOP_NONE_NONE_UNONE_IMM_QUALIFIERS): Likewise.
31397 (TERNOP_UNONE_UNONE_NONE_IMM_QUALIFIERS): Likewise.
31398 (TERNOP_UNONE_UNONE_NONE_UNONE_QUALIFIERS): Likewise.
31399 (TERNOP_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Likewise.
31400 (TERNOP_UNONE_NONE_NONE_UNONE_QUALIFIERS): Likewise.
31401 (TERNOP_NONE_NONE_NONE_IMM_QUALIFIERS): Likewise.
31402 (TERNOP_NONE_NONE_NONE_UNONE_QUALIFIERS): Likewise.
31403 (TERNOP_NONE_NONE_IMM_UNONE_QUALIFIERS): Likewise.
31404 (TERNOP_NONE_NONE_UNONE_UNONE_QUALIFIERS): Likewise.
31405 (TERNOP_UNONE_UNONE_UNONE_UNONE_QUALIFIERS): Likewise.
31406 (TERNOP_NONE_NONE_NONE_NONE_QUALIFIERS): Likewise.
31407 * config/arm/arm_mve.h (vabavq_s8): Define macro.
31408 (vabavq_s16): Likewise.
31409 (vabavq_s32): Likewise.
31410 (vbicq_m_n_s16): Likewise.
31411 (vbicq_m_n_s32): Likewise.
31412 (vbicq_m_n_u16): Likewise.
31413 (vbicq_m_n_u32): Likewise.
31414 (vcmpeqq_m_f16): Likewise.
31415 (vcmpeqq_m_f32): Likewise.
31416 (vcvtaq_m_s16_f16): Likewise.
31417 (vcvtaq_m_u16_f16): Likewise.
31418 (vcvtaq_m_s32_f32): Likewise.
31419 (vcvtaq_m_u32_f32): Likewise.
31420 (vcvtq_m_f16_s16): Likewise.
31421 (vcvtq_m_f16_u16): Likewise.
31422 (vcvtq_m_f32_s32): Likewise.
31423 (vcvtq_m_f32_u32): Likewise.
31424 (vqrshrnbq_n_s16): Likewise.
31425 (vqrshrnbq_n_u16): Likewise.
31426 (vqrshrnbq_n_s32): Likewise.
31427 (vqrshrnbq_n_u32): Likewise.
31428 (vqrshrunbq_n_s16): Likewise.
31429 (vqrshrunbq_n_s32): Likewise.
31430 (vrmlaldavhaq_s32): Likewise.
31431 (vrmlaldavhaq_u32): Likewise.
31432 (vshlcq_s8): Likewise.
31433 (vshlcq_u8): Likewise.
31434 (vshlcq_s16): Likewise.
31435 (vshlcq_u16): Likewise.
31436 (vshlcq_s32): Likewise.
31437 (vshlcq_u32): Likewise.
31438 (vabavq_u8): Likewise.
31439 (vabavq_u16): Likewise.
31440 (vabavq_u32): Likewise.
31441 (__arm_vabavq_s8): Define intrinsic.
31442 (__arm_vabavq_s16): Likewise.
31443 (__arm_vabavq_s32): Likewise.
31444 (__arm_vabavq_u8): Likewise.
31445 (__arm_vabavq_u16): Likewise.
31446 (__arm_vabavq_u32): Likewise.
31447 (__arm_vbicq_m_n_s16): Likewise.
31448 (__arm_vbicq_m_n_s32): Likewise.
31449 (__arm_vbicq_m_n_u16): Likewise.
31450 (__arm_vbicq_m_n_u32): Likewise.
31451 (__arm_vqrshrnbq_n_s16): Likewise.
31452 (__arm_vqrshrnbq_n_u16): Likewise.
31453 (__arm_vqrshrnbq_n_s32): Likewise.
31454 (__arm_vqrshrnbq_n_u32): Likewise.
31455 (__arm_vqrshrunbq_n_s16): Likewise.
31456 (__arm_vqrshrunbq_n_s32): Likewise.
31457 (__arm_vrmlaldavhaq_s32): Likewise.
31458 (__arm_vrmlaldavhaq_u32): Likewise.
31459 (__arm_vshlcq_s8): Likewise.
31460 (__arm_vshlcq_u8): Likewise.
31461 (__arm_vshlcq_s16): Likewise.
31462 (__arm_vshlcq_u16): Likewise.
31463 (__arm_vshlcq_s32): Likewise.
31464 (__arm_vshlcq_u32): Likewise.
31465 (__arm_vcmpeqq_m_f16): Likewise.
31466 (__arm_vcmpeqq_m_f32): Likewise.
31467 (__arm_vcvtaq_m_s16_f16): Likewise.
31468 (__arm_vcvtaq_m_u16_f16): Likewise.
31469 (__arm_vcvtaq_m_s32_f32): Likewise.
31470 (__arm_vcvtaq_m_u32_f32): Likewise.
31471 (__arm_vcvtq_m_f16_s16): Likewise.
31472 (__arm_vcvtq_m_f16_u16): Likewise.
31473 (__arm_vcvtq_m_f32_s32): Likewise.
31474 (__arm_vcvtq_m_f32_u32): Likewise.
31475 (vcvtaq_m): Define polymorphic variant.
31476 (vcvtq_m): Likewise.
31477 (vabavq): Likewise.
31478 (vshlcq): Likewise.
31479 (vbicq_m_n): Likewise.
31480 (vqrshrnbq_n): Likewise.
31481 (vqrshrunbq_n): Likewise.
31482 * config/arm/arm_mve_builtins.def
31483 (TERNOP_UNONE_UNONE_UNONE_IMM_QUALIFIERS): Use the builtin qualifer.
31484 (TERNOP_UNONE_UNONE_NONE_NONE_QUALIFIERS): Likewise.
31485 (TERNOP_UNONE_NONE_UNONE_IMM_QUALIFIERS): Likewise.
31486 (TERNOP_NONE_NONE_UNONE_IMM_QUALIFIERS): Likewise.
31487 (TERNOP_UNONE_UNONE_NONE_IMM_QUALIFIERS): Likewise.
31488 (TERNOP_UNONE_UNONE_NONE_UNONE_QUALIFIERS): Likewise.
31489 (TERNOP_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Likewise.
31490 (TERNOP_UNONE_NONE_NONE_UNONE_QUALIFIERS): Likewise.
31491 (TERNOP_NONE_NONE_NONE_IMM_QUALIFIERS): Likewise.
31492 (TERNOP_NONE_NONE_NONE_UNONE_QUALIFIERS): Likewise.
31493 (TERNOP_NONE_NONE_IMM_UNONE_QUALIFIERS): Likewise.
31494 (TERNOP_NONE_NONE_UNONE_UNONE_QUALIFIERS): Likewise.
31495 (TERNOP_UNONE_UNONE_UNONE_UNONE_QUALIFIERS): Likewise.
31496 (TERNOP_NONE_NONE_NONE_NONE_QUALIFIERS): Likewise.
31497 * config/arm/mve.md (VBICQ_M_N): Define iterator.
31498 (VCVTAQ_M): Likewise.
31499 (VCVTQ_M_TO_F): Likewise.
31500 (VQRSHRNBQ_N): Likewise.
31501 (VABAVQ): Likewise.
31502 (VSHLCQ): Likewise.
31503 (VRMLALDAVHAQ): Likewise.
31504 (mve_vbicq_m_n_<supf><mode>): Define RTL pattern.
31505 (mve_vcmpeqq_m_f<mode>): Likewise.
31506 (mve_vcvtaq_m_<supf><mode>): Likewise.
31507 (mve_vcvtq_m_to_f_<supf><mode>): Likewise.
31508 (mve_vqrshrnbq_n_<supf><mode>): Likewise.
31509 (mve_vqrshrunbq_n_s<mode>): Likewise.
31510 (mve_vrmlaldavhaq_<supf>v4si): Likewise.
31511 (mve_vabavq_<supf><mode>): Likewise.
31512 (mve_vshlcq_<supf><mode>): Likewise.
31513 (mve_vshlcq_<supf><mode>): Likewise.
31514 (mve_vshlcq_vec_<supf><mode>): Define RTL expand.
31515 (mve_vshlcq_carry_<supf><mode>): Likewise.
31517 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
31518 Mihail Ionescu <mihail.ionescu@arm.com>
31519 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
31521 * config/arm/arm_mve.h (vqmovntq_u16): Define macro.
31522 (vqmovnbq_u16): Likewise.
31523 (vmulltq_poly_p8): Likewise.
31524 (vmullbq_poly_p8): Likewise.
31525 (vmovntq_u16): Likewise.
31526 (vmovnbq_u16): Likewise.
31527 (vmlaldavxq_u16): Likewise.
31528 (vmlaldavq_u16): Likewise.
31529 (vqmovuntq_s16): Likewise.
31530 (vqmovunbq_s16): Likewise.
31531 (vshlltq_n_u8): Likewise.
31532 (vshllbq_n_u8): Likewise.
31533 (vorrq_n_u16): Likewise.
31534 (vbicq_n_u16): Likewise.
31535 (vcmpneq_n_f16): Likewise.
31536 (vcmpneq_f16): Likewise.
31537 (vcmpltq_n_f16): Likewise.
31538 (vcmpltq_f16): Likewise.
31539 (vcmpleq_n_f16): Likewise.
31540 (vcmpleq_f16): Likewise.
31541 (vcmpgtq_n_f16): Likewise.
31542 (vcmpgtq_f16): Likewise.
31543 (vcmpgeq_n_f16): Likewise.
31544 (vcmpgeq_f16): Likewise.
31545 (vcmpeqq_n_f16): Likewise.
31546 (vcmpeqq_f16): Likewise.
31547 (vsubq_f16): Likewise.
31548 (vqmovntq_s16): Likewise.
31549 (vqmovnbq_s16): Likewise.
31550 (vqdmulltq_s16): Likewise.
31551 (vqdmulltq_n_s16): Likewise.
31552 (vqdmullbq_s16): Likewise.
31553 (vqdmullbq_n_s16): Likewise.
31554 (vorrq_f16): Likewise.
31555 (vornq_f16): Likewise.
31556 (vmulq_n_f16): Likewise.
31557 (vmulq_f16): Likewise.
31558 (vmovntq_s16): Likewise.
31559 (vmovnbq_s16): Likewise.
31560 (vmlsldavxq_s16): Likewise.
31561 (vmlsldavq_s16): Likewise.
31562 (vmlaldavxq_s16): Likewise.
31563 (vmlaldavq_s16): Likewise.
31564 (vminnmvq_f16): Likewise.
31565 (vminnmq_f16): Likewise.
31566 (vminnmavq_f16): Likewise.
31567 (vminnmaq_f16): Likewise.
31568 (vmaxnmvq_f16): Likewise.
31569 (vmaxnmq_f16): Likewise.
31570 (vmaxnmavq_f16): Likewise.
31571 (vmaxnmaq_f16): Likewise.
31572 (veorq_f16): Likewise.
31573 (vcmulq_rot90_f16): Likewise.
31574 (vcmulq_rot270_f16): Likewise.
31575 (vcmulq_rot180_f16): Likewise.
31576 (vcmulq_f16): Likewise.
31577 (vcaddq_rot90_f16): Likewise.
31578 (vcaddq_rot270_f16): Likewise.
31579 (vbicq_f16): Likewise.
31580 (vandq_f16): Likewise.
31581 (vaddq_n_f16): Likewise.
31582 (vabdq_f16): Likewise.
31583 (vshlltq_n_s8): Likewise.
31584 (vshllbq_n_s8): Likewise.
31585 (vorrq_n_s16): Likewise.
31586 (vbicq_n_s16): Likewise.
31587 (vqmovntq_u32): Likewise.
31588 (vqmovnbq_u32): Likewise.
31589 (vmulltq_poly_p16): Likewise.
31590 (vmullbq_poly_p16): Likewise.
31591 (vmovntq_u32): Likewise.
31592 (vmovnbq_u32): Likewise.
31593 (vmlaldavxq_u32): Likewise.
31594 (vmlaldavq_u32): Likewise.
31595 (vqmovuntq_s32): Likewise.
31596 (vqmovunbq_s32): Likewise.
31597 (vshlltq_n_u16): Likewise.
31598 (vshllbq_n_u16): Likewise.
31599 (vorrq_n_u32): Likewise.
31600 (vbicq_n_u32): Likewise.
31601 (vcmpneq_n_f32): Likewise.
31602 (vcmpneq_f32): Likewise.
31603 (vcmpltq_n_f32): Likewise.
31604 (vcmpltq_f32): Likewise.
31605 (vcmpleq_n_f32): Likewise.
31606 (vcmpleq_f32): Likewise.
31607 (vcmpgtq_n_f32): Likewise.
31608 (vcmpgtq_f32): Likewise.
31609 (vcmpgeq_n_f32): Likewise.
31610 (vcmpgeq_f32): Likewise.
31611 (vcmpeqq_n_f32): Likewise.
31612 (vcmpeqq_f32): Likewise.
31613 (vsubq_f32): Likewise.
31614 (vqmovntq_s32): Likewise.
31615 (vqmovnbq_s32): Likewise.
31616 (vqdmulltq_s32): Likewise.
31617 (vqdmulltq_n_s32): Likewise.
31618 (vqdmullbq_s32): Likewise.
31619 (vqdmullbq_n_s32): Likewise.
31620 (vorrq_f32): Likewise.
31621 (vornq_f32): Likewise.
31622 (vmulq_n_f32): Likewise.
31623 (vmulq_f32): Likewise.
31624 (vmovntq_s32): Likewise.
31625 (vmovnbq_s32): Likewise.
31626 (vmlsldavxq_s32): Likewise.
31627 (vmlsldavq_s32): Likewise.
31628 (vmlaldavxq_s32): Likewise.
31629 (vmlaldavq_s32): Likewise.
31630 (vminnmvq_f32): Likewise.
31631 (vminnmq_f32): Likewise.
31632 (vminnmavq_f32): Likewise.
31633 (vminnmaq_f32): Likewise.
31634 (vmaxnmvq_f32): Likewise.
31635 (vmaxnmq_f32): Likewise.
31636 (vmaxnmavq_f32): Likewise.
31637 (vmaxnmaq_f32): Likewise.
31638 (veorq_f32): Likewise.
31639 (vcmulq_rot90_f32): Likewise.
31640 (vcmulq_rot270_f32): Likewise.
31641 (vcmulq_rot180_f32): Likewise.
31642 (vcmulq_f32): Likewise.
31643 (vcaddq_rot90_f32): Likewise.
31644 (vcaddq_rot270_f32): Likewise.
31645 (vbicq_f32): Likewise.
31646 (vandq_f32): Likewise.
31647 (vaddq_n_f32): Likewise.
31648 (vabdq_f32): Likewise.
31649 (vshlltq_n_s16): Likewise.
31650 (vshllbq_n_s16): Likewise.
31651 (vorrq_n_s32): Likewise.
31652 (vbicq_n_s32): Likewise.
31653 (vrmlaldavhq_u32): Likewise.
31654 (vctp8q_m): Likewise.
31655 (vctp64q_m): Likewise.
31656 (vctp32q_m): Likewise.
31657 (vctp16q_m): Likewise.
31658 (vaddlvaq_u32): Likewise.
31659 (vrmlsldavhxq_s32): Likewise.
31660 (vrmlsldavhq_s32): Likewise.
31661 (vrmlaldavhxq_s32): Likewise.
31662 (vrmlaldavhq_s32): Likewise.
31663 (vcvttq_f16_f32): Likewise.
31664 (vcvtbq_f16_f32): Likewise.
31665 (vaddlvaq_s32): Likewise.
31666 (__arm_vqmovntq_u16): Define intrinsic.
31667 (__arm_vqmovnbq_u16): Likewise.
31668 (__arm_vmulltq_poly_p8): Likewise.
31669 (__arm_vmullbq_poly_p8): Likewise.
31670 (__arm_vmovntq_u16): Likewise.
31671 (__arm_vmovnbq_u16): Likewise.
31672 (__arm_vmlaldavxq_u16): Likewise.
31673 (__arm_vmlaldavq_u16): Likewise.
31674 (__arm_vqmovuntq_s16): Likewise.
31675 (__arm_vqmovunbq_s16): Likewise.
31676 (__arm_vshlltq_n_u8): Likewise.
31677 (__arm_vshllbq_n_u8): Likewise.
31678 (__arm_vorrq_n_u16): Likewise.
31679 (__arm_vbicq_n_u16): Likewise.
31680 (__arm_vcmpneq_n_f16): Likewise.
31681 (__arm_vcmpneq_f16): Likewise.
31682 (__arm_vcmpltq_n_f16): Likewise.
31683 (__arm_vcmpltq_f16): Likewise.
31684 (__arm_vcmpleq_n_f16): Likewise.
31685 (__arm_vcmpleq_f16): Likewise.
31686 (__arm_vcmpgtq_n_f16): Likewise.
31687 (__arm_vcmpgtq_f16): Likewise.
31688 (__arm_vcmpgeq_n_f16): Likewise.
31689 (__arm_vcmpgeq_f16): Likewise.
31690 (__arm_vcmpeqq_n_f16): Likewise.
31691 (__arm_vcmpeqq_f16): Likewise.
31692 (__arm_vsubq_f16): Likewise.
31693 (__arm_vqmovntq_s16): Likewise.
31694 (__arm_vqmovnbq_s16): Likewise.
31695 (__arm_vqdmulltq_s16): Likewise.
31696 (__arm_vqdmulltq_n_s16): Likewise.
31697 (__arm_vqdmullbq_s16): Likewise.
31698 (__arm_vqdmullbq_n_s16): Likewise.
31699 (__arm_vorrq_f16): Likewise.
31700 (__arm_vornq_f16): Likewise.
31701 (__arm_vmulq_n_f16): Likewise.
31702 (__arm_vmulq_f16): Likewise.
31703 (__arm_vmovntq_s16): Likewise.
31704 (__arm_vmovnbq_s16): Likewise.
31705 (__arm_vmlsldavxq_s16): Likewise.
31706 (__arm_vmlsldavq_s16): Likewise.
31707 (__arm_vmlaldavxq_s16): Likewise.
31708 (__arm_vmlaldavq_s16): Likewise.
31709 (__arm_vminnmvq_f16): Likewise.
31710 (__arm_vminnmq_f16): Likewise.
31711 (__arm_vminnmavq_f16): Likewise.
31712 (__arm_vminnmaq_f16): Likewise.
31713 (__arm_vmaxnmvq_f16): Likewise.
31714 (__arm_vmaxnmq_f16): Likewise.
31715 (__arm_vmaxnmavq_f16): Likewise.
31716 (__arm_vmaxnmaq_f16): Likewise.
31717 (__arm_veorq_f16): Likewise.
31718 (__arm_vcmulq_rot90_f16): Likewise.
31719 (__arm_vcmulq_rot270_f16): Likewise.
31720 (__arm_vcmulq_rot180_f16): Likewise.
31721 (__arm_vcmulq_f16): Likewise.
31722 (__arm_vcaddq_rot90_f16): Likewise.
31723 (__arm_vcaddq_rot270_f16): Likewise.
31724 (__arm_vbicq_f16): Likewise.
31725 (__arm_vandq_f16): Likewise.
31726 (__arm_vaddq_n_f16): Likewise.
31727 (__arm_vabdq_f16): Likewise.
31728 (__arm_vshlltq_n_s8): Likewise.
31729 (__arm_vshllbq_n_s8): Likewise.
31730 (__arm_vorrq_n_s16): Likewise.
31731 (__arm_vbicq_n_s16): Likewise.
31732 (__arm_vqmovntq_u32): Likewise.
31733 (__arm_vqmovnbq_u32): Likewise.
31734 (__arm_vmulltq_poly_p16): Likewise.
31735 (__arm_vmullbq_poly_p16): Likewise.
31736 (__arm_vmovntq_u32): Likewise.
31737 (__arm_vmovnbq_u32): Likewise.
31738 (__arm_vmlaldavxq_u32): Likewise.
31739 (__arm_vmlaldavq_u32): Likewise.
31740 (__arm_vqmovuntq_s32): Likewise.
31741 (__arm_vqmovunbq_s32): Likewise.
31742 (__arm_vshlltq_n_u16): Likewise.
31743 (__arm_vshllbq_n_u16): Likewise.
31744 (__arm_vorrq_n_u32): Likewise.
31745 (__arm_vbicq_n_u32): Likewise.
31746 (__arm_vcmpneq_n_f32): Likewise.
31747 (__arm_vcmpneq_f32): Likewise.
31748 (__arm_vcmpltq_n_f32): Likewise.
31749 (__arm_vcmpltq_f32): Likewise.
31750 (__arm_vcmpleq_n_f32): Likewise.
31751 (__arm_vcmpleq_f32): Likewise.
31752 (__arm_vcmpgtq_n_f32): Likewise.
31753 (__arm_vcmpgtq_f32): Likewise.
31754 (__arm_vcmpgeq_n_f32): Likewise.
31755 (__arm_vcmpgeq_f32): Likewise.
31756 (__arm_vcmpeqq_n_f32): Likewise.
31757 (__arm_vcmpeqq_f32): Likewise.
31758 (__arm_vsubq_f32): Likewise.
31759 (__arm_vqmovntq_s32): Likewise.
31760 (__arm_vqmovnbq_s32): Likewise.
31761 (__arm_vqdmulltq_s32): Likewise.
31762 (__arm_vqdmulltq_n_s32): Likewise.
31763 (__arm_vqdmullbq_s32): Likewise.
31764 (__arm_vqdmullbq_n_s32): Likewise.
31765 (__arm_vorrq_f32): Likewise.
31766 (__arm_vornq_f32): Likewise.
31767 (__arm_vmulq_n_f32): Likewise.
31768 (__arm_vmulq_f32): Likewise.
31769 (__arm_vmovntq_s32): Likewise.
31770 (__arm_vmovnbq_s32): Likewise.
31771 (__arm_vmlsldavxq_s32): Likewise.
31772 (__arm_vmlsldavq_s32): Likewise.
31773 (__arm_vmlaldavxq_s32): Likewise.
31774 (__arm_vmlaldavq_s32): Likewise.
31775 (__arm_vminnmvq_f32): Likewise.
31776 (__arm_vminnmq_f32): Likewise.
31777 (__arm_vminnmavq_f32): Likewise.
31778 (__arm_vminnmaq_f32): Likewise.
31779 (__arm_vmaxnmvq_f32): Likewise.
31780 (__arm_vmaxnmq_f32): Likewise.
31781 (__arm_vmaxnmavq_f32): Likewise.
31782 (__arm_vmaxnmaq_f32): Likewise.
31783 (__arm_veorq_f32): Likewise.
31784 (__arm_vcmulq_rot90_f32): Likewise.
31785 (__arm_vcmulq_rot270_f32): Likewise.
31786 (__arm_vcmulq_rot180_f32): Likewise.
31787 (__arm_vcmulq_f32): Likewise.
31788 (__arm_vcaddq_rot90_f32): Likewise.
31789 (__arm_vcaddq_rot270_f32): Likewise.
31790 (__arm_vbicq_f32): Likewise.
31791 (__arm_vandq_f32): Likewise.
31792 (__arm_vaddq_n_f32): Likewise.
31793 (__arm_vabdq_f32): Likewise.
31794 (__arm_vshlltq_n_s16): Likewise.
31795 (__arm_vshllbq_n_s16): Likewise.
31796 (__arm_vorrq_n_s32): Likewise.
31797 (__arm_vbicq_n_s32): Likewise.
31798 (__arm_vrmlaldavhq_u32): Likewise.
31799 (__arm_vctp8q_m): Likewise.
31800 (__arm_vctp64q_m): Likewise.
31801 (__arm_vctp32q_m): Likewise.
31802 (__arm_vctp16q_m): Likewise.
31803 (__arm_vaddlvaq_u32): Likewise.
31804 (__arm_vrmlsldavhxq_s32): Likewise.
31805 (__arm_vrmlsldavhq_s32): Likewise.
31806 (__arm_vrmlaldavhxq_s32): Likewise.
31807 (__arm_vrmlaldavhq_s32): Likewise.
31808 (__arm_vcvttq_f16_f32): Likewise.
31809 (__arm_vcvtbq_f16_f32): Likewise.
31810 (__arm_vaddlvaq_s32): Likewise.
31811 (vst4q): Define polymorphic variant.
31812 (vrndxq): Likewise.
31814 (vrndpq): Likewise.
31815 (vrndnq): Likewise.
31816 (vrndmq): Likewise.
31817 (vrndaq): Likewise.
31818 (vrev64q): Likewise.
31820 (vdupq_n): Likewise.
31822 (vrev32q): Likewise.
31823 (vcvtbq_f32): Likewise.
31824 (vcvttq_f32): Likewise.
31826 (vsubq_n): Likewise.
31827 (vbrsrq_n): Likewise.
31828 (vcvtq_n): Likewise.
31832 (vaddq_n): Likewise.
31836 (vmulq_n): Likewise.
31838 (vcaddq_rot270): Likewise.
31839 (vcmpeqq_n): Likewise.
31840 (vcmpeqq): Likewise.
31841 (vcaddq_rot90): Likewise.
31842 (vcmpgeq_n): Likewise.
31843 (vcmpgeq): Likewise.
31844 (vcmpgtq_n): Likewise.
31845 (vcmpgtq): Likewise.
31846 (vcmpgtq): Likewise.
31847 (vcmpleq_n): Likewise.
31848 (vcmpleq_n): Likewise.
31849 (vcmpleq): Likewise.
31850 (vcmpleq): Likewise.
31851 (vcmpltq_n): Likewise.
31852 (vcmpltq_n): Likewise.
31853 (vcmpltq): Likewise.
31854 (vcmpltq): Likewise.
31855 (vcmpneq_n): Likewise.
31856 (vcmpneq_n): Likewise.
31857 (vcmpneq): Likewise.
31858 (vcmpneq): Likewise.
31859 (vcmulq): Likewise.
31860 (vcmulq): Likewise.
31861 (vcmulq_rot180): Likewise.
31862 (vcmulq_rot180): Likewise.
31863 (vcmulq_rot270): Likewise.
31864 (vcmulq_rot270): Likewise.
31865 (vcmulq_rot90): Likewise.
31866 (vcmulq_rot90): Likewise.
31869 (vmaxnmaq): Likewise.
31870 (vmaxnmaq): Likewise.
31871 (vmaxnmavq): Likewise.
31872 (vmaxnmavq): Likewise.
31873 (vmaxnmq): Likewise.
31874 (vmaxnmq): Likewise.
31875 (vmaxnmvq): Likewise.
31876 (vmaxnmvq): Likewise.
31877 (vminnmaq): Likewise.
31878 (vminnmaq): Likewise.
31879 (vminnmavq): Likewise.
31880 (vminnmavq): Likewise.
31881 (vminnmq): Likewise.
31882 (vminnmq): Likewise.
31883 (vminnmvq): Likewise.
31884 (vminnmvq): Likewise.
31885 (vbicq_n): Likewise.
31886 (vqmovntq): Likewise.
31887 (vqmovntq): Likewise.
31888 (vqmovnbq): Likewise.
31889 (vqmovnbq): Likewise.
31890 (vmulltq_poly): Likewise.
31891 (vmulltq_poly): Likewise.
31892 (vmullbq_poly): Likewise.
31893 (vmullbq_poly): Likewise.
31894 (vmovntq): Likewise.
31895 (vmovntq): Likewise.
31896 (vmovnbq): Likewise.
31897 (vmovnbq): Likewise.
31898 (vmlaldavxq): Likewise.
31899 (vmlaldavxq): Likewise.
31900 (vqmovuntq): Likewise.
31901 (vqmovuntq): Likewise.
31902 (vshlltq_n): Likewise.
31903 (vshlltq_n): Likewise.
31904 (vshllbq_n): Likewise.
31905 (vshllbq_n): Likewise.
31906 (vorrq_n): Likewise.
31907 (vorrq_n): Likewise.
31908 (vmlaldavq): Likewise.
31909 (vmlaldavq): Likewise.
31910 (vqmovunbq): Likewise.
31911 (vqmovunbq): Likewise.
31912 (vqdmulltq_n): Likewise.
31913 (vqdmulltq_n): Likewise.
31914 (vqdmulltq): Likewise.
31915 (vqdmulltq): Likewise.
31916 (vqdmullbq_n): Likewise.
31917 (vqdmullbq_n): Likewise.
31918 (vqdmullbq): Likewise.
31919 (vqdmullbq): Likewise.
31920 (vaddlvaq): Likewise.
31921 (vaddlvaq): Likewise.
31922 (vrmlaldavhq): Likewise.
31923 (vrmlaldavhq): Likewise.
31924 (vrmlaldavhxq): Likewise.
31925 (vrmlaldavhxq): Likewise.
31926 (vrmlsldavhq): Likewise.
31927 (vrmlsldavhq): Likewise.
31928 (vrmlsldavhxq): Likewise.
31929 (vrmlsldavhxq): Likewise.
31930 (vmlsldavxq): Likewise.
31931 (vmlsldavxq): Likewise.
31932 (vmlsldavq): Likewise.
31933 (vmlsldavq): Likewise.
31934 * config/arm/arm_mve_builtins.def (BINOP_NONE_NONE_IMM): Use it.
31935 (BINOP_NONE_NONE_NONE): Likewise.
31936 (BINOP_UNONE_NONE_NONE): Likewise.
31937 (BINOP_UNONE_UNONE_IMM): Likewise.
31938 (BINOP_UNONE_UNONE_NONE): Likewise.
31939 (BINOP_UNONE_UNONE_UNONE): Likewise.
31940 * config/arm/mve.md (mve_vabdq_f<mode>): Define RTL pattern.
31941 (mve_vaddlvaq_<supf>v4si): Likewise.
31942 (mve_vaddq_n_f<mode>): Likewise.
31943 (mve_vandq_f<mode>): Likewise.
31944 (mve_vbicq_f<mode>): Likewise.
31945 (mve_vbicq_n_<supf><mode>): Likewise.
31946 (mve_vcaddq_rot270_f<mode>): Likewise.
31947 (mve_vcaddq_rot90_f<mode>): Likewise.
31948 (mve_vcmpeqq_f<mode>): Likewise.
31949 (mve_vcmpeqq_n_f<mode>): Likewise.
31950 (mve_vcmpgeq_f<mode>): Likewise.
31951 (mve_vcmpgeq_n_f<mode>): Likewise.
31952 (mve_vcmpgtq_f<mode>): Likewise.
31953 (mve_vcmpgtq_n_f<mode>): Likewise.
31954 (mve_vcmpleq_f<mode>): Likewise.
31955 (mve_vcmpleq_n_f<mode>): Likewise.
31956 (mve_vcmpltq_f<mode>): Likewise.
31957 (mve_vcmpltq_n_f<mode>): Likewise.
31958 (mve_vcmpneq_f<mode>): Likewise.
31959 (mve_vcmpneq_n_f<mode>): Likewise.
31960 (mve_vcmulq_f<mode>): Likewise.
31961 (mve_vcmulq_rot180_f<mode>): Likewise.
31962 (mve_vcmulq_rot270_f<mode>): Likewise.
31963 (mve_vcmulq_rot90_f<mode>): Likewise.
31964 (mve_vctp<mode1>q_mhi): Likewise.
31965 (mve_vcvtbq_f16_f32v8hf): Likewise.
31966 (mve_vcvttq_f16_f32v8hf): Likewise.
31967 (mve_veorq_f<mode>): Likewise.
31968 (mve_vmaxnmaq_f<mode>): Likewise.
31969 (mve_vmaxnmavq_f<mode>): Likewise.
31970 (mve_vmaxnmq_f<mode>): Likewise.
31971 (mve_vmaxnmvq_f<mode>): Likewise.
31972 (mve_vminnmaq_f<mode>): Likewise.
31973 (mve_vminnmavq_f<mode>): Likewise.
31974 (mve_vminnmq_f<mode>): Likewise.
31975 (mve_vminnmvq_f<mode>): Likewise.
31976 (mve_vmlaldavq_<supf><mode>): Likewise.
31977 (mve_vmlaldavxq_<supf><mode>): Likewise.
31978 (mve_vmlsldavq_s<mode>): Likewise.
31979 (mve_vmlsldavxq_s<mode>): Likewise.
31980 (mve_vmovnbq_<supf><mode>): Likewise.
31981 (mve_vmovntq_<supf><mode>): Likewise.
31982 (mve_vmulq_f<mode>): Likewise.
31983 (mve_vmulq_n_f<mode>): Likewise.
31984 (mve_vornq_f<mode>): Likewise.
31985 (mve_vorrq_f<mode>): Likewise.
31986 (mve_vorrq_n_<supf><mode>): Likewise.
31987 (mve_vqdmullbq_n_s<mode>): Likewise.
31988 (mve_vqdmullbq_s<mode>): Likewise.
31989 (mve_vqdmulltq_n_s<mode>): Likewise.
31990 (mve_vqdmulltq_s<mode>): Likewise.
31991 (mve_vqmovnbq_<supf><mode>): Likewise.
31992 (mve_vqmovntq_<supf><mode>): Likewise.
31993 (mve_vqmovunbq_s<mode>): Likewise.
31994 (mve_vqmovuntq_s<mode>): Likewise.
31995 (mve_vrmlaldavhxq_sv4si): Likewise.
31996 (mve_vrmlsldavhq_sv4si): Likewise.
31997 (mve_vrmlsldavhxq_sv4si): Likewise.
31998 (mve_vshllbq_n_<supf><mode>): Likewise.
31999 (mve_vshlltq_n_<supf><mode>): Likewise.
32000 (mve_vsubq_f<mode>): Likewise.
32001 (mve_vmulltq_poly_p<mode>): Likewise.
32002 (mve_vmullbq_poly_p<mode>): Likewise.
32003 (mve_vrmlaldavhq_<supf>v4si): Likewise.
32005 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
32006 Mihail Ionescu <mihail.ionescu@arm.com>
32007 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
32009 * config/arm/arm_mve.h (vsubq_u8): Define macro.
32010 (vsubq_n_u8): Likewise.
32011 (vrmulhq_u8): Likewise.
32012 (vrhaddq_u8): Likewise.
32013 (vqsubq_u8): Likewise.
32014 (vqsubq_n_u8): Likewise.
32015 (vqaddq_u8): Likewise.
32016 (vqaddq_n_u8): Likewise.
32017 (vorrq_u8): Likewise.
32018 (vornq_u8): Likewise.
32019 (vmulq_u8): Likewise.
32020 (vmulq_n_u8): Likewise.
32021 (vmulltq_int_u8): Likewise.
32022 (vmullbq_int_u8): Likewise.
32023 (vmulhq_u8): Likewise.
32024 (vmladavq_u8): Likewise.
32025 (vminvq_u8): Likewise.
32026 (vminq_u8): Likewise.
32027 (vmaxvq_u8): Likewise.
32028 (vmaxq_u8): Likewise.
32029 (vhsubq_u8): Likewise.
32030 (vhsubq_n_u8): Likewise.
32031 (vhaddq_u8): Likewise.
32032 (vhaddq_n_u8): Likewise.
32033 (veorq_u8): Likewise.
32034 (vcmpneq_n_u8): Likewise.
32035 (vcmphiq_u8): Likewise.
32036 (vcmphiq_n_u8): Likewise.
32037 (vcmpeqq_u8): Likewise.
32038 (vcmpeqq_n_u8): Likewise.
32039 (vcmpcsq_u8): Likewise.
32040 (vcmpcsq_n_u8): Likewise.
32041 (vcaddq_rot90_u8): Likewise.
32042 (vcaddq_rot270_u8): Likewise.
32043 (vbicq_u8): Likewise.
32044 (vandq_u8): Likewise.
32045 (vaddvq_p_u8): Likewise.
32046 (vaddvaq_u8): Likewise.
32047 (vaddq_n_u8): Likewise.
32048 (vabdq_u8): Likewise.
32049 (vshlq_r_u8): Likewise.
32050 (vrshlq_u8): Likewise.
32051 (vrshlq_n_u8): Likewise.
32052 (vqshlq_u8): Likewise.
32053 (vqshlq_r_u8): Likewise.
32054 (vqrshlq_u8): Likewise.
32055 (vqrshlq_n_u8): Likewise.
32056 (vminavq_s8): Likewise.
32057 (vminaq_s8): Likewise.
32058 (vmaxavq_s8): Likewise.
32059 (vmaxaq_s8): Likewise.
32060 (vbrsrq_n_u8): Likewise.
32061 (vshlq_n_u8): Likewise.
32062 (vrshrq_n_u8): Likewise.
32063 (vqshlq_n_u8): Likewise.
32064 (vcmpneq_n_s8): Likewise.
32065 (vcmpltq_s8): Likewise.
32066 (vcmpltq_n_s8): Likewise.
32067 (vcmpleq_s8): Likewise.
32068 (vcmpleq_n_s8): Likewise.
32069 (vcmpgtq_s8): Likewise.
32070 (vcmpgtq_n_s8): Likewise.
32071 (vcmpgeq_s8): Likewise.
32072 (vcmpgeq_n_s8): Likewise.
32073 (vcmpeqq_s8): Likewise.
32074 (vcmpeqq_n_s8): Likewise.
32075 (vqshluq_n_s8): Likewise.
32076 (vaddvq_p_s8): Likewise.
32077 (vsubq_s8): Likewise.
32078 (vsubq_n_s8): Likewise.
32079 (vshlq_r_s8): Likewise.
32080 (vrshlq_s8): Likewise.
32081 (vrshlq_n_s8): Likewise.
32082 (vrmulhq_s8): Likewise.
32083 (vrhaddq_s8): Likewise.
32084 (vqsubq_s8): Likewise.
32085 (vqsubq_n_s8): Likewise.
32086 (vqshlq_s8): Likewise.
32087 (vqshlq_r_s8): Likewise.
32088 (vqrshlq_s8): Likewise.
32089 (vqrshlq_n_s8): Likewise.
32090 (vqrdmulhq_s8): Likewise.
32091 (vqrdmulhq_n_s8): Likewise.
32092 (vqdmulhq_s8): Likewise.
32093 (vqdmulhq_n_s8): Likewise.
32094 (vqaddq_s8): Likewise.
32095 (vqaddq_n_s8): Likewise.
32096 (vorrq_s8): Likewise.
32097 (vornq_s8): Likewise.
32098 (vmulq_s8): Likewise.
32099 (vmulq_n_s8): Likewise.
32100 (vmulltq_int_s8): Likewise.
32101 (vmullbq_int_s8): Likewise.
32102 (vmulhq_s8): Likewise.
32103 (vmlsdavxq_s8): Likewise.
32104 (vmlsdavq_s8): Likewise.
32105 (vmladavxq_s8): Likewise.
32106 (vmladavq_s8): Likewise.
32107 (vminvq_s8): Likewise.
32108 (vminq_s8): Likewise.
32109 (vmaxvq_s8): Likewise.
32110 (vmaxq_s8): Likewise.
32111 (vhsubq_s8): Likewise.
32112 (vhsubq_n_s8): Likewise.
32113 (vhcaddq_rot90_s8): Likewise.
32114 (vhcaddq_rot270_s8): Likewise.
32115 (vhaddq_s8): Likewise.
32116 (vhaddq_n_s8): Likewise.
32117 (veorq_s8): Likewise.
32118 (vcaddq_rot90_s8): Likewise.
32119 (vcaddq_rot270_s8): Likewise.
32120 (vbrsrq_n_s8): Likewise.
32121 (vbicq_s8): Likewise.
32122 (vandq_s8): Likewise.
32123 (vaddvaq_s8): Likewise.
32124 (vaddq_n_s8): Likewise.
32125 (vabdq_s8): Likewise.
32126 (vshlq_n_s8): Likewise.
32127 (vrshrq_n_s8): Likewise.
32128 (vqshlq_n_s8): Likewise.
32129 (vsubq_u16): Likewise.
32130 (vsubq_n_u16): Likewise.
32131 (vrmulhq_u16): Likewise.
32132 (vrhaddq_u16): Likewise.
32133 (vqsubq_u16): Likewise.
32134 (vqsubq_n_u16): Likewise.
32135 (vqaddq_u16): Likewise.
32136 (vqaddq_n_u16): Likewise.
32137 (vorrq_u16): Likewise.
32138 (vornq_u16): Likewise.
32139 (vmulq_u16): Likewise.
32140 (vmulq_n_u16): Likewise.
32141 (vmulltq_int_u16): Likewise.
32142 (vmullbq_int_u16): Likewise.
32143 (vmulhq_u16): Likewise.
32144 (vmladavq_u16): Likewise.
32145 (vminvq_u16): Likewise.
32146 (vminq_u16): Likewise.
32147 (vmaxvq_u16): Likewise.
32148 (vmaxq_u16): Likewise.
32149 (vhsubq_u16): Likewise.
32150 (vhsubq_n_u16): Likewise.
32151 (vhaddq_u16): Likewise.
32152 (vhaddq_n_u16): Likewise.
32153 (veorq_u16): Likewise.
32154 (vcmpneq_n_u16): Likewise.
32155 (vcmphiq_u16): Likewise.
32156 (vcmphiq_n_u16): Likewise.
32157 (vcmpeqq_u16): Likewise.
32158 (vcmpeqq_n_u16): Likewise.
32159 (vcmpcsq_u16): Likewise.
32160 (vcmpcsq_n_u16): Likewise.
32161 (vcaddq_rot90_u16): Likewise.
32162 (vcaddq_rot270_u16): Likewise.
32163 (vbicq_u16): Likewise.
32164 (vandq_u16): Likewise.
32165 (vaddvq_p_u16): Likewise.
32166 (vaddvaq_u16): Likewise.
32167 (vaddq_n_u16): Likewise.
32168 (vabdq_u16): Likewise.
32169 (vshlq_r_u16): Likewise.
32170 (vrshlq_u16): Likewise.
32171 (vrshlq_n_u16): Likewise.
32172 (vqshlq_u16): Likewise.
32173 (vqshlq_r_u16): Likewise.
32174 (vqrshlq_u16): Likewise.
32175 (vqrshlq_n_u16): Likewise.
32176 (vminavq_s16): Likewise.
32177 (vminaq_s16): Likewise.
32178 (vmaxavq_s16): Likewise.
32179 (vmaxaq_s16): Likewise.
32180 (vbrsrq_n_u16): Likewise.
32181 (vshlq_n_u16): Likewise.
32182 (vrshrq_n_u16): Likewise.
32183 (vqshlq_n_u16): Likewise.
32184 (vcmpneq_n_s16): Likewise.
32185 (vcmpltq_s16): Likewise.
32186 (vcmpltq_n_s16): Likewise.
32187 (vcmpleq_s16): Likewise.
32188 (vcmpleq_n_s16): Likewise.
32189 (vcmpgtq_s16): Likewise.
32190 (vcmpgtq_n_s16): Likewise.
32191 (vcmpgeq_s16): Likewise.
32192 (vcmpgeq_n_s16): Likewise.
32193 (vcmpeqq_s16): Likewise.
32194 (vcmpeqq_n_s16): Likewise.
32195 (vqshluq_n_s16): Likewise.
32196 (vaddvq_p_s16): Likewise.
32197 (vsubq_s16): Likewise.
32198 (vsubq_n_s16): Likewise.
32199 (vshlq_r_s16): Likewise.
32200 (vrshlq_s16): Likewise.
32201 (vrshlq_n_s16): Likewise.
32202 (vrmulhq_s16): Likewise.
32203 (vrhaddq_s16): Likewise.
32204 (vqsubq_s16): Likewise.
32205 (vqsubq_n_s16): Likewise.
32206 (vqshlq_s16): Likewise.
32207 (vqshlq_r_s16): Likewise.
32208 (vqrshlq_s16): Likewise.
32209 (vqrshlq_n_s16): Likewise.
32210 (vqrdmulhq_s16): Likewise.
32211 (vqrdmulhq_n_s16): Likewise.
32212 (vqdmulhq_s16): Likewise.
32213 (vqdmulhq_n_s16): Likewise.
32214 (vqaddq_s16): Likewise.
32215 (vqaddq_n_s16): Likewise.
32216 (vorrq_s16): Likewise.
32217 (vornq_s16): Likewise.
32218 (vmulq_s16): Likewise.
32219 (vmulq_n_s16): Likewise.
32220 (vmulltq_int_s16): Likewise.
32221 (vmullbq_int_s16): Likewise.
32222 (vmulhq_s16): Likewise.
32223 (vmlsdavxq_s16): Likewise.
32224 (vmlsdavq_s16): Likewise.
32225 (vmladavxq_s16): Likewise.
32226 (vmladavq_s16): Likewise.
32227 (vminvq_s16): Likewise.
32228 (vminq_s16): Likewise.
32229 (vmaxvq_s16): Likewise.
32230 (vmaxq_s16): Likewise.
32231 (vhsubq_s16): Likewise.
32232 (vhsubq_n_s16): Likewise.
32233 (vhcaddq_rot90_s16): Likewise.
32234 (vhcaddq_rot270_s16): Likewise.
32235 (vhaddq_s16): Likewise.
32236 (vhaddq_n_s16): Likewise.
32237 (veorq_s16): Likewise.
32238 (vcaddq_rot90_s16): Likewise.
32239 (vcaddq_rot270_s16): Likewise.
32240 (vbrsrq_n_s16): Likewise.
32241 (vbicq_s16): Likewise.
32242 (vandq_s16): Likewise.
32243 (vaddvaq_s16): Likewise.
32244 (vaddq_n_s16): Likewise.
32245 (vabdq_s16): Likewise.
32246 (vshlq_n_s16): Likewise.
32247 (vrshrq_n_s16): Likewise.
32248 (vqshlq_n_s16): Likewise.
32249 (vsubq_u32): Likewise.
32250 (vsubq_n_u32): Likewise.
32251 (vrmulhq_u32): Likewise.
32252 (vrhaddq_u32): Likewise.
32253 (vqsubq_u32): Likewise.
32254 (vqsubq_n_u32): Likewise.
32255 (vqaddq_u32): Likewise.
32256 (vqaddq_n_u32): Likewise.
32257 (vorrq_u32): Likewise.
32258 (vornq_u32): Likewise.
32259 (vmulq_u32): Likewise.
32260 (vmulq_n_u32): Likewise.
32261 (vmulltq_int_u32): Likewise.
32262 (vmullbq_int_u32): Likewise.
32263 (vmulhq_u32): Likewise.
32264 (vmladavq_u32): Likewise.
32265 (vminvq_u32): Likewise.
32266 (vminq_u32): Likewise.
32267 (vmaxvq_u32): Likewise.
32268 (vmaxq_u32): Likewise.
32269 (vhsubq_u32): Likewise.
32270 (vhsubq_n_u32): Likewise.
32271 (vhaddq_u32): Likewise.
32272 (vhaddq_n_u32): Likewise.
32273 (veorq_u32): Likewise.
32274 (vcmpneq_n_u32): Likewise.
32275 (vcmphiq_u32): Likewise.
32276 (vcmphiq_n_u32): Likewise.
32277 (vcmpeqq_u32): Likewise.
32278 (vcmpeqq_n_u32): Likewise.
32279 (vcmpcsq_u32): Likewise.
32280 (vcmpcsq_n_u32): Likewise.
32281 (vcaddq_rot90_u32): Likewise.
32282 (vcaddq_rot270_u32): Likewise.
32283 (vbicq_u32): Likewise.
32284 (vandq_u32): Likewise.
32285 (vaddvq_p_u32): Likewise.
32286 (vaddvaq_u32): Likewise.
32287 (vaddq_n_u32): Likewise.
32288 (vabdq_u32): Likewise.
32289 (vshlq_r_u32): Likewise.
32290 (vrshlq_u32): Likewise.
32291 (vrshlq_n_u32): Likewise.
32292 (vqshlq_u32): Likewise.
32293 (vqshlq_r_u32): Likewise.
32294 (vqrshlq_u32): Likewise.
32295 (vqrshlq_n_u32): Likewise.
32296 (vminavq_s32): Likewise.
32297 (vminaq_s32): Likewise.
32298 (vmaxavq_s32): Likewise.
32299 (vmaxaq_s32): Likewise.
32300 (vbrsrq_n_u32): Likewise.
32301 (vshlq_n_u32): Likewise.
32302 (vrshrq_n_u32): Likewise.
32303 (vqshlq_n_u32): Likewise.
32304 (vcmpneq_n_s32): Likewise.
32305 (vcmpltq_s32): Likewise.
32306 (vcmpltq_n_s32): Likewise.
32307 (vcmpleq_s32): Likewise.
32308 (vcmpleq_n_s32): Likewise.
32309 (vcmpgtq_s32): Likewise.
32310 (vcmpgtq_n_s32): Likewise.
32311 (vcmpgeq_s32): Likewise.
32312 (vcmpgeq_n_s32): Likewise.
32313 (vcmpeqq_s32): Likewise.
32314 (vcmpeqq_n_s32): Likewise.
32315 (vqshluq_n_s32): Likewise.
32316 (vaddvq_p_s32): Likewise.
32317 (vsubq_s32): Likewise.
32318 (vsubq_n_s32): Likewise.
32319 (vshlq_r_s32): Likewise.
32320 (vrshlq_s32): Likewise.
32321 (vrshlq_n_s32): Likewise.
32322 (vrmulhq_s32): Likewise.
32323 (vrhaddq_s32): Likewise.
32324 (vqsubq_s32): Likewise.
32325 (vqsubq_n_s32): Likewise.
32326 (vqshlq_s32): Likewise.
32327 (vqshlq_r_s32): Likewise.
32328 (vqrshlq_s32): Likewise.
32329 (vqrshlq_n_s32): Likewise.
32330 (vqrdmulhq_s32): Likewise.
32331 (vqrdmulhq_n_s32): Likewise.
32332 (vqdmulhq_s32): Likewise.
32333 (vqdmulhq_n_s32): Likewise.
32334 (vqaddq_s32): Likewise.
32335 (vqaddq_n_s32): Likewise.
32336 (vorrq_s32): Likewise.
32337 (vornq_s32): Likewise.
32338 (vmulq_s32): Likewise.
32339 (vmulq_n_s32): Likewise.
32340 (vmulltq_int_s32): Likewise.
32341 (vmullbq_int_s32): Likewise.
32342 (vmulhq_s32): Likewise.
32343 (vmlsdavxq_s32): Likewise.
32344 (vmlsdavq_s32): Likewise.
32345 (vmladavxq_s32): Likewise.
32346 (vmladavq_s32): Likewise.
32347 (vminvq_s32): Likewise.
32348 (vminq_s32): Likewise.
32349 (vmaxvq_s32): Likewise.
32350 (vmaxq_s32): Likewise.
32351 (vhsubq_s32): Likewise.
32352 (vhsubq_n_s32): Likewise.
32353 (vhcaddq_rot90_s32): Likewise.
32354 (vhcaddq_rot270_s32): Likewise.
32355 (vhaddq_s32): Likewise.
32356 (vhaddq_n_s32): Likewise.
32357 (veorq_s32): Likewise.
32358 (vcaddq_rot90_s32): Likewise.
32359 (vcaddq_rot270_s32): Likewise.
32360 (vbrsrq_n_s32): Likewise.
32361 (vbicq_s32): Likewise.
32362 (vandq_s32): Likewise.
32363 (vaddvaq_s32): Likewise.
32364 (vaddq_n_s32): Likewise.
32365 (vabdq_s32): Likewise.
32366 (vshlq_n_s32): Likewise.
32367 (vrshrq_n_s32): Likewise.
32368 (vqshlq_n_s32): Likewise.
32369 (__arm_vsubq_u8): Define intrinsic.
32370 (__arm_vsubq_n_u8): Likewise.
32371 (__arm_vrmulhq_u8): Likewise.
32372 (__arm_vrhaddq_u8): Likewise.
32373 (__arm_vqsubq_u8): Likewise.
32374 (__arm_vqsubq_n_u8): Likewise.
32375 (__arm_vqaddq_u8): Likewise.
32376 (__arm_vqaddq_n_u8): Likewise.
32377 (__arm_vorrq_u8): Likewise.
32378 (__arm_vornq_u8): Likewise.
32379 (__arm_vmulq_u8): Likewise.
32380 (__arm_vmulq_n_u8): Likewise.
32381 (__arm_vmulltq_int_u8): Likewise.
32382 (__arm_vmullbq_int_u8): Likewise.
32383 (__arm_vmulhq_u8): Likewise.
32384 (__arm_vmladavq_u8): Likewise.
32385 (__arm_vminvq_u8): Likewise.
32386 (__arm_vminq_u8): Likewise.
32387 (__arm_vmaxvq_u8): Likewise.
32388 (__arm_vmaxq_u8): Likewise.
32389 (__arm_vhsubq_u8): Likewise.
32390 (__arm_vhsubq_n_u8): Likewise.
32391 (__arm_vhaddq_u8): Likewise.
32392 (__arm_vhaddq_n_u8): Likewise.
32393 (__arm_veorq_u8): Likewise.
32394 (__arm_vcmpneq_n_u8): Likewise.
32395 (__arm_vcmphiq_u8): Likewise.
32396 (__arm_vcmphiq_n_u8): Likewise.
32397 (__arm_vcmpeqq_u8): Likewise.
32398 (__arm_vcmpeqq_n_u8): Likewise.
32399 (__arm_vcmpcsq_u8): Likewise.
32400 (__arm_vcmpcsq_n_u8): Likewise.
32401 (__arm_vcaddq_rot90_u8): Likewise.
32402 (__arm_vcaddq_rot270_u8): Likewise.
32403 (__arm_vbicq_u8): Likewise.
32404 (__arm_vandq_u8): Likewise.
32405 (__arm_vaddvq_p_u8): Likewise.
32406 (__arm_vaddvaq_u8): Likewise.
32407 (__arm_vaddq_n_u8): Likewise.
32408 (__arm_vabdq_u8): Likewise.
32409 (__arm_vshlq_r_u8): Likewise.
32410 (__arm_vrshlq_u8): Likewise.
32411 (__arm_vrshlq_n_u8): Likewise.
32412 (__arm_vqshlq_u8): Likewise.
32413 (__arm_vqshlq_r_u8): Likewise.
32414 (__arm_vqrshlq_u8): Likewise.
32415 (__arm_vqrshlq_n_u8): Likewise.
32416 (__arm_vminavq_s8): Likewise.
32417 (__arm_vminaq_s8): Likewise.
32418 (__arm_vmaxavq_s8): Likewise.
32419 (__arm_vmaxaq_s8): Likewise.
32420 (__arm_vbrsrq_n_u8): Likewise.
32421 (__arm_vshlq_n_u8): Likewise.
32422 (__arm_vrshrq_n_u8): Likewise.
32423 (__arm_vqshlq_n_u8): Likewise.
32424 (__arm_vcmpneq_n_s8): Likewise.
32425 (__arm_vcmpltq_s8): Likewise.
32426 (__arm_vcmpltq_n_s8): Likewise.
32427 (__arm_vcmpleq_s8): Likewise.
32428 (__arm_vcmpleq_n_s8): Likewise.
32429 (__arm_vcmpgtq_s8): Likewise.
32430 (__arm_vcmpgtq_n_s8): Likewise.
32431 (__arm_vcmpgeq_s8): Likewise.
32432 (__arm_vcmpgeq_n_s8): Likewise.
32433 (__arm_vcmpeqq_s8): Likewise.
32434 (__arm_vcmpeqq_n_s8): Likewise.
32435 (__arm_vqshluq_n_s8): Likewise.
32436 (__arm_vaddvq_p_s8): Likewise.
32437 (__arm_vsubq_s8): Likewise.
32438 (__arm_vsubq_n_s8): Likewise.
32439 (__arm_vshlq_r_s8): Likewise.
32440 (__arm_vrshlq_s8): Likewise.
32441 (__arm_vrshlq_n_s8): Likewise.
32442 (__arm_vrmulhq_s8): Likewise.
32443 (__arm_vrhaddq_s8): Likewise.
32444 (__arm_vqsubq_s8): Likewise.
32445 (__arm_vqsubq_n_s8): Likewise.
32446 (__arm_vqshlq_s8): Likewise.
32447 (__arm_vqshlq_r_s8): Likewise.
32448 (__arm_vqrshlq_s8): Likewise.
32449 (__arm_vqrshlq_n_s8): Likewise.
32450 (__arm_vqrdmulhq_s8): Likewise.
32451 (__arm_vqrdmulhq_n_s8): Likewise.
32452 (__arm_vqdmulhq_s8): Likewise.
32453 (__arm_vqdmulhq_n_s8): Likewise.
32454 (__arm_vqaddq_s8): Likewise.
32455 (__arm_vqaddq_n_s8): Likewise.
32456 (__arm_vorrq_s8): Likewise.
32457 (__arm_vornq_s8): Likewise.
32458 (__arm_vmulq_s8): Likewise.
32459 (__arm_vmulq_n_s8): Likewise.
32460 (__arm_vmulltq_int_s8): Likewise.
32461 (__arm_vmullbq_int_s8): Likewise.
32462 (__arm_vmulhq_s8): Likewise.
32463 (__arm_vmlsdavxq_s8): Likewise.
32464 (__arm_vmlsdavq_s8): Likewise.
32465 (__arm_vmladavxq_s8): Likewise.
32466 (__arm_vmladavq_s8): Likewise.
32467 (__arm_vminvq_s8): Likewise.
32468 (__arm_vminq_s8): Likewise.
32469 (__arm_vmaxvq_s8): Likewise.
32470 (__arm_vmaxq_s8): Likewise.
32471 (__arm_vhsubq_s8): Likewise.
32472 (__arm_vhsubq_n_s8): Likewise.
32473 (__arm_vhcaddq_rot90_s8): Likewise.
32474 (__arm_vhcaddq_rot270_s8): Likewise.
32475 (__arm_vhaddq_s8): Likewise.
32476 (__arm_vhaddq_n_s8): Likewise.
32477 (__arm_veorq_s8): Likewise.
32478 (__arm_vcaddq_rot90_s8): Likewise.
32479 (__arm_vcaddq_rot270_s8): Likewise.
32480 (__arm_vbrsrq_n_s8): Likewise.
32481 (__arm_vbicq_s8): Likewise.
32482 (__arm_vandq_s8): Likewise.
32483 (__arm_vaddvaq_s8): Likewise.
32484 (__arm_vaddq_n_s8): Likewise.
32485 (__arm_vabdq_s8): Likewise.
32486 (__arm_vshlq_n_s8): Likewise.
32487 (__arm_vrshrq_n_s8): Likewise.
32488 (__arm_vqshlq_n_s8): Likewise.
32489 (__arm_vsubq_u16): Likewise.
32490 (__arm_vsubq_n_u16): Likewise.
32491 (__arm_vrmulhq_u16): Likewise.
32492 (__arm_vrhaddq_u16): Likewise.
32493 (__arm_vqsubq_u16): Likewise.
32494 (__arm_vqsubq_n_u16): Likewise.
32495 (__arm_vqaddq_u16): Likewise.
32496 (__arm_vqaddq_n_u16): Likewise.
32497 (__arm_vorrq_u16): Likewise.
32498 (__arm_vornq_u16): Likewise.
32499 (__arm_vmulq_u16): Likewise.
32500 (__arm_vmulq_n_u16): Likewise.
32501 (__arm_vmulltq_int_u16): Likewise.
32502 (__arm_vmullbq_int_u16): Likewise.
32503 (__arm_vmulhq_u16): Likewise.
32504 (__arm_vmladavq_u16): Likewise.
32505 (__arm_vminvq_u16): Likewise.
32506 (__arm_vminq_u16): Likewise.
32507 (__arm_vmaxvq_u16): Likewise.
32508 (__arm_vmaxq_u16): Likewise.
32509 (__arm_vhsubq_u16): Likewise.
32510 (__arm_vhsubq_n_u16): Likewise.
32511 (__arm_vhaddq_u16): Likewise.
32512 (__arm_vhaddq_n_u16): Likewise.
32513 (__arm_veorq_u16): Likewise.
32514 (__arm_vcmpneq_n_u16): Likewise.
32515 (__arm_vcmphiq_u16): Likewise.
32516 (__arm_vcmphiq_n_u16): Likewise.
32517 (__arm_vcmpeqq_u16): Likewise.
32518 (__arm_vcmpeqq_n_u16): Likewise.
32519 (__arm_vcmpcsq_u16): Likewise.
32520 (__arm_vcmpcsq_n_u16): Likewise.
32521 (__arm_vcaddq_rot90_u16): Likewise.
32522 (__arm_vcaddq_rot270_u16): Likewise.
32523 (__arm_vbicq_u16): Likewise.
32524 (__arm_vandq_u16): Likewise.
32525 (__arm_vaddvq_p_u16): Likewise.
32526 (__arm_vaddvaq_u16): Likewise.
32527 (__arm_vaddq_n_u16): Likewise.
32528 (__arm_vabdq_u16): Likewise.
32529 (__arm_vshlq_r_u16): Likewise.
32530 (__arm_vrshlq_u16): Likewise.
32531 (__arm_vrshlq_n_u16): Likewise.
32532 (__arm_vqshlq_u16): Likewise.
32533 (__arm_vqshlq_r_u16): Likewise.
32534 (__arm_vqrshlq_u16): Likewise.
32535 (__arm_vqrshlq_n_u16): Likewise.
32536 (__arm_vminavq_s16): Likewise.
32537 (__arm_vminaq_s16): Likewise.
32538 (__arm_vmaxavq_s16): Likewise.
32539 (__arm_vmaxaq_s16): Likewise.
32540 (__arm_vbrsrq_n_u16): Likewise.
32541 (__arm_vshlq_n_u16): Likewise.
32542 (__arm_vrshrq_n_u16): Likewise.
32543 (__arm_vqshlq_n_u16): Likewise.
32544 (__arm_vcmpneq_n_s16): Likewise.
32545 (__arm_vcmpltq_s16): Likewise.
32546 (__arm_vcmpltq_n_s16): Likewise.
32547 (__arm_vcmpleq_s16): Likewise.
32548 (__arm_vcmpleq_n_s16): Likewise.
32549 (__arm_vcmpgtq_s16): Likewise.
32550 (__arm_vcmpgtq_n_s16): Likewise.
32551 (__arm_vcmpgeq_s16): Likewise.
32552 (__arm_vcmpgeq_n_s16): Likewise.
32553 (__arm_vcmpeqq_s16): Likewise.
32554 (__arm_vcmpeqq_n_s16): Likewise.
32555 (__arm_vqshluq_n_s16): Likewise.
32556 (__arm_vaddvq_p_s16): Likewise.
32557 (__arm_vsubq_s16): Likewise.
32558 (__arm_vsubq_n_s16): Likewise.
32559 (__arm_vshlq_r_s16): Likewise.
32560 (__arm_vrshlq_s16): Likewise.
32561 (__arm_vrshlq_n_s16): Likewise.
32562 (__arm_vrmulhq_s16): Likewise.
32563 (__arm_vrhaddq_s16): Likewise.
32564 (__arm_vqsubq_s16): Likewise.
32565 (__arm_vqsubq_n_s16): Likewise.
32566 (__arm_vqshlq_s16): Likewise.
32567 (__arm_vqshlq_r_s16): Likewise.
32568 (__arm_vqrshlq_s16): Likewise.
32569 (__arm_vqrshlq_n_s16): Likewise.
32570 (__arm_vqrdmulhq_s16): Likewise.
32571 (__arm_vqrdmulhq_n_s16): Likewise.
32572 (__arm_vqdmulhq_s16): Likewise.
32573 (__arm_vqdmulhq_n_s16): Likewise.
32574 (__arm_vqaddq_s16): Likewise.
32575 (__arm_vqaddq_n_s16): Likewise.
32576 (__arm_vorrq_s16): Likewise.
32577 (__arm_vornq_s16): Likewise.
32578 (__arm_vmulq_s16): Likewise.
32579 (__arm_vmulq_n_s16): Likewise.
32580 (__arm_vmulltq_int_s16): Likewise.
32581 (__arm_vmullbq_int_s16): Likewise.
32582 (__arm_vmulhq_s16): Likewise.
32583 (__arm_vmlsdavxq_s16): Likewise.
32584 (__arm_vmlsdavq_s16): Likewise.
32585 (__arm_vmladavxq_s16): Likewise.
32586 (__arm_vmladavq_s16): Likewise.
32587 (__arm_vminvq_s16): Likewise.
32588 (__arm_vminq_s16): Likewise.
32589 (__arm_vmaxvq_s16): Likewise.
32590 (__arm_vmaxq_s16): Likewise.
32591 (__arm_vhsubq_s16): Likewise.
32592 (__arm_vhsubq_n_s16): Likewise.
32593 (__arm_vhcaddq_rot90_s16): Likewise.
32594 (__arm_vhcaddq_rot270_s16): Likewise.
32595 (__arm_vhaddq_s16): Likewise.
32596 (__arm_vhaddq_n_s16): Likewise.
32597 (__arm_veorq_s16): Likewise.
32598 (__arm_vcaddq_rot90_s16): Likewise.
32599 (__arm_vcaddq_rot270_s16): Likewise.
32600 (__arm_vbrsrq_n_s16): Likewise.
32601 (__arm_vbicq_s16): Likewise.
32602 (__arm_vandq_s16): Likewise.
32603 (__arm_vaddvaq_s16): Likewise.
32604 (__arm_vaddq_n_s16): Likewise.
32605 (__arm_vabdq_s16): Likewise.
32606 (__arm_vshlq_n_s16): Likewise.
32607 (__arm_vrshrq_n_s16): Likewise.
32608 (__arm_vqshlq_n_s16): Likewise.
32609 (__arm_vsubq_u32): Likewise.
32610 (__arm_vsubq_n_u32): Likewise.
32611 (__arm_vrmulhq_u32): Likewise.
32612 (__arm_vrhaddq_u32): Likewise.
32613 (__arm_vqsubq_u32): Likewise.
32614 (__arm_vqsubq_n_u32): Likewise.
32615 (__arm_vqaddq_u32): Likewise.
32616 (__arm_vqaddq_n_u32): Likewise.
32617 (__arm_vorrq_u32): Likewise.
32618 (__arm_vornq_u32): Likewise.
32619 (__arm_vmulq_u32): Likewise.
32620 (__arm_vmulq_n_u32): Likewise.
32621 (__arm_vmulltq_int_u32): Likewise.
32622 (__arm_vmullbq_int_u32): Likewise.
32623 (__arm_vmulhq_u32): Likewise.
32624 (__arm_vmladavq_u32): Likewise.
32625 (__arm_vminvq_u32): Likewise.
32626 (__arm_vminq_u32): Likewise.
32627 (__arm_vmaxvq_u32): Likewise.
32628 (__arm_vmaxq_u32): Likewise.
32629 (__arm_vhsubq_u32): Likewise.
32630 (__arm_vhsubq_n_u32): Likewise.
32631 (__arm_vhaddq_u32): Likewise.
32632 (__arm_vhaddq_n_u32): Likewise.
32633 (__arm_veorq_u32): Likewise.
32634 (__arm_vcmpneq_n_u32): Likewise.
32635 (__arm_vcmphiq_u32): Likewise.
32636 (__arm_vcmphiq_n_u32): Likewise.
32637 (__arm_vcmpeqq_u32): Likewise.
32638 (__arm_vcmpeqq_n_u32): Likewise.
32639 (__arm_vcmpcsq_u32): Likewise.
32640 (__arm_vcmpcsq_n_u32): Likewise.
32641 (__arm_vcaddq_rot90_u32): Likewise.
32642 (__arm_vcaddq_rot270_u32): Likewise.
32643 (__arm_vbicq_u32): Likewise.
32644 (__arm_vandq_u32): Likewise.
32645 (__arm_vaddvq_p_u32): Likewise.
32646 (__arm_vaddvaq_u32): Likewise.
32647 (__arm_vaddq_n_u32): Likewise.
32648 (__arm_vabdq_u32): Likewise.
32649 (__arm_vshlq_r_u32): Likewise.
32650 (__arm_vrshlq_u32): Likewise.
32651 (__arm_vrshlq_n_u32): Likewise.
32652 (__arm_vqshlq_u32): Likewise.
32653 (__arm_vqshlq_r_u32): Likewise.
32654 (__arm_vqrshlq_u32): Likewise.
32655 (__arm_vqrshlq_n_u32): Likewise.
32656 (__arm_vminavq_s32): Likewise.
32657 (__arm_vminaq_s32): Likewise.
32658 (__arm_vmaxavq_s32): Likewise.
32659 (__arm_vmaxaq_s32): Likewise.
32660 (__arm_vbrsrq_n_u32): Likewise.
32661 (__arm_vshlq_n_u32): Likewise.
32662 (__arm_vrshrq_n_u32): Likewise.
32663 (__arm_vqshlq_n_u32): Likewise.
32664 (__arm_vcmpneq_n_s32): Likewise.
32665 (__arm_vcmpltq_s32): Likewise.
32666 (__arm_vcmpltq_n_s32): Likewise.
32667 (__arm_vcmpleq_s32): Likewise.
32668 (__arm_vcmpleq_n_s32): Likewise.
32669 (__arm_vcmpgtq_s32): Likewise.
32670 (__arm_vcmpgtq_n_s32): Likewise.
32671 (__arm_vcmpgeq_s32): Likewise.
32672 (__arm_vcmpgeq_n_s32): Likewise.
32673 (__arm_vcmpeqq_s32): Likewise.
32674 (__arm_vcmpeqq_n_s32): Likewise.
32675 (__arm_vqshluq_n_s32): Likewise.
32676 (__arm_vaddvq_p_s32): Likewise.
32677 (__arm_vsubq_s32): Likewise.
32678 (__arm_vsubq_n_s32): Likewise.
32679 (__arm_vshlq_r_s32): Likewise.
32680 (__arm_vrshlq_s32): Likewise.
32681 (__arm_vrshlq_n_s32): Likewise.
32682 (__arm_vrmulhq_s32): Likewise.
32683 (__arm_vrhaddq_s32): Likewise.
32684 (__arm_vqsubq_s32): Likewise.
32685 (__arm_vqsubq_n_s32): Likewise.
32686 (__arm_vqshlq_s32): Likewise.
32687 (__arm_vqshlq_r_s32): Likewise.
32688 (__arm_vqrshlq_s32): Likewise.
32689 (__arm_vqrshlq_n_s32): Likewise.
32690 (__arm_vqrdmulhq_s32): Likewise.
32691 (__arm_vqrdmulhq_n_s32): Likewise.
32692 (__arm_vqdmulhq_s32): Likewise.
32693 (__arm_vqdmulhq_n_s32): Likewise.
32694 (__arm_vqaddq_s32): Likewise.
32695 (__arm_vqaddq_n_s32): Likewise.
32696 (__arm_vorrq_s32): Likewise.
32697 (__arm_vornq_s32): Likewise.
32698 (__arm_vmulq_s32): Likewise.
32699 (__arm_vmulq_n_s32): Likewise.
32700 (__arm_vmulltq_int_s32): Likewise.
32701 (__arm_vmullbq_int_s32): Likewise.
32702 (__arm_vmulhq_s32): Likewise.
32703 (__arm_vmlsdavxq_s32): Likewise.
32704 (__arm_vmlsdavq_s32): Likewise.
32705 (__arm_vmladavxq_s32): Likewise.
32706 (__arm_vmladavq_s32): Likewise.
32707 (__arm_vminvq_s32): Likewise.
32708 (__arm_vminq_s32): Likewise.
32709 (__arm_vmaxvq_s32): Likewise.
32710 (__arm_vmaxq_s32): Likewise.
32711 (__arm_vhsubq_s32): Likewise.
32712 (__arm_vhsubq_n_s32): Likewise.
32713 (__arm_vhcaddq_rot90_s32): Likewise.
32714 (__arm_vhcaddq_rot270_s32): Likewise.
32715 (__arm_vhaddq_s32): Likewise.
32716 (__arm_vhaddq_n_s32): Likewise.
32717 (__arm_veorq_s32): Likewise.
32718 (__arm_vcaddq_rot90_s32): Likewise.
32719 (__arm_vcaddq_rot270_s32): Likewise.
32720 (__arm_vbrsrq_n_s32): Likewise.
32721 (__arm_vbicq_s32): Likewise.
32722 (__arm_vandq_s32): Likewise.
32723 (__arm_vaddvaq_s32): Likewise.
32724 (__arm_vaddq_n_s32): Likewise.
32725 (__arm_vabdq_s32): Likewise.
32726 (__arm_vshlq_n_s32): Likewise.
32727 (__arm_vrshrq_n_s32): Likewise.
32728 (__arm_vqshlq_n_s32): Likewise.
32729 (vsubq): Define polymorphic variant.
32730 (vsubq_n): Likewise.
32731 (vshlq_r): Likewise.
32732 (vrshlq_n): Likewise.
32733 (vrshlq): Likewise.
32734 (vrmulhq): Likewise.
32735 (vrhaddq): Likewise.
32736 (vqsubq_n): Likewise.
32737 (vqsubq): Likewise.
32738 (vqshlq): Likewise.
32739 (vqshlq_r): Likewise.
32740 (vqshluq): Likewise.
32741 (vrshrq_n): Likewise.
32742 (vshlq_n): Likewise.
32743 (vqshluq_n): Likewise.
32744 (vqshlq_n): Likewise.
32745 (vqrshlq_n): Likewise.
32746 (vqrshlq): Likewise.
32747 (vqrdmulhq_n): Likewise.
32748 (vqrdmulhq): Likewise.
32749 (vqdmulhq_n): Likewise.
32750 (vqdmulhq): Likewise.
32751 (vqaddq_n): Likewise.
32752 (vqaddq): Likewise.
32753 (vorrq_n): Likewise.
32756 (vmulq_n): Likewise.
32758 (vmulltq_int): Likewise.
32759 (vmullbq_int): Likewise.
32760 (vmulhq): Likewise.
32762 (vminaq): Likewise.
32764 (vmaxaq): Likewise.
32765 (vhsubq_n): Likewise.
32766 (vhsubq): Likewise.
32767 (vhcaddq_rot90): Likewise.
32768 (vhcaddq_rot270): Likewise.
32769 (vhaddq_n): Likewise.
32770 (vhaddq): Likewise.
32772 (vcaddq_rot90): Likewise.
32773 (vcaddq_rot270): Likewise.
32774 (vbrsrq_n): Likewise.
32775 (vbicq_n): Likewise.
32778 (vaddq_n): Likewise.
32781 * config/arm/arm_mve_builtins.def (BINOP_NONE_NONE_IMM): Use it.
32782 (BINOP_NONE_NONE_NONE): Likewise.
32783 (BINOP_NONE_NONE_UNONE): Likewise.
32784 (BINOP_UNONE_NONE_IMM): Likewise.
32785 (BINOP_UNONE_NONE_NONE): Likewise.
32786 (BINOP_UNONE_UNONE_IMM): Likewise.
32787 (BINOP_UNONE_UNONE_NONE): Likewise.
32788 (BINOP_UNONE_UNONE_UNONE): Likewise.
32789 * config/arm/constraints.md (Ra): Define constraint to check constant is
32790 in the range of 0 to 7.
32791 (Rg): Define constriant to check the constant is one among 1, 2, 4
32793 * config/arm/mve.md (mve_vabdq_<supf>): Define RTL pattern.
32794 (mve_vaddq_n_<supf>): Likewise.
32795 (mve_vaddvaq_<supf>): Likewise.
32796 (mve_vaddvq_p_<supf>): Likewise.
32797 (mve_vandq_<supf>): Likewise.
32798 (mve_vbicq_<supf>): Likewise.
32799 (mve_vbrsrq_n_<supf>): Likewise.
32800 (mve_vcaddq_rot270_<supf>): Likewise.
32801 (mve_vcaddq_rot90_<supf>): Likewise.
32802 (mve_vcmpcsq_n_u): Likewise.
32803 (mve_vcmpcsq_u): Likewise.
32804 (mve_vcmpeqq_n_<supf>): Likewise.
32805 (mve_vcmpeqq_<supf>): Likewise.
32806 (mve_vcmpgeq_n_s): Likewise.
32807 (mve_vcmpgeq_s): Likewise.
32808 (mve_vcmpgtq_n_s): Likewise.
32809 (mve_vcmpgtq_s): Likewise.
32810 (mve_vcmphiq_n_u): Likewise.
32811 (mve_vcmphiq_u): Likewise.
32812 (mve_vcmpleq_n_s): Likewise.
32813 (mve_vcmpleq_s): Likewise.
32814 (mve_vcmpltq_n_s): Likewise.
32815 (mve_vcmpltq_s): Likewise.
32816 (mve_vcmpneq_n_<supf>): Likewise.
32817 (mve_vddupq_n_u): Likewise.
32818 (mve_veorq_<supf>): Likewise.
32819 (mve_vhaddq_n_<supf>): Likewise.
32820 (mve_vhaddq_<supf>): Likewise.
32821 (mve_vhcaddq_rot270_s): Likewise.
32822 (mve_vhcaddq_rot90_s): Likewise.
32823 (mve_vhsubq_n_<supf>): Likewise.
32824 (mve_vhsubq_<supf>): Likewise.
32825 (mve_vidupq_n_u): Likewise.
32826 (mve_vmaxaq_s): Likewise.
32827 (mve_vmaxavq_s): Likewise.
32828 (mve_vmaxq_<supf>): Likewise.
32829 (mve_vmaxvq_<supf>): Likewise.
32830 (mve_vminaq_s): Likewise.
32831 (mve_vminavq_s): Likewise.
32832 (mve_vminq_<supf>): Likewise.
32833 (mve_vminvq_<supf>): Likewise.
32834 (mve_vmladavq_<supf>): Likewise.
32835 (mve_vmladavxq_s): Likewise.
32836 (mve_vmlsdavq_s): Likewise.
32837 (mve_vmlsdavxq_s): Likewise.
32838 (mve_vmulhq_<supf>): Likewise.
32839 (mve_vmullbq_int_<supf>): Likewise.
32840 (mve_vmulltq_int_<supf>): Likewise.
32841 (mve_vmulq_n_<supf>): Likewise.
32842 (mve_vmulq_<supf>): Likewise.
32843 (mve_vornq_<supf>): Likewise.
32844 (mve_vorrq_<supf>): Likewise.
32845 (mve_vqaddq_n_<supf>): Likewise.
32846 (mve_vqaddq_<supf>): Likewise.
32847 (mve_vqdmulhq_n_s): Likewise.
32848 (mve_vqdmulhq_s): Likewise.
32849 (mve_vqrdmulhq_n_s): Likewise.
32850 (mve_vqrdmulhq_s): Likewise.
32851 (mve_vqrshlq_n_<supf>): Likewise.
32852 (mve_vqrshlq_<supf>): Likewise.
32853 (mve_vqshlq_n_<supf>): Likewise.
32854 (mve_vqshlq_r_<supf>): Likewise.
32855 (mve_vqshlq_<supf>): Likewise.
32856 (mve_vqshluq_n_s): Likewise.
32857 (mve_vqsubq_n_<supf>): Likewise.
32858 (mve_vqsubq_<supf>): Likewise.
32859 (mve_vrhaddq_<supf>): Likewise.
32860 (mve_vrmulhq_<supf>): Likewise.
32861 (mve_vrshlq_n_<supf>): Likewise.
32862 (mve_vrshlq_<supf>): Likewise.
32863 (mve_vrshrq_n_<supf>): Likewise.
32864 (mve_vshlq_n_<supf>): Likewise.
32865 (mve_vshlq_r_<supf>): Likewise.
32866 (mve_vsubq_n_<supf>): Likewise.
32867 (mve_vsubq_<supf>): Likewise.
32868 * config/arm/predicates.md (mve_imm_7): Define predicate to check
32869 the matching constraint Ra.
32870 (mve_imm_selective_upto_8): Define predicate to check the matching
32873 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
32874 Mihail Ionescu <mihail.ionescu@arm.com>
32875 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
32877 * config/arm/arm-builtins.c (BINOP_NONE_NONE_UNONE_QUALIFIERS): Define
32878 qualifier for binary operands.
32879 (BINOP_UNONE_NONE_NONE_QUALIFIERS): Likewise.
32880 (BINOP_UNONE_UNONE_NONE_QUALIFIERS): Likewise.
32881 * config/arm/arm_mve.h (vaddlvq_p_s32): Define macro.
32882 (vaddlvq_p_u32): Likewise.
32883 (vcmpneq_s8): Likewise.
32884 (vcmpneq_s16): Likewise.
32885 (vcmpneq_s32): Likewise.
32886 (vcmpneq_u8): Likewise.
32887 (vcmpneq_u16): Likewise.
32888 (vcmpneq_u32): Likewise.
32889 (vshlq_s8): Likewise.
32890 (vshlq_s16): Likewise.
32891 (vshlq_s32): Likewise.
32892 (vshlq_u8): Likewise.
32893 (vshlq_u16): Likewise.
32894 (vshlq_u32): Likewise.
32895 (__arm_vaddlvq_p_s32): Define intrinsic.
32896 (__arm_vaddlvq_p_u32): Likewise.
32897 (__arm_vcmpneq_s8): Likewise.
32898 (__arm_vcmpneq_s16): Likewise.
32899 (__arm_vcmpneq_s32): Likewise.
32900 (__arm_vcmpneq_u8): Likewise.
32901 (__arm_vcmpneq_u16): Likewise.
32902 (__arm_vcmpneq_u32): Likewise.
32903 (__arm_vshlq_s8): Likewise.
32904 (__arm_vshlq_s16): Likewise.
32905 (__arm_vshlq_s32): Likewise.
32906 (__arm_vshlq_u8): Likewise.
32907 (__arm_vshlq_u16): Likewise.
32908 (__arm_vshlq_u32): Likewise.
32909 (vaddlvq_p): Define polymorphic variant.
32910 (vcmpneq): Likewise.
32912 * config/arm/arm_mve_builtins.def (BINOP_NONE_NONE_UNONE_QUALIFIERS):
32914 (BINOP_UNONE_NONE_NONE_QUALIFIERS): Likewise.
32915 (BINOP_UNONE_UNONE_NONE_QUALIFIERS): Likewise.
32916 * config/arm/mve.md (mve_vaddlvq_p_<supf>v4si): Define RTL pattern.
32917 (mve_vcmpneq_<supf><mode>): Likewise.
32918 (mve_vshlq_<supf><mode>): Likewise.
32920 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
32921 Mihail Ionescu <mihail.ionescu@arm.com>
32922 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
32924 * config/arm/arm-builtins.c (BINOP_UNONE_UNONE_IMM_QUALIFIERS): Define
32925 qualifier for binary operands.
32926 (BINOP_UNONE_UNONE_UNONE_QUALIFIERS): Likewise.
32927 (BINOP_UNONE_NONE_IMM_QUALIFIERS): Likewise.
32928 * config/arm/arm_mve.h (vcvtq_n_s16_f16): Define macro.
32929 (vcvtq_n_s32_f32): Likewise.
32930 (vcvtq_n_u16_f16): Likewise.
32931 (vcvtq_n_u32_f32): Likewise.
32932 (vcreateq_u8): Likewise.
32933 (vcreateq_u16): Likewise.
32934 (vcreateq_u32): Likewise.
32935 (vcreateq_u64): Likewise.
32936 (vcreateq_s8): Likewise.
32937 (vcreateq_s16): Likewise.
32938 (vcreateq_s32): Likewise.
32939 (vcreateq_s64): Likewise.
32940 (vshrq_n_s8): Likewise.
32941 (vshrq_n_s16): Likewise.
32942 (vshrq_n_s32): Likewise.
32943 (vshrq_n_u8): Likewise.
32944 (vshrq_n_u16): Likewise.
32945 (vshrq_n_u32): Likewise.
32946 (__arm_vcreateq_u8): Define intrinsic.
32947 (__arm_vcreateq_u16): Likewise.
32948 (__arm_vcreateq_u32): Likewise.
32949 (__arm_vcreateq_u64): Likewise.
32950 (__arm_vcreateq_s8): Likewise.
32951 (__arm_vcreateq_s16): Likewise.
32952 (__arm_vcreateq_s32): Likewise.
32953 (__arm_vcreateq_s64): Likewise.
32954 (__arm_vshrq_n_s8): Likewise.
32955 (__arm_vshrq_n_s16): Likewise.
32956 (__arm_vshrq_n_s32): Likewise.
32957 (__arm_vshrq_n_u8): Likewise.
32958 (__arm_vshrq_n_u16): Likewise.
32959 (__arm_vshrq_n_u32): Likewise.
32960 (__arm_vcvtq_n_s16_f16): Likewise.
32961 (__arm_vcvtq_n_s32_f32): Likewise.
32962 (__arm_vcvtq_n_u16_f16): Likewise.
32963 (__arm_vcvtq_n_u32_f32): Likewise.
32964 (vshrq_n): Define polymorphic variant.
32965 * config/arm/arm_mve_builtins.def (BINOP_UNONE_UNONE_IMM_QUALIFIERS):
32967 (BINOP_UNONE_UNONE_UNONE_QUALIFIERS): Likewise.
32968 (BINOP_UNONE_NONE_IMM_QUALIFIERS): Likewise.
32969 * config/arm/constraints.md (Rb): Define constraint to check constant is
32970 in the range of 1 to 8.
32971 (Rf): Define constraint to check constant is in the range of 1 to 32.
32972 * config/arm/mve.md (mve_vcreateq_<supf><mode>): Define RTL pattern.
32973 (mve_vshrq_n_<supf><mode>): Likewise.
32974 (mve_vcvtq_n_from_f_<supf><mode>): Likewise.
32975 * config/arm/predicates.md (mve_imm_8): Define predicate to check
32976 the matching constraint Rb.
32977 (mve_imm_32): Define predicate to check the matching constraint Rf.
32979 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
32980 Mihail Ionescu <mihail.ionescu@arm.com>
32981 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
32983 * config/arm/arm-builtins.c (BINOP_NONE_NONE_NONE_QUALIFIERS): Define
32984 qualifier for binary operands.
32985 (BINOP_NONE_NONE_IMM_QUALIFIERS): Likewise.
32986 (BINOP_NONE_UNONE_IMM_QUALIFIERS): Likewise.
32987 (BINOP_NONE_UNONE_UNONE_QUALIFIERS): Likewise.
32988 * config/arm/arm_mve.h (vsubq_n_f16): Define macro.
32989 (vsubq_n_f32): Likewise.
32990 (vbrsrq_n_f16): Likewise.
32991 (vbrsrq_n_f32): Likewise.
32992 (vcvtq_n_f16_s16): Likewise.
32993 (vcvtq_n_f32_s32): Likewise.
32994 (vcvtq_n_f16_u16): Likewise.
32995 (vcvtq_n_f32_u32): Likewise.
32996 (vcreateq_f16): Likewise.
32997 (vcreateq_f32): Likewise.
32998 (__arm_vsubq_n_f16): Define intrinsic.
32999 (__arm_vsubq_n_f32): Likewise.
33000 (__arm_vbrsrq_n_f16): Likewise.
33001 (__arm_vbrsrq_n_f32): Likewise.
33002 (__arm_vcvtq_n_f16_s16): Likewise.
33003 (__arm_vcvtq_n_f32_s32): Likewise.
33004 (__arm_vcvtq_n_f16_u16): Likewise.
33005 (__arm_vcvtq_n_f32_u32): Likewise.
33006 (__arm_vcreateq_f16): Likewise.
33007 (__arm_vcreateq_f32): Likewise.
33008 (vsubq): Define polymorphic variant.
33009 (vbrsrq): Likewise.
33010 (vcvtq_n): Likewise.
33011 * config/arm/arm_mve_builtins.def (BINOP_NONE_NONE_NONE_QUALIFIERS): Use
33013 (BINOP_NONE_NONE_IMM_QUALIFIERS): Likewise.
33014 (BINOP_NONE_UNONE_IMM_QUALIFIERS): Likewise.
33015 (BINOP_NONE_UNONE_UNONE_QUALIFIERS): Likewise.
33016 * config/arm/constraints.md (Rd): Define constraint to check constant is
33017 in the range of 1 to 16.
33018 * config/arm/mve.md (mve_vsubq_n_f<mode>): Define RTL pattern.
33019 mve_vbrsrq_n_f<mode>: Likewise.
33020 mve_vcvtq_n_to_f_<supf><mode>: Likewise.
33021 mve_vcreateq_f<mode>: Likewise.
33022 * config/arm/predicates.md (mve_imm_16): Define predicate to check
33023 the matching constraint Rd.
33025 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
33026 Mihail Ionescu <mihail.ionescu@arm.com>
33027 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
33029 * config/arm/arm-builtins.c (hi_UP): Define mode.
33030 * config/arm/arm.h (IS_VPR_REGNUM): Move.
33031 * config/arm/arm.md (VPR_REGNUM): Define before APSRQ_REGNUM.
33032 (APSRQ_REGNUM): Modify.
33033 (APSRGE_REGNUM): Modify.
33034 * config/arm/arm_mve.h (vctp16q): Define macro.
33035 (vctp32q): Likewise.
33036 (vctp64q): Likewise.
33037 (vctp8q): Likewise.
33039 (__arm_vctp16q): Define intrinsic.
33040 (__arm_vctp32q): Likewise.
33041 (__arm_vctp64q): Likewise.
33042 (__arm_vctp8q): Likewise.
33043 (__arm_vpnot): Likewise.
33044 * config/arm/arm_mve_builtins.def (UNOP_UNONE_UNONE): Use builtin
33046 * config/arm/mve.md (mve_vctp<mode1>qhi): Define RTL pattern.
33047 (mve_vpnothi): Likewise.
33049 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
33050 Mihail Ionescu <mihail.ionescu@arm.com>
33051 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
33053 * config/arm/arm.h (enum reg_class): Define new class EVEN_REGS.
33054 * config/arm/arm_mve.h (vdupq_n_s8): Define macro.
33055 (vdupq_n_s16): Likewise.
33056 (vdupq_n_s32): Likewise.
33057 (vabsq_s8): Likewise.
33058 (vabsq_s16): Likewise.
33059 (vabsq_s32): Likewise.
33060 (vclsq_s8): Likewise.
33061 (vclsq_s16): Likewise.
33062 (vclsq_s32): Likewise.
33063 (vclzq_s8): Likewise.
33064 (vclzq_s16): Likewise.
33065 (vclzq_s32): Likewise.
33066 (vnegq_s8): Likewise.
33067 (vnegq_s16): Likewise.
33068 (vnegq_s32): Likewise.
33069 (vaddlvq_s32): Likewise.
33070 (vaddvq_s8): Likewise.
33071 (vaddvq_s16): Likewise.
33072 (vaddvq_s32): Likewise.
33073 (vmovlbq_s8): Likewise.
33074 (vmovlbq_s16): Likewise.
33075 (vmovltq_s8): Likewise.
33076 (vmovltq_s16): Likewise.
33077 (vmvnq_s8): Likewise.
33078 (vmvnq_s16): Likewise.
33079 (vmvnq_s32): Likewise.
33080 (vrev16q_s8): Likewise.
33081 (vrev32q_s8): Likewise.
33082 (vrev32q_s16): Likewise.
33083 (vqabsq_s8): Likewise.
33084 (vqabsq_s16): Likewise.
33085 (vqabsq_s32): Likewise.
33086 (vqnegq_s8): Likewise.
33087 (vqnegq_s16): Likewise.
33088 (vqnegq_s32): Likewise.
33089 (vcvtaq_s16_f16): Likewise.
33090 (vcvtaq_s32_f32): Likewise.
33091 (vcvtnq_s16_f16): Likewise.
33092 (vcvtnq_s32_f32): Likewise.
33093 (vcvtpq_s16_f16): Likewise.
33094 (vcvtpq_s32_f32): Likewise.
33095 (vcvtmq_s16_f16): Likewise.
33096 (vcvtmq_s32_f32): Likewise.
33097 (vmvnq_u8): Likewise.
33098 (vmvnq_u16): Likewise.
33099 (vmvnq_u32): Likewise.
33100 (vdupq_n_u8): Likewise.
33101 (vdupq_n_u16): Likewise.
33102 (vdupq_n_u32): Likewise.
33103 (vclzq_u8): Likewise.
33104 (vclzq_u16): Likewise.
33105 (vclzq_u32): Likewise.
33106 (vaddvq_u8): Likewise.
33107 (vaddvq_u16): Likewise.
33108 (vaddvq_u32): Likewise.
33109 (vrev32q_u8): Likewise.
33110 (vrev32q_u16): Likewise.
33111 (vmovltq_u8): Likewise.
33112 (vmovltq_u16): Likewise.
33113 (vmovlbq_u8): Likewise.
33114 (vmovlbq_u16): Likewise.
33115 (vrev16q_u8): Likewise.
33116 (vaddlvq_u32): Likewise.
33117 (vcvtpq_u16_f16): Likewise.
33118 (vcvtpq_u32_f32): Likewise.
33119 (vcvtnq_u16_f16): Likewise.
33120 (vcvtmq_u16_f16): Likewise.
33121 (vcvtmq_u32_f32): Likewise.
33122 (vcvtaq_u16_f16): Likewise.
33123 (vcvtaq_u32_f32): Likewise.
33124 (__arm_vdupq_n_s8): Define intrinsic.
33125 (__arm_vdupq_n_s16): Likewise.
33126 (__arm_vdupq_n_s32): Likewise.
33127 (__arm_vabsq_s8): Likewise.
33128 (__arm_vabsq_s16): Likewise.
33129 (__arm_vabsq_s32): Likewise.
33130 (__arm_vclsq_s8): Likewise.
33131 (__arm_vclsq_s16): Likewise.
33132 (__arm_vclsq_s32): Likewise.
33133 (__arm_vclzq_s8): Likewise.
33134 (__arm_vclzq_s16): Likewise.
33135 (__arm_vclzq_s32): Likewise.
33136 (__arm_vnegq_s8): Likewise.
33137 (__arm_vnegq_s16): Likewise.
33138 (__arm_vnegq_s32): Likewise.
33139 (__arm_vaddlvq_s32): Likewise.
33140 (__arm_vaddvq_s8): Likewise.
33141 (__arm_vaddvq_s16): Likewise.
33142 (__arm_vaddvq_s32): Likewise.
33143 (__arm_vmovlbq_s8): Likewise.
33144 (__arm_vmovlbq_s16): Likewise.
33145 (__arm_vmovltq_s8): Likewise.
33146 (__arm_vmovltq_s16): Likewise.
33147 (__arm_vmvnq_s8): Likewise.
33148 (__arm_vmvnq_s16): Likewise.
33149 (__arm_vmvnq_s32): Likewise.
33150 (__arm_vrev16q_s8): Likewise.
33151 (__arm_vrev32q_s8): Likewise.
33152 (__arm_vrev32q_s16): Likewise.
33153 (__arm_vqabsq_s8): Likewise.
33154 (__arm_vqabsq_s16): Likewise.
33155 (__arm_vqabsq_s32): Likewise.
33156 (__arm_vqnegq_s8): Likewise.
33157 (__arm_vqnegq_s16): Likewise.
33158 (__arm_vqnegq_s32): Likewise.
33159 (__arm_vmvnq_u8): Likewise.
33160 (__arm_vmvnq_u16): Likewise.
33161 (__arm_vmvnq_u32): Likewise.
33162 (__arm_vdupq_n_u8): Likewise.
33163 (__arm_vdupq_n_u16): Likewise.
33164 (__arm_vdupq_n_u32): Likewise.
33165 (__arm_vclzq_u8): Likewise.
33166 (__arm_vclzq_u16): Likewise.
33167 (__arm_vclzq_u32): Likewise.
33168 (__arm_vaddvq_u8): Likewise.
33169 (__arm_vaddvq_u16): Likewise.
33170 (__arm_vaddvq_u32): Likewise.
33171 (__arm_vrev32q_u8): Likewise.
33172 (__arm_vrev32q_u16): Likewise.
33173 (__arm_vmovltq_u8): Likewise.
33174 (__arm_vmovltq_u16): Likewise.
33175 (__arm_vmovlbq_u8): Likewise.
33176 (__arm_vmovlbq_u16): Likewise.
33177 (__arm_vrev16q_u8): Likewise.
33178 (__arm_vaddlvq_u32): Likewise.
33179 (__arm_vcvtpq_u16_f16): Likewise.
33180 (__arm_vcvtpq_u32_f32): Likewise.
33181 (__arm_vcvtnq_u16_f16): Likewise.
33182 (__arm_vcvtmq_u16_f16): Likewise.
33183 (__arm_vcvtmq_u32_f32): Likewise.
33184 (__arm_vcvtaq_u16_f16): Likewise.
33185 (__arm_vcvtaq_u32_f32): Likewise.
33186 (__arm_vcvtaq_s16_f16): Likewise.
33187 (__arm_vcvtaq_s32_f32): Likewise.
33188 (__arm_vcvtnq_s16_f16): Likewise.
33189 (__arm_vcvtnq_s32_f32): Likewise.
33190 (__arm_vcvtpq_s16_f16): Likewise.
33191 (__arm_vcvtpq_s32_f32): Likewise.
33192 (__arm_vcvtmq_s16_f16): Likewise.
33193 (__arm_vcvtmq_s32_f32): Likewise.
33194 (vdupq_n): Define polymorphic variant.
33199 (vaddlvq): Likewise.
33200 (vaddvq): Likewise.
33201 (vmovlbq): Likewise.
33202 (vmovltq): Likewise.
33204 (vrev16q): Likewise.
33205 (vrev32q): Likewise.
33206 (vqabsq): Likewise.
33207 (vqnegq): Likewise.
33208 * config/arm/arm_mve_builtins.def (UNOP_SNONE_SNONE): Use it.
33209 (UNOP_SNONE_NONE): Likewise.
33210 (UNOP_UNONE_UNONE): Likewise.
33211 (UNOP_UNONE_NONE): Likewise.
33212 * config/arm/constraints.md (e): Define new constriant to allow only
33214 * config/arm/mve.md (mve_vqabsq_s<mode>): Define RTL pattern.
33215 (mve_vnegq_s<mode>): Likewise.
33216 (mve_vmvnq_<supf><mode>): Likewise.
33217 (mve_vdupq_n_<supf><mode>): Likewise.
33218 (mve_vclzq_<supf><mode>): Likewise.
33219 (mve_vclsq_s<mode>): Likewise.
33220 (mve_vaddvq_<supf><mode>): Likewise.
33221 (mve_vabsq_s<mode>): Likewise.
33222 (mve_vrev32q_<supf><mode>): Likewise.
33223 (mve_vmovltq_<supf><mode>): Likewise.
33224 (mve_vmovlbq_<supf><mode>): Likewise.
33225 (mve_vcvtpq_<supf><mode>): Likewise.
33226 (mve_vcvtnq_<supf><mode>): Likewise.
33227 (mve_vcvtmq_<supf><mode>): Likewise.
33228 (mve_vcvtaq_<supf><mode>): Likewise.
33229 (mve_vrev16q_<supf>v16qi): Likewise.
33230 (mve_vaddlvq_<supf>v4si): Likewise.
33232 2020-03-17 Jakub Jelinek <jakub@redhat.com>
33234 * lra-spills.c (remove_pseudos): Fix up duplicated word issue in
33236 * tree-sra.c (create_access_replacement): Fix up duplicated word issue
33238 * read-rtl-function.c (find_param_by_name,
33239 function_reader::parse_enum_value, function_reader::get_insn_by_uid):
33241 * spellcheck.c (get_edit_distance_cutoff): Likewise.
33242 * tree-data-ref.c (create_ifn_alias_checks): Likewise.
33243 * tree.def (SWITCH_EXPR): Likewise.
33244 * selftest.c (assert_str_contains): Likewise.
33245 * ipa-param-manipulation.h (class ipa_param_body_adjustments):
33247 * tree-ssa-math-opts.c (convert_expand_mult_copysign): Likewise.
33248 * tree-ssa-loop-split.c (find_vdef_in_loop): Likewise.
33249 * langhooks.h (struct lang_hooks_for_decls): Likewise.
33250 * ipa-prop.h (struct ipa_param_descriptor): Likewise.
33251 * tree-ssa-strlen.c (handle_builtin_string_cmp, handle_store):
33253 * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Likewise.
33254 * tree-ssa-reassoc.c (reassociate_bb): Likewise.
33255 * tree.c (component_ref_size): Likewise.
33256 * hsa-common.c (hsa_init_compilation_unit_data): Likewise.
33257 * gimple-ssa-sprintf.c (get_string_length, format_string,
33258 format_directive): Likewise.
33259 * omp-grid.c (grid_process_kernel_body_copy): Likewise.
33260 * input.c (string_concat_db::get_string_concatenation,
33261 test_lexer_string_locations_ucn4): Likewise.
33262 * cfgexpand.c (pass_expand::execute): Likewise.
33263 * gimple-ssa-warn-restrict.c (builtin_memref::offset_out_of_bounds,
33264 maybe_diag_overlap): Likewise.
33265 * rtl.c (RTX_CODE_HWINT_P_1): Likewise.
33266 * shrink-wrap.c (spread_components): Likewise.
33267 * tree-ssa-dse.c (initialize_ao_ref_for_dse, valid_ao_ref_for_dse):
33269 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
33271 * dwarf2out.c (dwarf2out_early_finish): Likewise.
33272 * gimple-ssa-store-merging.c: Likewise.
33273 * ira-costs.c (record_operand_costs): Likewise.
33274 * tree-vect-loop.c (vectorizable_reduction): Likewise.
33275 * target.def (dispatch): Likewise.
33276 (validate_dims, gen_ccmp_first): Fix up duplicated word issue
33277 in documentation text.
33278 * doc/tm.texi: Regenerated.
33279 * config/i386/x86-tune.def (X86_TUNE_PARTIAL_FLAG_REG_STALL): Fix up
33280 duplicated word issue in a comment.
33281 * config/i386/i386.c (ix86_test_loading_unspec): Likewise.
33282 * config/i386/i386-features.c (remove_partial_avx_dependency):
33284 * config/msp430/msp430.c (msp430_select_section): Likewise.
33285 * config/gcn/gcn-run.c (load_image): Likewise.
33286 * config/aarch64/aarch64-sve.md (sve_ld1r<mode>): Likewise.
33287 * config/aarch64/aarch64.c (aarch64_gen_adjusted_ldpstp): Likewise.
33288 * config/aarch64/falkor-tag-collision-avoidance.c
33289 (single_dest_per_chain): Likewise.
33290 * config/nvptx/nvptx.c (nvptx_record_fndecl): Likewise.
33291 * config/fr30/fr30.c (fr30_arg_partial_bytes): Likewise.
33292 * config/rs6000/rs6000-string.c (expand_cmp_vec_sequence): Likewise.
33293 * config/rs6000/rs6000-p8swap.c (replace_swapped_load_constant):
33295 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Likewise.
33296 * config/rs6000/rs6000.c (rs6000_option_override_internal): Likewise.
33297 * config/rs6000/rs6000-logue.c
33298 (rs6000_emit_probe_stack_range_stack_clash): Likewise.
33299 * config/nds32/nds32-md-auxiliary.c (nds32_split_ashiftdi3): Likewise.
33300 Fix various other issues in the comment.
33302 2020-03-17 Mihail Ionescu <mihail.ionescu@arm.com>
33304 * config/arm/t-rmprofile: create new multilib for
33305 armv8.1-m.main+mve hard float and reuse v8-m.main ones for
33308 2020-03-17 Jakub Jelinek <jakub@redhat.com>
33310 PR tree-optimization/94015
33311 * tree-ssa-strlen.c (count_nonzero_bytes): Split portions of the
33312 function where EXP is address of the bytes being stored rather than
33313 the bytes themselves into count_nonzero_bytes_addr. Punt on zero
33314 sized MEM_REF. Use VAR_P macro and handle CONST_DECL like VAR_DECLs.
33315 Use ctor_for_folding instead of looking at DECL_INITIAL. Punt before
33316 calling native_encode_expr if host or target doesn't have 8-bit
33317 chars. Formatting fixes.
33318 (count_nonzero_bytes_addr): New function.
33320 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
33321 Mihail Ionescu <mihail.ionescu@arm.com>
33322 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
33324 * config/arm/arm-builtins.c (UNOP_SNONE_SNONE_QUALIFIERS): Define.
33325 (UNOP_SNONE_NONE_QUALIFIERS): Likewise.
33326 (UNOP_SNONE_IMM_QUALIFIERS): Likewise.
33327 (UNOP_UNONE_NONE_QUALIFIERS): Likewise.
33328 (UNOP_UNONE_UNONE_QUALIFIERS): Likewise.
33329 (UNOP_UNONE_IMM_QUALIFIERS): Likewise.
33330 * config/arm/arm_mve.h (vmvnq_n_s16): Define macro.
33331 (vmvnq_n_s32): Likewise.
33332 (vrev64q_s8): Likewise.
33333 (vrev64q_s16): Likewise.
33334 (vrev64q_s32): Likewise.
33335 (vcvtq_s16_f16): Likewise.
33336 (vcvtq_s32_f32): Likewise.
33337 (vrev64q_u8): Likewise.
33338 (vrev64q_u16): Likewise.
33339 (vrev64q_u32): Likewise.
33340 (vmvnq_n_u16): Likewise.
33341 (vmvnq_n_u32): Likewise.
33342 (vcvtq_u16_f16): Likewise.
33343 (vcvtq_u32_f32): Likewise.
33344 (__arm_vmvnq_n_s16): Define intrinsic.
33345 (__arm_vmvnq_n_s32): Likewise.
33346 (__arm_vrev64q_s8): Likewise.
33347 (__arm_vrev64q_s16): Likewise.
33348 (__arm_vrev64q_s32): Likewise.
33349 (__arm_vrev64q_u8): Likewise.
33350 (__arm_vrev64q_u16): Likewise.
33351 (__arm_vrev64q_u32): Likewise.
33352 (__arm_vmvnq_n_u16): Likewise.
33353 (__arm_vmvnq_n_u32): Likewise.
33354 (__arm_vcvtq_s16_f16): Likewise.
33355 (__arm_vcvtq_s32_f32): Likewise.
33356 (__arm_vcvtq_u16_f16): Likewise.
33357 (__arm_vcvtq_u32_f32): Likewise.
33358 (vrev64q): Define polymorphic variant.
33359 * config/arm/arm_mve_builtins.def (UNOP_SNONE_SNONE): Use it.
33360 (UNOP_SNONE_NONE): Likewise.
33361 (UNOP_SNONE_IMM): Likewise.
33362 (UNOP_UNONE_UNONE): Likewise.
33363 (UNOP_UNONE_NONE): Likewise.
33364 (UNOP_UNONE_IMM): Likewise.
33365 * config/arm/mve.md (mve_vrev64q_<supf><mode>): Define RTL pattern.
33366 (mve_vcvtq_from_f_<supf><mode>): Likewise.
33367 (mve_vmvnq_n_<supf><mode>): Likewise.
33369 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
33370 Mihail Ionescu <mihail.ionescu@arm.com>
33371 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
33373 * config/arm/arm-builtins.c (UNOP_NONE_NONE_QUALIFIERS): Define macro.
33374 (UNOP_NONE_SNONE_QUALIFIERS): Likewise.
33375 (UNOP_NONE_UNONE_QUALIFIERS): Likewise.
33376 * config/arm/arm_mve.h (vrndxq_f16): Define macro.
33377 (vrndxq_f32): Likewise.
33378 (vrndq_f16) Likewise.
33379 (vrndq_f32): Likewise.
33380 (vrndpq_f16): Likewise.
33381 (vrndpq_f32): Likewise.
33382 (vrndnq_f16): Likewise.
33383 (vrndnq_f32): Likewise.
33384 (vrndmq_f16): Likewise.
33385 (vrndmq_f32): Likewise.
33386 (vrndaq_f16): Likewise.
33387 (vrndaq_f32): Likewise.
33388 (vrev64q_f16): Likewise.
33389 (vrev64q_f32): Likewise.
33390 (vnegq_f16): Likewise.
33391 (vnegq_f32): Likewise.
33392 (vdupq_n_f16): Likewise.
33393 (vdupq_n_f32): Likewise.
33394 (vabsq_f16): Likewise.
33395 (vabsq_f32): Likewise.
33396 (vrev32q_f16): Likewise.
33397 (vcvttq_f32_f16): Likewise.
33398 (vcvtbq_f32_f16): Likewise.
33399 (vcvtq_f16_s16): Likewise.
33400 (vcvtq_f32_s32): Likewise.
33401 (vcvtq_f16_u16): Likewise.
33402 (vcvtq_f32_u32): Likewise.
33403 (__arm_vrndxq_f16): Define intrinsic.
33404 (__arm_vrndxq_f32): Likewise.
33405 (__arm_vrndq_f16): Likewise.
33406 (__arm_vrndq_f32): Likewise.
33407 (__arm_vrndpq_f16): Likewise.
33408 (__arm_vrndpq_f32): Likewise.
33409 (__arm_vrndnq_f16): Likewise.
33410 (__arm_vrndnq_f32): Likewise.
33411 (__arm_vrndmq_f16): Likewise.
33412 (__arm_vrndmq_f32): Likewise.
33413 (__arm_vrndaq_f16): Likewise.
33414 (__arm_vrndaq_f32): Likewise.
33415 (__arm_vrev64q_f16): Likewise.
33416 (__arm_vrev64q_f32): Likewise.
33417 (__arm_vnegq_f16): Likewise.
33418 (__arm_vnegq_f32): Likewise.
33419 (__arm_vdupq_n_f16): Likewise.
33420 (__arm_vdupq_n_f32): Likewise.
33421 (__arm_vabsq_f16): Likewise.
33422 (__arm_vabsq_f32): Likewise.
33423 (__arm_vrev32q_f16): Likewise.
33424 (__arm_vcvttq_f32_f16): Likewise.
33425 (__arm_vcvtbq_f32_f16): Likewise.
33426 (__arm_vcvtq_f16_s16): Likewise.
33427 (__arm_vcvtq_f32_s32): Likewise.
33428 (__arm_vcvtq_f16_u16): Likewise.
33429 (__arm_vcvtq_f32_u32): Likewise.
33430 (vrndxq): Define polymorphic variants.
33432 (vrndpq): Likewise.
33433 (vrndnq): Likewise.
33434 (vrndmq): Likewise.
33435 (vrndaq): Likewise.
33436 (vrev64q): Likewise.
33439 (vrev32q): Likewise.
33440 (vcvtbq_f32): Likewise.
33441 (vcvttq_f32): Likewise.
33443 * config/arm/arm_mve_builtins.def (VAR2): Define.
33445 * config/arm/mve.md (mve_vrndxq_f<mode>): Add RTL pattern.
33446 (mve_vrndq_f<mode>): Likewise.
33447 (mve_vrndpq_f<mode>): Likewise.
33448 (mve_vrndnq_f<mode>): Likewise.
33449 (mve_vrndmq_f<mode>): Likewise.
33450 (mve_vrndaq_f<mode>): Likewise.
33451 (mve_vrev64q_f<mode>): Likewise.
33452 (mve_vnegq_f<mode>): Likewise.
33453 (mve_vdupq_n_f<mode>): Likewise.
33454 (mve_vabsq_f<mode>): Likewise.
33455 (mve_vrev32q_fv8hf): Likewise.
33456 (mve_vcvttq_f32_f16v4sf): Likewise.
33457 (mve_vcvtbq_f32_f16v4sf): Likewise.
33458 (mve_vcvtq_to_f_<supf><mode>): Likewise.
33460 2020-03-16 Andre Vieira <andre.simoesdiasvieira@arm.com>
33461 Mihail Ionescu <mihail.ionescu@arm.com>
33462 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
33464 * config/arm/arm-builtins.c (CF): Define mve_builtin_data.
33466 (ARM_BUILTIN_MVE_PATTERN_START): Define.
33467 (arm_init_mve_builtins): Define function.
33468 (arm_init_builtins): Add TARGET_HAVE_MVE check.
33469 (arm_expand_builtin_1): Check the range of fcode.
33470 (arm_expand_mve_builtin): Define function to expand MVE builtins.
33471 (arm_expand_builtin): Check the range of fcode.
33472 * config/arm/arm_mve.h (__ARM_FEATURE_MVE): Define MVE floating point
33474 (__ARM_MVE_PRESERVE_USER_NAMESPACE): Define to protect user namespace.
33475 (vst4q_s8): Define macro.
33476 (vst4q_s16): Likewise.
33477 (vst4q_s32): Likewise.
33478 (vst4q_u8): Likewise.
33479 (vst4q_u16): Likewise.
33480 (vst4q_u32): Likewise.
33481 (vst4q_f16): Likewise.
33482 (vst4q_f32): Likewise.
33483 (__arm_vst4q_s8): Define inline builtin.
33484 (__arm_vst4q_s16): Likewise.
33485 (__arm_vst4q_s32): Likewise.
33486 (__arm_vst4q_u8): Likewise.
33487 (__arm_vst4q_u16): Likewise.
33488 (__arm_vst4q_u32): Likewise.
33489 (__arm_vst4q_f16): Likewise.
33490 (__arm_vst4q_f32): Likewise.
33491 (__ARM_mve_typeid): Define macro with MVE types.
33492 (__ARM_mve_coerce): Define macro with _Generic feature.
33493 (vst4q): Define polymorphic variant for different vst4q builtins.
33494 * config/arm/arm_mve_builtins.def: New file.
33495 * config/arm/iterators.md (VSTRUCT): Modify to allow XI and OI
33497 * config/arm/mve.md (MVE_VLD_ST): Define iterator.
33498 (unspec): Define unspec.
33499 (mve_vst4q<mode>): Define RTL pattern.
33500 * config/arm/neon.md (mov<mode>): Modify expand to allow XI and OI
33502 (neon_mov<mode>): Modify RTL define_insn to allow XI and OI modes
33504 (define_split): Allow OI mode split for MVE after reload.
33505 (define_split): Allow XI mode split for MVE after reload.
33506 * config/arm/t-arm (arm.o): Add entry for arm_mve_builtins.def.
33507 (arm-builtins.o): Likewise.
33509 2020-03-17 Christophe Lyon <christophe.lyon@linaro.org>
33511 * c-typeck.c (process_init_element): Handle constructor_type with
33512 type size represented by POLY_INT_CST.
33514 2020-03-17 Jakub Jelinek <jakub@redhat.com>
33516 PR tree-optimization/94187
33517 * tree-ssa-strlen.c (count_nonzero_bytes): Punt if
33518 nchars - offset < nbytes.
33520 PR middle-end/94189
33521 * builtins.c (expand_builtin_strnlen): Do return NULL_RTX if we would
33522 emit a warning if it was enabled and don't depend on TREE_NO_WARNING
33523 for code-generation.
33525 2020-03-16 Vladimir Makarov <vmakarov@redhat.com>
33528 * lra-spills.c (remove_pseudos): Do not reuse insn alternative
33529 after changing memory subreg.
33531 2020-03-16 Andre Vieira <andre.simoesdiasvieira@arm.com>
33532 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
33534 * config/arm/arm.c (arm_libcall_uses_aapcs_base): Modify function to add
33535 emulator calls for dobule precision arithmetic operations for MVE.
33537 2020-03-16 Andre Vieira <andre.simoesdiasvieira@arm.com>
33538 Mihail Ionescu <mihail.ionescu@arm.com>
33539 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
33541 * common/config/arm/arm-common.c (arm_asm_auto_mfpu): When vfp_base
33542 feature bit is on and -mfpu=auto is passed as compiler option, do not
33543 generate error on not finding any matching fpu. Because in this case
33544 fpu is not required.
33545 * config/arm/arm-cpus.in (vfp_base): Define feature bit, this bit is
33546 enabled for MVE and also for all VFP extensions.
33547 (VFPv2): Modify fgroup to enable vfp_base feature bit when ever VFPv2
33549 (MVE): Define fgroup to enable feature bits mve, vfp_base and armv7em.
33550 (MVE_FP): Define fgroup to enable feature bits is fgroup MVE and FPv5
33551 along with feature bits mve_float.
33552 (mve): Modify add options in armv8.1-m.main arch for MVE.
33553 (mve.fp): Modify add options in armv8.1-m.main arch for MVE with
33555 * config/arm/arm.c (use_return_insn): Replace the
33556 check with TARGET_VFP_BASE.
33557 (thumb2_legitimate_index_p): Replace TARGET_HARD_FLOAT with
33559 (arm_rtx_costs_internal): Replace "TARGET_HARD_FLOAT || TARGET_HAVE_MVE"
33560 with TARGET_VFP_BASE, to allow cost calculations for copies in MVE as
33562 (arm_get_vfp_saved_size): Replace TARGET_HARD_FLOAT with
33563 TARGET_VFP_BASE, to allow space calculation for VFP registers in MVE
33565 (arm_compute_frame_layout): Likewise.
33566 (arm_save_coproc_regs): Likewise.
33567 (arm_fixed_condition_code_regs): Modify to enable using VFPCC_REGNUM
33569 (arm_hard_regno_mode_ok): Replace "TARGET_HARD_FLOAT || TARGET_HAVE_MVE"
33570 with equivalent macro TARGET_VFP_BASE.
33571 (arm_expand_epilogue_apcs_frame): Likewise.
33572 (arm_expand_epilogue): Likewise.
33573 (arm_conditional_register_usage): Likewise.
33574 (arm_declare_function_name): Add check to skip printing .fpu directive
33575 in assembly file when TARGET_VFP_BASE is enabled and fpu_to_print is
33577 * config/arm/arm.h (TARGET_VFP_BASE): Define.
33578 * config/arm/arm.md (arch): Add "mve" to arch.
33579 (eq_attr "arch" "mve"): Enable on TARGET_HAVE_MVE is true.
33580 (vfp_pop_multiple_with_writeback): Replace "TARGET_HARD_FLOAT
33581 || TARGET_HAVE_MVE" with equivalent macro TARGET_VFP_BASE.
33582 * config/arm/constraints.md (Uf): Define to allow modification to FPCCR
33584 * config/arm/thumb2.md (thumb2_movsfcc_soft_insn): Modify target guard
33585 to not allow for MVE.
33586 * config/arm/unspecs.md (UNSPEC_GET_FPSCR): Move to volatile unspecs
33588 (VUNSPEC_GET_FPSCR): Define.
33589 * config/arm/vfp.md (thumb2_movhi_vfp): Add support for VMSR and VMRS
33590 instructions which move to general-purpose Register from Floating-point
33591 Special register and vice-versa.
33592 (thumb2_movhi_fp16): Likewise.
33593 (thumb2_movsi_vfp): Add support for VMSR and VMRS instructions along
33594 with MCR and MRC instructions which set and get Floating-point Status
33595 and Control Register (FPSCR).
33596 (movdi_vfp): Modify pattern to enable Single-precision scalar float move
33598 (thumb2_movdf_vfp): Modify pattern to enable Double-precision scalar
33599 float move patterns in MVE.
33600 (thumb2_movsfcc_vfp): Modify pattern to enable single float conditional
33601 code move patterns of VFP also in MVE by adding TARGET_VFP_BASE check.
33602 (thumb2_movdfcc_vfp): Modify pattern to enable double float conditional
33603 code move patterns of VFP also in MVE by adding TARGET_VFP_BASE check.
33604 (push_multi_vfp): Add support to use VFP VPUSH pattern for MVE by adding
33605 TARGET_VFP_BASE check.
33606 (set_fpscr): Add support to set FPSCR register for MVE. Modify pattern
33607 using VFPCC_REGNUM as few MVE intrinsics use carry bit of FPSCR
33609 (get_fpscr): Add support to get FPSCR register for MVE. Modify pattern
33610 using VFPCC_REGNUM as few MVE intrinsics use carry bit of FPSCR
33614 2020-03-16 Andre Vieira <andre.simoesdiasvieira@arm.com>
33615 Mihail Ionescu <mihail.ionescu@arm.com>
33616 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
33618 * config.gcc (arm_mve.h): Include mve intrinsics header file.
33619 * config/arm/aout.h (p0): Add new register name for MVE predicated
33621 * config/arm-builtins.c (ARM_BUILTIN_SIMD_LANE_CHECK): Define macro
33622 common to Neon and MVE.
33623 (ARM_BUILTIN_NEON_LANE_CHECK): Renamed to ARM_BUILTIN_SIMD_LANE_CHECK.
33624 (arm_init_simd_builtin_types): Disable poly types for MVE.
33625 (arm_init_neon_builtins): Move a check to arm_init_builtins function.
33626 (arm_init_builtins): Use ARM_BUILTIN_SIMD_LANE_CHECK instead of
33627 ARM_BUILTIN_NEON_LANE_CHECK.
33628 (mve_dereference_pointer): Add function.
33629 (arm_expand_builtin_args): Call to mve_dereference_pointer when MVE is
33631 (arm_expand_neon_builtin): Moved to arm_expand_builtin function.
33632 (arm_expand_builtin): Moved from arm_expand_neon_builtin function.
33633 * config/arm/arm-c.c (__ARM_FEATURE_MVE): Define macro for MVE and MVE
33634 with floating point enabled.
33635 * config/arm/arm-protos.h (neon_immediate_valid_for_move): Renamed to
33636 simd_immediate_valid_for_move.
33637 (simd_immediate_valid_for_move): Renamed from
33638 neon_immediate_valid_for_move function.
33639 * config/arm/arm.c (arm_options_perform_arch_sanity_checks): Generate
33640 error if vfpv2 feature bit is disabled and mve feature bit is also
33641 disabled for HARD_FLOAT_ABI.
33642 (use_return_insn): Check to not push VFP regs for MVE.
33643 (aapcs_vfp_allocate): Add MVE check to have same Procedure Call Standard
33645 (aapcs_vfp_allocate_return_reg): Likewise.
33646 (thumb2_legitimate_address_p): Check to return 0 on valid Thumb-2
33647 address operand for MVE.
33648 (arm_rtx_costs_internal): MVE check to determine cost of rtx.
33649 (neon_valid_immediate): Rename to simd_valid_immediate.
33650 (simd_valid_immediate): Rename from neon_valid_immediate.
33651 (simd_valid_immediate): MVE check on size of vector is 128 bits.
33652 (neon_immediate_valid_for_move): Rename to
33653 simd_immediate_valid_for_move.
33654 (simd_immediate_valid_for_move): Rename from
33655 neon_immediate_valid_for_move.
33656 (neon_immediate_valid_for_logic): Modify call to neon_valid_immediate
33658 (neon_make_constant): Modify call to neon_valid_immediate function.
33659 (neon_vector_mem_operand): Return VFP register for POST_INC or PRE_DEC
33661 (output_move_neon): Add MVE check to generate vldm/vstm instrcutions.
33662 (arm_compute_frame_layout): Calculate space for saved VFP registers for
33664 (arm_save_coproc_regs): Save coproc registers for MVE.
33665 (arm_print_operand): Add case 'E' to print memory operands for MVE.
33666 (arm_print_operand_address): Check to print register number for MVE.
33667 (arm_hard_regno_mode_ok): Check for arm hard regno mode ok for MVE.
33668 (arm_modes_tieable_p): Check to allow structure mode for MVE.
33669 (arm_regno_class): Add VPR_REGNUM check.
33670 (arm_expand_epilogue_apcs_frame): MVE check to calculate epilogue code
33672 (arm_expand_epilogue): MVE check for enabling pop instructions in
33674 (arm_print_asm_arch_directives): Modify function to disable print of
33675 .arch_extension "mve" and "fp" for cases where MVE is enabled with
33677 (arm_vector_mode_supported_p): Check for modes available in MVE interger
33678 and MVE floating point.
33679 (arm_array_mode_supported_p): Add TARGET_HAVE_MVE check for array mode
33681 (arm_conditional_register_usage): Enable usage of conditional regsiter
33683 (fixed_regs[VPR_REGNUM]): Enable VPR_REG for MVE.
33684 (arm_declare_function_name): Modify function to disable print of
33685 .arch_extension "mve" and "fp" for cases where MVE is enabled with
33687 * config/arm/arm.h (TARGET_HAVE_MVE): Disable for soft float abi and
33688 when target general registers are required.
33689 (TARGET_HAVE_MVE_FLOAT): Likewise.
33690 (FIXED_REGISTERS): Add bit for VFP_REG class which is enabled in arm.c
33692 (CALL_USED_REGISTERS): Set bit for VFP_REG class in CALL_USED_REGISTERS
33693 which indicate this is not available for across function calls.
33694 (FIRST_PSEUDO_REGISTER): Modify.
33695 (VALID_MVE_MODE): Define valid MVE mode.
33696 (VALID_MVE_SI_MODE): Define valid MVE SI mode.
33697 (VALID_MVE_SF_MODE): Define valid MVE SF mode.
33698 (VALID_MVE_STRUCT_MODE): Define valid MVE struct mode.
33699 (VPR_REGNUM): Add Vector Predication Register in arm_regs_in_sequence
33701 (IS_VPR_REGNUM): Macro to check for VPR_REG register.
33702 (REG_ALLOC_ORDER): Add VPR_REGNUM entry.
33703 (enum reg_class): Add VPR_REG entry.
33704 (REG_CLASS_NAMES): Add VPR_REG entry.
33705 * config/arm/arm.md (VPR_REGNUM): Define.
33706 (conds): Check is_mve_type attrbiute to differentiate "conditional" and
33707 "unconditional" instructions.
33708 (arm_movsf_soft_insn): Modify RTL to not allow for MVE.
33709 (movdf_soft_insn): Modify RTL to not allow for MVE.
33710 (vfp_pop_multiple_with_writeback): Enable for MVE.
33711 (include "mve.md"): Include mve.md file.
33712 * config/arm/arm_mve.h: Add MVE intrinsics head file.
33713 * config/arm/constraints.md (Up): Constraint to enable "p0" register in MVE
33714 for vector predicated operands.
33715 * config/arm/iterators.md (VNIM1): Define.
33716 (VNINOTM1): Define.
33717 (VHFBF_split): Define
33718 * config/arm/mve.md: New file.
33719 (mve_mov<mode>): Define RTL for move, store and load in MVE.
33720 (mve_mov<mode>): Define move RTL pattern with vec_duplicate operator for
33722 * config/arm/neon.md (neon_immediate_valid_for_move): Rename with
33723 simd_immediate_valid_for_move.
33724 (neon_mov<mode>): Split pattern and move expand pattern "movv8hf" which
33725 is common to MVE and NEON to vec-common.md file.
33726 (vec_init<mode><V_elem_l>): Add TARGET_HAVE_MVE check.
33727 * config/arm/predicates.md (vpr_register_operand): Define.
33728 * config/arm/t-arm: Add mve.md file.
33729 * config/arm/types.md (mve_move): Add MVE instructions mve_move to
33731 (mve_store): Add MVE instructions mve_store to attribute "type".
33732 (mve_load): Add MVE instructions mve_load to attribute "type".
33733 (is_mve_type): Define attribute.
33734 * config/arm/vec-common.md (mov<mode>): Modify RTL expand to support
33735 standard move patterns in MVE along with NEON and IWMMXT with mode
33737 (mov<mode>): Modify RTL expand to support standard move patterns in NEON
33738 and IWMMXT with mode iterator V8HF.
33739 (movv8hf): Define RTL expand to support standard "movv8hf" pattern in
33741 * config/arm/vfp.md (neon_immediate_valid_for_move): Rename to
33742 simd_immediate_valid_for_move.
33745 2020-03-16 H.J. Lu <hongjiu.lu@intel.com>
33748 * config/i386/i386.md (*movsi_internal): Call ix86_output_ssemov
33749 for TYPE_SSEMOV. Remove ext_sse_reg_operand and TARGET_AVX512VL
33751 * config/i386/predicates.md (ext_sse_reg_operand): Removed.
33753 2020-03-16 Jakub Jelinek <jakub@redhat.com>
33756 * tree-inline.c (insert_init_stmt): Don't gimple_regimplify_operands
33759 PR tree-optimization/94166
33760 * tree-ssa-reassoc.c (sort_by_mach_mode): Use SSA_NAME_VERSION
33761 as secondary comparison key.
33763 2020-03-16 Bin Cheng <bin.cheng@linux.alibaba.com>
33765 PR tree-optimization/94125
33766 * tree-loop-distribution.c
33767 (loop_distribution::break_alias_scc_partitions): Update post order
33768 number for merged scc.
33770 2020-03-15 H.J. Lu <hongjiu.lu@intel.com>
33773 * config/i386/i386.c (ix86_output_ssemov): Handle MODE_SI and
33775 * config/i386/i386.md (*movsf_internal): Call ix86_output_ssemov
33776 for TYPE_SSEMOV. Remove TARGET_PREFER_AVX256, TARGET_AVX512VL
33777 and ext_sse_reg_operand check.
33779 2020-03-15 Lewis Hyatt <lhyatt@gmail.com>
33781 * common.opt: Avoid redundancy in the help text.
33782 * config/arc/arc.opt: Likewise.
33783 * config/cr16/cr16.opt: Likewise.
33785 2020-03-14 Jakub Jelinek <jakub@redhat.com>
33787 PR middle-end/93566
33788 * tree-nested.c (convert_nonlocal_omp_clauses,
33789 convert_local_omp_clauses): Handle {,in_,task_}reduction clauses
33790 with C/C++ array sections.
33792 2020-03-14 H.J. Lu <hongjiu.lu@intel.com>
33795 * config/i386/i386.md (*movdi_internal): Call ix86_output_ssemov
33796 for TYPE_SSEMOV. Remove ext_sse_reg_operand and TARGET_AVX512VL
33799 2020-03-14 Jakub Jelinek <jakub@redhat.com>
33801 * gimple-fold.c (gimple_fold_builtin_strncpy): Change
33802 "a an" to "an" in a comment.
33803 * hsa-common.h (is_a_helper): Likewise.
33804 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Likewise.
33805 * config/arc/arc.c (arc600_corereg_hazard): Likewise.
33806 * config/s390/s390.c (s390_indirect_branch_via_thunk): Likewise.
33808 2020-03-13 Aaron Sawdey <acsawdey@linux.ibm.com>
33811 * config/rs6000/rs6000.c (num_insns_constant_multi): Don't shift a
33812 64-bit value by 64 bits (UB).
33814 2020-03-13 Vladimir Makarov <vmakarov@redhat.com>
33816 PR rtl-optimization/92303
33817 * lra-spills.c (remove_pseudos): Try to simplify memory subreg.
33819 2020-03-13 Segher Boessenkool <segher@kernel.crashing.org>
33821 PR rtl-optimization/94148
33822 PR rtl-optimization/94042
33823 * df-core.c (BB_LAST_CHANGE_AGE): Delete.
33824 (df_worklist_propagate_forward): New parameter last_change_age, use
33825 that instead of bb->aux.
33826 (df_worklist_propagate_backward): Ditto.
33827 (df_worklist_dataflow_doublequeue): Use a local array last_change_age.
33829 2020-03-13 Richard Biener <rguenther@suse.de>
33831 PR tree-optimization/94163
33832 * tree-ssa-pre.c (create_expression_by_pieces): Check
33833 whether alignment would be zero.
33835 2020-03-13 Martin Liska <mliska@suse.cz>
33838 * lto-wrapper.c (run_gcc): Use concat for appending
33839 to collect_gcc_options.
33841 2020-03-13 Jakub Jelinek <jakub@redhat.com>
33844 * config/aarch64/aarch64.c (aarch64_add_offset_1): Use gen_int_mode
33845 instead of GEN_INT.
33847 2020-03-13 H.J. Lu <hongjiu.lu@intel.com>
33850 * config/i386/i386.c (ix86_output_ssemov): Handle MODE_DF.
33851 * config/i386/i386.md (*movdf_internal): Call ix86_output_ssemov
33852 for TYPE_SSEMOV. Remove TARGET_AVX512F, TARGET_PREFER_AVX256,
33853 TARGET_AVX512VL and ext_sse_reg_operand check.
33855 2020-03-13 Bu Le <bule1@huawei.com>
33858 * config/aarch64/aarch64.opt (-param=aarch64-float-recp-precision=)
33859 (-param=aarch64-double-recp-precision=): New options.
33860 * doc/invoke.texi: Document them.
33861 * config/aarch64/aarch64.c (aarch64_emit_approx_div): Use them
33862 instead of hard-coding the choice of 1 for float and 2 for double.
33864 2020-03-13 Eric Botcazou <ebotcazou@adacore.com>
33866 PR rtl-optimization/94119
33867 * resource.h (clear_hashed_info_until_next_barrier): Declare.
33868 * resource.c (clear_hashed_info_until_next_barrier): New function.
33869 * reorg.c (add_to_delay_list): Fix formatting.
33870 (relax_delay_slots): Call clear_hashed_info_until_next_barrier on
33871 the next instruction after removing a BARRIER.
33873 2020-03-13 Eric Botcazou <ebotcazou@adacore.com>
33875 PR middle-end/92071
33876 * expmed.c (store_integral_bit_field): For fields larger than a word,
33877 call extract_bit_field on the value if the mode is BLKmode. Remove
33878 specific path for big-endian targets and tidy things up a little bit.
33880 2020-03-12 Richard Sandiford <richard.sandiford@arm.com>
33882 PR rtl-optimization/90275
33883 * cse.c (cse_insn): Delete no-op register moves too.
33885 2020-03-12 Darius Galis <darius.galis@cyberthorstudios.com>
33887 * config/rx/rx.md (CTRLREG_CPEN): Remove.
33888 * config/rx/rx.c (rx_print_operand): Remove CTRLREG_CPEN support.
33890 2020-03-12 Richard Biener <rguenther@suse.de>
33892 PR tree-optimization/94103
33893 * tree-ssa-sccvn.c (visit_reference_op_load): Avoid type
33894 punning when the mode precision is not sufficient.
33896 2020-03-12 H.J. Lu <hongjiu.lu@intel.com>
33899 * config/i386/i386.c (ix86_output_ssemov): Handle MODE_DI,
33900 MODE_V1DF and MODE_V2SF.
33901 * config/i386/mmx.md (MMXMODE:*mov<mode>_internal): Call
33902 ix86_output_ssemov for TYPE_SSEMOV. Remove ext_sse_reg_operand
33905 2020-03-12 Jakub Jelinek <jakub@redhat.com>
33907 * doc/tm.texi.in (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Change
33908 ASM_OUTPUT_ALIGNED_DECL in description to ASM_OUTPUT_ALIGNED_LOCAL
33909 and ASM_OUTPUT_DECL to ASM_OUTPUT_LOCAL.
33910 * doc/tm.texi: Regenerated.
33912 PR tree-optimization/94130
33913 * tree-ssa-dse.c: Include gimplify.h.
33914 (increment_start_addr): If stmt has lhs, drop the lhs from call and
33915 set it after the call to the original value of the first argument.
33917 (decrement_count): Formatting fix.
33919 2020-03-11 Delia Burduv <delia.burduv@arm.com>
33921 * config/arm/arm-builtins.c
33922 (arm_init_simd_builtin_scalar_types): New.
33923 * config/arm/arm_neon.h (vld2_bf16): Used new builtin type.
33924 (vld2q_bf16): Used new builtin type.
33925 (vld3_bf16): Used new builtin type.
33926 (vld3q_bf16): Used new builtin type.
33927 (vld4_bf16): Used new builtin type.
33928 (vld4q_bf16): Used new builtin type.
33929 (vld2_dup_bf16): Used new builtin type.
33930 (vld2q_dup_bf16): Used new builtin type.
33931 (vld3_dup_bf16): Used new builtin type.
33932 (vld3q_dup_bf16): Used new builtin type.
33933 (vld4_dup_bf16): Used new builtin type.
33934 (vld4q_dup_bf16): Used new builtin type.
33936 2020-03-11 Jakub Jelinek <jakub@redhat.com>
33939 * config/pdp11/pdp11.c (pdp11_asm_output_var): Call switch_to_section
33940 at the start to switch to data section. Don't print extra newline if
33941 .globl directive has not been emitted.
33943 2020-03-11 Richard Biener <rguenther@suse.de>
33945 * match.pd ((T *)(ptr - ptr-cst) -> &MEM[ptr + -ptr-cst]):
33948 2020-03-11 Eric Botcazou <ebotcazou@adacore.com>
33950 PR middle-end/93961
33951 * tree.c (variably_modified_type_p) <RECORD_TYPE>: Recurse into fields
33952 whose type is a qualified union.
33954 2020-03-11 Jakub Jelinek <jakub@redhat.com>
33957 * config/aarch64/aarch64.c (aarch64_add_offset_1): Use absu_hwi
33958 instead of abs_hwi, change moffset type to unsigned HOST_WIDE_INT.
33961 * value-prof.c (dump_histogram_value): Use abs_hwi instead of
33963 (get_nth_most_common_value): Use abs_hwi instead of abs.
33965 PR middle-end/94111
33966 * dfp.c (decimal_to_binary): Only use decimal128ToString if from->cl
33967 is rvc_normal, otherwise use real_to_decimal to print the number to
33970 PR tree-optimization/94114
33971 * tree-loop-distribution.c (generate_memset_builtin): Call
33972 rewrite_to_non_trapping_overflow even on mem.
33973 (generate_memcpy_builtin): Call rewrite_to_non_trapping_overflow even
33976 2020-03-10 Jeff Law <law@redhat.com>
33978 * config/bfin/bfin.md (movsi_insv): Add length attribute.
33980 2020-03-10 Jiufu Guo <guojiufu@linux.ibm.com>
33983 * config/rs6000/rs6000.c (rs6000_emit_p9_fp_minmax): Check
33984 NAN and SIGNED_ZEROR for smax/smin.
33986 2020-03-10 Will Schmidt <will_schmidt@vnet.ibm.com>
33989 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
33990 clause to handle P9V_BUILTIN_VEC_LXVL with const arguments.
33992 2020-03-10 Roman Zhuykov <zhroma@ispras.ru>
33994 * loop-iv.c (find_simple_exit): Make it static.
33995 * cfgloop.h: Remove the corresponding prototype.
33997 2020-03-10 Roman Zhuykov <zhroma@ispras.ru>
33999 * ddg.c (create_ddg): Fix intendation.
34000 (set_recurrence_length): Likewise.
34001 (create_ddg_all_sccs): Likewise.
34003 2020-03-10 Jakub Jelinek <jakub@redhat.com>
34006 * config/i386/i386.md (*testqi_ext_3): Call ix86_match_ccmode with
34007 CCZmode instead of CCNOmode if operands[2] has DImode and pos + len
34010 2020-03-09 Jason Merrill <jason@redhat.com>
34012 * gdbinit.in (pgs): Fix typo in documentation.
34014 2020-03-09 Vladimir Makarov <vmakarov@redhat.com>
34018 2020-02-28 Vladimir Makarov <vmakarov@redhat.com>
34020 PR rtl-optimization/93564
34021 * ira-color.c (assign_hard_reg): Prefer smaller hard regno when we
34022 do not honor reg alloc order.
34024 2020-03-09 Andrew Pinski <apinski@marvell.com>
34026 PR inline-asm/94095
34027 * doc/extend.texi (x86 Operand Modifiers): Fix column
34030 2020-03-09 Martin Liska <mliska@suse.cz>
34033 * config/rs6000/rs6000.c (rs6000_option_override_internal):
34034 Remove set of str_align_loops and str_align_jumps as these
34035 should be set in previous 2 conditions in the function.
34037 2020-03-09 Jakub Jelinek <jakub@redhat.com>
34039 PR rtl-optimization/94045
34040 * params.opt (-param=max-find-base-term-values=): New option.
34041 * alias.c (find_base_term): Add cut-off for number of visited VALUEs
34042 in a single toplevel find_base_term call.
34044 2020-03-06 Wilco Dijkstra <wdijkstr@arm.com>
34047 * config/aarch64/aarch64-builtins.c (TYPES_TERNOPU_LANE): Add define.
34048 * config/aarch64/aarch64-simd.md
34049 (aarch64_vec_<su>mult_lane<Qlane>): Add new insn for widening lane mul.
34050 (aarch64_vec_<su>mlal_lane<Qlane>): Likewise.
34051 * config/aarch64/aarch64-simd-builtins.def: Add intrinsics.
34052 * config/aarch64/arm_neon.h:
34053 (vmlal_lane_s16): Expand using intrinsics rather than inline asm.
34054 (vmlal_lane_u16): Likewise.
34055 (vmlal_lane_s32): Likewise.
34056 (vmlal_lane_u32): Likewise.
34057 (vmlal_laneq_s16): Likewise.
34058 (vmlal_laneq_u16): Likewise.
34059 (vmlal_laneq_s32): Likewise.
34060 (vmlal_laneq_u32): Likewise.
34061 (vmull_lane_s16): Likewise.
34062 (vmull_lane_u16): Likewise.
34063 (vmull_lane_s32): Likewise.
34064 (vmull_lane_u32): Likewise.
34065 (vmull_laneq_s16): Likewise.
34066 (vmull_laneq_u16): Likewise.
34067 (vmull_laneq_s32): Likewise.
34068 (vmull_laneq_u32): Likewise.
34069 * config/aarch64/iterators.md (Vcondtype): New iterator for lane mul.
34072 2020-03-06 Wilco Dijkstra <wdijkstr@arm.com>
34074 * aarch64/aarch64-simd.md (aarch64_mla_elt<mode>): Correct lane syntax.
34075 (aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
34076 (aarch64_mls_elt<mode>): Likewise.
34077 (aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
34078 (aarch64_fma4_elt<mode>): Likewise.
34079 (aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
34080 (aarch64_fma4_elt_to_64v2df): Likewise.
34081 (aarch64_fnma4_elt<mode>): Likewise.
34082 (aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
34083 (aarch64_fnma4_elt_to_64v2df): Likewise.
34085 2020-03-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34087 * config/aarch64/aarch64-sve2.md (@aarch64_sve_<sve_int_op><mode>:
34088 Specify movprfx attribute.
34089 (@aarch64_sve_<sve_int_op>_lane_<mode>): Likewise.
34091 2020-03-06 David Edelsohn <dje.gcc@gmail.com>
34094 * config/rs6000/aix61.h (TARGET_NO_SUM_IN_TOC): Set to 1 for
34096 (TARGET_NO_FP_IN_TOC): Same.
34097 * config/rs6000/aix71.h: Same.
34098 * config/rs6000/aix72.h: Same.
34100 2020-03-06 Andrew Pinski <apinski@marvell.com>
34101 Jeff Law <law@redhat.com>
34103 PR rtl-optimization/93996
34104 * haifa-sched.c (remove_notes): Be more careful when adding
34107 2020-03-06 Delia Burduv <delia.burduv@arm.com>
34109 * config/arm/arm_neon.h (vld2_bf16): New.
34115 (vld2_dup_bf16): New.
34116 (vld2q_dup_bf16): New.
34117 (vld3_dup_bf16): New.
34118 (vld3q_dup_bf16): New.
34119 (vld4_dup_bf16): New.
34120 (vld4q_dup_bf16): New.
34121 * config/arm/arm_neon_builtins.def
34122 (vld2): Changed to VAR13 and added v4bf, v8bf
34123 (vld2_dup): Changed to VAR8 and added v4bf, v8bf
34124 (vld3): Changed to VAR13 and added v4bf, v8bf
34125 (vld3_dup): Changed to VAR8 and added v4bf, v8bf
34126 (vld4): Changed to VAR13 and added v4bf, v8bf
34127 (vld4_dup): Changed to VAR8 and added v4bf, v8bf
34128 * config/arm/iterators.md (VDXBF2): New iterator.
34129 *config/arm/neon.md (neon_vld2): Use new iterators.
34130 (neon_vld2_dup<mode): Use new iterators.
34131 (neon_vld3<mode>): Likewise.
34132 (neon_vld3qa<mode>): Likewise.
34133 (neon_vld3qb<mode>): Likewise.
34134 (neon_vld3_dup<mode>): Likewise.
34135 (neon_vld4<mode>): Likewise.
34136 (neon_vld4qa<mode>): Likewise.
34137 (neon_vld4qb<mode>): Likewise.
34138 (neon_vld4_dup<mode>): Likewise.
34139 (neon_vld2_dupv8bf): New.
34140 (neon_vld3_dupv8bf): Likewise.
34141 (neon_vld4_dupv8bf): Likewise.
34143 2020-03-06 Delia Burduv <delia.burduv@arm.com>
34145 * config/arm/arm_neon.h (bfloat16x4x2_t): New typedef.
34146 (bfloat16x8x2_t): New typedef.
34147 (bfloat16x4x3_t): New typedef.
34148 (bfloat16x8x3_t): New typedef.
34149 (bfloat16x4x4_t): New typedef.
34150 (bfloat16x8x4_t): New typedef.
34157 * config/arm/arm-builtins.c (v2bf_UP): Define.
34159 (arm_init_simd_builtin_types): Init Bfloat16x2_t eltype.
34160 * config/arm/arm-modes.def (V2BF): New mode.
34161 * config/arm/arm-simd-builtin-types.def
34162 (Bfloat16x2_t): New entry.
34163 * config/arm/arm_neon_builtins.def
34164 (vst2): Changed to VAR13 and added v4bf, v8bf
34165 (vst3): Changed to VAR13 and added v4bf, v8bf
34166 (vst4): Changed to VAR13 and added v4bf, v8bf
34167 * config/arm/iterators.md (VDXBF): New iterator.
34168 (VQ2BF): New iterator.
34169 *config/arm/neon.md (neon_vst2<mode>): Used new iterators.
34170 (neon_vst2<mode>): Used new iterators.
34171 (neon_vst3<mode>): Used new iterators.
34172 (neon_vst3<mode>): Used new iterators.
34173 (neon_vst3qa<mode>): Used new iterators.
34174 (neon_vst3qb<mode>): Used new iterators.
34175 (neon_vst4<mode>): Used new iterators.
34176 (neon_vst4<mode>): Used new iterators.
34177 (neon_vst4qa<mode>): Used new iterators.
34178 (neon_vst4qb<mode>): Used new iterators.
34180 2020-03-06 Delia Burduv <delia.burduv@arm.com>
34182 * config/aarch64/aarch64-simd-builtins.def
34183 (bfcvtn): New built-in function.
34184 (bfcvtn_q): New built-in function.
34185 (bfcvtn2): New built-in function.
34186 (bfcvt): New built-in function.
34187 * config/aarch64/aarch64-simd.md
34188 (aarch64_bfcvtn<q><mode>): New pattern.
34189 (aarch64_bfcvtn2v8bf): New pattern.
34190 (aarch64_bfcvtbf): New pattern.
34191 * config/aarch64/arm_bf16.h (float32_t): New typedef.
34192 (vcvth_bf16_f32): New intrinsic.
34193 * config/aarch64/arm_bf16.h (vcvt_bf16_f32): New intrinsic.
34194 (vcvtq_low_bf16_f32): New intrinsic.
34195 (vcvtq_high_bf16_f32): New intrinsic.
34196 * config/aarch64/iterators.md (V4SF_TO_BF): New mode iterator.
34197 (UNSPEC_BFCVTN): New UNSPEC.
34198 (UNSPEC_BFCVTN2): New UNSPEC.
34199 (UNSPEC_BFCVT): New UNSPEC.
34200 * config/arm/types.md (bf_cvt): New type.
34202 2020-03-06 Andreas Krebbel <krebbel@linux.ibm.com>
34204 * config/s390/s390.md ("tabort"): Get rid of two consecutive
34205 blanks in format string.
34207 2020-03-05 H.J. Lu <hongjiu.lu@intel.com>
34211 * config/i386/i386-protos.h (ix86_output_ssemov): New prototype.
34212 * config/i386/i386.c (ix86_get_ssemov): New function.
34213 (ix86_output_ssemov): Likewise.
34214 * config/i386/sse.md (VMOVE:mov<mode>_internal): Call
34215 ix86_output_ssemov for TYPE_SSEMOV. Remove TARGET_AVX512VL
34217 (*movxi_internal_avx512f): Call ix86_output_ssemov for TYPE_SSEMOV.
34218 (*movoi_internal_avx): Call ix86_output_ssemov for TYPE_SSEMOV.
34219 Remove ext_sse_reg_operand and TARGET_AVX512VL check.
34220 (*movti_internal): Likewise.
34221 (*movtf_internal): Call ix86_output_ssemov for TYPE_SSEMOV.
34223 2020-03-05 Jeff Law <law@redhat.com>
34225 PR tree-optimization/91890
34226 * gimple-ssa-warn-restrict.c (maybe_diag_overlap): Remove LOC argument.
34227 Use gimple_or_expr_nonartificial_location.
34228 (check_bounds_overlap): Drop LOC argument to maybe_diag_access_bounds.
34229 Use gimple_or_expr_nonartificial_location.
34230 * gimple.c (gimple_or_expr_nonartificial_location): New function.
34231 * gimple.h (gimple_or_expr_nonartificial_location): Declare it.
34232 * tree-ssa-strlen.c (maybe_warn_overflow): Use
34233 gimple_or_expr_nonartificial_location.
34234 (maybe_diag_stxncpy_trunc, handle_builtin_stxncpy_strncat): Likewise.
34235 (maybe_warn_pointless_strcmp): Likewise.
34237 2020-03-05 Jakub Jelinek <jakub@redhat.com>
34240 * config/i386/avx2intrin.h (_mm_mask_i32gather_ps): Fix first cast of
34241 SRC and MASK arguments to __m128 from __m128d.
34242 (_mm256_mask_i32gather_ps): Fix first cast of MASK argument to __m256
34244 (_mm_mask_i64gather_ps): Fix first cast of MASK argument to __m128
34246 * config/i386/xopintrin.h (_mm_permute2_pd): Fix first cast of C
34247 argument to __m128i from __m128d.
34248 (_mm256_permute2_pd): Fix first cast of C argument to __m256i from
34250 (_mm_permute2_ps): Fix first cast of C argument to __m128i from __m128.
34251 (_mm256_permute2_ps): Fix first cast of C argument to __m256i from
34254 2020-03-05 Delia Burduv <delia.burduv@arm.com>
34256 * config/arm/arm_neon.h (vbfmmlaq_f32): New.
34257 (vbfmlalbq_f32): New.
34258 (vbfmlaltq_f32): New.
34259 (vbfmlalbq_lane_f32): New.
34260 (vbfmlaltq_lane_f32): New.
34261 (vbfmlalbq_laneq_f32): New.
34262 (vbfmlaltq_laneq_f32): New.
34263 * config/arm/arm_neon_builtins.def (vmmla): New.
34268 (vfmab_laneq): New.
34269 (vfmat_laneq): New.
34270 * config/arm/iterators.md (BF_MA): New int iterator.
34271 (bt): New int attribute.
34272 (VQXBF): Copy of VQX with V8BF.
34273 * config/arm/neon.md (neon_vmmlav8bf): New insn.
34274 (neon_vfma<bt>v8bf): New insn.
34275 (neon_vfma<bt>_lanev8bf): New insn.
34276 (neon_vfma<bt>_laneqv8bf): New expand.
34277 (neon_vget_high<mode>): Changed iterator to VQXBF.
34278 * config/arm/unspecs.md (UNSPEC_BFMMLA): New UNSPEC.
34279 (UNSPEC_BFMAB): New UNSPEC.
34280 (UNSPEC_BFMAT): New UNSPEC.
34282 2020-03-05 Jakub Jelinek <jakub@redhat.com>
34284 PR middle-end/93399
34285 * tree-pretty-print.h (pretty_print_string): Declare.
34286 * tree-pretty-print.c (pretty_print_string): Remove forward
34287 declaration, no longer static. Change nbytes parameter type
34288 from unsigned to size_t.
34289 * print-rtl.c (print_value) <case CONST_STRING>: Use
34290 pretty_print_string and for shrink way too long strings.
34292 2020-03-05 Richard Biener <rguenther@suse.de>
34293 Jakub Jelinek <jakub@redhat.com>
34295 PR tree-optimization/93582
34296 * tree-ssa-sccvn.c (vn_reference_lookup_3): Treat POINTER_PLUS_EXPR
34297 last operand as signed when looking for memset offset. Formatting
34300 2020-03-04 Andrew Pinski <apinski@marvell.com>
34303 * value-prof.c (dump_histogram_value): Use std::abs.
34305 2020-03-04 Martin Sebor <msebor@redhat.com>
34307 PR tree-optimization/93986
34308 * tree-ssa-strlen.c (maybe_warn_overflow): Convert all wide_int
34309 operands to the same precision widest_int to avoid ICEs.
34311 2020-03-04 Bill Schmidt <wschmidt@linux.ibm.com>
34314 * rs6000-cpus.def (OTHER_ALTIVEC_MASKS): New #define.
34315 * rs6000.c (rs6000_disable_incompatible_switches): Add table entry
34316 for OPTION_MASK_ALTIVEC.
34318 2020-03-04 Andreas Krebbel <krebbel@linux.ibm.com>
34320 * config.gcc: Include the glibc-stdint.h header for zTPF.
34322 2020-03-04 Andreas Krebbel <krebbel@linux.ibm.com>
34324 * config/s390/s390.c (s390_secondary_memory_needed): Disallow
34325 direct FPR-GPR copies.
34326 (s390_register_info_gprtofpr): Disallow GPR content to be saved in
34329 2020-03-04 Andreas Krebbel <krebbel@linux.ibm.com>
34331 * config/s390/s390.c (s390_emit_prologue): Specify the 2 new
34332 operands to the prologue_tpf expander.
34333 (s390_emit_epilogue): Likewise.
34334 (s390_option_override_internal): Do error checking and setup for
34336 * config/s390/tpf.h (TPF_TRACE_PROLOGUE_CHECK)
34337 (TPF_TRACE_EPILOGUE_CHECK, TPF_TRACE_PROLOGUE_TARGET)
34338 (TPF_TRACE_EPILOGUE_TARGET, TPF_TRACE_PROLOGUE_SKIP_TARGET)
34339 (TPF_TRACE_EPILOGUE_SKIP_TARGET): New macro definitions.
34340 * config/s390/tpf.md ("prologue_tpf", "epilogue_tpf"): Add two new
34341 operands for the check flag and the branch target.
34342 * config/s390/tpf.opt ("mtpf-trace-hook-prologue-check")
34343 ("mtpf-trace-hook-prologue-target")
34344 ("mtpf-trace-hook-epilogue-check")
34345 ("mtpf-trace-hook-epilogue-target", "mtpf-trace-skip"): New
34347 * doc/invoke.texi: Document -mtpf-trace-skip option. The other
34348 options are for debugging purposes and will not be documented
34351 2020-03-04 Jakub Jelinek <jakub@redhat.com>
34354 * tree-inline.c (copy_decl_to_var): Copy DECL_BY_REFERENCE flag.
34356 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Add offseti
34357 argument. Change pd argument so that it can be modified. Turn
34358 constant non-CONSTRUCTOR store into non-constant if it is too large.
34359 Adjust offset and size of CONSTRUCTOR or non-constant store to avoid
34361 (vn_walk_cb_data::vn_walk_cb_data, vn_reference_lookup_3): Adjust
34364 2020-02-04 Richard Biener <rguenther@suse.de>
34366 PR tree-optimization/93964
34367 * graphite-isl-ast-to-gimple.c
34368 (gcc_expression_from_isl_ast_expr_id): Add intermediate
34369 conversion for pointer to integer converts.
34370 * graphite-scop-detection.c (assign_parameter_index_in_region):
34373 2020-03-04 Martin Liska <mliska@suse.cz>
34377 * doc/invoke.texi: Clarify --help=language and --help=common
34380 2020-03-04 Jakub Jelinek <jakub@redhat.com>
34382 PR tree-optimization/94001
34383 * tree-tailcall.c (process_assignment): Before comparing op1 to
34384 *ass_var, verify *ass_var is non-NULL.
34386 2020-03-04 Kito Cheng <kito.cheng@sifive.com>
34389 * config/riscv/riscv.c (riscv_emit_float_compare): Using NE to compare
34392 2020-03-03 Dennis Zhang <dennis.zhang@arm.com>
34394 * config/arm/arm_bf16.h (vcvtah_f32_bf16, vcvth_bf16_f32): New.
34395 * config/arm/arm_neon.h (vcvt_f32_bf16, vcvtq_low_f32_bf16): New.
34396 (vcvtq_high_f32_bf16, vcvt_bf16_f32): New.
34397 (vcvtq_low_bf16_f32, vcvtq_high_bf16_f32): New.
34398 * config/arm/arm_neon_builtins.def (vbfcvt, vbfcvt_high): New entries.
34399 (vbfcvtv4sf, vbfcvtv4sf_high): Likewise.
34400 * config/arm/iterators.md (VBFCVT, VBFCVTM): New mode iterators.
34401 (V_bf_low, V_bf_cvt_m): New mode attributes.
34402 * config/arm/neon.md (neon_vbfcvtv4sf<VBFCVT:mode>): New.
34403 (neon_vbfcvtv4sf_highv8bf, neon_vbfcvtsf): New.
34404 (neon_vbfcvt<VBFCVT:mode>, neon_vbfcvt_highv8bf): New.
34405 (neon_vbfcvtbf_cvtmode<mode>, neon_vbfcvtbf): New
34406 * config/arm/unspecs.md (UNSPEC_BFCVT, UNSPEC_BFCVT_HIG): New.
34408 2020-03-03 Jakub Jelinek <jakub@redhat.com>
34410 PR tree-optimization/93582
34411 * tree-ssa-sccvn.h (vn_reference_lookup): Add mask argument.
34412 * tree-ssa-sccvn.c (struct vn_walk_cb_data): Add mask and masked_result
34413 members, initialize them in the constructor and if mask is non-NULL,
34414 artificially push_partial_def {} for the portions of the mask that
34416 (vn_walk_cb_data::finish): If mask is non-NULL, set masked_result to
34417 val and return (void *)-1. Formatting fix.
34418 (vn_reference_lookup_pieces): Adjust vn_walk_cb_data initialization.
34420 (vn_reference_lookup): Add mask argument. If non-NULL, don't call
34421 fully_constant_vn_reference_p nor vn_reference_lookup_1 and return
34423 (visit_nary_op): Handle BIT_AND_EXPR of a memory load and INTEGER_CST
34425 (visit_stmt): Formatting fix.
34427 2020-03-03 Richard Biener <rguenther@suse.de>
34429 PR tree-optimization/93946
34430 * alias.h (refs_same_for_tbaa_p): Declare.
34431 * alias.c (refs_same_for_tbaa_p): New function.
34432 * tree-ssa-alias.c (ao_ref_alias_set): For a NULL ref return
34434 * tree-ssa-scopedtables.h
34435 (avail_exprs_stack::lookup_avail_expr): Add output argument
34436 giving access to the hashtable entry.
34437 * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
34439 * tree-ssa-dom.c: Include alias.h.
34440 (dom_opt_dom_walker::optimize_stmt): Validate TBAA state before
34441 removing redundant store.
34442 * tree-ssa-sccvn.h (vn_reference_s::base_set): New member.
34443 (ao_ref_init_from_vn_reference): Adjust prototype.
34444 (vn_reference_lookup_pieces): Likewise.
34445 (vn_reference_insert_pieces): Likewise.
34446 * tree-ssa-sccvn.c: Track base alias set in addition to alias
34448 (eliminate_dom_walker::eliminate_stmt): Also check base alias
34449 set when removing redundant stores.
34450 (visit_reference_op_store): Likewise.
34451 * dse.c (record_store): Adjust valdity check for redundant
34454 2020-03-03 Jakub Jelinek <jakub@redhat.com>
34457 * config/s390/s390.h (OPTION_DEFAULT_SPECS): Reorder.
34459 PR rtl-optimization/94002
34460 * explow.c (plus_constant): Punt if cst has VOIDmode and
34461 get_pool_mode is different from mode.
34463 2020-03-03 Claudiu Zissulescu <claziss@synopsys.com>
34465 * config/arc/arc.c (leigitimate_small_data_address_p): Check if an
34466 address has an offset which fits the scalling constraint for a
34467 load/store operation.
34468 (legitimate_scaled_address_p): Update use
34469 leigitimate_small_data_address_p.
34470 (arc_print_operand): Likewise.
34471 (arc_legitimate_address_p): Likewise.
34472 (legitimate_small_data_address_p): Likewise.
34474 2020-03-03 Claudiu Zissulescu <claziss@synopsys.com>
34476 * config/arc/arc.md (fmasf4_fpu): Use accl_operand predicate.
34477 (fnmasf4_fpu): Likewise.
34479 2020-03-03 Claudiu Zissulescu <claziss@synopsys.com>
34481 * config/arc/arc.md (adddi3): Early expand the 64bit operation into
34483 (subdi3): Likewise.
34484 (adddi3_i): Remove pattern.
34485 (subdi3_i): Likewise.
34487 2020-03-03 Claudiu Zissulescu <claziss@synopsys.com>
34489 * config/arc/arc.md (eh_return): Add length info.
34491 2020-03-02 David Malcolm <dmalcolm@redhat.com>
34493 * doc/invoke.texi (-fanalyzer-show-duplicate-count): New.
34495 2020-03-02 David Malcolm <dmalcolm@redhat.com>
34497 * doc/invoke.texi (Static Analyzer Options): Add
34498 -Wanalyzer-stale-setjmp-buffer to the list of options enabled
34501 2020-03-02 Uroš Bizjak <ubizjak@gmail.com>
34504 * config/i386/i386.md (movstrict<mode>): Allow only
34505 registers with VALID_INT_MODE_P modes.
34507 2020-03-02 Andrew Stubbs <ams@codesourcery.com>
34509 * config/gcn/gcn-valu.md (dpp_move<mode>): New.
34510 (reduc_insn): Use 'U' and 'B' operand codes.
34511 (reduc_<reduc_op>_scal_<mode>): Allow all types.
34512 (reduc_<reduc_op>_scal_v64di): Delete.
34513 (*<reduc_op>_dpp_shr_<mode>): Allow all 1reg types.
34514 (*plus_carry_dpp_shr_v64si): Change to ...
34515 (*plus_carry_dpp_shr_<mode>): ... this and allow all 1reg int types.
34516 (mov_from_lane63_v64di): Change to ...
34517 (mov_from_lane63_<mode>): ... this, and allow all 64-bit modes.
34518 * config/gcn/gcn.c (gcn_expand_dpp_shr_insn): Increase buffer size.
34519 Support UNSPEC_MOV_DPP_SHR output formats.
34520 (gcn_expand_reduc_scalar): Add "use_moves" reductions.
34521 Add "use_extends" reductions.
34522 (print_operand_address): Add 'I' and 'U' codes.
34523 * config/gcn/gcn.md (unspec): Add UNSPEC_MOV_DPP_SHR.
34525 2020-03-02 Martin Liska <mliska@suse.cz>
34527 * lto-wrapper.c: Fix typo in comment about
34528 C++ standard version.
34530 2020-03-01 Martin Sebor <msebor@redhat.com>
34533 * calls.c (init_attr_rdwr_indices): Correctly handle attribute.
34535 2020-03-01 Martin Sebor <msebor@redhat.com>
34537 PR middle-end/93829
34538 * tree-ssa-strlen.c (count_nonzero_bytes): Set the size to that
34539 of a pointer in the outermost ADDR_EXPRs.
34541 2020-02-28 Jeff Law <law@redhat.com>
34543 * config/v850/v850.h (STATIC_CHAIN_REGNUM): Change to r19.
34544 * config/v850/v850.c (v850_asm_trampoline_template): Update
34547 2020-02-28 Michael Meissner <meissner@linux.ibm.com>
34550 * config/rs6000/vsx.md (vsx_extract_<mode>_<VS_scalar>mode_var):
34553 2020-02-28 Martin Liska <mliska@suse.cz>
34556 * configure.ac: Improve detection of ld_date by requiring
34557 either two dashes or none.
34558 * configure: Regenerate.
34560 2020-02-28 Vladimir Makarov <vmakarov@redhat.com>
34562 PR rtl-optimization/93564
34563 * ira-color.c (assign_hard_reg): Prefer smaller hard regno when we
34564 do not honor reg alloc order.
34566 2020-02-27 Joel Hutton <Joel.Hutton@arm.com>
34569 * config/aarch64/aarch64.c (aarch64_override_options): Fix
34570 misleading warning string.
34572 2020-02-27 Martin Sebor <msebor@redhat.com>
34574 * doc/invoke.texi (-Wbuiltin-declaration-mismatch): Fix a typo.
34576 2020-02-27 Michael Meissner <meissner@linux.ibm.com>
34579 * config/rs6000/vsx.md (vsx_extract_<mode>_var, VSX_D iterator):
34580 Split the insn into two parts. This insn only does variable
34581 extract from a register.
34582 (vsx_extract_<mode>_var_load, VSX_D iterator): New insn, do
34583 variable extract from memory.
34584 (vsx_extract_v4sf_var): Split the insn into two parts. This insn
34585 only does variable extract from a register.
34586 (vsx_extract_v4sf_var_load): New insn, do variable extract from
34588 (vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): Split the insn
34589 into two parts. This insn only does variable extract from a
34591 (vsx_extract_<mode>_var_load, VSX_EXTRACT_I iterator): New insn,
34592 do variable extract from memory.
34594 2020-02-27 Martin Jambor <mjambor@suse.cz>
34595 Feng Xue <fxue@os.amperecomputing.com>
34598 * ipa-cp.c (same_node_or_its_all_contexts_clone_p): Replaced with
34599 new function calls_same_node_or_its_all_contexts_clone_p.
34600 (cgraph_edge_brings_value_p): Use it.
34601 (cgraph_edge_brings_value_p): Likewise.
34602 (self_recursive_pass_through_p): Return false if caller is a clone.
34603 (self_recursive_agg_pass_through_p): Likewise.
34605 2020-02-27 Jan Hubicka <hubicka@ucw.cz>
34607 PR middle-end/92152
34608 * alias.c (ends_tbaa_access_path_p): Break out from ...
34609 (component_uses_parent_alias_set_from): ... here.
34610 * alias.h (ends_tbaa_access_path_p): Declare.
34611 * tree-ssa-alias.c (access_path_may_continue_p): Break out from ...;
34612 handle trailing arrays past end of tbaa access path.
34613 (aliasing_component_refs_p): ... here; likewise.
34614 (nonoverlapping_refs_since_match_p): Track TBAA segment of the access
34615 path; disambiguate also past end of it.
34616 (nonoverlapping_component_refs_p): Use only TBAA segment of the access
34619 2020-02-27 Mihail Ionescu <mihail.ionescu@arm.com>
34621 * (__ARM_NUM_LANES, __arm_lane, __arm_lane_q): Move to the
34622 beginning of the file.
34623 (vcreate_bf16, vcombine_bf16): New.
34624 (vdup_n_bf16, vdupq_n_bf16): New.
34625 (vdup_lane_bf16, vdup_laneq_bf16): New.
34626 (vdupq_lane_bf16, vdupq_laneq_bf16): New.
34627 (vduph_lane_bf16, vduph_laneq_bf16): New.
34628 (vset_lane_bf16, vsetq_lane_bf16): New.
34629 (vget_lane_bf16, vgetq_lane_bf16): New.
34630 (vget_high_bf16, vget_low_bf16): New.
34631 (vreinterpret_bf16_u8, vreinterpretq_bf16_u8): New.
34632 (vreinterpret_bf16_u16, vreinterpretq_bf16_u16): New.
34633 (vreinterpret_bf16_u32, vreinterpretq_bf16_u32): New.
34634 (vreinterpret_bf16_u64, vreinterpretq_bf16_u64): New.
34635 (vreinterpret_bf16_s8, vreinterpretq_bf16_s8): New.
34636 (vreinterpret_bf16_s16, vreinterpretq_bf16_s16): New.
34637 (vreinterpret_bf16_s32, vreinterpretq_bf16_s32): New.
34638 (vreinterpret_bf16_s64, vreinterpretq_bf16_s64): New.
34639 (vreinterpret_bf16_p8, vreinterpretq_bf16_p8): New.
34640 (vreinterpret_bf16_p16, vreinterpretq_bf16_p16): New.
34641 (vreinterpret_bf16_p64, vreinterpretq_bf16_p64): New.
34642 (vreinterpret_bf16_f32, vreinterpretq_bf16_f32): New.
34643 (vreinterpret_bf16_f64, vreinterpretq_bf16_f64): New.
34644 (vreinterpretq_bf16_p128): New.
34645 (vreinterpret_s8_bf16, vreinterpretq_s8_bf16): New.
34646 (vreinterpret_s16_bf16, vreinterpretq_s16_bf16): New.
34647 (vreinterpret_s32_bf16, vreinterpretq_s32_bf16): New.
34648 (vreinterpret_s64_bf16, vreinterpretq_s64_bf16): New.
34649 (vreinterpret_u8_bf16, vreinterpretq_u8_bf16): New.
34650 (vreinterpret_u16_bf16, vreinterpretq_u16_bf16): New.
34651 (vreinterpret_u32_bf16, vreinterpretq_u32_bf16): New.
34652 (vreinterpret_u64_bf16, vreinterpretq_u64_bf16): New.
34653 (vreinterpret_p8_bf16, vreinterpretq_p8_bf16): New.
34654 (vreinterpret_p16_bf16, vreinterpretq_p16_bf16): New.
34655 (vreinterpret_p64_bf16, vreinterpretq_p64_bf16): New.
34656 (vreinterpret_f32_bf16, vreinterpretq_f32_bf16): New.
34657 (vreinterpretq_p128_bf16): New.
34658 * config/arm/arm_neon_builtins.def (VDX): Add V4BF.
34659 (V_elem): Likewise.
34660 (V_elem_l): Likewise.
34661 (VD_LANE): Likewise.
34663 (V_DOUBLE): Likewise.
34664 (VDQX): Add V4BF and V8BF.
34665 (V_two_elem, V_three_elem, V_four_elem): Likewise.
34667 (V_HALF): Likewise.
34668 (V_double_vector_mode): Likewise.
34669 (V_cmp_result): Likewise.
34670 (V_uf_sclr): Likewise.
34671 (V_sz_elem): Likewise.
34672 (Is_d_reg): Likewise.
34673 (V_mode_nunits): Likewise.
34674 * config/arm/neon.md (neon_vdup_lane): Enable for BFloat16.
34676 2020-02-27 Andrew Stubbs <ams@codesourcery.com>
34678 * config/gcn/gcn-valu.md (VEC_SUBDWORD_MODE): New mode iterator.
34679 (<expander><mode>2<exec>): Change modes to VEC_ALL1REG_INT_MODE.
34680 (<expander><mode>3<exec>): Likewise.
34681 (<expander><mode>3): New.
34682 (v<expander><mode>3): New.
34683 (<expander><mode>3): New.
34684 (<expander><mode>3<exec>): Rename to ...
34685 (<expander>v64si3<exec>): ... this, and change modes to V64SI.
34686 * config/gcn/gcn.md (mnemonic): Use '%B' for not.
34688 2020-02-27 Alexandre Oliva <oliva@adacore.com>
34690 * config/vx-common.h (NO_DOLLAR_IN_LABEL, NO_DOT_IN_LABEL): Leave
34693 2020-02-27 Richard Biener <rguenther@suse.de>
34695 PR tree-optimization/93508
34696 * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle _CHK like
34697 non-_CHK variants. Valueize their length arguments.
34699 2020-02-27 Richard Biener <rguenther@suse.de>
34701 PR tree-optimization/93953
34702 * tree-vect-slp.c (slp_copy_subtree): Avoid keeping a reference
34703 to the hash-map entry.
34705 2020-02-27 Andrew Stubbs <ams@codesourcery.com>
34707 * config/gcn/gcn.md (mov<mode>): Add transformations for BI subregs.
34709 2020-02-27 Mark Williams <mwilliams@fb.com>
34711 * dwarf2out.c (file_name_acquire): Call remap_debug_filename.
34712 * lto-opts.c (lto_write_options): Drop -fdebug-prefix-map,
34713 -ffile-prefix-map and -fmacro-prefix-map.
34714 * lto-streamer-out.c: Include file-prefix-map.h.
34715 (lto_output_location): Remap the file part of locations.
34717 2020-02-27 Jakub Jelinek <jakub@redhat.com>
34720 * gimplify.c (gimplify_init_constructor): Don't promote readonly
34721 DECL_REGISTER variables to TREE_STATIC.
34723 PR tree-optimization/93582
34724 PR tree-optimization/93945
34725 * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle memset with
34726 non-zero INTEGER_CST second argument and ref->offset or ref->size
34727 not a multiple of BITS_PER_UNIT.
34729 2020-02-27 Jonathan Wakely <jwakely@redhat.com>
34731 * doc/install.texi (Binaries): Update description of BullFreeware.
34733 2020-02-26 Sandra Loosemore <sandra@codesourcery.com>
34737 * doc/invoke.texi (Option Summary): Re-alphabetize warnings in
34738 C++ Language Options, Warning Options, and Static Analyzer
34739 Options lists. Document negative form of options enabled by
34740 default. Move some things around to more accurately sort
34741 warnings by category.
34742 (C++ Dialect Options, Warning Options, Static Analyzer
34743 Options): Document negative form of options when enabled by
34744 default. Move some things around to more accurately sort
34745 warnings by category. Add some missing index entries.
34746 Light copy-editing.
34748 2020-02-26 Carl Love <cel@us.ibm.com>
34751 * doc/extend.texi (PowerPC AltiVec Built-in Functions available on
34752 ISA 2.07): The builtin-function name __builtin_crypto_vpmsumb is only
34753 for the vector unsigned short arguments. It is also listed as the
34754 name of the built-in for arguments vector unsigned short,
34755 vector unsigned int and vector unsigned long long built-ins. The
34756 name of the builtins for these arguments should be:
34757 __builtin_crypto_vpmsumh, __builtin_crypto_vpmsumw and
34758 __builtin_crypto_vpmsumd respectively.
34760 2020-02-26 Richard Biener <rguenther@suse.de>
34762 * tree-vect-slp.c (vect_print_slp_tree): Also dump ref count
34763 and load permutation.
34765 2020-02-26 Richard Sandiford <richard.sandiford@arm.com>
34767 PR middle-end/93843
34768 * optabs-tree.c (supportable_convert_operation): Reject types with
34771 2020-02-26 David Malcolm <dmalcolm@redhat.com>
34773 * Makefile.in (ANALYZER_OBJS): Add analyzer/bar-chart.o.
34775 2020-02-26 Jakub Jelinek <jakub@redhat.com>
34777 PR tree-optimization/93820
34778 * gimple-ssa-store-merging.c (check_no_overlap): Change RHS_CODE
34779 argument to ALL_INTEGER_CST_P boolean.
34780 (imm_store_chain_info::try_coalesce_bswap): Adjust caller.
34781 (imm_store_chain_info::coalesce_immediate_stores): Likewise. Handle
34782 adjacent INTEGER_CST store into merged_store->only_constants like
34785 2020-02-25 Jakub Jelinek <jakub@redhat.com>
34788 * config/sh/sh.c (expand_cbranchdi4): Fix comment typo, probablity
34790 * cfghooks.c (verify_flow_info): Likewise.
34791 * predict.c (combine_predictions_for_bb): Likewise.
34792 * bb-reorder.c (connect_better_edge_p): Likewise. Fix comment typo,
34793 sucessor -> successor.
34794 (find_traces_1_round): Fix comment typo, destinarion -> destination.
34795 * omp-expand.c (expand_oacc_for): Fix comment typo, sucessors ->
34797 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Fix dump
34798 message typo, sucessors -> successors.
34800 2020-02-25 Martin Sebor <msebor@redhat.com>
34802 * doc/extend.texi (attribute access): Correct an example.
34804 2020-02-25 Mihail Ionescu <mihail.ionescu@arm.com>
34806 * config/aarch64/aarch64-builtins.c (aarch64_scalar_builtin_types):
34808 (aarch64_init_simd_builtin_scalar_types): Register simd_bf.
34809 (VAR15, VAR16): New.
34810 * config/aarch64/iterators.md (VALLDIF): Enable for V4BF and V8BF.
34811 (VD): Enable for V4BF.
34813 (VQ): Enable for V8BF.
34815 (VQ_NO2E): Likewise.
34816 (VDBL, Vdbl): Add V4BF.
34817 (V_INT_EQUIV, v_int_equiv): Add V4BF and V8BF.
34818 * config/aarch64/arm_neon.h (bfloat16x4x2_t): New typedef.
34819 (bfloat16x8x2_t): Likewise.
34820 (bfloat16x4x3_t): Likewise.
34821 (bfloat16x8x3_t): Likewise.
34822 (bfloat16x4x4_t): Likewise.
34823 (bfloat16x8x4_t): Likewise.
34824 (vcombine_bf16): New.
34825 (vld1_bf16, vld1_bf16_x2): New.
34826 (vld1_bf16_x3, vld1_bf16_x4): New.
34827 (vld1q_bf16, vld1q_bf16_x2): New.
34828 (vld1q_bf16_x3, vld1q_bf16_x4): New.
34829 (vld1_lane_bf16): New.
34830 (vld1q_lane_bf16): New.
34831 (vld1_dup_bf16): New.
34832 (vld1q_dup_bf16): New.
34835 (vld2_dup_bf16): New.
34836 (vld2q_dup_bf16): New.
34839 (vld3_dup_bf16): New.
34840 (vld3q_dup_bf16): New.
34843 (vld4_dup_bf16): New.
34844 (vld4q_dup_bf16): New.
34845 (vst1_bf16, vst1_bf16_x2): New.
34846 (vst1_bf16_x3, vst1_bf16_x4): New.
34847 (vst1q_bf16, vst1q_bf16_x2): New.
34848 (vst1q_bf16_x3, vst1q_bf16_x4): New.
34849 (vst1_lane_bf16): New.
34850 (vst1q_lane_bf16): New.
34858 2020-02-25 Mihail Ionescu <mihail.ionescu@arm.com>
34860 * config/aarch64/iterators.md (VDQF_F16) Add V4BF and V8BF.
34861 (VALL_F16): Likewise.
34862 (VALLDI_F16): Likewise.
34864 (Vetype): Likewise.
34865 (vswap_width_name): Likewise.
34866 (VSWAP_WIDTH): Likewise.
34870 * config/aarch64/arm_neon.h (vset_lane_bf16, vsetq_lane_bf16): New.
34871 (vget_lane_bf16, vgetq_lane_bf16): New.
34872 (vcreate_bf16): New.
34873 (vdup_n_bf16, vdupq_n_bf16): New.
34874 (vdup_lane_bf16, vdup_laneq_bf16): New.
34875 (vdupq_lane_bf16, vdupq_laneq_bf16): New.
34876 (vduph_lane_bf16, vduph_laneq_bf16): New.
34877 (vreinterpret_bf16_u8, vreinterpretq_bf16_u8): New.
34878 (vreinterpret_bf16_u16, vreinterpretq_bf16_u16): New.
34879 (vreinterpret_bf16_u32, vreinterpretq_bf16_u32): New.
34880 (vreinterpret_bf16_u64, vreinterpretq_bf16_u64): New.
34881 (vreinterpret_bf16_s8, vreinterpretq_bf16_s8): New.
34882 (vreinterpret_bf16_s16, vreinterpretq_bf16_s16): New.
34883 (vreinterpret_bf16_s32, vreinterpretq_bf16_s32): New.
34884 (vreinterpret_bf16_s64, vreinterpretq_bf16_s64): New.
34885 (vreinterpret_bf16_p8, vreinterpretq_bf16_p8): New.
34886 (vreinterpret_bf16_p16, vreinterpretq_bf16_p16): New.
34887 (vreinterpret_bf16_p64, vreinterpretq_bf16_p64): New
34888 (vreinterpret_bf16_f16, vreinterpretq_bf16_f16): New
34889 (vreinterpret_bf16_f32, vreinterpretq_bf16_f32): New.
34890 (vreinterpret_bf16_f64, vreinterpretq_bf16_f64): New.
34891 (vreinterpretq_bf16_p128): New.
34892 (vreinterpret_s8_bf16, vreinterpretq_s8_bf16): New.
34893 (vreinterpret_s16_bf16, vreinterpretq_s16_bf16): New.
34894 (vreinterpret_s32_bf16, vreinterpretq_s32_bf16): New.
34895 (vreinterpret_s64_bf16, vreinterpretq_s64_bf16): New.
34896 (vreinterpret_u8_bf16, vreinterpretq_u8_bf16): New.
34897 (vreinterpret_u16_bf16, vreinterpretq_u16_bf16): New.
34898 (vreinterpret_u32_bf16, vreinterpretq_u32_bf16): New.
34899 (vreinterpret_u64_bf16, vreinterpretq_u64_bf16): New.
34900 (vreinterpret_p8_bf16, vreinterpretq_p8_bf16): New.
34901 (vreinterpret_p16_bf16, vreinterpretq_p16_bf16): New.
34902 (vreinterpret_p64_bf16, vreinterpretq_p64_bf16): New.
34903 (vreinterpret_f32_bf16, vreinterpretq_f32_bf16): New.
34904 (vreinterpret_f64_bf16,vreinterpretq_f64_bf16): New.
34905 (vreinterpret_f16_bf16,vreinterpretq_f16_bf16): New.
34906 (vreinterpretq_p128_bf16): New.
34908 2020-02-25 Dennis Zhang <dennis.zhang@arm.com>
34910 * config/arm/arm_neon.h (vbfdot_f32, vbfdotq_f32): New
34911 (vbfdot_lane_f32, vbfdotq_laneq_f32): New.
34912 (vbfdot_laneq_f32, vbfdotq_lane_f32): New.
34913 * config/arm/arm_neon_builtins.def (vbfdot): New entry.
34914 (vbfdot_lanev4bf, vbfdot_lanev8bf): Likewise.
34915 * config/arm/iterators.md (VSF2BF): New attribute.
34916 * config/arm/neon.md (neon_vbfdot<VCVTF:mode>): New entry.
34917 (neon_vbfdot_lanev4bf<VCVTF:mode>): Likewise.
34918 (neon_vbfdot_lanev8bf<VCVTF:mode>): Likewise.
34920 2020-02-25 Christophe Lyon <christophe.lyon@linaro.org>
34922 * config/arm/arm.md (required_for_purecode): New attribute.
34923 (enabled): Handle required_for_purecode.
34924 * config/arm/thumb1.md (thumb1_movsi_insn): Add alternative to
34925 work with -mpure-code.
34927 2020-02-25 Jakub Jelinek <jakub@redhat.com>
34929 PR rtl-optimization/93908
34930 * combine.c (find_split_point): For store into ZERO_EXTRACT, and src
34933 2019-02-25 Eric Botcazou <ebotcazou@adacore.com>
34935 * dwarf2out.c (dwarf2out_size_function): Run in early-DWARF mode.
34937 2020-02-25 Roman Zhuykov <zhroma@ispras.ru>
34939 * doc/install.texi (--enable-checking): Adjust wording.
34941 2020-02-25 Richard Biener <rguenther@suse.de>
34943 PR tree-optimization/93868
34944 * tree-vect-slp.c (slp_copy_subtree): New function.
34945 (vect_attempt_slp_rearrange_stmts): Copy the SLP tree before
34946 re-arranging stmts in it.
34948 2020-02-25 Jakub Jelinek <jakub@redhat.com>
34950 PR middle-end/93874
34951 * passes.c (pass_manager::dump_passes): Create a cgraph node for the
34952 dummy function and remove it at the end.
34954 PR translation/93864
34955 * config/lm32/lm32.c (lm32_setup_incoming_varargs): Fix comment typo
34956 paramter -> parameter.
34957 * config/aarch64/aarch64.c (aarch64_is_extend_from_extract): Likewise.
34958 * ipa-prop.h (struct ipa_agg_replacement_value): Likewise.
34960 2020-02-24 Roman Zhuykov <zhroma@ispras.ru>
34962 * doc/install.texi (--enable-checking): Properly document current
34964 (--enable-stage1-checking): Minor clarification about bootstrap.
34966 2020-02-24 David Malcolm <dmalcolm@redhat.com>
34969 * doc/invoke.texi (-Wnanalyzer-tainted-array-index): Note that
34970 -fanalyzer-checker=taint is also required.
34971 (-fanalyzer-checker=): Note that providing this option enables the
34972 given checker, and doing so may be required for checkers that are
34973 disabled by default.
34975 2020-02-24 David Malcolm <dmalcolm@redhat.com>
34977 * doc/invoke.texi (-fanalyzer-verbosity=): "2" only shows
34978 significant control flow events; add a "3" which shows all
34979 control flow events; the old "3" becomes "4".
34981 2020-02-24 Jakub Jelinek <jakub@redhat.com>
34983 PR tree-optimization/93582
34984 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Consider
34985 pd.offset and pd.size to be counted in bits rather than bytes, add
34986 support for maxsizei that is not a multiple of BITS_PER_UNIT and
34987 handle bitfield stores and loads.
34988 (vn_reference_lookup_3): Don't call ranges_known_overlap_p with
34989 uncomparable quantities - bytes vs. bits. Allow push_partial_def
34990 on offsets/sizes that aren't multiple of BITS_PER_UNIT and adjust
34991 pd.offset/pd.size to be counted in bits rather than bytes.
34992 Formatting fix. Rename shadowed len variable to buflen.
34994 2020-02-24 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
34995 Kugan Vivekandarajah <kugan.vivekanandarajah@linaro.org>
34998 * gcc.c (putenv_COLLECT_AS_OPTIONS): New function.
34999 (driver::main): Call putenv_COLLECT_AS_OPTIONS.
35000 * opts-common.c (parse_options_from_collect_gcc_options): New function.
35001 (prepend_xassembler_to_collect_as_options): Likewise.
35002 * opts.h (parse_options_from_collect_gcc_options): Declare prototype.
35003 (prepend_xassembler_to_collect_as_options): Likewise.
35004 * lto-opts.c (lto_write_options): Stream assembler options
35005 in COLLECT_AS_OPTIONS.
35006 * lto-wrapper.c (xassembler_options_error): New static variable.
35007 (get_options_from_collect_gcc_options): Move parsing options code to
35008 parse_options_from_collect_gcc_options and call it.
35009 (merge_and_complain): Validate -Xassembler options.
35010 (append_compiler_options): Handle OPT_Xassembler.
35011 (run_gcc): Append command line -Xassembler options to
35012 collect_gcc_options.
35013 * doc/invoke.texi: Add documentation about using Xassembler
35016 2020-02-24 Kito Cheng <kito.cheng@sifive.com>
35018 * config/riscv/riscv.c (riscv_emit_float_compare): Change the code gen
35020 (riscv_rtx_costs): Update cost model for LTGT.
35022 2020-02-23 Vladimir Makarov <vmakarov@redhat.com>
35024 PR rtl-optimization/93564
35025 * ira-color.c (struct update_cost_queue_elem): New member start.
35026 (queue_update_cost, get_next_update_cost): Add new arg start.
35027 (allocnos_conflict_p): New function.
35028 (update_costs_from_allocno): Add new arg conflict_cost_update_p.
35029 Add checking conflicts with allocnos_conflict_p.
35030 (update_costs_from_prefs, restore_costs_from_copies): Adjust
35031 update_costs_from_allocno calls.
35032 (update_conflict_hard_regno_costs): Add checking conflicts with
35033 allocnos_conflict_p. Adjust calls of queue_update_cost and
35034 get_next_update_cost.
35035 (assign_hard_reg): Adjust calls of queue_update_cost. Add
35037 (bucket_allocno_compare_func): Restore previous version.
35039 2020-02-21 John David Anglin <danglin@gcc.gnu.org>
35041 * config/pa/pa.c (pa_function_value): Fix check for word and
35042 double-word size when handling aggregate return values.
35043 * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Fix to indicate
35044 that homogeneous SFmode and DFmode aggregates are passed and returned
35045 in general registers.
35047 2020-02-21 Jakub Jelinek <jakub@redhat.com>
35049 PR translation/93759
35050 * opts.c (print_filtered_help): Translate help before appending
35051 messages to it rather than after that.
35053 2020-02-19 Richard Sandiford <richard.sandiford@arm.com>
35055 PR rtl-optimization/PR92989
35056 * lra-lives.c (process_bb_lives): Restore the original order
35057 of the bb liveness update. Call make_hard_regno_dead for each
35058 register clobbered at the start of an EH receiver.
35060 2020-02-18 Feng Xue <fxue@os.amperecomputing.com>
35063 * ipa-cp.c (self_recursively_generated_p): Mark self-dependent value as
35064 self-recursively generated.
35066 2020-02-21 Iain Sandoe <iain@sandoe.co.uk>
35069 * config/darwin-c.c (pop_field_alignment): Adjust quoting of
35072 2020-02-21 Mihail Ionescu <mihail.ionescu@arm.com>
35074 * doc/sourcebuild.texi (arm_v8_1m_mve_ok):
35075 Document new target supports option.
35077 2020-02-21 Dennis Zhang <dennis.zhang@arm.com>
35079 * config/arm/arm_neon.h (vmmlaq_s32, vmmlaq_u32, vusmmlaq_s32): New.
35080 * config/arm/arm_neon_builtins.def (smmla, ummla, usmmla): New.
35081 * config/arm/iterators.md (MATMUL): New iterator.
35082 (sup): Add UNSPEC_MATMUL_S, UNSPEC_MATMUL_U, and UNSPEC_MATMUL_US.
35083 (mmla_sfx): New attribute.
35084 * config/arm/neon.md (neon_<sup>mmlav16qi): New.
35085 * config/arm/unspecs.md (UNSPEC_MATMUL_S, UNSPEC_MATMUL_U): New.
35086 (UNSPEC_MATMUL_US): New.
35088 2020-02-21 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
35090 * config/arm/arm.md: Prevent scalar shifts from being used when big
35093 2020-02-21 Jan Hubicka <hubicka@ucw.cz>
35094 Richard Biener <rguenther@suse.de>
35096 PR tree-optimization/93586
35097 * tree-ssa-alias.c (nonoverlapping_array_refs_p): Finish array walk
35098 after mismatched array refs; do not sure type size information to
35099 recover from unmatched referneces with !flag_strict_aliasing_p.
35101 2020-02-21 Andrew Stubbs <ams@codesourcery.com>
35103 * config/gcn/gcn-valu.md (gather_load<mode>): Rename to ...
35104 (gather_load<mode>v64si): ... this and set operand 2 to V64SI.
35105 (scatter_store<mode>): Rename to ...
35106 (scatter_store<mode>v64si): ... this and set operand 1 to V64SI.
35107 (scatter<mode>_exec): Delete. Move contents ...
35108 (mask_scatter_store<mode>): ... here, and rename that to ...
35109 (mask_gather_load<mode>v64si): ... this. Set operand 2 to V64SI.
35110 Remove mode conversion.
35111 (mask_gather_load<mode>): Rename to ...
35112 (mask_scatter_store<mode>v64si): ... this. Set operand 1 to V64SI.
35113 Remove mode conversion.
35114 * config/gcn/gcn.c (gcn_expand_scaled_offsets): Remove mode conversion.
35116 2020-02-21 Martin Jambor <mjambor@suse.cz>
35118 PR tree-optimization/93845
35119 * tree-sra.c (verify_sra_access_forest): Only test access size of
35122 2020-02-21 Andrew Stubbs <ams@codesourcery.com>
35124 * config/gcn/gcn.c (gcn_hard_regno_mode_ok): Align VGPR pairs.
35125 * config/gcn/gcn-valu.md (addv64di3): Remove early-clobber.
35126 (addv64di3_exec): Likewise.
35127 (subv64di3): Likewise.
35128 (subv64di3_exec): Likewise.
35129 (addv64di3_zext): Likewise.
35130 (addv64di3_zext_exec): Likewise.
35131 (addv64di3_zext_dup): Likewise.
35132 (addv64di3_zext_dup_exec): Likewise.
35133 (addv64di3_zext_dup2): Likewise.
35134 (addv64di3_zext_dup2_exec): Likewise.
35135 (addv64di3_sext_dup2): Likewise.
35136 (addv64di3_sext_dup2_exec): Likewise.
35137 (<expander>v64di3): Likewise.
35138 (<expander>v64di3_exec): Likewise.
35139 (*<reduc_op>_dpp_shr_v64di): Likewise.
35140 (*plus_carry_dpp_shr_v64di): Likewise.
35141 * config/gcn/gcn.md (adddi3): Likewise.
35142 (addptrdi3): Likewise.
35143 (<expander>di3): Likewise.
35145 2020-02-21 Andrew Stubbs <ams@codesourcery.com>
35147 * config/gcn/gcn-valu.md (vec_seriesv64di): Use gen_vec_duplicatev64di.
35149 2020-02-21 Richard Sandiford <richard.sandiford@arm.com>
35151 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Add SVE
35152 support. Use aarch64_emit_mult instead of emitting multiplication
35153 instructions directly.
35154 * config/aarch64/aarch64-sve.md (sqrt<mode>2, rsqrt<mode>2)
35155 (@aarch64_rsqrte<mode>, @aarch64_rsqrts<mode>): New expanders.
35157 2020-02-21 Richard Sandiford <richard.sandiford@arm.com>
35159 * config/aarch64/aarch64.c (aarch64_emit_mult): New function.
35160 (aarch64_emit_approx_div): Add SVE support. Use aarch64_emit_mult
35161 instead of emitting multiplication instructions directly.
35162 * config/aarch64/iterators.md (SVE_COND_FP_BINARY_OPTAB): New iterator.
35163 * config/aarch64/aarch64-sve.md (div<mode>3, @aarch64_frecpe<mode>)
35164 (@aarch64_frecps<mode>): New expanders.
35166 2020-02-21 Richard Sandiford <richard.sandiford@arm.com>
35168 * config/aarch64/aarch64-protos.h (AARCH64_APPROX_MODE): Operate
35169 on and produce uint64_ts rather than ints.
35170 (AARCH64_APPROX_NONE, AARCH64_APPROX_ALL): Change to uint64_ts.
35171 (cpu_approx_modes): Change the fields from unsigned int to uint64_t.
35173 2020-02-21 Richard Sandiford <richard.sandiford@arm.com>
35175 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Don't create
35176 an unused xmsk register when handling approximate rsqrt.
35178 2020-02-21 Richard Sandiford <richard.sandiford@arm.com>
35180 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Fix inverted
35181 flag_finite_math_only condition.
35183 2020-02-20 Uroš Bizjak <ubizjak@gmail.com>
35186 * config/i386/mmx.md (*vec_extractv2sf_1): Match source operand
35187 to destination operand for shufps alternative.
35188 (*vec_extractv2si_1): Ditto.
35190 2020-02-20 Peter Bergner <bergner@linux.ibm.com>
35193 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Handle VSX
35196 2020-02-20 Martin Liska <mliska@suse.cz>
35198 PR translation/93831
35199 * config/darwin.c (darwin_override_options): Change 64b to 64-bit mode.
35201 2020-02-20 Martin Liska <mliska@suse.cz>
35203 PR translation/93830
35204 * common/config/avr/avr-common.c: Remote trailing "|".
35206 2020-02-19 Bernd Edlinger <bernd.edlinger@hotmail.de>
35208 * collect2.c (maybe_run_lto_and_relink): Fix typo in
35211 2020-02-19 Richard Sandiford <richard.sandiford@arm.com>
35213 PR tree-optimization/93767
35214 * tree-vect-data-refs.c (vect_compile_time_alias): Remove the
35215 access-size bias from the offset calculations for negative strides.
35217 2020-02-19 Bernd Edlinger <bernd.edlinger@hotmail.de>
35219 * collect2.c (c_file, o_file): Make const again.
35220 (ldout,lderrout, dump_ld_file): Remove.
35221 (tool_cleanup): Avoid calling not signal-safe functions.
35222 (maybe_run_lto_and_relink): Avoid possible signal handler
35223 access to unintialzed memory (lto_o_files).
35224 (main): Avoid leaking temp files in $TMPDIR.
35225 Initialize c_file/o_file with concat, which avoids exposing
35226 uninitialized memory to signal handler, which calls unlink(!).
35227 Avoid calling maybe_unlink when the main function returns,
35228 since the atexit handler is already doing this.
35229 * collect2.h (dump_ld_file, ldout, lderrout): Remove.
35231 2020-02-19 Martin Jambor <mjambor@suse.cz>
35233 PR tree-optimization/93776
35234 * tree-sra.c (create_access): Do not create zero size accesses.
35235 (get_access_for_expr): Do not search for zero sized accesses.
35237 2020-02-19 Martin Jambor <mjambor@suse.cz>
35239 PR tree-optimization/93667
35240 * tree-sra.c (scalarizable_type_p): Return false if record fields
35241 do not follow wach other.
35243 2020-01-21 Kito Cheng <kito.cheng@sifive.com>
35245 * config/riscv/riscv.c (riscv_output_move) Using fmv.x.w/fmv.w.x
35246 rather than fmv.x.s/fmv.s.x.
35248 2020-02-18 James Greenhalgh <james.greenhalgh@arm.com>
35250 * config/aarch64/aarch64-simd-builtins.def
35251 (intrinsic_vec_smult_lo_): New.
35252 (intrinsic_vec_umult_lo_): Likewise.
35253 (vec_widen_smult_hi_): Likewise.
35254 (vec_widen_umult_hi_): Likewise.
35255 * config/aarch64/aarch64-simd.md
35256 (aarch64_intrinsic_vec_<su>mult_lo_<mode>): New.
35257 * config/aarch64/arm_neon.h (vmull_high_s8): Use intrinsics.
35258 (vmull_high_s16): Likewise.
35259 (vmull_high_s32): Likewise.
35260 (vmull_high_u8): Likewise.
35261 (vmull_high_u16): Likewise.
35262 (vmull_high_u32): Likewise.
35263 (vmull_s8): Likewise.
35264 (vmull_s16): Likewise.
35265 (vmull_s32): Likewise.
35266 (vmull_u8): Likewise.
35267 (vmull_u16): Likewise.
35268 (vmull_u32): Likewise.
35270 2020-02-18 Martin Liska <mliska@suse.cz>
35272 * value-prof.c (stream_out_histogram_value): Restore LTO PGO
35273 bootstrap by missing removal of invalid sanity check.
35275 2020-02-18 Martin Liska <mliska@suse.cz>
35278 * ipa-icf-gimple.c (func_checker::compare_gimple_assign):
35279 Always compare LHS of gimple_assign.
35281 2020-02-18 Martin Liska <mliska@suse.cz>
35284 * cgraph.c (cgraph_node::verify_node): Verify MALLOC attribute
35285 and return type of functions.
35286 * ipa-param-manipulation.c (ipa_param_adjustments::adjust_decl):
35287 Drop MALLOC attribute for void functions.
35288 * ipa-pure-const.c (funct_state_summary_t::duplicate): Drop
35289 malloc_state for a new VOID clone.
35291 2020-02-18 Martin Liska <mliska@suse.cz>
35294 * common.opt: Add -fprofile-reproducibility.
35295 * doc/invoke.texi: Document it.
35296 * value-prof.c (dump_histogram_value):
35297 Document and support behavior for counters[0]
35298 being a negative value.
35299 (get_nth_most_common_value): Handle negative
35300 counters[0] in respect to flag_profile_reproducible.
35302 2020-02-18 Jakub Jelinek <jakub@redhat.com>
35305 * cgraph.c (verify_speculative_call): Use speculative_id instead of
35306 speculative_uid in messages. Remove trailing whitespace from error
35307 message. Use num_speculative_call_targets instead of
35308 num_speculative_targets in a message.
35309 (cgraph_node::verify_node): Use call_stmt instead of cal_stmt in
35310 edge messages and stmt instead of cal_stmt in reference message.
35312 PR tree-optimization/93780
35313 * tree-ssa.c (non_rewritable_lvalue_p): Check valid_vector_subparts_p
35314 before calling build_vector_type.
35315 (execute_update_addresses_taken): Likewise.
35318 * params.opt (-param=ipa-max-switch-predicate-bounds=): Fix help
35319 typo, functoin -> function.
35320 * tree.c (free_lang_data_in_decl): Fix comment typo,
35321 functoin -> function.
35322 * ipa-visibility.c (cgraph_externally_visible_p): Likewise.
35324 2020-02-17 David Malcolm <dmalcolm@redhat.com>
35326 * diagnostic.c (print_any_cwe): Don't call get_cwe_url if URLs
35328 (print_option_information): Don't call get_option_url if URLs
35331 2020-02-17 Alexandre Oliva <oliva@adacore.com>
35333 * tree-emutls.c (new_emutls_decl, emutls_common_1): Complete
35334 handling of register_common-less targets.
35336 2020-02-17 Martin Liska <mliska@suse.cz>
35339 * ipa-devirt.c (odr_types_equivalent_p): Fix grammar.
35341 2020-02-17 Martin Liska <mliska@suse.cz>
35343 PR translation/93755
35344 * config/rs6000/rs6000.c (rs6000_option_override_internal):
35347 2020-02-17 Martin Liska <mliska@suse.cz>
35350 * config/rx/elf.opt: Fix typo.
35352 2020-02-17 Richard Biener <rguenther@suse.de>
35355 * opts-global.c (print_ignored_options): Use inform and
35358 2020-02-17 Jiufu Guo <guojiufu@linux.ibm.com>
35361 * config/rs6000/rs6000.md (untyped_call): Add emit_clobber.
35363 2020-02-16 Uroš Bizjak <ubizjak@gmail.com>
35366 * config/i386/i386.md (atan2xf3): Swap operands 1 and 2.
35367 (atan2<mode>3): Update operand order in the call to gen_atan2xf3.
35369 2020-02-15 Jason Merrill <jason@redhat.com>
35371 * doc/invoke.texi (C Dialect Options): Add -std=c++20.
35373 2020-02-15 Jakub Jelinek <jakub@redhat.com>
35375 PR tree-optimization/93744
35376 * match.pd (((m1 >/</>=/<= m2) * d -> (m1 >/</>=/<= m2) ? d : 0,
35377 A - ((A - B) & -(C cmp D)) -> (C cmp D) ? B : A,
35378 A + ((B - A) & -(C cmp D)) -> (C cmp D) ? B : A): For GENERIC, make
35379 sure @2 in the first and @1 in the other patterns has no side-effects.
35381 2020-02-15 David Malcolm <dmalcolm@redhat.com>
35382 Bernd Edlinger <bernd.edlinger@hotmail.de>
35386 * config.in (DIAGNOSTICS_URLS_DEFAULT): New define.
35387 * configure.ac (--with-diagnostics-urls): New configuration
35388 option, based on --with-diagnostics-color.
35389 (DIAGNOSTICS_URLS_DEFAULT): New define.
35390 * config.h: Regenerate.
35391 * configure: Regenerate.
35392 * diagnostic.c (diagnostic_urls_init): Handle -1 for
35393 DIAGNOSTICS_URLS_DEFAULT from configure-time
35394 --with-diagnostics-urls=auto-if-env by querying for a GCC_URLS
35395 and TERM_URLS environment variable.
35396 * diagnostic-url.h (diagnostic_url_format): New enum type.
35397 (diagnostic_urls_enabled_p): rename to...
35398 (determine_url_format): ... this, and change return type.
35399 * diagnostic-color.c (parse_env_vars_for_urls): New helper function.
35400 (auto_enable_urls): Disable URLs on xfce4-terminal, gnome-terminal,
35401 the linux console, and mingw.
35402 (diagnostic_urls_enabled_p): rename to...
35403 (determine_url_format): ... this, and adjust.
35404 * pretty-print.h (pretty_printer::show_urls): rename to...
35405 (pretty_printer::url_format): ... this, and change to enum.
35406 * pretty-print.c (pretty_printer::pretty_printer,
35407 pp_begin_url, pp_end_url, test_urls): Adjust.
35408 * doc/install.texi (--with-diagnostics-urls): Document the new
35409 configuration option.
35410 (--with-diagnostics-color): Document the existing interaction
35411 with GCC_COLORS better.
35412 * doc/invoke.texi (-fdiagnostics-urls): Add GCC_URLS and TERM_URLS
35413 vindex reference. Update description of defaults based on the above.
35414 (-fdiagnostics-color): Update description of how -fdiagnostics-color
35415 interacts with GCC_COLORS.
35417 2020-02-14 Eric Botcazou <ebotcazou@adacore.com>
35420 * config/sparc/sparc.c (eligible_for_call_delay): Test HAVE_GNU_LD in
35421 conjunction with TARGET_GNU_TLS in early return.
35423 2020-02-14 Alexander Monakov <amonakov@ispras.ru>
35425 * rtlanal.c (rtx_cost): Handle a SET up front. Avoid division if
35426 the mode is not wider than UNITS_PER_WORD.
35428 2020-02-14 Martin Jambor <mjambor@suse.cz>
35430 PR tree-optimization/93516
35431 * tree-sra.c (propagate_subaccesses_from_rhs): Do not create
35432 access of the same type as the parent.
35433 (propagate_subaccesses_from_lhs): Likewise.
35435 2020-02-14 Hongtao Liu <hongtao.liu@intel.com>
35438 * config/i386/avx512vbmi2intrin.h
35439 (_mm512_shrdi_epi16, _mm512_mask_shrdi_epi16,
35440 _mm512_maskz_shrdi_epi16, _mm512_shrdi_epi32,
35441 _mm512_mask_shrdi_epi32, _mm512_maskz_shrdi_epi32,
35442 _m512_shrdi_epi64, _m512_mask_shrdi_epi64,
35443 _m512_maskz_shrdi_epi64, _mm512_shldi_epi16,
35444 _mm512_mask_shldi_epi16, _mm512_maskz_shldi_epi16,
35445 _mm512_shldi_epi32, _mm512_mask_shldi_epi32,
35446 _mm512_maskz_shldi_epi32, _mm512_shldi_epi64,
35447 _mm512_mask_shldi_epi64, _mm512_maskz_shldi_epi64): Fix typo
35448 of lacking a closing parenthesis.
35449 * config/i386/avx512vbmi2vlintrin.h
35450 (_mm256_shrdi_epi16, _mm256_mask_shrdi_epi16,
35451 _mm256_maskz_shrdi_epi16, _mm256_shrdi_epi32,
35452 _mm256_mask_shrdi_epi32, _mm256_maskz_shrdi_epi32,
35453 _m256_shrdi_epi64, _m256_mask_shrdi_epi64,
35454 _m256_maskz_shrdi_epi64, _mm256_shldi_epi16,
35455 _mm256_mask_shldi_epi16, _mm256_maskz_shldi_epi16,
35456 _mm256_shldi_epi32, _mm256_mask_shldi_epi32,
35457 _mm256_maskz_shldi_epi32, _mm256_shldi_epi64,
35458 _mm256_mask_shldi_epi64, _mm256_maskz_shldi_epi64,
35459 _mm_shrdi_epi16, _mm_mask_shrdi_epi16,
35460 _mm_maskz_shrdi_epi16, _mm_shrdi_epi32,
35461 _mm_mask_shrdi_epi32, _mm_maskz_shrdi_epi32,
35462 _mm_shrdi_epi64, _mm_mask_shrdi_epi64,
35463 _m_maskz_shrdi_epi64, _mm_shldi_epi16,
35464 _mm_mask_shldi_epi16, _mm_maskz_shldi_epi16,
35465 _mm_shldi_epi32, _mm_mask_shldi_epi32,
35466 _mm_maskz_shldi_epi32, _mm_shldi_epi64,
35467 _mm_mask_shldi_epi64, _mm_maskz_shldi_epi64): Ditto.
35469 2020-02-13 H.J. Lu <hongjiu.lu@intel.com>
35472 * config/i386/i386.c (ix86_trampoline_init): Skip ENDBR32 at
35473 the target function entry.
35475 2020-02-13 Claudiu Zissulescu <claziss@synopsys.com>
35477 * common/config/arc/arc-common.c (arc_option_optimization_table):
35478 Disable if-conversion step when optimized for size.
35480 2020-02-13 Claudiu Zissulescu <claziss@synopsys.com>
35482 * config/arc/arc.c (arc_conditional_register_usage): R0-R3 and
35483 R12-R15 are always in ARCOMPACT16_REGS register class.
35484 * config/arc/arc.opt (mq-class): Deprecate.
35485 * config/arc/constraint.md ("q"): Remove dependency on mq-class
35487 * doc/invoke.texi (mq-class): Update text.
35488 * common/config/arc/arc-common.c (arc_option_optimization_table):
35491 2020-02-13 Claudiu Zissulescu <claziss@synopsys.com>
35493 * config/arc/arc.c (arc_insn_cost): New function.
35494 (TARGET_INSN_COST): Define.
35495 * config/arc/arc.md (cost): New attribute.
35496 (add_n): Use arc_nonmemory_operand.
35497 (ashlsi3_insn): Likewise, also update constraints.
35498 (ashrsi3_insn): Likewise.
35499 (rotrsi3): Likewise.
35500 (add_shift): Likewise.
35501 * config/arc/predicates.md (arc_nonmemory_operand): New predicate.
35503 2020-02-13 Claudiu Zissulescu <claziss@synopsys.com>
35505 * config/arc/arc.md (mulsidi_600): Correctly select mlo/mhi
35507 (umulsidi_600): Likewise.
35509 2020-02-13 Jakub Jelinek <jakub@redhat.com>
35512 * config/i386/avx512bitalgintrin.h (_mm512_mask_popcnt_epi8,
35513 _mm512_mask_popcnt_epi16, _mm256_mask_popcnt_epi8,
35514 _mm256_mask_popcnt_epi16, _mm_mask_popcnt_epi8,
35515 _mm_mask_popcnt_epi16): Rename __B argument to __A and __A to __W,
35516 pass __A to the builtin followed by __W instead of __A followed by
35518 * config/i386/avx512vpopcntdqintrin.h (_mm512_mask_popcnt_epi32,
35519 _mm512_mask_popcnt_epi64): Likewise.
35520 * config/i386/avx512vpopcntdqvlintrin.h (_mm_mask_popcnt_epi32,
35521 _mm256_mask_popcnt_epi32, _mm_mask_popcnt_epi64,
35522 _mm256_mask_popcnt_epi64): Likewise.
35524 PR tree-optimization/93582
35525 * fold-const.h (shift_bytes_in_array_left,
35526 shift_bytes_in_array_right): Declare.
35527 * fold-const.c (shift_bytes_in_array_left,
35528 shift_bytes_in_array_right): New function, moved from
35529 gimple-ssa-store-merging.c, no longer static.
35530 * gimple-ssa-store-merging.c (shift_bytes_in_array): Move
35531 to gimple-ssa-store-merging.c and rename to shift_bytes_in_array_left.
35532 (shift_bytes_in_array_right): Move to gimple-ssa-store-merging.c.
35533 (encode_tree_to_bitpos): Use shift_bytes_in_array_left instead of
35534 shift_bytes_in_array.
35535 (verify_shift_bytes_in_array): Rename to ...
35536 (verify_shift_bytes_in_array_left): ... this. Use
35537 shift_bytes_in_array_left instead of shift_bytes_in_array.
35538 (store_merging_c_tests): Call verify_shift_bytes_in_array_left
35539 instead of verify_shift_bytes_in_array.
35540 * tree-ssa-sccvn.c (vn_reference_lookup_3): For native_encode_expr
35541 / native_interpret_expr where the store covers all needed bits,
35542 punt on PDP-endian, otherwise allow all involved offsets and sizes
35543 not to be byte-aligned.
35546 * config/i386/sse.md (k<code><mode>): Drop mode from last operand and
35547 use const_0_to_255_operand predicate instead of immediate_operand.
35548 (avx512dq_fpclass<mode><mask_scalar_merge_name>,
35549 avx512dq_vmfpclass<mode><mask_scalar_merge_name>,
35550 vgf2p8affineinvqb_<mode><mask_name>,
35551 vgf2p8affineqb_<mode><mask_name>): Drop mode from
35552 const_0_to_255_operand predicated operands.
35554 2020-02-12 Jeff Law <law@redhat.com>
35556 * config/h8300/h8300.md (comparison shortening peepholes): Use
35557 a mode iterator to merge the HImode and SImode peepholes.
35559 2020-02-12 Jakub Jelinek <jakub@redhat.com>
35561 PR middle-end/93663
35562 * real.c (is_even): Make static. Function comment fix.
35563 (is_halfway_below): Make static, don't assert R is not inf/nan,
35564 instead return false for those. Small formatting fixes.
35566 2020-02-12 Martin Sebor <msebor@redhat.com>
35568 PR middle-end/93646
35569 * tree-ssa-strlen.c (handle_builtin_stxncpy): Rename...
35570 (handle_builtin_stxncpy_strncat): ...to this. Change first argument.
35571 Issue only -Wstringop-overflow strncat, never -Wstringop-truncation.
35572 (strlen_check_and_optimize_call): Adjust callee name.
35574 2020-02-12 Jeff Law <law@redhat.com>
35576 * config/h8300/h8300.md (comparison shortening peepholes): Drop
35577 (and (xor)) variant. Combine other two into single peephole.
35579 2020-02-12 Wilco Dijkstra <wdijkstr@arm.com>
35581 PR rtl-optimization/93565
35582 * config/aarch64/aarch64.c (aarch64_rtx_costs): Add CTZ costs.
35584 2020-02-12 Wilco Dijkstra <wdijkstr@arm.com>
35586 * config/aarch64/aarch64-simd.md
35587 (aarch64_zero_extend<GPI:mode>_reduc_plus_<VDQV_E:mode>): New pattern.
35588 * config/aarch64/aarch64.md (popcount<mode>2): Use it instead of
35589 generating separate ADDV and zero_extend patterns.
35590 * config/aarch64/iterators.md (VDQV_E): New iterator.
35592 2020-02-12 Jeff Law <law@redhat.com>
35594 * config/h8300/h8300.md (cpymemsi, movmd): Remove dead patterns,
35595 expanders, splits, etc.
35596 (movmd_internal_<mode>, movmd splitter, movstr, movsd): Likewise.
35597 (stpcpy_internal_<mode>, stpcpy splitter): Likewise.
35598 (peepholes to convert QI/HI mode pushes to SI mode pushes): Likewise.
35599 * config/h8300/h8300.c (h8300_swap_into_er6): Remove unused function.
35600 (h8300_swap_out_of_er6, h8sx_emit_movmd): Likewise
35601 * config/h8300/h8300-protos.h (h8300_swap_into_er6): Remove unused
35602 function prototype.
35603 (h8300_swap_out_of_er6, h8sx_emit_movmd): Likewise.
35605 2020-02-12 Jakub Jelinek <jakub@redhat.com>
35608 * config/i386/sse.md (VI48F_256_DQ): New mode iterator.
35609 (avx512vl_vextractf128<mode>): Use it instead of VI48F_256. Remove
35610 TARGET_AVX512DQ from condition.
35611 (vec_extract_lo_<mode><mask_name>): Use <mask_avx512dq_condition>
35612 instead of <mask_mode512bit_condition> in condition. If
35613 TARGET_AVX512DQ is false, emit vextract*64x4 instead of
35615 (vec_extract_lo_<mode><mask_name>): Drop <mask_avx512dq_condition>
35618 2020-02-12 Kewen Lin <linkw@gcc.gnu.org>
35621 * ira.c (combine_and_move_insns): Skip multiple_sets def_insn.
35623 2020-02-12 Segher Boessenkool <segher@kernel.crashing.org>
35625 * config/rs6000/rs6000.c (rs6000_debug_print_mode): Don't use sizeof
35626 where strlen is more legible.
35627 (rs6000_builtin_vectorized_libmass): Ditto.
35628 (rs6000_print_options_internal): Ditto.
35630 2020-02-11 Martin Sebor <msebor@redhat.com>
35632 PR tree-optimization/93683
35633 * tree-ssa-alias.c (stmt_kills_ref_p): Avoid using LHS when not set.
35635 2020-02-11 Michael Meissner <meissner@linux.ibm.com>
35637 * config/rs6000/predicates.md (cint34_operand): Rename the
35638 -mprefixed-addr option to be -mprefixed.
35639 * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Rename
35640 the -mprefixed-addr option to be -mprefixed.
35641 (OTHER_FUTURE_MASKS): Likewise.
35642 (POWERPC_MASKS): Likewise.
35643 * config/rs6000/rs6000.c (rs6000_option_override_internal): Rename
35644 the -mprefixed-addr option to be -mprefixed. Change error
35645 messages to refer to -mprefixed.
35646 (num_insns_constant_gpr): Rename the -mprefixed-addr option to be
35648 (rs6000_legitimate_offset_address_p): Likewise.
35649 (rs6000_mode_dependent_address): Likewise.
35650 (rs6000_opt_masks): Change the spelling of "-mprefixed-addr" to be
35651 "-mprefixed" for target attributes and pragmas.
35652 (address_to_insn_form): Rename the -mprefixed-addr option to be
35654 (rs6000_adjust_insn_length): Likewise.
35655 * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Rename the
35656 -mprefixed-addr option to be -mprefixed.
35657 (ASM_OUTPUT_OPCODE): Likewise.
35658 * config/rs6000/rs6000.md (prefixed insn attribute): Rename the
35659 -mprefixed-addr option to be -mprefixed.
35660 * config/rs6000/rs6000.opt (-mprefixed): Rename the
35661 -mprefixed-addr option to be prefixed. Change the option from
35662 being undocumented to being documented.
35663 * doc/invoke.texi (RS/6000 and PowerPC Options): Document the
35664 -mprefixed option. Update the -mpcrel documentation to mention
35667 2020-02-11 Hans-Peter Nilsson <hp@axis.com>
35669 * ira-conflicts.c (print_hard_reg_set): Correct output for sets
35670 including FIRST_PSEUDO_REGISTER - 1.
35671 * ira-color.c (print_hard_reg_set): Ditto.
35673 2020-02-11 Stam Markianos-Wright <stam.markianos-wright@arm.com>
35675 * config/arm/arm-builtins.c (enum arm_type_qualifiers):
35676 (USTERNOP_QUALIFIERS): New define.
35677 (USMAC_LANE_QUADTUP_QUALIFIERS): New define.
35678 (SUMAC_LANE_QUADTUP_QUALIFIERS): New define.
35679 (arm_expand_builtin_args): Add case ARG_BUILTIN_LANE_QUADTUP_INDEX.
35680 (arm_expand_builtin_1): Add qualifier_lane_quadtup_index.
35681 * config/arm/arm_neon.h (vusdot_s32): New.
35682 (vusdot_lane_s32): New.
35683 (vusdotq_lane_s32): New.
35684 (vsudot_lane_s32): New.
35685 (vsudotq_lane_s32): New.
35686 * config/arm/arm_neon_builtins.def (usdot, usdot_lane,sudot_lane): New.
35687 * config/arm/iterators.md (DOTPROD_I8MM): New.
35688 (sup, opsuffix): Add <us/su>.
35689 * config/arm/neon.md (neon_usdot, <us/su>dot_lane: New.
35690 * config/arm/unspecs.md (UNSPEC_DOT_US, UNSPEC_DOT_SU): New.
35692 2020-02-11 Richard Biener <rguenther@suse.de>
35694 PR tree-optimization/93661
35695 PR tree-optimization/93662
35696 * tree-ssa-sccvn.c (vn_reference_lookup_3): Properly guard
35697 tree_to_poly_int64.
35698 * tree-sra.c (get_access_for_expr): Likewise.
35700 2020-02-10 Jakub Jelinek <jakub@redhat.com>
35703 * config/i386/sse.md (VI_256_AVX2): New mode iterator.
35704 (vcond_mask_<mode><sseintvecmodelower>): Use it instead of VI_256.
35705 Change condition from TARGET_AVX2 to TARGET_AVX.
35707 2020-02-10 Iain Sandoe <iain@sandoe.co.uk>
35710 * config/darwin-c.c (darwin_cfstring_ref_p): Fix up last
35711 argument of strncmp.
35713 2020-02-10 Hans-Peter Nilsson <hp@axis.com>
35715 Try to generate zero-based comparisons.
35716 * config/cris/cris.c (cris_reduce_compare): New function.
35717 * config/cris/cris-protos.h (cris_reduce_compare): Add prototype.
35718 * config/cris/cris.md ("cbranch<mode>4", "cbranchdi4", "cstoredi4")
35719 (cstore<mode>4"): Apply cris_reduce_compare in expanders.
35721 2020-02-10 Richard Earnshaw <rearnsha@arm.com>
35724 * config/arm/arm.md (movsi_compare0): Allow SP as a source register
35725 in Thumb state and also as a destination in Arm state. Add T16
35728 2020-02-10 Hans-Peter Nilsson <hp@axis.com>
35730 * md.texi (Define Subst): Match closing paren in example.
35732 2020-02-10 Jakub Jelinek <jakub@redhat.com>
35736 * config/i386/i386.c (x86_64_elf_section_type_flags): Fix up last
35737 arguments of strncmp.
35739 2020-02-10 Feng Xue <fxue@os.amperecomputing.com>
35742 * ipa-cp.c (ipcp_lattice::add_value): Add source with same call edge
35743 but different source value.
35744 (adjust_callers_for_value_intersection): New function.
35745 (gather_edges_for_value): Adjust order of callers to let a
35746 non-self-recursive caller be the first element.
35747 (self_recursive_pass_through_p): Add a new parameter "simple", and
35748 check generalized self-recursive pass-through jump function.
35749 (self_recursive_agg_pass_through_p): Likewise.
35750 (find_more_scalar_values_for_callers_subset): Compute value from
35751 pass-through jump function for self-recursive.
35752 (intersect_with_plats): Cleanup previous implementation code for value
35753 itersection with self-recursive call edge.
35754 (intersect_with_agg_replacements): Likewise.
35755 (intersect_aggregates_with_edge): Deduce value from pass-through jump
35756 function for self-recursive call edge. Cleanup previous implementation
35757 code for value intersection with self-recursive call edge.
35758 (decide_whether_version_node): Remove dead callers and adjust order
35759 to let a non-self-recursive caller be the first element.
35761 2020-02-09 Uroš Bizjak <ubizjak@gmail.com>
35763 * recog.c: Move pass_split_before_sched2 code in front of
35764 pass_split_before_regstack.
35765 (pass_data_split_before_sched2): Rename pass to split3 from split4.
35766 (pass_data_split_before_regstack): Rename pass to split4 from split3.
35767 (rest_of_handle_split_before_sched2): Remove.
35768 (pass_split_before_sched2::execute): Unconditionally call
35770 (enable_split_before_sched2): New function.
35771 (pass_split_before_sched2::gate): Use enable_split_before_sched2.
35772 (pass_split_before_regstack::gate): Ditto.
35773 * config/nds32/nds32.c (nds32_split_double_word_load_store_p):
35774 Update name check for renamed split4 pass.
35775 * config/sh/sh.c (register_sh_passes): Update pass insertion
35776 point for renamed split4 pass.
35778 2020-02-09 Jakub Jelinek <jakub@redhat.com>
35780 * gimplify.c (gimplify_adjust_omp_clauses_1): Promote
35781 DECL_IN_CONSTANT_POOL variables into "omp declare target" to avoid
35782 copying them around between host and target.
35784 2020-02-08 Andrew Pinski <apinski@marvell.com>
35787 * config/aarch64/aarch64-simd.md (movmisalign<mode>): Check
35788 STRICT_ALIGNMENT also.
35790 2020-02-08 Jim Wilson <jimw@sifive.com>
35793 * config/riscv/riscv.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
35795 2020-02-08 Uroš Bizjak <ubizjak@gmail.com>
35796 Jakub Jelinek <jakub@redhat.com>
35799 * config/i386/i386.h (CALL_USED_REGISTERS): Make
35800 xmm16-xmm31 call-used even in 64-bit ms-abi.
35802 2020-02-07 Dennis Zhang <dennis.zhang@arm.com>
35804 * config/aarch64/aarch64-simd-builtins.def (simd_smmla): New entry.
35805 (simd_ummla, simd_usmmla): Likewise.
35806 * config/aarch64/aarch64-simd.md (aarch64_simd_<sur>mmlav16qi): New.
35807 * config/aarch64/arm_neon.h (vmmlaq_s32, vmmlaq_u32): New.
35808 (vusmmlaq_s32): New.
35810 2020-02-07 Richard Biener <rguenther@suse.de>
35812 PR middle-end/93519
35813 * tree-inline.c (fold_marked_statements): Do a PRE walk,
35814 skipping unreachable regions.
35815 (optimize_inline_calls): Skip folding stmts when we didn't
35818 2020-02-07 H.J. Lu <hongjiu.lu@intel.com>
35821 * config/i386/i386.c (function_arg_ms_64): Add a type argument.
35822 Don't return aggregates with only SFmode and DFmode in SSE
35824 (ix86_function_arg): Pass arg.type to function_arg_ms_64.
35826 2020-02-07 Jakub Jelinek <jakub@redhat.com>
35829 * config/rs6000/rs6000-logue.c
35830 (rs6000_emit_probe_stack_range_stack_clash): Always use gen_add3_insn,
35831 if it fails, move rs into end_addr and retry. Add
35832 REG_FRAME_RELATED_EXPR note whenever it returns more than one insn or
35833 the insn pattern doesn't describe well what exactly happens to
35837 * config/i386/predicates.md (avx_identity_operand): Remove.
35838 * config/i386/sse.md (*avx_vec_concat<mode>_1): Remove.
35839 (avx_<castmode><avxsizesuffix>_<castmode>,
35840 avx512f_<castmode><avxsizesuffix>_256<castmode>): Change patterns to
35841 a VEC_CONCAT of the operand and UNSPEC_CAST.
35842 (avx512f_<castmode><avxsizesuffix>_<castmode>): Change pattern to
35843 a VEC_CONCAT of VEC_CONCAT of the operand and UNSPEC_CAST with
35847 * config/i386/i386.c (ix86_lea_outperforms): Make sure to clear
35848 recog_data.insn if distance_non_agu_define changed it.
35850 2020-02-06 Michael Meissner <meissner@linux.ibm.com>
35853 * config/rs6000/rs6000.c (reg_to_non_prefixed): Before ISA 3.0
35854 we only had X-FORM (reg+reg) addressing for vectors. Also before
35855 ISA 3.0, we only had X-FORM addressing for scalars in the
35856 traditional Altivec registers.
35858 2020-02-06 <zhongyunde@huawei.com>
35859 Vladimir Makarov <vmakarov@redhat.com>
35861 PR rtl-optimization/93561
35862 * lra-assigns.c (spill_for): Check that tested hard regno is not out of
35863 hard register range.
35865 2020-02-06 Richard Sandiford <richard.sandiford@arm.com>
35867 * config/aarch64/aarch64.md (aarch64_movk<mode>): Add a type
35870 2020-02-06 Segher Boessenkool <segher@kernel.crashing.org>
35872 * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Handle the case
35873 where the low and the high 32 bits are equal to each other specially,
35874 with an rldimi instruction.
35876 2020-02-06 Mihail Ionescu <mihail.ionescu@arm.com>
35878 * config/arm/arm-cpus.in: Set profile M for armv8.1-m.main.
35880 2020-02-06 Mihail Ionescu <mihail.ionescu@arm.com>
35882 * config/arm/arm-tables.opt: Regenerate.
35884 2020-02-06 Richard Sandiford <richard.sandiford@arm.com>
35887 * config/aarch64/aarch64-protos.h (aarch64_movk_shift): Declare.
35888 * config/aarch64/aarch64.c (aarch64_movk_shift): New function.
35889 * config/aarch64/aarch64.md (aarch64_movk<mode>): New pattern.
35891 2020-02-06 Richard Sandiford <richard.sandiford@arm.com>
35893 PR rtl-optimization/87763
35894 * config/aarch64/aarch64.md (*ashiftsi_extvdi_bfiz): New pattern.
35896 2020-02-06 Delia Burduv <delia.burduv@arm.com>
35898 * config/aarch64/aarch64-simd-builtins.def
35899 (bfmlaq): New built-in function.
35900 (bfmlalb): New built-in function.
35901 (bfmlalt): New built-in function.
35902 (bfmlalb_lane): New built-in function.
35903 (bfmlalt_lane): New built-in function.
35904 * config/aarch64/aarch64-simd.md
35905 (aarch64_bfmmlaqv4sf): New pattern.
35906 (aarch64_bfmlal<bt>v4sf): New pattern.
35907 (aarch64_bfmlal<bt>_lane<q>v4sf): New pattern.
35908 * config/aarch64/arm_neon.h (vbfmmlaq_f32): New intrinsic.
35909 (vbfmlalbq_f32): New intrinsic.
35910 (vbfmlaltq_f32): New intrinsic.
35911 (vbfmlalbq_lane_f32): New intrinsic.
35912 (vbfmlaltq_lane_f32): New intrinsic.
35913 (vbfmlalbq_laneq_f32): New intrinsic.
35914 (vbfmlaltq_laneq_f32): New intrinsic.
35915 * config/aarch64/iterators.md (BF_MLA): New int iterator.
35916 (bt): New int attribute.
35918 2020-02-06 Uroš Bizjak <ubizjak@gmail.com>
35920 * config/i386/i386.md (*pushtf): Emit "#" instead of
35921 calling gcc_unreachable in insn output.
35924 (*pushsf_rex64): Ditto for alternatives other than 1.
35925 (*pushsf): Ditto for alternatives other than 1.
35927 2020-02-06 Martin Liska <mliska@suse.cz>
35929 PR gcov-profile/91971
35930 PR gcov-profile/93466
35931 * coverage.c (coverage_init): Revert mangling of
35932 path into filename. It can lead to huge filename length.
35933 Creation of subfolders seem more natural.
35935 2020-02-06 Stam Markianos-Wright <stam.markianos-wright@arm.com>
35938 * config/arm/arm.c (arm_block_arith_comp_libfuncs_for_mode): New.
35939 (arm_init_libfuncs): Add BFmode support to block spurious BF libfuncs.
35940 Use arm_block_arith_comp_libfuncs_for_mode for HFmode.
35942 2020-02-06 Jakub Jelinek <jakub@redhat.com>
35945 * config/i386/predicates.md (avx_identity_operand): New predicate.
35946 * config/i386/sse.md (*avx_vec_concat<mode>_1): New
35947 define_insn_and_split.
35950 * omp-low.c (use_pointer_for_field): For nested constructs, also
35951 look for map clauses on target construct.
35952 (scan_omp_1_stmt) <case GIMPLE_OMP_TARGET>: Bump temporarily
35953 taskreg_nesting_level.
35956 * gimplify.c (gimplify_scan_omp_clauses) <do_notice>: If adding
35957 shared clause, call omp_notice_variable on outer context if any.
35959 2020-02-05 Jason Merrill <jason@redhat.com>
35962 * symtab.c (symtab_node::nonzero_address): A DECL_COMDAT decl has
35963 non-zero address even if weak and not yet defined.
35965 2020-02-05 Martin Sebor <msebor@redhat.com>
35967 PR tree-optimization/92765
35968 * gimple-fold.c (get_range_strlen_tree): Handle MEM_REF and PARM_DECL.
35969 * tree-ssa-strlen.c (compute_string_length): Remove.
35970 (determine_min_objsize): Remove.
35971 (get_len_or_size): Add an argument. Call get_range_strlen_dynamic.
35972 Avoid using type size as the upper bound on string length.
35973 (handle_builtin_string_cmp): Add an argument. Adjust.
35974 (strlen_check_and_optimize_call): Pass additional argument to
35975 handle_builtin_string_cmp.
35977 2020-02-05 Uroš Bizjak <ubizjak@gmail.com>
35979 * config/i386/i386.md (*pushdi2_rex64 peephole2): Remove.
35980 (*pushdi2_rex64 peephole2): Unconditionally split after
35981 epilogue_completed.
35982 (*ashl<mode>3_doubleword): Ditto.
35983 (*<shift_insn><mode>3_doubleword): Ditto.
35985 2020-02-05 Michael Meissner <meissner@linux.ibm.com>
35988 * config/rs6000/rs6000.c (get_vector_offset): Fix
35990 2020-02-05 Andrew Stubbs <ams@codesourcery.com>
35992 * config/gcn/t-gcn-hsa (MULTILIB_OPTIONS): Use / not space.
35994 2020-02-05 David Malcolm <dmalcolm@redhat.com>
35996 * doc/analyzer.texi
35997 (Special Functions for Debugging the Analyzer): Update description
35998 of __analyzer_dump_exploded_nodes.
36000 2020-02-05 Jakub Jelinek <jakub@redhat.com>
36003 * config/i386/i386-features.c (ix86_add_reg_usage_to_vzeroupper): Only
36004 include sets and not clobbers in the vzeroupper pattern.
36005 * config/i386/sse.md (*avx_vzeroupper): Require in insn condition that
36006 the parallel has 17 (64-bit) or 9 (32-bit) elts.
36007 (*avx_vzeroupper_1): New define_insn_and_split.
36010 * recog.c (pass_split_after_reload::gate): For STACK_REGS targets,
36011 don't run when !optimize.
36012 (pass_split_before_regstack::gate): For STACK_REGS targets, run even
36015 2020-02-05 Richard Biener <rguenther@suse.de>
36017 PR middle-end/90648
36018 * genmatch.c (dt_node::gen_kids_1): Emit number of argument
36019 checks before matching calls.
36021 2020-02-05 Jakub Jelinek <jakub@redhat.com>
36023 * tree-ssa-alias.c (aliasing_matching_component_refs_p): Fix up
36024 function comment typo.
36026 PR middle-end/93555
36027 * omp-simd-clone.c (expand_simd_clones): If simd_clone_mangle or
36028 simd_clone_create failed when i == 0, adjust clone->nargs by
36031 2020-02-05 Martin Liska <mliska@suse.cz>
36034 * doc/invoke.texi: Document that one should
36035 not combine ASLR and -fpch.
36037 2020-02-04 Richard Biener <rguenther@suse.de>
36039 PR tree-optimization/93538
36040 * match.pd (addr EQ/NE ptr): Amend to handle &ptr->x EQ/NE ptr.
36042 2020-02-04 Richard Biener <rguenther@suse.de>
36044 PR tree-optimization/91123
36045 * tree-ssa-sccvn.c (vn_walk_cb_data::finish): New method.
36046 (vn_walk_cb_data::last_vuse): New member.
36047 (vn_walk_cb_data::saved_operands): Likewsie.
36048 (vn_walk_cb_data::~vn_walk_cb_data): Release saved_operands.
36049 (vn_walk_cb_data::push_partial_def): Use finish.
36050 (vn_reference_lookup_2): Update last_vuse and use finish if
36051 we've saved operands.
36052 (vn_reference_lookup_3): Use finish and update calls to
36053 push_partial_defs everywhere. When translating through
36054 memcpy or aggregate copies save off operands and alias-set.
36055 (eliminate_dom_walker::eliminate_stmt): Restore VN_WALKREWRITE
36056 operation for redundant store removal.
36058 2020-02-04 Richard Biener <rguenther@suse.de>
36060 PR tree-optimization/92819
36061 * tree-ssa-forwprop.c (simplify_vector_constructor): Avoid
36062 generating more stmts than before.
36064 2020-02-04 Martin Liska <mliska@suse.cz>
36066 * config/arm/arm.c (arm_gen_far_branch): Move the function
36067 outside of selftests.
36069 2020-02-03 Michael Meissner <meissner@linux.ibm.com>
36071 * config/rs6000/rs6000.c (adjust_vec_address_pcrel): New helper
36072 function to adjust PC-relative vector addresses.
36073 (rs6000_adjust_vec_address): Call adjust_vec_address_pcrel to
36074 handle vectors with PC-relative addresses.
36076 2020-02-03 Michael Meissner <meissner@linux.ibm.com>
36078 * config/rs6000/rs6000.c (reg_to_non_prefixed): Add forward
36080 (hard_reg_and_mode_to_addr_mask): Delete.
36081 (rs6000_adjust_vec_address): If the original vector address
36082 was REG+REG or REG+OFFSET and the element is not zero, do the add
36083 of the elements in the original address before adding the offset
36084 for the vector element. Use address_to_insn_form to validate the
36085 address using the register being loaded, rather than guessing
36086 whether the address is a DS-FORM or DQ-FORM address.
36088 2020-02-03 Michael Meissner <meissner@linux.ibm.com>
36090 * config/rs6000/rs6000.c (get_vector_offset): New helper function
36091 to calculate the offset in memory from the start of a vector of a
36092 particular element. Add code to keep the element number in
36093 bounds if the element number is variable.
36094 (rs6000_adjust_vec_address): Move calculation of offset of the
36095 vector element to get_vector_offset.
36096 (rs6000_split_vec_extract_var): Do not do the initial AND of
36097 element here, move the code to get_vector_offset.
36099 2020-02-03 Michael Meissner <meissner@linux.ibm.com>
36101 * config/rs6000/rs6000.c (rs6000_adjust_vec_address): Add some
36104 2020-02-03 Segher Boessenkool <segher@kernel.crashing.org>
36106 * config/rs6000/constraints.md: Improve documentation.
36108 2020-02-03 Richard Earnshaw <rearnsha@arm.com>
36111 * config/arm/t-arm: ($(srcdir)/config/arm/arm-tune.md)
36112 ($(srcdir)/config/arm/arm-tables.opt): Use move-if-change.
36114 2020-02-03 Andrew Stubbs <ams@codesourcery.com>
36116 * config.gcc: Remove "carrizo" support.
36117 * config/gcn/gcn-opts.h (processor_type): Likewise.
36118 * config/gcn/gcn.c (gcn_omp_device_kind_arch_isa): Likewise.
36119 * config/gcn/gcn.opt (gpu_type): Likewise.
36120 * config/gcn/t-omp-device: Likewise.
36122 2020-02-03 Stam Markianos-Wright <stam.markianos-wright@arm.com>
36125 * config/arm/arm-protos.h: New function arm_gen_far_branch prototype.
36126 * config/arm/arm.c (arm_gen_far_branch): New function
36127 arm_gen_far_branch.
36128 * config/arm/arm.md: Update b<cond> for Thumb2 range checks.
36130 2020-02-03 Julian Brown <julian@codesourcery.com>
36131 Tobias Burnus <tobias@codesourcery.com>
36133 * doc/invoke.texi: Update mention of OpenACC version to 2.6.
36135 2020-02-03 Jakub Jelinek <jakub@redhat.com>
36138 * config/s390/s390.md (popcounthi2_z196): Fix up expander to emit
36139 valid RTL to sum up the lowest and second lowest bytes of the popcnt
36142 2020-02-02 Vladimir Makarov <vmakarov@redhat.com>
36144 PR rtl-optimization/91333
36145 * ira-color.c (struct allocno_color_data): Add member
36147 (init_allocno_threads): Set the member up.
36148 (bucket_allocno_compare_func): Add compare hard reg
36151 2020-01-31 Sandra Loosemore <sandra@codesourcery.com>
36153 nios2: Support for GOT-relative DW_EH_PE_datarel encoding.
36155 * configure.ac [nios2-*-*]: Check HAVE_AS_NIOS2_GOTOFF_RELOCATION.
36156 * config.in: Regenerated.
36157 * configure: Regenerated.
36158 * config/nios2/nios2.h (ASM_PREFERRED_EH_DATA_FORMAT): Fix handling
36159 for PIC when HAVE_AS_NIOS2_GOTOFF_RELOCATION.
36160 (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): New.
36162 2020-02-01 Andrew Burgess <andrew.burgess@embecosm.com>
36164 * configure: Regenerate.
36166 2020-01-31 Vladimir Makarov <vmakarov@redhat.com>
36168 PR rtl-optimization/91333
36169 * ira-color.c (bucket_allocno_compare_func): Move conflict hard
36170 reg preferences comparison up.
36172 2020-01-31 Richard Sandiford <richard.sandiford@arm.com>
36174 * config/aarch64/aarch64.h (TARGET_SVE_BF16): New macro.
36175 * config/aarch64/aarch64-sve-builtins-sve2.h (svcvtnt): Move to
36176 aarch64-sve-builtins-base.h.
36177 * config/aarch64/aarch64-sve-builtins-sve2.cc (svcvtnt): Move to
36178 aarch64-sve-builtins-base.cc.
36179 * config/aarch64/aarch64-sve-builtins-base.h (svbfdot, svbfdot_lane)
36180 (svbfmlalb, svbfmlalb_lane, svbfmlalt, svbfmlalt_lane, svbfmmla)
36181 (svcvtnt): Declare.
36182 * config/aarch64/aarch64-sve-builtins-base.cc (svbfdot, svbfdot_lane)
36183 (svbfmlalb, svbfmlalb_lane, svbfmlalt, svbfmlalt_lane, svbfmmla)
36184 (svcvtnt): New functions.
36185 * config/aarch64/aarch64-sve-builtins-base.def (svbfdot, svbfdot_lane)
36186 (svbfmlalb, svbfmlalb_lane, svbfmlalt, svbfmlalt_lane, svbfmmla)
36187 (svcvtnt): New functions.
36188 (svcvt): Add a form that converts f32 to bf16.
36189 * config/aarch64/aarch64-sve-builtins-shapes.h (ternary_bfloat)
36190 (ternary_bfloat_lane, ternary_bfloat_lanex2, ternary_bfloat_opt_n):
36192 * config/aarch64/aarch64-sve-builtins-shapes.cc (parse_element_type):
36193 Treat B as bfloat16_t.
36194 (ternary_bfloat_lane_base): New class.
36195 (ternary_bfloat_def): Likewise.
36196 (ternary_bfloat): New shape.
36197 (ternary_bfloat_lane_def): New class.
36198 (ternary_bfloat_lane): New shape.
36199 (ternary_bfloat_lanex2_def): New class.
36200 (ternary_bfloat_lanex2): New shape.
36201 (ternary_bfloat_opt_n_def): New class.
36202 (ternary_bfloat_opt_n): New shape.
36203 * config/aarch64/aarch64-sve-builtins.cc (TYPES_cvt_bfloat): New macro.
36204 * config/aarch64/aarch64-sve.md (@aarch64_sve_<sve_fp_op>vnx4sf)
36205 (@aarch64_sve_<sve_fp_op>_lanevnx4sf): New patterns.
36206 (@aarch64_sve_<optab>_trunc<VNx4SF_ONLY:mode><VNx8BF_ONLY:mode>)
36207 (@cond_<optab>_trunc<VNx4SF_ONLY:mode><VNx8BF_ONLY:mode>): Likewise.
36208 (*cond_<optab>_trunc<VNx4SF_ONLY:mode><VNx8BF_ONLY:mode>): Likewise.
36209 (@aarch64_sve_cvtnt<VNx8BF_ONLY:mode>): Likewise.
36210 * config/aarch64/aarch64-sve2.md (@aarch64_sve2_cvtnt<mode>): Key
36211 the pattern off the narrow mode instead of the wider one.
36212 * config/aarch64/iterators.md (VNx8BF_ONLY): New mode iterator.
36213 (UNSPEC_BFMLALB, UNSPEC_BFMLALT, UNSPEC_BFMMLA): New unspecs.
36214 (sve_fp_op): Handle them.
36215 (SVE_BFLOAT_TERNARY_LONG): New int itertor.
36216 (SVE_BFLOAT_TERNARY_LONG_LANE): Likewise.
36218 2020-01-31 Richard Sandiford <richard.sandiford@arm.com>
36220 * config/aarch64/arm_sve.h: Include arm_bf16.h.
36221 * config/aarch64/aarch64-modes.def (BF): Move definition before
36222 VECTOR_MODES. Remove separate VECTOR_MODES for V4BF and V8BF.
36223 (SVE_MODES): Handle BF modes.
36224 * config/aarch64/aarch64.c (aarch64_classify_vector_mode): Handle
36226 (aarch64_full_sve_mode): Likewise.
36227 * config/aarch64/iterators.md (SVE_STRUCT): Add VNx16BF, VNx24BF
36229 (SVE_FULL, SVE_FULL_HSD, SVE_ALL): Add VNx8BF.
36230 (Vetype, Vesize, Vctype, VEL, Vel, VEL_INT, V128, v128, vwcore)
36231 (V_INT_EQUIV, v_int_equiv, V_FP_EQUIV, v_fp_equiv, vector_count)
36232 (insn_length, VSINGLE, vsingle, VPRED, vpred, VDOUBLE): Handle the
36234 * config/aarch64/aarch64-sve-builtins.h (TYPE_bfloat): New
36236 * config/aarch64/aarch64-sve-builtins.cc (TYPES_all_arith): New macro.
36237 (TYPES_all_data): Add bf16.
36238 (TYPES_reinterpret1, TYPES_reinterpret): Likewise.
36239 (register_tuple_type): Increase buffer size.
36240 * config/aarch64/aarch64-sve-builtins.def (svbfloat16_t): New type.
36241 (bf16): New type suffix.
36242 * config/aarch64/aarch64-sve-builtins-base.def (svabd, svadd, svaddv)
36243 (svcmpeq, svcmpge, svcmpgt, svcmple, svcmplt, svcmpne, svmad, svmax)
36244 (svmaxv, svmin, svminv, svmla, svmls, svmsb, svmul, svsub, svsubr):
36245 Change type from all_data to all_arith.
36246 * config/aarch64/aarch64-sve-builtins-sve2.def (svaddp, svmaxp)
36247 (svminp): Likewise.
36249 2020-01-31 Dennis Zhang <dennis.zhang@arm.com>
36250 Matthew Malcomson <matthew.malcomson@arm.com>
36251 Richard Sandiford <richard.sandiford@arm.com>
36253 * doc/invoke.texi (f32mm): Document new AArch64 -march= extension.
36254 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
36255 __ARM_FEATURE_SVE_MATMUL_INT8, __ARM_FEATURE_SVE_MATMUL_FP32 and
36256 __ARM_FEATURE_SVE_MATMUL_FP64 as appropriate. Don't define
36257 __ARM_FEATURE_MATMUL_FP64.
36258 * config/aarch64/aarch64-option-extensions.def (fp, simd, fp16)
36259 (sve): Add AARCH64_FL_F32MM to the list of extensions that should
36260 be disabled at the same time.
36261 (f32mm): New extension.
36262 * config/aarch64/aarch64.h (AARCH64_FL_F32MM): New macro.
36263 (AARCH64_FL_F64MM): Bump to the next bit up.
36264 (AARCH64_ISA_F32MM, TARGET_SVE_I8MM, TARGET_F32MM, TARGET_SVE_F32MM)
36265 (TARGET_SVE_F64MM): New macros.
36266 * config/aarch64/iterators.md (SVE_MATMULF): New mode iterator.
36267 (UNSPEC_FMMLA, UNSPEC_SMATMUL, UNSPEC_UMATMUL, UNSPEC_USMATMUL)
36268 (UNSPEC_TRN1Q, UNSPEC_TRN2Q, UNSPEC_UZP1Q, UNSPEC_UZP2Q, UNSPEC_ZIP1Q)
36269 (UNSPEC_ZIP2Q): New unspeccs.
36270 (DOTPROD_US_ONLY, PERMUTEQ, MATMUL, FMMLA): New int iterators.
36271 (optab, sur, perm_insn): Handle the new unspecs.
36272 (sve_fp_op): Handle UNSPEC_FMMLA. Resort.
36273 * config/aarch64/aarch64-sve.md (@aarch64_sve_ld1ro<mode>): Use
36274 TARGET_SVE_F64MM instead of separate tests.
36275 (@aarch64_<DOTPROD_US_ONLY:sur>dot_prod<vsi2qi>): New pattern.
36276 (@aarch64_<DOTPROD_US_ONLY:sur>dot_prod_lane<vsi2qi>): Likewise.
36277 (@aarch64_sve_add_<MATMUL:optab><vsi2qi>): Likewise.
36278 (@aarch64_sve_<FMMLA:sve_fp_op><mode>): Likewise.
36279 (@aarch64_sve_<PERMUTEQ:optab><mode>): Likewise.
36280 * config/aarch64/aarch64-sve-builtins.cc (TYPES_s_float): New macro.
36281 (TYPES_s_float_hsd_integer, TYPES_s_float_sd_integer): Use it.
36282 (TYPES_s_signed): New macro.
36283 (TYPES_s_integer): Use it.
36284 (TYPES_d_float): New macro.
36285 (TYPES_d_data): Use it.
36286 * config/aarch64/aarch64-sve-builtins-shapes.h (mmla): Declare.
36287 (ternary_intq_uintq_lane, ternary_intq_uintq_opt_n, ternary_uintq_intq)
36288 (ternary_uintq_intq_lane, ternary_uintq_intq_opt_n): Likewise.
36289 * config/aarch64/aarch64-sve-builtins-shapes.cc (mmla_def): New class.
36290 (svmmla): New shape.
36291 (ternary_resize2_opt_n_base): Add TYPE_CLASS2 and TYPE_CLASS3
36292 template parameters.
36293 (ternary_resize2_lane_base): Likewise.
36294 (ternary_resize2_base): New class.
36295 (ternary_qq_lane_base): Likewise.
36296 (ternary_intq_uintq_lane_def): Likewise.
36297 (ternary_intq_uintq_lane): New shape.
36298 (ternary_intq_uintq_opt_n_def): New class
36299 (ternary_intq_uintq_opt_n): New shape.
36300 (ternary_qq_lane_def): Inherit from ternary_qq_lane_base.
36301 (ternary_uintq_intq_def): New class.
36302 (ternary_uintq_intq): New shape.
36303 (ternary_uintq_intq_lane_def): New class.
36304 (ternary_uintq_intq_lane): New shape.
36305 (ternary_uintq_intq_opt_n_def): New class.
36306 (ternary_uintq_intq_opt_n): New shape.
36307 * config/aarch64/aarch64-sve-builtins-base.h (svmmla, svsudot)
36308 (svsudot_lane, svtrn1q, svtrn2q, svusdot, svusdot_lane, svusmmla)
36309 (svuzp1q, svuzp2q, svzip1q, svzip2q): Declare.
36310 * config/aarch64/aarch64-sve-builtins-base.cc (svdot_lane_impl):
36312 (svdotprod_lane_impl): ...this new class.
36313 (svmmla_impl, svusdot_impl): New classes.
36314 (svdot_lane): Update to use svdotprod_lane_impl.
36315 (svmmla, svsudot, svsudot_lane, svtrn1q, svtrn2q, svusdot)
36316 (svusdot_lane, svusmmla, svuzp1q, svuzp2q, svzip1q, svzip2q): New
36318 * config/aarch64/aarch64-sve-builtins-base.def (svmmla): New base
36319 function, with no types defined.
36320 (svmmla, svusmmla, svsudot, svsudot_lane, svusdot, svusdot_lane): New
36321 AARCH64_FL_I8MM functions.
36322 (svmmla): New AARCH64_FL_F32MM function.
36323 (svld1ro): Depend only on AARCH64_FL_F64MM, not on AARCH64_FL_V8_6.
36324 (svmmla, svtrn1q, svtrn2q, svuz1q, svuz2q, svzip1q, svzip2q): New
36325 AARCH64_FL_F64MM function.
36326 (REQUIRED_EXTENSIONS):
36328 2020-01-31 Andrew Stubbs <ams@codesourcery.com>
36330 * config/gcn/gcn-valu.md (addv64di3_exec): Allow one '0' in each
36333 2020-01-31 Uroš Bizjak <ubizjak@gmail.com>
36335 * config/i386/i386.md (*movoi_internal_avx): Do not check for
36336 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL. Remove MODE_V8SF handling.
36337 (*movti_internal): Do not check for
36338 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL.
36339 (*movtf_internal): Move check for TARGET_SSE2 and size optimization
36340 just after check for TARGET_AVX.
36341 (*movdf_internal): Ditto.
36342 * config/i386/mmx.md (*mov<mode>_internal): Do not check for
36343 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL.
36344 * config/i386/sse.md (mov<mode>_internal): Only check
36345 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL with V2DFmode. Move check
36346 for TARGET_SSE2 and size optimization just after check for TARGET_AVX.
36347 (<sse>_andnot<mode>3<mask_name>): Move check for
36348 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL after check for TARGET_AVX.
36349 (<code><mode>3<mask_name>): Ditto.
36350 (*andnot<mode>3): Ditto.
36351 (*andnottf3): Ditto.
36352 (*<code><mode>3): Ditto.
36353 (*<code>tf3): Ditto.
36354 (*andnot<VI:mode>3): Remove
36355 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL handling.
36356 (<mask_codefor><code><VI48_AVX_AVX512F:mode>3<mask_name>): Ditto.
36357 (*<code><VI12_AVX_AVX512F:mode>3): Ditto.
36358 (sse4_1_blendv<ssemodesuffix>): Ditto.
36359 * config/i386/x86-tune.def (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL):
36360 Explain that tune applies to 128bit instructions only.
36362 2020-01-31 Kwok Cheung Yeung <kcy@codesourcery.com>
36364 * config/gcn/mkoffload.c (process_asm): Add sgpr_count and vgpr_count
36365 to definition of hsa_kernel_description. Parse assembly to find SGPR
36366 and VGPR count of kernel and store in hsa_kernel_description.
36368 2020-01-31 Tamar Christina <tamar.christina@arm.com>
36370 PR rtl-optimization/91838
36371 * simplify-rtx.c (simplify_binary_operation_1): Update LSHIFTRT case
36372 to truncate if allowed or reject combination.
36374 2020-01-31 Andrew Stubbs <ams@codesourcery.com>
36376 * tree-ssa-loop-ivopts.c (get_iv): Use sizetype for zero-step.
36377 (find_inv_vars_cb): Likewise.
36379 2020-01-31 David Malcolm <dmalcolm@redhat.com>
36381 * calls.c (special_function_p): Split out the check for DECL_NAME
36382 being non-NULL and fndecl being extern at file scope into a
36383 new maybe_special_function_p and call it. Drop check for fndecl
36384 being non-NULL that was after a usage of DECL_NAME (fndecl).
36385 * tree.h (maybe_special_function_p): New inline function.
36387 2020-01-30 Andrew Stubbs <ams@codesourcery.com>
36389 * config/gcn/gcn-valu.md (gather<mode>_exec): Move contents ...
36390 (mask_gather_load<mode>): ... here, and zero-initialize the
36392 (maskload<mode>di): Zero-initialize the destination.
36393 * config/gcn/gcn.c:
36395 2020-01-30 David Malcolm <dmalcolm@redhat.com>
36398 * doc/analyzer.texi (Limitations): Note that constraints on
36399 floating-point values are currently ignored.
36401 2020-01-30 Jakub Jelinek <jakub@redhat.com>
36404 * symtab.c (symtab_node::noninterposable_alias): If localalias
36405 already exists, but is not usable, append numbers after it until
36406 a unique name is found. Formatting fix.
36408 PR middle-end/93505
36409 * combine.c (simplify_comparison) <case ROTATE>: Punt on out of range
36412 2020-01-30 Andrew Stubbs <ams@codesourcery.com>
36414 * config/gcn/gcn.c (print_operand): Handle LTGT.
36415 * config/gcn/predicates.md (gcn_fp_compare_operator): Allow ltgt.
36417 2020-01-30 Richard Biener <rguenther@suse.de>
36419 * tree-pretty-print.c (dump_generic_node): Wrap VECTOR_CST
36420 and CONSTRUCTOR in _Literal (type) with TDF_GIMPLE.
36422 2020-01-30 John David Anglin <danglin@gcc.gnu.org>
36424 * config/pa/pa.c (pa_elf_select_rtx_section): Place function pointers
36425 without a DECL in .data.rel.ro.local.
36427 2020-01-30 Jakub Jelinek <jakub@redhat.com>
36430 * config/arm/arm.md (uaddvdi4): Actually emit what gen_uaddvsi4
36434 * config/i386/sse.md
36435 (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_zext): Renamed to ...
36436 (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_<u>ext): ... this. Use
36437 any_extend code iterator instead of always zero_extend.
36438 (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_zext_lt): Renamed to ...
36439 (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_<u>ext_lt): ... this.
36440 Use any_extend code iterator instead of always zero_extend.
36441 (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_zext_shift): Renamed to ...
36442 (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_<u>ext_shift): ... this.
36443 Use any_extend code iterator instead of always zero_extend.
36444 (*sse2_pmovmskb_ext): New define_insn.
36445 (*sse2_pmovmskb_ext_lt): New define_insn_and_split.
36448 * config/i386/i386.md (*popcountsi2_zext): New define_insn_and_split.
36449 (*popcountsi2_zext_falsedep): New define_insn.
36451 2020-01-30 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
36453 * config.in: Regenerated.
36454 * configure: Regenerated.
36456 2020-01-29 Tobias Burnus <tobias@codesourcery.com>
36459 * config/gcn/gcn-hsa.h (ASM_SPEC): Add -mattr=-code-object-v3 as
36460 LLVM's assembler changed the default in version 9.
36462 2020-01-24 Jeff Law <law@redhat.com>
36464 PR tree-optimization/89689
36465 * builtins.def (BUILT_IN_OBJECT_SIZE): Make it const rather than pure.
36467 2020-01-29 Richard Sandiford <richard.sandiford@arm.com>
36471 2020-01-28 Richard Sandiford <richard.sandiford@arm.com>
36473 PR rtl-optimization/87763
36474 * simplify-rtx.c (simplify_truncation): Extend sign/zero_extract
36475 simplification to handle subregs as well as bare regs.
36476 * config/i386/i386.md (*testqi_ext_3): Match QI extracts too.
36478 2020-01-29 Joel Hutton <Joel.Hutton@arm.com>
36481 * ira.c (ira): Revert use of simplified LRA algorithm.
36483 2020-01-29 Martin Jambor <mjambor@suse.cz>
36485 PR tree-optimization/92706
36486 * tree-sra.c (struct access): Fields first_link, last_link,
36487 next_queued and grp_queued renamed to first_rhs_link, last_rhs_link,
36488 next_rhs_queued and grp_rhs_queued respectively, new fields
36489 first_lhs_link, last_lhs_link, next_lhs_queued and grp_lhs_queued.
36490 (struct assign_link): Field next renamed to next_rhs, new field
36491 next_lhs. Updated comment.
36492 (work_queue_head): Renamed to rhs_work_queue_head.
36493 (lhs_work_queue_head): New variable.
36494 (add_link_to_lhs): New function.
36495 (relink_to_new_repr): Also relink LHS lists.
36496 (add_access_to_work_queue): Renamed to add_access_to_rhs_work_queue.
36497 (add_access_to_lhs_work_queue): New function.
36498 (pop_access_from_work_queue): Renamed to
36499 pop_access_from_rhs_work_queue.
36500 (pop_access_from_lhs_work_queue): New function.
36501 (build_accesses_from_assign): Also add links to LHS lists and to LHS
36503 (child_would_conflict_in_lacc): Renamed to
36504 child_would_conflict_in_acc. Adjusted parameter names.
36505 (create_artificial_child_access): New parameter set_grp_read, use it.
36506 (subtree_mark_written_and_enqueue): Renamed to
36507 subtree_mark_written_and_rhs_enqueue.
36508 (propagate_subaccesses_across_link): Renamed to
36509 propagate_subaccesses_from_rhs.
36510 (propagate_subaccesses_from_lhs): New function.
36511 (propagate_all_subaccesses): Also propagate subaccesses from LHSs to
36514 2020-01-29 Martin Jambor <mjambor@suse.cz>
36516 PR tree-optimization/92706
36517 * tree-sra.c (struct access): Adjust comment of
36518 grp_total_scalarization.
36519 (find_access_in_subtree): Look for single children spanning an entire
36521 (scalarizable_type_p): Allow register accesses, adjust callers.
36522 (completely_scalarize): Remove function.
36523 (scalarize_elem): Likewise.
36524 (create_total_scalarization_access): Likewise.
36525 (sort_and_splice_var_accesses): Do not track total scalarization
36527 (analyze_access_subtree): New parameter totally, adjust to new meaning
36528 of grp_total_scalarization.
36529 (analyze_access_trees): Pass new parameter to analyze_access_subtree.
36530 (can_totally_scalarize_forest_p): New function.
36531 (create_total_scalarization_access): Likewise.
36532 (create_total_access_and_reshape): Likewise.
36533 (total_should_skip_creating_access): Likewise.
36534 (totally_scalarize_subtree): Likewise.
36535 (analyze_all_variable_accesses): Perform total scalarization after
36536 subaccess propagation using the new functions above.
36537 (initialize_constant_pool_replacements): Output initializers by
36538 traversing the access tree.
36540 2020-01-29 Martin Jambor <mjambor@suse.cz>
36542 * tree-sra.c (verify_sra_access_forest): New function.
36543 (verify_all_sra_access_forests): Likewise.
36544 (create_artificial_child_access): Set parent.
36545 (analyze_all_variable_accesses): Call the verifier.
36547 2020-01-28 Jan Hubicka <hubicka@ucw.cz>
36549 * cgraph.c (cgraph_edge::resolve_speculation): Only lookup direct edge
36550 if called on indirect edge.
36551 (cgraph_edge::redirect_call_stmt_to_callee): Lookup indirect edge of
36552 speculative call if needed.
36554 2020-01-29 Richard Biener <rguenther@suse.de>
36556 PR tree-optimization/93428
36557 * tree-vect-slp.c (vect_build_slp_tree_2): Compute the load
36558 permutation when the load node is created.
36559 (vect_analyze_slp_instance): Re-use it here.
36561 2020-01-28 Jan Hubicka <hubicka@ucw.cz>
36563 * ipa-prop.c (update_indirect_edges_after_inlining): Fix warning.
36565 2020-01-28 Vladimir Makarov <vmakarov@redhat.com>
36567 PR rtl-optimization/93272
36568 * ira-lives.c (process_out_of_region_eh_regs): New function.
36569 (process_bb_node_lives): Call it.
36571 2020-01-28 Jan Hubicka <hubicka@ucw.cz>
36573 * coverage.c (read_counts_file): Make error message lowercase.
36575 2020-01-28 Jan Hubicka <hubicka@ucw.cz>
36577 * profile-count.c (profile_quality_display_names): Fix ordering.
36579 2020-01-28 Jan Hubicka <hubicka@ucw.cz>
36582 * cgraph.c (cgraph_add_edge_to_call_site_hash): Update call site
36583 hash only when edge is first within the sequence.
36584 (cgraph_edge::set_call_stmt): Update handling of speculative calls.
36585 (symbol_table::create_edge): Do not set target_prob.
36586 (cgraph_edge::remove_caller): Watch for speculative calls when updating
36587 the call site hash.
36588 (cgraph_edge::make_speculative): Drop target_prob parameter.
36589 (cgraph_edge::speculative_call_info): Remove.
36590 (cgraph_edge::first_speculative_call_target): New member function.
36591 (update_call_stmt_hash_for_removing_direct_edge): New function.
36592 (cgraph_edge::resolve_speculation): Rewrite to new API.
36593 (cgraph_edge::speculative_call_for_target): New member function.
36594 (cgraph_edge::make_direct): Rewrite to new API; fix handling of
36595 multiple speculation targets.
36596 (cgraph_edge::redirect_call_stmt_to_callee): Likewise; fix updating
36598 (verify_speculative_call): Verify that targets form an interval.
36599 * cgraph.h (cgraph_edge::speculative_call_info): Remove.
36600 (cgraph_edge::first_speculative_call_target): New member function.
36601 (cgraph_edge::next_speculative_call_target): New member function.
36602 (cgraph_edge::speculative_call_target_ref): New member function.
36603 (cgraph_edge;:speculative_call_indirect_edge): New member funtion.
36604 (cgraph_edge): Remove target_prob.
36605 * cgraphclones.c (cgraph_node::set_call_stmt_including_clones):
36606 Fix handling of speculative calls.
36607 * ipa-devirt.c (ipa_devirt): Fix handling of speculative cals.
36608 * ipa-fnsummary.c (analyze_function_body): Likewise.
36609 * ipa-inline.c (speculation_useful_p): Use new speculative call API.
36610 * ipa-profile.c (dump_histogram): Fix formating.
36611 (ipa_profile_generate_summary): Watch for overflows.
36612 (ipa_profile): Do not require probablity to be 1/2; update to new API.
36613 * ipa-prop.c (ipa_make_edge_direct_to_target): Update to new API.
36614 (update_indirect_edges_after_inlining): Update to new API.
36615 * ipa-utils.c (ipa_merge_profiles): Rewrite merging of speculative call
36617 * profile-count.h: (profile_probability::adjusted): New.
36618 * tree-inline.c (copy_bb): Update to new speculative call API; fix
36619 updating of profile.
36620 * value-prof.c (gimple_ic_transform): Rename to ...
36621 (dump_ic_profile): ... this one; update dumping.
36622 (stream_in_histogram_value): Fix formating.
36623 (gimple_value_profile_transformations): Update.
36625 2020-01-28 H.J. Lu <hongjiu.lu@intel.com>
36628 * config/i386/i386.md (*movoi_internal_avx): Remove
36629 TARGET_SSE_TYPELESS_STORES check.
36630 (*movti_internal): Prefer TARGET_AVX over
36631 TARGET_SSE_TYPELESS_STORES.
36632 (*movtf_internal): Likewise.
36633 * config/i386/sse.md (mov<mode>_internal): Prefer TARGET_AVX over
36634 TARGET_SSE_TYPELESS_STORES. Remove "<MODE_SIZE> == 16" check
36635 from TARGET_SSE_TYPELESS_STORES.
36637 2020-01-28 David Malcolm <dmalcolm@redhat.com>
36639 * diagnostic-core.h (warning_at): Rename overload to...
36640 (warning_meta): ...this.
36641 (emit_diagnostic_valist): Delete decl of overload taking
36642 diagnostic_metadata.
36643 * diagnostic.c (emit_diagnostic_valist): Likewise for defn.
36644 (warning_at): Rename overload taking diagnostic_metadata to...
36645 (warning_meta): ...this.
36647 2020-01-28 Richard Biener <rguenther@suse.de>
36649 PR tree-optimization/93439
36650 * tree-parloops.c (create_loop_fn): Move clique bookkeeping...
36651 * tree-cfg.c (move_sese_region_to_fn): ... here.
36652 (verify_types_in_gimple_reference): Verify used cliques are
36655 2020-01-28 H.J. Lu <hongjiu.lu@intel.com>
36658 * config/i386/i386-options.c (set_ix86_tune_features): Add an
36659 argument of a pointer to struct gcc_options and pass it to
36660 parse_mtune_ctrl_str.
36661 (ix86_function_specific_restore): Pass opts to
36662 set_ix86_tune_features.
36663 (ix86_option_override_internal): Likewise.
36664 (parse_mtune_ctrl_str): Add an argument of a pointer to struct
36665 gcc_options and use it for x_ix86_tune_ctrl_string.
36667 2020-01-28 Richard Sandiford <richard.sandiford@arm.com>
36669 PR rtl-optimization/87763
36670 * simplify-rtx.c (simplify_truncation): Extend sign/zero_extract
36671 simplification to handle subregs as well as bare regs.
36672 * config/i386/i386.md (*testqi_ext_3): Match QI extracts too.
36674 2020-01-28 Richard Sandiford <richard.sandiford@arm.com>
36676 * tree-vect-loop.c (vectorizable_reduction): Fail gracefully
36677 for reduction chains that (now) include a call.
36679 2020-01-28 Richard Sandiford <richard.sandiford@arm.com>
36681 PR tree-optimization/92822
36682 * tree-ssa-forwprop.c (simplify_vector_constructor): When filling
36683 out the don't-care elements of a vector whose significant elements
36684 are duplicates, make the don't-care elements duplicates too.
36686 2020-01-28 Richard Sandiford <richard.sandiford@arm.com>
36688 PR tree-optimization/93434
36689 * tree-predcom.c (split_data_refs_to_components): Record which
36690 components have had aliasing loads removed. Prevent store-store
36691 commoning for all such components.
36693 2020-01-28 Jakub Jelinek <jakub@redhat.com>
36696 * config/i386/i386.c (ix86_fold_builtin) <do_shift>: If mask is not
36697 -1 or is_vshift is true, use new_vector with number of elts npatterns
36698 rather than new_unary_operation.
36700 PR tree-optimization/93454
36701 * gimple-fold.c (fold_array_ctor_reference): Perform
36702 elt_size.to_uhwi () just once, instead of calling it in every
36703 iteration. Punt if that value is above size of the temporary
36704 buffer. Decrease third native_encode_expr argument when
36705 bufoff + elt_sz is above size of buf.
36707 2020-01-27 Joseph Myers <joseph@codesourcery.com>
36709 * config/mips/mips.c (mips_declare_object_name)
36710 [USE_GNU_UNIQUE_OBJECT]: Support use of gnu_unique_object.
36712 2020-01-27 Martin Liska <mliska@suse.cz>
36714 PR gcov-profile/93403
36715 * tree-profile.c (gimple_init_gcov_profiler): Generate
36716 both __gcov_indirect_call_profiler_v4 and
36717 __gcov_indirect_call_profiler_v4_atomic.
36719 2020-01-27 Richard Sandiford <richard.sandiford@arm.com>
36722 * config/aarch64/aarch64-simd.md (aarch64_get_half<mode>): New
36724 (@aarch64_split_simd_mov<mode>): Use it.
36725 (aarch64_simd_mov_from_<mode>low): Add a GPR alternative.
36726 Leave the vec_extract patterns to handle 2-element vectors.
36727 (aarch64_simd_mov_from_<mode>high): Likewise.
36728 (vec_extract<VQMOV_NO2E:mode><Vhalf>): New expander.
36729 (vec_extractv2dfv1df): Likewise.
36731 2020-01-27 Richard Sandiford <richard.sandiford@arm.com>
36733 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Match
36734 jump conditions for *compare_condjump<GPI:mode>.
36736 2020-01-27 David Malcolm <dmalcolm@redhat.com>
36739 * digraph.cc (test_edge::test_edge): Specify template for base
36742 2020-01-27 Claudiu Zissulescu <claziss@synopsys.com>
36744 * config/arc/arc.c (arc_rtx_costs): Update mul64 cost.
36746 2020-01-27 Claudiu Zissulescu <claziss@synopsys.com>
36748 * config/arc/arc-protos.h (gen_mlo): Remove.
36749 (gen_mhi): Likewise.
36750 * config/arc/arc.c (AUX_MULHI): Define.
36751 (arc_must_save_reister): Special handling for r58/59.
36752 (arc_compute_frame_size): Consider mlo/mhi registers.
36753 (arc_save_callee_saves): Emit fp/sp move only when emit_move
36755 (arc_conditional_register_usage): Remove TARGET_BIG_ENDIAN from
36756 mlo/mhi name selection.
36757 (arc_restore_callee_saves): Don't early restore blink when ISR.
36758 (arc_expand_prologue): Add mlo/mhi saving.
36759 (arc_expand_epilogue): Add mlo/mhi restoring.
36762 * config/arc/arc.h (DBX_REGISTER_NUMBER): Correct register
36763 numbering when MUL64 option is used.
36764 (DWARF2_FRAME_REG_OUT): Define.
36765 * config/arc/arc.md (arc600_stall): New pattern.
36766 (VUNSPEC_ARC_ARC600_STALL): Define.
36767 (mulsi64): Use correct mlo/mhi registers.
36768 (mulsi_600): Clean it up.
36769 * config/arc/predicates.md (mlo_operand): Remove any dependency on
36771 (mhi_operand): Likewise.
36773 2020-01-27 Claudiu Zissulescu <claziss@synopsys.com>
36774 Petro Karashchenko <petro.karashchenko@ring.com>
36776 * config/arc/arc.c (arc_is_uncached_mem_p): Check struct
36777 attributes if needed.
36778 (prepare_move_operands): Generate special unspec instruction for
36780 (arc_isuncached_mem_p): Propagate uncached attribute to each
36782 * config/arc/arc.md (VUNSPEC_ARC_LDDI): Define.
36783 (VUNSPEC_ARC_STDI): Likewise.
36784 (ALLI): New mode iterator.
36785 (mALLI): New mode attribute.
36786 (lddi): New instruction pattern.
36788 (stdidi_split): Split instruction for architectures which are not
36789 supporting ll64 option.
36790 (lddidi_split): Likewise.
36792 2020-01-27 Richard Sandiford <richard.sandiford@arm.com>
36794 PR rtl-optimization/92989
36795 * lra-lives.c (process_bb_lives): Update the live-in set before
36796 processing additional clobbers.
36798 2020-01-27 Richard Sandiford <richard.sandiford@arm.com>
36800 PR rtl-optimization/93170
36801 * cselib.c (cselib_invalidate_regno_val): New function, split out
36803 (cselib_invalidate_regno): ...here.
36804 (cselib_invalidated_by_call_p): New function.
36805 (cselib_process_insn): Iterate over all the hard-register entries in
36806 REG_VALUES and invalidate any that cross call-clobbered registers.
36808 2020-01-27 Richard Sandiford <richard.sandiford@arm.com>
36810 * dojump.c (split_comparison): Use HONOR_NANS rather than
36811 HONOR_SNANS when splitting LTGT.
36813 2020-01-27 Martin Liska <mliska@suse.cz>
36816 * opts.c (print_filtered_help): Exclude language-specific
36817 options from --help=common unless enabled in all FEs.
36819 2020-01-27 Martin Liska <mliska@suse.cz>
36821 * opts.c (print_help): Exclude params from
36822 all except --help=param.
36824 2020-01-27 Martin Liska <mliska@suse.cz>
36827 * config/i386/i386-features.c (make_resolver_func):
36828 Align the code with ppc64 target implementation.
36829 Do not generate a unique name for resolver function.
36831 2020-01-27 Richard Biener <rguenther@suse.de>
36833 PR tree-optimization/93397
36834 * tree-vect-slp.c (vect_analyze_slp_instance): Delay
36835 converted reduction chain SLP graph adjustment.
36837 2020-01-26 Marek Polacek <polacek@redhat.com>
36840 * sanopt.c (sanitize_rewrite_addressable_params): Avoid crash on
36843 2020-01-26 Jason Merrill <jason@redhat.com>
36846 * tree.c (verify_type_variant): Only verify TYPE_NEEDS_CONSTRUCTING
36849 2020-01-26 Darius Galis <darius.galis@cyberthorstudios.com>
36851 * config/rx/rx.md (setmemsi): Added rx_allow_string_insns constraint
36852 (rx_setmem): Likewise.
36854 2020-01-26 Jakub Jelinek <jakub@redhat.com>
36857 * config/i386/i386.md (*addv<dwi>4_doubleword, *subv<dwi>4_doubleword):
36858 Use nonimmediate_operand instead of x86_64_hilo_general_operand and
36859 drop <di> from constraint of last operand.
36862 * config/i386/sse.md (*avx_vperm_broadcast_<mode>): Disallow for
36863 TARGET_AVX2 and V4DFmode not in the split condition, but in the
36864 pattern condition, though allow { 0, 0, 0, 0 } broadcast always.
36866 2020-01-25 Feng Xue <fxue@os.amperecomputing.com>
36869 * ipa-cp.c (get_info_about_necessary_edges): Remove value
36872 2020-01-24 Jeff Law <law@redhat.com>
36874 PR tree-optimization/92788
36875 * tree-ssa-threadedge.c (thread_across_edge): Check EDGE_COMPLEX
36878 2020-01-24 Jakub Jelinek <jakub@redhat.com>
36881 * config/i386/sse.md (*avx_vperm_broadcast_v4sf,
36882 *avx_vperm_broadcast_<mode>,
36883 <sse2_avx_avx512f>_vpermil<mode><mask_name>,
36884 *<sse2_avx_avx512f>_vpermilp<mode><mask_name>):
36885 Move before avx2_perm<mode>/avx512f_perm<mode>.
36888 * simplify-rtx.c (simplify_const_unary_operation,
36889 simplify_const_binary_operation): Punt for mode precision above
36890 MAX_BITSIZE_MODE_ANY_INT.
36892 2020-01-24 Andrew Pinski <apinski@marvell.com>
36894 * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): Change
36895 alu.shift_reg to 0.
36897 2020-01-24 Jeff Law <law@redhat.com>
36900 * config/h8300/h8300.c (h8300_print_operand): Only call byte_reg
36901 for REGs. Call output_operand_lossage to get more reasonable
36904 2020-01-24 Andrew Stubbs <ams@codesourcery.com>
36906 * config/gcn/gcn-valu.md (vec_cmp<mode>di): Use
36907 gcn_fp_compare_operator.
36908 (vec_cmpu<mode>di): Use gcn_compare_operator.
36909 (vec_cmp<u>v64qidi): Use gcn_compare_operator.
36910 (vec_cmp<mode>di_exec): Use gcn_fp_compare_operator.
36911 (vec_cmpu<mode>di_exec): Use gcn_compare_operator.
36912 (vec_cmp<u>v64qidi_exec): Use gcn_compare_operator.
36913 (vec_cmp<mode>di_dup): Use gcn_fp_compare_operator.
36914 (vec_cmp<mode>di_dup_exec): Use gcn_fp_compare_operator.
36915 (vcond<VEC_ALLREG_MODE:mode><VEC_ALLREG_ALT:mode>): Use
36916 gcn_fp_compare_operator.
36917 (vcond<VEC_ALLREG_MODE:mode><VEC_ALLREG_ALT:mode>_exec): Use
36918 gcn_fp_compare_operator.
36919 (vcondu<VEC_ALLREG_MODE:mode><VEC_ALLREG_INT_MODE:mode>): Use
36920 gcn_fp_compare_operator.
36921 (vcondu<VEC_ALLREG_MODE:mode><VEC_ALLREG_INT_MODE:mode>_exec): Use
36922 gcn_fp_compare_operator.
36924 2020-01-24 Maciej W. Rozycki <macro@wdc.com>
36926 * doc/install.texi (Cross-Compiler-Specific Options): Document
36927 `--with-toolexeclibdir' option.
36929 2020-01-24 Hans-Peter Nilsson <hp@axis.com>
36931 * target.def (flags_regnum): Also mention effect on delay slot filling.
36932 * doc/tm.texi: Regenerate.
36934 2020-01-23 Jeff Law <law@redhat.com>
36936 PR translation/90162
36937 * config/h8300/h8300.c (h8300_option_override): Fix diagnostic text.
36939 2020-01-23 Mikael Tillenius <mti-1@tillenius.com>
36942 * config/h8300/h8300.h (FUNCTION_PROFILER): Fix emission of
36945 2020-01-23 Jakub Jelinek <jakub@redhat.com>
36947 PR rtl-optimization/93402
36948 * postreload.c (reload_combine_recognize_pattern): Don't try to adjust
36951 2020-01-23 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
36953 * config.in: Regenerated.
36954 * config/mips/linux.h (NEED_INDICATE_EXEC_STACK): Define to 1
36955 for TARGET_LIBC_GNUSTACK.
36956 * configure: Regenerated.
36957 * configure.ac: Define TARGET_LIBC_GNUSTACK if glibc version is
36958 found to be 2.31 or greater.
36960 2020-01-23 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
36962 * config/mips/linux.h (NEED_INDICATE_EXEC_STACK): Define to
36964 * config/mips/mips.c (TARGET_ASM_FILE_END): Define to ...
36965 (mips_asm_file_end): New function. Delegate to
36966 file_end_indicate_exec_stack if NEED_INDICATE_EXEC_STACK is true.
36967 * config/mips/mips.h (NEED_INDICATE_EXEC_STACK): Define to 0.
36969 2020-01-23 Jakub Jelinek <jakub@redhat.com>
36972 * config/i386/i386-modes.def (POImode): New mode.
36973 (MAX_BITSIZE_MODE_ANY_INT): Change from 128 to 160.
36974 * config/i386/i386.md (DPWI): New mode attribute.
36975 (addv<mode>4, subv<mode>4): Use <DPWI> instead of <DWI>.
36976 (QWI): Rename to...
36977 (QPWI): ... this. Use POI instead of OI for TImode.
36978 (*addv<dwi>4_doubleword, *addv<dwi>4_doubleword_1,
36979 *subv<dwi>4_doubleword, *subv<dwi>4_doubleword_1): Use <QPWI>
36982 2020-01-23 Richard Sandiford <richard.sandiford@arm.com>
36985 * config/aarch64/aarch64.md (UNSPEC_SPECULATION_TRACKER_REV): New
36987 (speculation_tracker_rev): New pattern.
36988 * config/aarch64/aarch64-speculation.cc (aarch64_do_track_speculation):
36989 Use speculation_tracker_rev to track the inverse condition.
36991 2020-01-23 Richard Biener <rguenther@suse.de>
36993 PR tree-optimization/93381
36994 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Take
36995 alias-set of the def as argument and record the first one.
36996 (vn_walk_cb_data::first_set): New member.
36997 (vn_reference_lookup_3): Pass the alias-set of the current def
36998 to push_partial_def. Fix alias-set used in the aggregate copy
37000 (vn_reference_lookup): Consistently set *last_vuse_ptr.
37001 * real.c (clear_significand_below): Fix out-of-bound access.
37003 2020-01-23 Jakub Jelinek <jakub@redhat.com>
37006 * config/i386/i386.md (*bmi2_bzhi_<mode>3_2, *bmi2_bzhi_<mode>3_3):
37007 New define_insn patterns.
37009 2020-01-23 Richard Sandiford <richard.sandiford@arm.com>
37011 * doc/sourcebuild.texi (check-function-bodies): Add an
37012 optional target/xfail selector.
37014 2020-01-23 Richard Sandiford <richard.sandiford@arm.com>
37016 PR rtl-optimization/93124
37017 * auto-inc-dec.c (merge_in_block): Don't add auto inc/decs to
37018 bare USE and CLOBBER insns.
37020 2020-01-22 Andrew Pinski <apinski@marvell.com>
37022 * config/arc/arc.c (output_short_suffix): Check insn for nullness.
37024 2020-01-22 David Malcolm <dmalcolm@redhat.com>
37027 * gdbinit.in (break-on-saved-diagnostic): Update for move of
37028 diagnostic_manager into "ana" namespace.
37029 * selftest-run-tests.c (selftest::run_tests): Update for move of
37030 selftest::run_analyzer_selftests to
37031 ana::selftest::run_analyzer_selftests.
37033 2020-01-22 Richard Sandiford <richard.sandiford@arm.com>
37035 * cfgexpand.c (union_stack_vars): Update the size.
37037 2020-01-22 Richard Biener <rguenther@suse.de>
37039 PR tree-optimization/93381
37040 * tree-ssa-structalias.c (find_func_aliases): Assume offsetting
37041 throughout, handle all conversions the same.
37043 2020-01-22 Jakub Jelinek <jakub@redhat.com>
37046 * config/aarch64/aarch64.c (aarch64_expand_subvti): Only use
37047 gen_subdi3_compare1_imm if low_in2 satisfies aarch64_plus_immediate
37048 predicate, not whenever it is CONST_INT. Otherwise, force_reg it.
37049 Call force_reg on high_in2 unconditionally.
37051 2020-01-22 Martin Liska <mliska@suse.cz>
37053 PR tree-optimization/92924
37054 * profile.c (compute_value_histograms): Divide
37055 all counter values.
37057 2020-01-22 Jakub Jelinek <jakub@redhat.com>
37060 * output.h (assemble_name_resolve): Declare.
37061 * varasm.c (assemble_name_resolve): New function.
37062 (assemble_name): Use it.
37063 * config/i386/i386.h (ASM_OUTPUT_SYMBOL_REF): Define.
37065 2020-01-22 Joseph Myers <joseph@codesourcery.com>
37067 * doc/sourcebuild.texi (Texinfo Manuals, Front End): Refer to
37068 update_web_docs_git instead of update_web_docs_svn.
37070 2020-01-21 Andrew Pinski <apinski@marvell.com>
37073 * config/aarch64/aarch64.md (tlsgd_small_<mode>): Have operand 0
37074 as PTR mode. Have operand 1 as being modeless, it can be P mode.
37075 (*tlsgd_small_<mode>): Likewise.
37076 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately)
37077 <case SYMBOL_SMALL_TLSGD>: Call gen_tlsgd_small_* with a ptr_mode
37078 register. Convert that register back to dest using convert_mode.
37080 2020-01-21 Jim Wilson <jimw@sifive.com>
37082 * config/riscv/riscv-sr.c (riscv_sr_match_prologue): Use INTVAL
37085 2020-01-21 H.J. Lu <hongjiu.lu@intel.com>
37086 Uros Bizjak <ubizjak@gmail.com>
37089 * config/i386/i386.c (ix86_tls_module_base): Replace Pmode
37091 (legitimize_tls_address): Do GNU2 TLS address computation in
37092 ptr_mode and zero-extend result to Pmode.
37093 * config/i386/i386.md (@tls_dynamic_gnu2_64_<mode>): Replace
37094 :P with :PTR and Pmode with ptr_mode.
37095 (*tls_dynamic_gnu2_lea_64_<mode>): Likewise.
37096 (*tls_dynamic_gnu2_call_64_<mode>): Likewise.
37097 (*tls_dynamic_gnu2_combine_64_<mode>): Likewise.
37099 2020-01-21 Jakub Jelinek <jakub@redhat.com>
37102 * config/riscv/riscv.c (riscv_rtx_costs) <case ZERO_EXTRACT>: Verify
37103 the last two operands are CONST_INT_P before using them as such.
37105 2020-01-21 Richard Sandiford <richard.sandiford@arm.com>
37107 * config/aarch64/aarch64-sve-builtins.def: Use get_typenode_from_name
37108 to get the integer element types.
37110 2020-01-21 Richard Sandiford <richard.sandiford@arm.com>
37112 * config/aarch64/aarch64-sve-builtins.h
37113 (function_expander::convert_to_pmode): Declare.
37114 * config/aarch64/aarch64-sve-builtins.cc
37115 (function_expander::convert_to_pmode): New function.
37116 (function_expander::get_contiguous_base): Use it.
37117 (function_expander::prepare_gather_address_operands): Likewise.
37118 * config/aarch64/aarch64-sve-builtins-sve2.cc
37119 (svwhilerw_svwhilewr_impl::expand): Likewise.
37121 2020-01-21 Szabolcs Nagy <szabolcs.nagy@arm.com>
37124 * config/aarch64/aarch64.c (aarch64_declare_function_name): Set
37125 cfun->machine->label_is_assembled.
37126 (aarch64_print_patchable_function_entry): New.
37127 (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY): Define.
37128 * config/aarch64/aarch64.h (struct machine_function): New field,
37129 label_is_assembled.
37131 2020-01-21 David Malcolm <dmalcolm@redhat.com>
37134 * ipa-profile.c (ipa_profile): Delete call_sums and set it to
37137 2020-01-18 Jan Hubicka <hubicka@ucw.cz>
37140 * cgraph.c (cgraph_edge::resolve_speculation,
37141 cgraph_edge::redirect_call_stmt_to_callee): Fix update of
37142 call_stmt_site_hash.
37144 2020-01-21 Martin Liska <mliska@suse.cz>
37146 * config/rs6000/rs6000.c (common_mode_defined): Remove
37149 2020-01-21 Richard Biener <rguenther@suse.de>
37151 PR tree-optimization/92328
37152 * tree-ssa-sccvn.c (vn_reference_lookup_3): Preserve
37153 type when value-numbering same-sized store by inserting a
37155 (eliminate_dom_walker::eliminate_stmt): When eliminating
37156 a redundant store handle bit-reinterpretation of the same value.
37158 2020-01-21 Andrew Pinski <apinski@marvel.com>
37161 * tree-into-ssa.c (prepare_block_for_update_1): Split out
37163 (prepare_block_for_update): This. Use a worklist instead of
37166 2020-01-21 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
37168 * config/arm/arm.c (clear_operation_p):
37169 Initialise last_regno, skip first iteration
37170 based on the first_set value and use ints instead
37171 of the unnecessary HOST_WIDE_INTs.
37173 2020-01-21 Jakub Jelinek <jakub@redhat.com>
37176 * config/rs6000/rs6000.c (rs6000_emit_cmove): If using fsel, punt for
37177 compare_mode other than SFmode or DFmode.
37179 2020-01-21 Kito Cheng <kito.cheng@sifive.com>
37182 * config/riscv/riscv-protos.h (riscv_hard_regno_rename_ok): New.
37183 * config/riscv/riscv.c (riscv_hard_regno_rename_ok): New.
37184 * config/riscv/riscv.h (HARD_REGNO_RENAME_OK): Defined.
37186 2020-01-20 Wilco Dijkstra <wdijkstr@arm.com>
37188 * config/aarch64/aarch64.c (neoversen1_tunings): Set jump_align to 4.
37190 2020-01-20 Andrew Pinski <apinski@marvell.com>
37192 PR middle-end/93242
37193 * targhooks.c (default_print_patchable_function_entry): Use
37194 output_asm_insn to emit the nop instruction.
37196 2020-01-20 Fangrui Song <maskray@google.com>
37198 PR middle-end/93194
37199 * targhooks.c (default_print_patchable_function_entry): Align to
37202 2020-01-20 H.J. Lu <hongjiu.lu@intel.com>
37205 * config/i386/i386.c (legitimize_tls_address): Pass Pmode to
37206 gen_tls_dynamic_gnu2_64. Compute GNU2 TLS address in ptr_mode.
37207 * config/i386/i386.md (tls_dynamic_gnu2_64): Renamed to ...
37208 (@tls_dynamic_gnu2_64_<mode>): This. Replace DI with P.
37209 (*tls_dynamic_gnu2_lea_64): Renamed to ...
37210 (*tls_dynamic_gnu2_lea_64_<mode>): This. Replace DI with P.
37211 Remove the {q} suffix from lea.
37212 (*tls_dynamic_gnu2_call_64): Renamed to ...
37213 (*tls_dynamic_gnu2_call_64_<mode>): This. Replace DI with P.
37214 (*tls_dynamic_gnu2_combine_64): Renamed to ...
37215 (*tls_dynamic_gnu2_combine_64_<mode>): This. Replace DI with P.
37216 Pass Pmode to gen_tls_dynamic_gnu2_64.
37218 2020-01-20 Wilco Dijkstra <wdijkstr@arm.com>
37220 * config/aarch64/aarch64.h (SLOW_BYTE_ACCESS): Set to 1.
37222 2020-01-20 Richard Sandiford <richard.sandiford@arm.com>
37224 * config/aarch64/aarch64-sve-builtins-base.cc
37225 (svld1ro_impl::memory_vector_mode): Remove parameter name.
37227 2020-01-20 Richard Biener <rguenther@suse.de>
37230 * dwarf2out.c (prune_unused_types): Unconditionally mark
37231 called function DIEs.
37233 2020-01-20 Martin Liska <mliska@suse.cz>
37235 PR tree-optimization/93199
37236 * tree-eh.c (struct leh_state): Add
37237 new field outer_non_cleanup.
37238 (cleanup_is_dead_in): Pass leh_state instead
37239 of eh_region. Add a checking that state->outer_non_cleanup
37240 points to outer non-clean up region.
37241 (lower_try_finally): Record outer_non_cleanup
37243 (lower_catch): Likewise.
37244 (lower_eh_filter): Likewise.
37245 (lower_eh_must_not_throw): Likewise.
37246 (lower_cleanup): Likewise.
37248 2020-01-20 Richard Biener <rguenther@suse.de>
37250 PR tree-optimization/93094
37251 * tree-vectorizer.h (vect_loop_versioning): Adjust.
37252 (vect_transform_loop): Likewise.
37253 * tree-vectorizer.c (try_vectorize_loop_1): Pass down
37254 loop_vectorized_call to vect_transform_loop.
37255 * tree-vect-loop.c (vect_transform_loop): Pass down
37256 loop_vectorized_call to vect_loop_versioning.
37257 * tree-vect-loop-manip.c (vect_loop_versioning): Use
37258 the earlier discovered loop_vectorized_call.
37260 2020-01-19 Eric S. Raymond <esr@thyrsus.com>
37262 * doc/contribute.texi: Update for SVN -> Git transition.
37263 * doc/install.texi: Likewise.
37265 2020-01-18 Jan Hubicka <hubicka@ucw.cz>
37268 * cgraph.c (cgraph_edge::make_speculative): Increase number of
37269 speculative targets.
37270 (verify_speculative_call): New function
37271 (cgraph_node::verify_node): Use it.
37272 * ipa-profile.c (ipa_profile): Fix formating; do not set number of
37275 2020-01-18 Jan Hubicka <hubicka@ucw.cz>
37278 * cgraph.c (cgraph_edge::resolve_speculation): Fix foramting.
37279 (cgraph_edge::make_direct): Remove all indirect targets.
37280 (cgraph_edge::redirect_call_stmt_to_callee): Use make_direct..
37281 (cgraph_node::verify_node): Verify that only one call_stmt or
37282 lto_stmt_uid is set.
37283 * cgraphclones.c (cgraph_edge::clone): Set only one call_stmt or
37285 * lto-cgraph.c (lto_output_edge): Simplify streaming of stmt.
37286 (lto_output_ref): Simplify streaming of stmt.
37287 * lto-streamer-in.c (fixup_call_stmt_edges_1): Clear lto_stmt_uid.
37289 2020-01-18 Tamar Christina <tamar.christina@arm.com>
37291 * config/aarch64/aarch64-sve-builtins-base.cc (memory_vector_mode):
37292 Mark parameter unused.
37294 2020-01-18 Hans-Peter Nilsson <hp@axis.com>
37296 * config.gcc <obsolete targets>: Add crisv32-*-* and cris-*-linux*
37298 2019-01-18 Gerald Pfeifer <gerald@pfeifer.com>
37300 * varpool.c (ctor_useable_for_folding_p): Fix grammar.
37302 2020-01-18 Iain Sandoe <iain@sandoe.co.uk>
37304 * Makefile.in: Add coroutine-passes.o.
37305 * builtin-types.def (BT_CONST_SIZE): New.
37306 (BT_FN_BOOL_PTR): New.
37307 (BT_FN_PTR_PTR_CONST_SIZE_BOOL): New.
37308 * builtins.def (DEF_COROUTINE_BUILTIN): New.
37309 * coroutine-builtins.def: New file.
37310 * coroutine-passes.cc: New file.
37311 * function.h (struct GTY function): Add a bit to indicate that the
37312 function is a coroutine component.
37313 * internal-fn.c (expand_CO_FRAME): New.
37314 (expand_CO_YIELD): New.
37315 (expand_CO_SUSPN): New.
37316 (expand_CO_ACTOR): New.
37317 * internal-fn.def (CO_ACTOR): New.
37321 * passes.def: Add pass_coroutine_lower_builtins,
37322 pass_coroutine_early_expand_ifns.
37323 * tree-pass.h (make_pass_coroutine_lower_builtins): New.
37324 (make_pass_coroutine_early_expand_ifns): New.
37325 * doc/invoke.texi: Document the fcoroutines command line
37328 2020-01-18 Jakub Jelinek <jakub@redhat.com>
37330 * config/arm/vfp.md (*clear_vfp_multiple): Remove unused variable.
37333 * config/arm/arm.c (clear_operation_p): Don't use REGNO until
37334 after checking the argument is a REG. Don't use REGNO (reg)
37335 again to set last_regno, reuse regno variable instead.
37337 2020-01-17 David Malcolm <dmalcolm@redhat.com>
37339 * doc/analyzer.texi (Limitations): Add note about NaN.
37341 2020-01-17 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
37342 Sudakshina Das <sudi.das@arm.com>
37344 * config/arm/arm.md (ashldi3): Generate thumb2_lsll for both reg
37345 and valid immediate.
37346 (ashrdi3): Generate thumb2_asrl for both reg and valid immediate.
37347 (lshrdi3): Generate thumb2_lsrl for valid immediates.
37348 * config/arm/constraints.md (Pg): New.
37349 * config/arm/predicates.md (long_shift_imm): New.
37350 (arm_reg_or_long_shift_imm): Likewise.
37351 * config/arm/thumb2.md (thumb2_asrl): New immediate alternative.
37352 (thumb2_lsll): Likewise.
37353 (thumb2_lsrl): New.
37355 2020-01-17 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
37356 Sudakshina Das <sudi.das@arm.com>
37358 * config/arm/arm.md (ashldi3): Generate thumb2_lsll for TARGET_HAVE_MVE.
37359 (ashrdi3): Generate thumb2_asrl for TARGET_HAVE_MVE.
37360 * config/arm/arm.c (arm_hard_regno_mode_ok): Allocate even odd
37361 register pairs for doubleword quantities for ARMv8.1M-Mainline.
37362 * config/arm/thumb2.md (thumb2_asrl): New.
37363 (thumb2_lsll): Likewise.
37365 2020-01-17 Jakub Jelinek <jakub@redhat.com>
37367 * config/arm/arm.c (cmse_nonsecure_call_inline_register_clear): Remove
37370 2020-01-17 Alexander Monakov <amonakov@ispras.ru>
37372 * gdbinit.in (help-gcc-hooks): New command.
37373 (pp, pr, prl, pt, pct, pgg, pgq, pgs, pge, pmz, ptc, pdn, ptn, pdd, prc,
37374 pi, pbm, pel, trt): Take $arg0 instead of $ if supplied. Update
37377 2020-01-17 Matthew Malcomson <matthew.malcomson@arm.com>
37379 * config/aarch64/aarch64-sve.md (@aarch64_sve_ld1ro<mode>): Use the
37380 correct target macro.
37382 2020-01-17 Matthew Malcomson <matthew.malcomson@arm.com>
37384 * config/aarch64/aarch64-protos.h
37385 (aarch64_sve_ld1ro_operand_p): New.
37386 * config/aarch64/aarch64-sve-builtins-base.cc
37387 (class load_replicate): New.
37388 (class svld1ro_impl): New.
37389 (class svld1rq_impl): Change to inherit from load_replicate.
37390 (svld1ro): New sve intrinsic function base.
37391 * config/aarch64/aarch64-sve-builtins-base.def (svld1ro):
37392 New DEF_SVE_FUNCTION.
37393 * config/aarch64/aarch64-sve-builtins-base.h
37394 (svld1ro): New decl.
37395 * config/aarch64/aarch64-sve-builtins.cc
37396 (function_expander::add_mem_operand): Modify assert to allow
37398 * config/aarch64/aarch64-sve.md (@aarch64_sve_ld1ro<mode>): New
37400 * config/aarch64/aarch64.c
37401 (aarch64_sve_ld1rq_operand_p): Implement in terms of ...
37402 (aarch64_sve_ld1rq_ld1ro_operand_p): This.
37403 (aarch64_sve_ld1ro_operand_p): New.
37404 * config/aarch64/aarch64.md (UNSPEC_LD1RO): New unspec.
37405 * config/aarch64/constraints.md (UOb,UOh,UOw,UOd): New.
37406 * config/aarch64/predicates.md
37407 (aarch64_sve_ld1ro_operand_{b,h,w,d}): New.
37409 2020-01-17 Matthew Malcomson <matthew.malcomson@arm.com>
37411 * config/aarch64/aarch64-c.c (_ARM_FEATURE_MATMUL_FLOAT64):
37412 Introduce this ACLE specified predefined macro.
37413 * config/aarch64/aarch64-option-extensions.def (f64mm): New.
37414 (fp): Disabling this disables f64mm.
37415 (simd): Disabling this disables f64mm.
37416 (fp16): Disabling this disables f64mm.
37417 (sve): Disabling this disables f64mm.
37418 * config/aarch64/aarch64.h (AARCH64_FL_F64MM): New.
37419 (AARCH64_ISA_F64MM): New.
37420 (TARGET_F64MM): New.
37421 * doc/invoke.texi (f64mm): Document new option.
37423 2020-01-17 Wilco Dijkstra <wdijkstr@arm.com>
37425 * config/aarch64/aarch64.c (generic_tunings): Add branch fusion.
37426 (neoversen1_tunings): Likewise.
37428 2020-01-17 Wilco Dijkstra <wdijkstr@arm.com>
37431 * config/aarch64/aarch64.c (aarch64_split_compare_and_swap)
37432 Add assert to ensure prolog has been emitted.
37433 (aarch64_split_atomic_op): Likewise.
37434 * config/aarch64/atomics.md (aarch64_compare_and_swap<mode>)
37435 Use epilogue_completed rather than reload_completed.
37436 (aarch64_atomic_exchange<mode>): Likewise.
37437 (aarch64_atomic_<atomic_optab><mode>): Likewise.
37438 (atomic_nand<mode>): Likewise.
37439 (aarch64_atomic_fetch_<atomic_optab><mode>): Likewise.
37440 (atomic_fetch_nand<mode>): Likewise.
37441 (aarch64_atomic_<atomic_optab>_fetch<mode>): Likewise.
37442 (atomic_nand_fetch<mode>): Likewise.
37444 2020-01-17 Richard Sandiford <richard.sandiford@arm.com>
37447 * config/aarch64/aarch64.h (REVERSIBLE_CC_MODE): Return false
37449 (REVERSE_CONDITION): Delete.
37450 * config/aarch64/iterators.md (CC_ONLY): New mode iterator.
37451 (CCFP_CCFPE): Likewise.
37452 (e): New mode attribute.
37453 * config/aarch64/aarch64.md (ccmp<GPI:mode>): Rename to...
37454 (@ccmp<CC_ONLY:mode><GPI:mode>): ...this, using CC_ONLY instead of CC.
37455 (fccmp<GPF:mode>, fccmpe<GPF:mode>): Merge into...
37456 (@ccmp<CCFP_CCFPE:mode><GPF:mode>): ...this combined pattern.
37457 (@ccmp<CC_ONLY:mode><GPI:mode>_rev): New pattern.
37458 (@ccmp<CCFP_CCFPE:mode><GPF:mode>_rev): Likewise.
37459 * config/aarch64/aarch64.c (aarch64_gen_compare_reg): Update
37460 name of generator from gen_ccmpdi to gen_ccmpccdi.
37461 (aarch64_gen_ccmp_next): Use code_for_ccmp. If we want to reverse
37462 the previous comparison but aren't able to, use the new ccmp_rev
37465 2020-01-17 Richard Sandiford <richard.sandiford@arm.com>
37467 * gimplify.c (gimplify_return_expr): Use poly_int_tree_p rather
37468 than testing directly for INTEGER_CST.
37469 (gimplify_target_expr, gimplify_omp_depend): Likewise.
37471 2020-01-17 Jakub Jelinek <jakub@redhat.com>
37473 PR tree-optimization/93292
37474 * tree-vect-stmts.c (vectorizable_comparison): Punt also if
37475 get_vectype_for_scalar_type returns NULL.
37477 2020-01-16 Jan Hubicka <hubicka@ucw.cz>
37479 * params.opt (-param=max-predicted-iterations): Increase range from 0.
37480 * predict.c (estimate_loops): Add 1 to param_max_predicted_iterations.
37482 2020-01-16 Jan Hubicka <hubicka@ucw.cz>
37484 * ipa-fnsummary.c (estimate_calls_size_and_time): Fix formating of
37486 * params.opt: (max-predicted-iterations): Set bounds.
37487 * predict.c (real_almost_one, real_br_prob_base,
37488 real_inv_br_prob_base, real_one_half, real_bb_freq_max): Remove.
37489 (propagate_freq): Add max_cyclic_prob parameter; cap cyclic
37490 probabilities; do not truncate to reg_br_prob_bases.
37491 (estimate_loops_at_level): Pass max_cyclic_prob.
37492 (estimate_loops): Compute max_cyclic_prob.
37493 (estimate_bb_frequencies): Do not initialize real_*; update calculation
37495 * profile-count.c (profile_probability::to_sreal): New.
37496 * profile-count.h (class sreal): Move up in file.
37497 (profile_probability::to_sreal): Declare.
37499 2020-01-16 Stam Markianos-Wright <stam.markianos-wright@arm.com>
37502 (arm_invalid_conversion): New function for target hook.
37503 (arm_invalid_unary_op): New function for target hook.
37504 (arm_invalid_binary_op): New function for target hook.
37506 2020-01-16 Stam Markianos-Wright <stam.markianos-wright@arm.com>
37508 * config.gcc: Add arm_bf16.h.
37509 * config/arm/arm-builtins.c (arm_mangle_builtin_type): Fix comment.
37510 (arm_simd_builtin_std_type): Add BFmode.
37511 (arm_init_simd_builtin_types): Define element types for vector types.
37512 (arm_init_bf16_types): New function.
37513 (arm_init_builtins): Add arm_init_bf16_types function call.
37514 * config/arm/arm-modes.def: Add BFmode and V4BF, V8BF vector modes.
37515 * config/arm/arm-simd-builtin-types.def: Add V4BF, V8BF.
37516 * config/arm/arm.c (aapcs_vfp_sub_candidate): Add BFmode.
37517 (arm_hard_regno_mode_ok): Add BFmode and tidy up statements.
37518 (arm_vector_mode_supported_p): Add V4BF, V8BF.
37519 (arm_mangle_type): Add __bf16.
37520 * config/arm/arm.h: Add V4BF, V8BF to VALID_NEON_DREG_MODE,
37521 VALID_NEON_QREG_MODE respectively. Add export arm_bf16_type_node,
37522 arm_bf16_ptr_type_node.
37523 * config/arm/arm.md: Add BFmode to movhf expand, mov pattern and
37524 define_split between ARM registers.
37525 * config/arm/arm_bf16.h: New file.
37526 * config/arm/arm_neon.h: Add arm_bf16.h and Bfloat vector types.
37527 * config/arm/iterators.md: (ANY64_BF, VDXMOV, VHFBF, HFBF, fporbf): New.
37528 (VQXMOV): Add V8BF.
37529 * config/arm/neon.md: Add BF vector types to movhf NEON move patterns.
37530 * config/arm/vfp.md: Add BFmode to movhf patterns.
37532 2020-01-16 Mihail Ionescu <mihail.ionescu@arm.com>
37533 Andre Vieira <andre.simoesdiasvieira@arm.com>
37535 * config/arm/arm-cpus.in (mve, mve_float): New features.
37536 (dsp, mve, mve.fp): New options.
37537 * config/arm/arm.h (TARGET_HAVE_MVE, TARGET_HAVE_MVE_FLOAT): Define.
37538 * config/arm/t-rmprofile: Map v8.1-M multilibs to v8-M.
37539 * doc/invoke.texi: Document the armv8.1-m mve and dps options.
37541 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
37542 Thomas Preud'homme <thomas.preudhomme@arm.com>
37544 * config/arm/arm-cpus.in (ARMv8_1m_main): Redefine as an extension to
37546 * config/arm/arm.c (arm_options_perform_arch_sanity_checks): Remove
37547 error for using -mcmse when targeting Armv8.1-M Mainline.
37549 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
37550 Thomas Preud'homme <thomas.preudhomme@arm.com>
37552 * config/arm/arm.md (nonsecure_call_internal): Do not force memory
37553 address in r4 when targeting Armv8.1-M Mainline.
37554 (nonsecure_call_value_internal): Likewise.
37555 * config/arm/thumb2.md (nonsecure_call_reg_thumb2): Make memory address
37556 a register match_operand again. Emit BLXNS when targeting
37557 Armv8.1-M Mainline.
37558 (nonsecure_call_value_reg_thumb2): Likewise.
37560 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
37561 Thomas Preud'homme <thomas.preudhomme@arm.com>
37563 * config/arm/arm.c (arm_add_cfa_adjust_cfa_note): Declare early.
37564 (cmse_nonsecure_call_inline_register_clear): Define new lazy_fpclear
37565 variable as true when floating-point ABI is not hard. Replace
37566 check against TARGET_HARD_FLOAT_ABI by checks against lazy_fpclear.
37567 Generate VLSTM and VLLDM instruction respectively before and
37568 after a function call to cmse_nonsecure_call function.
37569 * config/arm/unspecs.md (VUNSPEC_VLSTM): Define unspec.
37570 (VUNSPEC_VLLDM): Likewise.
37571 * config/arm/vfp.md (lazy_store_multiple_insn): New define_insn.
37572 (lazy_load_multiple_insn): Likewise.
37574 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
37575 Thomas Preud'homme <thomas.preudhomme@arm.com>
37577 * config/arm/arm.c (vfp_emit_fstmd): Declare early.
37578 (arm_emit_vfp_multi_reg_pop): Likewise.
37579 (cmse_nonsecure_call_inline_register_clear): Abstract number of VFP
37580 registers to clear in max_fp_regno. Emit VPUSH and VPOP to save and
37581 restore callee-saved VFP registers.
37583 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
37584 Thomas Preud'homme <thomas.preudhomme@arm.com>
37586 * config/arm/arm.c (arm_emit_multi_reg_pop): Declare early.
37587 (cmse_nonsecure_call_clear_caller_saved): Rename into ...
37588 (cmse_nonsecure_call_inline_register_clear): This. Save and clear
37589 callee-saved GPRs as well as clear ip register before doing a nonsecure
37590 call then restore callee-saved GPRs after it when targeting
37591 Armv8.1-M Mainline.
37592 (arm_reorg): Adapt to function rename.
37594 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
37595 Thomas Preud'homme <thomas.preudhomme@arm.com>
37597 * config/arm/arm-protos.h (clear_operation_p): Adapt prototype.
37598 * config/arm/arm.c (clear_operation_p): Extend to be able to check a
37599 clear_vfp_multiple pattern based on a new vfp parameter.
37600 (cmse_clear_registers): Generate VSCCLRM to clear VFP registers when
37601 targeting Armv8.1-M Mainline.
37602 (cmse_nonsecure_entry_clear_before_return): Clear VFP registers
37603 unconditionally when targeting Armv8.1-M Mainline architecture. Check
37604 whether VFP registers are available before looking call_used_regs for a
37606 * config/arm/predicates.md (clear_multiple_operation): Adapt to change
37607 of prototype of clear_operation_p.
37608 (clear_vfp_multiple_operation): New predicate.
37609 * config/arm/unspecs.md (VUNSPEC_VSCCLRM_VPR): New volatile unspec.
37610 * config/arm/vfp.md (clear_vfp_multiple): New define_insn.
37612 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
37613 Thomas Preud'homme <thomas.preudhomme@arm.com>
37615 * config/arm/arm-protos.h (clear_operation_p): Declare.
37616 * config/arm/arm.c (clear_operation_p): New function.
37617 (cmse_clear_registers): Generate clear_multiple instruction pattern if
37618 targeting Armv8.1-M Mainline or successor.
37619 (output_return_instruction): Only output APSR register clearing if
37620 Armv8.1-M Mainline instructions not available.
37621 (thumb_exit): Likewise.
37622 * config/arm/predicates.md (clear_multiple_operation): New predicate.
37623 * config/arm/thumb2.md (clear_apsr): New define_insn.
37624 (clear_multiple): Likewise.
37625 * config/arm/unspecs.md (VUNSPEC_CLRM_APSR): New volatile unspec.
37627 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
37628 Thomas Preud'homme <thomas.preudhomme@arm.com>
37630 * config/arm/arm.c (fp_sysreg_names): Declare and define.
37631 (use_return_insn): Also return false for Armv8.1-M Mainline.
37632 (output_return_instruction): Skip FPSCR clearing if Armv8.1-M
37633 Mainline instructions are available.
37634 (arm_compute_frame_layout): Allocate space in frame for FPCXTNS
37635 when targeting Armv8.1-M Mainline Security Extensions.
37636 (arm_expand_prologue): Save FPCXTNS if this is an Armv8.1-M
37637 Mainline entry function.
37638 (cmse_nonsecure_entry_clear_before_return): Clear IP and r4 if
37639 targeting Armv8.1-M Mainline or successor.
37640 (arm_expand_epilogue): Fix indentation of caller-saved register
37641 clearing. Restore FPCXTNS if this is an Armv8.1-M Mainline
37643 * config/arm/arm.h (TARGET_HAVE_FP_CMSE): New macro.
37644 (FP_SYSREGS): Likewise.
37645 (enum vfp_sysregs_encoding): Define enum.
37646 (fp_sysreg_names): Declare.
37647 * config/arm/unspecs.md (VUNSPEC_VSTR_VLDR): New volatile unspec.
37648 * config/arm/vfp.md (push_fpsysreg_insn): New define_insn.
37649 (pop_fpsysreg_insn): Likewise.
37651 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
37652 Thomas Preud'homme <thomas.preudhomme@arm.com>
37654 * config/arm/arm-cpus.in (armv8_1m_main): New feature.
37655 (ARMv4, ARMv4t, ARMv5t, ARMv5te, ARMv5tej, ARMv6, ARMv6j, ARMv6k,
37656 ARMv6z, ARMv6kz, ARMv6zk, ARMv6t2, ARMv6m, ARMv7, ARMv7a, ARMv7ve,
37657 ARMv7r, ARMv7m, ARMv7em, ARMv8a, ARMv8_1a, ARMv8_2a, ARMv8_3a,
37658 ARMv8_4a, ARMv8_5a, ARMv8m_base, ARMv8m_main, ARMv8r): Reindent.
37659 (ARMv8_1m_main): New feature group.
37660 (armv8.1-m.main): New architecture.
37661 * config/arm/arm-tables.opt: Regenerate.
37662 * config/arm/arm.c (arm_arch8_1m_main): Define and default initialize.
37663 (arm_option_reconfigure_globals): Initialize arm_arch8_1m_main.
37664 (arm_options_perform_arch_sanity_checks): Error out when targeting
37665 Armv8.1-M Mainline Security Extensions.
37666 * config/arm/arm.h (arm_arch8_1m_main): Declare.
37668 2020-01-16 Stam Markianos-Wright <stam.markianos-wright@arm.com>
37670 * config/aarch64/aarch64-simd-builtins.def (aarch64_bfdot,
37671 aarch64_bfdot_lane, aarch64_bfdot_laneq): New.
37672 * config/aarch64/aarch64-simd.md (aarch64_bfdot, aarch64_bfdot_lane,
37673 aarch64_bfdot_laneq): New.
37674 * config/aarch64/arm_bf16.h (vbfdot_f32, vbfdotq_f32,
37675 vbfdot_lane_f32, vbfdotq_lane_f32, vbfdot_laneq_f32,
37676 vbfdotq_laneq_f32): New.
37677 * config/aarch64/iterators.md (UNSPEC_BFDOT, Vbfdottype,
37678 VBFMLA_W, VBF): New.
37679 (isquadop): Add V4BF, V8BF.
37681 2020-01-16 Stam Markianos-Wright <stam.markianos-wright@arm.com>
37683 * config/aarch64/aarch64-builtins.c: (enum aarch64_type_qualifiers):
37684 New qualifier_lane_quadtup_index, TYPES_TERNOP_SSUS,
37685 TYPES_QUADOPSSUS_LANE_QUADTUP, TYPES_QUADOPSSSU_LANE_QUADTUP.
37686 (aarch64_simd_expand_args): Add case SIMD_ARG_LANE_QUADTUP_INDEX.
37687 (aarch64_simd_expand_builtin): Add qualifier_lane_quadtup_index.
37688 * config/aarch64/aarch64-simd-builtins.def (usdot, usdot_lane,
37689 usdot_laneq, sudot_lane,sudot_laneq): New.
37690 * config/aarch64/aarch64-simd.md (aarch64_usdot): New.
37691 (aarch64_<sur>dot_lane): New.
37692 * config/aarch64/arm_neon.h (vusdot_s32): New.
37693 (vusdotq_s32): New.
37694 (vusdot_lane_s32): New.
37695 (vsudot_lane_s32): New.
37696 * config/aarch64/iterators.md (DOTPROD_I8MM): New iterator.
37697 (UNSPEC_USDOT, UNSPEC_SUDOT): New unspecs.
37699 2020-01-16 Martin Liska <mliska@suse.cz>
37701 * value-prof.c (dump_histogram_value): Fix
37702 obvious spacing issue.
37704 2020-01-16 Andrew Pinski <apinski@marvell.com>
37706 * tree-ssa-sccvn.c(vn_reference_lookup_3): Check lhs for
37707 !storage_order_barrier_p.
37709 2020-01-16 Andrew Pinski <apinski@marvell.com>
37711 * sched-int.h (_dep): Add unused bit-field field for the padding.
37712 * sched-deps.c (init_dep_1): Init unused field.
37714 2020-01-16 Andrew Pinski <apinski@marvell.com>
37716 * optabs.h (create_expand_operand): Initialize target field also.
37718 2020-01-16 Andre Vieira <andre.simoesdiasvieira@arm.com>
37720 PR tree-optimization/92429
37721 * tree-ssa-loop-niter.h (simplify_replace_tree): Add parameter.
37722 * tree-ssa-loop-niter.c (simplify_replace_tree): Add parameter to
37724 * tree-vect-loop.c (update_epilogue_vinfo): Do not fold when replacing
37727 2020-01-16 Richard Sandiford <richard.sandiford@arm.com>
37729 * config/aarch64/aarch64.c (aarch64_split_sve_subreg_move): Apply
37730 aarch64_sve_int_mode to each mode.
37732 2020-01-15 David Malcolm <dmalcolm@redhat.com>
37734 * doc/analyzer.texi (Overview): Add note about
37735 -fdump-ipa-analyzer.
37737 2020-01-15 Wilco Dijkstra <wdijkstr@arm.com>
37739 PR tree-optimization/93231
37740 * tree-ssa-forwprop.c (optimize_count_trailing_zeroes): Check
37741 input_type is unsigned. Use tree_to_shwi for shift constant.
37742 Check CST_STRING element size is CHAR_TYPE_SIZE bits.
37743 (simplify_count_trailing_zeroes): Add test to handle known non-zero
37744 inputs more efficiently.
37746 2020-01-15 Uroš Bizjak <ubizjak@gmail.com>
37748 * config/i386/i386.md (*movsf_internal): Do not require
37749 SSE2 ISA for alternatives 14 and 15.
37751 2020-01-15 Richard Biener <rguenther@suse.de>
37753 PR middle-end/93273
37754 * tree-eh.c (sink_clobbers): If we already visited the destination
37755 block do not defer insertion.
37756 (pass_lower_eh_dispatch::execute): Maintain BB_VISITED for
37757 the purpose of defered insertion.
37759 2020-01-15 Jakub Jelinek <jakub@redhat.com>
37761 * BASE-VER: Bump to 10.0.1.
37763 2020-01-15 Richard Sandiford <richard.sandiford@arm.com>
37765 PR tree-optimization/93247
37766 * tree-vect-loop.c (update_epilogue_loop_vinfo): Check the access
37767 type of the stmt that we're going to vectorize.
37769 2020-01-15 Richard Sandiford <richard.sandiford@arm.com>
37771 * tree-vect-slp.c (vectorize_slp_instance_root_stmt): Use a
37772 VIEW_CONVERT_EXPR if the vectorized constructor has a diffeent
37775 2020-01-15 Martin Liska <mliska@suse.cz>
37777 * ipa-profile.c (ipa_profile_read_edge_summary): Do not allow
37778 2 calls of streamer_read_hwi in a function call.
37780 2020-01-15 Richard Biener <rguenther@suse.de>
37782 * alias.c (record_alias_subset): Avoid redundant work when
37783 subset is already recorded.
37785 2020-01-14 David Malcolm <dmalcolm@redhat.com>
37787 * doc/invoke.texi (-fdiagnostics-show-cwe): Add note that some of
37788 the analyzer options provide CWE identifiers.
37790 2020-01-14 David Malcolm <dmalcolm@redhat.com>
37792 * tree-diagnostic-path.cc (path_summary::event_range::print):
37793 When testing for UNKNOWN_LOCATION, look through ad-hoc wrappers
37794 using get_pure_location.
37796 2020-01-15 Jakub Jelinek <jakub@redhat.com>
37798 PR tree-optimization/93262
37799 * tree-ssa-dse.c (maybe_trim_memstar_call): For *_chk builtins,
37800 perform head trimming only if the last argument is constant,
37801 either all ones, or larger or equal to head trim, in the latter
37802 case decrease the last argument by head_trim.
37804 PR tree-optimization/93249
37805 * tree-ssa-dse.c: Include builtins.h and gimple-fold.h.
37806 (maybe_trim_memstar_call): Move head_trim and tail_trim vars to
37807 function body scope, reindent. For BUILTIN_IN_STRNCPY*, don't
37808 perform head trim unless we can prove there are no '\0' chars
37809 from the source among the first head_trim chars.
37811 2020-01-14 David Malcolm <dmalcolm@redhat.com>
37813 * Makefile.in (ANALYZER_OBJS): Add analyzer/function-set.o.
37815 2020-01-15 Jakub Jelinek <jakub@redhat.com>
37818 * config/i386/sse.md
37819 (*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_1,
37820 *<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_1,
37821 *<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_1,
37822 *<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_1): Use
37823 just a single alternative instead of two, make operands 1 and 2
37826 2020-01-14 Jan Hubicka <hubicka@ucw.cz>
37829 * ipa-devirt.c (odr_types_equivalent_p): Compare TREE_ADDRESSABLE and
37832 2020-01-14 David Malcolm <dmalcolm@redhat.com>
37834 * Makefile.in (lang_opt_files): Add analyzer.opt.
37835 (ANALYZER_OBJS): New.
37836 (OBJS): Add digraph.o, graphviz.o, ordered-hash-map-tests.o,
37837 tristate.o and ANALYZER_OBJS.
37838 (TEXI_GCCINT_FILES): Add analyzer.texi.
37839 * common.opt (-fanalyzer): New driver option.
37840 * config.in: Regenerate.
37841 * configure: Regenerate.
37842 * configure.ac (--disable-analyzer, ENABLE_ANALYZER): New option.
37843 (gccdepdir): Also create depdir for "analyzer" subdir.
37844 * digraph.cc: New file.
37845 * digraph.h: New file.
37846 * doc/analyzer.texi: New file.
37847 * doc/gccint.texi ("Static Analyzer") New menu item.
37848 (analyzer.texi): Include it.
37849 * doc/invoke.texi ("Static Analyzer Options"): New list and new section.
37850 ("Warning Options"): Add static analysis warnings to the list.
37851 (-Wno-analyzer-double-fclose): New option.
37852 (-Wno-analyzer-double-free): New option.
37853 (-Wno-analyzer-exposure-through-output-file): New option.
37854 (-Wno-analyzer-file-leak): New option.
37855 (-Wno-analyzer-free-of-non-heap): New option.
37856 (-Wno-analyzer-malloc-leak): New option.
37857 (-Wno-analyzer-possible-null-argument): New option.
37858 (-Wno-analyzer-possible-null-dereference): New option.
37859 (-Wno-analyzer-null-argument): New option.
37860 (-Wno-analyzer-null-dereference): New option.
37861 (-Wno-analyzer-stale-setjmp-buffer): New option.
37862 (-Wno-analyzer-tainted-array-index): New option.
37863 (-Wno-analyzer-use-after-free): New option.
37864 (-Wno-analyzer-use-of-pointer-in-stale-stack-frame): New option.
37865 (-Wno-analyzer-use-of-uninitialized-value): New option.
37866 (-Wanalyzer-too-complex): New option.
37867 (-fanalyzer-call-summaries): New warning.
37868 (-fanalyzer-checker=): New warning.
37869 (-fanalyzer-fine-grained): New warning.
37870 (-fno-analyzer-state-merge): New warning.
37871 (-fno-analyzer-state-purge): New warning.
37872 (-fanalyzer-transitivity): New warning.
37873 (-fanalyzer-verbose-edges): New warning.
37874 (-fanalyzer-verbose-state-changes): New warning.
37875 (-fanalyzer-verbosity=): New warning.
37876 (-fdump-analyzer): New warning.
37877 (-fdump-analyzer-callgraph): New warning.
37878 (-fdump-analyzer-exploded-graph): New warning.
37879 (-fdump-analyzer-exploded-nodes): New warning.
37880 (-fdump-analyzer-exploded-nodes-2): New warning.
37881 (-fdump-analyzer-exploded-nodes-3): New warning.
37882 (-fdump-analyzer-supergraph): New warning.
37883 * doc/sourcebuild.texi (dg-require-dot): New.
37884 (dg-check-dot): New.
37885 * gdbinit.in (break-on-saved-diagnostic): New command.
37886 * graphviz.cc: New file.
37887 * graphviz.h: New file.
37888 * ordered-hash-map-tests.cc: New file.
37889 * ordered-hash-map.h: New file.
37890 * passes.def (pass_analyzer): Add before
37891 pass_ipa_whole_program_visibility.
37892 * selftest-run-tests.c (selftest::run_tests): Call
37893 selftest::ordered_hash_map_tests_cc_tests.
37894 * selftest.h (selftest::ordered_hash_map_tests_cc_tests): New
37896 * shortest-paths.h: New file.
37897 * timevar.def (TV_ANALYZER): New timevar.
37898 (TV_ANALYZER_SUPERGRAPH): Likewise.
37899 (TV_ANALYZER_STATE_PURGE): Likewise.
37900 (TV_ANALYZER_PLAN): Likewise.
37901 (TV_ANALYZER_SCC): Likewise.
37902 (TV_ANALYZER_WORKLIST): Likewise.
37903 (TV_ANALYZER_DUMP): Likewise.
37904 (TV_ANALYZER_DIAGNOSTICS): Likewise.
37905 (TV_ANALYZER_SHORTEST_PATHS): Likewise.
37906 * tree-pass.h (make_pass_analyzer): New decl.
37907 * tristate.cc: New file.
37908 * tristate.h: New file.
37910 2020-01-14 Uroš Bizjak <ubizjak@gmail.com>
37913 * config/i386/i386.md (*movsf_internal): Require SSE2 ISA for
37914 alternatives 9 and 10.
37916 2020-01-14 David Malcolm <dmalcolm@redhat.com>
37918 * attribs.c (excl_hash_traits::empty_zero_p): New static constant.
37919 * gcov.c (function_start_pair_hash::empty_zero_p): Likewise.
37920 * graphite.c (struct sese_scev_hash::empty_zero_p): Likewise.
37921 * hash-map-tests.c (selftest::test_nonzero_empty_key): New selftest.
37922 (selftest::hash_map_tests_c_tests): Call it.
37923 * hash-map-traits.h (simple_hashmap_traits::empty_zero_p):
37924 New static constant, using the value of = H::empty_zero_p.
37925 (unbounded_hashmap_traits::empty_zero_p): Likewise, using the value
37926 from default_hash_traits <Value>.
37927 * hash-map.h (hash_map::empty_zero_p): Likewise, using the value
37929 * hash-set-tests.c (value_hash_traits::empty_zero_p): Likewise.
37930 * hash-table.h (hash_table::alloc_entries): Guard the loop of
37931 calls to mark_empty with !Descriptor::empty_zero_p.
37932 (hash_table::empty_slow): Conditionalize the memset call with a
37933 check that Descriptor::empty_zero_p; otherwise, loop through the
37934 entries calling mark_empty on them.
37935 * hash-traits.h (int_hash::empty_zero_p): New static constant.
37936 (pointer_hash::empty_zero_p): Likewise.
37937 (pair_hash::empty_zero_p): Likewise.
37938 * ipa-devirt.c (default_hash_traits <type_pair>::empty_zero_p):
37940 * ipa-prop.c (ipa_bit_ggc_hash_traits::empty_zero_p): Likewise.
37941 (ipa_vr_ggc_hash_traits::empty_zero_p): Likewise.
37942 * profile.c (location_triplet_hash::empty_zero_p): Likewise.
37943 * sanopt.c (sanopt_tree_triplet_hash::empty_zero_p): Likewise.
37944 (sanopt_tree_couple_hash::empty_zero_p): Likewise.
37945 * tree-hasher.h (int_tree_hasher::empty_zero_p): Likewise.
37946 * tree-ssa-sccvn.c (vn_ssa_aux_hasher::empty_zero_p): Likewise.
37947 * tree-vect-slp.c (bst_traits::empty_zero_p): Likewise.
37948 * tree-vectorizer.h
37949 (default_hash_traits<scalar_cond_masked_key>::empty_zero_p):
37952 2020-01-14 Kewen Lin <linkw@gcc.gnu.org>
37954 * cfgloopanal.c (average_num_loop_insns): Free bbs when early return,
37955 fix typo on return value.
37957 2020-01-14 Xiong Hu Luo <luoxhu@linux.ibm.com>
37960 * cgraph.c (symbol_table::create_edge): Init speculative_id and
37962 (cgraph_edge::make_speculative): Add param for setting speculative_id
37964 (cgraph_edge::speculative_call_info): Update comments and find reference
37965 by speculative_id for multiple indirect targets.
37966 (cgraph_edge::resolve_speculation): Decrease the speculations
37967 for indirect edge, drop it's speculative if not direct target
37968 left. Update comments.
37969 (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
37970 (cgraph_node::dump): Print num_speculative_call_targets.
37971 (cgraph_node::verify_node): Don't report error if speculative
37972 edge not include statement.
37973 (cgraph_edge::num_speculative_call_targets_p): New function.
37974 * cgraph.h (int common_target_id): Remove.
37975 (int common_target_probability): Remove.
37976 (num_speculative_call_targets): New variable.
37977 (make_speculative): Add param for setting speculative_id.
37978 (cgraph_edge::num_speculative_call_targets_p): New declare.
37979 (target_prob): New variable.
37980 (speculative_id): New variable.
37981 * ipa-fnsummary.c (analyze_function_body): Create and duplicate
37982 call summaries for multiple speculative call targets.
37983 * cgraphclones.c (cgraph_node::create_clone): Clone speculative_id.
37984 * ipa-profile.c (struct speculative_call_target): New struct.
37985 (class speculative_call_summary): New class.
37986 (class speculative_call_summaries): New class.
37987 (call_sums): New variable.
37988 (ipa_profile_generate_summary): Generate indirect multiple targets summaries.
37989 (ipa_profile_write_edge_summary): New function.
37990 (ipa_profile_write_summary): Stream out indirect multiple targets summaries.
37991 (ipa_profile_dump_all_summaries): New function.
37992 (ipa_profile_read_edge_summary): New function.
37993 (ipa_profile_read_summary_section): New function.
37994 (ipa_profile_read_summary): Stream in indirect multiple targets summaries.
37995 (ipa_profile): Generate num_speculative_call_targets from
37997 * ipa-ref.h (speculative_id): New variable.
37998 * ipa-utils.c (ipa_merge_profiles): Update with target_prob.
37999 * lto-cgraph.c (lto_output_edge): Remove indirect common_target_id and
38000 common_target_probability. Stream out speculative_id and
38001 num_speculative_call_targets.
38002 (input_edge): Likewise.
38003 * predict.c (dump_prediction): Remove edges count assert to be
38005 * symtab.c (symtab_node::create_reference): Init speculative_id.
38006 (symtab_node::clone_references): Clone speculative_id.
38007 (symtab_node::clone_referring): Clone speculative_id.
38008 (symtab_node::clone_reference): Clone speculative_id.
38009 (symtab_node::clear_stmts_in_references): Clear speculative_id.
38010 * tree-inline.c (copy_bb): Duplicate all the speculative edges
38011 if indirect call contains multiple speculative targets.
38012 * value-prof.h (check_ic_target): Remove.
38013 * value-prof.c (gimple_value_profile_transformations):
38014 Use void function gimple_ic_transform.
38015 * value-prof.c (gimple_ic_transform): Handle topn case.
38016 Fix comment typos. Change it to a void function.
38018 2020-01-13 Andrew Pinski <apinski@marvell.com>
38020 * config/aarch64/aarch64-cores.def (octeontx2): New define.
38021 (octeontx2t98): New define.
38022 (octeontx2t96): New define.
38023 (octeontx2t93): New define.
38024 (octeontx2f95): New define.
38025 (octeontx2f95n): New define.
38026 (octeontx2f95mm): New define.
38027 * config/aarch64/aarch64-tune.md: Regenerate.
38028 * doc/invoke.texi (-mcpu=): Document the new cpu types.
38030 2020-01-13 Jason Merrill <jason@redhat.com>
38032 PR c++/33799 - destroy return value if local cleanup throws.
38033 * gimplify.c (gimplify_return_expr): Handle COMPOUND_EXPR.
38035 2020-01-13 Martin Liska <mliska@suse.cz>
38037 * ipa-cp.c (get_max_overall_size): Use newly
38038 renamed param param_ipa_cp_unit_growth.
38039 * params.opt: Remove legacy param name.
38041 2020-01-13 Martin Sebor <msebor@redhat.com>
38043 PR tree-optimization/93213
38044 * tree-ssa-strlen.c (handle_store): Only allow single-byte nul-over-nul
38045 stores to be eliminated.
38047 2020-01-13 Martin Liska <mliska@suse.cz>
38049 * opts.c (print_help): Do not print CL_PARAM
38050 and CL_WARNING for CL_OPTIMIZATION.
38052 2020-01-13 Jonathan Wakely <jwakely@redhat.com>
38055 * doc/invoke.texi (Warning Options): Add caveat about some warnings
38056 depending on optimization settings.
38058 2020-01-13 Jakub Jelinek <jakub@redhat.com>
38060 PR tree-optimization/90838
38061 * tree-ssa-forwprop.c (simplify_count_trailing_zeroes): Use
38062 SCALAR_INT_TYPE_MODE directly in CTZ_DEFINED_VALUE_AT_ZERO macro
38063 argument rather than to initialize temporary for targets that
38064 don't use the mode argument at all. Initialize ctzval to avoid
38067 2020-01-10 Thomas Schwinge <thomas@codesourcery.com>
38069 * tree.h (OMP_CLAUSE_USE_DEVICE_PTR_IF_PRESENT): New definition.
38070 * tree-core.h: Document it.
38071 * gimplify.c (gimplify_omp_workshare): Set it.
38072 * omp-low.c (lower_omp_target): Use it.
38073 * tree-pretty-print.c (dump_omp_clause): Print it.
38075 * omp-low.c (lower_omp_target) <OMP_CLAUSE_USE_DEVICE_PTR etc.>:
38076 Assert that for OpenACC we always have 'GOMP_MAP_USE_DEVICE_PTR'.
38078 2020-01-10 David Malcolm <dmalcolm@redhat.com>
38080 * Makefile.in (OBJS): Add tree-diagnostic-path.o.
38081 * common.opt (fdiagnostics-path-format=): New option.
38082 (diagnostic_path_format): New enum.
38083 (fdiagnostics-show-path-depths): New option.
38084 * coretypes.h (diagnostic_event_id_t): New forward decl.
38085 * diagnostic-color.c (color_dict): Add "path".
38086 * diagnostic-event-id.h: New file.
38087 * diagnostic-format-json.cc (json_from_expanded_location): Make
38089 (json_end_diagnostic): Call context->make_json_for_path if it
38090 exists and the diagnostic has a path.
38091 (diagnostic_output_format_init): Clear context->print_path.
38092 * diagnostic-path.h: New file.
38093 * diagnostic-show-locus.c (colorizer::set_range): Special-case
38094 when printing a run of events in a diagnostic_path so that they
38095 all get the same color.
38096 (layout::m_diagnostic_path_p): New field.
38097 (layout::layout): Initialize it.
38098 (layout::print_any_labels): Don't colorize the label text for an
38099 event in a diagnostic_path.
38100 (gcc_rich_location::add_location_if_nearby): Add
38101 "restrict_to_current_line_spans" and "label" params. Pass the
38102 former to layout.maybe_add_location_range; pass the latter
38103 when calling add_range.
38104 * diagnostic.c: Include "diagnostic-path.h".
38105 (diagnostic_initialize): Initialize context->path_format and
38106 context->show_path_depths.
38107 (diagnostic_show_any_path): New function.
38108 (diagnostic_path::interprocedural_p): New function.
38109 (diagnostic_report_diagnostic): Call diagnostic_show_any_path.
38110 (simple_diagnostic_path::num_events): New function.
38111 (simple_diagnostic_path::get_event): New function.
38112 (simple_diagnostic_path::add_event): New function.
38113 (simple_diagnostic_event::simple_diagnostic_event): New ctor.
38114 (simple_diagnostic_event::~simple_diagnostic_event): New dtor.
38115 (debug): New overload taking a diagnostic_path *.
38116 * diagnostic.def (DK_DIAGNOSTIC_PATH): New.
38117 * diagnostic.h (enum diagnostic_path_format): New enum.
38118 (json::value): New forward decl.
38119 (diagnostic_context::path_format): New field.
38120 (diagnostic_context::show_path_depths): New field.
38121 (diagnostic_context::print_path): New callback field.
38122 (diagnostic_context::make_json_for_path): New callback field.
38123 (diagnostic_show_any_path): New decl.
38124 (json_from_expanded_location): New decl.
38125 * doc/invoke.texi (-fdiagnostics-path-format=): New option.
38126 (-fdiagnostics-show-path-depths): New option.
38127 (-fdiagnostics-color): Add "path" to description of default
38128 GCC_COLORS; describe it.
38129 (-fdiagnostics-format=json): Document how diagnostic paths are
38130 represented in the JSON output format.
38131 * gcc-rich-location.h (gcc_rich_location::add_location_if_nearby):
38132 Add optional params "restrict_to_current_line_spans" and "label".
38133 * opts.c (common_handle_option): Handle
38134 OPT_fdiagnostics_path_format_ and
38135 OPT_fdiagnostics_show_path_depths.
38136 * pretty-print.c: Include "diagnostic-event-id.h".
38137 (pp_format): Implement "%@" format code for printing
38138 diagnostic_event_id_t *.
38139 (selftest::test_pp_format): Add tests for "%@".
38140 * selftest-run-tests.c (selftest::run_tests): Call
38141 selftest::tree_diagnostic_path_cc_tests.
38142 * selftest.h (selftest::tree_diagnostic_path_cc_tests): New decl.
38143 * toplev.c (general_init): Initialize global_dc->path_format and
38144 global_dc->show_path_depths.
38145 * tree-diagnostic-path.cc: New file.
38146 * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Make
38147 non-static. Drop "diagnostic" param in favor of storing the
38148 original value of "where" and re-using it.
38149 (virt_loc_aware_diagnostic_finalizer): Update for dropped param of
38150 maybe_unwind_expanded_macro_loc.
38151 (tree_diagnostics_defaults): Initialize context->print_path and
38152 context->make_json_for_path.
38153 * tree-diagnostic.h (default_tree_diagnostic_path_printer): New
38155 (default_tree_make_json_for_path): New decl.
38156 (maybe_unwind_expanded_macro_loc): New decl.
38158 2020-01-10 Jakub Jelinek <jakub@redhat.com>
38160 PR tree-optimization/93210
38161 * fold-const.h (native_encode_initializer,
38162 can_native_interpret_type_p): Declare.
38163 * fold-const.c (native_encode_string): Fix up handling with off != -1,
38165 (native_encode_initializer): New function, moved from dwarf2out.c.
38166 Adjust to native_encode_expr compatible arguments, including dry-run
38167 and partial extraction modes. Don't handle STRING_CST.
38168 (can_native_interpret_type_p): No longer static.
38169 * gimple-fold.c (fold_ctor_reference): For native_encode_expr, verify
38170 offset / BITS_PER_UNIT fits into int and don't call it if
38171 can_native_interpret_type_p fails. If suboff is NULL and for
38172 CONSTRUCTOR fold_{,non}array_ctor_reference returns NULL, retry with
38173 native_encode_initializer.
38174 (fold_const_aggregate_ref_1): Formatting fix.
38175 * dwarf2out.c (native_encode_initializer): Moved to fold-const.c.
38176 (tree_add_const_value_attribute): Adjust caller.
38178 PR tree-optimization/90838
38179 * tree-ssa-forwprop.c (simplify_count_trailing_zeroes): Use
38180 SCALAR_INT_TYPE_MODE instead of TYPE_MODE as operand of
38181 CTZ_DEFINED_VALUE_AT_ZERO.
38183 2020-01-10 Vladimir Makarov <vmakarov@redhat.com>
38185 PR inline-asm/93027
38186 * lra-constraints.c (match_reload): Permit input operands have the
38187 same mode as output while other input operands have a different
38190 2020-01-10 Wilco Dijkstra <wdijkstr@arm.com>
38192 PR tree-optimization/90838
38193 * tree-ssa-forwprop.c (check_ctz_array): Add new function.
38194 (check_ctz_string): Likewise.
38195 (optimize_count_trailing_zeroes): Likewise.
38196 (simplify_count_trailing_zeroes): Likewise.
38197 (pass_forwprop::execute): Try ctz simplification.
38198 * match.pd: Add matching for ctz idioms.
38200 2020-01-10 Stam Markianos-Wright <stam.markianos-wright@arm.com>
38202 * config/aarch64/aarch64.c (aarch64_invalid_conversion): New function
38204 (aarch64_invalid_unary_op): New function for target hook.
38205 (aarch64_invalid_binary_op): New function for target hook.
38207 2020-01-10 Stam Markianos-Wright <stam.markianos-wright@arm.com>
38209 * config.gcc: Add arm_bf16.h.
38210 * config/aarch64/aarch64-builtins.c
38211 (aarch64_simd_builtin_std_type): Add BFmode.
38212 (aarch64_init_simd_builtin_types): Define element types for vector
38214 (aarch64_init_bf16_types): New function.
38215 (aarch64_general_init_builtins): Add arm_init_bf16_types function call.
38216 * config/aarch64/aarch64-modes.def: Add BFmode and V4BF, V8BF vector
38218 * config/aarch64/aarch64-simd-builtin-types.def: Add BF SIMD types.
38219 * config/aarch64/aarch64-simd.md: Add BF vector types to NEON move
38221 * config/aarch64/aarch64.h (AARCH64_VALID_SIMD_DREG_MODE): Add V4BF.
38222 (AARCH64_VALID_SIMD_QREG_MODE): Add V8BF.
38223 * config/aarch64/aarch64.c
38224 (aarch64_classify_vector_mode): Add support for BF types.
38225 (aarch64_gimplify_va_arg_expr): Add support for BF types.
38226 (aarch64_vq_mode): Add support for BF types.
38227 (aarch64_simd_container_mode): Add support for BF types.
38228 (aarch64_mangle_type): Add support for BF scalar type.
38229 * config/aarch64/aarch64.md: Add BFmode to movhf pattern.
38230 * config/aarch64/arm_bf16.h: New file.
38231 * config/aarch64/arm_neon.h: Add arm_bf16.h and Bfloat vector types.
38232 * config/aarch64/iterators.md: Add BF types to mode attributes.
38233 (HFBF, GPF_TF_F16_MOV, VDMOV, VQMOV, VQMOV_NO2Em VALL_F16MOV): New.
38235 2020-01-10 Jason Merrill <jason@redhat.com>
38237 PR c++/93173 - incorrect tree sharing.
38238 * gimplify.c (copy_if_shared): No longer static.
38239 * gimplify.h: Declare it.
38241 2020-01-10 Richard Sandiford <richard.sandiford@arm.com>
38243 * doc/invoke.texi (-msve-vector-bits=): Document that
38244 -msve-vector-bits=128 now generates VL-specific code for
38245 little-endian targets.
38246 * config/aarch64/aarch64-sve-builtins.cc (register_builtin_types): Use
38247 build_vector_type_for_mode to construct the data vector types.
38248 * config/aarch64/aarch64.c (aarch64_convert_sve_vector_bits): Generate
38249 VL-specific code for -msve-vector-bits=128 on little-endian targets.
38250 (aarch64_simd_container_mode): Always prefer Advanced SIMD modes
38251 for 128-bit vectors.
38253 2020-01-10 Richard Sandiford <richard.sandiford@arm.com>
38255 * config/aarch64/aarch64.c (aarch64_evpc_sel): Fix gen_vcond_mask
38258 2020-01-10 Richard Sandiford <richard.sandiford@arm.com>
38260 * config/aarch64/aarch64-builtins.c
38261 (aarch64_builtin_vectorized_function): Check for specific vector modes,
38262 rather than checking the number of elements and the element mode.
38264 2020-01-10 Richard Sandiford <richard.sandiford@arm.com>
38266 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
38267 get_related_vectype_for_scalar_type rather than build_vector_type
38268 to create the index type for a conditional reduction.
38270 2020-01-10 Richard Sandiford <richard.sandiford@arm.com>
38272 * tree-vect-loop.c (update_epilogue_loop_vinfo): Update DR_REF
38273 for any type of gather or scatter, including strided accesses.
38275 2020-01-10 Andre Vieira <andre.simoesdiasvieira@arm.com>
38277 * tree-vectorizer.h (get_dr_vinfo_offset): Add missing function
38280 2020-01-10 Andre Vieira <andre.simoesdiasvieira@arm.com>
38282 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Use
38283 get_dr_vinfo_offset
38284 * tree-vect-loop.c (update_epilogue_loop_vinfo): Remove orig_drs_init
38285 parameter and its use to reset DR_OFFSET's.
38286 (vect_transform_loop): Remove orig_drs_init argument.
38287 * tree-vect-loop-manip.c (vect_update_init_of_dr): Update the offset
38288 member of dr_vec_info rather than the offset of the associated
38289 data_reference's innermost_loop_behavior.
38290 (vect_update_init_of_dr): Pass dr_vec_info instead of data_reference.
38291 (vect_do_peeling): Remove orig_drs_init parameter and its construction.
38292 * tree-vect-stmts.c (check_scan_store): Replace use of DR_OFFSET with
38293 get_dr_vinfo_offset.
38294 (vectorizable_store): Likewise.
38295 (vectorizable_load): Likewise.
38297 2020-01-10 Richard Biener <rguenther@suse.de>
38299 * gimple-ssa-store-merging
38300 (pass_store_merging::terminate_all_aliasing_chains): Cache alias info.
38302 2020-01-10 Martin Liska <mliska@suse.cz>
38305 * ipa-inline-analysis.c (offline_size): Make proper parenthesis
38306 encapsulation that was there before r280040.
38308 2020-01-10 Richard Biener <rguenther@suse.de>
38310 PR middle-end/93199
38311 * tree-eh.c (sink_clobbers): Move clobbers to out-of-IL
38312 sequences to avoid walking them again for secondary opportunities.
38313 (pass_lower_eh_dispatch::execute): Instead actually insert
38316 2020-01-10 Richard Biener <rguenther@suse.de>
38318 PR middle-end/93199
38319 * tree-eh.c (redirect_eh_edge_1): Avoid some work if possible.
38320 (cleanup_all_empty_eh): Walk landing pads in reverse order to
38321 avoid quadraticness.
38323 2020-01-10 Martin Jambor <mjambor@suse.cz>
38325 * params.opt (param_ipa_sra_max_replacements): Mark as Optimization.
38326 * ipa-sra.c (pull_accesses_from_callee): New parameter caller, use it
38327 to get param_ipa_sra_max_replacements.
38328 (param_splitting_across_edge): Pass the caller to
38329 pull_accesses_from_callee.
38331 2020-01-10 Martin Jambor <mjambor@suse.cz>
38333 * params.opt (param_ipcp_unit_growth): Mark as Optimization.
38334 * ipa-cp.c (max_new_size): Removed.
38335 (orig_overall_size): New variable.
38336 (get_max_overall_size): New function.
38337 (estimate_local_effects): Use it. Adjust dump.
38338 (decide_about_value): Likewise.
38339 (ipcp_propagate_stage): Do not calculate max_new_size, just store
38340 orig_overall_size. Adjust dump.
38341 (ipa_cp_c_finalize): Clear orig_overall_size instead of max_new_size.
38343 2020-01-10 Martin Jambor <mjambor@suse.cz>
38345 * params.opt (param_ipa_max_agg_items): Mark as Optimization
38346 * ipa-cp.c (merge_agg_lats_step): New parameter max_agg_items, use
38347 instead of param_ipa_max_agg_items.
38348 (merge_aggregate_lattices): Extract param_ipa_max_agg_items from
38349 optimization info for the callee.
38351 2020-01-09 Kwok Cheung Yeung <kcy@codesourcery.com>
38353 * lto-streamer-in.c (input_function): Remove streamed-in inline debug
38354 markers if debug_inline_points is false.
38356 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
38358 * config.gcc (aarch64*-*-*): Add aarch64-sve-builtins-sve2.o to
38360 * config/aarch64/t-aarch64 (aarch64-sve-builtins.o): Depend on
38361 aarch64-sve-builtins-base.def, aarch64-sve-builtins-sve2.def and
38362 aarch64-sve-builtins-sve2.h.
38363 (aarch64-sve-builtins-sve2.o): New rule.
38364 * config/aarch64/aarch64.h (AARCH64_ISA_SVE2_AES): New macro.
38365 (AARCH64_ISA_SVE2_BITPERM, AARCH64_ISA_SVE2_SHA3): Likewise.
38366 (AARCH64_ISA_SVE2_SM4, TARGET_SVE2_AES, TARGET_SVE2_BITPERM): Likewise.
38367 (TARGET_SVE2_SHA, TARGET_SVE2_SM4): Likewise.
38368 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Handle
38369 TARGET_SVE2_AES, TARGET_SVE2_BITPERM, TARGET_SVE2_SHA3 and
38371 * config/aarch64/aarch64-sve.md: Update comments with SVE2
38372 instructions that are handled here.
38373 (@cond_asrd<mode>): Generalize to...
38374 (@cond_<SVE_INT_SHIFT_IMM:sve_int_op><mode>): ...this.
38375 (*cond_asrd<mode>_2): Generalize to...
38376 (*cond_<SVE_INT_SHIFT_IMM:sve_int_op><mode>_2): ...this.
38377 (*cond_asrd<mode>_z): Generalize to...
38378 (*cond_<SVE_INT_SHIFT_IMM:sve_int_op><mode>_z): ...this.
38379 * config/aarch64/aarch64.md (UNSPEC_LDNT1_GATHER): New unspec.
38380 (UNSPEC_STNT1_SCATTER, UNSPEC_WHILEGE, UNSPEC_WHILEGT): Likewise.
38381 (UNSPEC_WHILEHI, UNSPEC_WHILEHS): Likewise.
38382 * config/aarch64/aarch64-sve2.md (@aarch64_gather_ldnt<mode>): New
38384 (@aarch64_gather_ldnt_<ANY_EXTEND:optab><SVE_FULL_SDI:mode><SVE_PARTIAL_I:mode>)
38385 (@aarch64_scatter_stnt<mode>): Likewise.
38386 (@aarch64_scatter_stnt_<SVE_FULL_SDI:mode><SVE_PARTIAL_I:mode>)
38387 (@aarch64_mul_lane_<mode>): Likewise.
38388 (@aarch64_sve_suqadd<mode>_const): Likewise.
38389 (*<sur>h<addsub><mode>): Generalize to...
38390 (@aarch64_pred_<SVE2_COND_INT_BINARY_REV:sve_int_op><mode>): ...this
38392 (@cond_<SVE2_COND_INT_BINARY:sve_int_op><mode>): New expander.
38393 (*cond_<SVE2_COND_INT_BINARY:sve_int_op><mode>_2): New pattern.
38394 (*cond_<SVE2_COND_INT_BINARY:sve_int_op><mode>_3): Likewise.
38395 (*cond_<SVE2_COND_INT_BINARY:sve_int_op><mode>_any): Likewise.
38396 (*cond_<SVE2_COND_INT_BINARY_NOREV:sve_int_op><mode>_z): Likewise.
38397 (@aarch64_sve_<SVE2_INT_BINARY:sve_int_op><mode>):: Likewise.
38398 (@aarch64_sve_<SVE2_INT_BINARY:sve_int_op>_lane_<mode>): Likewise.
38399 (@aarch64_pred_<SVE2_COND_INT_SHIFT:sve_int_op><mode>): Likewise.
38400 (@cond_<SVE2_COND_INT_SHIFT:sve_int_op><mode>): New expander.
38401 (*cond_<SVE2_COND_INT_SHIFT:sve_int_op><mode>_2): New pattern.
38402 (*cond_<SVE2_COND_INT_SHIFT:sve_int_op><mode>_3): Likewise.
38403 (*cond_<SVE2_COND_INT_SHIFT:sve_int_op><mode>_any): Likewise.
38404 (@aarch64_sve_<SVE2_INT_TERNARY:sve_int_op><mode>): Likewise.
38405 (@aarch64_sve_<SVE2_INT_TERNARY_LANE:sve_int_op>_lane_<mode>)
38406 (@aarch64_sve_add_mul_lane_<mode>): Likewise.
38407 (@aarch64_sve_sub_mul_lane_<mode>): Likewise.
38408 (@aarch64_sve2_xar<mode>): Likewise.
38409 (@aarch64_sve2_bcax<mode>): Likewise.
38410 (*aarch64_sve2_eor3<mode>): Rename to...
38411 (@aarch64_sve2_eor3<mode>): ...this.
38412 (@aarch64_sve2_bsl<mode>): New expander.
38413 (@aarch64_sve2_nbsl<mode>): Likewise.
38414 (@aarch64_sve2_bsl1n<mode>): Likewise.
38415 (@aarch64_sve2_bsl2n<mode>): Likewise.
38416 (@aarch64_sve_add_<SHIFTRT:sve_int_op><mode>): Likewise.
38417 (*aarch64_sve2_sra<mode>): Add MOVPRFX support.
38418 (@aarch64_sve_add_<VRSHR_N:sve_int_op><mode>): New pattern.
38419 (@aarch64_sve_<SVE2_INT_SHIFT_INSERT:sve_int_op><mode>): Likewise.
38420 (@aarch64_sve2_<USMAX:su>aba<mode>): New expander.
38421 (*aarch64_sve2_<USMAX:su>aba<mode>): New pattern.
38422 (@aarch64_sve_<SVE2_INT_BINARY_WIDE:sve_int_op><mode>): Likewise.
38423 (<su>mull<bt><Vwide>): Generalize to...
38424 (@aarch64_sve_<SVE2_INT_BINARY_LONG:sve_int_op><mode>): ...this new
38426 (@aarch64_sve_<SVE2_INT_BINARY_LONG_lANE:sve_int_op>_lane_<mode>)
38427 (@aarch64_sve_<SVE2_INT_SHIFT_IMM_LONG:sve_int_op><mode>)
38428 (@aarch64_sve_add_<SVE2_INT_ADD_BINARY_LONG:sve_int_op><mode>)
38429 (@aarch64_sve_add_<SVE2_INT_ADD_BINARY_LONG_LANE:sve_int_op>_lane_<mode>)
38430 (@aarch64_sve_qadd_<SVE2_INT_QADD_BINARY_LONG:sve_int_op><mode>)
38431 (@aarch64_sve_qadd_<SVE2_INT_QADD_BINARY_LONG_LANE:sve_int_op>_lane_<mode>)
38432 (@aarch64_sve_sub_<SVE2_INT_SUB_BINARY_LONG:sve_int_op><mode>)
38433 (@aarch64_sve_sub_<SVE2_INT_SUB_BINARY_LONG_LANE:sve_int_op>_lane_<mode>)
38434 (@aarch64_sve_qsub_<SVE2_INT_QSUB_BINARY_LONG:sve_int_op><mode>)
38435 (@aarch64_sve_qsub_<SVE2_INT_QSUB_BINARY_LONG_LANE:sve_int_op>_lane_<mode>)
38436 (@aarch64_sve_<SVE2_FP_TERNARY_LONG:sve_fp_op><mode>): New patterns.
38437 (@aarch64_<SVE2_FP_TERNARY_LONG_LANE:sve_fp_op>_lane_<mode>)
38438 (@aarch64_sve_<SVE2_INT_UNARY_NARROWB:sve_int_op><mode>): Likewise.
38439 (@aarch64_sve_<SVE2_INT_UNARY_NARROWT:sve_int_op><mode>): Likewise.
38440 (@aarch64_sve_<SVE2_INT_BINARY_NARROWB:sve_int_op><mode>): Likewise.
38441 (@aarch64_sve_<SVE2_INT_BINARY_NARROWT:sve_int_op><mode>): Likewise.
38442 (<SHRNB:r>shrnb<mode>): Generalize to...
38443 (@aarch64_sve_<SVE2_INT_SHIFT_IMM_NARROWB:sve_int_op><mode>): ...this
38445 (<SHRNT:r>shrnt<mode>): Generalize to...
38446 (@aarch64_sve_<SVE2_INT_SHIFT_IMM_NARROWT:sve_int_op><mode>): ...this
38448 (@aarch64_pred_<SVE2_INT_BINARY_PAIR:sve_int_op><mode>): New pattern.
38449 (@aarch64_pred_<SVE2_FP_BINARY_PAIR:sve_fp_op><mode>): Likewise.
38450 (@cond_<SVE2_INT_BINARY_PAIR_LONG:sve_int_op><mode>): New expander.
38451 (*cond_<SVE2_INT_BINARY_PAIR_LONG:sve_int_op><mode>_2): New pattern.
38452 (*cond_<SVE2_INT_BINARY_PAIR_LONG:sve_int_op><mode>_z): Likewise.
38453 (@aarch64_sve_<SVE2_INT_CADD:optab><mode>): Likewise.
38454 (@aarch64_sve_<SVE2_INT_CMLA:optab><mode>): Likewise.
38455 (@aarch64_<SVE2_INT_CMLA:optab>_lane_<mode>): Likewise.
38456 (@aarch64_sve_<SVE2_INT_CDOT:optab><mode>): Likewise.
38457 (@aarch64_<SVE2_INT_CDOT:optab>_lane_<mode>): Likewise.
38458 (@aarch64_pred_<SVE2_COND_FP_UNARY_LONG:sve_fp_op><mode>): Likewise.
38459 (@cond_<SVE2_COND_FP_UNARY_LONG:sve_fp_op><mode>): New expander.
38460 (*cond_<SVE2_COND_FP_UNARY_LONG:sve_fp_op><mode>): New pattern.
38461 (@aarch64_sve2_cvtnt<mode>): Likewise.
38462 (@aarch64_pred_<SVE2_COND_FP_UNARY_NARROWB:sve_fp_op><mode>): Likewise.
38463 (@cond_<SVE2_COND_FP_UNARY_NARROWB:sve_fp_op><mode>): New expander.
38464 (*cond_<SVE2_COND_FP_UNARY_NARROWB:sve_fp_op><mode>_any): New pattern.
38465 (@aarch64_sve2_cvtxnt<mode>): Likewise.
38466 (@aarch64_pred_<SVE2_U32_UNARY:sve_int_op><mode>): Likewise.
38467 (@cond_<SVE2_U32_UNARY:sve_int_op><mode>): New expander.
38468 (*cond_<SVE2_U32_UNARY:sve_int_op><mode>): New pattern.
38469 (@aarch64_pred_<SVE2_COND_INT_UNARY_FP:sve_fp_op><mode>): Likewise.
38470 (@cond_<SVE2_COND_INT_UNARY_FP:sve_fp_op><mode>): New expander.
38471 (*cond_<SVE2_COND_INT_UNARY_FP:sve_fp_op><mode>): New pattern.
38472 (@aarch64_sve2_pmul<mode>): Likewise.
38473 (@aarch64_sve_<SVE2_PMULL:optab><mode>): Likewise.
38474 (@aarch64_sve_<SVE2_PMULL_PAIR:optab><mode>): Likewise.
38475 (@aarch64_sve2_tbl2<mode>): Likewise.
38476 (@aarch64_sve2_tbx<mode>): Likewise.
38477 (@aarch64_sve_<SVE2_INT_BITPERM:sve_int_op><mode>): Likewise.
38478 (@aarch64_sve2_histcnt<mode>): Likewise.
38479 (@aarch64_sve2_histseg<mode>): Likewise.
38480 (@aarch64_pred_<SVE2_MATCH:sve_int_op><mode>): Likewise.
38481 (*aarch64_pred_<SVE2_MATCH:sve_int_op><mode>_cc): Likewise.
38482 (*aarch64_pred_<SVE2_MATCH:sve_int_op><mode>_ptest): Likewise.
38483 (aarch64_sve2_aes<CRYPTO_AES:aes_op>): Likewise.
38484 (aarch64_sve2_aes<CRYPTO_AESMC:aesmc_op>): Likewise.
38485 (*aarch64_sve2_aese_fused, *aarch64_sve2_aesd_fused): Likewise.
38486 (aarch64_sve2_rax1, aarch64_sve2_sm4e, aarch64_sve2_sm4ekey): Likewise.
38487 (<su>mulh<r>s<mode>3): Update after above pattern name changes.
38488 * config/aarch64/iterators.md (VNx16QI_ONLY, VNx4SF_ONLY)
38489 (SVE_STRUCT2, SVE_FULL_BHI, SVE_FULL_HSI, SVE_FULL_HDI)
38490 (SVE2_PMULL_PAIR_I): New mode iterators.
38491 (UNSPEC_ADCLB, UNSPEC_ADCLT, UNSPEC_ADDHNB, UNSPEC_ADDHNT, UNSPEC_BDEP)
38492 (UNSPEC_BEXT, UNSPEC_BGRP, UNSPEC_CADD90, UNSPEC_CADD270, UNSPEC_CDOT)
38493 (UNSPEC_CDOT90, UNSPEC_CDOT180, UNSPEC_CDOT270, UNSPEC_CMLA)
38494 (UNSPEC_CMLA90, UNSPEC_CMLA180, UNSPEC_CMLA270, UNSPEC_COND_FCVTLT)
38495 (UNSPEC_COND_FCVTNT, UNSPEC_COND_FCVTX, UNSPEC_COND_FCVTXNT)
38496 (UNSPEC_COND_FLOGB, UNSPEC_EORBT, UNSPEC_EORTB, UNSPEC_FADDP)
38497 (UNSPEC_FMAXP, UNSPEC_FMAXNMP, UNSPEC_FMLALB, UNSPEC_FMLALT)
38498 (UNSPEC_FMLSLB, UNSPEC_FMLSLT, UNSPEC_FMINP, UNSPEC_FMINNMP)
38499 (UNSPEC_HISTCNT, UNSPEC_HISTSEG, UNSPEC_MATCH, UNSPEC_NMATCH)
38500 (UNSPEC_PMULLB, UNSPEC_PMULLB_PAIR, UNSPEC_PMULLT, UNSPEC_PMULLT_PAIR)
38501 (UNSPEC_RADDHNB, UNSPEC_RADDHNT, UNSPEC_RSUBHNB, UNSPEC_RSUBHNT)
38502 (UNSPEC_SLI, UNSPEC_SRI, UNSPEC_SABDLB, UNSPEC_SABDLT, UNSPEC_SADDLB)
38503 (UNSPEC_SADDLBT, UNSPEC_SADDLT, UNSPEC_SADDWB, UNSPEC_SADDWT)
38504 (UNSPEC_SBCLB, UNSPEC_SBCLT, UNSPEC_SMAXP, UNSPEC_SMINP)
38505 (UNSPEC_SQCADD90, UNSPEC_SQCADD270, UNSPEC_SQDMULLB, UNSPEC_SQDMULLBT)
38506 (UNSPEC_SQDMULLT, UNSPEC_SQRDCMLAH, UNSPEC_SQRDCMLAH90)
38507 (UNSPEC_SQRDCMLAH180, UNSPEC_SQRDCMLAH270, UNSPEC_SQRSHRNB)
38508 (UNSPEC_SQRSHRNT, UNSPEC_SQRSHRUNB, UNSPEC_SQRSHRUNT, UNSPEC_SQSHRNB)
38509 (UNSPEC_SQSHRNT, UNSPEC_SQSHRUNB, UNSPEC_SQSHRUNT, UNSPEC_SQXTNB)
38510 (UNSPEC_SQXTNT, UNSPEC_SQXTUNB, UNSPEC_SQXTUNT, UNSPEC_SSHLLB)
38511 (UNSPEC_SSHLLT, UNSPEC_SSUBLB, UNSPEC_SSUBLBT, UNSPEC_SSUBLT)
38512 (UNSPEC_SSUBLTB, UNSPEC_SSUBWB, UNSPEC_SSUBWT, UNSPEC_SUBHNB)
38513 (UNSPEC_SUBHNT, UNSPEC_TBL2, UNSPEC_UABDLB, UNSPEC_UABDLT)
38514 (UNSPEC_UADDLB, UNSPEC_UADDLT, UNSPEC_UADDWB, UNSPEC_UADDWT)
38515 (UNSPEC_UMAXP, UNSPEC_UMINP, UNSPEC_UQRSHRNB, UNSPEC_UQRSHRNT)
38516 (UNSPEC_UQSHRNB, UNSPEC_UQSHRNT, UNSPEC_UQXTNB, UNSPEC_UQXTNT)
38517 (UNSPEC_USHLLB, UNSPEC_USHLLT, UNSPEC_USUBLB, UNSPEC_USUBLT)
38518 (UNSPEC_USUBWB, UNSPEC_USUBWT): New unspecs.
38519 (UNSPEC_SMULLB, UNSPEC_SMULLT, UNSPEC_UMULLB, UNSPEC_UMULLT)
38520 (UNSPEC_SMULHS, UNSPEC_SMULHRS, UNSPEC_UMULHS, UNSPEC_UMULHRS)
38521 (UNSPEC_RSHRNB, UNSPEC_RSHRNT, UNSPEC_SHRNB, UNSPEC_SHRNT): Move
38523 (VNARROW, Ventype): New mode attributes.
38524 (Vewtype): Handle VNx2DI. Fix typo in comment.
38525 (VDOUBLE): New mode attribute.
38526 (sve_lane_con): Handle VNx8HI.
38527 (SVE_INT_UNARY): Include ss_abs and ss_neg for TARGET_SVE2.
38528 (SVE_INT_BINARY): Likewise ss_plus, us_plus, ss_minus and us_minus.
38529 (sve_int_op, sve_int_op_rev): Handle the above codes.
38530 (sve_pred_int_rhs2_operand): Likewise.
38531 (MULLBT, SHRNB, SHRNT): Delete.
38532 (SVE_INT_SHIFT_IMM): New int iterator.
38533 (SVE_WHILE): Add UNSPEC_WHILEGE, UNSPEC_WHILEGT, UNSPEC_WHILEHI
38534 and UNSPEC_WHILEHS for TARGET_SVE2.
38535 (SVE2_U32_UNARY, SVE2_INT_UNARY_NARROWB, SVE2_INT_UNARY_NARROWT)
38536 (SVE2_INT_BINARY, SVE2_INT_BINARY_LANE, SVE2_INT_BINARY_LONG)
38537 (SVE2_INT_BINARY_LONG_LANE, SVE2_INT_BINARY_NARROWB)
38538 (SVE2_INT_BINARY_NARROWT, SVE2_INT_BINARY_PAIR, SVE2_FP_BINARY_PAIR)
38539 (SVE2_INT_BINARY_PAIR_LONG, SVE2_INT_BINARY_WIDE): New int iterators.
38540 (SVE2_INT_SHIFT_IMM_LONG, SVE2_INT_SHIFT_IMM_NARROWB): Likewise.
38541 (SVE2_INT_SHIFT_IMM_NARROWT, SVE2_INT_SHIFT_INSERT, SVE2_INT_CADD)
38542 (SVE2_INT_BITPERM, SVE2_INT_TERNARY, SVE2_INT_TERNARY_LANE): Likewise.
38543 (SVE2_FP_TERNARY_LONG, SVE2_FP_TERNARY_LONG_LANE, SVE2_INT_CMLA)
38544 (SVE2_INT_CDOT, SVE2_INT_ADD_BINARY_LONG, SVE2_INT_QADD_BINARY_LONG)
38545 (SVE2_INT_SUB_BINARY_LONG, SVE2_INT_QSUB_BINARY_LONG): Likewise.
38546 (SVE2_INT_ADD_BINARY_LONG_LANE, SVE2_INT_QADD_BINARY_LONG_LANE)
38547 (SVE2_INT_SUB_BINARY_LONG_LANE, SVE2_INT_QSUB_BINARY_LONG_LANE)
38548 (SVE2_COND_INT_UNARY_FP, SVE2_COND_FP_UNARY_LONG): Likewise.
38549 (SVE2_COND_FP_UNARY_NARROWB, SVE2_COND_INT_BINARY): Likewise.
38550 (SVE2_COND_INT_BINARY_NOREV, SVE2_COND_INT_BINARY_REV): Likewise.
38551 (SVE2_COND_INT_SHIFT, SVE2_MATCH, SVE2_PMULL): Likewise.
38552 (optab): Handle the new unspecs.
38553 (su, r): Remove entries for UNSPEC_SHRNB, UNSPEC_SHRNT, UNSPEC_RSHRNB
38555 (lr): Handle the new unspecs.
38557 (cmp_op, while_optab_cmp, sve_int_op): Handle the new unspecs.
38558 (sve_int_op_rev, sve_int_add_op, sve_int_qadd_op, sve_int_sub_op)
38559 (sve_int_qsub_op): New int attributes.
38560 (sve_fp_op, rot): Handle the new unspecs.
38561 * config/aarch64/aarch64-sve-builtins.h
38562 (function_resolver::require_matching_pointer_type): Declare.
38563 (function_resolver::resolve_unary): Add an optional boolean argument.
38564 (function_resolver::finish_opt_n_resolution): Add an optional
38565 type_suffix_index argument.
38566 (gimple_folder::redirect_call): Declare.
38567 (gimple_expander::prepare_gather_address_operands): Add an optional
38569 * config/aarch64/aarch64-sve-builtins.cc: Include
38570 aarch64-sve-builtins-sve2.h.
38571 (TYPES_b_unsigned, TYPES_b_integer, TYPES_bh_integer): New macros.
38572 (TYPES_bs_unsigned, TYPES_hs_signed, TYPES_hs_integer): Likewise.
38573 (TYPES_hd_unsigned, TYPES_hsd_signed): Likewise.
38574 (TYPES_hsd_integer): Use TYPES_hsd_signed.
38575 (TYPES_s_float_hsd_integer, TYPES_s_float_sd_integer): New macros.
38576 (TYPES_s_unsigned): Likewise.
38577 (TYPES_s_integer): Use TYPES_s_unsigned.
38578 (TYPES_sd_signed, TYPES_sd_unsigned): New macros.
38579 (TYPES_sd_integer): Use them.
38580 (TYPES_d_unsigned): New macro.
38581 (TYPES_d_integer): Use it.
38582 (TYPES_d_data, TYPES_cvt_long, TYPES_cvt_narrow_s): New macros.
38583 (TYPES_cvt_narrow): Likewise.
38584 (DEF_SVE_TYPES_ARRAY): Include the new types macros above.
38585 (preds_mx): New variable.
38586 (function_builder::add_overloaded_function): Allow the new feature
38587 set to be more restrictive than the original one.
38588 (function_resolver::infer_pointer_type): Remove qualifiers from
38589 the pointer type before printing it.
38590 (function_resolver::require_matching_pointer_type): New function.
38591 (function_resolver::resolve_sv_displacement): Handle functions
38592 that don't support 32-bit vector indices or svint32_t vector offsets.
38593 (function_resolver::finish_opt_n_resolution): Take the inferred type
38594 as a separate argument.
38595 (function_resolver::resolve_unary): Optionally treat all forms in
38596 the same way as normal merging functions.
38597 (gimple_folder::redirect_call): New function.
38598 (function_expander::prepare_gather_address_operands): Add an argument
38599 that says whether scaled forms are available. If they aren't,
38600 handle scaling of vector indices and don't add the extension and
38602 (function_expander::map_to_unspecs): If aarch64_sve isn't available,
38603 fall back to using cond_* instead.
38604 * config/aarch64/aarch64-sve-builtins-functions.h (rtx_code_function):
38605 Split out the member variables into...
38606 (rtx_code_function_base): ...this new base class.
38607 (rtx_code_function_rotated): Inherit rtx_code_function_base.
38608 (unspec_based_function): Split out the member variables into...
38609 (unspec_based_function_base): ...this new base class.
38610 (unspec_based_function_rotated): Inherit unspec_based_function_base.
38611 (unspec_based_function_exact_insn): New class.
38612 (unspec_based_add_function, unspec_based_add_lane_function)
38613 (unspec_based_lane_function, unspec_based_pred_function)
38614 (unspec_based_qadd_function, unspec_based_qadd_lane_function)
38615 (unspec_based_qsub_function, unspec_based_qsub_lane_function)
38616 (unspec_based_sub_function, unspec_based_sub_lane_function): New
38618 (unspec_based_fused_function): New class.
38619 (unspec_based_mla_function, unspec_based_mls_function): New typedefs.
38620 (unspec_based_fused_lane_function): New class.
38621 (unspec_based_mla_lane_function, unspec_based_mls_lane_function): New
38623 (CODE_FOR_MODE1): New macro.
38624 (fixed_insn_function): New class.
38625 (while_comparison): Likewise.
38626 * config/aarch64/aarch64-sve-builtins-shapes.h (binary_long_lane)
38627 (binary_long_opt_n, binary_narrowb_opt_n, binary_narrowt_opt_n)
38628 (binary_to_uint, binary_wide, binary_wide_opt_n, compare, compare_ptr)
38629 (load_ext_gather_index_restricted, load_ext_gather_offset_restricted)
38630 (load_gather_sv_restricted, shift_left_imm_long): Declare.
38631 (shift_left_imm_to_uint, shift_right_imm_narrowb): Likewise.
38632 (shift_right_imm_narrowt, shift_right_imm_narrowb_to_uint): Likewise.
38633 (shift_right_imm_narrowt_to_uint, store_scatter_index_restricted)
38634 (store_scatter_offset_restricted, tbl_tuple, ternary_long_lane)
38635 (ternary_long_opt_n, ternary_qq_lane_rotate, ternary_qq_rotate)
38636 (ternary_shift_left_imm, ternary_shift_right_imm, ternary_uint)
38637 (unary_convert_narrowt, unary_long, unary_narrowb, unary_narrowt)
38638 (unary_narrowb_to_uint, unary_narrowt_to_uint, unary_to_int): Likewise.
38639 * config/aarch64/aarch64-sve-builtins-shapes.cc (apply_predication):
38640 Also add an initial argument for unary_convert_narrowt, regardless
38641 of the predication type.
38642 (build_32_64): Allow loads and stores to specify MODE_none.
38643 (build_sv_index64, build_sv_uint_offset): New functions.
38644 (long_type_suffix): New function.
38645 (binary_imm_narrowb_base, binary_imm_narrowt_base): New classes.
38646 (binary_imm_long_base, load_gather_sv_base): Likewise.
38647 (shift_right_imm_narrow_wrapper, ternary_shift_imm_base): Likewise.
38648 (ternary_resize2_opt_n_base, ternary_resize2_lane_base): Likewise.
38649 (unary_narrowb_base, unary_narrowt_base): Likewise.
38650 (binary_long_lane_def, binary_long_lane): New shape.
38651 (binary_long_opt_n_def, binary_long_opt_n): Likewise.
38652 (binary_narrowb_opt_n_def, binary_narrowb_opt_n): Likewise.
38653 (binary_narrowt_opt_n_def, binary_narrowt_opt_n): Likewise.
38654 (binary_to_uint_def, binary_to_uint): Likewise.
38655 (binary_wide_def, binary_wide): Likewise.
38656 (binary_wide_opt_n_def, binary_wide_opt_n): Likewise.
38657 (compare_def, compare): Likewise.
38658 (compare_ptr_def, compare_ptr): Likewise.
38659 (load_ext_gather_index_restricted_def,
38660 load_ext_gather_index_restricted): Likewise.
38661 (load_ext_gather_offset_restricted_def,
38662 load_ext_gather_offset_restricted): Likewise.
38663 (load_gather_sv_def): Inherit from load_gather_sv_base.
38664 (load_gather_sv_restricted_def, load_gather_sv_restricted): New shape.
38665 (shift_left_imm_def, shift_left_imm): Likewise.
38666 (shift_left_imm_long_def, shift_left_imm_long): Likewise.
38667 (shift_left_imm_to_uint_def, shift_left_imm_to_uint): Likewise.
38668 (store_scatter_index_restricted_def,
38669 store_scatter_index_restricted): Likewise.
38670 (store_scatter_offset_restricted_def,
38671 store_scatter_offset_restricted): Likewise.
38672 (tbl_tuple_def, tbl_tuple): Likewise.
38673 (ternary_long_lane_def, ternary_long_lane): Likewise.
38674 (ternary_long_opt_n_def, ternary_long_opt_n): Likewise.
38675 (ternary_qq_lane_def): Inherit from ternary_resize2_lane_base.
38676 (ternary_qq_lane_rotate_def, ternary_qq_lane_rotate): New shape
38677 (ternary_qq_opt_n_def): Inherit from ternary_resize2_opt_n_base.
38678 (ternary_qq_rotate_def, ternary_qq_rotate): New shape.
38679 (ternary_shift_left_imm_def, ternary_shift_left_imm): Likewise.
38680 (ternary_shift_right_imm_def, ternary_shift_right_imm): Likewise.
38681 (ternary_uint_def, ternary_uint): Likewise.
38682 (unary_convert): Fix typo in comment.
38683 (unary_convert_narrowt_def, unary_convert_narrowt): New shape.
38684 (unary_long_def, unary_long): Likewise.
38685 (unary_narrowb_def, unary_narrowb): Likewise.
38686 (unary_narrowt_def, unary_narrowt): Likewise.
38687 (unary_narrowb_to_uint_def, unary_narrowb_to_uint): Likewise.
38688 (unary_narrowt_to_uint_def, unary_narrowt_to_uint): Likewise.
38689 (unary_to_int_def, unary_to_int): Likewise.
38690 * config/aarch64/aarch64-sve-builtins-base.cc (unspec_cmla)
38691 (unspec_fcmla, unspec_cond_fcmla, expand_mla_mls_lane): New functions.
38692 (svasrd_impl): Delete.
38693 (svcadd_impl::expand): Handle integer operations too.
38694 (svcmla_impl::expand, svcmla_lane::expand): Likewise, using the
38695 new functions to derive the unspec numbers.
38696 (svmla_svmls_lane_impl): Replace with...
38697 (svmla_lane_impl, svmls_lane_impl): ...these new classes. Handle
38698 integer operations too.
38699 (svwhile_impl): Rename to...
38700 (svwhilelx_impl): ...this and inherit from while_comparison.
38701 (svasrd): Use unspec_based_function.
38702 (svmla_lane): Use svmla_lane_impl.
38703 (svmls_lane): Use svmls_lane_impl.
38704 (svrecpe, svrsqrte): Handle unsigned integer operations too.
38705 (svwhilele, svwhilelt): Use svwhilelx_impl.
38706 * config/aarch64/aarch64-sve-builtins-sve2.h: New file.
38707 * config/aarch64/aarch64-sve-builtins-sve2.cc: Likewise.
38708 * config/aarch64/aarch64-sve-builtins-sve2.def: Likewise.
38709 * config/aarch64/aarch64-sve-builtins.def: Include
38710 aarch64-sve-builtins-sve2.def.
38712 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
38714 * config/aarch64/aarch64-protos.h (aarch64_sve_arith_immediate_p)
38715 (aarch64_sve_sqadd_sqsub_immediate_p): Add a machine_mode argument.
38716 * config/aarch64/aarch64.c (aarch64_sve_arith_immediate_p)
38717 (aarch64_sve_sqadd_sqsub_immediate_p): Likewise. Handle scalar
38718 immediates as well as vector ones.
38719 * config/aarch64/predicates.md (aarch64_sve_arith_immediate)
38720 (aarch64_sve_sub_arith_immediate, aarch64_sve_qadd_immediate)
38721 (aarch64_sve_qsub_immediate): Update calls accordingly.
38723 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
38725 * config/aarch64/aarch64-sve2.md: Add banner comments.
38726 (<su>mulh<r>s<mode>3): Move further up file.
38727 (<su>mull<bt><Vwide>, <r>shrnb<mode>, <r>shrnt<mode>)
38728 (*aarch64_sve2_sra<mode>): Move further down file.
38729 * config/aarch64/t-aarch64 (s-check-sve-md): Check aarch64-sve2.md too.
38731 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
38733 * config/aarch64/iterators.md (SVE_WHILE): Add UNSPEC_WHILERW
38734 and UNSPEC_WHILEWR.
38735 (while_optab_cmp): Handle them.
38736 * config/aarch64/aarch64-sve.md
38737 (*while_<while_optab_cmp><GPI:mode><PRED_ALL:mode>_ptest): Make public
38738 and add a "@" marker.
38739 * config/aarch64/aarch64-sve2.md (check_<raw_war>_ptrs<mode>): Use it
38740 instead of gen_aarch64_sve2_while_ptest.
38741 (@aarch64_sve2_while<cmp_op><GPI:mode><PRED_ALL:mode>_ptest): Delete.
38743 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
38745 * config/aarch64/aarch64.md (UNSPEC_WHILE_LE): Rename to...
38746 (UNSPEC_WHILELE): ...this.
38747 (UNSPEC_WHILE_LO): Rename to...
38748 (UNSPEC_WHILELO): ...this.
38749 (UNSPEC_WHILE_LS): Rename to...
38750 (UNSPEC_WHILELS): ...this.
38751 (UNSPEC_WHILE_LT): Rename to...
38752 (UNSPEC_WHILELT): ...this.
38753 * config/aarch64/iterators.md (SVE_WHILE): Update accordingly.
38754 (cmp_op, while_optab_cmp): Likewise.
38755 * config/aarch64/aarch64.c (aarch64_sve_move_pred_via_while): Likewise.
38756 * config/aarch64/aarch64-sve-builtins-base.cc (svwhilele): Likewise.
38757 (svwhilelt): Likewise.
38759 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
38761 * config/aarch64/aarch64-sve-builtins-shapes.h (unary_count): Delete.
38762 (unary_to_uint): Define.
38763 * config/aarch64/aarch64-sve-builtins-shapes.cc (unary_count_def)
38764 (unary_count): Rename to...
38765 (unary_to_uint_def, unary_to_uint): ...this.
38766 * config/aarch64/aarch64-sve-builtins-base.def: Update accordingly.
38768 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
38770 * config/aarch64/aarch64-sve-builtins-functions.h
38771 (code_for_mode_function): New class.
38772 (CODE_FOR_MODE0, QUIET_CODE_FOR_MODE0): New macros.
38773 * config/aarch64/aarch64-sve-builtins-base.cc (svcompact_impl)
38774 (svext_impl, svmul_lane_impl, svsplice_impl, svtmad_impl): Delete.
38775 (svcompact, svext, svsplice): Use QUIET_CODE_FOR_MODE0.
38776 (svmul_lane, svtmad): Use CODE_FOR_MODE0.
38778 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
38780 * config/aarch64/iterators.md (addsub): New code attribute.
38781 * config/aarch64/aarch64-simd.md (aarch64_<su_optab><optab><mode>):
38783 (aarch64_<su_optab>q<addsub><mode>): ...this, making the same change
38784 in the asm string and attributes. Fix indentation.
38785 * config/aarch64/aarch64-sve.md (@aarch64_<su_optab><optab><mode>):
38787 (@aarch64_sve_<optab><mode>): ...this.
38788 * config/aarch64/aarch64-sve-builtins.h
38789 (function_expander::expand_signed_unpred_op): Delete.
38790 * config/aarch64/aarch64-sve-builtins.cc
38791 (function_expander::expand_signed_unpred_op): Likewise.
38792 (function_expander::map_to_rtx_codes): If the optab isn't defined,
38793 try using code_for_aarch64_sve instead.
38794 * config/aarch64/aarch64-sve-builtins-base.cc (svqadd_impl): Delete.
38795 (svqsub_impl): Likewise.
38796 (svqadd, svqsub): Use rtx_code_function instead.
38798 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
38800 * config/aarch64/iterators.md (SRHSUB, URHSUB): Delete.
38801 (HADDSUB, sur, addsub): Remove them.
38803 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
38805 * tree-nrv.c (pass_return_slot::execute): Handle all internal
38806 functions the same way, rather than singling out those that
38807 aren't mapped directly to optabs.
38809 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
38811 * target.def (compatible_vector_types_p): New target hook.
38812 * hooks.h (hook_bool_const_tree_const_tree_true): Declare.
38813 * hooks.c (hook_bool_const_tree_const_tree_true): New function.
38814 * doc/tm.texi.in (TARGET_COMPATIBLE_VECTOR_TYPES_P): New hook.
38815 * doc/tm.texi: Regenerate.
38816 * gimple-expr.c: Include target.h.
38817 (useless_type_conversion_p): Use targetm.compatible_vector_types_p.
38818 * config/aarch64/aarch64.c (aarch64_compatible_vector_types_p): New
38820 (TARGET_COMPATIBLE_VECTOR_TYPES_P): Define.
38821 * config/aarch64/aarch64-sve-builtins.cc (gimple_folder::convert_pred):
38822 Use the original predicate if it already has a suitable type.
38824 2020-01-09 Martin Jambor <mjambor@suse.cz>
38826 * cgraph.h (cgraph_edge): Make remove, set_call_stmt, make_direct,
38827 resolve_speculation and redirect_call_stmt_to_callee static. Change
38828 return type of set_call_stmt to cgraph_edge *.
38829 * auto-profile.c (afdo_indirect_call): Adjust call to
38830 redirect_call_stmt_to_callee.
38831 * cgraph.c (cgraph_edge::set_call_stmt): Make return cgraph-edge *,
38832 make the this pointer explicit, adjust self-recursive calls and the
38833 call top make_direct. Return the resulting edge.
38834 (cgraph_edge::remove): Make this pointer explicit.
38835 (cgraph_edge::resolve_speculation): Likewise, adjust call to remove.
38836 (cgraph_edge::make_direct): Likewise, adjust call to
38837 resolve_speculation.
38838 (cgraph_edge::redirect_call_stmt_to_callee): Likewise, also adjust
38839 call to set_call_stmt.
38840 (cgraph_update_edges_for_call_stmt_node): Update call to
38841 set_call_stmt and remove.
38842 * cgraphclones.c (cgraph_node::set_call_stmt_including_clones):
38843 Renamed edge to master_edge. Adjusted calls to set_call_stmt.
38844 (cgraph_node::create_edge_including_clones): Moved "first" definition
38845 of edge to the block where it was used. Adjusted calls to
38847 (cgraph_node::remove_symbol_and_inline_clones): Adjust call to
38848 cgraph_edge::remove.
38849 * cgraphunit.c (walk_polymorphic_call_targets): Adjusted calls to
38850 make_direct and redirect_call_stmt_to_callee.
38851 * ipa-fnsummary.c (redirect_to_unreachable): Adjust calls to
38852 resolve_speculation and make_direct.
38853 * ipa-inline-transform.c (inline_transform): Adjust call to
38854 redirect_call_stmt_to_callee.
38855 (check_speculations_1):: Adjust call to resolve_speculation.
38856 * ipa-inline.c (resolve_noninline_speculation): Adjust call to
38857 resolve-speculation.
38858 (inline_small_functions): Adjust call to resolve_speculation.
38859 (ipa_inline): Likewise.
38860 * ipa-prop.c (ipa_make_edge_direct_to_target): Adjust call to
38862 * ipa-visibility.c (function_and_variable_visibility): Make iteration
38863 safe with regards to edge removal, adjust calls to
38864 redirect_call_stmt_to_callee.
38865 * ipa.c (walk_polymorphic_call_targets): Adjust calls to make_direct
38866 and redirect_call_stmt_to_callee.
38867 * multiple_target.c (create_dispatcher_calls): Adjust call to
38868 redirect_call_stmt_to_callee
38869 (redirect_to_specific_clone): Likewise.
38870 * tree-cfgcleanup.c (delete_unreachable_blocks_update_callgraph):
38871 Adjust calls to cgraph_edge::remove.
38872 * tree-inline.c (copy_bb): Adjust call to set_call_stmt.
38873 (redirect_all_calls): Adjust call to redirect_call_stmt_to_callee.
38874 (expand_call_inline): Adjust call to cgraph_edge::remove.
38876 2020-01-09 Martin Liska <mliska@suse.cz>
38878 * params.opt: Set Optimization for
38879 param_max_speculative_devirt_maydefs.
38881 2020-01-09 Martin Sebor <msebor@redhat.com>
38883 PR middle-end/93200
38885 * builtins.c (compute_objsize): Avoid handling MEM_REFs of vector type.
38887 2020-01-09 Martin Liska <mliska@suse.cz>
38889 * auto-profile.c (auto_profile): Use opt_for_fn
38891 * ipa-cp.c (ipcp_lattice::add_value): Likewise.
38892 (propagate_vals_across_arith_jfunc): Likewise.
38893 (hint_time_bonus): Likewise.
38894 (incorporate_penalties): Likewise.
38895 (good_cloning_opportunity_p): Likewise.
38896 (perform_estimation_of_a_value): Likewise.
38897 (estimate_local_effects): Likewise.
38898 (ipcp_propagate_stage): Likewise.
38899 * ipa-fnsummary.c (decompose_param_expr): Likewise.
38900 (set_switch_stmt_execution_predicate): Likewise.
38901 (analyze_function_body): Likewise.
38902 * ipa-inline-analysis.c (offline_size): Likewise.
38903 * ipa-inline.c (early_inliner): Likewise.
38904 * ipa-prop.c (ipa_analyze_node): Likewise.
38905 (ipcp_transform_function): Likewise.
38906 * ipa-sra.c (process_scan_results): Likewise.
38907 (ipa_sra_summarize_function): Likewise.
38908 * params.opt: Rename ipcp-unit-growth to
38909 ipa-cp-unit-growth. Add Optimization for various
38910 IPA-related parameters.
38912 2020-01-09 Richard Biener <rguenther@suse.de>
38914 PR middle-end/93054
38915 * gimplify.c (gimplify_expr): Deal with NOP definitions.
38917 2020-01-09 Richard Biener <rguenther@suse.de>
38919 PR tree-optimization/93040
38920 * gimple-ssa-store-merging.c (find_bswap_or_nop): Raise search limit.
38922 2020-01-09 Georg-Johann Lay <avr@gjlay.de>
38924 * common/config/avr/avr-common.c (avr_option_optimization_table)
38925 [OPT_LEVELS_1_PLUS]: Set -fsplit-wide-types-early.
38927 2020-01-09 Martin Liska <mliska@suse.cz>
38929 * cgraphclones.c (symbol_table::materialize_all_clones):
38930 Use cgraph_node::dump_name.
38932 2020-01-09 Jakub Jelinek <jakub@redhat.com>
38934 PR inline-asm/93202
38935 * config/riscv/riscv.c (riscv_print_operand_reloc): Use
38936 output_operand_lossage instead of gcc_unreachable.
38937 * doc/md.texi (riscv f constraint): Fix typo.
38940 * config/i386/i386.md (subv<mode>4): Use SWIDWI iterator instead of
38941 SWI. Use <general_hilo_operand> instead of <general_operand>. Use
38942 CONST_SCALAR_INT_P instead of CONST_INT_P.
38943 (*subv<mode>4_1): Rename to ...
38944 (subv<mode>4_1): ... this.
38945 (*subv<dwi>4_doubleword, *addv<dwi>4_doubleword_1): New
38946 define_insn_and_split patterns.
38947 (*subv<mode>4_overflow_1, *addv<mode>4_overflow_2): New define_insn
38950 2020-01-08 David Malcolm <dmalcolm@redhat.com>
38952 * vec.c (class selftest::count_dtor): New class.
38953 (selftest::test_auto_delete_vec): New test.
38954 (selftest::vec_c_tests): Call it.
38955 * vec.h (class auto_delete_vec): New class template.
38956 (auto_delete_vec<T>::~auto_delete_vec): New dtor.
38958 2020-01-08 David Malcolm <dmalcolm@redhat.com>
38960 * sbitmap.h (auto_sbitmap): Add operator const_sbitmap.
38962 2020-01-08 Jim Wilson <jimw@sifive.com>
38964 * config/riscv/riscv.c (riscv_legitimize_tls_address): Ifdef out
38965 use of TLS_MODEL_LOCAL_EXEC when not pic.
38967 2020-01-08 David Malcolm <dmalcolm@redhat.com>
38969 * hash-map-tests.c (selftest::test_map_of_strings_to_int): Fix
38972 2020-01-08 Jakub Jelinek <jakub@redhat.com>
38975 * config/i386/i386.md (*stack_protect_set_2_<mode> peephole2,
38976 *stack_protect_set_3 peephole2): Also check that the second
38977 insns source is general_operand.
38980 * config/i386/i386.md (addcarry<mode>_0): Use nonimmediate_operand
38981 predicate for output operand instead of register_operand.
38982 (addcarry<mode>, addcarry<mode>_1): Likewise. Add alternative with
38983 memory destination and non-memory operands[2].
38985 2020-01-08 Martin Liska <mliska@suse.cz>
38987 * cgraph.c (cgraph_node::dump): Use ::dump_name or
38988 ::dump_asm_name instead of (::name or ::asm_name).
38989 * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
38990 * cgraphunit.c (walk_polymorphic_call_targets): Likewise.
38991 (analyze_functions): Likewise.
38992 (expand_all_functions): Likewise.
38993 * ipa-cp.c (ipcp_cloning_candidate_p): Likewise.
38994 (propagate_bits_across_jump_function): Likewise.
38995 (dump_profile_updates): Likewise.
38996 (ipcp_store_bits_results): Likewise.
38997 (ipcp_store_vr_results): Likewise.
38998 * ipa-devirt.c (dump_targets): Likewise.
38999 * ipa-fnsummary.c (analyze_function_body): Likewise.
39000 * ipa-hsa.c (check_warn_node_versionable): Likewise.
39001 (process_hsa_functions): Likewise.
39002 * ipa-icf.c (sem_item_optimizer::merge_classes): Likewise.
39003 (set_alias_uids): Likewise.
39004 * ipa-inline-transform.c (save_inline_function_body): Likewise.
39005 * ipa-inline.c (recursive_inlining): Likewise.
39006 (inline_to_all_callers_1): Likewise.
39007 (ipa_inline): Likewise.
39008 * ipa-profile.c (ipa_propagate_frequency_1): Likewise.
39009 (ipa_propagate_frequency): Likewise.
39010 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
39011 (remove_described_reference): Likewise.
39012 * ipa-pure-const.c (worse_state): Likewise.
39013 (check_retval_uses): Likewise.
39014 (analyze_function): Likewise.
39015 (propagate_pure_const): Likewise.
39016 (propagate_nothrow): Likewise.
39017 (dump_malloc_lattice): Likewise.
39018 (propagate_malloc): Likewise.
39019 (pass_local_pure_const::execute): Likewise.
39020 * ipa-visibility.c (optimize_weakref): Likewise.
39021 (function_and_variable_visibility): Likewise.
39022 * ipa.c (symbol_table::remove_unreachable_nodes): Likewise.
39023 (ipa_discover_variable_flags): Likewise.
39024 * lto-streamer-out.c (output_function): Likewise.
39025 (output_constructor): Likewise.
39026 * tree-inline.c (copy_bb): Likewise.
39027 * tree-ssa-structalias.c (ipa_pta_execute): Likewise.
39028 * varpool.c (symbol_table::remove_unreferenced_decls): Likewise.
39030 2020-01-08 Richard Biener <rguenther@suse.de>
39032 PR middle-end/93199
39033 * tree-eh.c (sink_clobbers): Update virtual operands for
39034 the first and last stmt only. Add a dry-run capability.
39035 (pass_lower_eh_dispatch::execute): Perform clobber sinking
39036 after CFG manipulations and in RPO order to catch all
39037 secondary opportunities reliably.
39039 2020-01-08 Georg-Johann Lay <avr@gjlay.de>
39042 * doc/invoke.texi (AVR Options) <-nodevicespecs>: Document.
39044 2019-01-08 Richard Biener <rguenther@suse.de>
39046 PR middle-end/93199
39047 * gimple-fold.c (rewrite_to_defined_overflow): Mark stmt modified.
39048 * tree-ssa-loop-im.c (move_computations_worker): Properly adjust
39049 virtual operand, also updating SSA use.
39050 * gimple-loop-interchange.cc (loop_cand::undo_simple_reduction):
39051 Update stmt after resetting virtual operand.
39052 (tree_loop_interchange::move_code_to_inner_loop): Likewise.
39053 * gimple-iterator.c (gsi_remove): When not removing the stmt
39054 permanently do not delink immediate uses or mark the stmt modified.
39056 2020-01-08 Martin Liska <mliska@suse.cz>
39058 * ipa-fnsummary.c (dump_ipa_call_summary): Use symtab_node::dump_name.
39059 (ipa_call_context::estimate_size_and_time): Likewise.
39060 (inline_analyze_function): Likewise.
39062 2020-01-08 Martin Liska <mliska@suse.cz>
39064 * cgraph.c (cgraph_node::dump): Use systematically
39067 2020-01-08 Georg-Johann Lay <avr@gjlay.de>
39069 Add -nodevicespecs option for avr.
39072 * config/avr/avr.opt (-nodevicespecs): New driver option.
39073 * config/avr/driver-avr.c (avr_devicespecs_file): Only issue
39074 "-specs=device-specs/..." if that option is not set.
39075 * doc/invoke.texi (AVR Options) <-nodevicespecs>: Document.
39077 2020-01-08 Georg-Johann Lay <avr@gjlay.de>
39079 Implement 64-bit double functions for avr.
39082 * config.gcc (tm_defines) [target=avr]: Support --with-libf7,
39083 --with-double-comparison.
39084 * doc/install.texi: Document them.
39085 * config/avr/avr-c.c (avr_cpu_cpp_builtins)
39086 <WITH_LIBF7_LIBGCC, WITH_LIBF7_MATH, WITH_LIBF7_MATH_SYMBOLS>
39087 <WITH_DOUBLE_COMPARISON>: New built-in defines.
39088 * doc/invoke.texi (AVR Built-in Macros): Document them.
39089 * config/avr/avr-protos.h (avr_float_lib_compare_returns_bool): New.
39090 * config/avr/avr.c (avr_float_lib_compare_returns_bool): New function.
39091 * config/avr/avr.h (FLOAT_LIB_COMPARE_RETURNS_BOOL): New macro.
39093 2020-01-08 Richard Earnshaw <rearnsha@arm.com>
39096 * config/arm/t-multilib (MULTILIB_MATCHES): Add rules to match
39097 armv7-a{+mp,+sec,+mp+sec} to appropriate armv7 multilib variants
39098 when only building rm-profile multilibs.
39100 2020-01-08 Feng Xue <fxue@os.amperecomputing.com>
39103 * ipa-cp.c (self_recursively_generated_p): Find matched aggregate
39104 lattice for a value to check.
39105 (propagate_vals_across_arith_jfunc): Add an assertion to ensure
39106 finite propagation in self-recursive scc.
39108 2020-01-08 Luo Xiong Hu <luoxhu@linux.ibm.com>
39110 * ipa-inline.c (caller_growth_limits): Restore the AND.
39112 2020-01-07 Andrew Stubbs <ams@codesourcery.com>
39114 * config/gcn/gcn-valu.md (VEC_1REG_INT_ALT): Delete iterator.
39115 (VEC_ALLREG_ALT): New iterator.
39116 (VEC_ALLREG_INT_MODE): New iterator.
39117 (VCMP_MODE): New iterator.
39118 (VCMP_MODE_INT): New iterator.
39119 (vec_cmpu<mode>di): Use VCMP_MODE_INT.
39120 (vec_cmp<u>v64qidi): New define_expand.
39121 (vec_cmp<mode>di_exec): Use VCMP_MODE.
39122 (vec_cmpu<mode>di_exec): New define_expand.
39123 (vec_cmp<u>v64qidi_exec): New define_expand.
39124 (vec_cmp<mode>di_dup): Use VCMP_MODE.
39125 (vec_cmp<mode>di_dup_exec): Use VCMP_MODE.
39126 (vcond<VEC_ALL1REG_MODE:mode><VEC_1REG_ALT:mode>): Rename ...
39127 (vcond<VEC_ALLREG_MODE:mode><VEC_ALLREG_ALT:mode>): ... to this.
39128 (vcond<VEC_ALL1REG_MODE:mode><VEC_1REG_ALT:mode>_exec): Rename ...
39129 (vcond<VEC_ALLREG_MODE:mode><VEC_ALLREG_ALT:mode>_exec): ... to this.
39130 (vcondu<VEC_ALL1REG_MODE:mode><VEC_1REG_INT_ALT:mode>): Rename ...
39131 (vcondu<VEC_ALLREG_MODE:mode><VEC_ALLREG_INT_MODE:mode>): ... to this.
39132 (vcondu<VEC_ALL1REG_MODE:mode><VEC_1REG_INT_ALT:mode>_exec): Rename ...
39133 (vcondu<VEC_ALLREG_MODE:mode><VEC_ALLREG_INT_MODE:mode>_exec): ... to
39135 * config/gcn/gcn.c (print_operand): Fix 8 and 16 bit suffixes.
39136 * config/gcn/gcn.md (expander): Add sign_extend and zero_extend.
39138 2020-01-07 Andrew Stubbs <ams@codesourcery.com>
39140 * config/gcn/constraints.md (DA): Update description and match.
39142 (Db): New constraint.
39143 * config/gcn/gcn-protos.h (gcn_inline_constant64_p): Add second
39145 * config/gcn/gcn.c (gcn_inline_constant64_p): Add 'mixed' parameter.
39146 Implement 'Db' mixed immediate type.
39147 * config/gcn/gcn-valu.md (addcv64si3<exec_vcc>): Rework constraints.
39148 (addcv64si3_dup<exec_vcc>): Delete.
39149 (subcv64si3<exec_vcc>): Rework constraints.
39150 (addv64di3): Rework constraints.
39151 (addv64di3_exec): Rework constraints.
39152 (subv64di3): Rework constraints.
39153 (addv64di3_dup): Delete.
39154 (addv64di3_dup_exec): Delete.
39155 (addv64di3_zext): Rework constraints.
39156 (addv64di3_zext_exec): Rework constraints.
39157 (addv64di3_zext_dup): Rework constraints.
39158 (addv64di3_zext_dup_exec): Rework constraints.
39159 (addv64di3_zext_dup2): Rework constraints.
39160 (addv64di3_zext_dup2_exec): Rework constraints.
39161 (addv64di3_sext_dup2): Rework constraints.
39162 (addv64di3_sext_dup2_exec): Rework constraints.
39164 2020-01-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
39166 * doc/sourcebuild.texi (arm_little_endian, arm_nothumb): Documented
39167 existing target checks.
39169 2020-01-07 Richard Biener <rguenther@suse.de>
39171 * doc/install.texi: Bump minimal supported MPC version.
39173 2020-01-07 Richard Sandiford <richard.sandiford@arm.com>
39175 * langhooks-def.h (lhd_simulate_enum_decl): Declare.
39176 (LANG_HOOKS_SIMULATE_ENUM_DECL): Use it.
39177 * langhooks.c: Include stor-layout.h.
39178 (lhd_simulate_enum_decl): New function.
39179 * config/aarch64/aarch64-sve-builtins.cc (init_builtins): Call
39180 handle_arm_sve_h for the LTO frontend.
39181 (register_vector_type): Cope with null returns from pushdecl.
39183 2020-01-07 Richard Sandiford <richard.sandiford@arm.com>
39185 * config/aarch64/aarch64-protos.h (aarch64_sve::svbool_type_p)
39186 (aarch64_sve::nvectors_if_data_type): Replace with...
39187 (aarch64_sve::builtin_type_p): ...this.
39188 * config/aarch64/aarch64-sve-builtins.cc: Include attribs.h.
39189 (find_vector_type): Delete.
39190 (add_sve_type_attribute): New function.
39191 (lookup_sve_type_attribute): Likewise.
39192 (register_builtin_types): Add an "SVE type" attribute to each type.
39193 (register_tuple_type): Likewise.
39194 (svbool_type_p, nvectors_if_data_type): Delete.
39195 (mangle_builtin_type): Use lookup_sve_type_attribute.
39196 (builtin_type_p): Likewise. Add an overload that returns the
39197 number of constituent vector and predicate registers.
39198 * config/aarch64/aarch64.c (aarch64_sve_argument_p): Delete.
39199 (aarch64_returns_value_in_sve_regs_p): Use aarch64_sve::builtin_type_p
39200 instead of aarch64_sve_argument_p.
39201 (aarch64_takes_arguments_in_sve_regs_p): Likewise.
39202 (aarch64_pass_by_reference): Likewise.
39203 (aarch64_function_value_1): Likewise.
39204 (aarch64_return_in_memory): Likewise.
39205 (aarch64_layout_arg): Likewise.
39207 2020-01-07 Jakub Jelinek <jakub@redhat.com>
39209 PR tree-optimization/93156
39210 * tree-ssa-ccp.c (bit_value_binop): For x * x note that the second
39211 least significant bit is always clear.
39213 PR tree-optimization/93118
39214 * match.pd ((x >> c) << c -> x & (-1<<c)): Add nop_convert?. Add new
39215 simplifier with two intermediate conversions.
39217 2020-01-07 Martin Liska <mliska@suse.cz>
39219 * params.opt: Add Optimization for various parameters.
39221 2020-01-07 Martin Liska <mliska@suse.cz>
39224 * doc/extend.texi: Explain cloning for target_clone
39227 2020-01-07 Martin Liska <mliska@suse.cz>
39229 PR tree-optimization/92860
39230 * common.opt: Make in Optimization option
39231 as it is affected by -O0, which is an Optimization
39233 * tree-inline.c (tree_inlinable_function_p):
39234 Use opt_for_fn for warn_inline.
39235 (expand_call_inline): Likewise.
39237 2020-01-07 Martin Liska <mliska@suse.cz>
39239 PR tree-optimization/92860
39240 * common.opt: Make flag_ree as optimization
39243 2020-01-07 Martin Liska <mliska@suse.cz>
39245 PR optimization/92860
39246 * params.opt: Mark param_min_crossjump_insns with Optimization
39249 2020-01-07 Luo Xiong Hu <luoxhu@linux.ibm.com>
39251 * ipa-inline-analysis.c (estimate_growth): Fix typo.
39252 * ipa-inline.c (caller_growth_limits): Use OR instead of AND.
39254 2020-01-06 Michael Meissner <meissner@linux.ibm.com>
39256 * config/rs6000/rs6000.c (hard_reg_and_mode_to_addr_mask): New
39257 helper function to return the valid addressing formats for a given
39258 hard register and mode.
39259 (rs6000_adjust_vec_address): Call hard_reg_and_mode_to_addr_mask.
39261 * config/rs6000/constraints.md (Q constraint): Update
39263 * doc/md.texi (RS/6000 constraints): Update 'Q' cosntraint
39266 * config/rs6000/vsx.md (vsx_extract_<mode>_var, VSX_D iterator):
39267 Use 'Q' for doing vector extract from memory.
39268 (vsx_extract_v4sf_var): Use 'Q' for doing vector extract from
39270 (vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): Use 'Q' for
39271 doing vector extract from memory.
39272 (vsx_extract_<mode>_<VS_scalar>mode_var): Use 'Q' for doing vector
39273 extract from memory.
39275 * config/rs6000/rs6000.c (rs6000_adjust_vec_address): Add support
39276 for the offset being 34-bits when -mcpu=future is used.
39278 2020-01-06 John David Anglin <danglin@gcc.gnu.org>
39280 * config/pa/pa.md: Revert change to use ordered_comparison_operator
39281 instead of cmpib_comparison_operator in cmpib patterns.
39282 * config/pa/predicates.md (cmpib_comparison_operator): Revert removal
39283 of cmpib_comparison_operator. Revise comment.
39285 2020-01-06 Richard Sandiford <richard.sandiford@arm.com>
39287 * tree-vect-slp.c (vect_build_slp_tree_1): Require all shifts
39288 in an IFN_DIV_POW2 node to be equal.
39290 2020-01-06 Richard Sandiford <richard.sandiford@arm.com>
39292 * tree-vect-stmts.c (vect_check_load_store_mask): Rename to...
39293 (vect_check_scalar_mask): ...this.
39294 (vectorizable_store, vectorizable_load): Update call accordingly.
39295 (vectorizable_call): Use vect_check_scalar_mask to check the mask
39296 argument in calls to conditional internal functions.
39298 2020-01-06 Andrew Stubbs <ams@codesourcery.com>
39300 * config/gcn/gcn-valu.md (subv64di3): Use separate alternatives for
39301 '0' matching inputs.
39302 (subv64di3_exec): Likewise.
39304 2020-01-06 Bryan Stenson <bryan@siliconvortex.com>
39306 * config/mips/mips.c (vr4130_align_insns): Fix typo.
39307 * doc/md.texi (movstr): Likewise.
39309 2020-01-06 Andrew Stubbs <ams@codesourcery.com>
39311 * config/gcn/gcn-valu.md (vec_extract<mode><scalar_mode>): Add early
39314 2020-01-06 Richard Sandiford <richard.sandiford@arm.com>
39316 * config/aarch64/t-aarch64 ($(srcdir)/config/aarch64/aarch64-tune.md):
39318 (s-aarch64-tune-md): ...this new stamp file. Pipe the new contents
39319 to a temporary file and use move-if-change to update the real
39320 file where necessary.
39322 2020-01-06 Richard Sandiford <richard.sandiford@arm.com>
39324 * config/aarch64/aarch64-sve.md (@aarch64_sel_dup<mode>): Use Upl
39325 rather than Upa for CPY /M.
39327 2020-01-06 Andrew Stubbs <ams@codesourcery.com>
39329 * config/gcn/gcn.c (gcn_inline_constant_p): Allow 64 as an inline
39332 2020-01-06 Martin Liska <mliska@suse.cz>
39334 PR tree-optimization/92860
39335 * params.opt: Mark param_max_combine_insns with Optimization
39338 2020-01-05 Jakub Jelinek <jakub@redhat.com>
39341 * config/i386/i386.md (SWIDWI): New mode iterator.
39342 (DWI, dwi): Add TImode variants.
39343 (addv<mode>4): Use SWIDWI iterator instead of SWI. Use
39344 <general_hilo_operand> instead of <general_operand>. Use
39345 CONST_SCALAR_INT_P instead of CONST_INT_P.
39346 (*addv<mode>4_1): Rename to ...
39347 (addv<mode>4_1): ... this.
39348 (QWI): New mode attribute.
39349 (*addv<dwi>4_doubleword, *addv<dwi>4_doubleword_1): New
39350 define_insn_and_split patterns.
39351 (*addv<mode>4_overflow_1, *addv<mode>4_overflow_2): New define_insn
39353 (uaddv<mode>4): Use SWIDWI iterator instead of SWI. Use
39354 <general_hilo_operand> instead of <general_operand>.
39355 (*addcarry<mode>_1): New define_insn.
39356 (*add<dwi>3_doubleword_cc_overflow_1): New define_insn_and_split.
39358 2020-01-03 Konstantin Kharlamov <Hi-Angel@yandex.ru>
39360 * gdbinit.in (pr, prl, pt, pct, pgg, pgq, pgs, pge, pmz, pdd, pbs, pbm):
39361 Use "call" instead of "set".
39363 2020-01-03 Martin Jambor <mjambor@suse.cz>
39366 * ipa-cp.c (print_all_lattices): Skip functions without info.
39368 2020-01-03 Jakub Jelinek <jakub@redhat.com>
39371 * config/i386/i386-options.c (ix86_simd_clone_adjust): If
39372 TARGET_PREFER_AVX128, use prefer-vector-width=256 for 'c' and 'd'
39373 simd clones. If TARGET_PREFER_AVX256, use prefer-vector-width=512
39374 for 'e' simd clones.
39377 * config/i386/i386.opt (x_prefer_vector_width_type): Remove TargetSave
39379 (mprefer-vector-width=): Add Save.
39380 * config/i386/i386-options.c (ix86_target_string): Add PVW argument, print
39381 -mprefer-vector-width= if non-zero. Fix up -mfpmath= comment.
39382 (ix86_debug_options, ix86_function_specific_print): Adjust
39383 ix86_target_string callers.
39384 (ix86_valid_target_attribute_inner_p): Handle prefer-vector-width=.
39385 (ix86_valid_target_attribute_tree): Likewise.
39386 * config/i386/i386-options.h (ix86_target_string): Add PVW argument.
39387 * config/i386/i386-expand.c (ix86_expand_builtin): Adjust
39388 ix86_target_string caller.
39391 * config/i386/i386.md (abs<mode>2): Use expand_simple_binop instead of
39392 emitting ASHIFTRT, XOR and MINUS by hand. Use gen_int_mode with QImode
39393 instead of gen_int_shift_amount + convert_modes.
39395 PR rtl-optimization/93088
39396 * loop-iv.c (find_single_def_src): Punt after looking through
39397 128 reg copies for regs with single definitions. Move definitions
39400 2020-01-02 Dennis Zhang <dennis.zhang@arm.com>
39402 * config/arm/arm-c.c (arm_cpu_builtins): Define
39403 __ARM_FEATURE_MATMUL_INT8, __ARM_FEATURE_BF16_VECTOR_ARITHMETIC,
39404 __ARM_FEATURE_BF16_SCALAR_ARITHMETIC, and
39405 __ARM_BF16_FORMAT_ALTERNATIVE when enabled.
39406 * config/arm/arm-cpus.in (armv8_6, i8mm, bf16): New features.
39407 * config/arm/arm-tables.opt: Regenerated.
39408 * config/arm/arm.c (arm_option_reconfigure_globals): Initialize
39409 arm_arch_i8mm and arm_arch_bf16 when enabled.
39410 * config/arm/arm.h (TARGET_I8MM): New macro.
39411 (TARGET_BF16_FP, TARGET_BF16_SIMD): Likewise.
39412 * config/arm/t-aprofile: Add matching rules for -march=armv8.6-a.
39413 * config/arm/t-arm-elf (all_v8_archs): Add armv8.6-a.
39414 * config/arm/t-multilib: Add matching rules for -march=armv8.6-a.
39415 (v8_6_a_simd_variants): New.
39416 (v8_*_a_simd_variants): Add i8mm and bf16.
39417 * doc/invoke.texi (armv8.6-a, i8mm, bf16): Document new options.
39419 2020-01-02 Jakub Jelinek <jakub@redhat.com>
39422 * predict.c (compute_function_frequency): Don't call
39423 warn_function_cold on functions that already have cold attribute.
39425 2020-01-01 John David Anglin <danglin@gcc.gnu.org>
39428 * config/pa/pa.c (pa_elf_select_rtx_section): New. Put references to
39429 COMDAT group function labels in .data.rel.ro.local section.
39430 * config/pa/pa32-linux.h (TARGET_ASM_SELECT_RTX_SECTION): Define.
39433 * config/pa/pa.md (scc): Use ordered_comparison_operator instead of
39434 comparison_operator in B and S integer comparisons. Likewise, use
39435 ordered_comparison_operator instead of cmpib_comparison_operator in
39437 * config/pa/predicates.md (cmpib_comparison_operator): Remove.
39439 2020-01-01 Jakub Jelinek <jakub@redhat.com>
39441 Update copyright years.
39443 * gcc.c (process_command): Update copyright notice dates.
39444 * gcov-dump.c (print_version): Ditto.
39445 * gcov.c (print_version): Ditto.
39446 * gcov-tool.c (print_version): Ditto.
39447 * gengtype.c (create_file): Ditto.
39448 * doc/cpp.texi: Bump @copying's copyright year.
39449 * doc/cppinternals.texi: Ditto.
39450 * doc/gcc.texi: Ditto.
39451 * doc/gccint.texi: Ditto.
39452 * doc/gcov.texi: Ditto.
39453 * doc/install.texi: Ditto.
39454 * doc/invoke.texi: Ditto.
39456 2020-01-01 Jan Hubicka <hubicka@ucw.cz>
39458 * ipa.c (walk_polymorphic_call_targets): Fix updating of overall
39461 2020-01-01 Jakub Jelinek <jakub@redhat.com>
39463 PR tree-optimization/93098
39464 * match.pd (popcount): For shift amounts, use integer_onep
39465 or wi::to_widest () == cst instead of tree_to_uhwi () == cst
39466 tests. Make sure that precision is power of two larger than or equal
39467 to 16. Ensure shift is never negative. Use HOST_WIDE_INT_UC macro
39468 instead of ULL suffixed constants. Formatting fixes.
39470 Copyright (C) 2020 Free Software Foundation, Inc.
39472 Copying and distribution of this file, with or without modification,
39473 are permitted in any medium without royalty provided the copyright
39474 notice and this notice are preserved.