Daily bump.
[gcc.git] / gcc / ChangeLog
1 2020-12-17 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
2
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.
7
8 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
9
10 PR rtl-optimization/98347
11 * rtl-ssa/access-utils.h (full_register): Use regno_reg_rtx
12 instead of reg_raw_mode.
13
14 2020-12-17 H.J. Lu <hjl.tools@gmail.com>
15
16 * targhooks.h (default_estimated_poly_value): Updated.
17
18 2020-12-17 Nathan Sidwell <nathan@acm.org>
19
20 * doc/invoke.texi (C++ Modules): Document lack of std
21 library header units.
22
23 2020-12-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24
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
28 above.
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
36 it.
37
38 2020-12-17 Andrea Corallo <andrea.corallo@arm.com>
39
40 * config/arm/arm_neon.h (vcreate_p64): Remove call to
41 '__builtin_neon_vcreatedi'.
42
43 2020-12-17 Andrew MacLeod <amacleod@redhat.com>
44
45 PR tree-optimization/97750
46 * range-op.cc (operator_cast::op1_range): Handle pointers better.
47
48 2020-12-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
49
50 * rtl-ssa.h: Include memmodel.h before tm_p.h.
51
52 2020-12-17 Jakub Jelinek <jakub@redhat.com>
53
54 PR rtl-optimization/98289
55 * shrink-wrap.c (can_get_prologue): Don't punt on EDGE_CROSSING
56 incoming edges.
57
58 2020-12-17 Marius Hillenbrand <mhillen@linux.ibm.com>
59
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.
64
65 2020-12-17 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
66
67 * config/xtensa/xtensa.md (*ashlsi3_1, *ashlsi3_3x, *ashrsi3_3x)
68 (*lshrsi3_3x): New patterns.
69
70 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
71
72 * fwprop.c: Rewrite to use the RTL SSA framework.
73
74 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
75
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.
100
101 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
102
103 * doc/rtl.texi (RTL SSA): New node.
104
105 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
106
107 * rtl.h (simple_regno_set): Declare.
108 * rtlanal.c (simple_regno_set): New function.
109
110 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
111
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.
125
126 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
127
128 * recog.h (insn_change_watermark): New class.
129
130 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
131
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.
139
140 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
141
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.
148
149 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
150
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.
157
158 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
159
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
167 of simplify_context.
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.
181
182 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
183
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.
188
189 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
190
191 * print-rtl.h (print_insn_with_notes): Declare.
192 * print-rtl.c (print_insn_with_notes): Make non-static
193
194 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
195
196 * cfgrtl.h (update_cfg_for_uncondjump): Declare.
197 * combine.c (update_cfg_for_uncondjump): Move to...
198 * cfgrtl.c: ...here.
199
200 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
201
202 * vec.h (array_slice): New class.
203
204 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
205
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.
213
214 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
215
216 * mux-utils.h: New file.
217
218 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
219
220 * obstack-utils.h: New file.
221
222 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
223
224 * iterator-utils.h (derived_iterator): New class.
225 (const_derived_container, wrapper_iterator): Likewise.
226 (list_iterator): Likewise.
227
228 2020-12-17 Richard Sandiford <richard.sandiford@arm.com>
229
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
233 registers.
234
235 2020-12-16 Piotr Kubaj <pkubaj@FreeBSD.org>
236
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.
243
244 2020-12-16 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
245
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.
250
251 2020-12-16 Tamar Christina <tamar.christina@arm.com>
252
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.
268 (VCMUL): New.
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>):
275 New.
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.
280
281 2020-12-16 Tamar Christina <tamar.christina@arm.com>
282
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):
293 Removed.
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,
298 VCADDQ_ROT90_U.
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.
308
309 2020-12-16 Tamar Christina <tamar.christina@arm.com>
310
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.
315
316 2020-12-16 Pat Haugen <pthaugen@linux.ibm.com>
317
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.
322
323 2020-12-16 Jakub Jelinek <jakub@redhat.com>
324
325 * varasm.c (default_elf_asm_named_section): Always force
326 section flags even for sections with SECTION_LINK_ORDER flag.
327
328 2020-12-16 H.J. Lu <hjl.tools@gmail.com>
329
330 PR target/98146
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.
337
338 2020-12-16 H.J. Lu <hjl.tools@gmail.com>
339
340 PR target/98146
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.
344
345 2020-12-16 H.J. Lu <hjl.tools@gmail.com>
346
347 PR target/98146
348 * output.h (switch_to_section): Add a tree argument, default to
349 nullptr.
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.
356
357 2020-12-16 Jakub Jelinek <jakub@redhat.com>
358
359 PR tree-optimization/96239
360 * gimple-ssa-store-merging.c (find_bswap_or_nop): Handle a vector
361 CONSTRUCTOR.
362 (bswap_replace): Likewise.
363
364 2020-12-16 Martin Liska <mliska@suse.cz>
365
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.
428
429 2020-12-16 Martin Liska <mliska@suse.cz>
430
431 * doc/options.texi: Remove Report keyword.
432 * opt-functions.awk: Print error when Report keyword
433 is used.
434 * optc-gen.awk: Do not handle Report keyword.
435 * opts.h (struct cl_option): Remove cl_report bitfield flag.
436
437 2020-12-16 Martin Liska <mliska@suse.cz>
438
439 PR sanitizer/97868
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.
444
445 2020-12-16 Martin Liska <mliska@suse.cz>
446
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
451 arguments.
452
453 2020-12-16 Eric Botcazou <ebotcazou@adacore.com>
454
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.
459
460 2020-12-16 Kewen Lin <linkw@linux.ibm.com>
461
462 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
463 paradoxical subreg instead of zero_extend for QI/HI promotion.
464
465 2020-12-16 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
466
467 PR target/66791
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
471 vcgt and vcgtu.
472
473 2020-12-16 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
474
475 PR target/66791
476 * config/arm/arm_neon.h: Replace calls to __builtin_vneg* by - operator
477 in vneg intrinsics.
478 * config/arm/arm_neon_builtins.def: Remove entry for vneg.
479
480 2020-12-16 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
481
482 PR target/66791
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.
486
487 2020-12-15 Jakub Jelinek <jakub@redhat.com>
488
489 PR tree-optimization/96094
490 * match.pd (X / bool_range_Y -> X): New simplification.
491
492 2020-12-15 Nathan Sidwell <nathan@acm.org>
493
494 * doc/cppopts.texi: Document new cpp opt.
495 * doc/invoke.texi: Add C++20 module option & documentation.
496
497 2020-12-15 Nathan Sidwell <nathan@acm.org>
498
499 * Makefile.in (CODYINC, CODYLIB, CODYLIB_H): New. Use them.
500
501 2020-12-15 Jakub Jelinek <jakub@redhat.com>
502
503 PR target/98274
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.
508
509 2020-12-15 Martin Liska <mliska@suse.cz>
510
511 PR lto/98275
512 * lto-wrapper.c: Do not use -j0 when we are unable to detect
513 number of cores.
514
515 2020-12-15 Jakub Jelinek <jakub@redhat.com>
516
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
522 does for other ABIs.
523
524 2020-12-15 Martin Liska <mliska@suse.cz>
525
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.
529
530 2020-12-15 Gerald Pfeifer <gerald@pfeifer.com>
531
532 * doc/invoke.texi (Instrumentation Options): Update link to
533 KernelAddressSanitizer.
534
535 2020-12-15 Max Filippov <jcmvbkbc@gmail.com>
536
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.
541
542 2020-12-14 Piotr Kubaj <pkubaj@FreeBSD.org>
543 Gerald Pfeifer <gerald@pfeifer.com>
544
545 * config/rs6000/freebsd64.h (PROCESSOR_DEFAULT): Update
546 to PROCESSOR_PPC7450.
547 (PROCESSOR_DEFAULT64): Update to PROCESSOR_POWER8.
548
549 2020-12-14 Martin Sebor <msebor@redhat.com>
550
551 PR middle-end/98166
552 PR c++/57111
553 PR middle-end/98160
554 * builtins.c (check_access): Call tree_inlined_location
555 fndecl_alloc_p): Handle BUILT_IN_ALIGNED_ALLOC and
556 BUILT_IN_GOMP_ALLOC.
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
561 delete.
562 (maybe_emit_free_warning): Avoid assuming expression is a decl.
563 Simplify.
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.
571
572 2020-12-14 Sebastian Pop <spop@amazon.com>
573
574 * config.gcc (aarch64*-*-*): Remove --with-{cpu,arch,tune}-32 flags.
575
576 2020-12-14 Wilco Dijkstra <wdijkstr@arm.com>
577
578 * config.gcc (aarch64*-*-*): Add --with-tune. Support --with-cpu=native.
579 * config/aarch64/aarch64.h (OPTION_DEFAULT_SPECS): Add --with-tune.
580
581 2020-12-14 Martin Liska <mliska@suse.cz>
582
583 * gcov.c (output_json_intermediate_file): Update comments.
584
585 2020-12-14 Tamar Christina <tamar.christina@arm.com>
586
587 PR middle-end/98264
588 * tree-vect-slp-patterns.c (linear_loads_p): Exclude TOP permute.
589
590 2020-12-14 Christophe Lyon <christophe.lyon@linaro.org>
591
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.
602
603 2020-12-14 Christophe Lyon <christophe.lyon@linaro.org>
604
605 * config/arm/iterators.md (VDQNOTM2): New mode iterator.
606 (supf): Remove VMVNQ_S and VMVNQ_U.
607 (VMVNQ): Remove.
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.
615
616 2020-12-14 Christophe Lyon <christophe.lyon@linaro.org>
617
618 * config/arm/iterators.md (supf): Remove VBICQ_S and VBICQ_U.
619 (VBICQ): Remove.
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.
625
626 2020-12-14 Christophe Lyon <christophe.lyon@linaro.org>
627
628 * config/arm/iterators.md (supf): Remove VEORQ_S and VEORQ_U.
629 (VEORQ): Remove.
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.
637
638 2020-12-14 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
639
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.
643
644 2020-12-14 Nikhil Benesch <nikhil.benesch@gmail.com>
645
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.
649
650 2020-12-13 Maciej W. Rozycki <macro@linux-mips.org>
651
652 * config/vax/vax.c (vax_output_int_move): Unify push operation
653 selection.
654
655 2020-12-13 Maciej W. Rozycki <macro@linux-mips.org>
656
657 * config/vax/vax.c (vax_output_int_move): Check the correct
658 operand for constant 0 push operation.
659
660 2020-12-13 Maciej W. Rozycki <macro@linux-mips.org>
661
662 * config/vax/vax.c (vax_expand_addsub_di_operands): Handle equal
663 input operands with subtraction.
664
665 2020-12-13 Maciej W. Rozycki <macro@linux-mips.org>
666
667 * config/vax/vax.c (vax_expand_addsub_di_operands): Handle the
668 addition or subtraction of 0.
669
670 2020-12-13 Maciej W. Rozycki <macro@linux-mips.org>
671
672 * config/vax/vax.c (vax_expand_addsub_di_operands): Remove
673 unused register allocation.
674
675 2020-12-13 Maciej W. Rozycki <macro@linux-mips.org>
676
677 * config/vax/vax.md (casesi): Use `gen_int_mode' rather than
678 `GEN_INT' for the immediate used for lower bound adjustment.
679
680 2020-12-13 Jakub Jelinek <jakub@redhat.com>
681
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.
689
690 2020-12-13 Tamar Christina <tamar.christina@arm.com>
691
692 Revert:
693 2020-12-13 Tamar Christina <tamar.christina@arm.com>
694
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):
715 New.
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>):
733 New.
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.
741
742 2020-12-13 Jakub Jelinek <jakub@redhat.com>
743
744 PR target/92469
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.
748
749 2020-12-13 Tamar Christina <tamar.christina@arm.com>
750
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):
771 New.
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>):
789 New.
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.
797
798 2020-12-13 Tamar Christina <tamar.christina@arm.com>
799
800 * config/arm/arm.c (arm_preferred_simd_mode): Add E_HFmode.
801
802 2020-12-13 Tamar Christina <tamar.christina@arm.com>
803
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.
811 * tree-vect-slp.c:
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
818
819 2020-12-13 Tamar Christina <tamar.christina@arm.com>
820
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
823 set smts if valid.
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.
829
830 2020-12-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
831
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.
835
836 2020-12-13 Richard Sandiford <richard.sandiford@arm.com>
837
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.
842
843 2020-12-13 Richard Sandiford <richard.sandiford@arm.com>
844
845 * coretypes.h (iterator_range): Move to...
846 * iterator-utils.h: ...this new file.
847
848 2020-12-13 Richard Sandiford <richard.sandiford@arm.com>
849
850 * rtlanal.c (noop_move_p): Don't check for REG_EQUAL notes.
851
852 2020-12-13 Richard Sandiford <richard.sandiford@arm.com>
853
854 * vec.h (vnull::operator vec<T, A, L>): Make const.
855
856 2020-12-12 Jakub Jelinek <jakub@redhat.com>
857
858 PR tree-optimization/96685
859 * match.pd (~(X - Y) -> ~X + Y): New optimization.
860 (~X + Y -> (Y - X) - 1): Likewise.
861
862 2020-12-12 Jakub Jelinek <jakub@redhat.com>
863
864 PR tree-optimization/96272
865 * tree-ssa-math-opts.c (uaddsub_overflow_check_p): Add OTHER argument.
866 Handle BIT_NOT_EXPR.
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.
871
872 2020-12-12 Jakub Jelinek <jakub@redhat.com>
873
874 PR middle-end/98183
875 * omp-low.c (lower_omp_target): Don't add OMP_RETURN for
876 data regions.
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.
881
882 2020-12-11 Nathan Sidwell <nathan@acm.org>
883
884 * gcc.c (cpp_unique_options): Add Mmodules, Mno-modules.
885 * tree-core.h (enum tree_index): Add TI_MODULE_HWM.
886
887 2020-12-11 Jim Wilson <jimw@sifive.com>
888
889 * varasm.c (get_section): Add DECL_P check before DECL_PRESERVE_P.
890
891 2020-12-11 Christophe Lyon <christophe.lyon@linaro.org>
892
893 * config/arm/iterators.md (VDQ): Remove TARGET_HAVE_MVE
894 conditions.
895 * config/arm/vec-common.md (and<mode>3): Use
896 ARM_HAVE_<MODE>_ARITH.
897 (ior<mode>3): Likewise.
898
899 2020-12-11 Claudiu Zissulescu <claziss@synopsys.com>
900
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.
905
906 2020-12-11 Claudiu Zissulescu <claziss@synopsys.com>
907
908 * config/arc/arc.c (arc_reorg): Avoid limm in BRcc.
909
910 2020-12-11 Claudiu Zissulescu <claziss@synopsys.com>
911
912 * config/arc/arc-protos.h (arc_scheduling_not_expected): Remove
913 it.
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.
921
922 2020-12-11 Christophe Lyon <christophe.lyon@linaro.org>
923
924 * config/arm/iterators.md (supf): Remove VORRQ_S and VORRQ_U.
925 (VORRQ): Remove.
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
932 for MVE.
933 * config/arm/unspecs.md (VORRQ_S, VORRQ_U, VORRQ_F): Remove.
934 * config/arm/vec-common.md (ior<mode>3): New expander.
935
936 2020-12-11 Claudiu Zissulescu <claziss@synopsys.com>
937
938 * config/arc/arc.md (mpyd<su_optab>_arcv2hs): New template
939 pattern.
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.
947
948 2020-12-11 H.J. Lu <hjl.tools@gmail.com>
949
950 PR target/98219
951 * config/i386/uintrintrin.h (__uintr_frame): Remove uirrv.
952
953 2020-12-11 Andrea Corallo <andrea.corallo@arm.com>
954
955 * doc/sourcebuild.texi (arm_softfloat): Improve documentation.
956
957 2020-12-11 Jakub Jelinek <jakub@redhat.com>
958
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.
963
964 2020-12-11 Richard Biener <rguenther@suse.de>
965
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.
976
977 2020-12-11 Jakub Jelinek <jakub@redhat.com>
978
979 PR middle-end/98190
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.
983
984 2020-12-11 Andrea Corallo <andrea.corallo@arm.com>
985
986 PR rtl-optimization/97092
987 * ira-color.c (update_costs_from_allocno): Do not carry over mode
988 between subsequent iterations.
989
990 2020-12-11 Richard Biener <rguenther@suse.de>
991
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.
995
996 2020-12-11 Hongyu <hongyu.wang@intel.com>
997
998 * common/config/i386/cpuinfo.h (get_available_features):
999 Move check for HRESET/AVX_VNNI/UINTR out of avx512_usable.
1000
1001 2020-12-10 Jakub Jelinek <jakub@redhat.com>
1002
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.
1006
1007 2020-12-10 Andrew MacLeod <amacleod@redhat.com>
1008
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.
1021
1022 2020-12-10 Eric Botcazou <ebotcazou@adacore.com>
1023
1024 * dwarf2out.c (loc_list_from_tree_1) <PLACEHOLDER_EXPR>: Deal with
1025 a nested context type
1026
1027 2020-12-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
1028
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.
1037
1038 2020-12-10 Richard Biener <rguenther@suse.de>
1039
1040 * tree-vect-stmts.c (vectorizable_assignment): Remove special
1041 allowance of VECTOR_BOOLEAN_TYPE_P conversions.
1042
1043 2020-12-10 Christophe Lyon <christophe.lyon@linaro.org>
1044
1045 * config/arm/iterators.md (supf): Remove VANDQ_S and VANDQ_U.
1046 (VANQ): Remove.
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):
1054 Enable for MVE.
1055 * config/arm/unspecs.md (VANDQ_S, VANDQ_U, VANDQ_F): Remove.
1056 * config/arm/vec-common.md (and<mode>3): New expander.
1057
1058 2020-12-10 Richard Sandiford <richard.sandiford@arm.com>
1059
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.
1069
1070 2020-12-10 Joel Hutton <joel.hutton@arm.com>
1071
1072 PR tree-optimization/97929
1073 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Add
1074 WIDEN_PLUS/WIDEN_MINUS case.
1075
1076 2020-12-10 Joel Hutton <joel.hutton@arm.com>
1077
1078 * tree-pretty-print.c (dump_generic_node): Add case for
1079 VEC_WIDEN_(PLUS/MINUS)_(HI/LO)_EXPR and WIDEN_(PLUS/MINUS)_EXPR.
1080
1081 2020-12-10 Richard Biener <rguenther@suse.de>
1082
1083 PR tree-optimization/98211
1084 * tree-vect-stmts.c (vectorizable_assignment): Disallow
1085 invalid conversions to bool vector types.
1086
1087 2020-12-10 Alexandre Oliva <oliva@adacore.com>
1088
1089 * tree.c (build_common_builtin_nodes): Drop __builtin_ from
1090 __clear_cache libname.
1091
1092 2020-12-10 Jakub Jelinek <jakub@redhat.com>
1093
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.
1098
1099 2020-12-10 Jakub Jelinek <jakub@redhat.com>
1100
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.
1104
1105 2020-12-10 Jakub Jelinek <jakub@redhat.com>
1106
1107 PR middle-end/98205
1108 * omp-expand.c (expand_omp_for_generic): Fix up broken_loop handling.
1109
1110 2020-12-10 Richard Biener <rguenther@suse.de>
1111
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
1115 case.
1116
1117 2020-12-10 Simon Cook <simon.cook@embecosm.com>
1118
1119 * config/riscv/multilib-generator (arch_canonicalize): Invoke
1120 python interpreter when calling arch-canonicalize script.
1121
1122 2020-12-10 Nikhil Benesch <nikhil.benesch@gmail.com>
1123
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.
1130
1131 2020-12-09 Jakub Jelinek <jakub@redhat.com>
1132
1133 PR bootstrap/98188
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.
1137
1138 2020-12-09 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
1139
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.
1148
1149 2020-12-09 Uroš Bizjak <ubizjak@gmail.com>
1150
1151 * config/i386/i386.h (REG_ALLOC_ORDER): Remove
1152
1153 2020-12-09 Richard Biener <rguenther@suse.de>
1154
1155 PR tree-optimization/98213
1156 * tree-ssa-loop-im.c (sm_seq_valid_bb): Cache successfully
1157 processed PHIs.
1158 (hoist_memory_references): Adjust.
1159
1160 2020-12-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1161
1162 * config/aarch64/aarch64-protos.h (cpu_vector_cost): Move simd
1163 fields to...
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):
1168 Define.
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
1188 vector cost fields.
1189
1190 2020-12-09 Jakub Jelinek <jakub@redhat.com>
1191
1192 PR tree-optimization/98199
1193 * fold-const.c (native_encode_initializer): Fix handling bit-fields
1194 when off > 0.
1195
1196 2020-12-09 Jakub Jelinek <jakub@redhat.com>
1197
1198 PR c++/98193
1199 * fold-const.c (native_encode_initializer): Set pos to field's
1200 byte position if iterating over a field with missing initializer.
1201
1202 2020-12-08 Martin Liska <mliska@suse.cz>
1203
1204 PR tree-optimization/98182
1205 * gimple-if-to-switch.cc (pass_if_to_switch::execute): Request
1206 chain linkage through false edges only.
1207
1208 2020-12-08 Nathan Sidwell <nathan@acm.org>
1209
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.
1215
1216 2020-12-08 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1217
1218 PR target/66791
1219 * config/arm/arm_neon.h: Replace calls to __builtin_vmvn* by ~
1220 in vmvn intrinsics.
1221 * config/arm/arm_neon_builtins.def: Remove entry for vmvn.
1222
1223 2020-12-08 Jakub Jelinek <jakub@redhat.com>
1224
1225 PR target/94440
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.
1243
1244 2020-12-08 Richard Biener <rguenther@suse.de>
1245
1246 PR tree-optimization/98192
1247 * tree-vect-slp.c (vect_build_slp_instance): Get scalar_stmts
1248 by reference.
1249
1250 2020-12-08 Richard Biener <rguenther@suse.de>
1251
1252 PR tree-optimization/98191
1253 * tree-vect-slp.c (vect_slp_check_for_constructors): Do not
1254 follow a non-SSA def chain.
1255
1256 2020-12-08 Richard Biener <rguenther@suse.de>
1257
1258 PR tree-optimization/97559
1259 * tree-ssa-sink.c (statement_sink_location): Never ignore
1260 PHIs on sink paths in irreducible regions.
1261
1262 2020-12-08 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1263
1264 PR target/97872
1265 * gimple-isel.cc (gimple_expand_vec_cond_expr): Try to fold
1266 x CMP y ? -1 : 0 to x CMP y.
1267
1268 2020-12-08 Richard Biener <rguenther@suse.de>
1269
1270 PR tree-optimization/98180
1271 * tree-vect-slp.c (vect_slp_check_for_constructors): Check the
1272 first inserted value has a def.
1273
1274 2020-12-08 Eric Botcazou <ebotcazou@adacore.com>
1275
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.
1281
1282 2020-12-08 Kito Cheng <kito.cheng@sifive.com>
1283
1284 PR target/98152
1285 * config.gcc (riscv*-*-*): Checking python, python3 or python2
1286 is available, and skip doing with_arch canonicalize if no python
1287 available.
1288
1289 2020-12-07 Jakub Jelinek <jakub@redhat.com>
1290
1291 PR target/98147
1292 * builtins.c (default_emit_call_builtin___clear_cache): Call
1293 convert_memory_address to ptr_mode on both begin and end.
1294
1295 2020-12-07 Bernd Edlinger <bernd.edlinger@hotmail.de>
1296
1297 * ipa-param-manipulation.c
1298 (ipa_param_body_adjustments::modify_call_stmt): Set location info.
1299
1300 2020-12-07 Jozef Lawrynowicz <jozef.l@mittosystems.com>
1301
1302 * doc/extend.texi (used function attribute): Document saving
1303 the declaration from linker garbage collection.
1304 (used variable attribute): Likewise.
1305
1306 2020-12-07 Richard Biener <rguenther@suse.de>
1307
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
1312 roots.
1313 (_bb_vec_info::_bb_vec_info): Adjust.
1314 (_bb_vec_info::~_bb_vec_info): Likewise.
1315 (vld_cmp): New.
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
1320 not empty.
1321 (vect_slp_analyze_bb_1): Mark the whole BIT_INSERT_EXPR root
1322 sequence as pure_slp.
1323
1324 2020-12-07 Richard Biener <rguenther@suse.de>
1325
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
1329 loop IV range.
1330
1331 2020-12-07 Andreas Krebbel <krebbel@linux.ibm.com>
1332
1333 * config/s390/s390.c (s390_emit_stack_probe): Change Pmode to
1334 word_mode.
1335
1336 2020-12-07 Martin Jambor <mjambor@suse.cz>
1337
1338 PR ipa/97816
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.
1347
1348 2020-12-07 Matthias Klose <doko@ubuntu.com>
1349
1350 * genextract.c (print_header): Undefine ENABLE_RTL_CHECKING
1351 and ENABLE_RTL_FLAG_CHECKING.
1352
1353 2020-12-07 Richard Biener <rguenther@suse.de>
1354
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.
1359
1360 2020-12-06 H.J. Lu <hjl.tools@gmail.com>
1361
1362 PR target/98162
1363 * doc/extend.texi: Remove -mcet.
1364
1365 2020-12-06 H.J. Lu <hjl.tools@gmail.com>
1366
1367 PR target/98161
1368 * config/i386/i386-features.c (pseudo_reg_set): Check mode of
1369 pseudo register push.
1370
1371 2020-12-06 Jakub Jelinek <jakub@redhat.com>
1372
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
1378 early phiopt.
1379
1380 2020-12-06 Jakub Jelinek <jakub@redhat.com>
1381
1382 PR tree-optimization/96232
1383 * match.pd (-(type)!A -> (type)A - 1): New optimization.
1384
1385 2020-12-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1386 David Edelsohn <dje.gcc@gmail.com>
1387
1388 * config/rs6000/xcoff.h (ASM_OUTPUT_DEF): Reference macro arguments.
1389
1390 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1391
1392 PR target/95294
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):
1417 New predicates.
1418 * config/vax/builtins.md: Rewrite for MODE_CC representation.
1419 * config/vax/vax.md: Likewise.
1420
1421 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1422
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.
1428
1429 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1430
1431 * config/pdp11/pdp11.md (fcc_cc, fcc_ccnz): Use
1432 `const_double_zero' to express double zero constant.
1433
1434 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1435
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.
1439
1440 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1441
1442 * config/vax/vax.md (divmoddisi4, *amulsi4): Make the comment
1443 notation consistent with the rest of the file.
1444
1445 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1446
1447 * config/vax/vax.md (movti): Fix output predicate. Emit `movo'
1448 rather than `movh'.
1449 (divmoddisi4): Fix output predicates, correct RTL.
1450 (*amulsi4): Name insn. Fix output predicate.
1451
1452 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1453
1454 * config/vax/vax.md (mulsidi3): Fix the multiplicand predicates.
1455 (*maddsidi4, *maddsidi4_const): Likewise. Name insns.
1456
1457 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1458
1459 * config/vax/vax.md (*cmpv_2): Name insn.
1460 (*cmpv, *cmpzv, *cmpzv_2): Likewise. Fix location predicate and
1461 constraint.
1462
1463 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1464
1465 * config/vax/vax.md (extv): Rename insn to...
1466 (*extv): ... this.
1467 (extv): New expander.
1468
1469 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1470
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.
1474
1475 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1476
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
1480 accordingly.
1481
1482 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1483
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.
1490
1491 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1492
1493 * config/vax/vax.md (cpymemhi1): Rename insn to...
1494 (movmemhi1): ... this.
1495 (cpymemhi): Update accordingly. Remove constraints.
1496 (movmemhi): New expander.
1497
1498 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1499
1500 * config/vax/builtins.md: Add a peephole2 for QImode and HImode
1501 `ctz' operations.
1502 (any_extend): New code iterator.
1503
1504 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1505
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.
1511
1512 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1513
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.
1519
1520 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1521
1522 * config/vax/vax.md: Include `builtins.md'.
1523
1524 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1525
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.
1534
1535 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1536
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.
1541
1542 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1543
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.
1549
1550 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1551
1552 * jump.c (pc_set): Also accept a jump wrapped in UNSPEC or
1553 UNSPEC_VOLATILE.
1554 (any_uncondjump_p, any_condjump_p): Update comment accordingly.
1555
1556 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1557
1558 * loop-doloop.c (add_test): Only remove the jump if `onlyjump_p'.
1559
1560 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1561
1562 * cfgrtl.c (rtl_block_empty_p): Return false if `!onlyjump_p'
1563 too.
1564
1565 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1566
1567 * sel-sched-ir.c (maybe_tidy_empty_bb): Only try to remove a
1568 conditional jump if `onlyjump_p'.
1569
1570 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1571
1572 * loop-iv.c (simplify_using_initial_values): Only process jumps
1573 that match `onlyjump_p'.
1574 (check_simple_exit): Likewise.
1575
1576 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1577
1578 * ifcvt.c (dead_or_predicable) [!IFCVT_MODIFY_TESTS]: Bail out
1579 if `!onlyjump_p'.
1580
1581 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1582
1583 * read-rtl.c: Add a page-feed separator at the start of iterator
1584 code.
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
1592 HOST_WIDE_INT.
1593 (find_int): Handle input suitable for HOST_WIDE_INT output.
1594 (apply_int_iterator): Rewrite in terms of explicit format
1595 interpretation.
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.
1599
1600 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1601
1602 * config/vax/builtins.md (ffssi2): Make preparation statements
1603 actually buildable.
1604 (ffssi2_internal): Fix input constraints; make the RTL pattern
1605 match reality for `cc0'.
1606
1607 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1608
1609 * config/vax/vax.c (vax_address_cost): Express the cost in terms
1610 of COSTS_N_INSNS.
1611 (vax_rtx_costs): Likewise.
1612
1613 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1614
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):
1623 Update accordingly.
1624 * config/vax/vax-protos.h (vax_acceptable_pic_operand_p): New
1625 prototype.
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.
1642
1643 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org>
1644
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
1648 accordingly.
1649
1650 2020-12-05 Matt Thomas <matt@3am-software.com>
1651 Maciej W. Rozycki <macro@linux-mips.org>
1652
1653 PR target/58901
1654 * reload.c (push_reload): Also reload the inner expression of a
1655 SUBREG for pseudos associated with a mode-dependent memory
1656 reference.
1657 (find_reloads): Force a reload likewise.
1658
1659 2020-12-05 Roman Zhuykov <zhroma@ispras.ru>
1660
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
1666 initialization.
1667 (sms_schedule): Fix count register initialization adjustment
1668 procedure according to what const_iteration_count said.
1669
1670 2020-12-05 Iain Sandoe <iain@sandoe.co.uk>
1671
1672 PR target/97865
1673 * configure: Regenerate.
1674
1675 2020-12-05 Venkataramanan Kumar <Venkataramanan.Kumar@amd.com>
1676 Sharavan Kumar <Shravan.Kumar@amd.com>
1677
1678 * common/config/i386/cpuinfo.h (get_amd_cpu) recognize znver3.
1679 * common/config/i386/i386-common.c (processor_names): Add
1680 znver3.
1681 (processor_alias_table): Add znver3 and AMDFAM19H entry.
1682 * common/config/i386/i386-cpuinfo.h (processor_types): Add
1683 AMDFAM19H.
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
1689 znver3.
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:
1700 Likewise.
1701 * config/i386/znver1.md: Add new reservations for znver3.
1702 * doc/extend.texi: Add details about znver3.
1703 * doc/invoke.texi: Likewise.
1704
1705 2020-12-05 Jakub Jelinek <jakub@redhat.com>
1706
1707 PR target/96226
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.
1711
1712 2020-12-04 Jason Merrill <jason@redhat.com>
1713
1714 * vec.h (begin, end): Add overloads for vec*.
1715 * tree.c (build_constructor_from_vec): Remove *.
1716
1717 2020-12-04 David Edelsohn <dje.gcc@gmail.com>
1718
1719 * config/rs6000/rs6000.c (rs6000_option_override_internal):
1720 Change PTR_SIZE to POINTER_SIZE_UNITS.
1721
1722 2020-12-04 Hans-Peter Nilsson <hp@axis.com>
1723 Martin Sebor <msebor@redhat.com>
1724
1725 PR middle-end/94600
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.
1729
1730 2020-12-04 Jakub Jelinek <jakub@redhat.com>
1731
1732 PR c++/98130
1733 * gimple.c (gimple_call_fnspec): Only return ".co " for replaceable
1734 operator delete or ".mC" for replaceable operator new called from
1735 new/delete.
1736
1737 2020-12-04 Jakub Jelinek <jakub@redhat.com>
1738
1739 PR target/96226
1740 * config/i386/i386.md (splitter after *<rotate_insn><mode>3_mask,
1741 splitter after *<rotate_insn><mode>3_mask_1): New combine splitters.
1742
1743 2020-12-04 Jakub Jelinek <jakub@redhat.com>
1744
1745 PR libstdc++/93121
1746 * fold-const.c (native_encode_initializer): Use build_zero_cst
1747 instead of build_constructor.
1748
1749 2020-12-04 Jakub Jelinek <jakub@redhat.com>
1750
1751 PR target/98100
1752 * cfgexpand.c (expand_gimple_basic_block): For vars with
1753 vector type, use TYPE_MODE rather than DECL_MODE.
1754
1755 2020-12-04 Jakub Jelinek <jakub@redhat.com>
1756
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
1761 dwarf_offset_size.
1762 * doc/invoke.texi (-gdwarf32, -gdwarf64): Document.
1763
1764 2020-12-04 Martin Liska <mliska@suse.cz>
1765
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
1771 function.
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.
1786
1787 2020-12-04 Eric Botcazou <ebotcazou@adacore.com>
1788
1789 * ipa-sra.c (verify_access_tree_1): Relax assertion on the size.
1790
1791 2020-12-04 Martin Liska <mliska@suse.cz>
1792
1793 * doc/invoke.texi: Add missing params.
1794
1795 2020-12-03 Martin Sebor <msebor@redhat.com>
1796
1797 PR c++/90629
1798 PR middle-end/94527
1799 * builtins.c (access_ref::access_ref): Initialize new member.
1800 (compute_objsize): Use access_ref::deref. Handle simple pointer
1801 assignment.
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.
1820
1821 2020-12-03 Alexandre Oliva <oliva@adacore.com>
1822
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
1826 Pmode arguments.
1827
1828 2020-12-03 Sebastian Huber <sebastian.huber@embedded-brains.de>
1829
1830 * config/arm/t-rtems: Add "-mthumb -mcpu=cortex-r52
1831 -mfloat-abi=hard" multilib.
1832
1833 2020-12-03 Uroš Bizjak <ubizjak@gmail.com>
1834 Jakub Jelinek <jakub@redhat.com>
1835
1836 PR target/98086
1837 * config/i386/i386.c (ix86_md_asm_adjustmd): Rewrite
1838 zero-extension part to use convert_to_mode.
1839
1840 2020-12-03 Andreas Krebbel <krebbel@linux.ibm.com>
1841
1842 * config/s390/s390.md ("@probe_stack2<mode>"): Change mode
1843 iterator to W.
1844
1845 2020-12-03 Richard Sandiford <richard.sandiford@arm.com>
1846
1847 * config/aarch64/aarch64-sve-builtins-base.cc (svundef_impl::fold):
1848 Delete.
1849
1850 2020-12-03 Eric Botcazou <ebotcazou@adacore.com>
1851
1852 PR middle-end/98099
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.
1855
1856 2020-12-03 Eric Botcazou <ebotcazou@adacore.com>
1857
1858 PR middle-end/98082
1859 * function.c (use_register_for_decl): Also return true for a result
1860 if cfun->tail_call_marked is true.
1861
1862 2020-12-03 Jakub Jelinek <jakub@redhat.com>
1863
1864 PR libstdc++/93121
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
1876 member.
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.
1884
1885 2020-12-03 Ilya Leoshkevich <iii@linux.ibm.com>
1886
1887 * tree-ssa-threadedge.c (record_temporary_equivalences_from_stmts_at_dest):
1888 Do not allow __builtin_constant_p on a threading path.
1889
1890 2020-12-03 Ilya Leoshkevich <iii@linux.ibm.com>
1891
1892 * tree-ssa-strlen.c (printf_strlen_execute): Avoid division by
1893 0.
1894
1895 2020-12-03 Kito Cheng <kito.cheng@sifive.com>
1896
1897 * config/riscv/multilib-generator (arch_canonicalize): Move
1898 code to arch-canonicalize, and call that script to canonicalize arch
1899 string.
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.
1905
1906 2020-12-03 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
1907
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
1911 mask.
1912 (AARCH64_FL_FOR_ARCH8_4): Add flagm to Armv8.4-A.
1913 * doc/invoke.texi: Update docs with +flagm.
1914
1915 2020-12-03 liuhongt <hongtao.liu@intel.com>
1916
1917 PR target/96906
1918 * config/i386/sse.md
1919 (<avx512>_ucmp<mode>3<mask_scalar_merge_name>): Add a new
1920 define_split after this insn.
1921
1922 2020-12-03 liuhongt <hongtao.liu@intel.com>
1923
1924 PR target/97642
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
1930 instructions.
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
1935 operands order.
1936 (*<avx512>_load<mode>): New define_insn_and_split which is
1937 used to optimize for masked load with all one mask.
1938
1939 2020-12-03 Hongyu Wang <hongyu.wang@intel.com>
1940
1941 PR target/97770
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.
1945
1946 2020-12-03 Alexandre Oliva <oliva@adacore.com>
1947
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):
1973 Declare.
1974 * tree.h (BUILTIN_ASM_NAME_PTR): New.
1975
1976 2020-12-03 Ilya Leoshkevich <iii@linux.ibm.com>
1977
1978 * tree-ssa-threadbackward.c (thread_jumps::profitable_jump_thread_path):
1979 Do not allow __builtin_constant_p on a threading path.
1980
1981 2020-12-02 Jakub Jelinek <jakub@redhat.com>
1982
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.
1987
1988 2020-12-02 qing zhao <qinzhao@gcc.gnu.org>
1989
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.
1993
1994 2020-12-02 Ilya Leoshkevich <iii@linux.ibm.com>
1995
1996 * config/s390/s390-protos.h (s390_const_int_pool_entry_p): New
1997 function.
1998 * config/s390/s390.c (s390_const_int_pool_entry_p): New
1999 function.
2000 * config/s390/s390.md: Add define_peephole2 that produces llihf
2001 and oilf.
2002
2003 2020-12-02 Richard Biener <rguenther@suse.de>
2004
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.
2017
2018 2020-12-02 Scott Snyder <sss@li-snyder.org>
2019
2020 PR plugins/98059
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
2024 after DR2237.
2025
2026 2020-12-02 Martin Liska <mliska@suse.cz>
2027
2028 PR ipa/98075
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.
2032
2033 2020-12-02 H.J. Lu <hjl.tools@gmail.com>
2034
2035 PR middle-end/93195
2036 PR middle-end/93197
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.
2050
2051 2020-12-02 H.J. Lu <hjl.tools@gmail.com>
2052
2053 * config/i386/i386.opt: Add the missing '.' for -mneeded.
2054
2055 2020-12-02 Richard Biener <rguenther@suse.de>
2056
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.
2061
2062 2020-12-02 Jakub Jelinek <jakub@redhat.com>
2063
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
2075 int_mode.
2076 * expr.c: Include expmed.h after optabs.h.
2077 * explow.c: Include expmed.h after optabs.h.
2078
2079 2020-12-02 Jakub Jelinek <jakub@redhat.com>
2080
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.
2086
2087 2020-12-02 Martin Liska <mliska@suse.cz>
2088
2089 PR c/98087
2090 * gimple-fold.c (clear_padding_type): Do not divide by zero.
2091
2092 2020-12-02 Martin Liska <mliska@suse.cz>
2093
2094 * gdbinit.in: Write what each command calls
2095 for a debugging function.
2096
2097 2020-12-02 Kewen Lin <linkw@linux.ibm.com>
2098
2099 * config/rs6000/rs6000.c (rs6000_option_override_internal):
2100 Use OPTION_MASK_DIRECT_MOVE for Power8 target_enable instead
2101 of OPTION_MASK_HTM.
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.
2106
2107 2020-12-02 Uroš Bizjak <ubizjak@gmail.com>
2108
2109 PR target/98079
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.
2115
2116 2020-12-02 Martin Liska <mliska@suse.cz>
2117
2118 * diagnostic.c (diagnostic_report_diagnostic): ICE causes to
2119 terminate compiler immediately, so I guess it should be printed
2120 always.
2121
2122 2020-12-02 Martin Liska <mliska@suse.cz>
2123
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.
2129
2130 2020-12-02 Martin Liska <mliska@suse.cz>
2131
2132 PR tree-optimization/98084
2133 * gimple-if-to-switch.cc (find_conditions): Consider only
2134 integral types.
2135
2136 2020-12-02 Jeff Law <law@redhat.com>
2137
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
2145 flags.
2146 (addhi3_clobber_flags): Similarly. Twiddle code for cases
2147 +-1, +-2 and +-4.
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.
2153
2154 2020-12-02 Maciej W. Rozycki <macro@linux-mips.org>
2155
2156 * loop-iv.c: Fix a typo, s/bu/by/, in the `iv_analyze_expr'
2157 description in the introduction.
2158
2159 2020-12-02 H.J. Lu <hjl.tools@gmail.com>
2160
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.
2177
2178 2020-12-02 H.J. Lu <hjl.tools@gmail.com>
2179
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):
2191 Renamed to ...
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.
2199
2200 2020-12-01 Eugene Rozenfeld <Eugene.Rozenfeld@microsoft.com>
2201
2202 PR tree-optimization/96708
2203 * match.pd: New pattern for comparing X with MAX (X, Y)
2204 or MIN (X, y).
2205
2206 2020-12-01 Jeff Law <law@redhat.com>
2207
2208 * config/mcore/t-mcore (MULTILIB_EXCEPTIONS): Define.
2209
2210 2020-12-01 Martin Sebor <msebor@redhat.com>
2211
2212 PR middle-end/97595
2213 * tree.c (component_ref_size): Fail when DECL_SIZE != TYPE_SIZE.
2214 * tree.h (DECL_SIZE, TYPE_SIZE): Update comment.
2215
2216 2020-12-01 JeanHeyd Meneide <phdofthehouse@gmail.com>
2217
2218 * doc/cpp.texi: Document new macros.
2219
2220 2020-12-01 Martin Sebor <msebor@redhat.com>
2221
2222 PR middle-end/97373
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.
2252
2253 2020-12-01 Eric Botcazou <ebotcazou@adacore.com>
2254
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.
2259
2260 2020-12-01 Iain Sandoe <iain@sandoe.co.uk>
2261
2262 * config/darwin.h: Remove unused 'X' specs in the link spec
2263 rather than driver self-specs.
2264
2265 2020-12-01 Nathan Sidwell <nathan@acm.org>
2266
2267 * params.opt (lazy-modules): New.
2268 * timevar.def (TV_MODULE_IMPORT, TV_MODULE_EXPORT)
2269 (TV_MODULE_MAPPER): New.
2270
2271 2020-12-01 Jakub Jelinek <jakub@redhat.com>
2272
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.
2276
2277 2020-12-01 Jakub Jelinek <jakub@redhat.com>
2278
2279 PR rtl-optimization/97954
2280 * loop-invariant.c (find_invariant_insn): Punt on JUMP_P insns.
2281
2282 2020-12-01 Iain Sandoe <iain@sandoe.co.uk>
2283
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.
2288
2289 2020-12-01 Iain Sandoe <iain@sandoe.co.uk>
2290
2291 * configure: Regnerated.
2292
2293 2020-12-01 Ilya Leoshkevich <iii@linux.ibm.com>
2294
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
2298 vec_cmp_eq_icode_p.
2299 (vcond_icode_p): Use get_rtx_code_1, just to be uniform with
2300 vec_cmp_icode_p.
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.
2311
2312 2020-12-01 Martin Liska <mliska@suse.cz>
2313
2314 PR tree-optimization/14799
2315 PR ipa/88702
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.
2330
2331 2020-12-01 Marius Hillenbrand <mhillen@linux.ibm.com>
2332
2333 * configure.ac: Add configure option
2334 --enable-s390-excess-float-precision and check to derive default
2335 from glibc.
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.
2341
2342 2020-12-01 Martin Liska <mliska@suse.cz>
2343
2344 PR ipa/98057
2345 * symtab.c (symtab_node::set_section_for_node): Drop
2346 implicit_section if x_section is NULL.
2347
2348 2020-12-01 Jakub Jelinek <jakub@redhat.com>
2349
2350 PR target/98063
2351 * config/i386/i386-expand.c (ix86_expand_call): Handle non-plt
2352 CM_LARGE_PIC calls.
2353
2354 2020-12-01 Richard Biener <rguenther@suse.de>
2355
2356 PR middle-end/98070
2357 * builtins.c (builtin_fnspec): realloc is ".Cw ".
2358
2359 2020-12-01 Jakub Jelinek <jakub@redhat.com>
2360
2361 * dwarf2out.c (gen_compile_unit_die): Treat GNU C++20
2362 like C++14 for -gdwarf-5.
2363
2364 2020-12-01 Jakub Jelinek <jakub@redhat.com>
2365
2366 PR debug/97989
2367 * gcc.c (cpp_unique_options): Add -dD if %:debug-level-gt(2)
2368 rather than g3|ggdb3|gstabs3|gxcoff3|gvms3.
2369
2370 2020-12-01 Kito Cheng <kito.cheng@sifive.com>
2371
2372 * config.gcc (riscv*-*-*): Drop some commited accidentally code.
2373
2374 2020-11-30 Jeff Law <law@redhat.com>
2375
2376 * symtab.c (set_section_for_node): Add function comment.
2377 (set_section_from_node): Likewise.
2378
2379 2020-11-30 David Malcolm <dmalcolm@redhat.com>
2380
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.
2385
2386 2020-11-30 Jeff Law <law@redhat.com>
2387
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.
2404
2405 2020-11-30 Richard Sandiford <richard.sandiford@arm.com>
2406
2407 PR rtl-optimization/98037
2408 * dse.c (find_shift_sequence): Iterate over all integers and
2409 skip modes that are too small.
2410
2411 2020-11-30 Eugene Rozenfeld <Eugene.Rozenfeld@microsoft.com>
2412
2413 PR tree-optimization/96679
2414 * match.pd (((b | c) & a) | b -> (a & c) | b): New pattern.
2415
2416 2020-11-30 Martin Liska <mliska@suse.cz>
2417
2418 * passes.c (emergency_dump_function): Dump symtab when
2419 we are in an IPA pass.
2420
2421 2020-11-30 Richard Biener <rguenther@suse.de>
2422
2423 PR tree-optimization/98064
2424 * tree-vect-loop.c (vectorizable_live_operation): Avoid
2425 breaking LC SSA for BB vectorization.
2426
2427 2020-11-30 Jonathan Wakely <jwakely@redhat.com>
2428
2429 * doc/sourcebuild.texi (Directives): Fix description of
2430 dg-require-effective-target to include "target" in selector.
2431
2432 2020-11-30 Richard Biener <rguenther@suse.de>
2433
2434 PR tree-optimization/98048
2435 * tree-vect-generic.c (expand_vector_operations_1): Use the
2436 correct type for the scalar LHS replacement.
2437
2438 2020-11-30 Martin Liska <mliska@suse.cz>
2439
2440 PR tree-optimization/98066
2441 * gimple-isel.cc (gimple_expand_vec_exprs): Return when
2442 gimple_expand_vec_exprs replaces last stmt.
2443
2444 2020-11-30 Ilya Leoshkevich <iii@linux.ibm.com>
2445
2446 * cfgrtl.c (rtl_bb_info_initialized_p): New function.
2447 (rtl_dump_bb): Use rtl_bb_info_initialized_p before accessing bb
2448 insns.
2449
2450 2020-11-30 Iain Buclaw <ibuclaw@gdcproject.org>
2451
2452 PR d/87818
2453 * config.gcc (*-*-freebsd*): Add freebsd-d.o and t-freebsd.
2454 * config/freebsd-d.c: New file.
2455 * config/t-freebsd: New file.
2456
2457 2020-11-30 Jakub Jelinek <jakub@redhat.com>
2458
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.
2464
2465 2020-11-30 Kito Cheng <kito.cheng@sifive.com>
2466
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.
2474
2475 2020-11-30 Kito Cheng <kito.cheng@sifive.com>
2476
2477 * gcc.c (print_multilib_info): Check default arguments not
2478 appeared in multi-lib option list with '!'
2479
2480 2020-11-30 Jeff Law <law@redhat.com>
2481
2482 * config/ft32/ft32.md (umulsidi3): Do not allow constants as
2483 arguments.
2484
2485 2020-11-29 Jan Hubicka <jh@suse.cz>
2486
2487 * ipa-modref.c (ipa_merge_modref_summary_after_inlining): Fix
2488 handling of ignore_stores.
2489
2490 2020-11-29 Jan Hubicka <jh@suse.cz>
2491
2492 PR jit/97867
2493 * symtab-thunks.h (thunk_info::release): Use ggc_delete.
2494
2495 2020-11-29 Martin Sebor <msebor@redhat.com>
2496
2497 PR middle-end/92936
2498 PR middle-end/92940
2499 PR middle-end/89428
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
2509 functions and VLAs.
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
2514 tree-ssa-strlen.c.
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}.
2521
2522 2020-11-29 Iain Buclaw <ibuclaw@gdcproject.org>
2523
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.
2534
2535 2020-11-29 Jan Hubicka <jh@suse.cz>
2536
2537 * tree-ssa-structalias.c (handle_pure_call): Skip EAF_UNUSED
2538 parameters.
2539
2540 2020-11-29 Jan Hubicka <jh@suse.cz>
2541
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.
2545
2546 2020-11-28 Eric Botcazou <ebotcazou@adacore.com>
2547
2548 PR target/97939
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.
2570 (negvsi3) 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.
2583
2584 2020-11-27 H.J. Lu <hjl.tools@gmail.com>
2585
2586 PR other/98027
2587 * doc/install.texi: Default to --enable-cet=auto.
2588
2589 2020-11-27 Thomas Schwinge <thomas@codesourcery.com>
2590
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'.
2594
2595 2020-11-27 Richard Biener <rguenther@suse.de>
2596
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
2601 PHI_GEN.
2602
2603 2020-11-27 Jakub Jelinek <jakub@redhat.com>
2604
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.
2613
2614 2020-11-27 Jakub Jelinek <jakub@redhat.com>
2615
2616 PR libstdc++/88101
2617 * gimple-fold.c (clear_padding_type): Ignore fields with is_empty_type
2618 types.
2619
2620 2020-11-27 Tobias Burnus <tobias@codesourcery.com>
2621
2622 PR c/97880
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.
2627
2628 2020-11-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2629
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
2634 SIMD.
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.
2639
2640 2020-11-27 Xionghu Luo <luoxhu@linux.ibm.com>
2641
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):
2645 Likewise.
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.
2651
2652 2020-11-27 Haochen Gui <guihaoc@gcc.gnu.org>
2653
2654 * config/rs6000/rs6000-protos.h (rs6000_output_addr_vec_elt): Declare.
2655 * config/rs6000/rs6000.c (TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC):
2656 Define.
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.
2663
2664 2020-11-26 Eric Botcazou <ebotcazou@adacore.com>
2665
2666 PR target/96607
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.
2675
2676 2020-11-26 Jakub Jelinek <jakub@redhat.com>
2677
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.
2681
2682 2020-11-26 Richard Biener <rguenther@suse.de>
2683
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.
2689
2690 2020-11-26 Richard Biener <rguenther@suse.de>
2691
2692 * gimple-isel.cc (gimple_expand_vec_cond_expr): Only
2693 lower VECTOR_BOOLEAN_TYPE_P VEC_COND_EXPRs.
2694
2695 2020-11-26 Andrew Stubbs <ams@codesourcery.com>
2696
2697 * config/gcn/mkoffload.c (copy_early_debug_info): Don't wipe
2698 relocation symbols.
2699
2700 2020-11-26 Uroš Bizjak <ubizjak@gmail.com>
2701
2702 * config/i386/i386-expand.c (ix86_expand_multi_arg_builtin):
2703 Remove args array of structs, declare rtx xops array instead.
2704 Update all uses.
2705 (ix86_expand_args_builtin): Ditto.
2706 (ix86_expand_round_builtin): Ditto.
2707 (ix86_expand_special_args_builtin): Ditto.
2708
2709 2020-11-26 Martin Liska <mliska@suse.cz>
2710
2711 * dwarf2out.c (gen_compile_unit_die): Fix missing == 0 in a
2712 strcmp.
2713
2714 2020-11-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2715
2716 * config/sol2.h (TIME_LIBRARY): Remove.
2717
2718 2020-11-26 Kewen Lin <linkw@linux.ibm.com>
2719
2720 * config/rs6000/rs6000.c (rs6000_option_override_internal):
2721 Set param_vect_partial_vector_usage as 1 for Power10 and up
2722 by default.
2723
2724 2020-11-26 Jakub Jelinek <jakub@redhat.com>
2725
2726 * gimple-fold.c (clear_padding_union): Ignore DECL_PADDING_P
2727 fields.
2728 (clear_padding_type): Ignore DECL_PADDING_P fields, rather than
2729 DECL_BIT_FIELD with NULL DECL_NAME.
2730
2731 2020-11-26 Jakub Jelinek <jakub@redhat.com>
2732
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.
2736
2737 2020-11-26 liuhongt <hongtao.liu@intel.com>
2738
2739 * config/i386/i386-expand.c
2740 (ix86_expand_special_args_builtin): Delete last_arg_constant
2741 and match.
2742
2743 2020-11-26 Uroš Bizjak <ubizjak@gmail.com>
2744
2745 PR target/97873
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.
2750
2751 2020-11-26 Jakub Jelinek <jakub@redhat.com>
2752
2753 PR target/96906
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.
2763
2764 2020-11-26 Martin Uecker <muecker@gwdg.de>
2765
2766 PR c/65455
2767 PR c/92935
2768 * ginclude/stdatomic.h: Use comma operator to drop qualifiers.
2769
2770 2020-11-26 Vladimir Makarov <vmakarov@redhat.com>
2771
2772 PR bootstrap/97983
2773 * lra.c (lra_process_new_insns): Use emit_insn_before_noloc or
2774 emit_insn_after_noloc with the destination BB.
2775
2776 2020-11-25 Martin Sebor <msebor@redhat.com>
2777
2778 PR bootstrap/97622
2779 PR bootstrap/94982
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.
2792
2793 2020-11-25 Jan Hubicka <jh@suse.cz>
2794
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
2798 function.
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
2804 EAF_NODIRECTESCAPE.
2805 (analyze_params): Likewise.
2806 (ipa_merge_modref_summary_after_inlining): Likewise.
2807 (modref_merge_call_site_flags): Likewise.
2808
2809 2020-11-25 Jan Hubicka <jh@suse.cz>
2810
2811 * ipa-modref.c (modref_summaries::duplicate,
2812 modref_summaries_lto::duplicate): Copy arg_flags.
2813 (remap_arg_flags): Fix remapping of arg_flags.
2814
2815 2020-11-25 Martin Sebor <msebor@redhat.com>
2816
2817 PR middle-end/97956
2818 * gimple-fold.c (gimple_fold_builtin_memchr): Use sizetype for pointer
2819 offsets.
2820
2821 2020-11-25 Matthew Malcomson <matthew.malcomson@arm.com>
2822
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.
2847 (gate_hwasan): 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
2862 HWASAN.
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.
2875 (HWASAN_MARK): 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.
2907
2908 2020-11-25 Matthew Malcomson <matthew.malcomson@arm.com>
2909
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.
2990
2991 2020-11-25 Matthew Malcomson <matthew.malcomson@arm.com>
2992
2993 * common.opt (flag_sanitize_recover): Default for kernel
2994 hwaddress.
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
3013 sanitizers.
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.
3030
3031 2020-11-25 Matthew Malcomson <matthew.malcomson@arm.com>
3032
3033 * doc/install.texi: Document new option.
3034
3035 2020-11-25 Richard Sandiford <richard.sandiford@arm.com>
3036
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
3041 output.
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>):
3048 Likewise.
3049 (@aarch64_sve_<optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>):
3050 Likewise.
3051 (@aarch64_sve_<optab>_nonextend<SVE_FULL_HSDI:mode><SVE_FULL_F:mode>):
3052 Likewise.
3053 (@aarch64_sve_<optab>_extend<VNx4SI_ONLY:mode><VNx2DF_ONLY:mode>):
3054 Likewise.
3055 (@aarch64_sve_<optab>_trunc<SVE_FULL_SDF:mode><SVE_FULL_HSF:mode>):
3056 Likewise.
3057 (@aarch64_sve_<optab>_trunc<VNx4SF_ONLY:mode><VNx8BF_ONLY:mode>):
3058 Likewise.
3059 (@aarch64_sve_<optab>_nontrunc<SVE_FULL_HSF:mode><SVE_FULL_SDF:mode>):
3060 Likewise.
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.
3066
3067 2020-11-25 Jakub Jelinek <jakub@redhat.com>
3068
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.
3079
3080 2020-11-25 Jan Hubicka <jh@suse.cz>
3081
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.
3089
3090 2020-11-25 Richard Biener <rguenther@suse.de>
3091
3092 PR middle-end/97579
3093 * gimple-isel.cc (gimple_expand_vec_cond_expr): Lower
3094 VECTOR_BOOLEAN_TYPE_P, non-vector mode VEC_COND_EXPRs.
3095
3096 2020-11-25 Jakub Jelinek <jakub@redhat.com>
3097
3098 PR middle-end/97943
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.
3102
3103 2020-11-24 Ulrich Weigand <ulrich.weigand@de.ibm.com>
3104
3105 Revert:
3106 2020-11-24 Ulrich Weigand <uweigand@de.ibm.com>
3107
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.
3121
3122 2020-11-24 Vladimir Makarov <vmakarov@redhat.com>
3123
3124 PR bootstrap/97933
3125 * lra.c (lra_process_new_insns): Stop on the first real insn after
3126 head of e->dest.
3127
3128 2020-11-24 Richard Earnshaw <rearnsha@arm.com>
3129
3130 PR target/97534
3131 * config/arm/arm.c (arm_split_atomic_op): Use gen_int_mode when
3132 negating a const_int.
3133
3134 2020-11-24 Ilya Leoshkevich <iii@linux.ibm.com>
3135
3136 * config/s390/vector.md: Use vcond_comparison_operator
3137 predicate.
3138
3139 2020-11-24 Ulrich Weigand <uweigand@de.ibm.com>
3140
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.
3154
3155 2020-11-24 Jakub Jelinek <jakub@redhat.com>
3156
3157 PR target/97950
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
3162 iterator.
3163
3164 2020-11-24 Jakub Jelinek <jakub@redhat.com>
3165
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.
3172
3173 2020-11-24 Thomas Schwinge <thomas@codesourcery.com>
3174
3175 * omp-expand.c (expand_oacc_for): More explicit checking of which
3176 OMP constructs we're expecting.
3177
3178 2020-11-24 Thomas Schwinge <thomas@codesourcery.com>
3179
3180 * doc/install.texi (Prerequisites) <Tcl>: Add comment.
3181
3182 2020-11-24 Jakub Jelinek <jakub@redhat.com>
3183
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.
3192
3193 2020-11-24 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3194
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.
3199
3200 2020-11-24 Martin Sebor <msebor@redhat.com>
3201
3202 * tree-cfg.c (dump_function_to_file): Print type attributes
3203 and return type.
3204
3205 2020-11-23 Martin Jambor <mjambor@suse.cz>
3206
3207 * ipa-prop.h (ipa_pass_through_data): Expand comment describing
3208 operation.
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.
3214
3215 2020-11-23 Jeff Law <law@redhat.com>
3216
3217 * config/h8300/h8300.c (h8300_rtx_costs): Handle the various
3218 comparison rtx codes too.
3219
3220 2020-11-23 Jan Hubicka <jh@suse.cz>
3221
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.
3226
3227 2020-11-23 Jan Hubicka <jh@suse.cz>
3228
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
3233 to 0
3234 * tree-ssanames.c (init_ssanames): Do not round size up to 50, allocate
3235 precisely.
3236 * tree-ssa.h (init_tree_ssa): Update prototype.
3237
3238 2020-11-23 Nathan Sidwell <nathan@acm.org>
3239
3240 * diagnostic.c (diagnostic_report_current_module): Adjust for C++
3241 module importation.
3242
3243 2020-11-23 Jozef Lawrynowicz <jozef.l@mittosystems.com>
3244
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
3254 handling.
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.
3262
3263 2020-11-23 Richard Biener <rguenther@suse.de>
3264
3265 * tree-vect-slp.c (maybe_push_to_hybrid_worklist): Skip
3266 debug stmts.
3267
3268 2020-11-23 Jozef Lawrynowicz <jozef.l@mittosystems.com>
3269
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.
3280
3281 2020-11-23 Jozef Lawrynowicz <jozef.l@mittosystems.com>
3282
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
3289 section selection.
3290
3291 2020-11-23 Matthew Malcomson <matthew.malcomson@arm.com>
3292
3293 * doc/install.texi: Document bootstrap-asan option.
3294
3295 2020-11-22 Uroš Bizjak <ubizjak@gmail.com>
3296
3297 PR target/97873
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.
3302
3303 2020-11-22 Austin Law <austinklaw@gmail.com>
3304
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
3309 the splitters.
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
3316 of the splitters.
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
3327 existing splitters.
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
3334 the splitters.
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
3339 the splitters.
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
3368 cbranch<mode>4.
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
3383 the splitters.
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
3388 the splitters.
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
3393 the splitters.
3394 * config/h8300/peepholes.md: Remove peepholes that were moved
3395 elsewhere.
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
3402 the splitters.
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.
3410
3411 2020-11-22 Jakub Jelinek <jakub@redhat.com>
3412
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
3416 comparisons.
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
3420 type.
3421
3422 2020-11-22 Jeff Law <law@redhat.com>
3423
3424 * config/h8300/jumpcall.md (branch_true, branch_false): Revert
3425 recent change. Ensure operand[0] is always the target label.
3426
3427 2020-11-22 Iain Sandoe <iain@sandoe.co.uk>
3428
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.
3433
3434 2020-11-21 Marek Polacek <polacek@redhat.com>
3435
3436 PR c++/94695
3437 * doc/invoke.texi: Update the -Wrange-loop-construct description.
3438
3439 2020-11-21 Jan Hubicka <jh@suse.cz>
3440
3441 * tree-ssa-alias.c (ao_compare::compare_ao_refs,
3442 ao_compare::hash_ao_ref): Use OEP_MATCH_SIDE_EFFECTS.
3443
3444 2020-11-21 Jan Hubicka <jh@suse.cz>
3445
3446 * ipa-icf.c (sem_function::equals_wpa): Do not compare ODR type with
3447 -fno-devirtualize.
3448 (sem_item_optimizer::update_hash_by_addr_refs): Hash anonymous ODR
3449 types by TYPE_UID of their main variant.
3450
3451 2020-11-21 Aaron Sawdey <acsawdey@linux.ibm.com>
3452
3453 * config/rs6000/rs6000.c (rs6000_option_override_internal):
3454 Enable vector pair memcpy/memmove expansion.
3455
3456 2020-11-21 Aaron Sawdey <acsawdey@linux.ibm.com>
3457
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):
3502 Update to OO mode.
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.
3519
3520 2020-11-21 Aaron Sawdey <acsawdey@linux.ibm.com>
3521
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
3534 opaque types.
3535
3536 2020-11-20 Michael Meissner <meissner@linux.ibm.com>
3537
3538 * config/rs6000/rs6000-call.c (rs6000_expand_builtin): Add missing
3539 XSCMP* cases for IEEE 128-bit long double.
3540
3541 2020-11-20 Jason Merrill <jason@redhat.com>
3542
3543 PR c++/97918
3544 * dwarf2out.c (dwarf2out_early_finish): flush_limbo_die_list
3545 after gen_scheduled_generic_parms_dies.
3546
3547 2020-11-20 Martin Sebor <msebor@redhat.com>
3548
3549 PR middle-end/97879
3550 * tree-core.h (enum attribute_flags): Add ATTR_FLAG_INTERNAL.
3551
3552 2020-11-20 Jan Hubicka <jh@suse.cz>
3553
3554 * ipa-icf-gimple.c (func_checker::hash_operand): Improve hashing of
3555 decls.
3556
3557 2020-11-20 Jan Hubicka <jh@suse.cz>
3558
3559 * ipa-icf-gimple.c (func_checker::compare_decl): Do not compare types
3560 of local variables.
3561
3562 2020-11-20 Nathan Sidwell <nathan@acm.org>
3563
3564 * doc/invoke.texi: Replace a couple of @code with @command
3565
3566 2020-11-20 Tamar Christina <tamar.christina@arm.com>
3567
3568 * tree-vect-slp.c (vectorizable_slp_permutation): Update types on nodes
3569 when needed.
3570
3571 2020-11-20 Richard Biener <rguenther@suse.de>
3572
3573 * tree-vect-slp.c (maybe_push_to_hybrid_worklist): New function.
3574 (vect_detect_hybrid_slp): Use it. Perform a backward walk
3575 over the IL.
3576
3577 2020-11-20 Richard Biener <rguenther@suse.de>
3578
3579 * tree-vect-slp.c (vect_print_slp_tree): Also dump
3580 SLP_TREE_REPRESENTATIVE.
3581
3582 2020-11-20 Jakub Jelinek <jakub@redhat.com>
3583
3584 PR libstdc++/88101
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
3589 const variables.
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.
3598
3599 2020-11-20 Jakub Jelinek <jakub@redhat.com>
3600
3601 PR target/97528
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
3604 of PLUS.
3605
3606 2020-11-20 Eric Botcazou <ebotcazou@adacore.com>
3607
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.
3615
3616 2020-11-20 Jan Hubicka <jh@suse.cz>
3617
3618 * ipa-icf-gimple.c (func_checker::operand_equal_p): Fix comment.
3619
3620 2020-11-20 Jan Hubicka <jh@suse.cz>
3621
3622 * ipa-icf-gimple.c (func_checker::hash_operand): Hash gimple clobber.
3623 (func_checker::operand_equal_p): Special case gimple clobber.
3624
3625 2020-11-20 Uroš Bizjak <ubizjak@gmail.com>
3626
3627 PR target/97873
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.
3644
3645 2020-11-20 Jakub Jelinek <jakub@redhat.com>
3646
3647 PR other/97911
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.
3653
3654 2020-11-20 Kewen Lin <linkw@linux.ibm.com>
3655
3656 * config/rs6000/rs6000.md (p8_mtvsrd_df): Fix insn type.
3657
3658 2020-11-20 Martin Uecker <muecker@gwdg.de>
3659
3660 * gimplify.c (gimplify_modify_expr_rhs): Optimizie
3661 NOP_EXPRs that contain compound literals.
3662
3663 2020-11-19 Jakub Jelinek <jakub@redhat.com>
3664
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.
3670
3671 2020-11-19 Andrew MacLeod <amacleod@redhat.com>
3672
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.
3678
3679 2020-11-19 Jan Hubicka <jh@suse.cz>
3680
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.
3685
3686 2020-11-19 Jakub Jelinek <jakub@redhat.com>
3687
3688 PR c/97860
3689 * tree.c (array_type_nelts): For complete arrays with zero min
3690 and NULL max and zero size return -1.
3691
3692 2020-11-19 Nathan Sidwell <nathan@acm.org>
3693
3694 * configure.ac: Add tests for fstatat, sighandler_t, O_CLOEXEC,
3695 unix-domain and ipv6 sockets.
3696 * config.in: Rebuilt.
3697 * configure: Rebuilt.
3698
3699 2020-11-19 Dimitar Dimitrov <dimitar@dinux.eu>
3700
3701 * config/pru/alu-zext.md: Add lmbd patterns for zero_extend
3702 variants.
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.
3711
3712 2020-11-19 Richard Sandiford <richard.sandiford@arm.com>
3713
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.
3727
3728 2020-11-19 Wilco Dijkstra <wdijkstr@arm.com>
3729
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):
3735 add new costs.
3736
3737 2020-11-19 Wilco Dijkstra <wdijkstr@arm.com>
3738
3739 * config/aarch64/aarch64.c (aarch64_expand_cpymem): Cleanup code and
3740 comments, tweak expansion decisions and improve tail expansion.
3741
3742 2020-11-19 Richard Biener <rguenther@suse.de>
3743
3744 * fold-const.c (operand_compare::hash_operand): Fix typo.
3745
3746 2020-11-19 Richard Biener <rguenther@suse.de>
3747
3748 * tree-ssa-reassoc.c (get_rank): Refactor to consistently
3749 use the cache and dump ranks assigned.
3750
3751 2020-11-19 Jan Hubicka <jh@suse.cz>
3752
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
3755 class.
3756 (operand_compare::hash_operand): Hash ODR type for OBJ_TYPE_REF.
3757
3758 2020-11-19 Joel Hutton <joel.hutton@arm.com>
3759
3760 * config/aarch64/aarch64-simd.md: Add vec_widen_lshift_hi/lo<mode>
3761 patterns.
3762 * tree-vect-stmts.c (vectorizable_conversion): Fix for widen_lshift
3763 case.
3764
3765 2020-11-19 Joel Hutton <joel.hutton@arm.com>
3766
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,
3773 subtracts.
3774 * tree-inline.c (estimate_operator_cost): Add case for widening adds,
3775 subtracts.
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
3779 pattern.
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,
3784 subtract.
3785 (supportable_widening_operation): Add case for widened add, subtract.
3786 * tree.def
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.
3793
3794 2020-11-19 Joel Hutton <joel.hutton@arm.com>
3795
3796 * config/aarch64/aarch64-simd.md: New patterns
3797 vec_widen_saddl_lo/hi_<mode>.
3798
3799 2020-11-19 Richard Biener <rguenther@suse.de>
3800
3801 PR tree-optimization/97901
3802 * tree-ssa-propagate.c (clean_up_loop_closed_phi): Compute
3803 dominators and use replace_uses_by.
3804
3805 2020-11-19 Eric Botcazou <ebotcazou@adacore.com>
3806
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.
3812
3813 2020-11-19 Richard Biener <rguenther@suse.de>
3814
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.
3821
3822 2020-11-19 Uroš Bizjak <ubizjak@gmail.com>
3823
3824 * config/i386/i386.md (*<absneg:code><mode>2_i387_1):
3825 Disable for TARGET_SSE_MATH modes.
3826
3827 2020-11-19 Jeff Law <law@redhat.com>
3828
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
3833 prototype.
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.
3839
3840 2020-11-18 Roger Sayle <roger@nextmovesoftware.com>
3841
3842 PR middle-end/85811
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
3877 respectively.
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
3887 of HONOR_SNANS.
3888
3889 2020-11-18 Jakub Jelinek <jakub@redhat.com>
3890
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.
3895
3896 2020-11-18 Jakub Jelinek <jakub@redhat.com>
3897
3898 * opts.h (struct cl_var): New type.
3899 (cl_vars): Declare.
3900 * optc-gen.awk: Generate cl_vars array.
3901
3902 2020-11-18 Eugene Rozenfeld <Eugene.Rozenfeld@microsoft.com>
3903
3904 PR tree-optimization/96671
3905 * match.pd (three xor patterns): New patterns.
3906
3907 2020-11-18 Jakub Jelinek <jakub@redhat.com>
3908
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.
3913
3914 2020-11-18 Jakub Jelinek <jakub@redhat.com>
3915
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.
3922
3923 2020-11-18 Vladimir Makarov <vmakarov@redhat.com>
3924
3925 PR target/97870
3926 * lra-constraints.c (curr_insn_transform): Do not delete asm goto
3927 with wrong constraints. Nullify it saving CFG.
3928
3929 2020-11-18 Jozef Lawrynowicz <jozef.l@mittosystems.com>
3930
3931 * config/msp430/msp430.md (mulhi3): New.
3932 (mulsi3): New.
3933 (mulsidi3): Rename to *mulsidi3_inline.
3934 (umulsidi3): Rename to *umulsidi3_inline.
3935 (mulsidi3): New define_expand.
3936 (umulsidi3): New define_expand.
3937
3938 2020-11-18 Richard Biener <rguenther@suse.de>
3939
3940 PR tree-optimization/97886
3941 * tree-vect-loop.c (vectorizable_lc_phi): Properly assign
3942 vector types to invariants for SLP.
3943
3944 2020-11-18 Iain Buclaw <ibuclaw@gdcproject.org>
3945
3946 * config.gcc (*-*-dragonfly*): Add dragonfly-d.o and t-dragonfly.
3947 * config/dragonfly-d.c: New file.
3948 * config/t-dragonfly: New file.
3949
3950 2020-11-18 Jakub Jelinek <jakub@redhat.com>
3951
3952 PR middle-end/97862
3953 * omp-expand.c (expand_omp_for_init_vars): Don't use the sqrt path
3954 if number of iterations is constant 0.
3955
3956 2020-11-18 Kito Cheng <kito.cheng@sifive.com>
3957
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.
3989 * configure: Regen.
3990
3991 2020-11-18 Kito Cheng <kito.cheng@sifive.com>
3992
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.
4001 (fence_i): Ditto.
4002 * config/riscv/riscv.opt (riscv_zi_subext): New.
4003
4004 2020-11-18 Kito Cheng <kito.cheng@sifive.com>
4005
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.
4012
4013 2020-11-18 Jiufu Guo <guojiufu@linux.ibm.com>
4014
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
4019 with flag argument.
4020 * tree-ssa-propagate.c (clean_up_loop_closed_phi): New function.
4021
4022 2020-11-17 Sebastian Pop <spop@amazon.com>
4023
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.
4027
4028 2020-11-17 Sebastian Pop <spop@amazon.com>
4029
4030 * config.gcc: Add --with-tune to AArch64 configure flags.
4031
4032 2020-11-17 Andrew MacLeod <amacleod@redhat.com>
4033
4034 PR tree-optimization/91029
4035 * range-op.cc (operator_trunc_mod::op1_range): New.
4036
4037 2020-11-17 Jan Hubicka <jh@suse.cz>
4038
4039 * ipa-icf.c (sem_function::hash_stmt): Fix conditional on
4040 variably_modified_type_p.
4041
4042 2020-11-17 Nathan Sidwell <nathan@acm.org>
4043
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.
4047
4048 2020-11-17 Andrew MacLeod <amacleod@redhat.com>
4049
4050 PR tree-optimization/83072
4051 * range-op.cc (wi_optimize_and_or): Remove zero from IOR range when
4052 mask is non-zero.
4053
4054 2020-11-17 Joseph Myers <joseph@codesourcery.com>
4055
4056 * ginclude/float.h (CR_DECIMAL_DIG): Also define for
4057 [__STDC_WANT_IEC_60559_EXT__].
4058
4059 2020-11-17 Joseph Myers <joseph@codesourcery.com>
4060
4061 * ginclude/float.h [__STDC_VERSION__ > 201710L] (FLT_IS_IEC_60559,
4062 DBL_IS_IEC_60559, LDBL_IS_IEC_60559): New macros.
4063
4064 2020-11-17 Aaron Sawdey <acsawdey@linux.ibm.com>
4065
4066 PR target/96791
4067 * mode-classes.def: Add MODE_OPAQUE.
4068 * machmode.def: Add OPAQUE_MODE.
4069 * tree.def: Add OPAQUE_TYPE for types that will use
4070 MODE_OPAQUE.
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
4079 like BLKmode.
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.
4085
4086 2020-11-17 Jan Hubicka <hubicka@ucw.cz>
4087 Martin Liska <mliska@suse.cz>
4088
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
4096 m_alias_sets_hash.
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
4101 m_alias_sets_hash.
4102
4103 2020-11-17 Jan Hubicka <jh@suse.cz>
4104
4105 PR bootstrap/97857
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
4109 CXX_ODR_P.
4110 * tree-streamer-out.c (pack_ts_type_common_value_fields): Set
4111 CXX_ODR_P according to the canonical type.
4112
4113 2020-11-17 Nathan Sidwell <nathan@acm.org>
4114
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
4121 enum PT_flags.
4122
4123 2020-11-17 Richard Sandiford <richard.sandiford@arm.com>
4124
4125 PR tree-optimization/97693
4126 * tree-vect-stmts.c (vectorizable_call): Pass the required vectype
4127 to vect_get_vec_defs_for_operand.
4128
4129 2020-11-17 Liu Hao <lh_mouse@126.com>
4130
4131 * config/i386/msformat-c.c: Add more length modifiers.
4132
4133 2020-11-17 Tamar Christina <tamar.christina@arm.com>
4134
4135 PR driver/97574
4136 * gcc.c (convert_filename): Don't add suffix to things that are
4137 not files.
4138 (not_actual_file_p): Use supplied argument.
4139
4140 2020-11-17 Haochen Gui <guihaoc@gcc.gnu.org>
4141
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
4146 declarations.
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.
4160
4161 2020-11-17 liuhongt <hongtao.liu@intel.com>
4162
4163 PR target/97194
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.
4170
4171 2020-11-17 Martin Sebor <msebor@redhat.com>
4172
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.
4177
4178 2020-11-17 Martin Sebor <msebor@redhat.com>
4179
4180 PR middle-end/95673
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.
4186
4187 2020-11-17 Joseph Myers <joseph@codesourcery.com>
4188
4189 * ginclude/float.h (DEC32_SNAN, DEC64_SNAN, DEC128_SNAN): New C2x
4190 macros.
4191
4192 2020-11-17 Joseph Myers <joseph@codesourcery.com>
4193
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
4197 macros.
4198 * doc/sourcebuild.texi (Effective-Target Keywords): Document inff.
4199
4200 2020-11-17 Armin Brauns via Gcc-patches <gcc-patches@gcc.gnu.org>
4201
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.
4207
4208 2020-11-16 Roger Sayle <roger@nextmovesoftware.com>
4209
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.
4222
4223 2020-11-16 Martin Liska <mliska@suse.cz>
4224
4225 * params.opt: Add missing dot.
4226
4227 2020-11-16 Jan Hubicka <jh@suse.cz>
4228
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
4256 modreflattice.
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.
4284
4285 2020-11-16 Jan Hubicka <jh@suse.cz>
4286
4287 PR middle-end/97840
4288 * ipa-modref.c (analyze_ssa_name_flags): Skip clobbers if inlining
4289 is done.
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.
4293
4294 2020-11-16 Richard Biener <rguenther@suse.de>
4295
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
4300 SLP loads here.
4301 (vect_gather_slp_loads): Remove wrapper, new function.
4302 (vect_slp_analyze_bb_1): Call it.
4303
4304 2020-11-16 Richard Biener <rguenther@suse.de>
4305
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.
4310
4311 2020-11-16 Martin Liska <mliska@suse.cz>
4312
4313 * params.opt: All modref parameters miss Optimization and Param
4314 keyword as seen in testsuite failure.
4315
4316 2020-11-16 Jan Hubicka <jh@suse.cz>
4317
4318 * params.opt (-param=modref-max-depth=): Add missing full stop.
4319
4320 2020-11-16 Sebastian Huber <sebastian.huber@embedded-brains.de>
4321
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
4328 option.
4329
4330 2020-11-16 Richard Biener <rguenther@suse.de>
4331
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
4336 visited.
4337
4338 2020-11-16 Martin Liska <mliska@suse.cz>
4339
4340 PR tree-optimization/97736
4341 * tree-switch-conversion.c (switch_decision_tree::analyze_switch_statement):
4342 Prefer bit tests.
4343
4344 2020-11-16 Richard Biener <rguenther@suse.de>
4345
4346 PR tree-optimization/97835
4347 * tree-vect-loop.c (vectorizable_induction): Convert step
4348 scalars rather than step vector.
4349
4350 2020-11-16 Richard Biener <rguenther@suse.de>
4351
4352 PR tree-optimization/97830
4353 * tree-ssa-sccvn.c (vn_reference_eq): Check for incomplete
4354 types before comparing TYPE_SIZE.
4355
4356 2020-11-16 Cui,Lili <lili.cui@intel.com>
4357
4358 * config/i386/i386.h: Add PREFETCHW to march=broadwell.
4359 * doc/invoke.texi: Put PREFETCHW back to relation arch.
4360
4361 2020-11-15 Jozef Lawrynowicz <jozef.l@mittosystems.com>
4362
4363 * config/msp430/msp430.c (msp430_output_labelref): Don't process mspabi
4364 hwmult library function names into GCC-style names.
4365
4366 2020-11-15 Jozef Lawrynowicz <jozef.l@mittosystems.com>
4367
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.
4376
4377 2020-11-15 Maciej W. Rozycki <macro@linux-mips.org>
4378
4379 * config/vax/vax.c (vax_rtx_costs): Use `rtx_code' rather than
4380 `int' for `code'.
4381
4382 2020-11-15 Maciej W. Rozycki <macro@linux-mips.org>
4383
4384 * config/vax/vax.c (vax_output_int_add) <E_DImode>: Fix a typo
4385 in NO_EXTERNAL_INDIRECT_ADDRESS.
4386
4387 2020-11-15 Maciej W. Rozycki <macro@linux-mips.org>
4388
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.
4392
4393 2020-11-15 Aldy Hernandez <aldyh@redhat.com>
4394
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.
4402
4403 2020-11-15 Vladimir N. Makarov <vmakarov@redhat.com>
4404
4405 * lra.c (lra_process_new_insns): Don't put reload insns in the
4406 last empty BB.
4407
4408 2020-11-15 Jan Hubicka <jh@suse.cz>
4409
4410 * ipa-modref.c (analyze_ssa_name_flags): Make return to clear
4411 EAF_UNUSED flag.
4412
4413 2020-11-14 Jan Hubicka <jh@suse.cz>
4414
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
4421 known.
4422 (dump_eaf_flags): New function.
4423 (modref_summary::dump): Use it.
4424 (get_modref_function_summary): Be read for current_function_decl
4425 being NULL.
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.
4434
4435 2020-11-14 Jakub Jelinek <jakub@redhat.com>
4436
4437 PR debug/97599
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.
4441
4442 2020-11-14 Monk Chiang <monk.chiang@sifive.com>
4443
4444 PR target/97682
4445 * config/riscv/riscv.h (RISCV_PROLOGUE_TEMP_REGNUM): Change register
4446 to t0.
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.
4453
4454 2020-11-14 Jim Wilson <jimw@sifive.com>
4455 cooper.joshua <cooper.joshua@linux.alibaba.com>
4456
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.
4463
4464 2020-11-14 Jakub Jelinek <jakub@redhat.com>
4465
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
4478 MEM_REF.
4479 (lower_rec_input_clauses): Handle allocate for task firstprivatized
4480 non-VLA variables.
4481 (create_task_copyfn): Likewise.
4482
4483 2020-11-13 Jan Hubicka <jh@suse.cz>
4484
4485 * tree-ssa-alias.c (ao_ref_base_alias_ptr_type): Remove accidental
4486 commit.
4487 (ao_ref_alias_ptr_type): Remove accidental commit.
4488
4489 2020-11-13 Kwok Cheung Yeung <kcy@codesourcery.com>
4490
4491 * omp-oacc-kernels-decompose.cc (maybe_build_inner_data_region):
4492 Use langhook instead of accessing language-specific decl
4493 information.
4494
4495 2020-11-13 Gergö Barany <gergo@codesourcery.com>
4496 Thomas Schwinge <thomas@codesourcery.com>
4497
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.
4516
4517 2020-11-13 Thomas Schwinge <thomas@codesourcery.com>
4518
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.
4522
4523 2020-11-13 Thomas Schwinge <thomas@codesourcery.com>
4524
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.
4528
4529 2020-11-13 Jan Hubicka <jh@suse.cz>
4530
4531 * ipa-modref.c (modref_summaries::insert,
4532 modref_summaries_lto::insert): Remove summary if ipa-modref is disabled.
4533
4534 2020-11-13 Jan Hubicka <jh@suse.cz>
4535
4536 * attr-fnspec.h (attr_fnspec::arg_readonly_p): Accept '1'...'9'.
4537
4538 2020-11-13 Peter Jones <pjones@redhat.com>
4539
4540 * doc/extend.texi: Clarify the documentation for the ms_abi
4541 function attribute.
4542
4543 2020-11-13 Andrew MacLeod <amacleod@redhat.com>
4544
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.
4549
4550 2020-11-13 Jason Merrill <jason@redhat.com>
4551
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
4555 enclosing class.
4556 (dwarf2out_imported_module_or_decl_1): Allow importing
4557 individual enumerators.
4558 (force_decl_die): Handle CONST_DECL.
4559
4560 2020-11-13 Vladimir N. Makarov <vmakarov@redhat.com>
4561
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
4570 reloads.
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
4576 for any jump insn.
4577 * lra-spills.c (lra_final_code_change): Remove USEs added in ira
4578 for asm gotos.
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
4584 goto.
4585
4586 2020-11-13 Jakub Jelinek <jakub@redhat.com>
4587
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
4592 reductions.
4593
4594 2020-11-13 Martin Jambor <mjambor@suse.cz>
4595
4596 PR ipa/97816
4597 * ipa-cp.c (value_topo_info<valtype>::propagate_effects): Use
4598 safe_add instead of a simple addition.
4599
4600 2020-11-13 Jozef Lawrynowicz <jozef.l@mittosystems.com>
4601
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.
4606
4607 2020-11-13 Jozef Lawrynowicz <jozef.l@mittosystems.com>
4608
4609 * config/msp430/msp430-protos.h (msp430x_extendhisi): Return int
4610 instead of char *.
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
4628 output insns.
4629 * config/msp430/predicates.md (msp430_cheap_operand): New predicate.
4630 (msp430_high_memory_operand): New predicate.
4631
4632 2020-11-13 Jozef Lawrynowicz <jozef.l@mittosystems.com>
4633
4634 * config/msp430/msp430.c (use_helper_for_const_shift): Add forward
4635 declaration.
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.
4646
4647 2020-11-13 Jozef Lawrynowicz <jozef.l@mittosystems.com>
4648
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.
4655
4656 2020-11-13 Jan Hubicka <jh@suse.cz>
4657
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
4662 accesses.
4663 (func_checker::cmopare_gimple_assign): Do not check LHS types
4664 of memory stores.
4665 * ipa-icf-gimple.h (func_checker): Derive from ao_compare;
4666 add m_tbaa.
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
4671 predicate.
4672 * tree-ssa-alias-compare.h: New file.
4673 * tree-ssa-alias.c: Include tree-ssa-alias-compare.h
4674 and bultins.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.
4682
4683 2020-11-13 Jan Hubicka <jh@suse.cz>
4684
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.
4713
4714 2020-11-13 Andrea Corallo <andrea.corallo@arm.com>
4715
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.
4733
4734 2020-11-13 Andrew MacLeod <amacleod@redhat.com>
4735
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.
4742
4743 2020-11-13 Martin Jambor <mjambor@suse.cz>
4744
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
4748 motion.
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.
4754
4755 2020-11-13 Richard Biener <rguenther@suse.de>
4756
4757 * tree-ssa-sccvn.c (vn_phi_compute_hash): Always hash the
4758 number of predecessors. Hash the block number also for
4759 loop header PHIs.
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.
4764
4765 2020-11-13 Iain Sandoe <iain@sandoe.co.uk>
4766
4767 * doc/extend.texi: Don't try to line-wrap an @r command.
4768
4769 2020-11-13 Richard Biener <rguenther@suse.de>
4770
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.
4774
4775 2020-11-13 Andrea Corallo <andrea.corallo@arm.com>
4776
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.
4794
4795 2020-11-13 Sudakshina Das <sudi.das@arm.com>
4796
4797 * config/aarch64/aarch64-protos.h (aarch64_expand_setmem): New
4798 declaration.
4799 * config/aarch64/aarch64.c (aarch64_gen_store_pair): Add case for
4800 E_V16QImode.
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.
4808
4809 2020-11-13 Iain Sandoe <iain@sandoe.co.uk>
4810
4811 PR objc/90707
4812 * doc/extend.texi: Document the objc_nullability attribute.
4813
4814 2020-11-13 Iain Sandoe <iain@sandoe.co.uk>
4815
4816 PR objc/77404
4817 * doc/extend.texi: Document the objc_root_class attribute.
4818 * doc/invoke.texi: Document -Wobjc-root-class.
4819
4820 2020-11-13 Richard Biener <rguenther@suse.de>
4821
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.
4832
4833 2020-11-13 Aldy Hernandez <aldyh@redhat.com>
4834
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.
4842
4843 2020-11-13 Aldy Hernandez <aldyh@redhat.com>
4844
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
4852 and propagator.
4853
4854 2020-11-13 Aldy Hernandez <aldyh@redhat.com>
4855
4856 * tree-vrp.c (class vrp_prop): Move entire class...
4857 (class vrp_folder): ...before here.
4858
4859 2020-11-13 Aldy Hernandez <aldyh@redhat.com>
4860
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
4865 m_vr_values.
4866 (execute_vrp): Use vrp_jump_threader.
4867
4868 2020-11-13 Aldy Hernandez <aldyh@redhat.com>
4869
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
4916 vrp_dom_walker.
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.
4923
4924 2020-11-13 Andrew MacLeod <amacleod@redhat.com>
4925
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.
4929
4930 2020-11-12 Nelson Chu <nelson.chu@sifive.com>
4931
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.
4935
4936 2020-11-12 Joseph Myers <joseph@codesourcery.com>
4937
4938 * doc/cpp.texi (__has_attribute): Document when scopes are allowed
4939 for C.
4940 (__has_c_attribute): New.
4941
4942 2020-11-12 Jakub Jelinek <jakub@redhat.com>
4943
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
4964 as shared.
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
4969 BUILTIN_GOMP_FREE.
4970 * tree-ssa-ccp.c (evaluate_stmt): Handle BUILTIN_GOMP_ALLOC.
4971 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Handle
4972 BUILTIN_GOMP_ALLOC.
4973 (mark_all_reaching_defs_necessary_1): Handle BUILTIN_GOMP_ALLOC
4974 and BUILTIN_GOMP_FREE.
4975 (propagate_necessity): Likewise.
4976
4977 2020-11-12 Martin Jambor <mjambor@suse.cz>
4978
4979 * cgraphclones.c (cgraph_node::materialize_clone): Check that clone
4980 info is not NULL before attempting to dump it.
4981
4982 2020-11-12 Martin Jambor <mjambor@suse.cz>
4983
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.
5001
5002 2020-11-12 Marek Polacek <polacek@redhat.com>
5003
5004 * system.h (WARN_UNUSED_RESULT): Define for GCC >= 3.4.
5005 * tree.h (maybe_wrap_with_location): Add WARN_UNUSED_RESULT.
5006
5007 2020-11-12 Jan Hubicka <jh@suse.cz>
5008
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.
5012
5013 2020-11-12 Richard Biener <rguenther@suse.de>
5014
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.
5020
5021 2020-11-12 Jan Hubicka <jh@suse.cz>
5022
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.
5029
5030 2020-11-12 Richard Biener <rguenther@suse.de>
5031
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.
5040
5041 2020-11-12 Alex Coplan <alex.coplan@arm.com>
5042
5043 PR target/97730
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.
5048
5049 2020-11-12 Richard Biener <rguenther@suse.de>
5050
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
5054 for visited values.
5055 (sorted_array_from_bitmap_set): Walk over values and adjust.
5056
5057 2020-11-12 Andreas Krebbel <krebbel@linux.ibm.com>
5058
5059 PR target/97326
5060 * config/s390/vector.md: Support vector floating point modes in
5061 vec_cmp.
5062
5063 2020-11-12 Andreas Krebbel <krebbel@linux.ibm.com>
5064
5065 * config/s390/vector.md: Rename tointvec to TOINTVEC.
5066 * config/s390/vx-builtins.md: Likewise.
5067
5068 2020-11-12 Jason Merrill <jason@redhat.com>
5069
5070 PR debug/97060
5071 * dwarf2out.c (gen_subprogram_die): It's a declaration
5072 if DECL_INITIAL isn't set.
5073
5074 2020-11-12 David Malcolm <dmalcolm@redhat.com>
5075
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.
5082
5083 2020-11-11 Iain Sandoe <iain@sandoe.co.uk>
5084
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.
5095
5096 2020-11-11 Patrick Palka <ppalka@redhat.com>
5097
5098 PR c++/88115
5099 * common.opt (-fabi-version): Document =15.
5100 * doc/invoke.texi (C++ Dialect Options): Likewise.
5101
5102 2020-11-11 Marek Polacek <polacek@redhat.com>
5103
5104 PR c++/97518
5105 * tree.c (maybe_wrap_with_location): Don't add a location
5106 wrapper around an artificial and ignored decl.
5107
5108 2020-11-11 Richard Biener <rguenther@suse.de>
5109
5110 PR tree-optimization/97623
5111 * tree-ssa-pre.c (create_expression_by_pieces): Guard
5112 NEW_SETS access.
5113 (insert_into_preds_of_block): Likewise.
5114
5115 2020-11-11 Richard Biener <rguenther@suse.de>
5116
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.
5121
5122 2020-11-11 Richard Biener <rguenther@suse.de>
5123
5124 PR tree-optimization/97623
5125 * params.opt (-param=max-pre-hoist-insert-iterations): Remove
5126 again.
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.
5130
5131 2020-11-11 Richard Sandiford <richard.sandiford@arm.com>
5132
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.
5154
5155 2020-11-11 Richard Sandiford <richard.sandiford@arm.com>
5156
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.
5160
5161 2020-11-11 Hongtao Liu <hongtao.liu@intel.com>
5162 Hongyu Wang <hongyu.wang@intel.com>
5163
5164 * common/config/i386/cpuinfo.h (get_available_features):
5165 Detect AVXVNNI.
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
5171 avx2 is disabled.
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
5175 for avxvnni.
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
5186 __AVXVNNI__.
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.
5212
5213 2020-11-11 Martin Liska <mliska@suse.cz>
5214
5215 * tree.c (copy_node): Fix spelling.
5216
5217 2020-11-11 Richard Biener <rguenther@suse.de>
5218
5219 * tree-ssa-pre.c (phi_translate_set): Do not sort the
5220 expression set topologically.
5221
5222 2020-11-11 Aldy Hernandez <aldyh@redhat.com>
5223
5224 * value-range.cc (irange::set): Early exit on VR_VARYING.
5225
5226 2020-11-11 Zhiheng Xie <xiezhiheng@huawei.com>
5227 Nannan Zheng <zhengnannan@huawei.com>
5228
5229 * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG
5230 for arithmetic operation intrinsics.
5231
5232 2020-11-11 Strager Neds <strager.nds@gmail.com>
5233
5234 * cgraph.h (symtab_node::set_section_for_node): Declare new
5235 overload.
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
5239 overload.
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.
5244
5245 2020-11-11 Strager Neds <strager.nds@gmail.com>
5246
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).
5251
5252 2020-11-11 liuhongt <hongtao.liu@intel.com>
5253
5254 * config/i386/i386.h (PTA_MOVDIRI, PTA_MOVDIR64B,
5255 PTA_AMX_TILE, PTA_AMX_INT8, PTA_AMX_BF16, PTA_HRESET):
5256 Formatting.
5257
5258 2020-11-11 Ilya Leoshkevich <iii@linux.ibm.com>
5259
5260 * config/s390/s390.h (HAVE_TF): Use opaque value when
5261 GENERATOR_FILE is defined.
5262
5263 2020-11-10 Strager Neds <strager.nds@gmail.com>
5264
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.
5278
5279 2020-11-10 Aldy Hernandez <aldyh@redhat.com>
5280
5281 * value-range.cc (irange::set): Early exit for poly ints.
5282
5283 2020-11-10 Tobias Burnus <tobias@codesourcery.com>
5284
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
5288
5289 2020-11-10 Matthew Malcomson <matthew.malcomson@arm.com>
5290
5291 * opts.c (control_options_for_live_patching): Reform 'is incompatible
5292 with' error messages to use a standard message with differing format
5293 arguments.
5294 (finish_options): Likewise.
5295
5296 2020-11-10 Richard Biener <rguenther@suse.de>
5297
5298 PR tree-optimization/97769
5299 * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
5300 Remove assert.
5301
5302 2020-11-10 Richard Biener <rguenther@suse.de>
5303
5304 PR tree-optimization/97780
5305 * tree-ssa-pre.c (fini_pre): Deal with added basic blocks
5306 when freeing PHI_TRANS_TABLE.
5307
5308 2020-11-10 Zhiheng Xie <xiezhiheng@huawei.com>
5309 Nannan Zheng <zhengnannan@huawei.com>
5310
5311 * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG
5312 for tbl/tbx intrinsics.
5313
5314 2020-11-10 Chung-Lin Tang <cltang@codesourcery.com>
5315
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
5323 for OpenMP cases.
5324 (lower_omp_target): Add lowering handling of GOMP_MAP_ATTACH/DETACH for
5325 OpenMP cases.
5326
5327 2020-11-10 Ilya Leoshkevich <iii@linux.ibm.com>
5328
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
5341 pair or to a VR.
5342 (s390_emit_compare): Force TFmode operands into registers on
5343 z14+.
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
5348 alias.
5349 (ALL): Add FPRX2.
5350 (FP_ALL): Add FPRX2 for z14+, restrict TFmode to z13-.
5351 (FP): Likewise.
5352 (FP_ANYTF): New mode iterator.
5353 (BFP): Add FPRX2 for z14+, restrict TFmode to z13-.
5354 (TD_TF): Likewise.
5355 (xde): Add FPRX2.
5356 (nBFP): Likewise.
5357 (nDFP): Likewise.
5358 (DSF): Likewise.
5359 (DFDI): Likewise.
5360 (SFSI): Likewise.
5361 (DF): Likewise.
5362 (SF): Likewise.
5363 (fT0): Likewise.
5364 (bt): Likewise.
5365 (_d): Likewise.
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
5385 itof.
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
5389 of mode with fsimp.
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
5394 mode with fsimp.
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
5398 fsimp.
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
5409 mode with fsimp.
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
5413 mode with fsimp.
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
5417 mode with fsimp.
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
5421 mode with fdiv.
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
5428 mode with fdiv.
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
5438 of mode with fsqrt.
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+.
5445 (V_HW2): Likewise.
5446 (VFT): Likewise.
5447 (VF_HW): Likewise.
5448 (V_128): Likewise.
5449 (tf_vr): New mode_attr.
5450 (tointvec): Add TF.
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
5454 z13-.
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.
5508
5509 2020-11-10 Eric Botcazou <ebotcazou@adacore.com>
5510
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.
5517
5518 2020-11-10 Richard Biener <rguenther@suse.de>
5519
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
5525 CONSTANT.
5526 (get_expr_value_id): Return the new value_id member.
5527 (vn_valnum_from_value_id): Split out and simplify constant
5528 value id handling.
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.
5533
5534 2020-11-10 Alex Coplan <alex.coplan@arm.com>
5535
5536 * doc/md.texi (Modifiers): Fix grammar in description of
5537 earlyclobber constraint modifier.
5538
5539 2020-11-10 Jakub Jelinek <jakub@redhat.com>
5540
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.
5545
5546 2020-11-10 Richard Biener <rguenther@suse.de>
5547
5548 PR tree-optimization/97760
5549 * tree-vect-loop.c (check_reduction_path): Reject
5550 reduction paths we do not handle in epilogue generation.
5551
5552 2020-11-10 Aldy Hernandez <aldyh@redhat.com>
5553
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
5560 and wi::max_value.
5561 (irange::set_varying): Same.
5562 (irange::normalize_min_max): Remove comment.
5563
5564 2020-11-10 Andrew MacLeod <amacleod@redhat.com>
5565
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.
5571
5572 2020-11-09 Claudiu Zissulescu <claziss@synopsys.com>
5573
5574 * config/arc/arc.c (arc_split_move): Recognize vadd2 instructions.
5575 * config/arc/arc.md (movdi_insn): Update pattern to use vadd2
5576 instructions.
5577 (movdf_insn): Likewise.
5578 (maddhisi4): New pattern.
5579 (umaddhisi4): Likewise.
5580 * config/arc/simdext.md (mov<mode>_int): Update pattern to use
5581 vadd2.
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
5588 constraint.
5589
5590 2020-11-09 Aldy Hernandez <aldyh@redhat.com>
5591
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.
5610 (range_tests): New.
5611
5612 2020-11-09 Richard Biener <rguenther@suse.de>
5613
5614 PR tree-optimization/97761
5615 * tree-vect-slp.c (vect_bb_slp_mark_live_stmts): Remove
5616 premature end of DFS walk.
5617
5618 2020-11-09 Aldy Hernandez <aldyh@redhat.com>
5619
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.
5625
5626 2020-11-09 Andrea Corallo <andrea.corallo@arm.com>
5627
5628 * config/aarch64/aarch64-builtins.c
5629 (aarch64_expand_fcmla_builtin): Do not alter force_reg returned
5630 register.
5631
5632 2020-11-09 Richard Biener <rguenther@suse.de>
5633
5634 PR tree-optimization/97753
5635 * tree-vect-loop.c (vectorizable_induction): Fill vec_steps
5636 when CSEing inside the group.
5637
5638 2020-11-09 Richard Biener <rguenther@suse.de>
5639
5640 PR tree-optimization/97746
5641 * tree-vect-patterns.c (vect_determine_precisions): First walk PHIs.
5642
5643 2020-11-09 Richard Biener <rguenther@suse.de>
5644
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):
5650 Likewise.
5651 (eliminate_dom_walker::eliminate_stmt): Likewise.
5652
5653 2020-11-09 Richard Biener <rguenther@suse.de>
5654
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.
5668
5669 2020-11-09 Lili Cui <lili.cui@intel.com>
5670
5671 PR target/97685
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.
5686
5687 2020-11-09 Kewen Lin <linkw@linux.ibm.com>
5688
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.
5693
5694 2020-11-08 David Edelsohn <dje.gcc@gmail.com>
5695
5696 * config/rs6000/rs6000.c (rs6000_mangle_decl_assembler_name): Change
5697 DECL_IS_BUILTIN -> DECL_IS_UNDECLARED_BUILTIN.
5698
5699 2020-11-07 Martin Uecker <muecker@gwdg.de>
5700
5701 * doc/extend.texi: Document mixing labels and code.
5702 * doc/invoke.texi: Likewise.
5703
5704 2020-11-06 Segher Boessenkool <segher@kernel.crashing.org>
5705
5706 * config/rs6000/rs6000.md (@tablejump<mode>_normal): Don't abuse
5707 operands[].
5708 (@tablejump<mode>_nospec): Ditto.
5709
5710 2020-11-06 Peter Bergner <bergner@linux.ibm.com>
5711
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.
5716
5717 2020-11-06 Jeff Law <law@torsion.usersys.redhat.com>
5718
5719 PR target/91489
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.
5725
5726 2020-11-06 Segher Boessenkool <segher@kernel.crashing.org>
5727
5728 PR target/96933
5729 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
5730 TARGET_POWERPC64 instead of TARGET_64BIT.
5731
5732 2020-11-06 Joseph Myers <joseph@codesourcery.com>
5733
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
5737 functions.
5738 * doc/extend.texi (__builtin_nansd32, __builtin_nansd64)
5739 (__builtin_nansd128): Document.
5740 * doc/sourcebuild.texi (Effective-Target Keywords): Document
5741 fenv_exceptions_dfp.
5742
5743 2020-11-06 Bin Cheng <bin.cheng@linux.alibaba.com>
5744
5745 * tree-ssa-uninit.c (find_var_cmp_const): New function.
5746 (use_pred_not_overlap_with_undef_path_pred): Call above.
5747
5748 2020-11-06 Iain Sandoe <iain@sandoe.co.uk>
5749
5750 * config/darwin-c.c: Allow for Darwin20 to correspond to macOS 11.
5751 * config/darwin-driver.c: Likewise.
5752
5753 2020-11-06 Richard Biener <rguenther@suse.de>
5754
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
5760 of the table.
5761
5762 2020-11-06 Andrew MacLeod <amacleod@redhat.com>
5763
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.
5768
5769 2020-11-06 Darius Galis <darius.galis@cyberthorstudios.com>
5770
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
5774 be used as dest.
5775
5776 2020-11-06 Nathan Sidwell <nathan@acm.org>
5777
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.
5788
5789 2020-11-06 David Candler <david.candler@arm.com>
5790
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.
5817
5818 2020-11-06 Richard Sandiford <richard.sandiford@arm.com>
5819
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
5837 patterns for SVE.
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.
5842
5843 2020-11-06 Martin Liska <mliska@suse.cz>
5844
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):
5848 Use the option.
5849 * tree-switch-conversion.h (is_enabled): New function.
5850
5851 2020-11-06 Richard Biener <rguenther@suse.de>
5852
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.
5877
5878 2020-11-06 Richard Biener <rguenther@suse.de>
5879
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.
5885
5886 2020-11-06 Richard Biener <rguenther@suse.de>
5887
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.
5894
5895 2020-11-06 Jan Hubicka <jh@suse.cz>
5896
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.
5906
5907 2020-11-06 Jakub Jelinek <jakub@redhat.com>
5908
5909 * ipa-modref-tree.h: Fix comment typos.
5910 * ipa-modref.c: Likewise.
5911
5912 2020-11-06 Andreas Krebbel <krebbel@linux.ibm.com>
5913
5914 * config/s390/s390.c (s390_option_override_internal): Remove
5915 override of inline params.
5916
5917 2020-11-06 Richard Biener <rguenther@suse.de>
5918
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
5925 in a forward walk.
5926
5927 2020-11-06 Richard Biener <rguenther@suse.de>
5928
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.
5935
5936 2020-11-06 Jan Hubicka <jh@suse.cz>
5937
5938 * attr-fnspec.h (attr_fnspec::get_str): New accessor
5939 * ipa-fnsummary.c (read_ipa_call_summary): Store also parm info
5940 for builtins.
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.
5970
5971 2020-11-06 Jan Hubicka <jh@suse.cz>
5972
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.
5988
5989 2020-11-06 Richard Biener <rguenther@suse.de>
5990
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.
5994
5995 2020-11-06 Jeff Law <law@redhat.com>
5996
5997 PR tree-optimization/97223
5998 * match.pd (overflow detection and optimization): Handle conversions.
5999
6000 2020-11-06 Eugene Rozenfeld <erozen@microsoft.com>
6001
6002 * match.pd (x >> x): New pattern.
6003
6004 2020-11-06 Kito Cheng <kito.cheng@sifive.com>
6005
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.
6010
6011 2020-11-06 Kito Cheng <kito.cheng@sifive.com>
6012
6013 PR target/96307
6014 * toplev.c (process_options): Remove param_asan_stack checking for kasan
6015 option checking.
6016
6017 2020-11-05 Marek Polacek <polacek@redhat.com>
6018
6019 PR c++/97675
6020 * doc/invoke.texi: Document -Wexceptions.
6021
6022 2020-11-05 Marek Polacek <polacek@redhat.com>
6023
6024 PR c++/25814
6025 * doc/invoke.texi: Document -Wvexing-parse.
6026
6027 2020-11-05 Andrew MacLeod <amacleod@redhat.com>
6028
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
6033 not a value_range.
6034 (range_query::value_on_edge): Ditto.
6035 (range_query::value_of_stmt): Ditto.
6036
6037 2020-11-05 Olivier Hainque <hainque@adacore.com>
6038
6039 * config/aarch64/aarch64-vxworks.h (TARGET_OS_USES_R18):
6040 Remove definition.
6041 (STATIC_CHAIN_REGNUM): Redefine to 9.
6042
6043 2020-11-05 Olivier Hainque <hainque@adacore.com>
6044
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
6048 aarch64.c.
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.
6053
6054 2020-11-05 Jan Hubicka <jh@suse.cz>
6055
6056 * gimple.c (gimple_call_fnspec): Handle C++ new and delete.
6057 * gimple.h (gimple_call_from_new_or_delete): Constify parameter.
6058
6059 2020-11-05 Aldy Hernandez <aldyh@redhat.com>
6060
6061 PR tree-optimization/97721
6062 * gimple-range.cc (get_tree_range): Drop overflow from constants.
6063
6064 2020-11-05 David Malcolm <dmalcolm@redhat.com>
6065
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
6074 explicitly.
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.
6081
6082 2020-11-05 qing zhao <qinzhao@gcc.gnu.org>
6083
6084 PR target/97715
6085 * config/i386/i386.c (zero_all_st_registers): Return
6086 earlier when the FPU is disabled.
6087
6088 2020-11-05 Jan Hubicka <jh@suse.cz>
6089
6090 * ipa-modref.c (parm_map_for_arg): Initialize parm_offset and
6091 parm_offset_knonw.
6092 (read_section): Set writes_errno to false.
6093
6094 2020-11-05 Richard Biener <rguenther@suse.de>
6095
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):
6100 New function.
6101 (vect_slp_analyze_bb_1): Call it.
6102
6103 2020-11-05 Tamar Christina <tamar.christina@arm.com>
6104
6105 * tree-vect-slp.c (vect_slp_tree_permute_noop_p): New.
6106 (vect_optimize_slp): Optimize permutes.
6107 (vectorizable_slp_permutation): Fix typo.
6108
6109 2020-11-05 Richard Biener <rguenther@suse.de>
6110
6111 PR debug/97718
6112 * dwarf2out.c (add_abstract_origin_attribute): Make sure to
6113 point to the abstract instance.
6114
6115 2020-11-05 Tamar Christina <tamar.christina@arm.com>
6116
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.
6122
6123 2020-11-05 Kewen Lin <linkw@linux.ibm.com>
6124
6125 PR target/96933
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.
6130
6131 2020-11-04 Tamar Christina <tamar.christina@arm.com>
6132
6133 * tree-vect-slp.c (vect_analyze_slp_instance): Moved load/store lanes
6134 check to ...
6135 * tree-vect-loop.c (vect_analyze_loop_2): ..Here
6136
6137 2020-11-04 Ilya Leoshkevich <iii@linux.ibm.com>
6138
6139 * config/s390/s390.c (NR_C_MODES): Unhardcode.
6140 (s390_alloc_pool): Use size_t for iterating from 0 to
6141 NR_C_MODES.
6142 (s390_add_constant): Likewise.
6143 (s390_find_constant): Likewise.
6144 (s390_dump_pool): Likewise.
6145 (s390_free_pool): Likewise.
6146
6147 2020-11-04 Ilya Leoshkevich <iii@linux.ibm.com>
6148
6149 * config/s390/s390.md (RRe): Remove.
6150 (RXe): Remove.
6151
6152 2020-11-04 Andrew MacLeod <amacleod@redhat.com>
6153
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
6173 dependencies.
6174 (gimple_ranger::range_of_phi): Ditto.
6175 (gimple_ranger::range_of_stmt): Check if global range is stale, and
6176 recalculate if so.
6177
6178 2020-11-04 Tobias Burnus <tobias@codesourcery.com>
6179
6180 * targhooks.c (default_zero_call_used_regs): Fix flag-name typo
6181 in sorry.
6182
6183 2020-11-04 Richard Biener <rguenther@suse.de>
6184
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.
6189
6190 2020-11-04 Richard Biener <rguenther@suse.de>
6191
6192 PR tree-optimization/97709
6193 * tree-vect-loop.c (vectorizable_live_operation): Set
6194 SSA_NAME_OCCURS_IN_ABNORMAL_PHI when necessary.
6195
6196 2020-11-04 Jakub Jelinek <jakub@redhat.com>
6197
6198 PR tree-optimization/97690
6199 * tree-ssa-phiopt.c (conditional_replacement): Also optimize
6200 cond ? pow2p_cst : 0 as ((type) cond) << cst.
6201
6202 2020-11-04 Richard Biener <rguenther@suse.de>
6203
6204 * tree-vect-loop.c (vectorizable_induction): Re-instantiate
6205 previously removed CSE of SLP IVs.
6206
6207 2020-11-04 Uroš Bizjak <ubizjak@gmail.com>
6208
6209 * config/i386/i386-options.c (ix86_recompute_optlev_based_flags):
6210 Fix Intel MCU psABI comment w.r.t DEFAULT_PCC_STRUCT_RETURN.
6211
6212 2020-11-04 Richard Biener <rguenther@suse.de>
6213
6214 PR bootstrap/97666
6215 * tree-vect-slp.c (vect_build_slp_tree_2): Revert previous
6216 fix and instead adjust the memset.
6217
6218 2020-11-04 Pat Bernardi <bernardi@adacore.com>
6219
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.
6225
6226 2020-11-04 liuhongt <hongtao.liu@intel.com>
6227
6228 PR target/97540
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.
6234
6235 2020-11-04 liuhongt <hongtao.liu@intel.com>
6236
6237 PR target/97532
6238 * lra-constraints.c (valid_address_p): Handle operand of
6239 special memory constraint.
6240 (process_address_1): Ditto.
6241
6242 2020-11-03 Jan Hubicka <hubicka@ucw.cz>
6243
6244 PR ipa/97695
6245 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Fix ICE with
6246 in dumping code.
6247 (cgraph_node::remove): Save clone info before releasing it and pass it
6248 to unregister.
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.
6256
6257 2020-11-03 Thomas Schwinge <thomas@codesourcery.com>
6258
6259 * omp-low.c (scan_omp_for) <OpenACC>: Use proper location to
6260 'inform' of enclosing parent compute construct.
6261
6262 2020-11-03 Jan Hubicka <hubicka@ucw.cz>
6263
6264 PR ipa/97698
6265 * cgraphclones.c (duplicate_thunk_for_node): Check that info is
6266 non-NULL.
6267
6268 2020-11-03 Uroš Bizjak <ubizjak@gmail.com>
6269
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.
6275
6276 2020-11-03 Dennis Zhang <dennis.zhang@arm.com>
6277
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.
6284
6285 2020-11-03 Yang Yang <yangyang305@huawei.com>
6286
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.
6306
6307 2020-11-03 Richard Biener <rguenther@suse.de>
6308
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.
6314
6315 2020-11-03 Richard Biener <rguenther@suse.de>
6316
6317 PR middle-end/97579
6318 * gimple-isel.cc (gimple_expand_vec_cond_expr): Use
6319 the correct types for the vcond_mask/vec_cmp optab queries.
6320
6321 2020-11-03 Andrew MacLeod <amacleod@redhat.com>
6322
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.
6332
6333 2020-11-03 Andrew MacLeod <amacleod@redhat.com>
6334
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
6338 check.
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.
6353
6354 2020-11-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
6355
6356 * fold-const.c (getbyterep): Remove duplicated statement.
6357
6358 2020-11-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
6359
6360 PR target/97205
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.
6364
6365 2020-11-03 Zhiheng Xie <xiezhiheng@huawei.com>
6366 Nannan Zheng <zhengnannan@huawei.com>
6367
6368 * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG
6369 for AES/SHA/SM3/SM4 intrinsics.
6370
6371 2020-11-03 Zhiheng Xie <xiezhiheng@huawei.com>
6372 Nannan Zheng <zhengnannan@huawei.com>
6373
6374 * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG
6375 for compare intrinsics.
6376
6377 2020-11-03 Richard Biener <rguenther@suse.de>
6378
6379 * dwarf2out.c (maybe_create_die_with_external_ref): Remove
6380 hashtable entry.
6381
6382 2020-11-03 Andrea Corallo <andrea.corallo@arm.com>
6383
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.
6391
6392 2020-11-03 Andrea Corallo <andrea.corallo@arm.com>
6393
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.
6402
6403 2020-11-03 Andrea Corallo <andrea.corallo@arm.com>
6404
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.
6408
6409 2020-11-03 Andrea Corallo <andrea.corallo@arm.com>
6410
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.
6415
6416 2020-11-03 Andrea Corallo <andrea.corallo@arm.com>
6417
6418 * config/arm/arm_neon.h (vst1_lane_bf16, vst1q_lane_bf16): Add
6419 intrinsics.
6420 * config/arm/arm_neon_builtins.def (STORE1LANE): Add v4bf, v8bf.
6421
6422 2020-11-03 Andrea Corallo <andrea.corallo@arm.com>
6423
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
6426 intrinsics.
6427
6428 2020-11-03 Richard Biener <rguenther@suse.de>
6429
6430 PR bootstrap/97666
6431 * tree-vect-slp.c (vect_build_slp_tree_2): Scale
6432 allocation of skip_args by sizeof (bool).
6433
6434 2020-11-03 Richard Biener <rguenther@suse.de>
6435
6436 PR tree-optimization/80928
6437 * tree-vect-loop.c (vectorizable_induction): SLP vectorize
6438 nested inductions.
6439
6440 2020-11-03 Jan Hubicka <hubicka@ucw.cz>
6441
6442 PR ipa/97578
6443 * ipa-inline-transform.c (maybe_materialize_called_clones): New
6444 function.
6445 (inline_transform): Use it.
6446
6447 2020-11-03 Richard Biener <rguenther@suse.de>
6448
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
6455 invariants.
6456
6457 2020-11-03 Uroš Bizjak <ubizjak@gmail.com>
6458
6459 * config/i386/sse.md (aes<aeswideklvariant>u8):
6460 Do not use xmm_regs array. Fix whitespace.
6461
6462 2020-11-03 Uroš Bizjak <ubizjak@gmail.com>
6463
6464 * config/i386/i386-expand.c (ix86_expand_builtin): Fix comment.
6465
6466 2020-11-03 Thomas Schwinge <thomas@codesourcery.com>
6467
6468 * omp-low.c (scan_omp_for) <OpenACC>: Move earlier inconsistent
6469 nested 'reduction' clauses checking.
6470
6471 2020-11-03 Thomas Schwinge <thomas@codesourcery.com>
6472
6473 * omp-low.c (scan_omp_for) <OpenACC>: More precise diagnostics for
6474 'gang', 'worker', 'vector' clauses with arguments only allowed in
6475 'kernels' regions.
6476
6477 2020-11-03 Kewen Lin <linkw@gcc.gnu.org>
6478
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
6488 pending TODO flag.
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.
6493
6494 2020-11-02 Alan Modra <amodra@gmail.com>
6495
6496 PR middle-end/97267
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.
6502
6503 2020-11-02 Vladimir N. Makarov <vmakarov@redhat.com>
6504
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.
6508
6509 2020-11-02 H.J. Lu <hjl.tools@gmail.com>
6510
6511 PR target/97140
6512 * config/i386/i386-expand.c (ix86_expand_builtin): Require MMX
6513 for __builtin_ia32_maskmovq.
6514
6515 2020-11-02 Martin Sebor <msebor@redhat.com>
6516
6517 * doc/invoke.texi (-Wstringop-overflow): Correct default setting.
6518 (-Wstringop-overread): Move past -Wstringop-overflow.
6519
6520 2020-11-02 François-Xavier Coudert <fxcoudert@gcc.gnu.org>
6521
6522 PR bootstrap/57076
6523 * Makefile.in (gcc-vers.texi): Quote @, { and }.
6524
6525 2020-11-02 Carl Love <cel@us.ibm.com>
6526
6527 PR target/93449
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.
6576
6577 2020-11-02 Nathan Sidwell <nathan@acm.org>
6578
6579 * tree.c (cache_integer_cst): Fixup pointer caching to match
6580 wide_int_to_type_1's expectations. Add comment.
6581
6582 2020-11-02 Nathan Sidwell <nathan@acm.org>
6583
6584 * tree.h (id_equal): Call the symetric predicate with swapped
6585 arguments.
6586
6587 2020-11-02 Nathan Sidwell <nathan@acm.org>
6588
6589 * print-tree.c (print_node): Display all the operands of a call
6590 expr.
6591
6592 2020-11-02 Vladimir N. Makarov <vmakarov@redhat.com>
6593
6594 * config/rs6000/vsx.md (*vsx_extract_<mode>_store_p9): Add hint *
6595 to 2nd alternative of the 1st scratch.
6596
6597 2020-11-02 Sudakshina Das <sudi.das@arm.com>
6598
6599 PR target/97638
6600 * config/aarch64/aarch64-bti-insert.c (aarch64_pac_insn_p): Update
6601 return value on INSN_P check.
6602
6603 2020-11-02 Richard Biener <rguenther@suse.de>
6604
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
6609 the initial value.
6610 * tree-vect-loop.c (vect_model_induction_cost): Inline ...
6611 (vectorizable_induction): ... here. Rewrite SLP
6612 code generation.
6613
6614 2020-11-02 Martin Jambor <mjambor@suse.cz>
6615
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
6619 counter.
6620 (decide_whether_version_node): Likewise.
6621 (ipcp_store_vr_results):Check and bump ipa_cp_vr debug counter.
6622
6623 2020-11-02 Christophe Lyon <christophe.lyon@linaro.org>
6624
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.
6627
6628 2020-11-02 Christophe Lyon <christophe.lyon@linaro.org>
6629
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
6633 prototype.
6634 * config/arm/arm.c (thumb1_gen_const_int_print): New.
6635
6636 2020-11-02 Christophe Lyon <christophe.lyon@linaro.org>
6637
6638 * config/arm/arm.c (thumb1_const_rtl, thumb1_const_print): New
6639 classes.
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.
6648
6649 2020-11-02 Richard Biener <rguenther@suse.de>
6650
6651 PR tree-optimization/97558
6652 * tree-vect-loop.c (vectorizable_reduction): For nested SLP
6653 cycles compute invariant operands vector type.
6654
6655 2020-11-02 Richard Biener <rguenther@suse.de>
6656
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
6664 groups.
6665
6666 2020-11-02 Richard Biener <rguenther@suse.de>
6667
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.
6671
6672 2020-11-02 Kito Cheng <kito.cheng@sifive.com>
6673
6674 * common/config/riscv/riscv-common.c
6675 (riscv_subset_list::parse_multiletter_ext): Checking multiletter
6676 extension has more than 1 letter.
6677
6678 2020-11-02 Kito Cheng <kito.cheng@sifive.com>
6679
6680 * config.gcc (riscv*-*-*): Handle --with-multilib-generator.
6681 * configure: Regen.
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.
6686
6687 2020-11-02 Christophe Lyon <christophe.lyon@linaro.org>
6688
6689 PR target/96770
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
6693 MOVT/MOVW.
6694 * config/arm/thumb1.md (*thumb1_movsi_insn): Accept (symbol_ref +
6695 addend) in the pure-code alternative.
6696
6697 2020-11-02 Christophe Lyon <christophe.lyon@linaro.org>
6698
6699 PR target/96967
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.
6704
6705 2020-11-01 Iain Sandoe <iain@sandoe.co.uk>
6706
6707 * config/host-darwin.c: Align pch_address_space to 16384.
6708
6709 2020-11-01 Pat Bernardi <bernardi@adacore.com>
6710
6711 * config/i386/i386.c (ix86_expand_prologue): Set the stack usage to 0
6712 for naked functions.
6713
6714 2020-11-01 Iain Buclaw <ibuclaw@gdcproject.org>
6715
6716 PR ipa/97660
6717 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Don't call
6718 clone_info::get when cgraph_node::get returns NULL.
6719
6720 2020-10-31 Jan Hubicka <jh@suse.cz>
6721
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.
6777
6778 2020-10-31 Jan Hubicka <jh@suse.cz>
6779
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.
6791
6792 2020-10-30 Michael Meissner <meissner@linux.ibm.com>
6793
6794 * config/rs6000/rs6000.c (glibc_supports_ieee_128bit): New helper
6795 function.
6796 (rs6000_option_override_internal): Call it.
6797
6798 2020-10-30 Qing Zhao <qing.zhao@oracle.com>
6799 H.J.Lu <hjl.tools@gmail.com>
6800
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
6811 df_epilogue_uses_p.
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
6826 initialization.
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
6834 df_epilogue_uses_p.
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.
6839
6840 2020-10-30 Vladimir N. Makarov <vmakarov@redhat.com>
6841
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 ...
6852 * ira.c: ... here.
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
6862 prototypes.
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):
6866 Remove prototypes.
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.
6873
6874 2020-10-30 Martin Sebor <msebor@redhat.com>
6875
6876 PR middle-end/97556
6877 * builtins.c (access_ref::add_offset): Cap offset lower bound
6878 to at most the the upper bound.
6879
6880 2020-10-30 Jan Hubicka <jh@suse.cz>
6881
6882 PR pch/97593
6883 * cgraph.c (cgraph_node::create_thunk): Register thunk as early during
6884 parsing.
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.
6893
6894 2020-10-30 Richard Biener <rguenther@suse.de>
6895
6896 PR tree-optimization/97623
6897 * tree-ssa-pre.c (insert): First do hoist insertion in
6898 a backward walk.
6899
6900 2020-10-30 Richard Biener <rguenther@suse.de>
6901
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.
6907
6908 2020-10-30 Zhiheng Xie <xiezhiheng@huawei.com>
6909 Nannan Zheng <zhengnannan@huawei.com>
6910
6911 * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG
6912 for conversion intrinsics.
6913
6914 2020-10-30 Richard Biener <rguenther@suse.de>
6915
6916 PR tree-optimization/97633
6917 * tree-vect-slp.c (): Update backedges in single-node cycles.
6918 Optimize processing of externals.
6919
6920 2020-10-30 Alex Coplan <alex.coplan@arm.com>
6921
6922 PR target/96998
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.
6929 Update callers...
6930 (aarch64_rtx_costs): ... here.
6931
6932 2020-10-30 Olivier Hainque <hainque@adacore.com>
6933
6934 * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Also
6935 builtin_define __ppc and __ppc__ for VxWorks 7.
6936
6937 2020-10-30 Olivier Hainque <hainque@adacore.com>
6938 Douglas Rupp <rupp@adacore.com>
6939 Pat Bernardi <bernardi@adacore.com>
6940
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
6945 on x86_64.
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.
6953
6954 2020-10-30 Jakub Jelinek <jakub@redhat.com>
6955
6956 * gimplify.c (gimplify_scan_omp_clauses): Force
6957 OMP_CLAUSE_ALLOCATE_ALLOCATOR into a temporary if it is non-NULL and
6958 non-constant.
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.
6963
6964 2020-10-30 Michael Meissner <meissner@linux.ibm.com>
6965
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.
6970
6971 2020-10-29 Richard Biener <rguenther@suse.de>
6972
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.
6976
6977 2020-10-29 Jan Hubicka <jh@suse.cz>
6978
6979 * vec.h (vec<T, va_heap, vl_ptr>::copy): Pass mem stat info.
6980
6981 2020-10-29 Jan Hubicka <jh@suse.cz>
6982
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.
6987
6988 2020-10-29 Joseph Myers <joseph@codesourcery.com>
6989
6990 * ginclude/stdbool.h [__STDC_VERSION__ > 201710L] (true, false):
6991 Define with type _Bool.
6992
6993 2020-10-29 Aldy Hernandez <aldyh@redhat.com>
6994
6995 PR tree-optimization/97505
6996 * vr-values.c (vr_values::extract_range_basic): Enable
6997 trap again for everything except UBSAN builtins.
6998
6999 2020-10-29 Richard Sandiford <richard.sandiford@arm.com>
7000
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.
7008
7009 2020-10-29 Martin Liska <mliska@suse.cz>
7010
7011 PR lto/97508
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
7020 functions summary.
7021 (ipa_fn_summary_write): Always stream it.
7022
7023 2020-10-29 Richard Biener <rguenther@suse.de>
7024
7025 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Pass
7026 SLP_TREE_VECTYPE to record_stmt_cost.
7027
7028 2020-10-29 Martin Liska <mliska@suse.cz>
7029
7030 * optc-gen.awk: Check that params start with -param=.
7031 * params.opt: Fix ipa-jump-function-lookups.
7032
7033 2020-10-29 Alexandre Oliva <oliva@adacore.com>
7034
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.
7040
7041 2020-10-29 Xuepeng Guo <xuepeng.guo@intel.com>
7042 Hongyu Wang <hongyu.wang@intel.com>
7043 Hongtao Liu <hongtao.liu@intel.com>
7044
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
7062 for KL and SSE2.
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
7074 function types.
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
7088 kl and widekl.
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.
7098 (PTA_KL): 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
7106 predicate.
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.
7128
7129 2020-10-29 Richard Biener <rguenther@suse.de>
7130
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.
7135
7136 2020-10-29 Andrew MacLeod <amacleod@redhat.com>
7137
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.
7141
7142 2020-10-29 David Malcolm <dmalcolm@redhat.com>
7143
7144 * Makefile.in (ANALYZER_OBJS): Add analyzer/complexity.o.
7145
7146 2020-10-28 Marek Polacek <polacek@redhat.com>
7147
7148 PR c++/97573
7149 * doc/invoke.texi: Document -Wdeprecated-enum-enum-conversion
7150 and -Wdeprecated-enum-float-conversion. -Wenum-conversion is
7151 no longer C/ObjC only.
7152
7153 2020-10-28 Richard Sandiford <richard.sandiford@arm.com>
7154
7155 PR tree-optimization/97457
7156 * value-range.cc (irange::set): Don't decay POLY_INT_CST ranges
7157 to integer ranges.
7158
7159 2020-10-28 Carl Love <cel@us.ibm.com>
7160
7161 * config/rs6000/vsx.md(xxgenpcvm_<mode>_internal): Remove TARGET_64BIT.
7162
7163 2020-10-28 Richard Biener <rguenther@suse.de>
7164
7165 * tree-vect-slp.c (vect_slp_analyze_node_operations_1): Dump
7166 when shared vectype update fails.
7167
7168 2020-10-28 Richard Biener <rguenther@suse.de>
7169
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.
7174
7175 2020-10-28 Richard Biener <rguenther@suse.de>
7176
7177 PR tree-optimization/97615
7178 * tree-vect-slp.c (vect_build_slp_tree_2): Do not build
7179 an external from pattern defs.
7180
7181 2020-10-28 Richard Biener <rguenther@suse.de>
7182
7183 * tree-vect-slp.c (vect_optimize_slp): Fix iteration over
7184 all loads.
7185
7186 2020-10-28 Richard Biener <rguenther@suse.de>
7187
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
7190 matching rest.
7191
7192 2020-10-28 Richard Biener <rguenther@suse.de>
7193
7194 * tree-vect-data-refs.c (vect_slp_analyze_node_alignment):
7195 Dump when vect_update_shared_vectype fails.
7196
7197 2020-10-28 Andrea Corallo <andrea.corallo@arm.com>
7198
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.
7205
7206 2020-10-28 Andrea Corallo <andrea.corallo@arm.com>
7207
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.
7214
7215 2020-10-28 Jakub Jelinek <jakub@redhat.com>
7216
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
7221 clause.
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.
7229
7230 2020-10-28 Jakub Jelinek <jakub@redhat.com>
7231
7232 * omp-offload.c (omp_declare_target_tgt_fn_r): Handle direct calls to
7233 declare variant base functions.
7234
7235 2020-10-28 Jakub Jelinek <jakub@redhat.com>
7236
7237 PR lto/96680
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
7243 partition.
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
7251 nodes.
7252 * omp-general.c (omp_lto_output_declare_variant_alt,
7253 omp_lto_input_declare_variant_alt): New functions.
7254
7255 2020-10-28 Jakub Jelinek <jakub@redhat.com>
7256
7257 * wide-int.cc (wi::set_bit_large): Call canonize unless setting
7258 msb bit and clearing bits above it.
7259
7260 2020-10-28 Andrew MacLeod <amacleod@redhat.com>
7261
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.
7277
7278 2020-10-27 Andreas Krebbel <krebbel@linux.ibm.com>
7279
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.
7283
7284 2020-10-27 Tamar Christina <tamar.christina@arm.com>
7285
7286 PR target/97535
7287 * config/aarch64/aarch64.c (aarch64_expand_cpymem): Use unsigned
7288 arithmetic in check.
7289
7290 2020-10-27 Andrea Corallo <andrea.corallo@arm.com>
7291
7292 * config/aarch64/arm_neon.h (vcopy_lane_bf16, vcopyq_lane_bf16)
7293 (vcopyq_laneq_bf16, vcopy_laneq_bf16): New intrinsics.
7294
7295 2020-10-27 Olivier Hainque <hainque@adacore.com>
7296
7297 * config/vxworks.h (VX_CPU_PREFIX): #define here.
7298 * config/rs6000/vxworks.h: Remove #definition.
7299
7300 2020-10-27 Olivier Hainque <hainque@adacore.com>
7301
7302 * config/rs6000/vxworks.h (CPP_SPEC): Fix macro definition
7303 for -mcpu=e6500.
7304
7305 2020-10-27 Richard Biener <rguenther@suse.de>
7306
7307 * tree-vect-slp.c (vect_build_slp_instance): Use ceil_log2
7308 to compute maximum group-size.
7309
7310 2020-10-27 Jan Hubicka <jh@suse.cz>
7311
7312 PR ipa/97586
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.
7321
7322 2020-10-27 Richard Biener <rguenther@suse.de>
7323
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.
7330
7331 2020-10-27 Richard Biener <rguenther@suse.de>
7332
7333 * gimple.h (gimple_expr_type): For PHIs return the type
7334 of the result.
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
7337 originals.
7338 * tree-vect-loop.c (vect_transform_cycle_phi): Handle nested
7339 loops with SLP.
7340 (vectorizable_phi): New function.
7341 (vectorizable_live_operation): For BB vectorization compute insert
7342 location here.
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
7346 argument.
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
7362 reduction chains.
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
7374 merges.
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
7379 backedge fill code.
7380 * tree-vect-stmts.c (vect_analyze_stmt): Call
7381 vectorizable_phi.
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
7386 vectorization.
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.
7390
7391 2020-10-27 Richard Biener <rguenther@suse.de>
7392
7393 * tree-vect-slp.c (vect_build_slp_tree_2): When vectorizing
7394 BBs splat uniform operands and stop SLP discovery.
7395
7396 2020-10-27 Iain Buclaw <ibuclaw@gdcproject.org>
7397
7398 * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_D_CRITSEC_SIZE):
7399 Remove.
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):
7403 Likewise.
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.
7408
7409 2020-10-27 Martin Liska <mliska@suse.cz>
7410
7411 PR gcov-profile/97461
7412 * gcov-io.h (GCOV_PREALLOCATED_KVP): Pre-allocate 64
7413 static counters.
7414
7415 2020-10-27 Jan Hubicka <jh@suse.cz>
7416
7417 * tree-ssa-alias.c (attr_fnspec::verify): Re-enabl checking.
7418
7419 2020-10-27 Jan Hubicka <jh@suse.cz>
7420
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.
7429
7430 2020-10-27 Kito Cheng <kito.cheng@sifive.com>
7431
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
7437 setup flags.
7438 (riscv_handle_option): Update argument for riscv_parse_arch_string.
7439 (riscv_expand_arch): Ditto.
7440 (riscv_expand_arch_from_cpu): Ditto.
7441
7442 2020-10-27 Jan Hubicka <jh@suse.cz>
7443
7444 * tree-ssa-ccp.c (evaluate_stmt): Use EAF_RETURN_ARG; do not handle
7445 string buitings specially.
7446
7447 2020-10-27 Jan Hubicka <jh@suse.cz>
7448
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.
7452
7453 2020-10-27 Jan Hubicka <jh@suse.cz>
7454
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.
7458
7459 2020-10-27 Richard Biener <rguenther@suse.de>
7460
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
7465 slp_tree_pool.
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.
7470
7471 2020-10-27 Martin Liska <mliska@suse.cz>
7472
7473 * lto-wrapper.c (run_gcc): Do not use sub-make when jobserver is
7474 not detected properly.
7475
7476 2020-10-27 Martin Liska <mliska@suse.cz>
7477
7478 * symbol-summary.h (call_summary_base): Pass symtab hooks to
7479 base and register (or unregister) hooks directly.
7480
7481 2020-10-27 Martin Liska <mliska@suse.cz>
7482
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.
7490
7491 2020-10-26 Andrew MacLeod <amacleod@redhat.com>
7492
7493 PR tree-optimization/97567
7494 * gimple-range-gori.cc (gori_compute::logical_combine): Union the
7495 ranges of operand1 and operand2, not intersect.
7496
7497 2020-10-26 Jan Hubicka <jh@suse.cz>
7498
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.
7535
7536 2020-10-26 Aldy Hernandez <aldyh@redhat.com>
7537
7538 PR tree-optimization/97555
7539 * range-op.cc (range_tests): Test 1-bit signed invert.
7540 * value-range.cc (subtract_one): Adjust comment.
7541 (add_one): New.
7542 (irange::invert): Call add_one.
7543
7544 2020-10-26 Jan Hubicka <jh@suse.cz>
7545
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.
7562
7563 2020-10-26 Richard Biener <rguenther@suse.de>
7564
7565 * tree-vect-slp.c (enum slp_instance_kind): New.
7566 (vect_build_slp_instance): Split out from...
7567 (vect_analyze_slp_instance): ... this.
7568
7569 2020-10-26 Andrew MacLeod <amacleod@redhat.com>
7570
7571 * gimple-range.cc (range_of_builtin_call): Initialize zerov to 0.
7572
7573 2020-10-26 Jan Hubicka <jh@suse.cz>
7574
7575 PR ipa/97576
7576 * cgraphclones.c (cgraph_node::materialize_clone): Clear stmt
7577 references.
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
7581 for clones.
7582 * tree-ssa-structalias.c (ipa_pta_execute): Do not clear references.
7583
7584 2020-10-26 Zhiheng Xie <xiezhiheng@huawei.com>
7585 Nannan Zheng <zhengnannan@huawei.com>
7586
7587 * config/aarch64/aarch64-builtins.c: Add FLAG STORE.
7588 * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG
7589 for store intrinsics.
7590
7591 2020-10-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7592
7593 PR tree-optimization/97546
7594 * gimple-ssa-store-merging.c (find_bswap_or_nop): Return NULL if
7595 type is not INTEGER_CST.
7596
7597 2020-10-26 Richard Biener <rguenther@suse.de>
7598
7599 PR middle-end/97521
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.
7605
7606 2020-10-26 H.J. Lu <hjl.tools@gmail.com>
7607
7608 PR target/95458
7609 * config/i386/i386-expand.c (ix86_expand_cmpstrn_or_cmpmem):
7610 Return false for -mno-inline-all-stringops.
7611
7612 2020-10-26 H.J. Lu <hjl.tools@gmail.com>
7613
7614 PR target/95151
7615 * config/i386/i386-expand.c (ix86_expand_cmpstrn_or_cmpmem): New
7616 function.
7617 * config/i386/i386-protos.h (ix86_expand_cmpstrn_or_cmpmem): New
7618 prototype.
7619 * config/i386/i386.md (cmpmemsi): New pattern.
7620
7621 2020-10-26 Andreas Krebbel <krebbel@linux.ibm.com>
7622
7623 * config/s390/vector.md ("vcond_mask_<mode><mode>"): New expander.
7624
7625 2020-10-26 Richard Biener <rguenther@suse.de>
7626
7627 * sbitmap.c (sbitmap_vector_alloc): Use size_t for byte
7628 quantities to avoid overflow.
7629
7630 2020-10-26 Richard Biener <rguenther@suse.de>
7631
7632 PR tree-optimization/97539
7633 * tree-vect-loop-manip.c (vect_do_peeling): Reset out-of-loop
7634 debug uses before peeling.
7635
7636 2020-10-26 Jan Hubicka <hubicka@ucw.cz>
7637
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
7649 namespace.
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
7657 hooks
7658 (maybe_record_nested_function): Likewise.
7659
7660 2020-10-26 Xionghu Luo <luoxhu@linux.ibm.com>
7661
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.
7667
7668 2020-10-24 H.J. Lu <hjl.tools@gmail.com>
7669
7670 PR bootstrap/97451
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.
7682
7683 2020-10-24 Aldy Hernandez <aldyh@redhat.com>
7684
7685 PR tree-optimization/97538
7686 * calls.c (get_size_range): Handle undefined ranges.
7687
7688 2020-10-24 Martin Liska <mliska@suse.cz>
7689
7690 * cgraph.c (cgraph_node::former_thunk_p): Move out of CHECKING_P
7691 macro.
7692
7693 2020-10-24 Alan Modra <amodra@gmail.com>
7694
7695 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Limit
7696 AND addressing to just lvx/stvx style addresses.
7697
7698 2020-10-24 Alan Modra <amodra@gmail.com>
7699
7700 * config/rs6000/rs6000.md (cstore<mode>4): Don't call
7701 rs6000_emit_int_cmove for power10 when -mno-isel.
7702
7703 2020-10-23 Jan Hubicka <hubicka@ucw.cz>
7704
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,
7771 symtab-thunks.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
7783 symtab-thunks.h
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.
7805
7806 2020-10-23 Marek Polacek <polacek@redhat.com>
7807
7808 PR c++/91741
7809 * doc/invoke.texi: Document -Wsizeof-array-div.
7810
7811 2020-10-23 Martin Sebor <msebor@redhat.com>
7812
7813 PR middle-end/97552
7814 * attribs.c (init_attr_rdwr_indices): Handle static VLA parameters.
7815
7816 2020-10-23 Douglas Rupp <rupp@adacore.com>
7817
7818 * config/vxworks.h (VXWORKS_NET_LIBS_RTP): Use -lrtnet if
7819 rtnetStackLib.h is available,fallback to -lnet otherwise.
7820
7821 2020-10-23 Douglas Rupp <rupp@adacore.com>
7822
7823 * gcc.c (if-exists-then-else): New built-in spec function.
7824 * doc/invoke.texi: Document it.
7825
7826 2020-10-23 Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
7827
7828 * doc/extend.texi (PowerPC Built-in Functions): Replace
7829 extraneous characters with whitespace.
7830
7831 2020-10-23 Martin Liska <mliska@suse.cz>
7832
7833 * gcov.c (read_count_file): Never call gcov_sync with a negative
7834 value.
7835
7836 2020-10-23 Jakub Jelinek <jakub@redhat.com>
7837
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.
7847
7848 2020-10-23 Jakub Jelinek <jakub@redhat.com>
7849
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.
7853
7854 2020-10-23 Eric Botcazou <ebotcazou@adacore.com>
7855
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.
7858
7859 2020-10-23 Dennis Zhang <dennis.zhang@arm.com>
7860
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.
7868
7869 2020-10-23 Martin Liska <mliska@suse.cz>
7870
7871 PR lto/97524
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.
7875
7876 2020-10-23 Richard Biener <rguenther@suse.de>
7877
7878 Revert:
7879 2020-10-22 Richard Biener <rguenther@suse.de>
7880
7881 PR middle-end/97521
7882 * expr.c (expand_expr_real_1): Be more careful when
7883 expanding a VECTOR_BOOLEAN_TYPE_P VECTOR_CSTs.
7884
7885 2020-10-23 Kewen Lin <linkw@linux.ibm.com>
7886
7887 * tree-vect-loop.c (vect_transform_loop): Remove the redundant
7888 LOOP_VINFO_FULLY_MASKED_P check.
7889
7890 2020-10-23 Dennis Zhang <dennis.zhang@arm.com>
7891
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.
7899
7900 2020-10-22 Alan Modra <amodra@gmail.com>
7901
7902 * config/rs6000/rs6000.c (rs6000_emit_xxspltidp_v2df): Delete
7903 debug printf. Remove trailing ".\n" from inform message.
7904 Break long line.
7905
7906 2020-10-22 Andrew MacLeod <amacleod@redhat.com>
7907
7908 * gimple-range-gori.cc (is_gimple_logical_p): Use types_compatible_p
7909 for logical compatibility.
7910 (logical_stmt_cache::cacheable_p): Ditto.
7911
7912 2020-10-22 Jan Hubicka <hubicka@ucw.cz>
7913
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.
7935
7936 2020-10-22 Will Schmidt <will_schmidt@vnet.ibm.com>
7937
7938 * config/rs6000/altivec.h (vec_xl_zext, vec_xl_sext, vec_xst_trunc):
7939 New defines.
7940 * config/rs6000/rs6000-builtin.def (BU_P10V_OVERLOAD_X): New builtin
7941 macro.
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,
7972 and vec_xst_trunc.
7973
7974 2020-10-22 Will Schmidt <will_schmidt@vnet.ibm.com>
7975
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.
7980
7981 2020-10-22 Alexandre Oliva <oliva@adacore.com>
7982
7983 * config/i386/mingw-w64.h (TARGET_LIBC_HAS_FUNCTION): Enable
7984 sincos optimization.
7985
7986 2020-10-22 Alan Modra <amodra@gmail.com>
7987
7988 * config/rs6000/vsx.md (vec_cntmb_<mode>, vec_extract_<mode>),
7989 (vec_expand_<mode>): Replace <VSX_MM_SUFFIX> with <wd>.
7990
7991 2020-10-22 Richard Biener <rguenther@suse.de>
7992
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
7996 group size.
7997
7998 2020-10-22 Richard Biener <rguenther@suse.de>
7999
8000 PR middle-end/97521
8001 * expr.c (expand_expr_real_1): Be more careful when
8002 expanding a VECTOR_BOOLEAN_TYPE_P VECTOR_CSTs.
8003
8004 2020-10-22 David Malcolm <dmalcolm@redhat.com>
8005
8006 * ipa-modref-tree.c (selftest::test_insert_search_collapse): Fix
8007 leak.
8008 (selftest::test_merge): Fix leaks.
8009
8010 2020-10-22 Andreas Krebbel <krebbel@linux.ibm.com>
8011
8012 PR target/97502
8013 * config/s390/vector.md ("vec_cmp<VI_HW:mode><VI_HW:mode>")
8014 ("vec_cmpu<VI_HW:mode><VI_HW:mode>"): New expanders.
8015
8016 2020-10-22 Andreas Krebbel <krebbel@linux.ibm.com>
8017
8018 PR rtl-optimization/97439
8019 * dfp.c (decimal_real_maxval): Set the sign flag in the
8020 generated number.
8021
8022 2020-10-22 Martin Liska <mliska@suse.cz>
8023
8024 PR c/94722
8025 * cfgexpand.c (stack_protect_decl_phase):
8026 Guard with lookup_attribute("no_stack_protector") at
8027 various places.
8028 (expand_used_vars): Likewise here.
8029 * doc/extend.texi: Document no_stack_protector attribute.
8030
8031 2020-10-22 Martin Liska <mliska@suse.cz>
8032
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
8036 enum.
8037
8038 2020-10-22 Kito Cheng <kito.cheng@sifive.com>
8039
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.
8048 (unique): Ditto.
8049 (expand_combination): Ditto.
8050
8051 2020-10-22 Jakub Jelinek <jakub@redhat.com>
8052
8053 * tree-ssa-phiopt.c (cond_removal_in_popcount_clz_ctz_pattern):
8054 For CLZ and CTZ tests, use type temporary instead of mode.
8055
8056 2020-10-22 Jakub Jelinek <jakub@redhat.com>
8057
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
8062 to --with-arch_64=.
8063
8064 2020-10-22 Jan Hubicka <jh@suse.cz>
8065
8066 * ipa-pure-const.c (funct_state_summary_t::insert): Free stale
8067 summaries.
8068
8069 2020-10-22 Jan Hubicka <hubicka@ucw.cz>
8070
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
8074 infos.
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
8081 function info.
8082 * cgraphunit.c (cgraph_node::analyze): Update.
8083 (cgraph_node::expand): Do not worry about nested functions; they are
8084 lowered.
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.
8111
8112 2020-10-22 liuhongt <hongtao.liu@intel.com>
8113
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.
8117
8118 2020-10-22 liuhongt <hongtao.liu@intel.com>
8119
8120 PR target/87767
8121 * config/i386/constraints.md ("Br"): New special memory
8122 constraint.
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
8130 bcst_mem_operand.
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>):
8137 Ditto.
8138 (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>):
8139 Ditto.
8140 (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>):
8141 Ditto.
8142 (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>):
8143 Ditto.
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):
8154 Ditto.
8155 (*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_2):
8156 Ditto.
8157 (*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_3):
8158 Ditto.
8159 (*<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_1):
8160 Ditto.
8161 (*<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_2):
8162 Ditto.
8163 (*<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_3):
8164 Ditto.
8165 (*<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_1):
8166 Ditto.
8167 (*<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_2):
8168 Ditto.
8169 (*<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_3):
8170 Ditto.
8171 (*<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_1):
8172 Ditto.
8173 (*<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_2):
8174 Ditto.
8175 (*<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_3):
8176 Ditto.
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
8184 attribute.
8185 (bcst_round_nimm_predicate): Ditto.
8186 (bcst_mask_prefix3): Ditto.
8187 (bcst_mask_prefix4): Ditto.
8188
8189 2020-10-22 liuhongt <hongtao.liu@intel.com>
8190
8191 PR target/87767
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.
8208
8209 2020-10-22 Dennis Zhang <dennis.zhang@arm.com>
8210
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.
8222
8223 2020-10-22 Andrew MacLeod <amacleod@redhat.com>
8224
8225 PR tree-optimization/97520
8226 * gimple-range.cc (range_of_non_trivial_assignment): Handle x = &a
8227 by returning a non-zero range.
8228
8229 2020-10-22 Dennis Zhang <dennis.zhang@arm.com>
8230
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.
8237
8238 2020-10-22 Andrew MacLeod <amacleod@redhat.com>
8239
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.
8244
8245 2020-10-21 Jan Hubicka <hubicka@ucw.cz>
8246
8247 PR ipa/97445
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.
8253
8254 2020-10-21 Richard Biener <rguenther@suse.de>
8255 Andrew MacLeod <amacleod@redhat.com>
8256 Martin Liska <mliska@suse.cz>
8257
8258 PR target/97360
8259 * config/rs6000/rs6000-call.c (rs6000_init_builtins): Remove call to
8260 build_distinct_type_copy().
8261
8262 2020-10-21 Jan Hubicka <jh@suse.cz>
8263
8264 PR ipa/97445
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.
8281
8282 2020-10-21 Douglas Rupp <rupp@adacore.com>
8283
8284 * config/vx-common.h (LINK_SPEC, LIB_SPEC): Remove #undef.
8285
8286 2020-10-21 Douglas Rupp <rupp@adacore.com>
8287 Olivier Hainque <hainque@adacore.com>
8288
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
8296 for vx7.
8297
8298 2020-10-21 Richard Biener <rguenther@suse.de>
8299
8300 PR tree-optimization/97500
8301 * tree-vect-slp.c (vect_analyze_slp_backedges): Do not
8302 fill backedges for inductions.
8303
8304 2020-10-21 liuhongt <hongtao.liu@intel.com>
8305
8306 PR target/97506
8307 * config/i386/i386-expand.c (ix86_expand_sse_movcc): Move
8308 op_true to dest directly when op_true equals op_false.
8309
8310 2020-10-21 Jakub Jelinek <jakub@redhat.com>
8311
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.
8317
8318 2020-10-21 Richard Biener <rguenther@suse.de>
8319
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.
8334
8335 2020-10-21 Richard Biener <rguenther@suse.de>
8336
8337 * cfghooks.c (copy_bbs): Split out loop computing new_edges.
8338
8339 2020-10-21 Aldy Hernandez <aldyh@redhat.com>
8340
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
8344 invariants.
8345
8346 2020-10-21 Aldy Hernandez <aldyh@redhat.com>
8347
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.
8353
8354 2020-10-20 Andrew MacLeod <amacleod@redhat.com>
8355
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.
8359
8360 2020-10-20 David Edelsohn <dje.gcc@gmail.com>
8361
8362 * config/rs6000/rs6000.c (rs6000_option_override_internal):
8363 Don't implcitly enable Altivec ABI if set on the command line.
8364
8365 2020-10-20 Aldy Hernandez <aldyh@redhat.com>
8366
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
8371 static function.
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.
8385
8386 2020-10-20 Aldy Hernandez <aldyh@redhat.com>
8387
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.
8393 (is_max): Remove.
8394 (alloca_call_type): Remove heuristics and replace with call into
8395 ranger.
8396 (pass_walloca::execute): Instantiate ranger.
8397
8398 2020-10-20 Tobias Burnus <tobias@codesourcery.com>
8399
8400 * lto-wrapper.c (run_gcc): Use proper variable for
8401 %u.ltrans_args dump suffix.
8402
8403 2020-10-20 Zhiheng Xie <xiezhiheng@huawei.com>
8404 Nannan Zheng <zhengnannan@huawei.com>
8405
8406 * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG
8407 for get/set reg intrinsics.
8408
8409 2020-10-20 Aldy Hernandez <aldyh@redhat.com>
8410
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.
8424
8425 2020-10-20 Aldy Hernandez <aldyh@redhat.com>
8426
8427 PR tree-optimization/97501
8428 * gimple-range.cc (gimple_ranger::range_of_ssa_name_with_loop_info):
8429 Saturate overflows returned from SCEV.
8430
8431 2020-10-20 Aldy Hernandez <aldyh@redhat.com>
8432
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.
8440
8441 2020-10-20 Tobias Burnus <tobias@codesourcery.com>
8442
8443 * doc/invoke.texi (NVPTX options): Use @item not @itemx.
8444
8445 2020-10-20 Richard Biener <rguenther@suse.de>
8446
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.
8450
8451 2020-10-20 Richard Biener <rguenther@suse.de>
8452
8453 * tree-vect-loop.c (vectorizable_reduction): Use the correct
8454 loops latch edge for the PHI arg lookup.
8455
8456 2020-10-20 Jozef Lawrynowicz <jozef.l@mittosystems.com>
8457
8458 * config/msp430/msp430.md (andneghi3): Allow general operand for
8459 op1 and update output assembler template.
8460
8461 2020-10-20 Tobias Burnus <tobias@codesourcery.com>
8462
8463 * collect-utils.c (collect_execute, fork_execute): Add at-file suffix
8464 argument.
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.
8473
8474 2020-10-20 Aldy Hernandez <aldyh@redhat.com>
8475
8476 * range-op.cc (operator_rshift::op1_range): Special case
8477 shifting by zero.
8478
8479 2020-10-20 Richard Biener <rguenther@suse.de>
8480
8481 PR tree-optimization/97496
8482 * tree-vect-slp.c (vect_get_and_check_slp_defs): Guard extern
8483 promotion with not in pattern.
8484
8485 2020-10-20 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
8486
8487 * config/s390/s390.c (s390_expand_vec_strlen): Add alignment
8488 for memory access inside loop.
8489
8490 2020-10-19 Andrew MacLeod <amacleod@redhat.com>
8491
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
8497 type if necessary.
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.
8503
8504 2020-10-19 Martin Jambor <mjambor@suse.cz>
8505
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.
8509
8510 2020-10-19 David Edelsohn <dje.gcc@gmail.com>
8511
8512 * config/rs6000/vsx.md (vextract_fp_from_shorth): Fix vals_be.
8513 (vextract_fp_from_shortl) Same.
8514
8515 2020-10-19 Aldy Hernandez <aldyh@redhat.com>
8516
8517 PR tree-optimization/97488
8518 * range-op.cc (operator_lshift::op1_range): Handle large right shifts.
8519
8520 2020-10-19 Martin Liska <mliska@suse.cz>
8521
8522 * ipa-modref.c (compute_parm_map): Clear vector.
8523
8524 2020-10-19 Richard Biener <rguenther@suse.de>
8525
8526 PR tree-optimization/97486
8527 * tree-vect-slp.c (vect_slp_function): Split after stmts
8528 ending a BB.
8529
8530 2020-10-19 Jonathan Wakely <jwakely@redhat.com>
8531
8532 * doc/invoke.texi (OPptimize Options): Add missing closing
8533 parenthesis.
8534
8535 2020-10-19 Aldy Hernandez <aldyh@redhat.com>
8536
8537 PR tree-optimization/97467
8538 * range-op.cc (operator_lshift::op1_range): Handle shifts by 0.
8539
8540 2020-10-19 Richard Biener <rguenther@suse.de>
8541
8542 PR tree-optimization/97466
8543 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove
8544 spurious assert, re-indent.
8545
8546 2020-10-19 Li Jia He <helijia@gcc.gnu.org>
8547
8548 PR tree-optimization/66552
8549 * match.pd (x << (n % C) -> x << (n & C-1)): New simplification.
8550
8551 2020-10-19 Richard Biener <rguenther@suse.de>
8552
8553 * tree-cfg.c (verify_gimple_comparison): Drop special-case
8554 for pointer comparison.
8555
8556 2020-10-16 Andrew MacLeod <amacleod@redhat.com>
8557
8558 * vr-values.c (dump_all_value_ranges): Only dump names which are
8559 still active.
8560
8561 2020-10-16 Andrew MacLeod <amacleod@redhat.com>
8562
8563 * range-op.cc (pointer_plus_operator::wi_fold): Make pointer_plus
8564 [0, 0] + const return a [const, const] range.
8565
8566 2020-10-16 Andrew MacLeod <amacleod@redhat.com>
8567
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.
8571
8572 2020-10-16 Andrew MacLeod <amacleod@redhat.com>
8573
8574 PR tree-optimization/97462
8575 * range-op.cc (operator_lshift::op1_range): Don't trap on negative
8576 shifts.
8577
8578 2020-10-16 Olivier Hainque <hainque@adacore.com>
8579
8580 * config/vxworks.h (VX_CRTBEGIN_SPEC): Likewise.
8581
8582 2020-10-16 Olivier Hainque <hainque@adacore.com>
8583
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).
8587
8588 2020-10-16 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
8589
8590 PR target/97327
8591 * config/arm/arm.c (fp_bitlist): Add isa_bit_mve_float to FP bits array.
8592
8593 2020-10-16 Richard Biener <rguenther@suse.de>
8594
8595 * tree-vect-slp.c (vect_get_and_check_slp_defs): For BB
8596 vectorization swap operands only if it helps, demote mismatches to
8597 external.
8598
8599 2020-10-16 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
8600
8601 PR target/97291
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
8629 expand.
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.
8653
8654 2020-10-16 Kito Cheng <kito.cheng@sifive.com>
8655
8656 * config/riscv/multilib-generator (IMPLIED_EXT): New.
8657 (arch_canonicalize): Update comment and handle implied extensions.
8658
8659 2020-10-16 Richard Biener <rguenther@suse.de>
8660
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.
8664
8665 2020-10-16 Martin Liska <mliska@suse.cz>
8666
8667 PR ipa/97404
8668 * ipa-prop.c (struct ipa_vr_ggc_hash_traits):
8669 Compare types of VRP as we can merge ranges of different types.
8670
8671 2020-10-16 Richard Biener <rguenther@suse.de>
8672
8673 PR tree-optimization/97428
8674 * tree-vect-slp.c (vect_analyze_slp_instance): Split store
8675 groups also for loop vectorization.
8676
8677 2020-10-15 Tom de Vries <tdevries@suse.de>
8678
8679 PR target/97436
8680 * config/nvptx/nvptx.opt (m32): Comment out.
8681 * doc/invoke.texi (NVPTX options): Remove -m32.
8682
8683 2020-10-15 Jan Hubicka <hubicka@ucw.cz>
8684 Richard Biener <rguenther@suse.de>
8685
8686 * attr-fnspec.h: Fix toplevel comment.
8687
8688 2020-10-15 Richard Biener <rguenther@suse.de>
8689
8690 * tree-pretty-print.c (dump_mem_ref): Print constant offset
8691 also for TARGET_MEM_REF.
8692
8693 2020-10-15 Jan Hubicka <jh@suse.cz>
8694
8695 * symtab.c (symtab_node::binds_to_current_def_p): Also accept symbols
8696 defined in other partition.
8697
8698 2020-10-15 Richard Biener <rguenther@suse.de>
8699
8700 * tree-vect-loop.c (vectorizable_live_operation): Adjust
8701 dominance query.
8702
8703 2020-10-15 Richard Biener <rguenther@suse.de>
8704
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.
8710
8711 2020-10-15 Martin Liska <mliska@suse.cz>
8712
8713 PR ipa/97295
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.
8718
8719 2020-10-15 Jakub Jelinek <jakub@redhat.com>
8720
8721 * params.opt (-param-ipa-jump-function-lookups=): Add full stop at
8722 the end of the parameter description.
8723
8724 2020-10-15 Kito Cheng <kito.cheng@sifive.com>
8725
8726 * common/config/riscv/riscv-common.c (riscv_cpu_tables): New.
8727 (riscv_arch_str): Return empty string if current_subset_list
8728 is NULL.
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
8750 -mtune option.
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
8762 given.
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.
8768
8769 2020-10-15 Hongyu Wang <hongyu.wang@intel.com>
8770
8771 * common/config/i386/cpuinfo.h (get_available_features):
8772 Detect HRESET.
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):
8777 Add FEATURE_HRESET.
8778 * common/config/i386/i386-isas.h: Add ISA_NAMES_TABLE_ENTRY
8779 for hreset.
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):
8786 Handle new builtin.
8787 * config/i386/i386-c.c (ix86_target_macros_internal): Define
8788 __HRESET__.
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,
8792 PTA_HRESET): New.
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.
8799
8800 2020-10-15 Hongtao Liu <hongtao.liu@intel.com>
8801
8802 * common/config/i386/cpuinfo.h (get_available_features):
8803 Detect UINTR.
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):
8808 Add FEATURE_UINTR.
8809 * common/config/i386/i386-isas.h: Add ISA_NAMES_TABLE_ENTRY
8810 for uintr.
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
8821 __UINTR__.
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.
8839
8840 2020-10-14 Martin Sebor <msebor@redhat.com>
8841
8842 PR middle-end/97391
8843 * builtins.c (gimple_parm_array_size): Peel off one less layer
8844 of array types.
8845
8846 2020-10-14 Martin Sebor <msebor@redhat.com>
8847
8848 PR c/97413
8849 * attribs.c (init_attr_rdwr_indices): Unwrap extra list layer.
8850
8851 2020-10-14 Sunil K Pandey <skpgkp2@gmail.com>
8852
8853 PR target/95483
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.
8973
8974 2020-10-14 Olivier Hainque <hainque@adacore.com>
8975
8976 * config/arm/vxworks.h (TARGET_OS_CPP_BUILTINS): Fix
8977 the VX_CPU selection for -mcpu=xscale on arm-vxworks.
8978
8979 2020-10-14 Olivier Hainque <hainque@adacore.com>
8980
8981 * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Accommodate
8982 expectations from different versions of VxWorks, for 32 or 64bit
8983 configurations.
8984
8985 2020-10-14 Olivier Hainque <hainque@adacore.com>
8986
8987 * config/vxworks.h: #undef CPLUSPLUS_CPP_SPEC.
8988
8989 2020-10-14 Olivier Hainque <hainque@adacore.com>
8990
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
8993 search for.
8994
8995 2020-10-14 Jakub Jelinek <jakub@redhat.com>
8996
8997 PR target/97387
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.
9006
9007 2020-10-14 Aldy Hernandez <aldyh@redhat.com>
9008
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.
9012
9013 2020-10-14 Richard Biener <rguenther@suse.de>
9014
9015 * tree-vect-slp.c (vect_get_and_check_slp_defs): Split out
9016 test for compatible operand types.
9017
9018 2020-10-14 Olivier Hainque <hainque@adacore.com>
9019
9020 * config/vxworks.c (vxworks_override_options): Guard pic checks with
9021 flag_pic > 0 instead of just flag_pic.
9022
9023 2020-10-14 Jan Hubicka <hubicka@ucw.cz>
9024
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.
9030
9031 2020-10-14 Jan Hubicka <jh@suse.cz>
9032
9033 * ipa-modref.c (compute_parm_map): Handle POINTER_PLUS_EXPR in
9034 PASSTHROUGH.
9035
9036 2020-10-14 Richard Biener <rguenther@suse.de>
9037
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.
9043
9044 2020-10-14 Tom de Vries <tdevries@suse.de>
9045
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.
9051
9052 2020-10-14 Jan Hubicka <hubicka@ucw.cz>
9053
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.
9060
9061 2020-10-14 Jan Hubicka <jh@suse.cz>
9062
9063 PR bootstrap/97350
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.
9067
9068 2020-10-14 Kito Cheng <kito.cheng@sifive.com>
9069
9070 PR target/96759
9071 * expr.c (expand_assignment): Handle misaligned stores with PARALLEL
9072 value.
9073
9074 2020-10-13 Jakub Jelinek <jakub@redhat.com>
9075
9076 PR rtl-optimization/97386
9077 * combine.c (simplify_shift_const_1): Don't optimize nested ROTATEs if
9078 they have different modes.
9079
9080 2020-10-13 Aldy Hernandez <aldyh@redhat.com>
9081
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.
9085
9086 2020-10-13 Tobias Burnus <tobias@codesourcery.com>
9087
9088 * lto-wrapper.c (find_crtoffloadtable): Fix last commit
9089 by adding NULL as last argument to concat.
9090
9091 2020-10-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9092
9093 * config/aarch64/aarch64.c (neoversen2_tunings): Define.
9094 * config/aarch64/aarch64-cores.def (neoverse-n2): Use it.
9095
9096 2020-10-13 Tobias Burnus <tobias@codesourcery.com>
9097
9098 * lto-wrapper.c (find_crtoffloadtable): With -save-temps,
9099 use non-temp file name utilizing the dump prefix.
9100 (run_gcc): Update call.
9101
9102 2020-10-13 Richard Biener <rguenther@suse.de>
9103
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.
9125
9126 2020-10-13 Tobias Burnus <tobias@codesourcery.com>
9127
9128 * config/nvptx/mkoffload.c (main): Add missing fclose (in).
9129
9130 2020-10-13 Zhiheng Xie <xiezhiheng@huawei.com>
9131 Nannan Zheng <zhengnannan@huawei.com>
9132
9133 * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG
9134 for mul/mla/mls intrinsics.
9135
9136 2020-10-13 Jakub Jelinek <jakub@redhat.com>
9137
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_
9150 clauses.
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
9154 _looptemp_ clauses.
9155
9156 2020-10-13 Jan Hubicka <hubicka@ucw.cz>
9157
9158 PR ipa/97389
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
9168 are NULL.
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
9175 non-NULL.
9176 (ignore_edge): Fix.
9177 (compute_parm_map): Fix formating.
9178 (modref_propagate_in_scc): Do not expect loads/stores to be NULL.
9179
9180 2020-10-12 Alexandre Oliva <oliva@adacore.com>
9181
9182 * builtins.c (mathfn_built_in_type): Use CFN_ enumerators.
9183
9184 2020-10-12 Andrew MacLeod <amacleod@redhat.com>
9185
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.
9189
9190 2020-10-12 Aldy Hernandez <aldyh@redhat.com>
9191
9192 PR tree-optimization/97378
9193 * range-op.cc (operator_trunc_mod::wi_fold): Return VARYING for mod by zero.
9194
9195 2020-10-12 David Malcolm <dmalcolm@redhat.com>
9196
9197 * doc/invoke.texi: Document -Wanalyzer-write-to-const and
9198 -Wanalyzer-write-to-string-literal.
9199
9200 2020-10-12 Martin Sebor <msebor@redhat.com>
9201
9202 PR middle-end/97342
9203 PR middle-end/97023
9204 PR middle-end/96384
9205 * builtins.c (access_ref::access_ref): Initialize new member. Use
9206 new enum.
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
9221 handle new cases.
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
9227 condition.
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.
9234
9235 2020-10-12 Martin Sebor <msebor@redhat.com>
9236
9237 PR c++/96511
9238 PR middle-end/96384
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
9244 code.
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.
9255
9256 2020-10-12 Jan Hubicka <hubicka@ucw.cz>
9257
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
9290 separate summaries.
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.
9300
9301 2020-10-12 Richard Biener <rguenther@suse.de>
9302
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
9312 graph.
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.
9325
9326 2020-10-12 Christophe Lyon <christophe.lyon@linaro.org>
9327
9328 * config/arm/arm.c (arm_preferred_simd_mode): Use E_FOOmode
9329 instead of FOOmode.
9330
9331 2020-10-12 Martin Liska <mliska@suse.cz>
9332
9333 PR tree-optimization/97079
9334 * internal-fn.c (internal_fn_stored_value_index): Handle also
9335 .MASK_STORE_LANES.
9336 * tree-vect-patterns.c (vect_recog_over_widening_pattern): Bail
9337 out for unsupported TREE_TYPE.
9338
9339 2020-10-12 Richard Biener <rguenther@suse.de>
9340
9341 * tree-vect-slp.c (vect_bb_partition_graph_r): Use visited
9342 hash-map.
9343 (vect_bb_partition_graph): Likewise.
9344
9345 2020-10-12 Duan bo <duanbo3@huawei.com>
9346
9347 PR target/96757
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.
9351
9352 2020-10-12 Tobias Burnus <tobias@codesourcery.com>
9353
9354 * doc/invoke.texi (nvptx's -misa): Update default to sm_35.
9355
9356 2020-10-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9357
9358 PR target/97349
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):
9361 Fix argument type.
9362
9363 2020-10-12 Ilya Leoshkevich <iii@linux.ibm.com>
9364
9365 * config/s390/s390-protos.h (s390_build_signbit_mask): New
9366 function.
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
9373 operations.
9374
9375 2020-10-12 Aldy Hernandez <aldyh@redhat.com>
9376
9377 PR tree-optimization/97371
9378 * range-op.cc (operator_rshift::op1_range): Ignore shifts larger than
9379 or equal to type precision.
9380
9381 2020-10-12 Martin Liska <mliska@suse.cz>
9382
9383 * ipa-modref.c (merge_call_side_effects): Clear modref_parm_map
9384 fields in the vector.
9385
9386 2020-10-12 Richard Biener <rguenther@suse.de>
9387
9388 * tree-vect-slp.c (vect_analyze_slp_instance): Set matches to true
9389 after successful discovery but forced split.
9390
9391 2020-10-12 Tom de Vries <tdevries@suse.de>
9392
9393 * config/nvptx/nvptx.opt (-msoft-stack-reserve-local): Rename to ...
9394 (-msoft-stack-reserve-local=): ... this.
9395
9396 2020-10-12 Richard Biener <rguenther@suse.de>
9397
9398 PR tree-optimization/97357
9399 * tree-ssa-loop-split.c (ssa_semi_invariant_p): Abnormal
9400 SSA names are not semi invariant.
9401
9402 2020-10-11 Iain Sandoe <iain@sandoe.co.uk>
9403
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
9410 GNU runtime).
9411
9412 2020-10-11 Iain Sandoe <iain@sandoe.co.uk>
9413
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.
9418
9419 2020-10-11 Iain Sandoe <iain@sandoe.co.uk>
9420
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.
9426
9427 2020-10-10 Jan Hubicka <jh@suse.cz>
9428
9429 * ipa-modref.c (modref_transform): Fix parameter map computation.
9430
9431 2020-10-10 Tom de Vries <tdevries@suse.de>
9432
9433 PR target/97318
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.
9437
9438 2020-10-10 Tom de Vries <tdevries@suse.de>
9439
9440 * config/nvptx/nvptx.c (write_fn_proto_1): New function, factored out
9441 of ...
9442 (write_fn_proto): ... here. Return void.
9443
9444 2020-10-10 Jan Hubicka <jh@suse.cz>
9445
9446 * ipa-modref.c (remap_arguments): Check range in map access.
9447
9448 2020-10-10 Jan Hubicka <jh@suse.cz>
9449
9450 * ipa-modref.c (modref_transform): Use reserve instead of safe_grow.
9451
9452 2020-10-10 Jan Hubicka <jh@suse.cz>
9453
9454 * ipa-modref.c (modref_transform): Check that summaries are allocated.
9455
9456 2020-10-10 Jan Hubicka <jh@suse.cz>
9457
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
9461 summary).
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.
9467
9468 2020-10-10 Jan Hubicka <jh@suse.cz>
9469
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.
9472
9473 2020-10-10 Iain Sandoe <iain@sandoe.co.uk>
9474
9475 * config/darwin.c (output_objc_section_asm_op): Avoid extra
9476 objective-c section switches unless the linker needs them.
9477
9478 2020-10-10 Iain Sandoe <iain@sandoe.co.uk>
9479
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
9483 ivar refs.
9484
9485 2020-10-10 Iain Sandoe <iain@sandoe.co.uk>
9486
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
9491 used.
9492
9493 2020-10-10 Iain Sandoe <iain@sandoe.co.uk>
9494
9495 * config/darwin.c (darwin_emit_local_bss): Amend section names to
9496 match system tools. (darwin_output_aligned_bss): Likewise.
9497
9498 2020-10-10 Aldy Hernandez <aldyh@redhat.com>
9499
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.
9504
9505 2020-10-09 Vladimir Makarov <vmakarov@redhat.com>
9506
9507 PR rtl-optimization/97313
9508 * lra-constraints.c (match_reload): Don't keep strict_low_part in
9509 reloads for non-registers.
9510
9511 2020-10-09 H.J. Lu <hjl.tools@gmail.com>
9512
9513 PR target/97148
9514 * config.gcc (extra_headers): Add x86gprintrin.h.
9515 * config/i386/adxintrin.h: Check _X86GPRINTRIN_H_INCLUDED for
9516 <x86gprintrin.h>.
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
9551 <pkuintrin.h>.
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>.
9571
9572 2020-10-09 Tom de Vries <tdevries@suse.de>
9573
9574 PR target/97348
9575 * config/nvptx/nvptx.h (ASM_SPEC): Also pass -m to nvptx-as if
9576 default is used.
9577 * config/nvptx/nvptx.opt (misa): Init with PTX_ISA_SM35.
9578
9579 2020-10-09 Richard Biener <rguenther@suse.de>
9580
9581 * doc/sourcebuild.texi (vect_masked_load): Document.
9582
9583 2020-10-09 Richard Biener <rguenther@suse.de>
9584
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.
9588
9589 2020-10-09 Jan Hubicka <jh@suse.cz>
9590
9591 PR ipa/97292
9592 PR ipa/97335
9593 * ipa-modref-tree.h (copy_from): Drop summary in a
9594 clone.
9595
9596 2020-10-09 Richard Biener <rguenther@suse.de>
9597
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
9602 after PHIs.
9603
9604 2020-10-09 Andrew MacLeod <amacleod@redhat.com>
9605
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.
9609
9610 2020-10-09 Richard Biener <rguenther@suse.de>
9611
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
9615 loop body.
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.
9622
9623 2020-10-09 Jakub Jelinek <jakub@redhat.com>
9624
9625 PR tree-optimization/94801
9626 PR target/97312
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.
9634
9635 2020-10-09 Jakub Jelinek <jakub@redhat.com>
9636
9637 PR tree-optimization/97325
9638 * match.pd (FFS(nonzero) -> CTZ(nonzero) + 1): Cast argument to
9639 corresponding unsigned type.
9640
9641 2020-10-09 Richard Biener <rguenther@suse.de>
9642
9643 * tree-vect-slp.c (vect_create_constant_vectors): Properly insert
9644 after PHIs.
9645
9646 2020-10-08 Alexandre Oliva <oliva@adacore.com>
9647
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.
9652
9653 2020-10-08 Will Schmidt <will_schmidt@vnet.ibm.com>
9654
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.
9658
9659 2020-10-08 Jan Hubicka <jh@suse.cz>
9660
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.
9668
9669 2020-10-08 Mark Wielaard <mark@klomp.org>
9670
9671 * dwarf2out.c (dwarf2out_finish): Emit .file 0 entry when
9672 generating DWARF5 .debug_line table through gas.
9673
9674 2020-10-08 John Henning <john.henning@oracle.com>
9675
9676 PR other/97309
9677 * doc/invoke.texi: Improve documentation of
9678 -fallow-store-data-races.
9679
9680 2020-10-08 Christophe Lyon <christophe.lyon@linaro.org>
9681
9682 PR target/96914
9683 * config/arm/arm_mve.h (__arm_vcvtnq_u32_f32): New.
9684
9685 2020-10-08 Martin Liska <mliska@suse.cz>
9686 Richard Biener <rguenther@suse.de>
9687
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
9721 vect_slp_function.
9722
9723 2020-10-08 Richard Biener <rguenther@suse.de>
9724
9725 PR tree-optimization/97330
9726 * tree-ssa-sink.c (statement_sink_location): Avoid skipping
9727 PHIs when they dominate the insert location.
9728
9729 2020-10-08 Jan Hubicka <jh@suse.cz>
9730
9731 * ipa-modref.c (get_access): Fix handling of offsets.
9732 * tree-ssa-alias.c (modref_may_conflict): Watch for overflows.
9733
9734 2020-10-08 Martin Liska <mliska@suse.cz>
9735
9736 * dbgcnt.def (DEBUG_COUNTER): Add ipa_mod_ref debug counter.
9737 * tree-ssa-alias.c (modref_may_conflict): Handle the counter.
9738
9739 2020-10-08 Richard Biener <rguenther@suse.de>
9740
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.
9746
9747 2020-10-08 Christophe Lyon <christophe.lyon@linaro.org>
9748
9749 PR target/96914
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)
9757 (VQRDMLASHQ_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>):
9766 Update comment.
9767
9768 2020-10-08 Christophe Lyon <christophe.lyon@linaro.org>
9769
9770 PR target/96914
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
9775 unspecs.
9776 * config/arm/iterators.md (VQDMLASHQ_N_S, VQDMLASHQ_M_N_S): New
9777 attributes.
9778 (VQDMLASHQ_N): New iterator.
9779 * config/arm/mve.md (mve_vqdmlashq_n_, mve_vqdmlashq_m_n_s): New
9780 patterns.
9781
9782 2020-10-08 Jakub Jelinek <jakub@redhat.com>
9783
9784 PR target/97322
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.
9787
9788 2020-10-08 Aldy Hernandez <aldyh@redhat.com>
9789
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.
9793
9794 2020-10-08 Aldy Hernandez <aldyh@redhat.com>
9795
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.
9800
9801 2020-10-08 Aldy Hernandez <aldyh@redhat.com>
9802
9803 PR tree-optimization/97315
9804 * gimple-ssa-evrp.c (hybrid_folder::choose_value): Removes the
9805 trap and instead annotates the listing.
9806
9807 2020-10-08 Jakub Jelinek <jakub@redhat.com>
9808
9809 PR sanitizer/97294
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.
9814
9815 2020-10-07 Aldy Hernandez <aldyh@redhat.com>
9816
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
9820 of flag_evrp_mode.
9821 * gimple-ssa-evrp.c (rvrp_folder): Same.
9822 (hybrid_folder): Same.
9823 (execute_early_vrp): Same.
9824
9825 2020-10-07 Richard Biener <rguenther@suse.de>
9826
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
9830 rather than uses.
9831
9832 2020-10-07 Andrew MacLeod <amacleod@redhat.com>
9833
9834 * value-range.h (irange_allocator::allocate): Allocate in two hunks
9835 instead of using the variably-sized trailing array approach.
9836
9837 2020-10-07 David Malcolm <dmalcolm@redhat.com>
9838
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.
9843
9844 2020-10-07 Martin Jambor <mjambor@suse.cz>
9845
9846 PR ipa/96394
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.
9850
9851 2020-10-07 Andrew Stubbs <ams@codesourcery.com>
9852
9853 * config/gcn/gcn.md (unspec): Add UNSPEC_ADDPTR.
9854 (addptrdi3): Add SGPR alternative.
9855
9856 2020-10-07 Mark Wielaard <mark@klomp.org>
9857
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.
9867
9868 2020-10-07 Jakub Jelinek <jakub@redhat.com>
9869
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.
9886
9887 2020-10-07 Jakub Jelinek <jakub@redhat.com>
9888
9889 PR bootstrap/97305
9890 * optc-save-gen.awk: Don't declare mask variable if explicit_mask
9891 array is not present.
9892
9893 2020-10-07 Jakub Jelinek <jakub@redhat.com>
9894
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.
9899
9900 2020-10-07 Tom de Vries <tdevries@suse.de>
9901
9902 * tree-ssa-loop-ch.c (ch_base::copy_headers): Add missing NULL test
9903 for dump_file.
9904
9905 2020-10-06 Andrew MacLeod <amacleod@redhat.com>
9906
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
9921 other.
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
9926 rangers values.
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.
9932
9933 2020-10-06 Andrew MacLeod <amacleod@redhat.com>
9934
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.
9944
9945 2020-10-06 Dennis Zhang <dennis.zhang@arm.com>
9946
9947 * config/arm/arm.c (arm_preferred_simd_mode): Enable MVE SIMD modes.
9948
9949 2020-10-06 Tom de Vries <tdevries@suse.de>
9950
9951 PR middle-end/90861
9952 * gimplify.c (gimplify_bind_expr): Handle lookup in
9953 oacc_declare_returns using key with decl-expr.
9954
9955 2020-10-06 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
9956
9957 * config/arm/iterators.md (MVE_types): Move mode iterator from mve.md to
9958 iterators.md.
9959 (MVE_VLD_ST): Likewise.
9960 (MVE_0): Likewise.
9961 (MVE_1): Likewise.
9962 (MVE_3): Likewise.
9963 (MVE_2): Likewise.
9964 (MVE_5): Likewise.
9965 (MVE_6): 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.
9982 (mode1): Likewise.
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.
9988 (VCVTAQ): Likewise.
9989 (VMVNQ): Likewise.
9990 (VDUPQ_N): Likewise.
9991 (VCLZQ): Likewise.
9992 (VADDVQ): Likewise.
9993 (VREV32Q): Likewise.
9994 (VMOVLBQ): Likewise.
9995 (VMOVLTQ): Likewise.
9996 (VCVTPQ): Likewise.
9997 (VCVTNQ): Likewise.
9998 (VCVTMQ): Likewise.
9999 (VADDLVQ): Likewise.
10000 (VCTPQ): 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.
10008 (VSHLQ): Likewise.
10009 (VABDQ): Likewise.
10010 (VADDQ_N): Likewise.
10011 (VADDVAQ): Likewise.
10012 (VADDVQ_P): Likewise.
10013 (VANDQ): Likewise.
10014 (VBICQ): Likewise.
10015 (VBRSRQ_N): Likewise.
10016 (VCADDQ_ROT270): Likewise.
10017 (VCADDQ_ROT90): Likewise.
10018 (VCMPEQQ): Likewise.
10019 (VCMPEQQ_N): Likewise.
10020 (VCMPNEQ_N): Likewise.
10021 (VEORQ): Likewise.
10022 (VHADDQ): Likewise.
10023 (VHADDQ_N): Likewise.
10024 (VHSUBQ): Likewise.
10025 (VHSUBQ_N): Likewise.
10026 (VMAXQ): Likewise.
10027 (VMAXVQ): Likewise.
10028 (VMINQ): Likewise.
10029 (VMINVQ): Likewise.
10030 (VMLADAVQ): Likewise.
10031 (VMULHQ): Likewise.
10032 (VMULLBQ_INT): Likewise.
10033 (VMULLTQ_INT): Likewise.
10034 (VMULQ): Likewise.
10035 (VMULQ_N): Likewise.
10036 (VORNQ): Likewise.
10037 (VORRQ): 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.
10054 (VSUBQ): 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.
10191 (VLD1Q): 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.
10201 (VST1Q): 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.
10217 (VSBCQ): Likewise.
10218 (VSBCQ_M): Likewise.
10219 (VSBCIQ): Likewise.
10220 (VSBCIQ_M): Likewise.
10221 (VADCQ): 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.
10228 (MVE_0): Likewise.
10229 (MVE_1): Likewise.
10230 (MVE_3): Likewise.
10231 (MVE_2): Likewise.
10232 (MVE_5): Likewise.
10233 (MVE_6): 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.
10250 (mode1): Likewise.
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.
10257 (VMVNQ): Likewise.
10258 (VDUPQ_N): Likewise.
10259 (VCLZQ): 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.
10268 (VCTPQ): 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.
10276 (VSHLQ): Likewise.
10277 (VABDQ): Likewise.
10278 (VADDQ_N): Likewise.
10279 (VADDVAQ): Likewise.
10280 (VADDVQ_P): Likewise.
10281 (VANDQ): Likewise.
10282 (VBICQ): Likewise.
10283 (VBRSRQ_N): Likewise.
10284 (VCADDQ_ROT270): Likewise.
10285 (VCADDQ_ROT90): Likewise.
10286 (VCMPEQQ): Likewise.
10287 (VCMPEQQ_N): Likewise.
10288 (VCMPNEQ_N): Likewise.
10289 (VEORQ): Likewise.
10290 (VHADDQ): Likewise.
10291 (VHADDQ_N): Likewise.
10292 (VHSUBQ): Likewise.
10293 (VHSUBQ_N): Likewise.
10294 (VMAXQ): Likewise.
10295 (VMAXVQ): Likewise.
10296 (VMINQ): Likewise.
10297 (VMINVQ): Likewise.
10298 (VMLADAVQ): Likewise.
10299 (VMULHQ): Likewise.
10300 (VMULLBQ_INT): Likewise.
10301 (VMULLTQ_INT): Likewise.
10302 (VMULQ): Likewise.
10303 (VMULQ_N): Likewise.
10304 (VORNQ): Likewise.
10305 (VORRQ): 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.
10322 (VSUBQ): 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.
10459 (VLD1Q): 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.
10469 (VST1Q): 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.
10485 (VSBCQ): Likewise.
10486 (VSBCQ_M): Likewise.
10487 (VSBCIQ): Likewise.
10488 (VSBCIQ_M): Likewise.
10489 (VADCQ): 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.
10497
10498 2020-10-06 Martin Liska <mliska@suse.cz>
10499
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
10506 -fdbg-cnt-list.
10507 * opts.c (common_handle_option): Likewise.
10508 * toplev.c (finalize): Handle it after compilation here.
10509
10510 2020-10-06 Martin Liska <mliska@suse.cz>
10511
10512 * dbgcnt.c (dbg_cnt): Report also upper limit.
10513
10514 2020-10-06 Tom de Vries <tdevries@suse.de>
10515
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.
10521
10522 2020-10-06 Tom de Vries <tdevries@suse.de>
10523
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.
10527
10528 2020-10-06 Jakub Jelinek <jakub@redhat.com>
10529
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.
10539
10540 2020-10-06 Aldy Hernandez <aldyh@redhat.com>
10541
10542 * value-range.h (irange_allocator::allocate): Increase
10543 newir storage by one.
10544
10545 2020-10-06 Jakub Jelinek <jakub@redhat.com>
10546
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.
10550
10551 2020-10-06 Joe Ramsay <joe.ramsay@arm.com>
10552
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.
10563
10564 2020-10-06 Andreas Krebbel <krebbel@linux.ibm.com>
10565
10566 * doc/invoke.texi: Add z15/arch13 to the list of documented
10567 -march/-mtune options.
10568
10569 2020-10-05 Aldy Hernandez <aldyh@redhat.com>
10570
10571 * value-range.cc (irange::legacy_intersect): Only handle
10572 legacy ranges.
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.
10578
10579 2020-10-05 Aldy Hernandez <aldyh@redhat.com>
10580
10581 * range-op.cc (operator_div::wi_fold): Return varying for
10582 division by zero.
10583 (class operator_rshift): Move class up.
10584 (operator_abs::wi_fold): Return [-MIN,-MIN] for ABS([-MIN,-MIN]).
10585 (operator_tests): Adjust tests.
10586
10587 2020-10-05 Tom de Vries <tdevries@suse.de>
10588
10589 * tracer.c (ignore_bb_p): Ignore GOMP_SIMT_XCHG_*.
10590
10591 2020-10-05 Alex Coplan <alex.coplan@arm.com>
10592
10593 * config/arm/arm-cpus.in (neoverse-v1): Add missing vendor and
10594 part numbers.
10595
10596 2020-10-05 Tom de Vries <tdevries@suse.de>
10597
10598 * tracer.c (ignore_bb_p): Remove incorrect suggestion.
10599
10600 2020-10-05 Jakub Jelinek <jakub@redhat.com>
10601
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.
10607
10608 2020-10-05 Jakub Jelinek <jakub@redhat.com>
10609
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.
10613
10614 2020-10-05 Tom de Vries <tdevries@suse.de>
10615
10616 PR fortran/95654
10617 * tracer.c (ignore_bb_p): Ignore GOMP_SIMT_ENTER_ALLOC,
10618 GOMP_SIMT_VOTE_ANY and GOMP_SIMT_EXIT.
10619
10620 2020-10-03 Jakub Jelinek <jakub@redhat.com>
10621
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.
10627
10628 2020-10-03 Jan Hubicka <hubicka@ucw.cz>
10629
10630 * ipa-modref-tree.c (test_insert_search_collapse): Update andling
10631 of accesses.
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.
10649
10650 2020-10-03 H.J. Lu <hjl.tools@gmail.com>
10651
10652 PR other/97280
10653 * doc/extend.texi: Replace roudnevenl with roundevenl
10654
10655 2020-10-02 David Edelsohn <dje.gcc@gmail.com>
10656 Andrew MacLeod <amacleod@redhat.com>
10657
10658 * config/rs6000/rs6000.c: Include ssa.h. Reorder some headers.
10659 * config/rs6000/rs6000-call.c: Same.
10660
10661 2020-10-02 Martin Jambor <mjambor@suse.cz>
10662
10663 * params.opt (ipa-cp-large-unit-insns): New parameter.
10664 * ipa-cp.c (get_max_overall_size): Use the new parameter.
10665
10666 2020-10-02 Martin Jambor <mjambor@suse.cz>
10667
10668 * ipa-cp.c (estimate_local_effects): Add overeall_size to dumped
10669 string.
10670 (decide_about_value): Add dumping new overall_size.
10671
10672 2020-10-02 Martin Jambor <mjambor@suse.cz>
10673
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
10682 stride.
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
10698 simple predicates.
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.
10702
10703 2020-10-02 Martin Jambor <mjambor@suse.cz>
10704
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.
10719
10720 2020-10-02 Martin Jambor <mjambor@suse.cz>
10721
10722 * ipa-fnsummary.h (ipa_cached_call_context): New forward declaration
10723 and class.
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.
10733
10734 2020-10-02 Martin Jambor <mjambor@suse.cz>
10735
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
10777 m_avals.
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):
10793 New destructor.
10794
10795 2020-10-02 Joe Ramsay <joe.ramsay@arm.com>
10796
10797 * config/arm/arm_mve.h (__arm_vmaxnmavq): Remove coercion of scalar
10798 argument.
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.
10814
10815 2020-10-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10816
10817 * config/aarch64/aarch64.c (neoversev1_tunings): Define.
10818 * config/aarch64/aarch64-cores.def (zeus): Use it.
10819 (neoverse-v1): Likewise.
10820
10821 2020-10-02 Jan Hubicka <hubicka@ucw.cz>
10822
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.
10834
10835 2020-10-02 Jan Hubicka <jh@suse.cz>
10836
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.
10843
10844 2020-10-02 Jan Hubicka <jh@suse.cz>
10845
10846 * tree-ssa-alias.c (ao_ref_init_from_ptr_and_range): Break out from ...
10847 (ao_ref_init_from_ptr_and_size): ... here.
10848
10849 2020-10-02 Jan Hubicka <hubicka@ucw.cz>
10850
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.
10855
10856 2020-10-02 Richard Sandiford <richard.sandiford@arm.com>
10857
10858 * config/aarch64/aarch64-protos.h (aarch64_sve_pred_dominates_p):
10859 Delete.
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
10874 and...
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
10881 and...
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
10891 and...
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
10939 into...
10940 (*cond_<optab>_nontrunc<SVE_FULL_F:mode><SVE_FULL_HSDI:mode>_relaxed):
10941 ...this and...
10942 (*cond_<optab>_nontrunc<SVE_FULL_F:mode><SVE_FULL_HSDI:mode>_strict):
10943 ...this.
10944 (*cond_<optab>_nonextend<SVE_FULL_HSDI:mode><SVE_FULL_F:mode>): Split
10945 into...
10946 (*cond_<optab>_nonextend<SVE_FULL_HSDI:mode><SVE_FULL_F:mode>_relaxed):
10947 ...this and...
10948 (*cond_<optab>_nonextend<SVE_FULL_HSDI:mode><SVE_FULL_F:mode>_strict):
10949 ...this.
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
10956 and...
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.
10961
10962 2020-10-02 Richard Sandiford <richard.sandiford@arm.com>
10963
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.
10983
10984 2020-10-02 Martin Liska <mliska@suse.cz>
10985
10986 PR gcov-profile/97193
10987 * coverage.c (coverage_init): GCDA note files should not be
10988 mangled and should end in output directory.
10989
10990 2020-10-02 Jason Merril <jason@redhat.com>
10991
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.
11000
11001 2020-10-02 Richard Biener <rguenther@suse.de>
11002
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
11012 expressions.
11013 (propagate_necessity): Likewise.
11014 (eliminate_unnecessary_stmts): Likewise.
11015 * tree-ssa-structalias.c (find_func_aliases_for_call):
11016 Likewise.
11017
11018 2020-10-02 Jason Merril <jason@redhat.com>
11019
11020 * tree.h (CALL_FROM_NEW_OR_DELETE_P): Move from cp-tree.h.
11021 * tree-core.h: Document new usage of protected_flag.
11022
11023 2020-10-02 Aldy Hernandez <aldyh@redhat.com>
11024
11025 * value-range.h (irange::fits_p): New.
11026
11027 2020-10-01 Alan Modra <amodra@gmail.com>
11028
11029 * config/rs6000/rs6000.c (rs6000_legitimize_address): Use
11030 gen_int_mode for high part of address constant.
11031
11032 2020-10-01 Alan Modra <amodra@gmail.com>
11033
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.
11037
11038 2020-10-01 Alan Modra <amodra@gmail.com>
11039
11040 * config/rs6000/freebsd64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
11041 rs6000_linux64_override_options.
11042 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Break
11043 out to..
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.
11047
11048 2020-10-01 Martin Liska <mliska@suse.cz>
11049
11050 * config/rs6000/rs6000-call.c: Include value-range.h.
11051 * config/rs6000/rs6000.c: Likewise.
11052
11053 2020-10-01 Tom de Vries <tdevries@suse.de>
11054
11055 PR target/80845
11056 * config/nvptx/nvptx.md (define_insn "truncsi<QHIM>2"): Emit mov.u32
11057 instead of cvt.u32.u32.
11058
11059 2020-10-01 Richard Sandiford <richard.sandiford@arm.com>
11060
11061 PR target/96528
11062 PR target/97288
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.
11080
11081 2020-10-01 Michael Davidsaver <mdavidsaver@gmail.com>
11082
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.
11088
11089 2020-10-01 Aldy Hernandez <aldyh@redhat.com>
11090
11091 * builtins.c (compute_objsize): Replace vr_values with range_query.
11092 (get_range): Same.
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.
11137
11138 2020-10-01 Aldy Hernandez <aldyh@redhat.com>
11139
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
11156 vr_values.
11157 (evrp_folder::value_of_evrp): Rename from get_value.
11158 * tree-ssa-ccp.c (class ccp_folder): Rename get_value to
11159 value_of_expr.
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
11163 value_of_expr.
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):
11179 Same.
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
11194 through query.
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.
11212
11213 2020-10-01 Richard Biener <rguenther@suse.de>
11214
11215 PR tree-optimization/97236
11216 * tree-vect-stmts.c (get_group_load_store_type): Keep
11217 VMAT_ELEMENTWISE for single-element vectors.
11218
11219 2020-10-01 Jan Hubicka <jh@suse.cz>
11220
11221 * ipa-modref.c (compute_parm_map): Be ready for callee_pi to be NULL.
11222
11223 2020-10-01 Jan Hubicka <jh@suse.cz>
11224
11225 PR ipa/97244
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
11230 not exist.
11231 (ipa_unregister_cgraph_hooks): Likewise.
11232
11233 2020-10-01 Jan Hubicka <jh@suse.cz>
11234
11235 * internal-fn.c (DEF_INTERNAL_FN): Fix handling of fnspec
11236
11237 2020-10-01 Aldy Hernandez <aldyh@redhat.com>
11238
11239 * Makefile.in: Add value-query.o.
11240 * value-query.cc: New file.
11241 * value-query.h: New file.
11242
11243 2020-10-01 Alex Coplan <alex.coplan@arm.com>
11244
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.
11248
11249 2020-10-01 Jakub Jelinek <jakub@redhat.com>
11250
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.
11254
11255 2020-10-01 Richard Biener <rguenther@suse.de>
11256
11257 * tree-vect-patterns.c (vect_recog_bool_pattern): Also handle
11258 VIEW_CONVERT_EXPR.
11259
11260 2020-10-01 Florian Weimer <fweimer@redhat.com>
11261
11262 PR target/97250
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.
11270
11271 2020-10-01 Alan Modra <amodra@gmail.com>
11272
11273 * config/rs6000/ppc-asm.h: Support __PCREL__ code.
11274
11275 2020-10-01 Alan Modra <amodra@gmail.com>
11276
11277 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't
11278 set -mcmodel=small for -mno-minimal-toc when pcrel.
11279
11280 2020-09-30 Martin Sebor <msebor@redhat.com>
11281
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.
11285
11286 2020-09-30 Martin Sebor <msebor@redhat.com>
11287
11288 PR c/97206
11289 * attribs.c (attr_access::array_as_string): Avoid modifying a shared
11290 type in place and use build_type_attribute_qual_variant instead.
11291
11292 2020-09-30 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
11293
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.
11298
11299 2020-09-30 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
11300
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.
11304
11305 2020-09-30 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
11306
11307 PR target/96795
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.
11343
11344 2020-09-30 Joel Hutton <joel.hutton@arm.com>
11345
11346 PR target/96837
11347 * tree-vect-slp.c (vect_analyze_slp): Do not call
11348 vect_attempt_slp_rearrange_stmts for vector constructors.
11349
11350 2020-09-30 Tamar Christina <tamar.christina@arm.com>
11351
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.
11356
11357 2020-09-30 Tobias Burnus <tobias@codesourcery.com>
11358
11359 * omp-offload.c (omp_discover_implicit_declare_target): Also
11360 handled nested functions.
11361
11362 2020-09-30 Tobias Burnus <tobias@codesourcery.com>
11363 Tom de Vries <tdevries@suse.de>
11364
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):
11369 Same.
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
11379 call.
11380 * match.pd: Same.
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.
11389
11390 2020-09-30 H.J. Lu <hjl.tools@gmail.com>
11391
11392 PR target/97184
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.
11399
11400 2020-09-30 Florian Weimer <fweimer@redhat.com>
11401
11402 * config/i386/i386-c.c (ix86_target_macros_internal): Define
11403 __LAHF_SAHF__ and __MOVBE__ based on ISA flags.
11404
11405 2020-09-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11406
11407 PR target/97150
11408 * config/aarch64/arm_neon.h (vqrshlb_u8): Make second argument
11409 signed.
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.
11418
11419 2020-09-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11420
11421 PR target/96313
11422 * config/aarch64/aarch64-simd-builtins.def (sqmovun): Use UNOPUS
11423 qualifiers.
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.
11431
11432 2020-09-30 Richard Sandiford <richard.sandiford@arm.com>
11433
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.
11440
11441 2020-09-30 Alex Coplan <alex.coplan@arm.com>
11442
11443 PR target/97251
11444 * config/arm/arm.md (movsf): Relax TARGET_HARD_FLOAT to
11445 TARGET_VFP_BASE.
11446 (movdf): Likewise.
11447 * config/arm/vfp.md (no_literal_pool_df_immediate): Likewise.
11448 (no_literal_pool_sf_immediate): Likewise.
11449
11450 2020-09-30 Alan Modra <amodra@gmail.com>
11451
11452 * configure.ac (--with-long-double-format): Typo fix.
11453 * configure: Regenerate.
11454
11455 2020-09-30 Alan Modra <amodra@gmail.com>
11456
11457 * config/rs6000/rs6000.md (@tablejump<mode>_normal): Don't use
11458 non-existent operands[].
11459 (@tablejump<mode>_nospec): Likewise.
11460
11461 2020-09-30 Segher Boessenkool <segher@kernel.crashing.org>
11462
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.
11474
11475 2020-09-29 Martin Sebor <msebor@redhat.com>
11476
11477 PR middle-end/97188
11478 * calls.c (maybe_warn_rdwr_sizes): Simplify warning messages.
11479 Correct handling of VLA argumments.
11480
11481 2020-09-29 Marek Polacek <polacek@redhat.com>
11482
11483 PR c++/94695
11484 * doc/invoke.texi: Document -Wrange-loop-construct.
11485
11486 2020-09-29 Jim Wilson <jimw@sifive.com>
11487
11488 PR bootstrap/97183
11489 * configure.ac (gcc_cv_header_zstd_h): Check ZSTD_VERISON_NUMBER.
11490 * configure: Regenerated.
11491
11492 2020-09-29 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
11493
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.
11498
11499 2020-09-29 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
11500
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.
11504
11505 2020-09-29 H.J. Lu <hjl.tools@gmail.com>
11506
11507 PR target/97247
11508 * config/i386/enqcmdintrin.h: Replace <enqcmdntrin.h> with
11509 <enqcmdintrin.h>. Replace _ENQCMDNTRIN_H_INCLUDED with
11510 _ENQCMDINTRIN_H_INCLUDED.
11511
11512 2020-09-29 Richard Biener <rguenther@suse.de>
11513
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.
11517
11518 2020-09-29 Richard Biener <rguenther@suse.de>
11519
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.
11524
11525 2020-09-29 Hongyu Wang <hongyu.wang@intel.com>
11526
11527 PR target/97231
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.
11536
11537 2020-09-29 Richard Biener <rguenther@suse.de>
11538
11539 PR tree-optimization/97238
11540 * tree-ssa-reassoc.c (ovce_extract_ops): Fix typo.
11541
11542 2020-09-29 Richard Sandiford <richard.sandiford@arm.com>
11543
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):
11553 Likewise.
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.
11564
11565 2020-09-29 Kito Cheng <kito.cheng@sifive.com>
11566
11567 * config/riscv/riscv-c.c (riscv_cpu_cpp_builtins): Define
11568 __riscv_cmodel_medany when PIC mode.
11569
11570 2020-09-29 Alex Coplan <alex.coplan@arm.com>
11571
11572 * config/aarch64/aarch64-cores.def: Move neoverse-n2 after saphira.
11573 * config/aarch64/aarch64-tune.md: Regenerate.
11574
11575 2020-09-29 Martin Liska <mliska@suse.cz>
11576
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
11582 of a folding.
11583
11584 2020-09-29 Martin Liska <mliska@suse.cz>
11585
11586 Revert:
11587 2020-09-22 Martin Liska <mliska@suse.cz>
11588
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.
11595
11596 2020-09-28 Aldy Hernandez <aldyh@redhat.com>
11597
11598 * value-range.h (class irange): Add irange_allocator friend.
11599 (class irange_allocator): New.
11600
11601 2020-09-28 Tobias Burnus <tobias@codesourcery.com>
11602
11603 PR middle-end/96390
11604 * omp-offload.c (omp_discover_declare_target_tgt_fn_r): Handle
11605 alias nodes.
11606
11607 2020-09-28 Paul A. Clarke <pc@us.ibm.com>
11608
11609 * config/rs6000/smmintrin.h (_mm_insert_epi8): New.
11610 (_mm_insert_epi32): New.
11611 (_mm_insert_epi64): New.
11612
11613 2020-09-28 liuhongt <hongtao.liu@intel.com>
11614
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):
11619 New marcos.
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):
11635 New macro.
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.
11652
11653 2020-09-28 Andrea Corallo <andrea.corallo@arm.com>
11654
11655 * config/aarch64/aarch64-builtins.c
11656 (aarch64_general_expand_builtin): Do not alter value on a
11657 force_reg returned rtx.
11658
11659 2020-09-28 Eric Botcazou <ebotcazou@adacore.com>
11660
11661 * tree-eh.c (lower_try_finally_dup_block): Revert latest change.
11662
11663 2020-09-27 Jan Hubicka <jh@suse.cz>
11664
11665 * ipa-modref.c (modref_summary::useful_p): Fix testing of stores.
11666
11667 2020-09-27 Jakub Jelinek <jakub@redhat.com>
11668
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.
11673
11674 2020-09-27 Xionghu Luo <luoxhu@linux.ibm.com>
11675
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.
11686
11687 2020-09-26 Jan Hubicka <jh@suse.cz>
11688
11689 * ipa-modref.c (analyze_stmt): Do not skip clobbers in early pass.
11690 * ipa-pure-const.c (analyze_stmt): Update comment.
11691
11692 2020-09-26 David Edelsohn <dje.gcc@gmail.com>
11693 Clement Chigot <clement.chigot@atos.com>
11694
11695 * collect2.c (visibility_flag): New.
11696 (main): Detect -fvisibility.
11697 (write_c_file_stat): Push and pop default visibility.
11698
11699 2020-09-26 Jan Hubicka <hubicka@ucw.cz>
11700
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.
11715
11716 2020-09-26 Jakub Jelinek <jakub@redhat.com>
11717
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.
11722
11723 2020-09-26 Jan Hubicka <jh@suse.cz>
11724
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
11728 flag.
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.
11739
11740 2020-09-26 Jan Hubicka <hubicka@ucw.cz>
11741
11742 * ipa-modref-tree.h (modref_ref_node::insert_access): Track if something
11743 changed.
11744 (modref_base_node::insert_ref): Likewise (and add a new optional
11745 argument)
11746 (modref_tree::insert): Likewise.
11747 (modref_tree::merge): Rewrite
11748
11749 2020-09-25 Jan Hubicka <hubicka@ucw.cz>
11750
11751 * doc/invoke.texi: Add -fno-ipa-modref to flags disabled by
11752 -flive-patching.
11753 * opts.c (control_options_for_live_patching): Disable ipa-modref.
11754
11755 2020-09-25 Jan Hubicka <hubicka@ucw.cz>
11756
11757 * ipa-modref.c (analyze_stmt): Fix return value for gimple_clobber.
11758
11759 2020-09-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11760
11761 * config/aarch64/aarch64-option-extensions.def (rng): Add
11762 cpuinfo string.
11763
11764 2020-09-25 Alex Coplan <alex.coplan@arm.com>
11765
11766 * config/arm/arm-cpus.in (neoverse-v1): Add FP16.
11767
11768 2020-09-25 Martin Liska <mliska@suse.cz>
11769
11770 PR gcov-profile/64636
11771 * value-prof.c (stream_out_histogram_value): Allow negative
11772 values for HIST_TYPE_IOR.
11773
11774 2020-09-25 Tom de Vries <tdevries@suse.de>
11775
11776 * config/nvptx/nvptx.c (nvptx_assemble_integer, nvptx_print_operand):
11777 Use gcc_fallthrough ().
11778
11779 2020-09-25 Richard Biener <rguenther@suse.de>
11780
11781 PR middle-end/96814
11782 * expr.c (store_constructor): Handle VECTOR_BOOLEAN_TYPE_P
11783 CTORs correctly.
11784
11785 2020-09-25 Richard Biener <rguenther@suse.de>
11786
11787 PR middle-end/97207
11788 * vec.h (auto_vec<T>::operator=(auto_vec<T>&&)): Implement.
11789
11790 2020-09-25 Richard Sandiford <richard.sandiford@arm.com>
11791
11792 * config/arm/arm-protos.h (arm_mve_mode_and_operands_type_check):
11793 Delete.
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
11801 back into...
11802 (*mov<mode>_vfp_<mode>16): ...here but use Uj for the FPR memory
11803 constraints. Use for base MVE too.
11804
11805 2020-09-25 Richard Biener <rguenther@suse.de>
11806
11807 PR tree-optimization/97199
11808 * tree-if-conv.c (combine_blocks): Remove edges only
11809 after looking at virtual PHI args.
11810
11811 2020-09-25 Jakub Jelinek <jakub@redhat.com>
11812
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.
11823
11824 2020-09-25 Martin Liska <mliska@suse.cz>
11825
11826 * cgraph.c (cgraph_edge::debug): New.
11827 * cgraph.h (cgraph_edge::debug): New.
11828
11829 2020-09-25 Martin Liska <mliska@suse.cz>
11830
11831 * cgraph.c (cgraph_node::dump): Always print space at the end
11832 of a message. Remove one extra space.
11833
11834 2020-09-24 Alex Coplan <alex.coplan@arm.com>
11835
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.
11840
11841 2020-09-24 Alex Coplan <alex.coplan@arm.com>
11842
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.
11846
11847 2020-09-24 Richard Biener <rguenther@suse.de>
11848
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.
11874
11875 2020-09-24 Jan Hubicka <jh@suse.cz>
11876
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.
11916
11917 2020-09-24 Richard Sandiford <richard.sandiford@arm.com>
11918
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.
11923
11924 2020-09-24 Richard Biener <rguenther@suse.de>
11925
11926 PR tree-optimization/97085
11927 * match.pd (mask ? { false,..} : { true, ..} -> ~mask): New.
11928
11929 2020-09-24 Jan Hubicka <hubicka@ucw.cz>
11930
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.
11940
11941 2020-09-24 Alan Modra <amodra@gmail.com>
11942
11943 * config/rs6000/rs6000.c (rs6000_rtx_costs): Pass mode to
11944 reg_or_add_cint_operand and reg_or_sub_cint_operand.
11945
11946 2020-09-24 Alan Modra <amodra@gmail.com>
11947
11948 PR target/93012
11949 * config/rs6000/rs6000.c (num_insns_constant_gpr): Count rldimi
11950 constants correctly.
11951
11952 2020-09-24 Alan Modra <amodra@gmail.com>
11953
11954 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
11955 Conditionally define __PCREL__.
11956
11957 2020-09-24 Alan Modra <amodra@gmail.com>
11958
11959 PR target/97107
11960 * config/rs6000/rs6000-internal.h (struct rs6000_stack): Improve
11961 calls_p comment.
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.
11965
11966 2020-09-24 David Malcolm <dmalcolm@redhat.com>
11967
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.
11972
11973 2020-09-24 Paul A. Clarke <pc@us.ibm.com>
11974
11975 * doc/extend.texi: Add 'd' for doubleword variant of
11976 vector insert instruction.
11977
11978 2020-09-23 Martin Sebor <msebor@redhat.com>
11979
11980 * gimple-array-bounds.cc (build_zero_elt_array_type): New function.
11981 (array_bounds_checker::check_mem_ref): Call it.
11982
11983 2020-09-23 Martin Sebor <msebor@redhat.com>
11984
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.
11988
11989 2020-09-23 Jan Hubicka <jh@suse.cz>
11990
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.
11997
11998 2020-09-23 Tom de Vries <tdevries@suse.de>
11999
12000 * config/nvptx/nvptx.md: Don't allow operand containing sum of
12001 function ref and const.
12002
12003 2020-09-23 Richard Sandiford <richard.sandiford@arm.com>
12004
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.
12030
12031 2020-09-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12032
12033 PR target/71233
12034 * config/aarch64/arm_neon.h (vreinterpretq_f64_p128,
12035 vreinterpretq_p128_f64): Define.
12036
12037 2020-09-23 Alex Coplan <alex.coplan@arm.com>
12038
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.
12043
12044 2020-09-23 Alex Coplan <alex.coplan@arm.com>
12045
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.
12049
12050 2020-09-23 Richard Biener <rguenther@suse.de>
12051
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.
12056
12057 2020-09-23 Jan Hubicka <hubicka@ucw.cz>
12058
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.
12067
12068 2020-09-23 Richard Biener <rguenther@suse.de>
12069
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
12074 make_vector_type.
12075
12076 2020-09-23 Richard Sandiford <richard.sandiford@arm.com>
12077
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,
12094 split out from...
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.
12098
12099 2020-09-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12100
12101 PR target/71233
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.
12105
12106 2020-09-23 Richard Biener <rguenther@suse.de>
12107
12108 PR tree-optimization/97173
12109 * tree-vect-loop.c (vectorizable_live_operation): Extend
12110 assert to also conver element conversions.
12111
12112 2020-09-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12113
12114 PR target/71233
12115 * config/aarch64/arm_neon.h (vtrn1q_p64, vtrn2q_p64, vuzp1q_p64,
12116 vuzp2q_p64, vzip1q_p64, vzip2q_p64): Define.
12117
12118 2020-09-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12119
12120 PR target/71233
12121 * config/aarch64/arm_neon.h (vldrq_p128): Define.
12122
12123 2020-09-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12124
12125 PR target/71233
12126 * config/aarch64/arm_neon.h (vstrq_p128): Define.
12127
12128 2020-09-23 Richard Biener <rguenther@suse.de>
12129
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
12133 arguments.
12134
12135 2020-09-23 Richard Biener <rguenther@suse.de>
12136
12137 PR middle-end/97162
12138 * alias.c (compare_base_decls): Use DECL_HARD_REGISTER
12139 and guard with VAR_P.
12140
12141 2020-09-23 Martin Liska <mliska@suse.cz>
12142
12143 PR gcov-profile/97069
12144 * profile.c (branch_prob): Line number must be at least 1.
12145
12146 2020-09-23 Tom de Vries <tdevries@suse.de>
12147
12148 PR target/97158
12149 * config/nvptx/nvptx.c (nvptx_output_mov_insn): Handle move from
12150 DF subreg to DF reg.
12151
12152 2020-09-23 David Malcolm <dmalcolm@redhat.com>
12153
12154 * Makefile.in: Add $(ZLIBINC) to CFLAGS-analyzer/engine.o.
12155
12156 2020-09-22 Jan Hubicka <jh@suse.cz>
12157
12158 * ipa-modref.c (analyze_stmt): Ignore gimple clobber.
12159
12160 2020-09-22 Jan Hubicka <jh@suse.cz>
12161
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.
12173
12174 2020-09-22 David Malcolm <dmalcolm@redhat.com>
12175
12176 * doc/analyzer.texi (Other Debugging Techniques): Mention
12177 -fdump-analyzer-json.
12178 * doc/invoke.texi (Static Analyzer Options): Add
12179 -fdump-analyzer-json.
12180
12181 2020-09-22 David Faust <david.faust@oracle.com>
12182
12183 * config/bpf/bpf.md: Add defines for signed div and mod operators.
12184
12185 2020-09-22 Martin Liska <mliska@suse.cz>
12186
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.
12193
12194 2020-09-22 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
12195
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".
12199
12200 2020-09-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12201
12202 PR target/71233
12203 * config/aarch64/arm_neon.h (vcls_u8, vcls_u16, vcls_u32,
12204 vclsq_u8, vclsq_u16, vclsq_u32): Define.
12205
12206 2020-09-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12207
12208 PR target/71233
12209 * config/aarch64/arm_neon.h (vceqq_p64, vceqz_p64, vceqzq_p64): Define.
12210
12211 2020-09-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12212
12213 PR target/71233
12214 * config/aarch64/arm_neon.h (vadd_p8, vadd_p16, vadd_p64, vaddq_p8,
12215 vaddq_p16, vaddq_p64, vaddq_p128): Define.
12216
12217 2020-09-22 Jakub Jelinek <jakub@redhat.com>
12218
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.
12228
12229 2020-09-22 Jakub Jelinek <jakub@redhat.com>
12230
12231 * common.opt (-fipa-modref): Add dot at the end of option help.
12232 * params.opt (--param=modref-max-tests=): Likewise.
12233
12234 2020-09-21 Marek Polacek <polacek@redhat.com>
12235
12236 * doc/invoke.texi: Document -Wctad-maybe-unsupported.
12237
12238 2020-09-21 Richard Biener <rguenther@suse.de>
12239
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.
12243
12244 2020-09-21 Jakub Jelinek <jakub@redhat.com>
12245
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.
12250
12251 2020-09-21 Andrea Corallo <andrea.corallo@arm.com>
12252
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.
12256
12257 2020-09-21 Richard Biener <rguenther@suse.de>
12258
12259 PR tree-optimization/97135
12260 * tree-ssa-loop-im.c (sm_seq_push_down): Do not ignore
12261 self-dependences.
12262
12263 2020-09-21 Martin Liska <mliska@suse.cz>
12264
12265 PR tree-optimization/96915
12266 * tree-switch-conversion.c (switch_conversion::expand): Accept
12267 also integer constants.
12268
12269 2020-09-21 Martin Liska <mliska@suse.cz>
12270
12271 * print-tree.c (print_node): Remove extra space.
12272
12273 2020-09-21 Andrea Corallo <andrea.corallo@arm.com>
12274
12275 PR target/96968
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.
12281
12282 2020-09-21 Martin Liska <mliska@suse.cz>
12283
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.
12289
12290 2020-09-21 Martin Liska <mliska@suse.cz>
12291
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.
12298
12299 2020-09-21 Martin Liska <mliska@suse.cz>
12300
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.
12306
12307 2020-09-20 John David Anglin < danglin@gcc.gnu.org>
12308
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.
12313
12314 2020-09-20 Jan Hubicka <hubicka@ucw.cz>
12315
12316 * ipa-modref.c (dump_lto_records): Fix ICE.
12317
12318 2020-09-20 David Cepelik <d@dcepelik.cz>
12319 Jan Hubicka <hubicka@ucw.cz>
12320
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
12341 and ipa-modref.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.
12352
12353 2020-09-19 Martin Sebor <msebor@redhat.com>
12354
12355 PR middle-end/82608
12356 PR middle-end/94195
12357 PR c/50584
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.
12366
12367 2020-09-19 Martin Sebor <msebor@redhat.com>
12368
12369 PR c/50584
12370 * builtins.c (warn_for_access): Add argument. Distinguish between
12371 reads and writes.
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
12388 quotes.
12389
12390 2020-09-19 Martin Sebor <msebor@redhat.com>
12391
12392 * tree-ssa-uninit.c (maybe_warn_pass_by_reference): Handle attribute
12393 access internal representation of arrays.
12394
12395 2020-09-19 Martin Sebor <msebor@redhat.com>
12396
12397 PR c/50584
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
12413 qualifiers.
12414 * tree-ssa-uninit.c (maybe_warn_pass_by_reference): Same.
12415 * tree.h (access_mode): Add new enumerator.
12416
12417 2020-09-19 Sandra Loosemore <sandra@codesourcery.com>
12418
12419 * doc/generic.texi (Basic Statements): Document SWITCH_EXPR here,
12420 not SWITCH_STMT.
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
12424 loops and switch.
12425
12426 2020-09-19 liuhongt <hongtao.liu@intel.com>
12427
12428 PR target/96861
12429 * config/i386/x86-tune-costs.h (skylake_cost): increase rtx
12430 cost of sse_to_integer from 2 to 6.
12431
12432 2020-09-18 Sudi Das <sudi.das@arm.com>
12433 Omar Tahir <omar.tahir@arm.com>
12434
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.
12438
12439 2020-09-18 Sudi Das <sudi.das@arm.com>
12440 Omar Tahir <omar.tahir@arm.com>
12441
12442 * config/arm/thumb2.md (*thumb2_csinc): New.
12443 (*thumb2_cond_arith): Generate CINC where possible.
12444
12445 2020-09-18 Sudi Das <sudi.das@arm.com>
12446 Omar Tahir <omar.tahir@arm.com>
12447
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.
12455
12456 2020-09-18 Richard Sandiford <richard.sandiford@arm.com>
12457
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.
12461
12462 2020-09-18 Richard Biener <rguenther@suse.de>
12463
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.
12467
12468 2020-09-18 Jozef Lawrynowicz <jozef.l@mittosystems.com>
12469
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.
12475
12476 2020-09-18 Jozef Lawrynowicz <jozef.l@mittosystems.com>
12477
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.
12485
12486 2020-09-18 Andrew Stubbs <ams@codesourcery.com>
12487
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.
12492
12493 2020-09-18 Alex Coplan <alex.coplan@arm.com>
12494
12495 * cfgloop.h (nb_iter_bound): Reword comment describing is_exit.
12496
12497 2020-09-18 Richard Biener <rguenther@suse.de>
12498
12499 PR tree-optimization/97095
12500 * tree-vect-loop.c (vectorizable_live_operation): Get
12501 the SLP vector type from the correct object.
12502
12503 2020-09-18 Richard Biener <rguenther@suse.de>
12504
12505 PR tree-optimization/97089
12506 * tree-ssa-sccvn.c (visit_nary_op): Do not replace unsigned
12507 divisions.
12508
12509 2020-09-18 Richard Biener <rguenther@suse.de>
12510
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.
12514
12515 2020-09-17 Sergei Trofimovich <siarheit@google.com>
12516
12517 * profile.c (sort_hist_values): Clarify hist format:
12518 start with a value, not counter.
12519
12520 2020-09-17 Yeting Kuo <fakepaper56@gmail.com>
12521
12522 * config/riscv/riscv.h (CSW_MAX_OFFSET): Fix typo.
12523
12524 2020-09-17 Patrick Palka <ppalka@redhat.com>
12525
12526 PR c/80076
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.
12531
12532 2020-09-17 Martin Sebor <msebor@redhat.com>
12533
12534 * doc/invoke.texi (-Wuninitialized): Document -Wuninitialized for
12535 allocated objects.
12536 (-Wmaybe-uninitialized): Same.
12537
12538 2020-09-17 Richard Biener <rguenther@suse.de>
12539
12540 * tree-ssa-sccvn.c (visit_nary_op): Value-number multiplications
12541 and divisions to negates of available negated forms.
12542
12543 2020-09-17 Eric Botcazou <ebotcazou@adacore.com>
12544
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.
12549
12550 2020-09-17 Aldy Hernandez <aldyh@redhat.com>
12551
12552 * range-op.cc (multi_precision_range_tests): Normalize symbolics when copying to a
12553 multi-range.
12554 * value-range.cc (irange::copy_legacy_range): Add test.
12555
12556 2020-09-17 Jan Hubicka <jh@suse.cz>
12557
12558 * cgraph.c (cgraph_node::get_availability): Fix availability of
12559 functions in other partitions
12560 * varpool.c (varpool_node::get_availability): Likewise.
12561
12562 2020-09-17 Jojo R <jiejie_rong@c-sky.com>
12563
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.
12567
12568 2020-09-17 Sergei Trofimovich <siarheit@google.com>
12569
12570 * doc/cppenv.texi: Use @code{} instead of @samp{@command{}}
12571 around 'date %s'.
12572
12573 2020-09-17 liuhongt <hongtao.liu@intel.com>
12574
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.
12578
12579 2020-09-16 Alexandre Oliva <oliva@adacore.com>
12580
12581 * config/rs6000/rs6000.c (have_compare_and_set_mask): Use
12582 E_*mode in cases.
12583
12584 2020-09-16 Bill Schmidt <wschmidt@linux.ibm.com>
12585
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):
12589 Likewise.
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
12593 prototype.
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.
12612
12613 2020-09-16 Marek Polacek <polacek@redhat.com>
12614
12615 PR preprocessor/96935
12616 * input.c (get_substring_ranges_for_loc): Return if start.column
12617 is less than 1.
12618
12619 2020-09-16 Martin Sebor <msebor@redhat.com>
12620
12621 PR middle-end/96295
12622 * tree-ssa-uninit.c (maybe_warn_operand): Work harder to avoid
12623 warning for objects of empty structs
12624
12625 2020-09-16 Eric Botcazou <ebotcazou@adacore.com>
12626
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
12630 region tree.
12631
12632 2020-09-16 Andrea Corallo <andrea.corallo@arm.com>
12633
12634 * tree-vect-loop.c (vect_need_peeling_or_partial_vectors_p): New
12635 function.
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'.
12640
12641 2020-09-16 H.J. Lu <hjl.tools@gmail.com>
12642
12643 PR target/97032
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.
12649
12650 2020-09-16 Ilya Leoshkevich <iii@linux.ibm.com>
12651
12652 * config/s390/vector.md(*vec_tf_to_v1tf): Use "f" instead of "v"
12653 for the source operand.
12654
12655 2020-09-16 Jojo R <jiejie_rong@c-sky.com>
12656
12657 * config.gcc (C-SKY): Set use_gcc_stdint=wrap for elf target.
12658
12659 2020-09-16 Richard Biener <rguenther@suse.de>
12660
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
12676 updating.
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
12680 type here.
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
12687 vector type.
12688 (vect_slp_analyze_operations): Adjust.
12689 (vect_slp_analyze_bb_1): Likewise.
12690
12691 2020-09-16 Jojo R <jiejie_rong@c-sky.com>
12692
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.
12697
12698 2020-09-16 Jakub Jelinek <jakub@redhat.com>
12699
12700 * config/arm/arm.c (arm_option_restore): Comment out opts argument
12701 name to avoid unused parameter warnings.
12702
12703 2020-09-16 Jakub Jelinek <jakub@redhat.com>
12704
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.
12709
12710 2020-09-16 Jakub Jelinek <jakub@redhat.com>
12711
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
12717 be merged store.
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.
12724
12725 2020-09-16 Jojo R <jiejie_rong@c-sky.com>
12726
12727 * config/csky/csky-linux-elf.h (GLIBC_DYNAMIC_LINKER): Use mfloat-abi.
12728
12729 2020-09-16 Kewen Lin <linkw@linux.ibm.com>
12730
12731 PR target/97019
12732 * config/rs6000/rs6000-p8swap.c (find_alignment_op): Adjust to
12733 support multiple defintions which are all AND operations with
12734 the mask -16B.
12735 (recombine_lvx_pattern): Adjust to handle multiple AND operations
12736 from find_alignment_op.
12737 (recombine_stvx_pattern): Likewise.
12738
12739 2020-09-16 Jojo R <jiejie_rong@c-sky.com>
12740
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.
12763
12764 2020-09-16 Bill Schmidt <wschmidt@linux.ibm.com>
12765
12766 * config/rs6000/rs6000-call.c (altivec_init_builtins): Fix name
12767 of __builtin_altivec_xst_len_r.
12768
12769 2020-09-15 Ilya Leoshkevich <iii@linux.ibm.com>
12770
12771 * rtlanal.c (set_noop_p): Treat subregs of registers in
12772 different modes conservatively.
12773
12774 2020-09-15 Richard Biener <rguenther@suse.de>
12775
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
12779 use.
12780
12781 2020-09-15 Feng Xue <fxue@os.amperecomputing.com>
12782
12783 PR tree-optimization/94234
12784 * match.pd (T)(A) +- (T)(B) -> (T)(A +- B): New simplification.
12785
12786 2020-09-15 Segher Boessenkool <segher@kernel.crashing.org>
12787
12788 PR rtl-optimization/96475
12789 * bb-reorder.c (duplicate_computed_gotos): If we did anything, run
12790 cleanup_cfg.
12791
12792 2020-09-15 Richard Biener <rguenther@suse.de>
12793
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
12797 of groups.
12798
12799 2020-09-15 Andre Vieira <andre.simoesdiasvieira@arm.com>
12800
12801 * config/arm/arm.c (arm_options_perform_arch_sanity_checks): Do not
12802 check +D32 for CMSE if -mfloat-abi=soft
12803
12804 2020-09-15 liuhongt <hongtao.liu@intel.com>
12805
12806 PR target/96744
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.
12811
12812 2020-09-15 Jakub Jelinek <jakub@redhat.com>
12813
12814 PR target/97028
12815 * config/i386/sse.md (mul<mode>3<mask_name>_bcs,
12816 <avx512>_div<mode>3<mask_name>_bcst): Use <avx512bcst> instead of
12817 <<avx512bcst>>.
12818
12819 2020-09-15 Tobias Burnus <tobias@codesourcery.com>
12820
12821 PR fortran/96668
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.
12832
12833 2020-09-15 Feng Xue <fxue@os.amperecomputing.com>
12834
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.
12840
12841 2020-09-14 Sergei Trofimovich <siarheit@google.com>
12842
12843 * doc/invoke.texi: fix '-fprofile-reproducibility' option
12844 spelling in manual.
12845
12846 2020-09-14 Jose E. Marchesi <jose.marchesi@oracle.com>
12847
12848 * config/bpf/bpf.md ("nop"): Re-define as `ja 0'.
12849
12850 2020-09-14 Eric Botcazou <ebotcazou@adacore.com>
12851
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.
12856
12857 2020-09-14 Pat Haugen <pthaugen@linux.ibm.com>
12858
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):
12862 Remove.
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
12868 TYPE_MFFGPR cases.
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.
12877
12878 2020-09-14 Jakub Jelinek <jakub@redhat.com>
12879
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.
12886
12887 2020-09-14 Jakub Jelinek <jakub@redhat.com>
12888
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
12904 opts_set argument.
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
12914 argument.
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
12927 caller.
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
12934 opts_set argument.
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
12939 caller.
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
12952 callers.
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
12958 caller.
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
12963 caller.
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
12972 caller.
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
12981 callers.
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
12985 caller.
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
12992 callers.
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
12997 caller.
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
13003 caller.
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.
13008
13009 2020-09-13 Roger Sayle <roger@nextmovesoftware.com>
13010
13011 * config/pa/pa.c (hppa_rtx_costs) [ASHIFT, ASHIFTRT, LSHIFTRT]:
13012 Provide accurate costs for DImode shifts of integer constants.
13013
13014 2020-09-12 Roger Sayle <roger@nextmovesoftware.com>
13015 John David Anglin <danglin@gcc.gnu.org>
13016
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.
13026
13027 2020-09-11 Michael Meissner <meissner@linux.ibm.com>
13028
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
13035 function.
13036
13037 2020-09-11 Nathan Sidwell <nathan@acm.org>
13038
13039 * config/i386/sse.md (mov<mode>): Fix operand indices.
13040
13041 2020-09-11 Martin Sebor <msebor@redhat.com>
13042
13043 PR middle-end/96903
13044 * builtins.c (compute_objsize): Remove incorrect offset adjustment.
13045 (compute_objsize): Adjust offset range here instead.
13046
13047 2020-09-11 Richard Biener <rguenther@suse.de>
13048
13049 PR tree-optimization/97020
13050 * tree-vect-slp.c (vect_slp_analyze_operations): Apply
13051 SLP costs when doing loop vectorization.
13052
13053 2020-09-11 Tom de Vries <tdevries@suse.de>
13054
13055 PR target/96964
13056 * config/nvptx/nvptx.md (define_expand "atomic_test_and_set"): New
13057 expansion.
13058
13059 2020-09-11 Andrew Stubbs <ams@codesourcery.com>
13060
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.
13063
13064 2020-09-11 Richard Biener <rguenther@suse.de>
13065
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.
13082
13083 2020-09-11 Richard Biener <rguenther@suse.de>
13084
13085 PR tree-optimization/97013
13086 * tree-vect-slp.c (vect_slp_analyze_bb_1): Remove duplicate dumping.
13087
13088 2020-09-11 Richard Biener <rguenther@suse.de>
13089
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.
13094
13095 2020-09-11 Tom de Vries <tdevries@suse.de>
13096
13097 * config/nvptx/nvptx.c (nvptx_assemble_value): Fix undefined
13098 behaviour.
13099
13100 2020-09-11 Tom de Vries <tdevries@suse.de>
13101
13102 * config/nvptx/nvptx.c (nvptx_assemble_value): Handle negative
13103 __int128.
13104
13105 2020-09-11 Aaron Sawdey <acsawdey@linux.ibm.com>
13106
13107 * config/rs6000/rs6000.c (rs6000_option_override_internal):
13108 Change default.
13109
13110 2020-09-10 Michael Meissner <meissner@linux.ibm.com>
13111
13112 * config/rs6000/rs6000-protos.h (rs6000_emit_cmove): Change return
13113 type to bool.
13114 (rs6000_emit_int_cmove): Change return type to bool.
13115 * config/rs6000/rs6000.c (rs6000_emit_cmove): Change return type
13116 to bool.
13117 (rs6000_emit_int_cmove): Change return type to bool.
13118
13119 2020-09-10 Tom de Vries <tdevries@suse.de>
13120
13121 PR target/97004
13122 * config/nvptx/nvptx.c (nvptx_assemble_value): Handle shift by
13123 number of bits in shift operand.
13124
13125 2020-09-10 Jakub Jelinek <jakub@redhat.com>
13126
13127 * lto-streamer-out.c (collect_block_tree_leafs): Recurse on
13128 root rather than BLOCK_SUBBLOCKS (root).
13129
13130 2020-09-10 Alex Coplan <alex.coplan@arm.com>
13131
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.
13135
13136 2020-09-10 Alex Coplan <alex.coplan@arm.com>
13137
13138 * common/config/aarch64/aarch64-common.c
13139 (aarch64_get_extension_string_for_isa_flags): Don't force +crc for
13140 Armv8-R.
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.
13148
13149 2020-09-10 Jakub Jelinek <jakub@redhat.com>
13150
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.
13156
13157 2020-09-10 Jakub Jelinek <jakub@redhat.com>
13158
13159 PR target/96939
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
13163 at the end.
13164
13165 2020-09-10 Pat Haugen <pthaugen@linux.ibm.com>
13166
13167 * config/rs6000/rs6000.md
13168 (lfiwzx, floatunssi<mode>2_lfiwzx, p8_mtvsrwz, p8_mtvsrd_sf): Fix insn
13169 type.
13170 * config/rs6000/vsx.md
13171 (vsx_concat_<mode>, vsx_splat_<mode>_reg, vsx_splat_v4sf): Likewise.
13172
13173 2020-09-10 Jonathan Yong <10walls@gmail.com>
13174
13175 * config.host: Adjust plugin name for Windows.
13176
13177 2020-09-10 Tom de Vries <tdevries@suse.de>
13178
13179 PR tree-optimization/97000
13180 * tree-cfgcleanup.c (cleanup_call_ctrl_altering_flag): Don't clear
13181 flag for IFN_UNIQUE.
13182
13183 2020-09-10 Jakub Jelinek <jakub@redhat.com>
13184
13185 PR debug/93865
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
13194 here.
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.
13209
13210 2020-09-10 Richard Biener <rguenther@suse.de>
13211
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
13226 a subgraph.
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
13230 costing.
13231
13232 2020-09-09 David Malcolm <dmalcolm@redhat.com>
13233
13234 PR analyzer/94355
13235 * doc/invoke.texi: Document -Wanalyzer-mismatching-deallocation.
13236
13237 2020-09-09 Segher Boessenkool <segher@kernel.crashing.org>
13238
13239 PR rtl-optimization/96475
13240 * bb-reorder.c (maybe_duplicate_computed_goto): Remove single_pred_p
13241 micro-optimization.
13242
13243 2020-09-09 Tom de Vries <tdevries@suse.de>
13244
13245 * config/nvptx/nvptx.c (nvptx_assemble_decl_begin): Fix Wformat
13246 warning.
13247
13248 2020-09-09 Richard Biener <rguenther@suse.de>
13249
13250 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Do
13251 nothing when the permutation doesn't permute.
13252
13253 2020-09-09 Tom de Vries <tdevries@suse.de>
13254
13255 PR target/96991
13256 * config/nvptx/nvptx.c (write_fn_proto): Fix boolean type check.
13257
13258 2020-09-09 Richard Biener <rguenther@suse.de>
13259
13260 * tree-vect-stmts.c (vectorizable_comparison): Allow
13261 STMT_VINFO_LIVE_P stmts.
13262
13263 2020-09-09 Richard Biener <rguenther@suse.de>
13264
13265 * tree-vect-stmts.c (vectorizable_condition): Allow
13266 STMT_VINFO_LIVE_P stmts.
13267
13268 2020-09-09 Richard Biener <rguenther@suse.de>
13269
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.
13274
13275 2020-09-09 liuhongt <hongtao.liu@intel.com>
13276
13277 PR target/96955
13278 * config/i386/i386.md (get_thread_pointer<mode>): New
13279 expander.
13280
13281 2020-09-08 Julian Brown <julian@codesourcery.com>
13282
13283 * config/gcn/gcn-valu.md (scatter<mode>_insn_1offset_ds<exec_scatter>):
13284 Add waitcnt.
13285 * config/gcn/gcn.md (*mov<mode>_insn, *movti_insn): Add waitcnt to
13286 ds_write alternatives.
13287
13288 2020-09-08 Julian Brown <julian@codesourcery.com>
13289
13290 * config/gcn/mkoffload.c (process_asm): Initialise regcount. Update
13291 scanning for SGPR/VGPR usage for HSACO v3.
13292
13293 2020-09-08 Aldy Hernandez <aldyh@redhat.com>
13294
13295 PR tree-optimization/96967
13296 * tree-vrp.c (find_case_label_range): Cast label range to
13297 type of switch operand.
13298
13299 2020-09-08 Jozef Lawrynowicz <jozef.l@mittosystems.com>
13300
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.
13306
13307 2020-09-08 Jozef Lawrynowicz <jozef.l@mittosystems.com>
13308
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=
13312 values.
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.
13319
13320 2020-09-07 Richard Sandiford <richard.sandiford@arm.com>
13321
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.
13328
13329 2020-09-07 Andrea Corallo <andrea.corallo@arm.com>
13330
13331 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Revert
13332 dead-code removal introduced by 09fa6acd8d9 + add a comment to
13333 clarify.
13334
13335 2020-09-07 Jozef Lawrynowicz <jozef.l@mittosystems.com>
13336
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.
13339
13340 2020-09-07 Jozef Lawrynowicz <jozef.l@mittosystems.com>
13341
13342 * config/msp430/msp430.c (msp430_option_override): Don't set the
13343 ISA to 430 when the MCU is unrecognized.
13344
13345 2020-09-07 Iain Sandoe <iain@sandoe.co.uk>
13346
13347 * config/darwin.c (darwin_libc_has_function): Report sincos
13348 available from 10.9.
13349
13350 2020-09-07 Alex Coplan <alex.coplan@arm.com>
13351
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.
13374
13375 2020-09-07 Alex Coplan <alex.coplan@arm.com>
13376
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.
13391
13392 2020-09-07 Richard Biener <rguenther@suse.de>
13393
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.
13398
13399 2020-09-07 Martin Storsjö <martin@martin.st>
13400
13401 * dwarf2out.c (file_name_acquire): Make a strchr return value
13402 pointer to const.
13403
13404 2020-09-07 Jakub Jelinek <jakub@redhat.com>
13405
13406 PR debug/94235
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.
13415
13416 2020-09-07 Richard Biener <rguenther@suse.de>
13417
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.
13428
13429 2020-09-04 Richard Biener <rguenther@suse.de>
13430
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.
13446
13447 2020-09-04 Andrea Corallo <andrea.corallo@arm.com>
13448
13449 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Remove
13450 dead code as LOOP_VINFO_USING_PARTIAL_VECTORS_P (loop_vinfo) is
13451 always verified.
13452
13453 2020-09-04 Christophe Lyon <christophe.lyon@linaro.org>
13454
13455 PR target/96769
13456 * config/arm/thumb1.md: Move movsi splitter for
13457 arm_disable_literal_pool after the other movsi splitters.
13458
13459 2020-09-04 Aldy Hernandez <aldyh@redhat.com>
13460
13461 * range-op.cc (range_operator::fold_range): Rename widest_irange
13462 to int_range_max.
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.
13482
13483 2020-09-04 Richard Biener <rguenther@suse.de>
13484
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.
13491
13492 2020-09-04 Jakub Jelinek <jakub@redhat.com>
13493
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.
13498
13499 2020-09-04 Jakub Jelinek <jakub@redhat.com>
13500
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.
13505
13506 2020-09-04 David Faust <david.faust@oracle.com>
13507
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.
13510
13511 2020-09-03 Martin Jambor <mjambor@suse.cz>
13512
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.
13518
13519 2020-09-03 Will Schmidt <will_schmidt@vnet.ibm.com>
13520
13521 * config/rs6000/rs6000-call.c (rs6000_init_builtin): Update V2DI_type_node
13522 and unsigned_V2DI_type_node definitions.
13523
13524 2020-09-03 Jakub Jelinek <jakub@redhat.com>
13525
13526 PR c++/96901
13527 * tree.h (struct decl_tree_traits): New type.
13528 (decl_tree_map): New typedef.
13529
13530 2020-09-03 Jakub Jelinek <jakub@redhat.com>
13531
13532 PR lto/94311
13533 * gimple.h (gimple_location_ptr, gimple_phi_arg_location_ptr): New
13534 functions.
13535 * streamer-hooks.h (struct streamer_hooks): Add
13536 output_location_and_block callback. Fix up formatting for
13537 output_location.
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
13550 block members.
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
13558 bbs.
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.
13570
13571 2020-09-03 Richard Biener <rguenther@suse.de>
13572
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.
13577
13578 2020-09-03 Hongtao Liu <hongtao.liu@intel.com>
13579
13580 PR target/87767
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
13589 available.
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):
13597 New define_insn.
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.
13601
13602 2020-09-02 Jonathan Wakely <jwakely@redhat.com>
13603
13604 PR c++/60304
13605 * ginclude/stdbool.h (bool, false, true): Never define for C++.
13606
13607 2020-09-02 Jozef Lawrynowicz <jozef.l@mittosystems.com>
13608
13609 * doc/invoke.texi (MSP430 options): Fix -mlarge description to
13610 indicate size_t is a 20-bit type.
13611
13612 2020-09-02 Roger Sayle <roger@nextmovesoftware.com>
13613
13614 * config/pa/pa.c (hppa_rtx_costs) [ASHIFT, ASHIFTRT, LSHIFTRT]:
13615 Provide accurate costs for shifts of integer constants.
13616
13617 2020-09-02 Jose E. Marchesi <jose.marchesi@oracle.com>
13618
13619 * config/bpf/bpf.c (bpf_asm_named_section): Delete.
13620 (TARGET_ASM_NAMED_SECTION): Likewise.
13621
13622 2020-09-02 Jose E. Marchesi <jemarch@gnu.org>
13623
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.
13632
13633 2020-09-01 Martin Sebor <msebor@redhat.com>
13634
13635 * builtins.c (compute_objsize): Only replace the upper bound
13636 of a POINTER_PLUS offset when it's less than the lower bound.
13637
13638 2020-09-01 Peter Bergner <bergner@linux.ibm.com>
13639
13640 PR target/96808
13641 * config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Do not
13642 reuse accumulator memory reference for source and destination accesses.
13643
13644 2020-09-01 Martin Liska <mliska@suse.cz>
13645
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.
13654
13655 2020-09-01 Martin Liska <mliska@suse.cz>
13656
13657 * vec.h (vec_safe_grow): Change default of exact to false.
13658 (vec_safe_grow_cleared): Likewise.
13659
13660 2020-09-01 Roger Sayle <roger@nextmovesoftware.com>
13661
13662 PR middle-end/90597
13663 * targhooks.c (default_vector_alignment): Return at least the
13664 GET_MODE_ALIGNMENT for the type's mode.
13665
13666 2020-09-01 Richard Biener <rguenther@suse.de>
13667
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
13672 if requested.
13673 (cfg_layout_duplicate_bb): Make sure we remap dependence info.
13674 * modulo-sched.c (duplicate_insns_of_cycles): Remap dependence
13675 info.
13676 (generate_prolog_epilog): Adjust.
13677 * config/c6x/c6x.c (hwloop_optimize): Remap dependence info.
13678
13679 2020-09-01 Kewen Lin <linkw@gcc.gnu.org>
13680
13681 * doc/sourcebuild.texi (has_arch_pwr5, has_arch_pwr6, has_arch_pwr7,
13682 has_arch_pwr8, has_arch_pwr9): Document.
13683
13684 2020-08-31 Carl Love <cel@us.ibm.com>
13685
13686 PR target/85830
13687 * config/rs6000/altivec.h (vec_popcntb, vec_popcnth, vec_popcntw,
13688 vec_popcntd): Remove defines.
13689
13690 2020-08-31 Marek Polacek <polacek@redhat.com>
13691 Jason Merrill <jason@redhat.com>
13692
13693 PR c++/93529
13694 * tree.c (build_constructor_from_vec): New.
13695 * tree.h (build_constructor_from_vec): Declare.
13696
13697 2020-08-31 Aldy Hernandez <aldyh@redhat.com>
13698
13699 PR tree-optimization/96818
13700 * tree-vrp.c (find_case_label_range): Cast label range to
13701 type of switch operand.
13702
13703 2020-08-31 liuhongt <hongtao.liu@intel.com>
13704
13705 PR target/96551
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.
13710
13711 2020-08-31 Jakub Jelinek <jakub@redhat.com>
13712
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.
13715
13716 2020-08-31 Feng Xue <fxue@os.amperecomputing.com>
13717
13718 PR ipa/96806
13719 * ipa-cp.c (decide_about_value): Use safe_add to avoid cost addition
13720 overflow.
13721
13722 2020-08-31 Jakub Jelinek <jakub@redhat.com>
13723
13724 PR middle-end/54201
13725 * varasm.c: Include alloc-pool.h.
13726 (output_constant_pool_contents): Emit desc->mark < 0 entries as
13727 aliases.
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
13732 methods.
13733 (optimize_constant_pool): New function.
13734 (output_shared_constant_pool): Call it if TARGET_SUPPORTS_ALIASES.
13735
13736 2020-08-31 Kewen Lin <linkw@gcc.gnu.org>
13737
13738 * doc/sourcebuild.texi (vect_len_load_store,
13739 vect_partial_vectors_usage_1, vect_partial_vectors_usage_2,
13740 vect_partial_vectors): Document.
13741
13742 2020-08-30 Martin Sebor <msebor@redhat.com>
13743
13744 * builtins.c (access_ref::access_ref): Call get_size_range instead
13745 of get_range.
13746
13747 2020-08-30 Jakub Jelinek <jakub@redhat.com>
13748
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.
13752
13753 2020-08-29 Bill Schmidt <wschmidt@linux.ibm.com>
13754
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.
13758
13759 2020-08-28 Martin Sebor <msebor@redhat.com>
13760
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
13770 ranges of sizes.
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
13823 argument in call.
13824 (gimple_fold_builtin_stpcpy): Same.
13825 * tree-ssa-uninit.c (maybe_warn_pass_by_reference): Adjust to naming
13826 changes.
13827 * tree.h (enum access_mode): New type.
13828
13829 2020-08-28 Bill Schmidt <wschmidt@linux.ibm.com>
13830
13831 * config/rs6000/rs6000.c (rs6000_call_aix): Remove test for r12.
13832 (rs6000_sibcall_aix): Likewise.
13833
13834 2020-08-28 Andrew Stubbs <ams@codesourcery.com>
13835
13836 * config/gcn/gcn-tree.c (gcn_goacc_get_worker_red_decl): Add "true"
13837 parameter to vec_safe_grow_cleared.
13838
13839 2020-08-28 Martin Sebor <msebor@redhat.com>
13840
13841 * ggc-common.c (gt_pch_save): Add argument to a call.
13842
13843 2020-08-28 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
13844
13845 PR target/96357
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.
13850
13851 2020-08-28 Wei Wentao <weiwt.fnst@cn.fujitsu.com>
13852
13853 * doc/rtl.texi: Fix typo.
13854
13855 2020-08-28 Uros Bizjak <ubizjak@gmail.com>
13856
13857 PR target/96744
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.
13864
13865 2020-08-28 liuhongt <hongtao.liu@intel.com>
13866
13867 * common/config/i386/i386-common.c (ix86_handle_option): Set
13868 AVX512DQ when AVX512VP2INTERSECT exists.
13869
13870 2020-08-27 Jakub Jelinek <jakub@redhat.com>
13871
13872 PR target/65146
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
13878 for it.
13879
13880 2020-08-27 Bill Schmidt <wschmidt@linux.ibm.com>
13881
13882 PR target/96787
13883 * config/rs6000/rs6000.c (rs6000_sibcall_aix): Support
13884 indirect call for ELFv2.
13885
13886 2020-08-27 Richard Biener <rguenther@suse.de>
13887
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.
13894
13895 2020-08-27 Martin Liska <mliska@suse.cz>
13896
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.
13930 (main): 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.
14044
14045 2020-08-27 Richard Biener <rguenther@suse.de>
14046
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.
14049
14050 2020-08-27 Alex Coplan <alex.coplan@arm.com>
14051
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.
14055
14056 2020-08-27 Zhiheng Xie <xiezhiheng@huawei.com>
14057
14058 * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG
14059 for rounding intrinsics.
14060
14061 2020-08-27 Zhiheng Xie <xiezhiheng@huawei.com>
14062
14063 * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG
14064 for min/max intrinsics.
14065
14066 2020-08-27 Richard Biener <rguenther@suse.de>
14067
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.
14071
14072 2020-08-27 Richard Biener <rguenther@suse.de>
14073
14074 PR tree-optimization/96565
14075 * tree-ssa-dse.c (dse_classify_store): Remove defs with
14076 no uses from further processing.
14077
14078 2020-08-26 Göran Uddeborg <goeran@uddeborg.se>
14079
14080 PR gcov-profile/96285
14081 * common.opt, doc/invoke.texi: Clarify wording of
14082 -fprofile-exclude-files and adjust -fprofile-filter-files to
14083 match.
14084
14085 2020-08-26 H.J. Lu <hjl.tools@gmail.com>
14086
14087 PR target/96802
14088 * config/i386/i386-options.c (ix86_valid_target_attribute_inner_p):
14089 Reject target("no-general-regs-only").
14090
14091 2020-08-26 Jozef Lawrynowicz <jozef.l@mittosystems.com>
14092
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.
14100 (CSH): Remove.
14101 (msp430_expand_helper): Remove hard-coded generation of some inline
14102 shift insns.
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.
14109 (HDI): Likewise.
14110 (any_shift): New define_code_iterator.
14111 (shift_insn): New define_code_attr.
14112 Adjust unnamed insn patterns searched for by combine.
14113 (ashlhi3): Remove.
14114 (slli_1): Remove.
14115 (430x_shift_left): Remove.
14116 (slll_1): Remove.
14117 (slll_2): Remove.
14118 (ashlsi3): Remove.
14119 (ashldi3): Remove.
14120 (ashrhi3): Remove.
14121 (srai_1): Remove.
14122 (430x_arithmetic_shift_right): Remove.
14123 (srap_1): Remove.
14124 (srap_2): Remove.
14125 (sral_1): Remove.
14126 (sral_2): Remove.
14127 (ashrsi3): Remove.
14128 (ashrdi3): Remove.
14129 (lshrhi3): Remove.
14130 (srli_1): Remove.
14131 (430x_logical_shift_right): Remove.
14132 (srlp_1): Remove.
14133 (srll_1): Remove.
14134 (srll_2x): Remove.
14135 (lshrsi3): Remove.
14136 (lshrdi3): 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=.
14150
14151 2020-08-26 Aldy Hernandez <aldyh@redhat.com>
14152
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
14155 API.
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.
14159
14160 2020-08-26 Richard Biener <rguenther@suse.de>
14161
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.
14170
14171 2020-08-26 Martin Liska <mliska@suse.cz>
14172
14173 * cgraphunit.c (process_symver_attribute): Match only symver
14174 TREE_PURPOSE.
14175
14176 2020-08-26 Richard Biener <rguenther@suse.de>
14177
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.
14182
14183 2020-08-26 Martin Liska <mliska@suse.cz>
14184
14185 * doc/invoke.texi: Document how are pie and pic options merged.
14186
14187 2020-08-26 Zhiheng Xie <xiezhiheng@huawei.com>
14188
14189 * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG
14190 for add/sub arithmetic intrinsics.
14191
14192 2020-08-26 Jakub Jelinek <jakub@redhat.com>
14193
14194 PR debug/96729
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.
14199
14200 2020-08-26 Iain Buclaw <ibuclaw@gdcproject.org>
14201
14202 * config/tilepro/gen-mul-tables.cc (main): Define IN_TARGET_CODE to 1
14203 in the target file.
14204
14205 2020-08-26 Martin Liska <mliska@suse.cz>
14206
14207 * cgraphunit.c (process_symver_attribute): Allow multiple
14208 symver attributes for one symbol.
14209 * doc/extend.texi: Document the change.
14210
14211 2020-08-25 H.J. Lu <hjl.tools@gmail.com>
14212
14213 PR target/95863
14214 * config/i386/i386.h (CTZ_DEFINED_VALUE_AT_ZERO): Return 0/2.
14215 (CLZ_DEFINED_VALUE_AT_ZERO): Likewise.
14216
14217 2020-08-25 Roger Sayle <roger@nextmovesoftware.com>
14218
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.
14224
14225 2020-08-25 Roger Sayle <roger@nextmovesoftware.com>
14226
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.
14231
14232 2020-08-25 Richard Sandiford <richard.sandiford@arm.com>
14233
14234 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Rename
14235 __ARM_FEATURE_SVE_VECTOR_OPERATIONS to
14236 __ARM_FEATURE_SVE_VECTOR_OPERATORS.
14237
14238 2020-08-25 Richard Sandiford <richard.sandiford@arm.com>
14239
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.
14252
14253 2020-08-25 Richard Sandiford <richard.sandiford@arm.com>
14254
14255 * config/aarch64/aarch64-sve-builtins.cc (DEF_SVE_TYPE): Add a
14256 leading "u" to each mangled name.
14257
14258 2020-08-25 Richard Biener <rguenther@suse.de>
14259
14260 PR tree-optimization/96548
14261 PR tree-optimization/96760
14262 * tree-ssa-loop-im.c (tree_ssa_lim): Recompute RPO after
14263 store-motion.
14264
14265 2020-08-25 Jakub Jelinek <jakub@redhat.com>
14266
14267 PR tree-optimization/96722
14268 * gimple.c (infer_nonnull_range): Formatting fix.
14269 (infer_nonnull_range_by_dereference): Return false for clobber stmts.
14270
14271 2020-08-25 Jakub Jelinek <jakub@redhat.com>
14272
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.
14278
14279 2020-08-25 Martin Jambor <mjambor@suse.cz>
14280
14281 PR tree-optimization/96730
14282 * tree-sra.c (create_access): Disqualify any aggregate with negative
14283 offset access.
14284 (build_ref_for_model): Add assert that offset is non-negative.
14285
14286 2020-08-25 Wei Wentao <weiwt.fnst@cn.fujitsu.com>
14287
14288 * rtl.def: Fix typo in comment.
14289
14290 2020-08-25 Roger Sayle <roger@nextmovesoftware.com>
14291
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.
14295
14296 2020-08-25 Andrew Pinski <apinski@marvell.com>
14297
14298 PR middle-end/64242
14299 * config/mips/mips.md (builtin_longjmp): Restore the frame
14300 pointer and stack pointer and gp.
14301
14302 2020-08-25 Richard Biener <rguenther@suse.de>
14303
14304 PR debug/96690
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.
14311
14312 2020-08-25 Hongtao Liu <hongtao.liu@intel.com>
14313
14314 PR target/96755
14315 * config/i386/sse.md: Correct the mode of NOT operands to
14316 SImode.
14317
14318 2020-08-25 Jakub Jelinek <jakub@redhat.com>
14319
14320 PR tree-optimization/96715
14321 * match.pd (copysign(x,-x) -> -x): New simplification.
14322
14323 2020-08-25 Jakub Jelinek <jakub@redhat.com>
14324
14325 PR target/95450
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.
14329
14330 2020-08-24 Gerald Pfeifer <gerald@pfeifer.com>
14331
14332 * doc/install.texi (Configuration): Switch valgrind.com to https.
14333
14334 2020-08-24 Christophe Lyon <christophe.lyon@linaro.org>
14335
14336 PR target/94538
14337 PR target/94538
14338 * config/arm/thumb1.md: Disable set-constant splitter when
14339 TARGET_HAVE_MOVT.
14340 (thumb1_movsi_insn): Fix -mpure-code
14341 alternative.
14342
14343 2020-08-24 Martin Liska <mliska@suse.cz>
14344
14345 * tree-vect-data-refs.c (dr_group_sort_cmp): Work on
14346 data_ref_pair.
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
14351 arguments.
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
14358 argument.
14359 (vect_find_stmt_data_reference): Likewise.
14360
14361 2020-08-24 Martin Liska <mliska@suse.cz>
14362
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.
14368
14369 2020-08-24 Hans-Peter Nilsson <hp@axis.com>
14370
14371 PR target/93372
14372 * reorg.c (fill_slots_from_thread): Allow trial insns that clobber
14373 TARGET_FLAGS_REGNUM as delay-slot fillers.
14374
14375 2020-08-23 H.J. Lu <hjl.tools@gmail.com>
14376
14377 PR target/96744
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
14386 attribute.
14387
14388 2020-08-21 Richard Sandiford <richard.sandiford@arm.com>
14389
14390 * doc/extend.texi: Update links to Arm docs.
14391 * doc/invoke.texi: Likewise.
14392
14393 2020-08-21 Hongtao Liu <hongtao.liu@intel.com>
14394
14395 PR target/96262
14396 * config/i386/i386-expand.c
14397 (ix86_expand_vec_shift_qihi_constant): Refine.
14398
14399 2020-08-21 Alex Coplan <alex.coplan@arm.com>
14400
14401 PR jit/63854
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().
14415
14416 2020-08-21 Senthil Kumar Selvaraj <saaadhu@gcc.gnu.org>
14417
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.
14424
14425 2020-08-21 liuhongt <hongtao.liu@intel.com>
14426
14427 PR target/88808
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.
14435 (*andqi_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
14443 registers.
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.
14448
14449 2020-08-21 liuhongt <hongtao.liu@intel.com>
14450
14451 * config/i386/x86-tune-costs.h (skylake_cost): Adjust cost
14452 model.
14453
14454 2020-08-21 liuhongt <hongtao.liu@intel.com>
14455
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
14459 mask regno.
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.
14465
14466 2020-08-21 H.J. Lu <hjl.tools@gmail.com>
14467
14468 PR target/71453
14469 * config/i386/i386.h (struct processor_costs): Add member
14470 mask_to_integer, integer_to_mask, mask_load[3], mask_store[3],
14471 mask_move.
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.
14484
14485 2020-08-20 Iain Buclaw <ibuclaw@gdcproject.org>
14486
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.
14490
14491 2020-08-20 Joe Ramsay <Joe.Ramsay@arm.com>
14492
14493 PR target/96683
14494 * config/arm/mve.md (mve_vst1q_f<mode>): Require MVE memory operand for
14495 destination.
14496 (mve_vst1q_<supf><mode>): Likewise.
14497
14498 2020-08-19 2020-08-19 Carl Love <cel@us.ibm.com>
14499
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
14621 P10V_BUILTIN_name.
14622 (P10_BUILTIN_XVCVSPBF16, P10_BUILTIN_XVCVBF16SP): Change to
14623 P10V_BUILTIN_XVCVSPBF16, P10V_BUILTIN_XVCVBF16SP respectively.
14624
14625 2020-08-19 Bill Schmidt <wschmidt@linux.ibm.com>
14626
14627 * config/rs6000/rs6000-logue.c (rs6000_decl_ok_for_sibcall):
14628 Sibcalls are always legal when the caller doesn't preserve r2.
14629
14630 2020-08-19 Uroš Bizjak <ubizjak@gmail.com>
14631
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.
14639
14640 2020-08-19 Feng Xue <fxue@os.amperecomputing.com>
14641
14642 PR tree-optimization/94234
14643 * match.pd ((PTR_A + OFF) - (PTR_B + OFF)) -> (PTR_A - PTR_B): New
14644 simplification.
14645
14646 2020-08-19 H.J. Lu <hjl.tools@gmail.com>
14647
14648 * common/config/i386/cpuinfo.h (get_intel_cpu): Detect Rocket
14649 Lake and Alder Lake.
14650
14651 2020-08-19 Peixin Qiao <qiaopeixin@huawei.com>
14652
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
14656 function.
14657
14658 2020-08-19 Kewen Lin <linkw@linux.ibm.com>
14659
14660 * opts-global.c (decode_options): Call target_option_override_hook
14661 before it prints for --help=*.
14662
14663 2020-08-18 Peter Bergner <bergner@linux.ibm.com>
14664
14665 * config/rs6000/rs6000-builtin.def (BU_VSX_1): Rename xvcvbf16sp to
14666 xvcvbf16spn.
14667 * config/rs6000/rs6000-call.c (builtin_function_type): Likewise.
14668 * config/rs6000/vsx.md: Likewise.
14669 * doc/extend.texi: Likewise.
14670
14671 2020-08-18 Aaron Sawdey <acsawdey@linux.ibm.com>
14672
14673 * config/rs6000/rs6000-string.c (gen_lxvl_stxvl_move):
14674 Helper function.
14675 (expand_block_move): Add lxvl/stxvl, vector pair, and
14676 unaligned VSX.
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.
14680
14681 2020-08-18 Aldy Hernandez <aldyh@redhat.com>
14682
14683 * vr-values.c (check_for_binary_op_overflow): Change type of store
14684 to range_query.
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
14688 to range_query.
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.
14693
14694 2020-08-18 Martin Sebor <msebor@redhat.com>
14695
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.
14700
14701 2020-08-18 Martin Sebor <msebor@redhat.com>
14702
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.
14707
14708 2020-08-18 Hu Jiangping <hujiangping@cn.fujitsu.com>
14709
14710 * doc/gimple.texi (gimple_debug_begin_stmt_p): Add return type.
14711 (gimple_debug_inline_entry_p, gimple_debug_nonbind_marker_p): Likewise.
14712
14713 2020-08-18 Martin Sebor <msebor@redhat.com>
14714
14715 * fold-const.c (native_encode_expr): Update comment.
14716
14717 2020-08-18 Uroš Bizjak <ubizjak@gmail.com>
14718
14719 PR target/96536
14720 * config/i386/i386.md (restore_stack_nonlocal): Add missing compare
14721 RTX. Rewrite expander to use high-level functions in RTL construction.
14722
14723 2020-08-18 liuhongt <hongtao.liu@intel.com>
14724
14725 PR target/96562
14726 PR target/93897
14727 * config/i386/i386-expand.c (ix86_expand_pinsr): Don't use
14728 pinsr for TImode.
14729 (ix86_expand_pextr): Don't use pextr for TImode.
14730
14731 2020-08-17 Uroš Bizjak <ubizjak@gmail.com>
14732
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.
14746
14747 2020-08-17 Aldy Hernandez <aldyh@redhat.com>
14748
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
14757 get_value_range.
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.
14768
14769 2020-08-17 liuhongt <hongtao.liu@intel.com>
14770
14771 PR target/96350
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.
14780
14781 2020-08-16 Roger Sayle <roger@nextmovesoftware.com>
14782
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.
14786
14787 2020-08-14 Martin Sebor <msebor@redhat.com>
14788
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.
14807
14808 2020-08-14 David Malcolm <dmalcolm@redhat.com>
14809
14810 * doc/analyzer.texi (Overview): Add tip about how to get a
14811 gimple dump if the analyzer ICEs.
14812
14813 2020-08-14 Uroš Bizjak <ubizjak@gmail.com>
14814
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]:
14827 Remove.
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.
14833
14834 2020-08-14 Lewis Hyatt <lhyatt@gmail.com>
14835
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.
14840
14841 2020-08-14 Jakub Jelinek <jakub@redhat.com>
14842 Jonathan Wakely <jwakely@redhat.com>
14843 Jonathan Wakely <jwakely@redhat.com>
14844
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.
14849
14850 2020-08-14 Jojo R <jiejie_rong@c-sky.com>
14851
14852 * config/csky/csky-elf.h (ASM_SPEC): Use mfloat-abi.
14853 * config/csky/csky-linux-elf.h (ASM_SPEC): mfloat-abi.
14854
14855 2020-08-13 David Malcolm <dmalcolm@redhat.com>
14856
14857 PR analyzer/93032
14858 PR analyzer/93938
14859 PR analyzer/94011
14860 PR analyzer/94099
14861 PR analyzer/94399
14862 PR analyzer/94458
14863 PR analyzer/94503
14864 PR analyzer/94640
14865 PR analyzer/94688
14866 PR analyzer/94689
14867 PR analyzer/94839
14868 PR analyzer/95026
14869 PR analyzer/95042
14870 PR analyzer/95240
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
14875 analyzer/svalue.o.
14876 * doc/analyzer.texi: Update for changes to analyzer
14877 implementation.
14878 * tristate.h (tristate::get_value): New accessor.
14879
14880 2020-08-13 Uroš Bizjak <ubizjak@gmail.com>
14881
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.
14909
14910 2020-08-13 Peter Bergner <bergner@linux.ibm.com>
14911
14912 PR target/96506
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.
14916
14917 2020-08-13 Richard Sandiford <richard.sandiford@arm.com>
14918
14919 Revert:
14920 2020-08-12 Peixin Qiao <qiaopeixin@huawei.com>
14921
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).
14928
14929 2020-08-13 Martin Liska <mliska@suse.cz>
14930
14931 PR ipa/96482
14932 * ipa-cp.c (ipcp_bits_lattice::meet_with_1): Mask m_value
14933 with m_mask.
14934
14935 2020-08-13 Jakub Jelinek <jakub@redhat.com>
14936
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
14941 loops.
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.
14946
14947 2020-08-13 Hongtao Liu <hongtao.liu@intel.com>
14948
14949 PR target/96246
14950 * config/i386/sse.md (<avx512>_load<mode>_mask,
14951 <avx512>_load<mode>_mask): Extend to generate blendm
14952 instructions.
14953 (<avx512>_blendm<mode>, <avx512>_blendm<mode>): Change
14954 define_insn to define_expand.
14955
14956 2020-08-12 Roger Sayle <roger@nextmovesoftware.com>
14957 Uroš Bizjak <ubizjak@gmail.com>
14958
14959 PR target/96558
14960 * config/i386/i386.md (peephole2): Only reorder register clearing
14961 instructions to allow use of xor for general registers.
14962
14963 2020-08-12 Martin Liska <mliska@suse.cz>
14964
14965 PR ipa/96482
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
14971 are unknown.
14972
14973 2020-08-12 Peixin Qiao <qiaopeixin@huawei.com>
14974
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).
14981
14982 2020-08-12 Jakub Jelinek <jakub@redhat.com>
14983
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):
14992 Redefine.
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.
14997
14998 2020-08-12 Tom de Vries <tdevries@suse.de>
14999
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.
15003
15004 2020-08-12 Roger Sayle <roger@nextmovesoftware.com>
15005 Uroš Bizjak <ubizjak@gmail.com>
15006
15007 * config/i386/i386.md (peephole2): Reduce unnecessary
15008 register shuffling produced by register allocation.
15009
15010 2020-08-12 Aldy Hernandez <aldyh@redhat.com>
15011
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[].
15019
15020 2020-08-12 Andreas Krebbel <krebbel@linux.ibm.com>
15021
15022 PR target/96308
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.
15026
15027 2020-08-12 Andreas Krebbel <krebbel@linux.ibm.com>
15028
15029 PR target/96456
15030 * config/s390/s390.h (TARGET_NONSIGNALING_VECTOR_COMPARE_OK): New
15031 macro.
15032 * config/s390/vector.md (vcond_comparison_operator): Use new macro
15033 for the check.
15034
15035 2020-08-11 Jakub Jelinek <jakub@redhat.com>
15036
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.
15040
15041 2020-08-11 Jakub Jelinek <jakub@redhat.com>
15042
15043 PR c/96549
15044 * tree.c (get_narrower): Use TREE_TYPE (ret) instead of
15045 TREE_TYPE (win) for COMPOUND_EXPRs.
15046
15047 2020-08-11 Jan Hubicka <hubicka@ucw.cz>
15048
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.
15053
15054 2020-08-11 Martin Liska <mliska@suse.cz>
15055
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.
15059
15060 2020-08-10 Marek Polacek <polacek@redhat.com>
15061
15062 * doc/sourcebuild.texi: Document dg-ice.
15063
15064 2020-08-10 Roger Sayle <roger@nextmovesoftware.com>
15065
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.
15069
15070 2020-08-10 Aldy Hernandez <aldyh@redhat.com>
15071
15072 * value-range.h (gt_ggc_mx): Declare inline.
15073 (gt_pch_nx): Same.
15074
15075 2020-08-10 Marc Glisse <marc.glisse@inria.fr>
15076
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.
15080 (mod_inv): Move...
15081 * wide-int.cc (mod_inv): ... here.
15082 * wide-int.h (mod_inv): Declare it.
15083
15084 2020-08-10 Jan Hubicka <hubicka@ucw.cz>
15085
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.
15090
15091 2020-08-10 Hongtao Liu <hongtao.liu@intel.com>
15092
15093 PR target/96243
15094 * config/i386/i386-expand.c (ix86_expand_sse_cmp): Refine for
15095 maskcmp.
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
15099 modifier 'I'.
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.
15106
15107 2020-08-09 Roger Sayle <roger@nextmovesoftware.com>
15108
15109 * expmed.c (init_expmed_one_conv): Restore all->reg's mode.
15110 (init_expmed_one_mode): Set all->reg to desired mode.
15111
15112 2020-08-08 Peter Bergner <bergner@linux.ibm.com>
15113
15114 PR target/96530
15115 * config/rs6000/rs6000.c (rs6000_invalid_conversion): Use canonical
15116 types for type comparisons. Refactor code to simplify it.
15117
15118 2020-08-08 Jakub Jelinek <jakub@redhat.com>
15119
15120 PR fortran/93553
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.
15125
15126 2020-08-08 Jakub Jelinek <jakub@redhat.com>
15127
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.
15132
15133 2020-08-07 Marc Glisse <marc.glisse@inria.fr>
15134
15135 * generic-match-head.c (optimize_vectors_before_lowering_p): New
15136 function.
15137 * gimple-match-head.c (optimize_vectors_before_lowering_p):
15138 Likewise.
15139 * match.pd ((v ? w : 0) ? a : b, c1 ? c2 ? a : b : b): Use it.
15140
15141 2020-08-07 Richard Biener <rguenther@suse.de>
15142
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.
15146
15147 2020-08-07 Jose E. Marchesi <jose.marchesi@oracle.com>
15148
15149 * config/bpf/bpf.md: Remove trailing whitespaces.
15150 * config/bpf/constraints.md: Likewise.
15151 * config/bpf/predicates.md: Likewise.
15152
15153 2020-08-07 Michael Meissner <meissner@linux.ibm.com>
15154
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.
15159
15160 2020-08-07 Alan Modra <amodra@gmail.com>
15161
15162 PR target/96493
15163 * config/rs6000/predicates.md (current_file_function_operand): Don't
15164 accept functions that differ in r2 usage.
15165
15166 2020-08-06 Hans-Peter Nilsson <hp@bitrange.com>
15167
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.
15175
15176 2020-08-06 Richard Sandiford <richard.sandiford@arm.com>
15177
15178 PR target/96191
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.
15182
15183 2020-08-06 Peter Bergner <bergner@linux.ibm.com>
15184
15185 PR target/96446
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.
15189
15190 2020-08-06 Jakub Jelinek <jakub@redhat.com>
15191
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.
15199
15200 2020-08-06 Jose E. Marchesi <jose.marchesi@oracle.com>
15201
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.
15215
15216 2020-08-06 Richard Biener <rguenther@suse.de>
15217
15218 PR tree-optimization/96491
15219 * tree-ssa-sink.c (sink_common_stores_to_bb): Avoid
15220 sinking across abnormal edges.
15221
15222 2020-08-06 Richard Biener <rguenther@suse.de>
15223
15224 PR tree-optimization/96483
15225 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
15226 POLY_INT_CST.
15227
15228 2020-08-06 Richard Biener <rguenther@suse.de>
15229
15230 * graphite-isl-ast-to-gimple.c (ivs_params): Use hash_map instead
15231 of std::map.
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.
15236
15237 2020-08-06 Roger Sayle <roger@nextmovesoftware.com>
15238 Uroš Bizjak <ubizjak@gmail.com>
15239
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.
15249
15250 2020-08-06 Gerald Pfeifer <gerald@pfeifer.com>
15251
15252 * ipa-fnsummary.c (INCLUDE_VECTOR): Define.
15253 Remove direct inclusion of <vector>.
15254
15255 2020-08-06 Kewen Lin <linkw@gcc.gnu.org>
15256
15257 * config/rs6000/rs6000.c (rs6000_adjust_vect_cost_per_loop): New
15258 function.
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.
15267
15268 2020-08-06 Kewen Lin <linkw@linux.ibm.com>
15269
15270 * tree-vectorizer.c (try_vectorize_loop_1): Skip the epilogue loops
15271 for dbgcnt check.
15272
15273 2020-08-05 Marc Glisse <marc.glisse@inria.fr>
15274
15275 PR tree-optimization/95906
15276 PR target/70314
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.
15280
15281 2020-08-05 Richard Sandiford <richard.sandiford@arm.com>
15282
15283 PR target/96191
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
15287 after use.
15288 (stack_protect_test): Update accordingly.
15289
15290 2020-08-05 Richard Sandiford <richard.sandiford@arm.com>
15291
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.
15301
15302 2020-08-05 Richard Biener <rguenther@suse.de>
15303
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
15309 cfun references.
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.
15321
15322 2020-08-05 Richard Biener <rguenther@suse.de>
15323
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.
15329
15330 2020-08-05 Jakub Jelinek <jakub@redhat.com>
15331
15332 * omp-expand.c (expand_omp_for): Don't disallow combined non-rectangular
15333 loops.
15334
15335 2020-08-05 Jakub Jelinek <jakub@redhat.com>
15336
15337 PR middle-end/96459
15338 * omp-low.c (lower_omp_taskreg): Call lower_reduction_clauses even in
15339 for host teams.
15340
15341 2020-08-05 Jakub Jelinek <jakub@redhat.com>
15342
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.
15349
15350 2020-08-05 2020-08-04 Carl Love <cel@us.ibm.com>
15351
15352 * config/rs6000/altivec.h (vec_blendv, vec_permx): Add define.
15353 * config/rs6000/altivec.md (UNSPEC_XXBLEND, UNSPEC_XXPERMX.): New
15354 unspecs.
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.
15379
15380 2020-08-05 2020-08-04 Carl Love <cel@us.ibm.com>
15381
15382 * config/rs6000/altivec.h (vec_splati, vec_splatid, vec_splati_ins):
15383 Add defines.
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
15395 definitions.
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):
15400 New definitions.
15401 * config/rs6000/rs6000-protos.h (rs6000_constF32toI32): New extern
15402 declaration.
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.
15406
15407 2020-08-05 2020-08-04 Carl Love <cel@us.ibm.com>
15408
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.
15425
15426 2020-08-05 2020-08-04 Carl Love <cel@us.ibm.com>
15427
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
15431 unspecs.
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
15440 entries.
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.
15451
15452 2020-08-05 2020-08-04 Carl Love <cel@us.ibm.com>
15453
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,
15467 UNSPEC_INSERTR.
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.
15473
15474 2020-08-05 2020-08-04 Carl Love <cel@us.ibm.com>
15475
15476 * config/rs6000/altivec.md: (UNSPEC_EXTRACTL, UNSPEC_EXTRACTR)
15477 (vextractl<mode>, vextractr<mode>)
15478 (vextractl<mode>_internal, vextractr<mode>_internal for mode VI2)
15479 (VI2): Move to ...
15480 * config/rs6000/vsx.md: (UNSPEC_EXTRACTL, UNSPEC_EXTRACTR)
15481 (vextractl<mode>, vextractr<mode>)
15482 (vextractl<mode>_internal, vextractr<mode>_internal for mode VI2)
15483 (VI2): ..here.
15484 * doc/extend.texi: Update documentation for vec_extractl.
15485 Replace builtin name vec_extractr with vec_extracth. Update
15486 description of vec_extracth.
15487
15488 2020-08-04 Jim Wilson <jimw@sifive.com>
15489
15490 * doc/invoke.texi (AArch64 Options): Delete duplicate
15491 -mstack-protector-guard docs.
15492
15493 2020-08-04 Roger Sayle <roger@nextmovesoftware.com>
15494
15495 * config/nvptx/nvptx.md (smulhi3_highpart, smulsi3_highpart)
15496 (umulhi3_highpart, umulsi3_highpart): New instructions.
15497
15498 2020-08-04 Andrew Stubbs <ams@codesourcery.com>
15499
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.
15514
15515 2020-08-04 Omar Tahir <omar.tahir@arm.com>
15516
15517 * config/arm/arm-cpus.in (armv8.1-m.main): Tune for Cortex-M55.
15518
15519 2020-08-04 Hu Jiangping <hujiangping@cn.fujitsu.com>
15520
15521 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Delete
15522 redundant extra_cost variable.
15523
15524 2020-08-04 Zhiheng Xie <xiezhiheng@huawei.com>
15525
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.
15529
15530 2020-08-04 Jakub Jelinek <jakub@redhat.com>
15531
15532 * doc/extend.texi (symver): Add @cindex for symver function attribute.
15533
15534 2020-08-04 Marc Glisse <marc.glisse@inria.fr>
15535
15536 PR tree-optimization/95433
15537 * match.pd (X * C1 == C2): New transformation.
15538
15539 2020-08-04 Aldy Hernandez <aldyh@redhat.com>
15540
15541 * gimple-ssa-sprintf.c (get_int_range): Adjust for irange API.
15542 (format_integer): Same.
15543 (handle_printf_call): Same.
15544
15545 2020-08-04 Andrew Stubbs <ams@codesourcery.com>
15546
15547 * config/gcn/gcn.md ("<expander>ti3"): New.
15548
15549 2020-08-04 Richard Biener <rguenther@suse.de>
15550
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.
15559
15560 2020-08-04 Sudakshina Das <sudi.das@arm.com>
15561
15562 * config/aarch64/aarch64.c (aarch64_gen_store_pair): Add case
15563 for E_V4SImode.
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
15567 appropriate.
15568
15569 2020-08-04 Andrea Corallo <andrea.corallo@arm.com>
15570
15571 * config/aarch64/aarch64.md (aarch64_fjcvtzs): Add missing
15572 clobber.
15573 * doc/sourcebuild.texi (aarch64_fjcvtzs_hw) Document new
15574 target supports option.
15575
15576 2020-08-04 Tom de Vries <tdevries@suse.de>
15577
15578 PR target/96428
15579 * config/nvptx/nvptx.c (nvptx_gen_shuffle): Handle V2SI/V2DI.
15580
15581 2020-08-04 Jakub Jelinek <jakub@redhat.com>
15582
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.
15586
15587 2020-08-04 Jakub Jelinek <jakub@redhat.com>
15588
15589 PR debug/96354
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.
15594
15595 2020-08-04 Aldy Hernandez <aldyh@redhat.com>
15596
15597 * vr-values.c (simplify_using_ranges::vrp_evaluate_conditional):
15598 Call is_gimple_min_invariant dropped from previous patch.
15599
15600 2020-08-04 Jakub Jelinek <jakub@redhat.com>
15601
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.
15606
15607 2020-08-04 Aldy Hernandez <aldyh@redhat.com>
15608
15609 * vr-values.c (simplify_using_ranges::two_valued_val_range_p):
15610 Use irange API.
15611
15612 2020-08-04 Aldy Hernandez <aldyh@redhat.com>
15613
15614 * vr-values.c (simplify_conversion_using_ranges): Convert to irange API.
15615
15616 2020-08-04 Aldy Hernandez <aldyh@redhat.com>
15617
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.
15621
15622 2020-08-04 Aldy Hernandez <aldyh@redhat.com>
15623
15624 * vr-values.c (simplify_using_ranges::vrp_evaluate_conditional): Adjust
15625 for irange API.
15626
15627 2020-08-04 Aldy Hernandez <aldyh@redhat.com>
15628
15629 * vr-values.c (simplify_using_ranges::op_with_boolean_value_range_p): Adjust
15630 for irange API.
15631
15632 2020-08-04 Aldy Hernandez <aldyh@redhat.com>
15633
15634 * tree-ssanames.c (get_range_info): Use irange instead of value_range.
15635 * tree-ssanames.h (get_range_info): Same.
15636
15637 2020-08-04 Aldy Hernandez <aldyh@redhat.com>
15638
15639 * fold-const.c (expr_not_equal_to): Adjust for irange API.
15640
15641 2020-08-04 Aldy Hernandez <aldyh@redhat.com>
15642
15643 * builtins.c (determine_block_size): Remove ad-hoc range canonicalization.
15644
15645 2020-08-04 Xionghu Luo <luoxhu@linux.ibm.com>
15646
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.
15650
15651 2020-08-03 Jonathan Wakely <jwakely@redhat.com>
15652
15653 * doc/cpp.texi (Variadic Macros): Use the exact ... token in
15654 code examples.
15655
15656 2020-08-03 Nathan Sidwell <nathan@acm.org>
15657
15658 * doc/invoke.texi: Refer to c++20
15659
15660 2020-08-03 Julian Brown <julian@codesourcery.com>
15661 Thomas Schwinge <thomas@codesourcery.com>
15662
15663 * gimplify.c (gimplify_omp_target_update): Allow GOMP_MAP_TO_PSET
15664 without a preceding data-movement mapping.
15665
15666 2020-08-03 Iain Sandoe <iain@sandoe.co.uk>
15667
15668 * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): UNDEF before
15669 use.
15670 (DEF_MIN_OSX_VERSION): Only define if there's no existing
15671 def.
15672
15673 2020-08-03 Iain Sandoe <iain@sandoe.co.uk>
15674
15675 * config/darwin.c (IN_TARGET_CODE): Remove.
15676 (darwin_mergeable_constant_section): Handle poly-int machine modes.
15677 (machopic_select_rtx_section): Likewise.
15678
15679 2020-08-03 Aldy Hernandez <aldyh@redhat.com>
15680
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.
15684
15685 2020-08-03 Martin Jambor <mjambor@suse.cz>
15686
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.
15705 (-Whsa): Ignore.
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
15711 example.
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
15718 pass.
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
15731 GF_OMP_TEAMS_HOST.
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
15748 handling of hsa.
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
15781 OPT_foffload_.
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
15795 case.
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.
15803
15804 2020-08-03 Bu Le <bule1@huawei.com>
15805
15806 * config/aarch64/aarch64-sve.md (sub<mode>3): Add support for
15807 unpacked vectors.
15808
15809 2020-08-03 Jozef Lawrynowicz <jozef.l@mittosystems.com>
15810
15811 * config/msp430/msp430.h (ASM_SPEC): Don't pass on "-md" option.
15812
15813 2020-08-03 Yunde Zhong <zhongyunde@huawei.com>
15814
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
15818 schedule.
15819 * regrename.h (regrename_analyze): Adjust prototype.
15820
15821 2020-08-03 Wei Wentao <weiwt.fnst@cn.fujitsu.com>
15822
15823 * doc/tm.texi.in (VECTOR_STORE_FLAG_VALUE): Fix a typo.
15824 * doc/tm.texi: Regenerate.
15825
15826 2020-08-03 Richard Sandiford <richard.sandiford@arm.com>
15827
15828 * doc/invoke.texi: Add missing comma after octeontx2f95mm entry.
15829
15830 2020-08-03 Qian jianhua <qianjh@cn.fujitsu.com>
15831
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.
15836
15837 2020-08-03 Roger Sayle <roger@nextmovesoftware.com>
15838
15839 PR rtl-optimization/61494
15840 * simplify-rtx.c (simplify_binary_operation_1) [MINUS]: Don't
15841 simplify x - 0.0 with -fsignaling-nans.
15842
15843 2020-08-03 Roger Sayle <roger@nextmovesoftware.com>
15844
15845 * genmatch.c (decision_tree::gen): Emit stub functions for
15846 tree code operand counts that have no simplifications.
15847 (main): Correct comment typo.
15848
15849 2020-08-03 Jonathan Wakely <jwakely@redhat.com>
15850
15851 * gimple-ssa-sprintf.c: Fix typos in comments.
15852
15853 2020-08-03 Tamar Christina <tamar.christina@arm.com>
15854
15855 * config/aarch64/driver-aarch64.c (readline): Check return value fgets.
15856
15857 2020-08-03 Richard Biener <rguenther@suse.de>
15858
15859 * doc/match-and-simplify.texi: Amend accordingly.
15860
15861 2020-08-03 Richard Biener <rguenther@suse.de>
15862
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.
15868
15869 2020-08-03 Aldy Hernandez <aldyh@redhat.com>
15870
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
15874 constructor.
15875 (ipcp_propagate_stage): Use in-place new so value_range construct
15876 is called.
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
15883 value_range.
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.
15906 (build_lt): Same.
15907 (build_le): Same.
15908 (build_gt): Same.
15909 (build_ge): 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
15945 performance.
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
16016 method.
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.
16088 (gt_ggc_mx): New.
16089 (gt_pch_nx): New.
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
16107 constructor.
16108
16109 2020-08-02 Sergei Trofimovich <siarheit@google.com>
16110
16111 PR bootstrap/96404
16112 * var-tracking.c (vt_find_locations): Fully initialize
16113 all 'in_pending' bits.
16114
16115 2020-08-01 Jan Hubicka <jh@suse.cz>
16116
16117 * symtab.c (symtab_node::verify_base): Verify order.
16118 (symtab_node::verify_symtab_nodes): Verify order.
16119
16120 2020-08-01 Jan Hubicka <jh@suse.cz>
16121
16122 * predict.c (estimate_bb_frequencies): Cap recursive calls by 90%.
16123
16124 2020-08-01 Jojo R <jiejie_rong@c-sky.com>
16125
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=.
16133
16134 2020-08-01 Cooper Qu <cooper.qu@linux.alibaba.com>
16135
16136 * config/csky/t-csky-linux: Delete big endian CPUs' multilib.
16137
16138 2020-07-31 Roger Sayle <roger@nextmovesoftware.com>
16139 Tom de Vries <tdevries@suse.de>
16140
16141 PR target/90928
16142 * config/nvptx/nvptx.c (nvptx_truly_noop_truncation): Implement.
16143 (TARGET_TRULY_NOOP_TRUNCATION): Define.
16144
16145 2020-07-31 Richard Biener <rguenther@suse.de>
16146
16147 PR debug/96383
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.
16157
16158 2020-07-31 Richard Biener <rguenther@suse.de>
16159
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
16164 operations.
16165 * doc/match-and-simplify.texi: Amend.
16166
16167 2020-07-31 Kewen Lin <linkw@linux.ibm.com>
16168
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.
16172
16173 2020-07-31 Martin Liska <mliska@suse.cz>
16174
16175 * cgraph.h: Remove leading empty lines.
16176 * cgraphunit.c (enum cgraph_order_sort_kind): Remove
16177 ORDER_UNDEFINED.
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.
16182
16183 2020-07-31 Richard Biener <rguenther@suse.de>
16184
16185 PR middle-end/96369
16186 * fold-const.c (fold_range_test): Special-case constant
16187 LHS for short-circuiting operations.
16188
16189 2020-07-31 Martin Liska <mliska@suse.cz>
16190
16191 * gcov-io.h (GCOV_PREALLOCATED_KVP): New.
16192
16193 2020-07-31 Zhiheng Xie <xiezhiheng@huawei.com>
16194
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.
16204
16205 2020-07-31 Richard Biener <rguenther@suse.de>
16206
16207 PR debug/78288
16208 * var-tracking.c (vt_find_locations): Use
16209 rev_post_order_and_mark_dfs_back_seme and separately iterate
16210 over toplevel SCCs.
16211
16212 2020-07-31 Richard Biener <rguenther@suse.de>
16213
16214 * cfganal.h (rev_post_order_and_mark_dfs_back_seme): Adjust
16215 prototype.
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.
16225
16226 2020-07-30 Will Schmidt <will_schmidt@vnet.ibm.com>
16227
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
16231 handling macro.
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.
16239
16240 2020-07-30 Cooper Qu <cooper.qu@linux.alibaba.com>
16241
16242 * config/riscv/riscv-opts.h (stack_protector_guard): New enum.
16243 * config/riscv/riscv.c (riscv_option_override): Handle
16244 the new options.
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
16252 options.
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.
16257
16258 2020-07-30 H.J. Lu <hjl.tools@gmail.com>
16259
16260 PR bootstrap/96202
16261 * configure: Regenerated.
16262
16263 2020-07-30 Richard Biener <rguenther@suse.de>
16264
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.
16270
16271 2020-07-30 Roger Sayle <roger@nextmovesoftware.com>
16272 Tom de Vries <tdevries@suse.de>
16273
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.
16281
16282 2020-07-30 Martin Liska <mliska@suse.cz>
16283
16284 PR target/95435
16285 * config/i386/x86-tune-costs.h: Use libcall for large sizes for
16286 -m32. Start using libcall from 128+ bytes.
16287
16288 2020-07-30 Martin Liska <mliska@suse.cz>
16289
16290 * config/i386/x86-tune-costs.h: Change code formatting.
16291
16292 2020-07-29 Roger Sayle <roger@nextmovesoftware.com>
16293
16294 * config/nvptx/nvptx.md (recip<mode>2): New instruction.
16295
16296 2020-07-29 Fangrui Song <maskray@google.com>
16297
16298 PR debug/95096
16299 * opts.c (common_handle_option): Don't make -gsplit-dwarf imply -g.
16300 * doc/invoke.texi (-gsplit-dwarf): Update documentation.
16301
16302 2020-07-29 Joe Ramsay <joe.ramsay@arm.com>
16303
16304 * config/arm/arm-protos.h (arm_coproc_mem_operand_no_writeback):
16305 Declare prototype.
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
16310 and no writeback.
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
16318 and vstr.16.
16319 * config/arm/vfp.md (*mov_load_vfp_hf16): New pattern for
16320 vldr.16.
16321 (*mov_store_vfp_hf16): New pattern for vstr.16.
16322 (*mov<mode>_vfp_<mode>16): Remove MVE moves.
16323
16324 2020-07-29 Richard Biener <rguenther@suse.de>
16325
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.
16329
16330 2020-07-29 Richard Biener <rguenther@suse.de>
16331
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.
16336
16337 2020-07-29 Richard Biener <rguenther@suse.de>
16338
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
16346 something_changed.
16347
16348 2020-07-29 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
16349
16350 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
16351 Ensure that loop variable npeel_tmp advances in each iteration.
16352
16353 2020-07-29 Hans-Peter Nilsson <hp@bitrange.com>
16354
16355 * config/mmix/mmix.h (NO_FUNCTION_CSE): Define to 1.
16356
16357 2020-07-29 Hans-Peter Nilsson <hp@bitrange.com>
16358
16359 * config/mmix/mmix.h (ASM_OUTPUT_EXTERNAL): Define to
16360 default_elf_asm_output_external.
16361
16362 2020-07-28 Sergei Trofimovich <siarheit@google.com>
16363
16364 PR ipa/96291
16365 * ipa-cp.c (has_undead_caller_from_outside_scc_p): Consider
16366 unoptimized callers as undead.
16367
16368 2020-07-28 Roger Sayle <roger@nextmovesoftware.com>
16369 Richard Biener <rguenther@suse.de>
16370
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.
16376
16377 2020-07-28 Roger Sayle <roger@nextmovesoftware.com>
16378 Tom de Vries <tdevries@suse.de>
16379
16380 * config/nvptx/nvptx.md (extendqihi2): New instruction.
16381 (ashl<mode>3, ashr<mode>3, lshr<mode>3): Support HImode.
16382
16383 2020-07-28 Jakub Jelinek <jakub@redhat.com>
16384
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.
16389
16390 2020-07-28 Kewen Lin <linkw@linux.ibm.com>
16391
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.
16397
16398 2020-07-27 Martin Sebor <msebor@redhat.com>
16399
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
16403 array bound.
16404
16405 2020-07-27 Hu Jiangping <hujiangping@cn.fujitsu.com>
16406
16407 PR driver/96247
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.
16411
16412 2020-07-27 Martin Liska <mliska@suse.cz>
16413
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.
16418
16419 2020-07-27 Richard Biener <rguenther@suse.de>
16420
16421 * var-tracking.c (variable_tracking_main_1): Remove call
16422 to mark_dfs_back_edges.
16423
16424 2020-07-27 Martin Liska <mliska@suse.cz>
16425
16426 PR tree-optimization/96128
16427 * tree-vect-generic.c (expand_vector_comparison): Do not expand
16428 vector comparison with VEC_COND_EXPR.
16429
16430 2020-07-27 H.J. Lu <hjl.tools@gmail.com>
16431
16432 PR bootstrap/96203
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.
16439
16440 2020-07-27 Martin Liska <mliska@suse.cz>
16441
16442 PR lto/45375
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
16446 type.
16447
16448 2020-07-26 Hans-Peter Nilsson <hp@bitrange.com>
16449
16450 * configure.ac (out-of-tree linker .hidden support): Don't turn off
16451 for mmix-knuth-mmixware.
16452 * configure: Regenerate.
16453
16454 2020-07-26 Aaron Sawdey <acsawdey@linux.ibm.com>
16455
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.
16460
16461 2020-07-25 Hans-Peter Nilsson <hp@bitrange.com>
16462
16463 * config/mmix/mmix.c (TARGET_ASM_OUTPUT_IDENT): Override the default
16464 with default_asm_output_ident_directive.
16465
16466 2020-07-25 Andrew Stubbs <ams@codesourcery.com>
16467
16468 * config/gcn/gcn.c (gcn_scalar_mode_supported_p): New function.
16469 (TARGET_SCALAR_MODE_SUPPORTED_P): New define.
16470
16471 2020-07-24 David Edelsohn <dje.gcc@gmail.com>
16472 Clement Chigot <clement.chigot@atos.net>
16473
16474 * config.gcc (powerpc-ibm-aix7.1): Use t-aix64 and biarch64 for
16475 cpu_is_64bit.
16476 * config/rs6000/aix71.h (ASM_SPEC): Remove aix64 option.
16477 (ASM_SPEC32): New.
16478 (ASM_SPEC64): New.
16479 (ASM_CPU_SPEC): Remove vsx and altivec options.
16480 (CPP_SPEC_COMMON): Rename from CPP_SPEC.
16481 (CPP_SPEC32): New.
16482 (CPP_SPEC64): New.
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.
16486 (LIB_SPEC32): New.
16487 (LIB_SPEC64): New.
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.
16493 (CPP_SPEC): Same.
16494 (CPLUSPLUS_CPP_SPEC): Same.
16495 (LIB_SPEC): Same.
16496 (LINK_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.
16500
16501 2020-07-24 Segher Boessenkool <segher@kernel.crashing.org>
16502
16503 * config/rs6000/rs6000.opt: Delete -mpower10.
16504
16505 2020-07-24 Alexandre Oliva <oliva@adacore.com>
16506
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
16513 setting...
16514 (main): ... here. Detect -dumpbase, set dumppfx too.
16515
16516 2020-07-24 Alexandre Oliva <oliva@adacore.com>
16517
16518 PR driver/96230
16519 * gcc.c (process_command): Adjust and document conditions to
16520 reset dumpbase_ext.
16521
16522 2020-07-24 Matthias Klose <doko@ubuntu.com>
16523
16524 * config/aarch64/aarch64.c (+aarch64_offload_options,
16525 TARGET_OFFLOAD_OPTIONS): New.
16526
16527 2020-07-24 Uroš Bizjak <ubizjak@gmail.com>
16528
16529 PR target/95750
16530 * config/i386/sync.md (mmem_thread_fence): Emit mfence_sse2 for -Os.
16531
16532 2020-07-23 Roger Sayle <roger@nextmovesoftware.com>
16533
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.
16537
16538 2020-07-23 Dong JianQiang <dongjianqiang2@huawei.com>
16539
16540 PR gcov-profile/96267
16541 * gcov-io.c (gcov_open): enable if IN_GCOV_TOOL.
16542
16543 2020-07-23 Kewen Lin <linkw@linux.ibm.com>
16544
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.
16549
16550 2020-07-23 Kewen Lin <linkw@linux.ibm.com>
16551
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.
16555
16556 2020-07-23 Kito Cheng <kito.cheng@sifive.com>
16557
16558 PR target/96260
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.
16564
16565 2020-07-22 Peter Bergner <bergner@linux.ibm.com>
16566
16567 PR target/96236
16568 * config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Handle
16569 little-endian memory ordering.
16570
16571 2020-07-22 Nathan Sidwell <nathan@acm.org>
16572
16573 * dumpfile.c (parse_dump_option): Deal with filenames
16574 containing '-'
16575
16576 2020-07-22 Nathan Sidwell <nathan@acm.org>
16577
16578 * incpath.c (add_path): Avoid multiple strlen calls.
16579
16580 2020-07-22 Jozef Lawrynowicz <jozef.l@mittosystems.com>
16581
16582 * expmed.c (expand_sdiv_pow2): Check return value from emit_store_flag
16583 is not NULL_RTX before use.
16584
16585 2020-07-22 Jozef Lawrynowicz <jozef.l@mittosystems.com>
16586
16587 * expr.c (convert_modes): Allow a constant integer to be converted to
16588 any scalar int mode.
16589
16590 2020-07-22 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
16591
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
16597 machine_mode.
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.
16602
16603 2020-07-22 Wei Wentao <weiwt.fnst@cn.fujitsu.com>
16604
16605 * doc/languages.texi: Fix “then”/“than” typo.
16606
16607 2020-07-21 Sunil K Pandey <skpgkp2@gmail.com>
16608
16609 PR target/95237
16610 * config/i386/i386-protos.h (ix86_local_alignment): Add
16611 another function parameter may_lower alignment. Default is
16612 false.
16613 * config/i386/i386.c (ix86_lower_local_decl_alignment): New
16614 function.
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
16622 hook.
16623 * target.def (lower_local_decl_alignment): New hook.
16624
16625 2020-07-21 Uroš Bizjak <ubizjak@gmail.com>
16626
16627 PR target/95750
16628 * config/i386/sync.md (mfence_sse2): Enable for
16629 TARGET_64BIT and TARGET_SSE2.
16630 (mfence_nosse): Always enable.
16631
16632 2020-07-21 Jozef Lawrynowicz <jozef.l@mittosystems.com>
16633
16634 * config/msp430/msp430-protos.h (msp430_do_not_relax_short_jumps):
16635 Remove.
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.
16639
16640 2020-07-21 Jozef Lawrynowicz <jozef.l@mittosystems.com>
16641
16642 * config/msp430/msp430.md: New "extendqipsi2" define_insn.
16643
16644 2020-07-21 Jozef Lawrynowicz <jozef.l@mittosystems.com>
16645
16646 * config/msp430/msp430.h (NO_FUNCTION_CSE): Set to true at -O2 and
16647 above.
16648
16649 2020-07-21 Xionghu Luo <luoxhu@linux.ibm.com>
16650
16651 PR rtl-optimization/89310
16652 * config/rs6000/rs6000.md (movsf_from_si2): New define_insn_and_split.
16653
16654 2020-07-20 Hans-Peter Nilsson <hp@bitrange.com>
16655
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.
16659
16660 2020-07-20 Sergei Trofimovich <siarheit@google.com>
16661
16662 PR target/96190
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.
16666
16667 2020-07-20 Yang Yang <yangyang305@huawei.com>
16668
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.
16672
16673 2020-07-20 Uroš Bizjak <ubizjak@gmail.com>
16674
16675 PR target/95750
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.
16686
16687 2020-07-20 Martin Sebor <msebor@redhat.com>
16688
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.
16705
16706 2020-07-20 Richard Biener <rguenther@suse.de>
16707
16708 * cfganal.c (rev_post_order_and_mark_dfs_back_seme): Remove
16709 write-only post array.
16710
16711 2020-07-20 Jakub Jelinek <jakub@redhat.com>
16712
16713 PR libstdc++/93121
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.
16718
16719 2020-07-20 Jakub Jelinek <jakub@redhat.com>
16720
16721 PR libstdc++/93121
16722 * fold-const.c (native_encode_initializer): Handle bit-fields.
16723
16724 2020-07-20 Kewen Lin <linkw@linux.ibm.com>
16725
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
16763 vectors.
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.
16776
16777 2020-07-20 Hans-Peter Nilsson <hp@bitrange.com>
16778
16779 * config/mmix/mmix.c (mmix_option_override): Reinstate default
16780 integer-emitting targetm.asm_out pseudos when dumping detailed
16781 assembly-code.
16782 (mmix_assemble_integer): Update comment.
16783
16784 2020-07-19 H.J. Lu <hjl.tools@gmail.com>
16785
16786 PR target/95973
16787 PR target/96238
16788 * config/i386/cpuid.h: Add include guard.
16789 (__cpuidex): New.
16790
16791 2020-07-18 H.J. Lu <hjl.tools@gmail.com>
16792
16793 PR target/95620
16794 * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
16795
16796 2020-07-18 Peter Bergner <bergner@linux.ibm.com>
16797
16798 PR target/92488
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.
16802
16803 2020-07-17 Roger Sayle <roger@nextmovesoftware.com>
16804
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.
16808
16809 2020-07-17 H.J. Lu <hjl.tools@gmail.com>
16810
16811 PR target/96186
16812 PR target/88713
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.
16817
16818 2020-07-17 Tamar Christina <tamar.christina@arm.com>
16819
16820 * doc/sourcebuild.texi (dg-set-compiler-env-var,
16821 dg-set-target-env-var): Document.
16822
16823 2020-07-17 Tamar Christina <tamar.christina@arm.com>
16824
16825 * config/arm/driver-arm.c (host_detect_local_cpu): Add GCC_CPUINFO.
16826
16827 2020-07-17 Tamar Christina <tamar.christina@arm.com>
16828
16829 * config/aarch64/driver-aarch64.c (host_detect_local_cpu):
16830 Add GCC_CPUINFO.
16831
16832 2020-07-17 Tamar Christina <tamar.christina@arm.com>
16833
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.
16838
16839 2020-07-17 Andrew Stubbs <ams@codesourcery.com>
16840
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.
16848
16849 2020-07-17 Andrew Pinski <apinksi@marvell.com>
16850 Dmitrij Pochepko <dmitrij.pochepko@bell-sw.com>
16851
16852 PR target/93720
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.
16857
16858 2020-07-17 Andrew Pinski <apinksi@marvell.com>
16859 Dmitrij Pochepko <dmitrij.pochepko@bell-sw.com>
16860
16861 PR target/82199
16862 * config/aarch64/aarch64.c (aarch64_evpc_reencode): New function.
16863 (aarch64_expand_vec_perm_const_1): Call it.
16864
16865 2020-07-17 Zhiheng Xie <xiezhiheng@huawei.com>
16866
16867 * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
16868 Add new field flags.
16869 (VAR1): Add new field FLAG in macro.
16870 (VAR2): Likewise.
16871 (VAR3): Likewise.
16872 (VAR4): Likewise.
16873 (VAR5): Likewise.
16874 (VAR6): Likewise.
16875 (VAR7): Likewise.
16876 (VAR8): Likewise.
16877 (VAR9): Likewise.
16878 (VAR10): Likewise.
16879 (VAR11): Likewise.
16880 (VAR12): Likewise.
16881 (VAR13): Likewise.
16882 (VAR14): Likewise.
16883 (VAR15): Likewise.
16884 (VAR16): Likewise.
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.
16890
16891 2020-07-17 Andreas Krebbel <krebbel@linux.ibm.com>
16892
16893 PR target/96127
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.
16898
16899 2020-07-16 Hans-Peter Nilsson <hp@axis.com>
16900 Segher Boessenkool <segher@kernel.crashing.org>
16901
16902 PR target/93372
16903 * combine.c (is_just_move): Take an rtx_insn* as argument. Use
16904 single_set on it.
16905
16906 2020-07-16 Uroš Bizjak <ubizjak@gmail.com>
16907
16908 PR target/96189
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.
16912
16913 2020-07-16 Eric Botcazou <ebotcazou@adacore.com>
16914
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.
16928
16929 2020-07-16 Andrew Stubbs <ams@codesourcery.com>
16930
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,
16961 gcn_cfile_name.
16962 Create files_to_cleanup obstack.
16963 Recognize -march options.
16964 Copy early debug info from input .o files.
16965
16966 2020-07-16 Andrea Corallo <andrea.corallo@arm.com>
16967
16968 * Makefile.in (TAGS): Remove 'params.def'.
16969
16970 2020-07-16 Roger Sayle <roger@nextmovesoftware.com>
16971
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
16975 truncation.
16976 * doc/tm.texi: Regenerate.
16977
16978 2020-07-15 Uroš Bizjak <ubizjak@gmail.com>
16979
16980 PR target/96189
16981 * config/i386/sync.md
16982 (peephole2 to remove unneded compare after CMPXCHG): New pattern.
16983
16984 2020-07-15 Jakub Jelinek <jakub@redhat.com>
16985
16986 PR libgomp/96198
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.
16997
16998 2020-07-15 Jakub Jelinek <jakub@redhat.com>
16999
17000 PR target/96174
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
17018 section.
17019
17020 2020-07-15 Jakub Jelinek <jakub@redhat.com>
17021
17022 PR target/96176
17023 * builtins.c: Include gimple-ssa.h, tree-ssa-live.h and
17024 tree-outof-ssa.h.
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
17027 cast's rhs.
17028
17029 2020-07-15 Jiufu Guo <guojiufu@cn.ibm.com>
17030
17031 * config/rs6000/rs6000.c (rs6000_loop_unroll_adjust): Refine hook.
17032
17033 2020-07-14 David Edelsohn <dje.gcc@gmail.com>
17034
17035 * config/rs6000/rs6000.md (rotldi3_insert_sf): Add TARGET_POWERPC64
17036 condition.
17037 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Add
17038 TARGET_POWERPC64 requirement to TARGET_P8_VECTOR case.
17039
17040 2020-07-14 Lewis Hyatt <lhyatt@gmail.com>
17041
17042 PR preprocessor/49973
17043 PR other/86904
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
17050 the new options.
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
17056 helper functions.
17057 (test_bad_endpoints): Likewise.
17058 * diagnostic-show-locus.c
17059 (exploc_with_display_col::exploc_with_display_col): Support
17060 tabstop parameter.
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
17084 changes.
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
17092 function changes.
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
17103 options.
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().
17114
17115 2020-07-14 Jakub Jelinek <jakub@redhat.com>
17116
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.
17120
17121 2020-07-14 Nathan Sidwell <nathan@acm.org>
17122
17123 * hash-map.h (hash_map::get): Note it is a pointer to value.
17124 * incpath.h (incpath_kind): Align comments.
17125
17126 2020-07-14 Nathan Sidwell <nathan@acm.org>
17127
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.
17132
17133 2020-07-14 Nathan Sidwell <nathan@acm.org>
17134
17135 * doc/gty.texi: Fic gt_cleare_cache name.
17136 * doc/invoke.texi: Remove duplicate opindex Wabi-tag.
17137
17138 2020-07-14 Jakub Jelinek <jakub@redhat.com>
17139
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
17145 adjn1.
17146 * omp-expand.c (expand_omp_for_init_vars): Use adjn1 if non-NULL
17147 instead of the outer loop's n1.
17148
17149 2020-07-14 Matthias Klose <doko@ubuntu.com>
17150
17151 PR lto/95604
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.
17159
17160 2020-07-13 Alan Modra <amodra@gmail.com>
17161
17162 * config/rs6000/rs6000.md (sibcall_local): Merge sibcall_local32
17163 and sibcall_local64.
17164 (sibcall_value_local): Similarly.
17165
17166 2020-07-13 Nathan Sidwell <nathan@acm.org>
17167
17168 * Makefile.in (distclean): Remove long gone cxxmain.c
17169
17170 2020-07-13 H.J. Lu <hjl.tools@gmail.com>
17171
17172 PR target/95443
17173 * config/i386/i386.md (cmpstrnsi): Pass a copy of the string
17174 length to cmpstrnqi patterns.
17175
17176 2020-07-13 Jakub Jelinek <jakub@redhat.com>
17177
17178 PR ipa/96130
17179 * ipa-fnsummary.c (analyze_function_body): Treat NULL bb->aux
17180 as false predicate.
17181
17182 2020-07-13 Richard Biener <rguenther@suse.de>
17183
17184 PR tree-optimization/96163
17185 * tree-vect-slp.c (vect_schedule_slp_instance): Put new stmts
17186 at least after region begin.
17187
17188 2020-07-13 Szabolcs Nagy <szabolcs.nagy@arm.com>
17189
17190 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add
17191 __ARM_FEATURE_PAC_DEFAULT support.
17192
17193 2020-07-13 Szabolcs Nagy <szabolcs.nagy@arm.com>
17194
17195 PR target/94891
17196 * doc/extend.texi: Update the text for __builtin_return_address.
17197
17198 2020-07-13 Szabolcs Nagy <szabolcs.nagy@arm.com>
17199
17200 PR target/94891
17201 * config/aarch64/aarch64.c (aarch64_return_address_signing_enabled):
17202 Disable return address signing if __builtin_eh_return is used.
17203
17204 2020-07-13 Szabolcs Nagy <szabolcs.nagy@arm.com>
17205
17206 PR target/94891
17207 PR target/94791
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.
17212
17213 2020-07-13 Richard Sandiford <richard.sandiford@arm.com>
17214
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
17218 routines.
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.
17225
17226 2020-07-13 Julian Brown <julian@codesourcery.com>
17227 Thomas Schwinge <thomas@codesourcery.com>
17228
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).
17232
17233 2020-07-13 Roger Sayle <roger@nextmovesoftware.com>
17234
17235 * convert.c (convert_to_integer_1): Narrow integer operations
17236 even on targets that require explicit truncation instructions.
17237
17238 2020-07-13 Hans-Peter Nilsson <hp@axis.com>
17239
17240 PR target/93372
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.
17246
17247 2020-07-13 Hans-Peter Nilsson <hp@axis.com>
17248
17249 * config/cris/t-cris: Remove gt-cris.h-related excessive cargo.
17250
17251 2020-07-13 Hans-Peter Nilsson <hp@axis.com>
17252
17253 PR target/93372
17254 * config/cris/cris.md ("*add<mode>3_addi"): New splitter.
17255 ("*addi_b_<mode>"): New pattern.
17256 ("*addsi3<setnz>"): Remove stale %-related comment.
17257
17258 2020-07-13 Hans-Peter Nilsson <hp@axis.com>
17259
17260 * config/cris/cris.md ("setnz_subst", "setnz_subst", "setcc_subst"):
17261 Use match_dup in output template, not match_operand.
17262
17263 2020-07-13 Richard Biener <rguenther@suse.de>
17264
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.
17269
17270 2020-07-13 Richard Biener <rguenther@suse.de>
17271
17272 PR middle-end/94600
17273 * expr.c (expand_constructor): Make a temporary also if we're
17274 storing to volatile memory.
17275
17276 2020-07-13 Xionghu Luo <luoxhu@linux.ibm.com>
17277
17278 * config/rs6000/rs6000.md (rotl_unspec): New
17279 define_insn_and_split.
17280
17281 2020-07-13 Xionghu Luo <luoxhu@linux.ibm.com>
17282
17283 * config/rs6000/rs6000.c (rs6000_expand_vector_init):
17284 Move V4SF to V4SI, init vector like V4SI and move to V4SF back.
17285
17286 2020-07-11 Roger Sayle <roger@nextmovesoftware.com>
17287
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.
17291
17292 2020-07-11 Richard Sandiford <richard.sandiford@arm.com>
17293
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.
17298
17299 2020-07-10 David Edelsohn <dje.gcc@gmail.com>
17300
17301 PR target/77373
17302 * config/rs6000/rs6000.c (rs6000_xcoff_select_section): Only
17303 create named section for VAR_DECL or FUNCTION_DECL.
17304
17305 2020-07-10 Joseph Myers <joseph@codesourcery.com>
17306
17307 * glimits.h [__STDC_VERSION__ > 201710L] (BOOL_MAX, BOOL_WIDTH):
17308 New macros.
17309
17310 2020-07-10 Alexander Popov <alex.popov@linux.com>
17311
17312 * shrink-wrap.c (try_shrink_wrapping): Improve debug output.
17313
17314 2020-07-10 Richard Sandiford <richard.sandiford@arm.com>
17315
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.
17321
17322 2020-07-10 Richard Sandiford <richard.sandiford@arm.com>
17323
17324 PR target/92789
17325 PR target/95726
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
17331 attribs.h.
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.
17337
17338 2020-07-10 Carl Love <cel@us.ibm.com>
17339
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
17351 defines.
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.
17384
17385 2020-07-10 Bill Seurer, 507-253-3502, seurer@us.ibm.com <(no_default)>
17386
17387 PR target/95581
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.
17391
17392 2020-07-10 H.J. Lu <hjl.tools@gmail.com>
17393
17394 PR target/96144
17395 * config/i386/i386-expand.c (ix86_emit_swsqrtsf): Check
17396 TARGET_AVX512VL when enabling FMA.
17397
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>
17401
17402 * config/arm/arm-protos.h (arm_target_insn_ok_for_lob): New
17403 prototype.
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
17414 options.
17415
17416 2020-07-10 Richard Biener <rguenther@suse.de>
17417
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
17421 asked for object.
17422
17423 2020-07-10 Cui,Lili <lili.cui@intel.com>
17424
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.
17449 (PTA_ENQCMD): New.
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.
17459
17460 2020-07-10 Martin Liska <mliska@suse.cz>
17461
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
17465 to dump_file.
17466
17467 2020-07-10 Kewen Lin <linkw@linux.ibm.com>
17468
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.
17472
17473 2020-07-09 Peter Bergner <bergner@linux.ibm.com>
17474
17475 PR target/96125
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.
17483
17484 2020-07-09 Richard Biener <rguenther@suse.de>
17485
17486 PR tree-optimization/96133
17487 * tree-vect-slp.c (vect_build_slp_tree_1): Compare load_p
17488 status between stmts.
17489
17490 2020-07-09 H.J. Lu <hjl.tools@gmail.com>
17491
17492 PR target/88713
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.
17497
17498 2020-07-09 Richard Biener <rguenther@suse.de>
17499
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.
17518
17519 2020-07-09 Bin Cheng <bin.cheng@linux.alibaba.com>
17520
17521 PR tree-optimization/95804
17522 * tree-loop-distribution.c (break_alias_scc_partitions): Force
17523 negative post order to reduction partition.
17524
17525 2020-07-09 Jakub Jelinek <jakub@redhat.com>
17526
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.
17537
17538 2020-07-09 Omar Tahir <omar.tahir@arm.com>
17539
17540 * ira.c (move_unallocated_pseudos): Zero first_moveable_pseudo and
17541 last_moveable_pseudo before returning.
17542
17543 2020-07-09 Szabolcs Nagy <szabolcs.nagy@arm.com>
17544
17545 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add
17546 __ARM_FEATURE_BTI_DEFAULT support.
17547
17548 2020-07-09 Matthew Malcomson <matthew.malcomson@arm.com>
17549
17550 * config/aarch64/aarch64-protos.h (aarch64_indirect_call_asm):
17551 New declaration.
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
17572 instructions.
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
17576 SLS.
17577 * config/aarch64/predicates.md (aarch64_general_reg): STUB_REGS class
17578 is also a general register.
17579
17580 2020-07-09 Matthew Malcomson <matthew.malcomson@arm.com>
17581
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
17586 of code copied.
17587 (aarch64_sls_barrier): New.
17588 (aarch64_asm_trampoline_template): Add needed barriers.
17589 * config/aarch64/aarch64.h (AARCH64_ISA_SB): New.
17590 (TARGET_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
17598 value.
17599
17600 2020-07-09 Matthew Malcomson <matthew.malcomson@arm.com>
17601
17602 * config/aarch64/aarch64-protos.h (aarch64_harden_sls_retbr_p):
17603 New.
17604 (aarch64_harden_sls_blr_p): New.
17605 * config/aarch64/aarch64.c (enum aarch64_sls_hardening_type):
17606 New.
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.
17613
17614 2020-07-09 Kewen Lin <linkw@linux.ibm.com>
17615
17616 * tree-vect-stmts.c (vectorizable_condition): Prohibit vectorization
17617 with partial vectors explicitly excepting for EXTRACT_LAST_REDUCTION
17618 or nested-cycle reduction.
17619
17620 2020-07-09 Kewen Lin <linkw@linux.ibm.com>
17621
17622 * tree-vect-loop.c (vect_analyze_loop_2): Update dumping string
17623 for fully masking to be more common.
17624
17625 2020-07-09 Kito Cheng <kito.cheng@sifive.com>
17626
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.
17631
17632 2020-07-09 Kito Cheng <kito.cheng@sifive.com>
17633
17634 * config/riscv/riscv-sr.c (riscv_remove_unneeded_save_restore_calls):
17635 Abort if any arguments on stack.
17636
17637 2020-07-08 Eric Botcazou <ebotcazou@adacore.com>
17638
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.
17643
17644 2020-07-08 Tobias Burnus <tobias@codesourcery.com>
17645
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.
17649
17650 2020-07-08 Will Schmidt <will_schmidt@vnet.ibm.com>
17651
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.
17660
17661 2020-07-08 Richard Biener <rguenther@suse.de>
17662
17663 * tree-vect-stmts.c (get_group_load_store_type): Pass
17664 in the SLP node and the alignment support scheme output.
17665 Set that.
17666 (get_load_store_type): Likewise.
17667 (vectorizable_store): Adjust.
17668 (vectorizable_load): Likewise.
17669
17670 2020-07-08 Richard Sandiford <richard.sandiford@arm.com>
17671
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.
17677
17678 2020-07-08 Kewen Lin <linkw@linux.ibm.com>
17679
17680 * config/rs6000/vsx.md (len_load_v16qi): New define_expand.
17681 (len_store_v16qi): Likewise.
17682
17683 2020-07-08 Kewen Lin <linkw@linux.ibm.com>
17684
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
17695 len_load_optab.
17696 (expand_mask_store_optab_fn): New macro. Original renamed to ...
17697 (expand_partial_store_optab_fn): ... here. Add handlings for
17698 len_store_optab.
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.
17705
17706 2020-07-07 Anton Youdkevitch <anton.youdkevitch@bell-sw.com>
17707
17708 * config/aarch64/aarch64.c (thunderx2t99_regmove_cost,
17709 thunderx2t99_vector_cost): Likewise.
17710
17711 2020-07-07 Richard Biener <rguenther@suse.de>
17712
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
17717 is negative.
17718
17719 2020-07-07 Qian Jianhua <qianjh@cn.fujitsu.com>
17720
17721 * doc/generic.texi: Fix typo.
17722
17723 2020-07-07 Richard Biener <rguenther@suse.de>
17724
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.
17729
17730 2020-07-06 Richard Biener <rguenther@suse.de>
17731
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.
17736
17737 2020-07-06 Roger Sayle <roger@nextmovesoftware.com>
17738
17739 * config/nvptx/nvptx.md (*vadd_addsi4): New instruction.
17740 (*vsub_addsi4): New instruction.
17741
17742 2020-07-06 Hans-Peter Nilsson <hp@axis.com>
17743
17744 * config/cris/cris.md (movulsr): New peephole2.
17745
17746 2020-07-06 Hans-Peter Nilsson <hp@axis.com>
17747
17748 * config/cris/sync.md ("cris_atomic_fetch_<atomic_op_name><mode>_1"):
17749 Correct gcc_assert of overlapping operands.
17750
17751 2020-07-05 Hans-Peter Nilsson <hp@axis.com>
17752
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
17757 code iterators.
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".
17766
17767 2020-07-05 Hans-Peter Nilsson <hp@axis.com>
17768
17769 * config/cris/cris.md ("*extopqihi", "*extop<mode>si<setnz>_swap")
17770 ("*extop<mode>si<setnz>", "*addxqihi_swap"): Reinstate.
17771
17772 2020-07-03 Eric Botcazou <ebotcazou@adacore.com>
17773
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.
17802
17803 2020-07-03 Martin Jambor <mjambor@suse.cz>
17804
17805 PR ipa/96040
17806 * ipa-sra.c (all_callee_accesses_present_p): Do not accept type
17807 mismatched accesses.
17808
17809 2020-07-03 Roger Sayle <roger@nextmovesoftware.com>
17810
17811 * config/nvptx/nvptx.md (popcount<mode>2): New instructions.
17812 (mulhishi3, mulsidi3, umulhisi3, umulsidi3): New instructions.
17813
17814 2020-07-03 Martin Liska <mliska@suse.cz>
17815 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17816
17817 PR bootstrap/96046
17818 * gcov-dump.c (tag_function): Use gcov_position_t
17819 type.
17820
17821 2020-07-03 Richard Biener <rguenther@suse.de>
17822
17823 PR tree-optimization/96037
17824 * tree-vect-stmts.c (vect_is_simple_use): Initialize *slp_def.
17825
17826 2020-07-03 Richard Biener <rguenther@suse.de>
17827
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.
17831
17832 2020-07-03 Andrew Stubbs <ams@codesourcery.com>
17833
17834 * config/gcn/gcn-valu.md (fold_left_plus_<mode>): New.
17835
17836 2020-07-03 Richard Biener <rguenther@suse.de>
17837
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
17845 adjusting VUSE.
17846 * tree-vect-slp.c (vect_create_constant_vectors): Simplify
17847 by using vec_info::insert_seq_on_entry and bypassing
17848 vec_init_vector.
17849 (vect_schedule_slp_instance): Deal with all-constant
17850 children later.
17851
17852 2020-07-03 Roger Sayle <roger@nextmovesoftware.com>
17853 Tom de Vries <tdevries@suse.de>
17854
17855 PR target/90932
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.
17858
17859 2020-07-02 Richard Biener <rguenther@suse.de>
17860
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.
17866
17867 2020-07-02 Martin Jambor <mjambor@suse.cz>
17868
17869 PR debug/95343
17870 * ipa-param-manipulation.c (ipa_param_adjustments::modify_call): Adjust
17871 argument index if necessary.
17872
17873 2020-07-02 Martin Liska <mliska@suse.cz>
17874
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.
17881
17882 2020-07-02 Ilya Leoshkevich <iii@linux.ibm.com>
17883
17884 PR bootstrap/95700
17885 * system.h (NULL): Redefine to nullptr.
17886
17887 2020-07-02 Jakub Jelinek <jakub@redhat.com>
17888
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.
17894
17895 2020-07-02 Richard Biener <rguenther@suse.de>
17896
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.
17903
17904 2020-07-02 Felix Yang <felix.yang@huawei.com>
17905
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
17910 local variables.
17911
17912 2020-07-02 Jakub Jelinek <jakub@redhat.com>
17913
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.
17917
17918 2020-07-02 Martin Liska <mliska@suse.cz>
17919
17920 PR gcov-profile/95348
17921 * coverage.c (read_counts_file): Read only COUNTERS that are
17922 not all-zero.
17923 * gcov-dump.c (tag_function): Change signature from unsigned to
17924 signed integer.
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
17931 sensitively.
17932
17933 2020-07-02 Kito Cheng <kito.cheng@sifive.com>
17934
17935 * config/riscv/multilib-generator (arch_canonicalize): Handle
17936 multi-letter extension.
17937 Using underline as separator between different extensions.
17938
17939 2020-07-01 Pip Cet <pipcet@gmail.com>
17940
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.
17944
17945 2020-07-01 Omar Tahir <omar.tahir@arm.com>
17946
17947 * config/aarch64/aarch64.c (aarch64_asm_trampoline_template): Always
17948 generate a BTI instruction.
17949
17950 2020-07-01 Jeff Law <law@redhat.com>
17951
17952 PR tree-optimization/94882
17953 * match.pd (x & y) - (x | y) - 1 -> ~(x ^ y): New simplification.
17954
17955 2020-07-01 Jeff Law <law@redhat.com>
17956
17957 * config/m68k/m68k.c (m68k_output_btst): Drop "register" keyword.
17958 (emit_move_sequence, output_iorsi3, output_xorsi3): Likewise.
17959
17960 2020-07-01 Andrea Corallo <andrea.corallo@arm.com>
17961
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
17972 iterators.
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
17977 Functions.
17978
17979 2020-07-01 Martin Liska <mliska@suse.cz>
17980
17981 * gcov.c (print_usage): Avoid trailing space for -j option.
17982
17983 2020-07-01 Richard Biener <rguenther@suse.de>
17984
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
17989 vector registers.
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
17996 permutes.
17997 (vect_schedule_slp_instance): Handle pre-existing vector
17998 that are function arguments.
17999
18000 2020-07-01 Richard Biener <rguenther@suse.de>
18001
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.
18011
18012 2020-07-01 Martin Liska <mliska@suse.cz>
18013
18014 * gcov.c (print_usage): Shorted option description for -j
18015 option.
18016
18017 2020-07-01 Martin Liska <mliska@suse.cz>
18018
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.
18024
18025 2020-07-01 Jeff Law <law@redhat.com>
18026
18027 * config/pa/pa.c (pa_emit_move_sequence): Drop register keyword.
18028 (pa_output_ascii): Likewise.
18029
18030 2020-07-01 Kito Cheng <kito.cheng@sifive.com>
18031
18032 * common/config/riscv/riscv-common.c (riscv_subset_t): New field
18033 added.
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
18042 arch version.
18043 (riscv_subset_list::parse_std_ext): Ditto.
18044 (riscv_subset_list::parse_multiletter_ext): Ditto.
18045
18046 2020-06-30 Richard Sandiford <richard.sandiford@arm.com>
18047
18048 PR target/92789
18049 PR target/95726
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
18055 attribs.h.
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.
18061
18062 2020-06-30 Christophe Lyon <christophe.lyon@linaro.org>
18063
18064 PR target/94743
18065 * config/arm/arm.c (arm_handle_isr_attribute): Warn if
18066 -mgeneral-regs-only is not used.
18067
18068 2020-06-30 Yang Yang <yangyang305@huawei.com>
18069
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.
18074
18075 2020-06-29 Segher Boessenkool <segher@kernel.crashing.org>
18076
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).
18080
18081 2020-06-29 Segher Boessenkool <segher@kernel.crashing.org>
18082
18083 * config/rs6000/rs6000.md (isa): Rename "fut" to "p10".
18084
18085 2020-06-29 Roger Sayle <roger@nextmovesoftware.com>
18086
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
18091 when appropriate.
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.
18096
18097 2020-06-29 Richard Biener <rguenther@suse.de>
18098
18099 PR tree-optimization/95916
18100 * tree-vect-slp.c (vect_schedule_slp_instance): Explicitely handle
18101 the case of not vectorized externals.
18102
18103 2020-06-29 Richard Biener <rguenther@suse.de>
18104
18105 * tree-vectorizer.h: Do not include <utility>.
18106
18107 2020-06-29 Martin Liska <mliska@suse.cz>
18108
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.
18113
18114 2020-06-29 Andrew Stubbs <ams@codesourcery.com>
18115
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.
18123
18124 2020-06-29 Kaipeng Zhou <zhoukaipeng3@huawei.com>
18125
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.
18130
18131 2020-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18132
18133 * config/sparc/sparc.c (epilogue_renumber): Remove register.
18134 (sparc_print_operand_address): Likewise.
18135 (sparc_type_code): Likewise.
18136 (set_extends): Likewise.
18137
18138 2020-06-29 Martin Liska <mliska@suse.cz>
18139
18140 PR tree-optimization/92860
18141 * optc-save-gen.awk: Add exceptions for arc target.
18142
18143 2020-06-29 Frederik Harwath <frederik@codesourcery.com>
18144
18145 * doc/sourcebuild.texi: Describe globbing of the
18146 dump file scanning commands "suffix" argument.
18147
18148 2020-06-28 Martin Sebor <msebor@redhat.com>
18149
18150 PR c++/86568
18151 * calls.c (maybe_warn_rdwr_sizes): Use location of argument if
18152 available.
18153 * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Same. Adjust
18154 indentation.
18155 * tree.c (get_nonnull_args): Consider the this pointer implicitly
18156 nonnull.
18157 * var-tracking.c (deps_vec): New type.
18158 (var_loc_dep_vec): New function.
18159 (VAR_LOC_DEP_VEC): Use it.
18160
18161 2020-06-28 Kewen Lin <linkw@linux.ibm.com>
18162
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.
18166
18167 2020-06-27 Aldy Hernandez <aldyh@redhat.com>
18168
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
18190 value_range.
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
18196 class.
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
18203 value_range.
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
18212 value_range.
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.
18228
18229 2020-06-27 Jakub Jelinek <jakub@redhat.com>
18230
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
18237 loops.
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
18246 distribute.
18247
18248 2020-06-26 H.J. Lu <hjl.tools@gmail.com>
18249
18250 PR target/95655
18251 * config/i386/gnu-user.h (SUBTARGET_FRAME_POINTER_REQUIRED):
18252 Removed.
18253 * config/i386/i386.c (ix86_frame_pointer_required): Update
18254 comments.
18255
18256 2020-06-26 Yichao Yu <yyc1992@gmail.com>
18257
18258 * multiple_target.c (redirect_to_specific_clone): Fix tests
18259 to check individual attribute rather than an attribute list.
18260
18261 2020-06-26 Peter Bergner <bergner@linux.ibm.com>
18262
18263 * config/rs6000/rs6000-call.c (cpu_is_info) <power10>: New.
18264 * doc/extend.texi (PowerPC Built-in Functions): Document power10,
18265 arch_3_1 and mma.
18266
18267 2020-06-26 Marek Polacek <polacek@redhat.com>
18268
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.
18272
18273 2020-06-26 Eric Botcazou <ebotcazou@adacore.com>
18274
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.
18280
18281 2020-06-26 Richard Biener <rguenther@suse.de>
18282
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.
18292
18293 2020-06-25 Nick Clifton <nickc@redhat.com>
18294
18295 * config/m32r/m32r.md (movsicc): Disable pattern.
18296
18297 2020-06-25 Richard Biener <rguenther@suse.de>
18298
18299 PR tree-optimization/95839
18300 * tree-vect-slp.c (vect_slp_analyze_bb_1): Remove premature
18301 check on the number of datarefs.
18302
18303 2020-06-25 Iain Sandoe <iain@sandoe.co.uk>
18304
18305 * config/rs6000/rs6000-call.c (mma_init_builtins): Cast
18306 the insn_data n_operands value to unsigned.
18307
18308 2020-06-25 Richard Biener <rguenther@suse.de>
18309
18310 * tree-vect-slp.c (vect_schedule_slp_instance): Always use
18311 vector defs to determine insertion place.
18312
18313 2020-06-25 H.J. Lu <hjl.tools@gmail.com>
18314
18315 PR target/95874
18316 * config/i386/i386.h (PTA_ICELAKE_CLIENT): Remove PTA_CLWB.
18317 (PTA_ICELAKE_SERVER): Add PTA_CLWB.
18318 (PTA_TIGERLAKE): Add PTA_CLWB.
18319
18320 2020-06-25 Richard Biener <rguenther@suse.de>
18321
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.
18326
18327 2020-06-25 Martin Liska <mliska@suse.cz>
18328
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
18333 return 0.
18334 * tree-vect-generic.c (expand_vector_condition): Remove dead
18335 SSA_NAMEs used as the first argument of a VEC_COND_EXPR.
18336
18337 2020-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
18338
18339 PR target/94954
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
18344 and overload.
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.
18349
18350 2020-06-24 Roger Sayle <roger@nextmovesoftware.com>
18351 Segher Boessenkool <segher@kernel.crashing.org>
18352
18353 * simplify-rtx.c (simplify_unary_operation_1): Simplify rotates by 0.
18354
18355 2020-06-24 Roger Sayle <roger@nextmovesoftware.com>
18356
18357 * simplify-rtx.c (simplify_unary_operation_1): Simplify
18358 (parity (parity x)) as (parity x), i.e. PARITY is idempotent.
18359
18360 2020-06-24 Richard Biener <rguenther@suse.de>
18361
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.
18366
18367 2020-06-24 H.J. Lu <hjl.tools@gmail.com>
18368
18369 PR target/95660
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.
18373
18374 2020-06-24 H.J. Lu <hjl.tools@gmail.com>
18375
18376 PR target/95774
18377 * common/config/i386/cpuinfo.h (get_intel_cpu): Add Cooper Lake
18378 detection with AVX512BF16.
18379
18380 2020-06-24 H.J. Lu <hjl.tools@gmail.com>
18381
18382 PR target/95843
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.
18404
18405 2020-06-24 H.J. Lu <hjl.tools@gmail.com>
18406
18407 PR target/95259
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.
18455
18456 2020-06-24 H.J. Lu <hjl.tools@gmail.com>
18457
18458 PR target/95842
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.
18476
18477 2020-06-24 Richard Biener <rguenther@suse.de>
18478
18479 * tree-vectorizer.h (vect_find_first_scalar_stmt_in_slp):
18480 Declare.
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
18488 first scalar stmt.
18489 * tree-vect-stmts.c (vectorizable_load): Do what the comment
18490 says and use vect_find_first_scalar_stmt_in_slp.
18491
18492 2020-06-24 Richard Biener <rguenther@suse.de>
18493
18494 PR tree-optimization/95856
18495 * tree-vectorizer.c (vect_stmt_dominates_stmt_p): Honor
18496 region marker -1u.
18497
18498 2020-06-24 Jakub Jelinek <jakub@redhat.com>
18499
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).
18503
18504 2020-06-24 Jakub Jelinek <jakub@redhat.com>
18505
18506 * omp-low.c (lower_omp_for): Fix two pastos.
18507
18508 2020-06-24 Martin Liska <mliska@suse.cz>
18509
18510 * optc-save-gen.awk: Compare string options in cl_optimization_compare
18511 by strcmp.
18512
18513 2020-06-23 Aaron Sawdey <acsawdey@linux.ibm.com>
18514
18515 * config.gcc: Identify power10 as a 64-bit processor and as valid
18516 for --with-cpu and --with-tune.
18517
18518 2020-06-23 David Edelsohn <dje.gcc@gmail.com>
18519
18520 * Makefile.in (LANG_MAKEFRAGS): Same.
18521 (tmake_file): Use -include.
18522 (xmake_file): Same.
18523
18524 2020-06-23 Michael Meissner <meissner@linux.ibm.com>
18525
18526 * REVISION: Delete file meant for a private branch.
18527
18528 2020-06-23 Andre Vieira <andre.simoesdiasvieira@arm.com>
18529
18530 PR target/95646
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'.
18533
18534 2020-06-23 Alexandre Oliva <oliva@adacore.com>
18535
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
18542 save_temps.
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.
18548
18549 2020-06-23 Michael Meissner <meissner@linux.ibm.com>
18550
18551 * REVISION: New file.
18552
18553 2020-06-22 Segher Boessenkool <segher@kernel.crashing.org>
18554
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
18562 TARGET_FUTURE.
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
18579 PROCESSOR_FUTURE.
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
18597 "future.md".
18598 * config/rs6000/rs6000.opt (mfuture): Delete.
18599 (mpower10): New.
18600 * config/rs6000/t-rs6000: Use "power10.md", not "future.md".
18601 * config/rs6000/vsx.md: Use TARGET_POWER10, not TARGET_FUTURE.
18602
18603 2020-06-22 Richard Sandiford <richard.sandiford@arm.com>
18604
18605 * coretypes.h (first_type): Delete.
18606 * recog.h (insn_gen_fn::operator()): Go back to using a decltype.
18607
18608 2020-06-22 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
18609
18610 * doc/sourcebuild.texi (arm_v8_1m_mve_fp_ok): Add item.
18611 (arm_mve_hw): Likewise.
18612
18613 2020-06-22 H.J. Lu <hjl.tools@gmail.com>
18614
18615 PR target/95791
18616 * config/i386/i386.c (ix86_dirflag_mode_needed): Skip
18617 EXT_REX_SSE_REG_P.
18618
18619 2020-06-22 Richard Biener <rguenther@suse.de>
18620
18621 PR tree-optimization/95770
18622 * tree-vect-slp.c (vect_schedule_slp_instance): Also consider
18623 external defs.
18624
18625 2020-06-22 Andrew Stubbs <ams@codesourcery.com>
18626
18627 * config/gcn/gcn.c (gcn_function_arg): Disallow vector arguments.
18628 (gcn_return_in_memory): Return vectors in memory.
18629
18630 2020-06-22 Jakub Jelinek <jakub@redhat.com>
18631
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.
18635
18636 2020-06-22 Kito Cheng <kito.cheng@sifive.com>
18637
18638 * config/riscv/riscv.h (ASM_SPEC): Remove riscv_expand_arch call.
18639 (DRIVER_SELF_SPECS): New.
18640
18641 2020-06-22 Kito Cheng <kito.cheng@sifive.com>
18642
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.
18647
18648 2020-06-21 David Edelsohn <dje.gcc@gmail.com>
18649
18650 * config.gcc: Use t-aix64, biarch64 and default64 for cpu_is_64bit.
18651 * config/rs6000/aix72.h (ASM_SPEC): Remove aix64 option.
18652 (ASM_SPEC32): New.
18653 (ASM_SPEC64): New.
18654 (ASM_CPU_SPEC): Remove vsx and altivec options.
18655 (CPP_SPEC_COMMON): Rename from CPP_SPEC.
18656 (CPP_SPEC32): New.
18657 (CPP_SPEC64): New.
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.
18661 (LIB_SPEC32): New.
18662 (LIB_SPEC64): New.
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.
18668 (CPP_SPEC): Same.
18669 (CPLUSPLUS_CPP_SPEC): Same.
18670 (LIB_SPEC): Same.
18671 (LINK_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.
18675
18676 2020-06-21 Peter Bergner <bergner@linux.ibm.com>
18677
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
18709 RS6000_BTM_MMA.
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.
18772
18773 2020-06-21 Peter Bergner <bergner@linux.ibm.com>
18774 Michael Meissner <meissner@linux.ibm.com>
18775
18776 * config/rs6000/mma.md: New file.
18777 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
18778 __MMA__ for mma.
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
18782 OPTION_MASK_MMA.
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
18808 constants.
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
18812 move instructions.
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.
18836
18837 2020-06-20 Bin Cheng <bin.cheng@linux.alibaba.com>
18838
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.
18843
18844 2020-06-19 Tobias Burnus <tobias@codesourcery.com>
18845
18846 * config/gcn/gcn.c (gcn_related_vector_mode): Add ARG_UNUSED.
18847 (output_file_start): Use const 'char *'.
18848
18849 2020-06-19 Przemyslaw Wirkus <Przemyslaw.Wirkus@arm.com>
18850
18851 PR tree-optimization/94880
18852 * match.pd (A | B) - B -> (A & ~B): New simplification.
18853
18854 2020-06-19 Richard Biener <rguenther@suse.de>
18855
18856 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Adjust
18857 for lane permutations.
18858
18859 2020-06-19 Richard Biener <rguenther@suse.de>
18860
18861 PR tree-optimization/95761
18862 * tree-vect-slp.c (vect_schedule_slp_instance): Walk all
18863 vectorized stmts for finding the last one.
18864
18865 2020-06-18 Felix Yang <felix.yang@huawei.com>
18866
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.
18871
18872 2020-06-18 Uroš Bizjak <ubizjak@gmail.com>
18873
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
18892 register_operand.
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
18899 register_operand.
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.
18942
18943 2020-06-18 Martin Sebor <msebor@redhat.com>
18944
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
18949 directly here.
18950
18951 2020-06-18 Martin Liska <mliska@suse.cz>
18952
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.
18962
18963 2020-06-18 Martin Liska <mliska@suse.cz>
18964
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.
18971
18972 2020-06-18 Richard Biener <rguenther@suse.de>
18973
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.
18978
18979 2020-06-18 Martin Liska <mliska@suse.cz>
18980
18981 * tree-ssa-reassoc.c (ovce_extract_ops): Replace *vcond with
18982 vcond as we check for NULL pointer.
18983
18984 2020-06-18 Tobias Burnus <tobias@codesourcery.com>
18985
18986 * gimple-pretty-print.c (dump_binary_rhs): Use braces to
18987 silence empty-body warning with gcc_fallthrough.
18988
18989 2020-06-18 Jakub Jelinek <jakub@redhat.com>
18990
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.
18995
18996 2020-06-18 Jakub Jelinek <jakub@redhat.com>
18997
18998 PR target/95713
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.
19002
19003 2020-06-18 Richard Biener <rguenther@suse.de>
19004
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
19009 defer output.
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.
19014
19015 2020-06-18 Richard Biener <rguenther@suse.de>
19016
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
19031 permutation here.
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.
19042
19043 2020-06-18 Martin Liska <mliska@suse.cz>
19044
19045 * tree-vect-generic.c (expand_vector_condition): Check
19046 for gassign before inspecting RHS.
19047
19048 2020-06-17 Thomas Schwinge <thomas@codesourcery.com>
19049
19050 * gimplify.c (omp_notice_threadprivate_variable)
19051 (omp_default_clause, omp_notice_variable): 'inform' after 'error'
19052 diagnostic. Adjust all users.
19053
19054 2020-06-17 Thomas Schwinge <thomas@codesourcery.com>
19055
19056 * hsa-gen.c (gen_hsa_insns_for_call): Move 'function_decl ==
19057 NULL_TREE' check earlier.
19058
19059 2020-06-17 Forrest Timour <forrest.timour@gmail.com>
19060
19061 * doc/extend.texi (attribute access): Fix a typo.
19062
19063 2020-06-17 Bin Cheng <bin.cheng@linux.alibaba.com>
19064 Kaipeng Zhou <zhoukaipeng3@huawei.com>
19065
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.
19069
19070 2020-06-17 Richard Sandiford <richard.sandiford@arm.com>
19071
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.
19075
19076 2020-06-17 Andreas Krebbel <krebbel@linux.ibm.com>
19077
19078 * config/s390/s390.c (s390_fix_long_loop_prediction): Exit early
19079 for PARALLELs.
19080
19081 2020-06-17 Richard Biener <rguenther@suse.de>
19082
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.
19092
19093 2020-06-17 Richard Biener <rguenther@suse.de>
19094
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.
19098
19099 2020-06-17 Martin Liska <mliska@suse.cz>
19100
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
19143 first argument.
19144 * gimple-isel.cc: New file.
19145
19146 2020-06-17 Andrew Stubbs <ams@codesourcery.com>
19147
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
19163 PROCESSOR_VEGA20.
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.
19170
19171 2020-06-17 Martin Liska <mliska@suse.cz>
19172
19173 * gcov-dump.c (print_version): Collapse lisence header to 2 lines
19174 in --version.
19175 * gcov-tool.c (print_version): Likewise.
19176 * gcov.c (print_version): Likewise.
19177
19178 2020-06-17 liuhongt <hongtao.liu@intel.com>
19179
19180 PR target/95524
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.
19187
19188 2020-06-16 Aldy Hernandez <aldyh@redhat.com>
19189
19190 PR tree-optimization/95649
19191 * tree-ssa-propagate.c (propagate_into_phi_args): Do not propagate unless
19192 value is a constant.
19193
19194 2020-06-16 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
19195
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
19199 stays the same.
19200 * config/s390/s390.h (TARGET_VECTOR_LOADSTORE_ALIGNMENT_HINTS): Define
19201 macro.
19202 * configure: Regenerate.
19203 * configure.ac: Check HAVE_AS_VECTOR_LOADSTORE_ALIGNMENT_HINTS_ON_Z13.
19204
19205 2020-06-16 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
19206
19207 * config/arm/arm_mve.h (__arm_vaddq_m_n_s8): Correct the intrinsic
19208 arguments.
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.
19215
19216 2020-06-16 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
19217
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.
19232
19233 2020-06-16 Jakub Jelinek <jakub@redhat.com>
19234
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
19240 referencing that.
19241 * omp-general.h (struct omp_for_data_loop): Add m1, m2 and outer
19242 members.
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
19249 non-rectangular.
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
19255 OpenMP loops.
19256
19257 2020-06-16 Richard Biener <rguenther@suse.de>
19258
19259 PR middle-end/95690
19260 * varasm.c (build_constant_desc): Remove set_mem_attributes call.
19261
19262 2020-06-16 Kito Cheng <kito.cheng@sifive.com>
19263
19264 PR target/95683
19265 * config/riscv/riscv.c (riscv_gpr_save_operation_p): Remove
19266 assertion and turn it into a early exit check.
19267
19268 2020-06-15 Eric Botcazou <ebotcazou@adacore.com>
19269
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.
19277
19278 2020-06-15 Eric Botcazou <ebotcazou@adacore.com>
19279
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.
19283
19284 2020-06-15 Max Filippov <jcmvbkbc@gmail.com>
19285
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.
19292
19293 2020-06-15 Max Filippov <jcmvbkbc@gmail.com>
19294
19295 * config/xtensa/elf.h (ASM_SPEC, LINK_SPEC): Pass ABI switch to
19296 assembler/linker.
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
19302 macro.
19303 (TARGET_WINDOWED_ABI): Redefine to xtensa_windowed_abi.
19304 * config/xtensa/xtensa.opt (xtensa_windowed_abi): New target
19305 option variable.
19306 (mabi=call0, mabi=windowed): New options.
19307 * doc/invoke.texi: Document new -mabi= Xtensa-specific options.
19308
19309 2020-06-15 Max Filippov <jcmvbkbc@gmail.com>
19310
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.
19321
19322 2020-06-15 Felix Yang <felix.yang@huawei.com>
19323
19324 * tree-vect-data-refs.c (vect_verify_datarefs_alignment): Rename
19325 parameter to loop_vinfo and update uses. Use LOOP_VINFO_DATAREFS
19326 when possible.
19327 (vect_analyze_data_refs_alignment): Likewise, and use LOOP_VINFO_DDRS
19328 when possible.
19329 * tree-vect-loop.c (vect_dissolve_slp_only_groups): Use
19330 LOOP_VINFO_DATAREFS when possible.
19331 (update_epilogue_loop_vinfo): Likewise.
19332
19333 2020-06-15 Kito Cheng <kito.cheng@sifive.com>
19334
19335 * config/riscv/riscv.c (riscv_gen_gpr_save_insn): Change type to
19336 unsigned for i.
19337 (riscv_gpr_save_operation_p): Change type to unsigned for i and
19338 len.
19339
19340 2020-06-15 Hongtao Liu <hongtao.liu@intel.com>
19341
19342 PR target/95488
19343 * config/i386/i386-expand.c (ix86_expand_vecmul_qihi): New
19344 function.
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.
19350
19351 2020-06-12 Marco Elver <elver@google.com>
19352
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.
19358
19359 2020-06-12 Felix Yang <felix.yang@huawei.com>
19360
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.
19368
19369 2020-06-12 Richard Biener <rguenther@suse.de>
19370
19371 PR tree-optimization/95633
19372 * tree-vect-stmts.c (vectorizable_condition): Properly
19373 guard the vec_else_clause access with EXTRACT_LAST_REDUCTION.
19374
19375 2020-06-12 Martin Liška <mliska@suse.cz>
19376
19377 * cgraphunit.c (process_symver_attribute): Wrap weakref keyword.
19378 * dbgcnt.c (dbg_cnt_set_limit_by_index): Do not print extra new
19379 line.
19380 * lto-wrapper.c (merge_and_complain): Wrap option names.
19381
19382 2020-06-12 Kewen Lin <linkw@gcc.gnu.org>
19383
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
19399 out from ...
19400 (vect_analyze_loop_costing): ... this.
19401 (_loop_vec_info::_loop_vec_info): Rename mask_compare_type to
19402 compare_type.
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.
19427
19428 2020-06-12 Richard Sandiford <richard.sandiford@arm.com>
19429
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.
19437
19438 2020-06-12 H.J. Lu <hjl.tools@gmail.com>
19439
19440 PR target/93492
19441 * config/i386/i386-features.c (rest_of_insert_endbranch):
19442 Renamed to ...
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
19473 needed.
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.
19480
19481 2020-06-11 Martin Liska <mliska@suse.cz>
19482
19483 * config/rs6000/rs6000.c (rs6000_density_test): Fix GNU coding
19484 style.
19485
19486 2020-06-11 Martin Liska <mliska@suse.cz>
19487
19488 PR target/95627
19489 * config/rs6000/rs6000.c (rs6000_density_test): Skip debug
19490 statements.
19491
19492 2020-06-11 Martin Liska <mliska@suse.cz>
19493 Jakub Jelinek <jakub@redhat.com>
19494
19495 PR sanitizer/95634
19496 * asan.c (asan_emit_stack_protection): Fix emission for ilp32
19497 by using Pmode instead of ptr_mode.
19498
19499 2020-06-11 Kewen Lin <linkw@gcc.gnu.org>
19500
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
19512 things.
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.
19523
19524 2020-06-11 Kewen Lin <linkw@gcc.gnu.org>
19525
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.
19539
19540 2020-06-11 Kewen Lin <linkw@gcc.gnu.org>
19541
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.
19559
19560 2020-06-11 Martin Liska <mliska@suse.cz>
19561
19562 * optc-save-gen.awk: Quote error string.
19563
19564 2020-06-11 Alexandre Oliva <oliva@adacore.com>
19565
19566 * print-rtl.c (print_mem_expr): Enable TDF_SLIM in dump_flags.
19567
19568 2020-06-11 Kito Cheng <kito.cheng@sifive.com>
19569
19570 * config/riscv/riscv-protos.h (riscv_output_gpr_save): Remove.
19571 * config/riscv/riscv-sr.c (riscv_sr_match_prologue): Update
19572 value.
19573 * config/riscv/riscv.c (riscv_output_gpr_save): Remove.
19574 * config/riscv/riscv.md (gpr_save): Update output asm pattern.
19575
19576 2020-06-11 Kito Cheng <kito.cheng@sifive.com>
19577
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.
19597
19598 2020-06-10 Martin Sebor <msebor@redhat.com>
19599
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
19609 check_access.
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.
19625
19626 2020-06-10 Richard Biener <rguenther@suse.de>
19627
19628 * tree-vect-loop.c (vect_determine_vectorization_factor):
19629 Skip debug stmts.
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):
19639 Likewise.
19640
19641 2020-06-10 Richard Biener <rguenther@suse.de>
19642
19643 PR tree-optimization/95576
19644 * tree-vect-slp.c (vect_slp_bb): Skip leading debug stmts.
19645
19646 2020-06-10 Haijian Zhang <z.zhanghaijian@huawei.com>
19647
19648 PR target/95523
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.
19655
19656 2020-06-10 Richard Biener <rguenther@suse.de>
19657
19658 * tree-vectorizer.h (_slp_tree::vec_stmts): Make it a vector
19659 of gimple * stmts.
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
19704 stmt_vec_info_ro.
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.
19708
19709 2020-06-10 Aldy Hernandez <aldyh@redhat.com>
19710
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
19722 post_fold_bb.
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
19737 output.
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.
19742
19743 2020-06-10 Martin Liska <mliska@suse.cz>
19744
19745 PR sanitizer/94910
19746 * asan.c (asan_emit_stack_protection): Emit
19747 also **SavedFlagPtr(FakeStack, class_id) = 0 in order to release
19748 a stack frame.
19749
19750 2020-06-10 Tamar Christina <tamar.christina@arm.com>
19751
19752 * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Adjust costs for mul.
19753
19754 2020-06-10 Richard Biener <rguenther@suse.de>
19755
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
19767 from overload.
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
19791 sanity checks.
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.
19806
19807 2020-06-10 Qian Chao <qianchao9@huawei.com>
19808
19809 PR tree-optimization/95569
19810 * trans-mem.c (expand_assign_tm): Ensure that rtmp is marked TREE_ADDRESSABLE.
19811
19812 2020-06-10 Martin Liska <mliska@suse.cz>
19813
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.
19817
19818 2020-06-09 Michael Meissner <meissner@linux.ibm.com>
19819
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
19825 MMA HWCAP2 bits.
19826 * config/rs6000/rs6000.c (CLONE_ISA_3_1): New clone support.
19827 (rs6000_clone_map): Add 'future' system target_clones support.
19828
19829 2020-06-09 Michael Kuhn <gcc@ikkoku.de>
19830
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
19835 AC_SUBST.
19836 * configure: Rebuilt.
19837
19838 2020-06-09 Jason Merrill <jason@redhat.com>
19839
19840 PR c++/95552
19841 * tree.c (walk_tree_1): Call func on the TYPE_DECL of a DECL_EXPR.
19842
19843 2020-06-09 Marco Elver <elver@google.com>
19844
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.
19861
19862 2020-06-09 Richard Biener <rguenther@suse.de>
19863
19864 * tree-vect-loop.c (vectorizable_induction): Remove dead code.
19865
19866 2020-06-09 Tobias Burnus <tobias@codesourcery.com>
19867
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.
19871
19872 2020-06-09 Richard Biener <rguenther@suse.de>
19873
19874 * tree-vect-stmts.c (vect_transform_stmt): Remove dead code.
19875
19876 2020-06-09 Martin Liska <mliska@suse.cz>
19877
19878 * gcov-dump.c (print_usage): Fix spacing for --raw option
19879 in --help.
19880
19881 2020-06-09 Martin Liska <mliska@suse.cz>
19882
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.
19888
19889 2020-06-09 Joe Ramsay <joe.ramsay@arm.com>
19890
19891 * config/aarch64/aarch64-sve.md (<optab><mode>2): Add support for
19892 unpacked vectors.
19893 (@aarch64_pred_<optab><mode>): Add support for unpacked vectors.
19894 (@aarch64_bic<mode>): Enable unpacked BIC.
19895 (*bic<mode>3): Enable unpacked BIC.
19896
19897 2020-06-09 Martin Liska <mliska@suse.cz>
19898
19899 PR gcov-profile/95365
19900 * doc/gcov.texi: Compile and link one example in 2 steps.
19901
19902 2020-06-09 Jakub Jelinek <jakub@redhat.com>
19903
19904 PR tree-optimization/95527
19905 * match.pd (__builtin_ffs (X) cmp CST): New optimizations.
19906
19907 2020-06-09 Michael Meissner <meissner@linux.ibm.com>
19908
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
19914 MMA HWCAP2 bits.
19915 * config/rs6000/rs6000.c (CLONE_ISA_3_1): New clone support.
19916 (rs6000_clone_map): Add 'future' system target_clones support.
19917
19918 2020-06-08 Tobias Burnus <tobias@codesourcery.com>
19919
19920 PR lto/94848
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.
19926
19927 2020-06-08 Jason Merrill <jason@redhat.com>
19928
19929 * aclocal.m4: Remove ax_cxx_compile_stdcxx.m4.
19930 * configure.ac: Remove AX_CXX_COMPILE_STDCXX.
19931 * configure: Regenerate.
19932
19933 2020-06-08 Martin Sebor <msebor@redhat.com>
19934
19935 * postreload.c (reload_cse_simplify_operands): Clear first array element
19936 before using it. Assert a precondition.
19937
19938 2020-06-08 Jakub Jelinek <jakub@redhat.com>
19939
19940 PR target/95528
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.
19944
19945 2020-06-08 Tamar Christina <tamar.christina@arm.com>
19946
19947 * config/aarch64/aarch64.c (aarch64_layout_frame): Expand comments.
19948
19949 2020-06-08 Christophe Lyon <christophe.lyon@linaro.org>
19950
19951 * config/arm/predicates.md (vfp_register_operand): Use VFP_HI_REGS
19952 instead of VFP_REGS.
19953
19954 2020-06-08 Martin Liska <mliska@suse.cz>
19955
19956 * config/rs6000/vector.md: Replace FAIL with gcc_unreachable
19957 in all vcond* patterns.
19958
19959 2020-06-08 Christophe Lyon <christophe.lyon@linaro.org>
19960
19961 * common/config/arm/arm-common.c (INCLUDE_ALGORITHM):
19962 Define. No longer include <algorithm>.
19963
19964 2020-06-07 Roger Sayle <roger@nextmovesoftware.com>
19965
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.
19973
19974 2020-06-07 Jiufu Guo <guojiufu@linux.ibm.com>
19975
19976 PR target/95018
19977 * config/rs6000/rs6000.c (rs6000_option_override_internal):
19978 Override flag_cunroll_grow_size.
19979
19980 2020-06-07 Jiufu Guo <guojiufu@linux.ibm.com>
19981
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.
19986
19987 2020-06-06 Jan Hubicka <hubicka@ucw.cz>
19988
19989 PR lto/95548
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.
19993
19994 2020-06-06 Alexandre Oliva <oliva@adacore.com>
19995
19996 PR driver/95456
19997 * gcc.c (do_spec_1): Don't call memcpy (_, NULL, 0).
19998
19999 2020-06-05 Thomas Schwinge <thomas@codesourcery.com>
20000 Julian Brown <julian@codesourcery.com>
20001
20002 * gimplify.c (gimplify_adjust_omp_clauses): Remove
20003 'GOMP_MAP_STRUCT' mapping from OpenACC 'exit data' directives.
20004
20005 2020-06-05 Richard Biener <rguenther@suse.de>
20006
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.
20014
20015 2020-06-05 Felix Yang <felix.yang@huawei.com>
20016
20017 PR target/95254
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.
20022
20023 2020-06-05 Jakub Jelinek <jakub@redhat.com>
20024
20025 PR target/95535
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.
20030
20031 2020-06-05 Jonathan Wakely <jwakely@redhat.com>
20032
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.
20039 (occ_new): Remove.
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
20043 from the pool.
20044
20045 2020-06-05 Richard Biener <rguenther@suse.de>
20046
20047 PR middle-end/95493
20048 * cfgexpand.c (expand_debug_expr): Avoid calling
20049 set_mem_attributes_minus_bitpos when we were expanding
20050 an SSA name.
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.
20055
20056 2020-06-05 Lili Cui <lili.cui@intel.com>
20057
20058 PR target/95525
20059 * config/i386/i386.h (PTA_WAITPKG): Change bitmask value.
20060
20061 2020-06-04 Martin Sebor <msebor@redhat.com>
20062
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.
20085
20086 2020-06-04 Vladimir Makarov <vmakarov@redhat.com>
20087
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.
20092
20093 2020-06-04 Richard Biener <rguenther@suse.de>
20094
20095 * config/aarch64/aarch64.c (aarch64_gimplify_va_arg_expr):
20096 Ensure that tmp_ha is marked TREE_ADDRESSABLE.
20097
20098 2020-06-04 Martin Jambor <mjambor@suse.cz>
20099
20100 PR ipa/95113
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
20104 new function.
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
20107 fun.
20108
20109 2020-06-04 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
20110
20111 PR target/94735
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
20137 stores.
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.
20158
20159 2020-06-04 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
20160
20161 * config/arm/arm_mve.h (__arm_vbicq_n_u16): Correct the intrinsic
20162 arguments.
20163 (__arm_vbicq_n_s16): Likewise.
20164 (__arm_vbicq_n_u32): Likewise.
20165 (__arm_vbicq_n_s32): Likewise.
20166 (__arm_vbicq): Modify polymorphic variant.
20167
20168 2020-06-04 Richard Biener <rguenther@suse.de>
20169
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
20175 use ...
20176 (vect_get_slp_defs): ... here.
20177 (vect_get_slp_vect_def): New function.
20178
20179 2020-06-04 Richard Biener <rguenther@suse.de>
20180
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.
20197
20198 2020-06-04 Richard Biener <rguenther@suse.de>
20199
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
20214 and masked stores.
20215 * tree-vect-loop.c (vectorizable_reduction): Deal with
20216 COND_EXPR representation ugliness.
20217
20218 2020-06-04 Hongtao Liu <hongtao.liu@inte.com>
20219
20220 PR target/95254
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.
20230
20231 2020-06-04 Hao Liu <hliu@os.amperecomputing.com>
20232
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.
20241
20242 2020-06-04 Andreas Schwab <schwab@suse.de>
20243
20244 PR target/95154
20245 * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Call assemble_external.
20246
20247 2020-06-04 Hongtao.liu <hongtao.liu@intel.com>
20248
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.
20252
20253 2020-06-03 Vitor Guidi <vitor.guidi@usp.br>
20254
20255 * match.pd (tanh/sinh -> 1/cosh): New simplification.
20256
20257 2020-06-03 Aaron Sawdey <acsawdey@linux.ibm.com>
20258
20259 PR target/95347
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.
20264
20265 2020-06-03 Jan Hubicka <hubicka@ucw.cz>
20266
20267 * ipa-devirt.c: Include data-streamer.h, lto-streamer.h and
20268 streamer-hooks.h.
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
20287 TYPE_VALUES.
20288 (hash_tree): Likewise.
20289 * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers):
20290 Likewise.
20291 * tree-streamer-out.c (write_ts_type_non_common_tree_pointers):
20292 Likewise.
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.
20296
20297 2020-06-03 Romain Naour <romain.naour@gmail.com>
20298
20299 * Makefile.in (SELFTEST_DEPS): Move before including language makefile
20300 fragments.
20301
20302 2020-06-03 Richard Biener <rguenther@suse.de>
20303
20304 PR tree-optimization/95487
20305 * tree-vect-stmts.c (vectorizable_store): Use a truth type
20306 for the scatter mask.
20307
20308 2020-06-03 Richard Biener <rguenther@suse.de>
20309
20310 PR tree-optimization/95495
20311 * tree-vect-slp.c (vect_slp_analyze_node_operations): Use
20312 SLP_TREE_REPRESENTATIVE in the shift assertion.
20313
20314 2020-06-03 Tom Tromey <tromey@adacore.com>
20315
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.
20323
20324 2020-06-03 Richard Biener <rguenther@suse.de>
20325
20326 * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Loop over
20327 the cost vector to unset the visited flag on stmts.
20328
20329 2020-06-03 Tobias Burnus <tobias@codesourcery.com>
20330
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.
20338
20339 2020-06-03 Jan Hubicka <jh@suse.cz>
20340
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.
20349
20350 2020-06-02 Felix Yang <felix.yang@huawei.com>
20351
20352 PR target/95459
20353 * config/aarch64/aarch64.c (aarch64_short_vector_p):
20354 Leave later code to report an error if SVE is disabled.
20355
20356 2020-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20357
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.
20361
20362 2020-06-02 Aaron Sawdey <acsawdey@linux.ibm.com>
20363
20364 PR target/95347
20365 * config/rs6000/rs6000.c (prefixed_store_p): Add special case
20366 for stfs.
20367 (is_stfs_insn): New helper function.
20368
20369 2020-06-02 Jan Hubicka <jh@suse.cz>
20370
20371 * lto-streamer-in.c (stream_read_tree_ref): Simplify streaming of
20372 references.
20373 * lto-streamer-out.c (stream_write_tree_ref): Likewise.
20374
20375 2020-06-02 Andrew Stubbs <ams@codesourcery.com>
20376
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.
20380
20381 2020-06-02 Eric Botcazou <ebotcazou@adacore.com>
20382
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.
20386
20387 2020-06-02 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
20388
20389 * config/s390/s390.c (print_operand): Emit vector alignment
20390 hints for z13.
20391
20392 2020-06-02 Martin Liska <mliska@suse.cz>
20393
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
20411 of counters.
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
20423 to n_counters.
20424 * doc/gcov-dump.texi: Document new -r option.
20425
20426 2020-06-02 Iain Buclaw <ibuclaw@gdcproject.org>
20427
20428 PR target/95420
20429 * config.gcc (arm-wrs-vxworks7*): Set default cpu to generic-armv7-a.
20430
20431 2020-06-01 Jeff Law <law@torsion.usersys.redhat.com>
20432
20433 * lower-subreg.c (resolve_simple_move): If simplify_gen_subreg_concatn
20434 returns (const_int 0) for the destination, then emit nothing.
20435
20436 2020-06-01 Jan Hubicka <hubicka@ucw.cz>
20437
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.
20449
20450 2020-06-01 Jan Hubicka <hubicka@ucw.cz>
20451
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.
20476
20477 2020-06-01 Feng Xue <fxue@os.amperecomputing.com>
20478
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.
20483
20484 2020-06-01 Aldy Hernandez <aldyh@redhat.com>
20485
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.
20490
20491 2020-06-01 Aldy Hernandez <aldyh@redhat.com>
20492
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.
20499
20500 2020-06-01 Feng Xue <fxue@os.amperecomputing.com>
20501
20502 PR ipa/93429
20503 * ipa-cp.c (propagate_aggs_across_jump_function): Check aggregate
20504 lattice for simple pass-through by-ref argument.
20505
20506 2020-05-31 Jeff Law <law@redhat.com>
20507
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
20513 as needed.
20514
20515 2020-05-31 Jan Hubicka <jh@suse.cz>
20516
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
20539
20540 2020-05-31 Jakub Jelinek <jakub@redhat.com>
20541
20542 PR middle-end/95052
20543 * expr.c (store_expr): For shortedned_string_cst, ensure temp has
20544 BLKmode.
20545
20546 2020-05-31 Jeff Law <law@redhat.com>
20547
20548 * config/h8300/jumpcall.md (brabs, brabc): Disable patterns.
20549
20550 2020-05-31 Jim Wilson <jimw@sifive.com>
20551
20552 * config/riscv/riscv.md (zero_extendsidi2_shifted): New.
20553
20554 2020-05-30 Jonathan Yong <10walls@gmail.com>
20555
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.
20560
20561 2020-05-29 Segher Boessenkool <segher@kernel.crashing.org>
20562
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.
20571
20572 2020-05-29 Jan Hubicka <jh@suse.cz>
20573
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.
20633
20634 2020-05-29 H.J. Lu <hjl.tools@gmail.com>
20635
20636 PR bootstrap/95413
20637 * configure: Regenerated.
20638
20639 2020-05-29 Andrew Stubbs <ams@codesourcery.com>
20640
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.
20645
20646 2020-05-29 Richard Biener <rguenther@suse.de>
20647
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
20652 node gathering.
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.
20664
20665 2020-05-29 Richard Biener <rguenther@suse.de>
20666
20667 PR tree-optimization/95356
20668 * tree-vect-stmts.c (vectorizable_shift): Do in-place SLP
20669 node hacking during analysis.
20670
20671 2020-05-29 Jan Hubicka <hubicka@ucw.cz>
20672
20673 PR lto/95362
20674 * lto-streamer-out.c (lto_output_tree): Disable redundant streaming.
20675
20676 2020-05-29 Richard Biener <rguenther@suse.de>
20677
20678 PR tree-optimization/95403
20679 * tree-vect-stmts.c (vect_init_vector_1): Guard against NULL
20680 stmt_vinfo.
20681
20682 2020-05-29 Jakub Jelinek <jakub@redhat.com>
20683
20684 PR middle-end/95315
20685 * omp-general.c (omp_resolve_declare_variant): Fix up addition of
20686 declare variant cgraph node removal callback.
20687
20688 2020-05-29 Jakub Jelinek <jakub@redhat.com>
20689
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.
20694
20695 2020-05-29 Richard Biener <rguenther@suse.de>
20696
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.
20701
20702 2020-05-29 Joe Ramsay <joe.ramsay@arm.com>
20703
20704 * config/aarch64/aarch64-sve.md (<LOGICAL:optab><mode>3): Add support
20705 for unpacked EOR, ORR, AND.
20706
20707 2020-05-28 Nicolas Bértolo <nicolasbertolo@gmail.com>
20708
20709 * Makefile.in: don't look for libiberty in the "pic" subdirectory
20710 when building for Mingw. Add dependency on xgcc with the proper
20711 extension.
20712
20713 2020-05-28 Jeff Law <law@redhat.com>
20714
20715 * config/h8300/logical.md (bclrhi_msx): Remove pattern.
20716
20717 2020-05-28 Jeff Law <law@redhat.com>
20718
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.
20722
20723 2020-05-28 Eric Botcazou <ebotcazou@adacore.com>
20724
20725 * gimple-ssa-store-merging.c (merged_store_group::can_be_merged_into):
20726 Fix off-by-one error.
20727
20728 2020-05-28 Richard Sandiford <richard.sandiford@arm.com>
20729
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.
20734
20735 2020-05-28 Richard Sandiford <richard.sandiford@arm.com>
20736
20737 PR testsuite/95361
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.
20741
20742 2020-05-28 Richard Biener <rguenther@suse.de>
20743
20744 * tree-vect-slp.c (vect_prologue_cost_for_slp): Remove
20745 case for !SLP_TREE_VECTYPE.
20746 (vect_slp_analyze_node_operations): Adjust.
20747
20748 2020-05-28 Richard Biener <rguenther@suse.de>
20749
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.
20763
20764 2020-05-28 Richard Biener <rguenther@suse.de>
20765
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.
20770
20771 2020-05-28 Richard Biener <rguenther@suse.de>
20772
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
20777 again.
20778
20779 2020-05-28 Andrea Corallo <andrea.corallo@arm.com>
20780
20781 * config/arm/arm.c (mve_vector_mem_operand): Fix unwanted
20782 fall-throughs.
20783
20784 2020-05-28 Martin Liska <mliska@suse.cz>
20785
20786 PR web/95380
20787 * doc/invoke.texi: Add missing params, remove max-once-peeled-insns and
20788 rename ipcp-unit-growth to ipa-cp-unit-growth.
20789
20790 2020-05-28 Hongtao Liu <hongtao.liu@intel.com>
20791
20792 * config/i386/sse.md (*avx512vl_<code>v2div2qi2_store_1): Rename
20793 from *avx512vl_<code>v2div2qi_store and refine memory size of
20794 the pattern.
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.
20828
20829 2020-05-28 Dong JianQiang <dongjianqiang2@huawei.com>
20830
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.
20835
20836 2020-05-28 Max Filippov <jcmvbkbc@gmail.com>
20837
20838 * config/xtensa/xtensa.c (xtensa_delegitimize_address): New
20839 function.
20840 (TARGET_DELEGITIMIZE_ADDRESS): New macro.
20841
20842 2020-05-27 Eric Botcazou <ebotcazou@adacore.com>
20843
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.
20859
20860 2020-05-27 Uroš Bizjak <ubizjak@gmail.com>
20861
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):
20868 Update for rename.
20869
20870 2020-05-27 Uroš Bizjak <ubizjak@gmail.com>
20871
20872 PR target/95355
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.
20877
20878 2020-05-27 Uroš Bizjak <ubizjak@gmail.com>
20879
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):
20886 Handle E_V2SFmode.
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.
20891
20892 2020-05-27 Richard Biener <rguenther@suse.de>
20893
20894 PR tree-optimization/95295
20895 * tree-ssa-loop-im.c (sm_seq_valid_bb): Fix sinking after
20896 merging stores from paths.
20897
20898 2020-05-27 Richard Biener <rguenther@suse.de>
20899
20900 PR tree-optimization/95356
20901 * tree-vect-stmts.c (vectorizable_shift): Adjust vector
20902 type for the shift operand.
20903
20904 2020-05-27 Richard Biener <rguenther@suse.de>
20905
20906 PR tree-optimization/95335
20907 * tree-vect-slp.c (vect_slp_analyze_node_operations): Reset
20908 lvisited for nodes made external.
20909
20910 2020-05-27 Richard Biener <rguenther@suse.de>
20911
20912 * dump-context.h (debug_dump_context): New class.
20913 (dump_context): Make it friend.
20914 * dumpfile.c (debug_dump_context::debug_dump_context):
20915 Implement.
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
20921 use that.
20922 (vect_analyze_slp_instance): Adjust.
20923
20924 2020-05-27 Jakub Jelinek <jakub@redhat.com>
20925
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.
20931
20932 2020-05-27 Jeff Law <law@redhat.com>
20933
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.
20937
20938 2020-05-26 Uroš Bizjak <ubizjak@gmail.com>
20939
20940 * config/i386/mmx.md (mmx_pswapdv2si2): Add SSE2 alternative.
20941
20942 2020-05-26 Tobias Burnus <tobias@codesourcery.com>
20943
20944 PR ipa/95320
20945 * ipa-utils.h (odr_type_p): Also permit calls with
20946 only flag_generate_offload set.
20947
20948 2020-05-26 Alexandre Oliva <oliva@adacore.com>
20949
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.
20955
20956 2020-05-26 Richard Biener <rguenther@suse.de>
20957
20958 PR tree-optimization/95327
20959 * tree-vect-stmts.c (vectorizable_shift): Compute op1_vectype
20960 when we are not using a scalar shift.
20961
20962 2020-05-26 Uroš Bizjak <ubizjak@gmail.com>
20963
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.
20971
20972 2020-05-26 Jan Hubicka <jh@suse.cz>
20973
20974 * tree.c (free_lang_data_in_type): Simpify types of TYPE_VALUES in
20975 enumeral types.
20976
20977 2020-05-26 Jakub Jelinek <jakub@redhat.com>
20978
20979 PR c++/95197
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.
20984
20985 2020-05-26 Alexandre Oliva <oliva@adacore.com>
20986
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):
20993 Document.
20994 (-o): Introduce the notion of primary output, mention it
20995 influences auxiliary and dump output names as well, add
20996 examples.
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
21013 %:dumps.
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
21022 save_temps_prefix.
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
21036 computation.
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
21045 removed ones.
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
21057 dumpbase-ext.
21058 (process_options): Derive aux_base_name from dump_base_name
21059 and dump_base_ext.
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.
21063
21064 2020-05-26 Hongtao Liu <hongtao.liu@intel.com>
21065 Uroš Bizjak <ubizjak@gmail.com>
21066
21067 PR target/95211
21068 PR target/95256
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.
21082
21083 2020-05-25 Eric Botcazou <ebotcazou@adacore.com>
21084
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.
21091
21092 2020-05-25 Uroš Bizjak <ubizjak@gmail.com>
21093
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.
21099
21100 2020-05-25 Richard Biener <rguenther@suse.de>
21101
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.
21106
21107 2020-05-25 Jan Hubicka <hubicka@ucw.cz>
21108
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.
21115
21116 2020-05-25 Richard Biener <rguenther@suse.de>
21117
21118 PR tree-optimization/95308
21119 * tree-ssa-forwprop.c (pass_forwprop::execute): Generalize
21120 test for TARGET_MEM_REFs.
21121
21122 2020-05-25 Richard Biener <rguenther@suse.de>
21123
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.
21127
21128 2020-05-25 Richard Biener <rguenther@suse.de>
21129
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.
21134
21135 2020-05-25 Richard Biener <rguenther@suse.de>
21136
21137 PR tree-optimization/95297
21138 * tree-vect-stmts.c (vectorizable_shift): For scalar_shift_arg
21139 skip updating operand 1 vector type.
21140
21141 2020-05-25 Richard Biener <rguenther@suse.de>
21142
21143 PR tree-optimization/95284
21144 * tree-ssa-sink.c (sink_common_stores_to_bb): Amend previous
21145 fix.
21146
21147 2020-05-25 Hongtao Liu <hongtao.liu@intel.com>
21148
21149 PR target/95125
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.
21153
21154 2020-05-23 Iain Sandoe <iain@sandoe.co.uk>
21155
21156 * config/darwin.h (ASM_GENERATE_INTERNAL_LABEL): Make
21157 ubsan_{data,type},ASAN symbols linker-visible.
21158
21159 2020-05-22 Jan Hubicka <hubicka@ucw.cz>
21160
21161 * lto-streamer-out.c (DFS::DFS): Silence warning.
21162
21163 2020-05-22 Uroš Bizjak <ubizjak@gmail.com>
21164
21165 PR target/95255
21166 * config/i386/i386.md (<rounding_insn><mode>2): Do not try to
21167 expand non-sse4 ROUND_ROUNDEVEN rounding via SSE support routines.
21168
21169 2020-05-22 Jan Hubicka <hubicka@ucw.cz>
21170
21171 * lto-streamer-out.c (lto_output_tree): Do not stream final ref if
21172 it is not needed.
21173
21174 2020-05-22 Jan Hubicka <hubicka@ucw.cz>
21175
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.
21185
21186 2020-05-22 Hongtao.liu <hongtao.liu@intel.com>
21187
21188 PR target/92658
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.
21200
21201 2020-05-22 H.J. Lu <hongjiu.lu@intel.com>
21202
21203 PR target/95258
21204 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
21205 AVX512VPOPCNTDQ.
21206
21207 2020-05-22 Richard Biener <rguenther@suse.de>
21208
21209 PR tree-optimization/95268
21210 * tree-ssa-sink.c (sink_common_stores_to_bb): Handle clobbers
21211 properly.
21212
21213 2020-05-22 Jan Hubicka <hubicka@ucw.cz>
21214
21215 * tree-streamer.c (record_common_node): Fix hash value of pre-streamed
21216 nodes.
21217
21218 2020-05-22 Jan Hubicka <hubicka@ucw.cz>
21219
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
21224
21225 2020-05-22 Richard Biener <rguenther@suse.de>
21226
21227 PR lto/95190
21228 * doc/invoke.texi (flto): Document behavior of diagnostic
21229 options.
21230
21231 2020-05-22 Richard Biener <rguenther@suse.de>
21232
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
21252 behavior.
21253
21254 2020-05-22 Richard Biener <rguenther@suse.de>
21255
21256 PR tree-optimization/95248
21257 * tree-ssa-loop-im.c (sm_seq_valid_bb): Remove bogus early out.
21258
21259 2020-05-22 Richard Biener <rguenther@suse.de>
21260
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
21264 from allocators.
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.
21270
21271 2020-05-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21272
21273 * adjust-alignment.c: Include memmodel.h.
21274
21275 2020-05-21 H.J. Lu <hongjiu.lu@intel.com>
21276
21277 PR target/95260
21278 * config/i386/cpuid.h: Use hexadecimal in comments.
21279
21280 2020-05-21 H.J. Lu <hongjiu.lu@intel.com>
21281
21282 PR target/95212
21283 * config/i386/i386-builtins.c (processor_features): Move
21284 F_AVX512VP2INTERSECT after F_AVX512BF16.
21285 (isa_names_table): Likewise.
21286
21287 2020-05-21 Martin Liska <mliska@suse.cz>
21288
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.
21294
21295 2020-05-21 Uroš Bizjak <ubizjak@gmail.com>
21296
21297 PR target/95218
21298
21299 * config/i386/mmx.md (*mmx_<code>v2sf): Do not mark
21300 operands 1 and 2 commutative. Manually swap operands.
21301 (*mmx_nabsv2sf2): Ditto.
21302
21303 Partially revert:
21304 2020-05-18 Uroš Bizjak <ubizjak@gmail.com>
21305
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.
21312
21313 2020-05-20 Uroš Bizjak <ubizjak@gmail.com>
21314
21315 PR target/95229
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.
21327
21328 2020-05-20 Uroš Bizjak <ubizjak@gmail.com>
21329
21330 PR target/95238
21331 * config/i386/i386.md (*pushsi2_rex64):
21332 Use "e" constraint instead of "i".
21333
21334 2020-05-20 Jan Hubicka <hubicka@ucw.cz>
21335
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
21341 to happen.
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.
21351
21352 2020-05-20 Patrick Palka <ppalka@redhat.com>
21353
21354 PR c++/95223
21355 * hash-table.h (hash_table::find_with_hash): Move up the call to
21356 hash_table::verify.
21357
21358 2020-05-20 Martin Liska <mliska@suse.cz>
21359
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.
21363
21364 2020-05-20 Richard Biener <rguenther@suse.de>
21365
21366 PR tree-optimization/95219
21367 * tree-vect-loop.c (vectorizable_induction): Reduce
21368 group_size before computing the number of required IVs.
21369
21370 2020-05-20 Richard Biener <rguenther@suse.de>
21371
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.
21375
21376 2020-05-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
21377 Andre Vieira <andre.simoesdiasvieira@arm.com>
21378
21379 PR target/94959
21380 * config/arm/arm-protos.h (arm_mode_base_reg_class): Function
21381 declaration.
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.
21391 (Ul): 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
21395 vector store/load.
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.
21425
21426 2020-05-30 Richard Biener <rguenther@suse.de>
21427
21428 PR c/95141
21429 * c-fold.c (c_fully_fold_internal): Enhance guard on
21430 overflow_warning.
21431
21432 2020-05-20 Kito Cheng <kito.cheng@sifive.com>
21433
21434 PR target/90811
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.
21442
21443 2020-05-19 Alex Coplan <alex.coplan@arm.com>
21444
21445 PR target/94591
21446 * config/aarch64/aarch64.c (aarch64_evpc_rev_local): Don't match
21447 identity permutation.
21448
21449 2020-05-19 Jozef Lawrynowicz <jozef.l@mittosystems.com>
21450
21451 * doc/sourcebuild.texi: Document new short_eq_int, ptr_eq_short,
21452 msp430_small, msp430_large and size24plus DejaGNU effective
21453 targets.
21454 Improve grammar in descriptions for size20plus and size32plus effective
21455 targets.
21456
21457 2020-05-19 Jose E. Marchesi <jose.marchesi@oracle.com>
21458
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
21464 -mxbpf.
21465
21466 2020-05-19 Jose E. Marchesi <jose.marchesi@oracle.com>
21467
21468 * config/bpf/bpf.opt (mxbpf): New option.
21469 * doc/invoke.texi (Option Summary): Add -mxbpf.
21470 (eBPF Options): Document -mxbbpf.
21471
21472 2020-05-19 Uroš Bizjak <ubizjak@gmail.com>
21473
21474 PR target/92658
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.
21493
21494 2020-05-19 Kito Cheng <kito.cheng@sifive.com>
21495
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,
21506 version_p.
21507 * config/riscv/riscv.h (riscv_expand_arch): New,
21508 (EXTRA_SPEC_FUNCTIONS): Define.
21509 (ASM_SPEC): Transform -march= via riscv_expand_arch.
21510
21511 2020-05-19 Kito Cheng <kito.cheng@sifive.com>
21512
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'.
21517
21518 2020-05-19 Richard Biener <rguenther@suse.de>
21519
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
21523 SLP_TREE_VECTYPE.
21524 (vect_create_new_slp_node): Likewise.
21525 (vect_prologue_cost_for_slp): Move here from tree-vect-stmts.c
21526 and simplify.
21527 (vect_slp_analyze_node_operations): Walk nodes children for
21528 invariant costing.
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.
21534
21535 2020-05-18 Martin Sebor <msebor@redhat.com>
21536
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.
21542
21543 2020-05-18 Martin Sebor <msebor@redhat.com>
21544
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
21548 of unions.
21549 Drop a pointless test.
21550 Rename a local variable.
21551
21552 2020-05-18 Jason Merrill <jason@redhat.com>
21553
21554 * aclocal.m4: Add ax_cxx_compile_stdcxx.m4.
21555 * configure.ac: Use AX_CXX_COMPILE_STDCXX(11).
21556
21557 2020-05-14 Jason Merrill <jason@redhat.com>
21558
21559 * doc/install.texi (Prerequisites): Update boostrap compiler
21560 requirement to C++11/GCC 4.8.
21561
21562 2020-05-18 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
21563
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.
21568
21569 2020-05-18 Carl Love <cel@us.ibm.com>
21570
21571 PR target/94833
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.
21576
21577 2020-05-18 Uroš Bizjak <ubizjak@gmail.com>
21578
21579 PR target/95169
21580 * config/i386/i386-expand.c (ix86_expand_int_movcc):
21581 Avoid reversing a non-trapping comparison to a trapping one.
21582
21583 2020-05-18 Alex Coplan <alex.coplan@arm.com>
21584
21585 * config/arm/arm.c (output_move_double): Fix codegen when loading into
21586 a register pair with an odd base register.
21587
21588 2020-05-18 Uroš Bizjak <ubizjak@gmail.com>
21589
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.
21601
21602 2020-05-18 Richard Biener <rguenther@suse.de>
21603
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
21607 region begin.
21608
21609 2020-05-18 H.J. Lu <hongjiu.lu@intel.com>
21610
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.
21614
21615 2020-05-18 Richard Biener <rguenther@suse.de>
21616
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.
21620
21621 2020-05-18 Richard Biener <rguenther@suse.de>
21622
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.
21630
21631 2020-05-17 Jeff Law <law@redhat.com>
21632
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.
21638
21639 2020-05-17 H.J. Lu <hongjiu.lu@intel.com>
21640
21641 PR target/95021
21642 * config/i386/i386-features.c (has_non_address_hard_reg):
21643 Renamed to ...
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.
21650
21651 2020-05-17 Aldy Hernandez <aldyh@redhat.com>
21652
21653 Revert:
21654 2020-05-17 Aldy Hernandez <aldyh@redhat.com>
21655
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.
21659
21660 2020-05-17 Aldy Hernandez <aldyh@redhat.com>
21661
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.
21665
21666 2020-05-17 Aldy Hernandez <aldyh@redhat.com>
21667
21668 * tree-vrp.c (class vrp_insert): Remove prototype for
21669 live_on_edge.
21670
21671 2020-05-17 Aldy Hernandez <aldyh@redhat.com>
21672
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.
21685
21686 2020-05-17 Aldy Hernandez <aldyh@redhat.com>
21687
21688 * tree-vrp.c (class vrp_prop): Move check_all_array_refs,
21689 check_array_ref, check_mem_ref, and search_for_addr_array
21690 into new class...
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
21695 to check.
21696 (class vrp_folder): Make fold_predicate_in private.
21697
21698 2020-05-15 Jeff Law <law@redhat.com>
21699
21700 * config/h8300/h8300.md (SFI iterator): New iterator for
21701 SFmode and SImode.
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.
21706
21707 2020-05-15 Segher Boessenkool <segher@kernel.crashing.org>
21708
21709 * config/rs6000/rs6000-builtin.def (BU_FUTURE_MISC_2): Also require
21710 RS6000_BTM_POWERPC64.
21711
21712 2020-05-15 Uroš Bizjak <ubizjak@gmail.com>
21713
21714 * config/i386/i386.md (SWI48DWI): New mode iterator.
21715 (*push<mode>2): Allow XMM registers.
21716 (*pushdi2_rex64): Ditto.
21717 (*pushsi2_rex64): Ditto.
21718 (*pushsi2): Ditto.
21719 (push XMM reg splitter): New splitter
21720
21721 (*pushdf) Change "x" operand constraint to "v".
21722 (*pushsf_rex64): Ditto.
21723 (*pushsf): Ditto.
21724
21725 2020-05-15 Richard Biener <rguenther@suse.de>
21726
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.
21730
21731 2020-05-15 Martin Liska <mliska@suse.cz>
21732
21733 * hsa-gen.c (get_symbol_for_decl): Fix misleading indentation
21734 warning.
21735
21736 2020-05-15 Andrew Stubbs <ams@codesourcery.com>
21737
21738 * config/gcn/gcn-valu.md (v<expander><mode>3): Fix unsignedp.
21739
21740 2020-05-15 Richard Biener <rguenther@suse.de>
21741
21742 PR tree-optimization/95133
21743 * gimple-ssa-split-paths.c
21744 (find_block_to_duplicate_for_splitting_paths): Check for
21745 normal edges.
21746
21747 2020-05-15 Christophe Lyon <christophe.lyon@linaro.org>
21748
21749 * config/arm/arm.c (reg_needs_saving_p): Add support for interrupt
21750 routines.
21751 (arm_compute_save_reg0_reg12_mask): Use reg_needs_saving_p.
21752
21753 2020-05-15 Tobias Burnus <tobias@codesourcery.com>
21754
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
21758 item is 'delete:'.
21759
21760 2020-05-15 Uroš Bizjak <ubizjak@gmail.com>
21761
21762 PR target/95046
21763 * config/i386/i386.md (isa): Add sse3_noavx.
21764 (enabled): Handle sse3_noavx.
21765
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.
21770
21771 (*mmx_hsubv2sf3): Add SSE/AVX alternatives.
21772 (*mmx_hsubv2sf3_low): New insn pattern.
21773
21774 2020-05-15 Richard Biener <rguenther@suse.de>
21775
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
21783 in statistics.
21784
21785 2020-05-14 Xiong Hu Luo <luoxhu@linux.ibm.com>
21786
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.
21791
21792 2020-05-14 H.J. Lu <hongjiu.lu@intel.com>
21793
21794 PR jit/94778
21795 * doc/sourcebuild.texi: Document effective target lgccjit.
21796
21797 2020-05-14 Andrew Stubbs <ams@codesourcery.com>
21798
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*.
21810
21811 2020-05-14 Uroš Bizjak <ubizjak@gmail.com>
21812
21813 PR target/95046
21814 * config/i386/sse.md (truncv2dfv2df2): New insn pattern.
21815 (extendv2sfv2df2): Ditto.
21816
21817 2020-05-14 H.J. Lu <hongjiu.lu@intel.com>
21818
21819 * configure: Regenerated.
21820
21821 2020-05-14 Christophe Lyon <christophe.lyon@linaro.org>
21822
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.
21831
21832 2020-05-14 Christophe Lyon <christophe.lyon@linaro.org>
21833
21834 * config/arm/arm.c (thumb1_expand_prologue): Update error message.
21835
21836 2020-05-14 Uroš Bizjak <ubizjak@gmail.com>
21837
21838 PR target/95046
21839 * config/i386/sse.md (sse2_cvtpi2pd): Add memory to alternative 1.
21840
21841 (floatv2siv2df2): New expander.
21842 (floatunsv2siv2df2): New insn pattern.
21843
21844 (fix_truncv2dfv2si2): New expander.
21845 (fixuns_truncv2dfv2si2): New insn pattern.
21846
21847 2020-05-14 Richard Sandiford <richard.sandiford@arm.com>
21848
21849 PR target/95105
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.
21854
21855 2020-05-14 Richard Biener <rguenther@suse.de>
21856
21857 PR middle-end/95118
21858 * real.c (real_to_decimal_for_mode): Make sure we handle
21859 a zero with nonzero exponent.
21860
21861 2020-05-14 Jakub Jelinek <jakub@redhat.com>
21862
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
21866 ctor.
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
21873 bit.
21874 * tree-inline.c (expand_call_inline): Or in calls_declare_variant_alt
21875 bit.
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):
21888 New methods.
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
21900 bit.
21901
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.
21908
21909 * function.h (struct function): Add has_omp_target bit.
21910 * omp-offload.c (omp_discover_declare_target_fn_r): New function,
21911 old renamed to ...
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.
21920
21921 2020-05-14 Uroš Bizjak <ubizjak@gmail.com>
21922
21923 PR target/95046
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.
21930
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.
21937
21938 * config/i386/i386-builtin.def (IX86_BUILTIN_PF2ID):
21939 Update for rename.
21940 (IX86_BUILTIN_PI2FD): Ditto.
21941
21942 2020-05-14 Andreas Krebbel <krebbel@linux.ibm.com>
21943
21944 * config/s390/s390.c (s390_emit_stack_probe): Call the probe_stack
21945 expander.
21946 * config/s390/s390.md ("@probe_stack2<mode>", "probe_stack"): New
21947 expanders.
21948
21949 2020-05-14 Andreas Krebbel <krebbel@linux.ibm.com>
21950
21951 * config/s390/s390.c (allocate_stack_space): Add missing updates
21952 of last_probe_offset.
21953
21954 2020-05-14 Andreas Krebbel <krebbel@linux.ibm.com>
21955
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
21962 prototype.
21963
21964 2020-05-13 Kelvin Nilsen <kelvin@gcc.gnu.org>
21965
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.
21996
21997 2020-05-13 Richard Biener <rguenther@suse.de>
21998
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
22003 vectype parameter.
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.
22007
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):
22014 Adjust.
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.
22023
22024 2020-05-13 Richard Biener <rguenther@suse.de>
22025
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
22038 group_size.
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.
22044
22045 2020-05-13 Jakub Jelinek <jakub@redhat.com>
22046
22047 PR debug/95080
22048 * cfgrtl.c (purge_dead_edges): Skip over debug and note insns even
22049 if the last insn is a note.
22050
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.
22054
22055 2020-05-13 Bin Cheng <bin.cheng@linux.alibaba.com>
22056
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.
22063
22064 2020-05-13 Hongtao Liu <hongtao.liu@intel.com>
22065
22066 PR target/94118
22067 * doc/extend.texi (x86Operandmodifiers): Document more x86
22068 operand modifier.
22069 * gcc/config/i386/i386.c: Add comment for operand modifier N and I.
22070
22071 2020-05-12 Giuliano Belinassi <giuliano.belinassi@usp.br>
22072
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.
22091
22092
22093 2020-05-12 Keith Packard <keith.packard@sifive.com>
22094
22095 * config/riscv/riscv.c (riscv_unique_section): New.
22096 (TARGET_ASM_UNIQUE_SECTION): New.
22097
22098 2020-05-12 Craig Blackmore <craig.blackmore@embecosm.com>
22099
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.
22121
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
22127 new address.
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.
22131
22132 2020-05-12 Uroš Bizjak <ubizjak@gmail.com>
22133
22134 PR target/95046
22135 * config/i386/mmx.md (copysignv2sf3): New expander.
22136 (xorsignv2sf3): Ditto.
22137 (signbitv2sf3): Ditto.
22138
22139 2020-05-12 Uroš Bizjak <ubizjak@gmail.com>
22140
22141 PR target/95046
22142 * config/i386/mmx.md (fmav2sf4): New insn pattern.
22143 (fmsv2sf4): Ditto.
22144 (fnmav2sf4): Ditto.
22145 (fnmsv2sf4): Ditto.
22146
22147 2020-05-12 H.J. Lu <hongjiu.lu@intel.com>
22148
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
22153 enabled.
22154 * aclocal.m4: Regenerated.
22155 * configure: Likewise.
22156
22157 2020-05-12 Uroš Bizjak <ubizjak@gmail.com>
22158
22159 PR target/95046
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.
22168
22169 2020-05-12 Richard Biener <rguenther@suse.de>
22170
22171 * tree-ssa-live.c (remove_unused_locals): Remove dead debug
22172 bind resets.
22173
22174 2020-05-12 Jozef Lawrynowicz <jozef.l@mittosystems.com>
22175
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.
22183
22184 2020-05-12 Richard Biener <rguenther@suse.de>
22185
22186 * cfghooks.c (split_edge): Preserve EDGE_DFS_BACK if set.
22187
22188 2020-05-12 Martin Liska <mliska@suse.cz>
22189
22190 PR sanitizer/95033
22191 PR sanitizer/95051
22192 * sanopt.c (sanitize_rewrite_addressable_params):
22193 Clear DECL_NOT_GIMPLE_REG_P for argument.
22194
22195 2020-05-12 Richard Sandiford <richard.sandiford@arm.com>
22196
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.
22202
22203 2020-05-12 Richard Sandiford <richard.sandiford@arm.com>
22204
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.
22211
22212 2020-05-12 Richard Sandiford <richard.sandiford@arm.com>
22213
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.
22228
22229 2020-05-12 Jakub Jelinek <jakub@redhat.com>
22230
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.
22238
22239 2020-05-12 Richard Biener <rguenther@suse.de>
22240
22241 * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Canonicalize
22242 literal constant &MEM[..] to a constant literal.
22243
22244 2020-05-12 Richard Biener <rguenther@suse.de>
22245
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
22250 candidates.
22251 (do_store_motion): Rename form store_motion. Commit edge
22252 insertions...
22253 (store_motion_loop): ... here.
22254 (tree_ssa_lim): Adjust.
22255
22256 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
22257
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
22270 fourth argument.
22271
22272 2020-05-11 Carl Love <cel@us.ibm.com>
22273
22274 * config/rs6000/altivec.h (vec_genpcvm): New #define.
22275 * config/rs6000/rs6000-builtin.def (XXGENPCVM_V16QI): New built-in
22276 instantiation.
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.
22292
22293 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
22294
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.
22329
22330 2020-05-11 Kelvin Nilsen <wschmidt@linux.ibm.com>
22331
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
22337 RS6000_BUILTIN_4.
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
22352 functions.
22353 (rs6000_expand_quaternop_builtin): New function.
22354 (rs6000_expand_builtin): Add handling for quaternary built-in
22355 functions.
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
22360 operations.
22361 * config/rs6000/rs6000.h (RS6000_BTC_QUATERNARY): New defined
22362 constant.
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
22368 built-in function.
22369
22370 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
22371
22372 * config/rs6000/rs6000-builtin.def (__builtin_pdepd): New built-in
22373 function.
22374 (__builtin_pextd): Likewise.
22375 * config/rs6000/rs6000.md (UNSPEC_PDEPD): New constant.
22376 (UNSPEC_PEXTD): Likewise.
22377 (pdepd): New insn.
22378 (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.
22382
22383 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
22384
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
22392 built-in function.
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
22401 vec_clrr.
22402
22403 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
22404
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.
22415
22416 2020-05-11 Uroš Bizjak <ubizjak@gmail.com>
22417
22418 PR target/95046
22419 * config/i386/mmx.md (sqrtv2sf2): New insn pattern.
22420
22421 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
22422
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
22432 function.
22433
22434 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
22435
22436 * config/rs6000/rs6000-builtin.def (BU_FUTURE_MISC_0): New
22437 #define.
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.
22446
22447 2020-05-11 Richard Biener <rguenther@suse.de>
22448
22449 PR tree-optimization/95049
22450 * tree-ssa-sccvn.c (set_ssa_val_to): Reject lattice transition
22451 between different constants.
22452
22453 2020-05-11 Richard Sandiford <richard.sandiford@arm.com>
22454
22455 * tree-pretty-print.c (dump_generic_node): Handle BOOLEAN_TYPEs.
22456
22457 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
22458 Bill Schmidt <wschmidt@linux.ibm.com>
22459
22460 * config/rs6000/altivec.h (vec_gnb): New #define.
22461 * config/rs6000/altivec.md (UNSPEC_VGNB): New constant.
22462 (vgnb): New insn.
22463 * config/rs6000/rs6000-builtin.def (BU_FUTURE_OVERLOAD_1): New
22464 #define.
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
22477 function.
22478
22479 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
22480 Bill Schmidt <wschmidt@linux.ibm.com>
22481
22482 * config/rs6000/altivec.h (vec_pdep): New macro implementing new
22483 built-in function.
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
22490 built-in function.
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
22494 cases.
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.
22498
22499 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
22500 Bill Schmidt <wschmidt@linux.ibm.com>
22501
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
22516 set.
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.
22524
22525 2020-05-11 Richard Biener <rguenther@suse.de>
22526
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
22531 moved the ref to.
22532 (execute_sm_exit): Re-issue sm_other stores in the correct
22533 order.
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.
22538
22539 2020-05-11 Felix Yang <felix.yang@huawei.com>
22540
22541 PR target/94991
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.
22545
22546 2020-05-11 Alex Coplan <alex.coplan@arm.com>
22547
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.
22554
22555 2020-05-11 Uroš Bizjak <ubizjak@gmail.com>
22556
22557 PR target/95046
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.
22565
22566 2020-05-11 Uroš Bizjak <ubizjak@gmail.com>
22567
22568 PR target/95046
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.
22573
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.
22580
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.
22588
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.
22595
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.
22603
22604 2020-05-11 Martin Liska <mliska@suse.cz>
22605
22606 PR c/95040
22607 * common.opt: Fix typo in option description.
22608
22609 2020-05-11 Martin Liska <mliska@suse.cz>
22610
22611 PR gcov-profile/94928
22612 * gcov-io.h: Add caveat about coverage format parsing and
22613 possible outdated documentation.
22614
22615 2020-05-11 Xiong Hu Luo <luoxhu@linux.ibm.com>
22616
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.
22621
22622 2020-05-10 Gerald Pfeifer <gerald@pfeifer.com>
22623
22624 * config/i386/i386-c.c (ix86_target_macros): Define _ILP32 and
22625 __ILP32__ for 32-bit targets.
22626
22627 2020-05-09 Eric Botcazou <ebotcazou@adacore.com>
22628
22629 * tree.h (expr_align): Delete.
22630 * tree.c (expr_align): Likewise.
22631
22632 2020-05-09 Hans-Peter Nilsson <hp@axis.com>
22633
22634 * resource.c (init_resource_info): Filter-out TARGET_FLAGS_REGNUM
22635 from end_of_function_needs.
22636
22637 * config.gcc: Remove support for crisv32-*-* and cris-*-linux*.
22638 * config/cris/t-linux, config/cris/linux.h, config/cris/linux.opt:
22639 Remove.
22640 * config/cris/t-elfmulti: Remove crisv32 multilib.
22641 * config/cris: Remove shared-library and CRIS v32 support.
22642
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
22648 references.
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
22663 PARALLEL are SETs.
22664 (cris_store_multiple_op_p): Ditto.
22665 (cris_emit_insn): New function.
22666 * cris/cris-protos.h (cris_emit_insn): Declare.
22667
22668 PR target/93372
22669 * config/cris/cris.md (zcond): New code_iterator.
22670 ("*cbranch<mode>4_btstq<CC>"): New insn_and_split.
22671
22672 * config/cris/cris.c (TARGET_FLAGS_REGNUM): Define.
22673
22674 * config/cris/cris.h (REVERSIBLE_CC_MODE): Define to true.
22675
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.
22685
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
22694 mode_iterators.
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
22701 users changed.
22702 ("*cmpdi<NZVCSET:mode>"): Rename from "*cmpdi". Replace
22703 CCmode with iteration over NZVCSET.
22704 ("*cmp_ext<BW:mode><NZVCSET:mode>"): Similarly; rename from
22705 "*cmp_ext<mode>".
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
22714 over NZUSE.
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
22767 "*expanded_andsi".
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
22776 from "xorsi3".
22777 ("<acc><anz><anzvc>one_cmplsi2<setcc><setnz><setnzvc>"): Rename
22778 from "one_cmplsi2".
22779 ("<acc><anz><anzvc><shlr>si3<setcc><setnz><setnzvc>"): Rename
22780 from "<shlr>si3".
22781 ("<acc><anz><anzvc>clzsi2<setcc><setnz><setnzvc>"): Rename
22782 from "clzsi2".
22783 ("<acc><anz><anzvc>bswapsi2<setcc><setnz><setnzvc>"): Rename
22784 from "bswapsi2".
22785 ("*uminsi3<setcc><setnz><setnzvc>"): Rename from "*uminsi3".
22786
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.
22800
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
22804 "neg<mode>2".
22805
22806 2020-05-08 Vladimir Makarov <vmakarov@redhat.com>
22807
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
22811 info.
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.
22817
22818 2020-05-08 Richard Biener <rguenther@suse.de>
22819
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
22827 validity here.
22828 (vect_analyze_slp): Optimize permutations of reductions
22829 after all SLP instances have been gathered and gather
22830 all loads.
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.
22837
22838 2020-05-08 Richard Biener <rguenther@suse.de>
22839
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.
22849
22850 2020-05-08 Jakub Jelinek <jakub@redhat.com>
22851
22852 PR tree-optimization/94786
22853 * match.pd (A ^ ((A ^ B) & -(C cmp D)) -> (C cmp D) ? B : A): New
22854 simplification.
22855
22856 PR target/94857
22857 * config/i386/i386.md (peephole2 after *add<mode>3_cc_overflow_1): New
22858 define_peephole2.
22859
22860 PR middle-end/94724
22861 * tree.c (get_narrower): Reuse the op temporary instead of
22862 shadowing it.
22863
22864 PR tree-optimization/94783
22865 * match.pd ((X + (X >> (prec - 1))) ^ (X >> (prec - 1)) to abs (X)):
22866 New simplification.
22867
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.
22871
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.
22876
22877 PR bootstrap/94961
22878 PR rtl-optimization/94516
22879 * rtl.h (remove_reg_equal_equiv_notes): Add a bool argument defaulted
22880 to false.
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
22886 df_notes_rescan.
22887
22888 2020-05-07 Segher Boessenkool <segher@kernel.crashing.org>
22889
22890 * config/rs6000/rs6000.md (*setnbc_<un>signed_<GPR:mode>): New
22891 define_insn.
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.
22895
22896 2020-05-07 Segher Boessenkool <segher@kernel.crashing.org>
22897
22898 * config/rs6000/rs6000.md (setbc_<un>signed_<GPR:mode>): New
22899 define_insn.
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.
22909
22910 2020-05-07 Jeff Law <law@redhat.com>
22911
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
22927
22928 * config/h8300/h8300.md (adds/subs splitters): Merge into single
22929 splitter.
22930 (negation expanders and patterns): Simplify and combine using
22931 iterators.
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
22936 to just "abssf2"
22937 (peephole2 patterns): Move into...
22938 * config/h8300/peepholes.md: New file.
22939
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
22949 where possible.
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.
22969
22970 * config/h8300/h8300.h (LINK_SPEC): Remove.
22971 (USER_LABEL_PREFIX): Likewise.
22972
22973 * config/h8300/h8300.c (h8300_asm_named_section): Remove.
22974 (h8300_option_override): Remove remnants of COFF support.
22975
22976 2020-05-07 Alan Modra <amodra@gmail.com>
22977
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.
22981
22982 2020-05-07 Kewen Lin <linkw@gcc.gnu.org>
22983
22984 * tree-vect-stmts.c (vectorizable_load): Check alignment to avoid
22985 redundant half vector handlings for no peeling gaps.
22986
22987 2020-05-07 Giuliano Belinassi <giuliano.belinassi@usp.br>
22988
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.
23013
23014 2020-05-07 Richard Biener <rguenther@suse.de>
23015
23016 PR ipa/94947
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.
23021
23022 2020-05-07 Erick Ochoa <erick.ochoa@theobroma-systems.com>
23023
23024 * gcc/tree-ssa-struct-alias.c: Fix comments
23025
23026 2020-05-07 Martin Liska <mliska@suse.cz>
23027
23028 * doc/invoke.texi: Fix 2 optindex entries.
23029
23030 2020-05-07 Richard Biener <rguenther@suse.de>
23031
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
23049 to be GIMPLE regs.
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
23062 generalize.
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
23075 independently.
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.
23083
23084 2020-05-07 Alex Coplan <alex.coplan@arm.com>
23085
23086 * config/arm/arm.c (arm_add_stmt_cost): Fix declaration, remove class
23087 from definition.
23088
23089 2020-05-07 Richard Biener <rguenther@suse.de>
23090
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
23098 dependence cache.
23099 (query_loop_dependence): New function to query the dependence
23100 cache.
23101 (memory_accesses::refs_in_loop): Rename to ...
23102 (memory_accesses::refs_loaded_in_loop): ... this and change to
23103 only record loads.
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
23110 into new hash-map.
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
23123 changes.
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.
23128
23129 2020-05-07 Eric Botcazou <ebotcazou@adacore.com>
23130 Pierre-Marie de Rodat <derodat@adacore.com>
23131
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.
23139
23140 2020-05-07 Martin Liska <mliska@suse.cz>
23141
23142 * lto-wrapper.c: Split arguments of MAKE environment
23143 variable.
23144
23145 2020-05-07 Uroš Bizjak <ubizjak@gmail.com>
23146
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.
23150
23151 2020-05-06 Jakub Jelinek <jakub@redhat.com>
23152
23153 PR target/93069
23154 * config/i386/subst.md (store_mask_constraint, store_mask_predicate):
23155 Remove.
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
23160 into ...
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
23165 elts.
23166 (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Split
23167 into ...
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
23176 elts.
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
23181 elts.
23182
23183 2020-05-06 qing zhao <qing.zhao@oracle.com>
23184
23185 PR c/94230
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.
23190
23191 2020-05-06 Uroš Bizjak <ubizjak@gmail.com>
23192
23193 PR target/94913
23194 * config/i386/predicates.md (add_comparison_operator): New predicate.
23195 * config/i386/i386.md (compare->add splitter): New splitters.
23196
23197 2020-05-06 Richard Biener <rguenther@suse.de>
23198
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
23204 parameter.
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.
23212
23213 2020-05-06 Andreas Schwab <schwab@suse.de>
23214
23215 * config/aarch64/driver-aarch64.c: Include "aarch64-protos.h".
23216 (aarch64_get_extension_string_for_isa_flags): Don't declare.
23217
23218 2020-05-06 Richard Biener <rguenther@suse.de>
23219
23220 PR middle-end/94964
23221 * cfgloopmanip.c (create_preheader): Require non-complex
23222 preheader edge for CP_SIMPLE_PREHEADERS.
23223
23224 2020-05-06 Richard Biener <rguenther@suse.de>
23225
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.
23231
23232 2020-05-06 Hongtao Liu <hongtao.liu@intel.com>
23233
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
23238 TSXLDTRK.
23239 * config/i386/i386-builtin.def: Add new builtins.
23240 * config/i386/i386-c.c (ix86_target_macros_internal): Define
23241 __TSXLDTRK__.
23242 * config/i386/i386-options.c (ix86_target_string): Add
23243 -mtsxldtrk.
23244 (ix86_valid_target_attribute_inner_p): Add attribute tsxldtrk.
23245 * config/i386/i386.h (TARGET_TSXLDTRK, TARGET_TSXLDTRK_P):
23246 New.
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.
23255
23256 2020-05-06 Jakub Jelinek <jakub@redhat.com>
23257
23258 PR tree-optimization/94921
23259 * match.pd (~(~X - Y) -> X + Y, ~(~X + Y) -> X - Y): New
23260 simplifications.
23261
23262 2020-05-06 Richard Biener <rguenther@suse.de>
23263
23264 PR tree-optimization/94965
23265 * tree-vect-stmts.c (vectorizable_load): Fix typo.
23266
23267 2020-05-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23268
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
23273 TGCware reference.
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.
23282
23283 2020-05-06 Jakub Jelinek <jakub@redhat.com>
23284
23285 PR target/94950
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.
23288
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.
23292
23293 2020-05-06 Hongtao Liu <hongtao.liu@intel.com>
23294 Wei Xiao <wei3.xiao@intel.com>
23295
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
23302 -mserialize.
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):
23306 Add -mserialize.
23307 * (ix86_valid_target_attribute_inner_p): Add target attribute
23308 * for serialize.
23309 * config/i386/i386.h (TARGET_SERIALIZE, TARGET_SERIALIZE_P):
23310 New macros.
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.
23317
23318 2020-05-06 Richard Biener <rguenther@suse.de>
23319
23320 * tree-cfg.c (verify_gimple_assign_unary): Adjust integer
23321 to/from pointer conversion checking.
23322
23323 2020-05-05 Michael Meissner <meissner@linux.ibm.com>
23324
23325 * config/rs6000/rs6000-builtin.def: Delete changes meant for a
23326 private branch.
23327 * config/rs6000/rs6000-c.c: Likewise.
23328 * config/rs6000/rs6000-call.c: Likewise.
23329 * config/rs6000/rs6000.c: Likewise.
23330
23331 2020-05-05 Sebastian Huber <sebastian.huber@embedded-brains.de>
23332
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.
23344
23345 2020-05-05 Dimitar Dimitrov <dimitar@dinux.eu>
23346
23347 * config/pru/pru.c (pru_hard_regno_call_part_clobbered): Remove.
23348 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Remove.
23349
23350 2020-05-05 Dimitar Dimitrov <dimitar@dinux.eu>
23351
23352 * config/pru/pru.h: Mark R3.w0 as caller saved.
23353
23354 2020-05-05 Dimitar Dimitrov <dimitar@dinux.eu>
23355
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.
23360
23361 2020-05-05 Dimitar Dimitrov <dimitar@dinux.eu>
23362
23363 * config/pru/pru.c (pru_print_operand): Fix fall through comment.
23364
23365 2020-05-05 Uroš Bizjak <ubizjak@gmail.com>
23366
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.
23374 (atanxf2): Ditto.
23375 (asinxf2): Ditto.
23376 (acosxf2): Ditto.
23377 (logxf2): Ditto.
23378 (log10xf2): Ditto.
23379 (log2xf2): Ditto.
23380 (*adddi_4): Remove "m" constraint from scratch operand.
23381 (*add<mode>_4): Ditto.
23382
23383 2020-05-05 Jakub Jelinek <jakub@redhat.com>
23384
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
23391 possible.
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.
23398
23399 2020-05-05 Martin Liska <mliska@suse.cz>
23400
23401 PR gcov-profile/93623
23402 * tree-cfg.c (stmt_can_terminate_bb_p): Update comment to reflect
23403 reality.
23404
23405 2020-05-05 Martin Liska <mliska@suse.cz>
23406
23407 * opt-functions.awk (opt_args_non_empty): New function.
23408 * opt-read.awk: Use the function for various option arguments.
23409
23410 2020-05-05 Martin Liska <mliska@suse.cz>
23411
23412 PR driver/94330
23413 * lto-wrapper.c (run_gcc): When using -flto=jobserver,
23414 report warning when the jobserver is not detected.
23415
23416 2020-05-05 Martin Liska <mliska@suse.cz>
23417
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.
23423
23424 2020-05-05 Martin Liska <mliska@suse.cz>
23425
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.
23431
23432 2020-05-05 Martin Liska <mliska@suse.cz>
23433
23434 PR c/92472
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.
23440
23441 2020-05-05 Richard Biener <rguenther@suse.de>
23442
23443 * tree-vect-slp.c (struct vdhs_data): New.
23444 (vect_detect_hybrid_slp): New walker.
23445 (vect_detect_hybrid_slp): Rewrite.
23446
23447 2020-05-05 Richard Biener <rguenther@suse.de>
23448
23449 PR ipa/94947
23450 * tree-ssa-structalias.c (ipa_pta_execute): Use
23451 varpool_node::externally_visible_p ().
23452 (refered_from_nonlocal_var): Likewise.
23453
23454 2020-05-05 Eric Botcazou <ebotcazou@adacore.com>
23455
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.
23459
23460 2020-05-05 Eric Botcazou <ebotcazou@adacore.com>
23461
23462 * gimplify.c (gimplify_init_constructor): Do not put the constructor
23463 into static memory if it is not complete.
23464
23465 2020-05-05 Richard Biener <rguenther@suse.de>
23466
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.
23471
23472 2020-05-05 Alex Coplan <alex.coplan@arm.com>
23473
23474 * config/aarch64/aarch64.md (*one_cmpl_zero_extend): New.
23475
23476 2020-05-05 Jakub Jelinek <jakub@redhat.com>
23477
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
23481 canonicalizations.
23482
23483 PR target/94942
23484 * config/i386/mmx.md (*vec_dupv4hi): Use xYw constraints instead of Yv.
23485
23486 PR tree-optimization/94914
23487 * match.pd ((((type)A * B) >> prec) != 0 to .MUL_OVERFLOW(A, B) != 0):
23488 New simplification.
23489
23490 2020-05-05 Uroš Bizjak <ubizjak@gmail.com>
23491
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.
23497
23498 2020-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23499
23500 * configure.ac <i[34567]86-*-*>: Add --32 to tls_as_opt on Solaris.
23501 * configure: Regenerate.
23502
23503 2020-05-05 Jakub Jelinek <jakub@redhat.com>
23504
23505 PR target/94460
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.
23510
23511 2020-05-04 Clement Chigot <clement.chigot@atos.net>
23512 David Edelsohn <dje.gcc@gmail.com>
23513
23514 * config/rs6000/rs6000-call.c (rs6000_init_builtins): Override explicit
23515 for fmodl, frexpl, ldexpl and modfl builtins.
23516
23517 2020-05-04 Richard Sandiford <richard.sandiford@arm.com>
23518
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.
23524
23525 2020-05-04 Uroš Bizjak <ubizjak@gmail.com>
23526
23527 PR target/94795
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.
23531
23532 2020-05-04 Marek Polacek <polacek@redhat.com>
23533
23534 Revert:
23535 2020-04-30 Marek Polacek <polacek@redhat.com>
23536
23537 PR c++/94775
23538 * tree.c (check_base_type): Return true only if TYPE_USER_ALIGN match.
23539 (check_aligned_type): Check if TYPE_USER_ALIGN match.
23540
23541 2020-05-04 Richard Biener <rguenther@suse.de>
23542
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.
23546
23547 2020-05-04 Richard Biener <rguenther@suse.de>
23548
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
23556 conditional store.
23557
23558 2020-05-04 Martin Jambor <mjambor@suse.cz>
23559
23560 PR ipa/93385
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.
23564
23565 2020-05-04 Uroš Bizjak <ubizjak@gmail.com>
23566
23567 PR target/94650
23568 * config/i386/predicates.md (shr_comparison_operator): New predicate.
23569 * config/i386/i386.md (compare->shr splitter): New splitters.
23570
23571 2020-05-04 Jakub Jelinek <jakub@redhat.com>
23572
23573 PR tree-optimization/94718
23574 * match.pd ((X < 0) != (Y < 0) into (X ^ Y) < 0): New simplification.
23575
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.
23580
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.
23585
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
23589 CL_C or CL_CXX.
23590
23591 2020-05-03 Uroš Bizjak <ubizjak@gmail.com>
23592
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.
23605 (strmov): Ditto.
23606 (strset): Ditto.
23607
23608 2020-05-02 Iain Sandoe <iain@sandoe.co.uk>
23609
23610 PR translation/93861
23611 * config/darwin-driver.c (darwin_driver_init): Adjust spelling in
23612 a warning.
23613
23614 2020-05-02 Jakub Jelinek <jakub@redhat.com>
23615
23616 * config/tilegx/tilegx.md
23617 (insn_stnt<I124MODE:n>_add<I48MODE:bitsuffix>): Use <I124MODE:n>
23618 rather than just <n>.
23619
23620 2020-05-01 H.J. Lu <hongjiu.lu@intel.com>
23621
23622 PR target/93492
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.
23633
23634 2020-05-01 Iain Sandoe <iain@sandoe.co.uk>
23635
23636 * config/i386/darwin.h: Repair SUBTARGET_INIT_BUILTINS.
23637 Override SUBTARGET_SHADOW_OFFSET macro.
23638
23639 2020-05-01 Andreas Tobler <andreast@gcc.gnu.org>
23640
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.
23647
23648 2020-04-30 Alexandre Oliva <oliva@adacore.com>
23649
23650 * doc/sourcebuild.texi (Effective-Target Keywords): Document
23651 the newly-introduced fileio effective target.
23652
23653 2020-04-30 Richard Sandiford <richard.sandiford@arm.com>
23654
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.
23665
23666 2020-04-30 Carl Love <cel@us.ibm.com>
23667
23668 * config/rs6000/emmintrin.h (_mm_movemask_epi8): Fix comment.
23669
23670 2020-04-30 Martin Jambor <mjambor@suse.cz>
23671
23672 PR ipa/94856
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.
23677
23678 2020-04-30 Jakub Jelinek <jakub@redhat.com>
23679
23680 * BASE-VER: Set to 11.0.0.
23681
23682 2020-04-30 Jonathan Wakely <jwakely@redhat.com>
23683
23684 * pretty-print.c (pp_take_prefix): Fix spelling in comment.
23685
23686 2020-04-30 Marek Polacek <polacek@redhat.com>
23687
23688 PR c++/94775
23689 * tree.c (check_base_type): Return true only if TYPE_USER_ALIGN match.
23690 (check_aligned_type): Check if TYPE_USER_ALIGN match.
23691
23692 2020-04-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23693
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.
23697
23698 2020-04-30 Szabolcs Nagy <szabolcs.nagy@arm.com>
23699
23700 PR target/94748
23701 * config/aarch64/aarch64-bti-insert.c (rest_of_insert_bti): Remove
23702 the check for NOTE_INSN_DELETED_LABEL.
23703
23704 2020-04-30 Jakub Jelinek <jakub@redhat.com>
23705
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):
23721 Likewise.
23722 * config/rs6000/rs6000-call.c (rs6000_discover_homogeneous_aggregate):
23723 Likewise.
23724 * config.in: Regenerate.
23725 * configure: Regenerate.
23726
23727 2020-04-30 Christophe Lyon <christophe.lyon@linaro.org>
23728
23729 PR target/57002
23730 * config/arm/arm.c (isr_attribute_args): Remove duplicate entries.
23731
23732 2020-04-30 Andreas Krebbel <krebbel@linux.ibm.com>
23733
23734 * config/s390/constraints.md ("j>f", "jb4"): New constraints.
23735 * config/s390/vecintrin.h (vec_load_len_r, vec_store_len_r): Fix
23736 macro definitions.
23737 * config/s390/vx-builtins.md ("vlrlrv16qi", "vstrlrv16qi"): Add a
23738 separate expander.
23739 ("*vlrlrv16qi", "*vstrlrv16qi"): Add alternative for vl/vst.
23740 Change constraint for vlrl/vstrl to jb4.
23741
23742 2020-04-30 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
23743
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.
23748
23749 2020-04-30 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
23750
23751 * toplev.c (output_stack_usage_1): Ensure that first
23752 argument to fprintf is not null.
23753
23754 2020-04-29 Jakub Jelinek <jakub@redhat.com>
23755
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
23759 opts.c.
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):
23771 Likewise.
23772 * config/s390/s390.c (s390_function_arg_vector,
23773 s390_function_arg_float): Likewise.
23774 * configure: Regenerated.
23775
23776 PR target/94704
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.
23784
23785 PR target/94832
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.
23803
23804 PR target/94832
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
23818 parens.
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
23841 parens.
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.
23874
23875 2020-04-29 Jeff Law <law@redhat.com>
23876
23877 * config/h8300/h8300.md (H8/SX div patterns): All H8/SX specific
23878 division instructions are 4 bytes long.
23879
23880 2020-04-29 Jakub Jelinek <jakub@redhat.com>
23881
23882 PR target/94826
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.
23887 Formatting fixes.
23888
23889 2020-04-29 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
23890
23891 PR tree-optimization/94774
23892 * gimple-ssa-sprintf.c (try_substitute_return_value): Initialize
23893 variable retval.
23894
23895 2020-04-29 Richard Sandiford <richard.sandiford@arm.com>
23896
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
23900 previous checks.
23901
23902 2020-04-29 H.J. Lu <hongjiu.lu@intel.com>
23903
23904 PR target/93654
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.
23910
23911 2020-04-29 Richard Sandiford <richard.sandiford@arm.com>
23912
23913 * doc/sourcebuild.texi: Add missing arm_arch_v8a_hard_ok anchor.
23914
23915 2020-04-29 Richard Sandiford <richard.sandiford@arm.com>
23916
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.
23920
23921 2020-04-29 Richard Sandiford <richard.sandiford@arm.com>
23922
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.
23944
23945 2020-04-29 Richard Biener <rguenther@suse.de>
23946 Li Zekun <lizekun1@huawei.com>
23947
23948 PR lto/94822
23949 * tree.c (component_ref_size): Guard against error_mark_node
23950 DECL_INITIAL as it happens with LTO.
23951
23952 2020-04-29 Richard Sandiford <richard.sandiford@arm.com>
23953
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
23969 diagnostics.
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
23976 should be silent.
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
23980 silent.
23981
23982 2020-04-29 Haijian Zhang <z.zhanghaijian@huawei.com>
23983
23984 PR target/94820
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
23988 new_fenv_var.
23989
23990 2020-04-29 Thomas Schwinge <thomas@codesourcery.com>
23991
23992 * configure.ac <$enable_offload_targets>: Do parsing as done
23993 elsewhere.
23994 * configure: Regenerate.
23995
23996 * configure.ac <$enable_offload_targets>: 'amdgcn' is 'gcn'.
23997 * configure: Regenerate.
23998
23999 PR target/94279
24000 * rtlanal.c (set_noop_p): Handle non-constant selectors.
24001
24002 PR target/94282
24003 * common/config/gcn/gcn-common.c (gcn_except_unwind_info): New
24004 function.
24005 (TARGET_EXCEPT_UNWIND_INFO): Define.
24006
24007 2020-04-29 Jakub Jelinek <jakub@redhat.com>
24008
24009 PR target/94248
24010 * config/gcn/gcn.md (*mov<mode>_insn): Use
24011 'reg_overlap_mentioned_p' to check for overlap.
24012
24013 PR target/94706
24014 * config/ia64/ia64.c (hfa_element_mode): Use DECL_FIELD_ABI_IGNORED
24015 instead of cxx17_empty_base_field_p.
24016
24017 PR target/94707
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"
24023 attribute.
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
24040 fields.
24041
24042 2020-04-29 Richard Biener <rguenther@suse.de>
24043
24044 * tree-ssa-loop-im.c (ref_always_accessed::operator ()):
24045 Just check whether the stmt stores.
24046
24047 2020-04-28 Alexandre Oliva <oliva@adacore.com>
24048
24049 PR target/94812
24050 * config/rs6000/rs6000.md (rs6000_mffsl): Copy result to
24051 output operand in emulation. Don't overwrite pseudos.
24052
24053 2020-04-28 Jeff Law <law@redhat.com>
24054
24055 * config/h8300/h8300.md (H8/SX mult patterns): All H8/SX specific
24056 multiply patterns are 4 bytes long.
24057
24058 2020-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24059
24060 * config/arm/arm-cpus.in (cortex-m55): Remove +nofp option.
24061 * doc/invoke.texi (Arm Options): Remove -mcpu=cortex-m55 from +nofp option.
24062
24063 2020-04-28 Matthew Malcomson <matthew.malcomson@arm.com>
24064 Jakub Jelinek <jakub@redhat.com>
24065
24066 PR target/94711
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.
24071
24072 2020-04-28 David Malcolm <dmalcolm@redhat.com>
24073
24074 PR analyzer/94447
24075 PR analyzer/94639
24076 PR analyzer/94732
24077 PR analyzer/94754
24078 * doc/invoke.texi (Static Analyzer Options): Remove
24079 -Wanalyzer-use-of-uninitialized-value.
24080 (-Wno-analyzer-use-of-uninitialized-value): Remove item.
24081
24082 2020-04-28 Jakub Jelinek <jakub@redhat.com>
24083
24084 PR tree-optimization/94809
24085 * tree.c (build_call_expr_internal_loc_array): Call
24086 process_call_operands.
24087
24088 2020-04-27 Anton Youdkevitch <anton.youdkevitch@bell-sw.com>
24089
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):
24098 Define.
24099 * config/aarch64/thunderx3t110.md: New file.
24100 * config/aarch64/aarch64.md: Include thunderx3t110.md.
24101 * doc/invoke.texi (AArch64 options): Add thunderx3t110.
24102
24103 2020-04-28 Jakub Jelinek <jakub@redhat.com>
24104
24105 PR target/94704
24106 * config/s390/s390.c (s390_function_arg_vector,
24107 s390_function_arg_float): Emit -Wpsabi diagnostics if the ABI changed.
24108
24109 2020-04-28 Richard Sandiford <richard.sandiford@arm.com>
24110
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.
24117
24118 2020-04-27 Jakub Jelinek <jakub@redhat.com>
24119
24120 PR target/94780
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.
24124
24125 2020-04-27 David Malcolm <dmalcolm@redhat.com>
24126
24127 PR 92830
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.
24140
24141 2020-04-27 Richard Sandiford <richard.sandiford@arm.com>
24142
24143 * config/arm/arm-builtins.c (arm_expand_builtin_args): Only apply
24144 UINTVAL to CONST_INTs.
24145
24146 2020-04-27 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
24147
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.
24171
24172 2020-04-27 Andre Vieira <andre.simoesdiasvieira@arm.com>
24173
24174 * config/arm/arm.c (output_move_neon): Only get the first operand if
24175 addr is PLUS.
24176
24177 2020-04-27 Felix Yang <felix.yang@huawei.com>
24178
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.
24184
24185 2020-04-27 Szabolcs Nagy <szabolcs.nagy@arm.com>
24186
24187 PR target/94515
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.
24196
24197 2020-04-27 Jakub Jelinek <jakub@redhat.com>
24198
24199 PR target/94704
24200 * config/s390/s390.c (s390_function_arg_vector,
24201 s390_function_arg_float): Ignore cxx17_empty_base_field_p fields.
24202
24203 2020-04-27 Jiufu Guo <guojiufu@cn.ibm.com>
24204
24205 * common/config/rs6000/rs6000-common.c
24206 (rs6000_option_optimization_table) [OPT_LEVELS_ALL]: Remove turn off
24207 -fweb.
24208 * config/rs6000/rs6000.c (rs6000_option_override_internal): Avoid to
24209 set flag_web.
24210
24211 2020-04-27 Martin Liska <mliska@suse.cz>
24212
24213 PR lto/94659
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.
24216
24217 2020-04-27 Xiong Hu Luo <luoxhu@linux.ibm.com>
24218
24219 PR target/91518
24220 * config/rs6000/rs6000-logue.c (frame_pointer_needed_indeed):
24221 New variable.
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.
24227
24228 2020-04-25 David Edelsohn <dje.gcc@gmail.com>
24229
24230 * config/rs6000/rs6000-logue.c (rs6000_stack_info): Don't push a
24231 stack frame when debugging and flag_compare_debug is enabled.
24232
24233 2020-04-25 Michael Meissner <meissner@linux.ibm.com>
24234
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.
24244
24245 2020-04-25 Jakub Jelinek <jakub@redhat.com>
24246 Richard Biener <rguenther@suse.de>
24247
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.
24254
24255 2020-04-24 Andrew Stubbs <ams@codesourcery.com>
24256
24257 * config/gcn/gcn-valu.md (add<mode>_zext_dup2_exec): Fix merge
24258 of high-part.
24259 (add<mode>_sext_dup2_exec): Likewise.
24260
24261 2020-04-24 Segher Boessenkool <segher@kernel.crashing.org>
24262
24263 PR target/94710
24264 * config/rs6000/vector.md (vec_shr_<mode> for VEC_L): Correct little
24265 endian byteshift_val calculation.
24266
24267 2020-04-24 Andrew Stubbs <ams@codesourcery.com>
24268
24269 * config/gcn/gcn.md (*mov<mode>_insn): Only split post-reload.
24270
24271 2020-04-24 Richard Sandiford <richard.sandiford@arm.com>
24272
24273 * config/aarch64/arm_sve.h: Add a comment.
24274
24275 2020-04-24 Haijian Zhang <z.zhanghaijian@huawei.com>
24276
24277 PR rtl-optimization/94708
24278 * combine.c (simplify_if_then_else): Add check for
24279 !HONOR_NANS (mode) && !HONOR_SIGNED_ZEROS (mode).
24280
24281 2020-04-23 Martin Sebor <msebor@redhat.com>
24282
24283 PR driver/90983
24284 * common.opt (-Wno-frame-larger-than): New option.
24285 (-Wno-larger-than, -Wno-stack-usage): Same.
24286
24287 2020-04-23 Andrew Stubbs <ams@codesourcery.com>
24288
24289 * config/gcn/gcn-valu.md (mov<mode>_exec): Swap the numbers on operands
24290 2 and 3.
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.
24294
24295 2019-04-23 Eric Botcazou <ebotcazou@adacore.com>
24296
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.
24302
24303 2020-04-23 Bill Schmidt <wschmidt@linux.ibm.com>
24304
24305 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
24306 Replace outdated link to ELFv2 ABI.
24307
24308 2020-04-23 Jakub Jelinek <jakub@redhat.com>
24309
24310 PR target/94710
24311 * optabs.c (expand_vec_perm_const): For shift_amt const0_rtx
24312 just return v2.
24313
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.
24319
24320 2020-04-23 Szabolcs Nagy <szabolcs.nagy@arm.com>
24321
24322 PR target/94697
24323 * config/aarch64/aarch64-bti-insert.c (rest_of_insert_bti): Swap
24324 bti c and bti j handling.
24325
24326 2020-04-23 Andrew Stubbs <ams@codesourcery.com>
24327 Thomas Schwinge <thomas@codesourcery.com>
24328
24329 PR middle-end/93488
24330
24331 * omp-expand.c (expand_omp_target): Use force_gimple_operand_gsi on
24332 t_async and the wait arguments.
24333
24334 2020-04-23 Richard Sandiford <richard.sandiford@arm.com>
24335
24336 PR tree-optimization/94727
24337 * tree-vect-stmts.c (vectorizable_comparison): Use mask_type when
24338 comparing invariant scalar booleans.
24339
24340 2020-04-23 Matthew Malcomson <matthew.malcomson@arm.com>
24341 Jakub Jelinek <jakub@redhat.com>
24342
24343 PR target/94383
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.
24348
24349 2020-04-23 Jakub Jelinek <jakub@redhat.com>
24350
24351 PR target/94707
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.
24355
24356 2020-04-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
24357
24358 * config/arm/arm_mve.h (__arm_vbicq_n_u16): Modify function parameter's
24359 datatype.
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.
24440
24441 2020-04-23 Iain Buclaw <ibuclaw@gdcproject.org>
24442
24443 * doc/install.texi (D-Specific Options): Document
24444 --enable-libphobos-checking and --with-libphobos-druntime-only.
24445
24446 2020-04-23 Jakub Jelinek <jakub@redhat.com>
24447
24448 PR target/94707
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.
24456
24457 PR c/94705
24458 * attribs.c (decl_attribute): Don't diagnose attribute exclusions
24459 if last_decl is error_mark_node or has such a TREE_TYPE.
24460
24461 PR c/94705
24462 * attribs.c (decl_attribute): Don't diagnose attribute exclusions
24463 if last_decl is error_mark_node or has such a TREE_TYPE.
24464
24465 2020-04-22 Felix Yang <felix.yang@huawei.com>
24466
24467 PR target/94678
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):
24476 New function.
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.
24485
24486 2020-04-22 Zackery Spytz <zspytz@gmail.com>
24487
24488 * doc/extend.exi: Add "free" to list of other builtin functions
24489 supported by GCC.
24490
24491 2020-04-20 Aaron Sawdey <acsawdey@linux.ibm.com>
24492
24493 PR target/94622
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.
24500
24501 2020-04-22 Erick Ochoa <erick.ochoa@theobroma-systems.com>
24502
24503 * doc/invoke.texi: Update flags turned on by -O3.
24504
24505 2020-04-22 Jakub Jelinek <jakub@redhat.com>
24506
24507 PR target/94706
24508 * config/ia64/ia64.c (hfa_element_mode): Ignore
24509 cxx17_empty_base_field_p fields.
24510
24511 PR target/94383
24512 * calls.h (cxx17_empty_base_field_p): Declare.
24513 * calls.c (cxx17_empty_base_field_p): Define.
24514
24515 2020-04-22 Christophe Lyon <christophe.lyon@linaro.org>
24516
24517 * doc/sourcebuild.texi (arm_softfp_ok, arm_hard_ok): Document.
24518
24519 2020-04-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24520 Andre Vieira <andre.simoesdiasvieira@arm.com>
24521 Mihail Ionescu <mihail.ionescu@arm.com>
24522
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.
24530
24531 2020-04-22 Richard Sandiford <richard.sandiford@arm.com>
24532
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.
24537
24538 2020-04-21 Martin Sebor <msebor@redhat.com>
24539
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.
24545
24546 2020-04-21 John David Anglin <danglin@gcc.gnu.org>
24547
24548 * config/pa/som.h (ASM_WEAKEN_LABEL): Delete.
24549 (ASM_WEAKEN_DECL): New define.
24550 (HAVE_GAS_WEAKREF): Undefine.
24551
24552 2020-04-21 Richard Sandiford <richard.sandiford@arm.com>
24553
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.
24558
24559 2020-04-21 Jakub Jelinek <jakub@redhat.com>
24560
24561 PR c/94641
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
24566 TYPE_ARTIFICIAL.
24567 * asan.c (asan_global_struct): Likewise.
24568
24569 2020-04-21 Duan bo <duanbo3@huawei.com>
24570
24571 PR target/94577
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.
24575
24576 2020-04-21 Frederik Harwath <frederik@codesourcery.com>
24577
24578 PR other/94629
24579 * omp-low.c (new_omp_context): Remove assignments to
24580 ctx->outer_reduction_clauses and ctx->local_reduction_clauses.
24581
24582 2020-04-20 Andreas Krebbel <krebbel@linux.ibm.com>
24583
24584 * config/s390/vector.md ("popcountv8hi2_vx", "popcountv4si2_vx")
24585 ("popcountv2di2_vx"): Use simplify_gen_subreg.
24586
24587 2020-04-20 Andreas Krebbel <krebbel@linux.ibm.com>
24588
24589 PR target/94613
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.
24595
24596 2020-04-20 Richard Sandiford <richard.sandiford@arm.com>
24597
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.
24601
24602 2020-04-20 Richard Sandiford <richard.sandiford@arm.com>
24603
24604 PR target/94668
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.
24610
24611 2020-04-20 Jan Hubicka <hubicka@ucw.cz>
24612
24613 PR ipa/94582
24614 * tree-inline.c (optimize_inline_calls): Recompute calls_comdat_local
24615 flag.
24616
24617 2020-04-20 Martin Liska <mliska@suse.cz>
24618
24619 * symtab.c (symtab_node::dump_references): Add space after
24620 one entry.
24621 (symtab_node::dump_referring): Likewise.
24622
24623 2020-04-18 Jeff Law <law@redhat.com>
24624
24625 PR debug/94439
24626 * regrename.c (check_new_reg_p): Ignore DEBUG_INSNs when walking
24627 the chain.
24628
24629 2020-04-18 Iain Buclaw <ibuclaw@gdcproject.org>
24630
24631 * doc/sourcebuild.texi (Effective-Target Keywords, Environment
24632 attributes): Document d_runtime_has_std_library.
24633
24634 2020-04-17 Jeff Law <law@redhat.com>
24635
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.
24639
24640 2020-04-17 Tobias Burnus <tobias@codesourcery.com>
24641
24642 PR middle-end/94635
24643 * gimplify.c (gimplify_scan_omp_clauses): Turn MAP_TO_PSET to
24644 MAP_DELETE.
24645
24646 2020-04-17 Richard Sandiford <richard.sandiford@arm.com>
24647
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.
24653
24654 2020-04-17 Jakub Jelinek <jakub@redhat.com>
24655 Jeff Law <law@redhat.com>
24656
24657 PR target/94567
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.
24664
24665 2020-04-17 Richard Biener <rguenther@suse.de>
24666
24667 PR other/94629
24668 * cgraphclones.c (cgraph_node::create_clone): Remove duplicate
24669 initialization.
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
24673 check.
24674 * tree-ssa-sccvn.c (vn_reference_lookup_pieces): Fix pasto in
24675 initialization.
24676
24677 2020-04-17 Jakub Jelinek <jakub@redhat.com>
24678
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.
24683
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.
24687
24688 2020-04-17 Martin Liska <mliska@suse.cz>
24689 Jonathan Yong <10walls@gmail.com>
24690
24691 PR gcov-profile/94570
24692 * coverage.c (coverage_init): Use separator properly.
24693
24694 2020-04-16 Peter Bergner <bergner@linux.ibm.com>
24695
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.
24699
24700 2020-04-16 Martin Jambor <mjambor@suse.cz>
24701
24702 PR ipa/93621
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
24706 previous one.
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.
24712
24713 2020-04-16 Richard Sandiford <richard.sandiford@arm.com>
24714
24715 PR target/94606
24716 * config/aarch64/aarch64.c (aarch64_expand_sve_const_pred_eor): Take
24717 the VNx16BI lowpart of the recursively-generated constant.
24718
24719 2020-04-16 Martin Liska <mliska@suse.cz>
24720 Jakub Jelinek <jakub@redhat.com>
24721
24722 PR c++/94314
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.
24727
24728 2020-04-16 Richard Sandiford <richard.sandiford@arm.com>
24729
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>
24734
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.
24740
24741 2020-04-16 Richard Biener <rguenther@suse.de>
24742
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
24747 subreg.
24748
24749 2020-04-16 Martin Jambor <mjambor@suse.cz>
24750
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.
24754
24755 2020-04-16 Jakub Jelinek <jakub@redhat.com>
24756
24757 PR bootstrap/89494
24758 * function.c (assign_parm_find_data_types): Add workaround for
24759 BROKEN_VALUE_INITIALIZATION compilers.
24760
24761 2020-04-16 Richard Biener <rguenther@suse.de>
24762
24763 * gdbhooks.py (TreePrinter): Print SSA_NAME_VERSION of SSA_NAME
24764 nodes.
24765
24766 2020-04-15 Uroš Bizjak <ubizjak@gmail.com>
24767
24768 PR target/94603
24769 * config/i386/i386-builtin.def (__builtin_ia32_movq128):
24770 Require OPTION_MASK_ISA_SSE2.
24771
24772 2020-04-15 Gustavo Romero <gromero@linux.ibm.com>
24773
24774 PR bootstrap/89494
24775 * dumpfile.c (selftest::temp_dump_context::temp_dump_context):
24776 Don't construct a dump_context temporary to call static method.
24777
24778 2020-04-15 Andrea Corallo <andrea.corallo@arm.com>
24779
24780 * config/aarch64/falkor-tag-collision-avoidance.c
24781 (valid_src_p): Check for aarch64_address_info type before
24782 accessing base field.
24783
24784 2020-04-15 Andre Vieira <andre.simoesdiasvieira@arm.com>
24785
24786 * config/arm/mve.md (mve_vec_duplicate<mode>): New pattern.
24787 (V_sz_elem2): Remove unused mode attribute.
24788
24789 2020-04-15 Matthew Malcomson <matthew.malcomson@arm.com>
24790
24791 * config/arm/arm.md (arm_movdi): Disallow for MVE.
24792
24793 2020-04-15 Richard Biener <rguenther@suse.de>
24794
24795 PR middle-end/94539
24796 * tree-ssa-alias.c (same_type_for_tbaa): Defer to
24797 alias_sets_conflict_p for pointers.
24798
24799 2020-04-14 Max Filippov <jcmvbkbc@gmail.com>
24800
24801 PR target/94584
24802 * config/xtensa/xtensa.md (zero_extendhisi2, zero_extendqisi2)
24803 (extendhisi2_internal): Add %v1 before the load instructions.
24804
24805 2020-04-14 Aaron Sawdey <acsawdey@linux.ibm.com>
24806
24807 PR target/94542
24808 * config/rs6000/rs6000.c (address_to_insn_form): Do not attempt to
24809 use PC-relative addressing for TLS references.
24810
24811 2020-04-14 Martin Jambor <mjambor@suse.cz>
24812
24813 PR ipa/94434
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.
24817
24818 2020-04-14 Yang Yang <yangyang305@huawei.com>
24819
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.
24823
24824 2020-04-14 H.J. Lu <hongjiu.lu@intel.com>
24825
24826 PR target/94561
24827 * config/i386/i386.c (ix86_get_ssemov): Remove mode size check.
24828
24829 2020-04-13 Martin Sebor <msebor@redhat.com>
24830
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.
24834
24835 2020-04-13 Zachary Spytz <zspytz@gmail.com>
24836
24837 * doc/extend.texi: Add realloc to list of built-in functions
24838 are recognized by the compiler.
24839
24840 2020-04-13 H.J. Lu <hongjiu.lu@intel.com>
24841
24842 PR target/94556
24843 * config/i386/i386.c (ix86_expand_epilogue): Restore the frame
24844 pointer in word_mode for eh_return epilogues.
24845
24846 2020-04-13 Jozef Lawrynowicz <jozef.l@mittosystems.com>
24847
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.
24851
24852 2020-04-13 Jozef Lawrynowicz <jozef.l@mittosystems.com>
24853
24854 * config/msp430/msp430.c (msp430_print_operand): Offset a %C memory
24855 reference by 4 bytes, and %D memory reference by 6 bytes.
24856
24857 2020-04-11 Uroš Bizjak <ubizjak@gmail.com>
24858
24859 PR target/94494
24860 * config/i386/sse.md (REDUC_SSE_SMINMAX_MODE): Use TARGET_SSE2
24861 condition for V4SI, V8HI and V16QI modes.
24862
24863 2020-04-11 Jakub Jelinek <jakub@redhat.com>
24864
24865 PR debug/94495
24866 PR target/94551
24867 * cselib.c (cselib_record_sp_cfa_base_equiv): Set PRESERVED_VALUE_P on
24868 val->val_rtx.
24869
24870 2020-04-10 Thomas Schwinge <thomas@codesourcery.com>
24871
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.
24876
24877 2020-04-09 Jozef Lawrynowicz <jozef.l@mittosystems.com>
24878
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
24882 RTL pattern.
24883
24884 2020-04-09 Jakub Jelinek <jakub@redhat.com>
24885
24886 PR debug/94495
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.
24896
24897 2020-04-09 Richard Sandiford <richard.sandiford@arm.com>
24898
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
24907 function.
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.
24970
24971 2020-04-09 Richard Sandiford <richard.sandiford@arm.com>
24972
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.
24980
24981 2020-04-09 Matthew Malcomson <matthew.malcomson@arm.com>
24982
24983 * config/arm/arm_cde.h: Remove `extern "C"` when compiling for
24984 C++.
24985
24986 2020-04-09 Martin Jambor <mjambor@suse.cz>
24987 Richard Biener <rguenther@suse.de>
24988
24989 PR tree-optimization/94482
24990 * tree-sra.c (create_access_replacement): Dump new replacement with
24991 TDF_UID.
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
24996 BIT_FIELD_REF.
24997
24998 2020-04-09 Richard Sandiford <richard.sandiford@arm.com>
24999
25000 * doc/sourcebuild.texi (check-function-bodies): Treat the third
25001 parameter as a list of option regexps and require each regexp
25002 to match.
25003
25004 2020-04-09 Andrea Corallo <andrea.corallo@arm.com>
25005
25006 PR target/94530
25007 * config/aarch64/falkor-tag-collision-avoidance.c
25008 (valid_src_p): Fix missing rtx type check.
25009
25010 2020-04-09 Bin Cheng <bin.cheng@linux.alibaba.com>
25011 Richard Biener <rguenther@suse.de>
25012
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
25017 same precision.
25018
25019 2020-04-08 Clement Chigot <clement.chigot@atos.net>
25020
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.
25024
25025 2020-04-08 Jakub Jelinek <jakub@redhat.com>
25026
25027 PR middle-end/94526
25028 * cselib.c (autoinc_split): Handle e->val_rtx being SP_DERIVED_VALUE_P
25029 with zero offset.
25030 * reload1.c (eliminate_regs_1): Avoid creating
25031 (plus (reg) (const_int 0)) in DEBUG_INSNs.
25032
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.
25040
25041 2020-04-08 Richard Biener <rguenther@suse.de>
25042
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.
25046
25047 2020-04-08 H.J. Lu <hongjiu.lu@intel.com>
25048
25049 PR target/94417
25050 * config/i386/i386-features.c (rest_of_insert_endbranch): Insert
25051 ENDBR at function entry if function will be called indirectly.
25052
25053 2020-04-08 Jakub Jelinek <jakub@redhat.com>
25054
25055 PR target/94438
25056 * config/i386/i386.c (ix86_get_mask_mode): Only use int mask for elem_size
25057 1, 2, 4 and 8.
25058
25059 2020-04-08 Martin Liska <mliska@suse.cz>
25060
25061 PR c++/94314
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
25068 flag.
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.
25083
25084 2020-04-08 Dennis Zhang <dennis.zhang@arm.com>
25085 Matthew Malcomson <matthew.malcomson@arm.com>
25086
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
25097 TARGET_VFP_BASE.
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.
25113
25114 2020-04-08 Dennis Zhang <dennis.zhang@arm.com>
25115
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
25126 supports option.
25127 (arm_v8m_main_cde_fp, arm_v8_1m_main_cde_mve): Likewise.
25128
25129 2020-04-08 Jakub Jelinek <jakub@redhat.com>
25130
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.
25136
25137 2020-04-08 Tobias Burnus <tobias@codesourcery.com>
25138
25139 * omp-grid.c (grid_eliminate_combined_simd_part): Use
25140 OMP_CLAUSE_CODE to access the omp clause code.
25141
25142 2020-04-07 Jeff Law <law@redhat.com>
25143
25144 PR rtl-optimization/92264
25145 * config/h8300/h8300.md (mov;add peephole2): Avoid applying when
25146 the destination is the stack pointer.
25147
25148 2020-04-07 Jakub Jelinek <jakub@redhat.com>
25149
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
25154 update LOG_LINKs.
25155
25156 2020-04-07 Richard Biener <rguenther@suse.de>
25157
25158 PR middle-end/94479
25159 * gimplify.c (gimplify_addr_expr): Also consider generated
25160 MEM_REFs.
25161
25162 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
25163
25164 * config/arm/arm_mve.h: Add C++ polymorphism and fix preserve MACROs.
25165
25166 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
25167
25168 * config/arm/arm_mve.h: Cast some pointers to expected types.
25169
25170 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
25171
25172 * config/arm/arm_mve.h: Replace all uses of vuninitializedq_* with the
25173 same with '__arm_' prefix.
25174
25175 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
25176
25177 * config/arm/mve.md (mve_vec_extract*): Allow memory operands in set.
25178
25179 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
25180
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.
25188
25189 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
25190
25191 * config/arm/arm.d (ashldi3): Don't use lsll for constant 32-bit shifts.
25192
25193 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
25194
25195 * config/arm/arm_mve.h: Fix v[id]wdup intrinsics.
25196 * config/arm/mve/md: Fix v[id]wdup patterns.
25197
25198 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
25199
25200 * config/arm/arm.c (output_move_neon): Deal with label + offset cases.
25201 * config/arm/mve.md (*mve_mov<mode>): Handle const vectors.
25202
25203 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
25204
25205 * config/arm/arm_mve.h: Remove use of typeof for addr pointer parameters
25206 and remove const_ptr enums.
25207
25208 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
25209
25210 * config/arm/arm_mve.h (vsubq_n): Merge with...
25211 (vsubq): ... this.
25212 (vmulq_n): Merge with...
25213 (vmulq): ... this.
25214 (__ARM_mve_typeid): Simplify scalar and constant detection.
25215
25216 2020-04-07 Jakub Jelinek <jakub@redhat.com>
25217
25218 PR target/94509
25219 * config/i386/i386-expand.c (expand_vec_perm_pshufb): Fix the check
25220 for inter-lane permutation for 64-byte modes.
25221
25222 PR target/94488
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.
25227
25228 2020-04-07 Sebastian Huber <sebastian.huber@embedded-brains.de>
25229
25230 * config/rs6000/t-rtems: Delete mcpu=8540 multilib.
25231
25232 2020-04-07 Jakub Jelinek <jakub@redhat.com>
25233
25234 PR target/94500
25235 * config/i386/i386-expand.c (emit_reduc_half): For V{64QI,32HI}mode
25236 handle i < 64 using avx512bw_lshrv4ti3. Formatting fixes.
25237
25238 2020-04-06 Jakub Jelinek <jakub@redhat.com>
25239
25240 * cselib.c (cselib_subst_to_values): For SP_DERIVED_VALUE_P
25241 + const0_rtx return the SP_DERIVED_VALUE_P.
25242
25243 2020-04-06 Richard Sandiford <richard.sandiford@arm.com>
25244
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.
25248
25249 2020-04-05 Zachary Spytz <zspytz@gmail.com>
25250
25251 * extend.texi: Add free to list of ISO C90 functions that
25252 are recognized by the compiler.
25253
25254 2020-04-05 Nagaraju Mekala <nmekala@xilix.com>
25255
25256 * config/microblaze/microblaze.c (microblaze_must_save_register): Check
25257 for fast_interrupt.
25258
25259 * config/microblaze/microblaze.md (trap): Update output pattern.
25260
25261 2020-04-04 Hannes Domani <ssbssa@yahoo.de>
25262 Jakub Jelinek <jakub@redhat.com>
25263
25264 PR debug/94459
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.
25269
25270 2020-04-04 Jan Hubicka <hubicka@ucw.cz>
25271
25272 PR ipa/93940
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.
25278
25279 2020-04-04 Jakub Jelinek <jakub@redhat.com>
25280
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).
25288
25289 PR debug/94441
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.
25295
25296 2020-04-03 Jeff Law <law@redhat.com>
25297
25298 PR rtl-optimization/92264
25299 * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Handle
25300 reloading of auto-increment addressing modes.
25301
25302 2020-04-03 H.J. Lu <hongjiu.lu@intel.com>
25303
25304 PR target/94467
25305 * config/i386/sse.md (ssse3_pshufbv8qi3): Mark scratch operand
25306 as earlyclobber.
25307
25308 2020-04-03 Jeff Law <law@redhat.com>
25309
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.
25314
25315 2020-04-03 Jakub Jelinek <jakub@redhat.com>
25316
25317 PR target/94460
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.
25322
25323 2020-04-03 Andre Vieira <andre.simoesdiasvieira@arm.com>
25324
25325 * config/arm/arm_mve.h: Condition the header file on __ARM_FEATURE_MVE.
25326
25327 2020-04-03 Tamar Christina <tamar.christina@arm.com>
25328
25329 PR target/94396
25330 * common/config/aarch64/aarch64-common.c
25331 (aarch64_get_extension_string_for_isa_flags): Handle default flags.
25332
25333 2020-04-03 Richard Biener <rguenther@suse.de>
25334
25335 PR middle-end/94465
25336 * tree.c (array_ref_low_bound): Deal with released SSA names
25337 in index position.
25338
25339 2020-04-03 Kwok Cheung Yeung <kcy@codesourcery.com>
25340
25341 * config/gcn/gcn.c (print_operand): Handle unordered comparison
25342 operators.
25343 * config/gcn/predicates.md (gcn_fp_compare_operator): Add unordered
25344 comparison operators.
25345
25346 2020-04-03 Kewen Lin <linkw@gcc.gnu.org>
25347
25348 PR tree-optimization/94443
25349 * tree-vect-loop.c (vectorizable_live_operation): Use
25350 gsi_insert_seq_before to replace gsi_insert_before.
25351
25352 2020-04-03 Martin Liska <mliska@suse.cz>
25353
25354 PR ipa/94445
25355 * ipa-icf-gimple.c (func_checker::compare_gimple_call):
25356 Compare type attributes for gimple_call_fntypes.
25357
25358 2020-04-02 Sandra Loosemore <sandra@codesourcery.com>
25359
25360 * alias.c (get_alias_set): Fix comment typos.
25361
25362 2020-04-02 Fritz Reese <foreese@gcc.gnu.org>
25363
25364 PR fortran/85982
25365 * fortran/decl.c (match_attr_spec): Lump COMP_STRUCTURE/COMP_MAP into
25366 attribute checking used by TYPE.
25367
25368 2020-04-02 Martin Jambor <mjambor@suse.cz>
25369
25370 PR ipa/92676
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
25376 of the new check.
25377 (mark_callers_calls_comdat_local): New function.
25378 (process_isra_node_results): Set calls_comdat_local of callers if
25379 appropriate.
25380
25381 2020-04-02 Richard Biener <rguenther@suse.de>
25382
25383 PR c/94392
25384 * common.opt (ffinite-loops): Initialize to zero.
25385 * opts.c (default_options_table): Remove OPT_ffinite_loops
25386 entry.
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
25390 finite_p.
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
25398 default setting.
25399
25400 2020-04-02 Richard Biener <rguenther@suse.de>
25401
25402 PR debug/94450
25403 * dwarf2out.c (dwarf2out_early_finish): Remove code emitting
25404 DW_TAG_imported_unit.
25405
25406 2020-04-02 Maciej W. Rozycki <macro@wdc.com>
25407
25408 * doc/install.texi (Specific) <riscv32-*-elf, riscv32-*-linux>
25409 <riscv64-*-elf, riscv64-*-linux>: Update binutils requirement to
25410 2.30.
25411
25412 2020-04-02 Kewen Lin <linkw@gcc.gnu.org>
25413
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.
25417
25418 2020-04-02 Jakub Jelinek <jakub@redhat.com>
25419
25420 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add a space in
25421 between a string literal and MIPS_SYSVERSION_SPEC macro.
25422
25423 2020-04-02 Martin Jambor <mjambor@suse.cz>
25424
25425 * doc/invoke.texi (Optimize Options): Document sra-max-propagations.
25426
25427 2020-04-02 Jakub Jelinek <jakub@redhat.com>
25428
25429 PR rtl-optimization/92264
25430 * params.opt (-param=max-find-base-term-values=): Decrease default
25431 from 2000 to 200.
25432
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
25462 cfa_base value.
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.
25467
25468 PR target/94435
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.
25471
25472 2020-04-02 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
25473
25474 PR target/94317
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
25479 address.
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
25511 pattern.
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.
25523
25524 2020-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
25525
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
25535 modifier.
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.
25545
25546 2020-04-01 Peter Bergner <bergner@linux.ibm.com>
25547
25548 PR rtl-optimization/94123
25549 * lower-subreg.c (pass_lower_subreg3::gate): Remove test for
25550 flag_split_wide_types_early.
25551
25552 2020-04-01 Joerg Sonnenberger <joerg@bec.de>
25553
25554 * doc/extend.texi (Common Function Attributes): Fix typo.
25555
25556 2020-04-01 Segher Boessenkool <segher@kernel.crashing.org>
25557
25558 PR target/94420
25559 * config/rs6000/rs6000.md (*tocref<mode> for P): Add insn condition
25560 on operands[1].
25561
25562 2020-04-01 Zackery Spytz <zspytz@gmail.com>
25563
25564 * doc/extend.texi: Fix a typo in the documentation of the
25565 copy function attribute.
25566
25567 2020-04-01 Jakub Jelinek <jakub@redhat.com>
25568
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.
25573
25574 2020-04-01 Kewen Lin <linkw@gcc.gnu.org>
25575
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.
25579
25580 2020-03-31 Felix Yang <felix.yang@huawei.com>
25581
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.
25587
25588 2020-03-31 Andrew Stubbs <ams@codesourcery.com>
25589
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.
25700
25701 2020-03-31 Claudiu Zissulescu <claziss@synopsys.com>
25702
25703 * config/arc/arc.c (arc_print_operand): Use
25704 HOST_WIDE_INT_PRINT_DEC macro.
25705
25706 2020-03-31 Claudiu Zissulescu <claziss@synopsys.com>
25707
25708 * config/arc/arc.h (ASM_FORMAT_PRIVATE_NAME): Fix it.
25709
25710 2020-03-31 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
25711
25712 * config/arm/arm_mve.h (vbicq): Define MVE intrinsic polymorphic
25713 variant.
25714 (__arm_vbicq): Likewise.
25715
25716 2020-03-31 Vineet Gupta <vgupta@synopsys.com>
25717
25718 * config/arc/linux.h: GLIBC_DYNAMIC_LINKER support BE/arc700.
25719
25720 2020-03-31 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
25721
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.
25802
25803 2020-03-31 Jakub Jelinek <jakub@redhat.com>
25804
25805 PR target/94368
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
25809 constraint.
25810
25811 2020-03-31 Marc Glisse <marc.glisse@inria.fr>
25812 Jakub Jelinek <jakub@redhat.com>
25813
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.
25817
25818 2020-03-31 Jakub Jelinek <jakub@redhat.com>
25819
25820 PR tree-optimization/94403
25821 * gimple-ssa-store-merging.c (verify_symbolic_number_p): Allow also
25822 ENUMERAL_TYPE lhs_type.
25823
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.
25829
25830 2020-03-30 David Malcolm <dmalcolm@redhat.com>
25831
25832 * lra.c (finish_insn_code_data_once): Set the array elements
25833 to NULL after freeing them.
25834
25835 2020-03-30 Andreas Schwab <schwab@suse.de>
25836
25837 * config/host-linux.c (TRY_EMPTY_VM_SPACE) [__riscv && __LP64__]:
25838 Define.
25839
25840 2020-03-30 Will Schmidt <will_schmidt@vnet.ibm.com>
25841
25842 * config/rs6000/rs6000-call.c altivec_init_builtins(): Remove code
25843 to skip defining builtins based on builtin_mask.
25844
25845 2020-03-30 Jakub Jelinek <jakub@redhat.com>
25846
25847 PR target/94343
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.
25851
25852 PR target/93069
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
25856 %{%3%}.
25857
25858 2020-03-30 Alan Modra <amodra@gmail.com>
25859
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.
25870
25871 2020-03-29 H.J. Lu <hongjiu.lu@intel.com>
25872
25873 PR driver/94381
25874 * doc/invoke.texi: Update -falign-functions, -falign-loops and
25875 -falign-jumps documentation.
25876
25877 2020-03-29 Martin Liska <mliska@suse.cz>
25878
25879 PR ipa/94363
25880 * cgraphunit.c (process_function_and_variable_attributes): Remove
25881 double 'attribute' words.
25882
25883 2020-03-29 John David Anglin <dave.anglin@bell.net>
25884
25885 * config/pa/pa.c (pa_asm_output_aligned_bss): Delete duplicate
25886 .align output.
25887
25888 2020-03-28 Jakub Jelinek <jakub@redhat.com>
25889
25890 PR c/93573
25891 * c-decl.c (grokdeclarator): After issuing errors, set size_int_const
25892 to true after setting size to integer_one_node.
25893
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
25897 after gsi_last_bb.
25898
25899 2020-03-27 Alan Modra <amodra@gmail.com>
25900
25901 PR target/94145
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.
25907
25908 2020-03-27 Martin Sebor <msebor@redhat.com>
25909
25910 PR c++/94098
25911 * calls.c (init_attr_rdwr_indices): Iterate over all access attributes.
25912
25913 2020-03-27 Andrew Stubbs <ams@codesourcery.com>
25914
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.
25937
25938 2020-03-27 David Malcolm <dmalcolm@redhat.com>
25939
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.
25954
25955 2020-03-27 Richard Biener <rguenther@suse.de>
25956
25957 PR debug/94273
25958 * dwarf2out.c (should_emit_struct_debug): Return false for
25959 DINFO_LEVEL_TERSE.
25960
25961 2020-03-27 Richard Biener <rguenther@suse.de>
25962
25963 PR tree-optimization/94352
25964 * tree-ssa-propagate.c (ssa_prop_init): Move seeding of the
25965 worklist ...
25966 (ssa_propagation_engine::ssa_propagate): ... here after
25967 initializing curr_order.
25968
25969 2020-03-27 Kewen Lin <linkw@gcc.gnu.org>
25970
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
25975 types.
25976 (vectorizable_load): Likewise.
25977
25978 2020-03-27 Roman Zhuykov <zhroma@ispras.ru>
25979
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.
25993
25994 2020-03-26 Jakub Jelinek <jakub@redhat.com>
25995
25996 PR debug/94323
25997 * tree.c (protected_set_expr_location): Recurse on STATEMENT_LIST
25998 that contains exactly one non-DEBUG_BEGIN_STMT statement.
25999
26000 PR debug/94281
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
26009 gbind body.
26010
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.
26015
26016 2020-03-26 Felix Yang <felix.yang@huawei.com>
26017
26018 PR tree-optimization/94269
26019 * tree-ssa-math-opts.c (convert_plusminus_to_widen): Restrict
26020 this
26021 operation to single basic block.
26022
26023 2020-03-25 Jeff Law <law@redhat.com>
26024
26025 PR rtl-optimization/90275
26026 * config/sh/sh.md (mov_neg_si_t): Clobber the T register in the
26027 pattern.
26028
26029 2020-03-25 Jakub Jelinek <jakub@redhat.com>
26030
26031 PR target/94292
26032 * config/arm/arm.c (arm_gen_dicompare_reg): Set mode of COMPARE to
26033 mode rather than VOIDmode.
26034
26035 2020-03-25 Martin Sebor <msebor@redhat.com>
26036
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.
26041
26042 2020-03-25 Richard Sandiford <richard.sandiford@arm.com>
26043
26044 PR target/94254
26045 * config/rs6000/rs6000.c (rs6000_can_change_mode_class): Allow
26046 FPRs to change between SDmode and DDmode.
26047
26048 2020-03-25 Martin Sebor <msebor@redhat.com>
26049
26050 PR tree-optimization/94131
26051 * gimple-fold.c (get_range_strlen_tree): Fail for variable-length
26052 types and decls.
26053 * tree-ssa-strlen.c (get_range_strlen_dynamic): Avoid assuming
26054 types have constant sizes.
26055
26056 2020-03-25 Martin Liska <mliska@suse.cz>
26057
26058 PR lto/94259
26059 * configure.ac: Report error only when --with-zstd
26060 is used.
26061 * configure: Regenerate.
26062
26063 2020-03-25 Jakub Jelinek <jakub@redhat.com>
26064
26065 PR target/94308
26066 * config/i386/i386-features.c (ix86_add_reg_usage_to_vzeroupper): Set
26067 INSN_CODE (insn) to -1 when changing the pattern.
26068
26069 2020-03-25 Martin Liska <mliska@suse.cz>
26070
26071 PR target/93274
26072 PR ipa/94271
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
26079 symbol.
26080
26081 2020-03-25 Martin Liska <mliska@suse.cz>
26082
26083 PR lto/94259
26084 * configure.ac: Respect --without-zstd and report
26085 error when we can't find header file with --with-zstd.
26086 * configure: Regenerate.
26087
26088 2020-03-25 Jakub Jelinek <jakub@redhat.com>
26089
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
26094 go backwards.
26095
26096 PR c++/94223
26097 * langhooks.c (lhd_set_decl_assembler_name): Use a static ulong
26098 counter instead of DECL_UID.
26099
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.
26103
26104 2020-03-25 Richard Biener <rguenther@suse.de>
26105 Jakub Jelinek <jakub@redhat.com>
26106
26107 PR debug/94283
26108 * tree-if-conv.c (ifcvt_local_dce): Delete dead statements backwards.
26109
26110 2020-03-24 Christophe Lyon <christophe.lyon@linaro.org>
26111
26112 * doc/sourcebuild.texi (ARM-specific attributes): Add
26113 arm_fp_dp_ok.
26114 (Features for dg-add-options): Add arm_fp_dp.
26115
26116 2020-03-24 John David Anglin <danglin@gcc.gnu.org>
26117
26118 PR lto/94249
26119 * config/pa/pa.h (TARGET_CPU_CPP_BUILTINS): Define __BIG_ENDIAN__.
26120
26121 2020-03-24 Tobias Burnus <tobias@codesourcery.com>
26122
26123 PR libgomp/81689
26124 * omp-offload.c (omp_finish_file): Fix target-link handling if
26125 targetm_common.have_named_sections is false.
26126
26127 2020-03-24 Jakub Jelinek <jakub@redhat.com>
26128
26129 PR target/94286
26130 * config/arm/arm.md (subvdi4, usubvsi4, usubvdi4): Use gen_int_mode
26131 instead of GEN_INT.
26132
26133 PR debug/94285
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.
26138
26139 PR debug/94283
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.
26144
26145 PR debug/94277
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.
26150
26151 2020-03-23 Jeff Law <law@redhat.com>
26152
26153 PR rtl-optimization/90275
26154 PR target/94238
26155 PR target/94144
26156 * simplify-rtx.c (comparison_code_valid_for_mode): New function.
26157 (simplify_logical_relational_operation): Use it.
26158
26159 2020-03-23 Jakub Jelinek <jakub@redhat.com>
26160
26161 PR c++/91993
26162 * tree.c (get_narrower): Handle COMPOUND_EXPR by recursing on
26163 ultimate rhs and if returned something different, reconstructing
26164 the COMPOUND_EXPRs.
26165
26166 2020-03-23 Lewis Hyatt <lhyatt@gmail.com>
26167
26168 * opts.c (print_filtered_help): Improve the help text for alias options.
26169
26170 2020-03-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
26171 Andre Vieira <andre.simoesdiasvieira@arm.com>
26172 Mihail Ionescu <mihail.ionescu@arm.com>
26173
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.
26193
26194 2020-03-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
26195
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
26201 Big-Endian Mode.
26202 (sqrshr): Define macro.
26203 (sqrshrl): Likewise.
26204 (sqrshrl_sat48): Likewise.
26205 (sqshl): Likewise.
26206 (sqshll): Likewise.
26207 (srshr): Likewise.
26208 (srshrl): Likewise.
26209 (uqrshl): Likewise.
26210 (uqrshll): Likewise.
26211 (uqrshll_sat48): Likewise.
26212 (uqshl): Likewise.
26213 (uqshll): Likewise.
26214 (urshr): Likewise.
26215 (urshrl): Likewise.
26216 (lsll): Likewise.
26217 (asrl): 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
26235 qualifier.
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.
26251
26252 2020-03-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
26253 Andre Vieira <andre.simoesdiasvieira@arm.com>
26254 Mihail Ionescu <mihail.ionescu@arm.com>
26255
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
26302 pattern.
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
26309 file.
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
26316 MVE and NEON.
26317
26318 2020-03-23 Andre Vieira <andre.simoesdiasvieira@arm.com>
26319
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.
26323
26324 2020-03-23 Richard Biener <rguenther@suse.de>
26325
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.
26331
26332 2020-03-23 Tobias Burnus <tobias@codesourcery.com>
26333
26334 * doc/install.texi (amdgcn-*-amdhsa): Renamed
26335 from amdgcn-unknown-amdhsa; change
26336 amdgcn-unknown-amdhsa to amdgcn-amdhsa.
26337
26338 2020-03-23 Richard Biener <rguenther@suse.de>
26339
26340 PR ipa/94245
26341 * ipa-prop.c (ipa_read_jump_function): Build the ADDR_EXRP
26342 directly rather than also folding it via build_fold_addr_expr.
26343
26344 2020-03-23 Richard Biener <rguenther@suse.de>
26345
26346 PR tree-optimization/94266
26347 * tree-ssa-forwprop.c (pass_forwprop::execute): Do not propagate
26348 addresses of TARGET_MEM_REFs.
26349
26350 2020-03-23 Martin Liska <mliska@suse.cz>
26351
26352 PR ipa/94250
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.
26357
26358 2020-03-22 Iain Sandoe <iain@sandoe.co.uk>
26359
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.
26364
26365 2020-03-21 Iain Sandoe <iain@sandoe.co.uk>
26366
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.
26373
26374 2020-03-21 Iain Sandoe <iain@sandoe.co.uk>
26375
26376 PR target/93694
26377 * config/darwin.opt: Amend options descriptions.
26378
26379 2020-03-21 Richard Sandiford <richard.sandiford@arm.com>
26380
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.
26385
26386 2020-03-20 Martin Jambor <mjambor@suse.cz>
26387
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.
26395
26396 2020-03-20 Carl Love <cel@us.ibm.com>
26397
26398 PR/target 87583
26399 * config/rs6000/rs6000.c (rs6000_option_override_internal):
26400 Add check for TARGET_FPRND for Power 7 or newer.
26401
26402 2020-03-20 Jan Hubicka <hubicka@ucw.cz>
26403
26404 PR ipa/93347
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
26409 reality.
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.
26420
26421 2020-03-20 Richard Biener <rguenther@suse.de>
26422
26423 * tree-vect-slp.c (vect_analyze_slp_instance): Dump SLP tree
26424 from the possibly modified root.
26425
26426 2020-03-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
26427 Andre Vieira <andre.simoesdiasvieira@arm.com>
26428 Mihail Ionescu <mihail.ionescu@arm.com>
26429
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.
26511 (vld2q): Likewise.
26512 (vld4q): Likewise.
26513 (vst1q_p): Likewise.
26514 (vst2q): Likewise.
26515 * config/arm/arm_mve_builtins.def (STORE1): Use builtin qualifier.
26516 (LOAD1): Likewise.
26517 * config/arm/mve.md (mve_vst2q<mode>): Define RTL pattern.
26518 (mve_vld2q<mode>): Likewise.
26519 (mve_vld4q<mode>): Likewise.
26520
26521 2020-03-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
26522 Andre Vieira <andre.simoesdiasvieira@arm.com>
26523 Mihail Ionescu <mihail.ionescu@arm.com>
26524
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.
26566 (vadcq): Likewise.
26567 (vsbciq_m): Likewise.
26568 (vsbciq): Likewise.
26569 (vsbcq_m): Likewise.
26570 (vsbcq): Likewise.
26571 * config/arm/arm_mve_builtins.def (BINOP_NONE_NONE_NONE): Use builtin
26572 qualifier.
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.
26578 (VSBCQ): Likewise.
26579 (VSBCQ_M): Likewise.
26580 (VSBCIQ): Likewise.
26581 (VSBCIQ_M): Likewise.
26582 (VADCQ): 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.
26596
26597 2020-03-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
26598
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.
27421
27422 2020-03-20 Richard Biener <rguenther@suse.de>
27423
27424 * tree-vect-slp.c (vect_analyze_slp_instance): Push the stmts
27425 to vectorize for CTOR defs.
27426
27427 2020-03-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
27428 Andre Vieira <andre.simoesdiasvieira@arm.com>
27429 Mihail Ionescu <mihail.ionescu@arm.com>
27430
27431 * config/arm/arm-builtins.c (LDRGBWBS_QUALIFIERS): Define builtin
27432 qualifier.
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
27485 qualifier.
27486 * config/arm/mve.md (mve_vstrwq_scatter_base_wb_<supf>v4si): Define RTL
27487 pattern.
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.
27517
27518 2020-03-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
27519 Andre Vieira <andre.simoesdiasvieira@arm.com>
27520 Mihail Ionescu <mihail.ionescu@arm.com>
27521
27522 * config/arm/arm-builtins.c
27523 (QUINOP_UNONE_UNONE_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Define quinary
27524 builtin qualifier.
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
27639 qualifier.
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.
27660
27661 2020-03-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
27662
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.
27874
27875 2020-03-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
27876 Andre Vieira <andre.simoesdiasvieira@arm.com>
27877 Mihail Ionescu <mihail.ionescu@arm.com>
27878
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
27904 to support MVE.
27905 (addv8hf3): Define standard RTL pattern for MVE and Neon.
27906 (add<mode>3): Modify existing standard add RTL pattern for Neon and IWMMXT.
27907
27908 2020-03-20 Martin Liska <mliska@suse.cz>
27909
27910 PR ipa/94232
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
27913 from bits.
27914
27915 2020-03-20 Richard Biener <rguenther@suse.de>
27916
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.
27921
27922 2020-03-20 Andre Vieira <andre.simoesdiasvieira@arm.com>
27923
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.
27927
27928 2020-03-20 Andre Vieira <andre.simoesdiasvieira@arm.com>
27929
27930 * config/arm/mve.md (mve_mov<mode>): Fix R->R case.
27931
27932 2020-03-20 Jakub Jelinek <jakub@redhat.com>
27933
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
27938 different lp_nr.
27939
27940 2020-03-20 Andre Vieira <andre.simoesdiasvieira@arm.com>
27941
27942 * config/arm/arm.md (define_attr "conds"): Fix logic for neon and mve.
27943
27944 2020-03-19 Jan Hubicka <hubicka@ucw.cz>
27945
27946 PR ipa/94202
27947 * cgraph.c (cgraph_node::function_symbol): Fix availability computation.
27948 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
27949
27950 2020-03-19 Jan Hubicka <hubicka@ucw.cz>
27951
27952 PR ipa/92372
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.
27956
27957 2020-03-19 Martin Liska <mliska@suse.cz>
27958
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.
27964
27965 2020-03-19 Jakub Jelinek <jakub@redhat.com>
27966
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
27971 all uses.
27972
27973 2020-03-19 Richard Biener <rguenther@suse.de>
27974
27975 PR ipa/94217
27976 * ipa-cp.c (ipa_get_jf_ancestor_result): Avoid build_fold_addr_expr
27977 and build_ref_for_offset.
27978
27979 2020-03-19 Richard Biener <rguenther@suse.de>
27980
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.
27984
27985 2020-03-18 Segher Boessenkool <segher@kernel.crashing.org>
27986
27987 * config/rs6000/constraints.md (wd, wf, wi, ws, ww): New undocumented
27988 aliases for "wa".
27989
27990 2020-03-12 Richard Sandiford <richard.sandiford@arm.com>
27991
27992 PR rtl-optimization/90275
27993 * cse.c (cse_insn): Delete no-op register moves too.
27994
27995 2020-03-18 Martin Sebor <msebor@redhat.com>
27996
27997 PR ipa/92799
27998 * cgraphunit.c (process_function_and_variable_attributes): Also
27999 complain about weakref function definitions and drop all effects
28000 of the attribute.
28001
28002 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
28003 Mihail Ionescu <mihail.ionescu@arm.com>
28004 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
28005
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.
28086 (STRSS): Likewise.
28087 (STRSS_P): Likewise.
28088 (STRSU): 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.
28118
28119 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
28120 Mihail Ionescu <mihail.ionescu@arm.com>
28121 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
28122
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.
28214 (STRSS): Likewise.
28215 (STRSS_P): Likewise.
28216 (STRSU): Likewise.
28217 (STRSU_P): Likewise.
28218 (STRU): 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.
28239
28240 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
28241 Mihail Ionescu <mihail.ionescu@arm.com>
28242 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
28243
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.
28330 (LDRS): Likewise.
28331 (LDRU_Z): Likewise.
28332 (LDRS_Z): Likewise.
28333 (LDRGU_Z): Likewise.
28334 (LDRGU): Likewise.
28335 (LDRGS_Z): Likewise.
28336 (LDRGS): 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.
28358
28359 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
28360 Mihail Ionescu <mihail.ionescu@arm.com>
28361 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
28362
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.
28449 (LDRS): Likewise.
28450 (LDRU_Z): Likewise.
28451 (LDRS_Z): Likewise.
28452 (LDRGU_Z): Likewise.
28453 (LDRGU): Likewise.
28454 (LDRGS_Z): Likewise.
28455 (LDRGS): 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.
28477
28478 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
28479 Mihail Ionescu <mihail.ionescu@arm.com>
28480 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
28481
28482 * config/arm/arm-builtins.c (LDRGBS_Z_QUALIFIERS): Define builtin
28483 qualifier.
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
28519 qualifier.
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
28526 RTL pattern.
28527 (mve_vldrbq_z_<supf><mode>): Likewise.
28528 (mve_vldrwq_gather_base_z_<supf>v4si): Likewise.
28529
28530 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
28531 Mihail Ionescu <mihail.ionescu@arm.com>
28532 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
28533
28534 * config/arm/arm-builtins.c (STRS_P_QUALIFIERS): Define builtin
28535 qualifier.
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
28573 qualifier.
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
28580 RTL pattern.
28581 (mve_vstrwq_scatter_base_p_<supf>v4si): Likewise.
28582 (mve_vstrbq_p_<supf><mode>): Likewise.
28583
28584 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
28585 Mihail Ionescu <mihail.ionescu@arm.com>
28586 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
28587
28588 * config/arm/arm-builtins.c (LDRGU_QUALIFIERS): Define builtin
28589 qualifier.
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
28625 qualifier.
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.
28637
28638 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
28639 Mihail Ionescu <mihail.ionescu@arm.com>
28640 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
28641
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
28680 qualifier.
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.
28693
28694 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
28695 Mihail Ionescu <mihail.ionescu@arm.com>
28696 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
28697
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
28853 builtin qualifier.
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.
28885
28886 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
28887 Mihail Ionescu <mihail.ionescu@arm.com>
28888 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
28889
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.
29115
29116 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
29117 Mihail Ionescu <mihail.ionescu@arm.com>
29118 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
29119
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
29800 builtin qualifier.
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.
29908
29909 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
29910 Mihail Ionescu <mihail.ionescu@arm.com>
29911 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
29912
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.
30010
30011 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
30012 Mihail Ionescu <mihail.ionescu@arm.com>
30013 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
30014
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.
30447 (vfmaq): Likewise.
30448 (vfmasq_n): Likewise.
30449 (vfmsq): 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
30505 builtin qualifier.
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.
30631
30632 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
30633 Mihail Ionescu <mihail.ionescu@arm.com>
30634 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
30635
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
31212 builtin qualifier.
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.
31310
31311 2020-03-18 Andrew Stubbs <ams@codesourcery.com>
31312
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.
31316
31317 2020-03-18 Andrew Stubbs <ams@codesourcery.com>
31318
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.
31324
31325 2020-03-18 Richard Biener <rguenther@suse.de>
31326
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
31330 the store.
31331
31332 2020-03-18 Jakub Jelinek <jakub@redhat.com>
31333
31334 * asan.c (get_mem_refs_of_builtin_call): Fix up duplicated word issue
31335 in a comment.
31336 * config/arc/arc.c (frame_stack_add): Likewise.
31337 * gimple-loop-versioning.cc (loop_versioning::analyze_arbitrary_term):
31338 Likewise.
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.
31343
31344 2020-03-18 Duan bo <duanbo3@huawei.com>
31345
31346 PR target/94201
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.
31352
31353 2020-03-18 Richard Sandiford <richard.sandiford@arm.com>
31354
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.
31359
31360 2020-03-18 Richard Biener <rguenther@suse.de>
31361
31362 PR middle-end/94188
31363 * fold-const.c (build_fold_addr_expr): Convert address to
31364 correct type.
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.
31373
31374 2020-03-17 Alexey Neyman <stilor@att.net>
31375
31376 PR debug/93751
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
31382 terse.
31383
31384 2020-03-17 Richard Sandiford <richard.sandiford@arm.com>
31385
31386 * config/aarch64/iterators.md (Vmtype): Handle V4BF and V8BF.
31387
31388 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
31389 Mihail Ionescu <mihail.ionescu@arm.com>
31390 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
31391
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.
31516
31517 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
31518 Mihail Ionescu <mihail.ionescu@arm.com>
31519 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
31520
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.
31813 (vrndq): Likewise.
31814 (vrndpq): Likewise.
31815 (vrndnq): Likewise.
31816 (vrndmq): Likewise.
31817 (vrndaq): Likewise.
31818 (vrev64q): Likewise.
31819 (vnegq): Likewise.
31820 (vdupq_n): Likewise.
31821 (vabsq): Likewise.
31822 (vrev32q): Likewise.
31823 (vcvtbq_f32): Likewise.
31824 (vcvttq_f32): Likewise.
31825 (vcvtq): Likewise.
31826 (vsubq_n): Likewise.
31827 (vbrsrq_n): Likewise.
31828 (vcvtq_n): Likewise.
31829 (vsubq): Likewise.
31830 (vorrq): Likewise.
31831 (vabdq): Likewise.
31832 (vaddq_n): Likewise.
31833 (vandq): Likewise.
31834 (vbicq): Likewise.
31835 (vornq): Likewise.
31836 (vmulq_n): Likewise.
31837 (vmulq): 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.
31867 (veorq): Likewise.
31868 (veorq): 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.
32004
32005 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
32006 Mihail Ionescu <mihail.ionescu@arm.com>
32007 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
32008
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.
32754 (vorrq): Likewise.
32755 (vornq): Likewise.
32756 (vmulq_n): Likewise.
32757 (vmulq): Likewise.
32758 (vmulltq_int): Likewise.
32759 (vmullbq_int): Likewise.
32760 (vmulhq): Likewise.
32761 (vminq): Likewise.
32762 (vminaq): Likewise.
32763 (vmaxq): 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.
32771 (veorq): Likewise.
32772 (vcaddq_rot90): Likewise.
32773 (vcaddq_rot270): Likewise.
32774 (vbrsrq_n): Likewise.
32775 (vbicq_n): Likewise.
32776 (vbicq): Likewise.
32777 (vaddq): Likewise.
32778 (vaddq_n): Likewise.
32779 (vandq): Likewise.
32780 (vabdq): 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
32792 and 8.
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
32871 constraint Rg.
32872
32873 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
32874 Mihail Ionescu <mihail.ionescu@arm.com>
32875 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
32876
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.
32911 (vshlq): Likewise.
32912 * config/arm/arm_mve_builtins.def (BINOP_NONE_NONE_UNONE_QUALIFIERS):
32913 Use it.
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.
32919
32920 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
32921 Mihail Ionescu <mihail.ionescu@arm.com>
32922 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
32923
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):
32966 Use it.
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.
32978
32979 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
32980 Mihail Ionescu <mihail.ionescu@arm.com>
32981 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
32982
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
33012 it.
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.
33024
33025 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
33026 Mihail Ionescu <mihail.ionescu@arm.com>
33027 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
33028
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.
33038 (vpnot): 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
33045 qualifier.
33046 * config/arm/mve.md (mve_vctp<mode1>qhi): Define RTL pattern.
33047 (mve_vpnothi): Likewise.
33048
33049 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
33050 Mihail Ionescu <mihail.ionescu@arm.com>
33051 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
33052
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.
33195 (vabsq): Likewise.
33196 (vclsq): Likewise.
33197 (vclzq): Likewise.
33198 (vnegq): Likewise.
33199 (vaddlvq): Likewise.
33200 (vaddvq): Likewise.
33201 (vmovlbq): Likewise.
33202 (vmovltq): Likewise.
33203 (vmvnq): 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
33213 even registers.
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.
33231
33232 2020-03-17 Jakub Jelinek <jakub@redhat.com>
33233
33234 * lra-spills.c (remove_pseudos): Fix up duplicated word issue in
33235 a dump message.
33236 * tree-sra.c (create_access_replacement): Fix up duplicated word issue
33237 in a comment.
33238 * read-rtl-function.c (find_param_by_name,
33239 function_reader::parse_enum_value, function_reader::get_insn_by_uid):
33240 Likewise.
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):
33246 Likewise.
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):
33252 Likewise.
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):
33268 Likewise.
33269 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
33270 Likewise.
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):
33283 Likewise.
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):
33294 Likewise.
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.
33301
33302 2020-03-17 Mihail Ionescu <mihail.ionescu@arm.com>
33303
33304 * config/arm/t-rmprofile: create new multilib for
33305 armv8.1-m.main+mve hard float and reuse v8-m.main ones for
33306 v8.1-m.main+mve.
33307
33308 2020-03-17 Jakub Jelinek <jakub@redhat.com>
33309
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.
33319
33320 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
33321 Mihail Ionescu <mihail.ionescu@arm.com>
33322 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
33323
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.
33368
33369 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
33370 Mihail Ionescu <mihail.ionescu@arm.com>
33371 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
33372
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.
33431 (vrndq): Likewise.
33432 (vrndpq): Likewise.
33433 (vrndnq): Likewise.
33434 (vrndmq): Likewise.
33435 (vrndaq): Likewise.
33436 (vrev64q): Likewise.
33437 (vnegq): Likewise.
33438 (vabsq): Likewise.
33439 (vrev32q): Likewise.
33440 (vcvtbq_f32): Likewise.
33441 (vcvttq_f32): Likewise.
33442 (vcvtq): Likewise.
33443 * config/arm/arm_mve_builtins.def (VAR2): Define.
33444 (VAR1): 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.
33459
33460 2020-03-16 Andre Vieira <andre.simoesdiasvieira@arm.com>
33461 Mihail Ionescu <mihail.ionescu@arm.com>
33462 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
33463
33464 * config/arm/arm-builtins.c (CF): Define mve_builtin_data.
33465 (VAR1): Define.
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
33473 types.
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
33496 modes in MVE.
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
33501 modes in MVE.
33502 (neon_mov<mode>): Modify RTL define_insn to allow XI and OI modes
33503 in MVE.
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.
33508
33509 2020-03-17 Christophe Lyon <christophe.lyon@linaro.org>
33510
33511 * c-typeck.c (process_init_element): Handle constructor_type with
33512 type size represented by POLY_INT_CST.
33513
33514 2020-03-17 Jakub Jelinek <jakub@redhat.com>
33515
33516 PR tree-optimization/94187
33517 * tree-ssa-strlen.c (count_nonzero_bytes): Punt if
33518 nchars - offset < nbytes.
33519
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.
33524
33525 2020-03-16 Vladimir Makarov <vmakarov@redhat.com>
33526
33527 PR target/94185
33528 * lra-spills.c (remove_pseudos): Do not reuse insn alternative
33529 after changing memory subreg.
33530
33531 2020-03-16 Andre Vieira <andre.simoesdiasvieira@arm.com>
33532 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
33533
33534 * config/arm/arm.c (arm_libcall_uses_aapcs_base): Modify function to add
33535 emulator calls for dobule precision arithmetic operations for MVE.
33536
33537 2020-03-16 Andre Vieira <andre.simoesdiasvieira@arm.com>
33538 Mihail Ionescu <mihail.ionescu@arm.com>
33539 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
33540
33541 * 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
33548 is enabled.
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
33554 floating point.
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
33558 TARGET_VFP_BASE.
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
33561 well.
33562 (arm_get_vfp_saved_size): Replace TARGET_HARD_FLOAT with
33563 TARGET_VFP_BASE, to allow space calculation for VFP registers in MVE
33564 as well.
33565 (arm_compute_frame_layout): Likewise.
33566 (arm_save_coproc_regs): Likewise.
33567 (arm_fixed_condition_code_regs): Modify to enable using VFPCC_REGNUM
33568 in MVE as well.
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
33576 "softvfp".
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
33583 in MVE.
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
33587 enum.
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
33597 in MVE.
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
33608 register.
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
33611 register.
33612
33613
33614 2020-03-16 Andre Vieira <andre.simoesdiasvieira@arm.com>
33615 Mihail Ionescu <mihail.ionescu@arm.com>
33616 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
33617
33618 * config.gcc (arm_mve.h): Include mve intrinsics header file.
33619 * config/arm/aout.h (p0): Add new register name for MVE predicated
33620 cases.
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
33630 enabled.
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
33644 as Neon.
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
33657 function.
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
33660 for MVE.
33661 (output_move_neon): Add MVE check to generate vldm/vstm instrcutions.
33662 (arm_compute_frame_layout): Calculate space for saved VFP registers for
33663 MVE.
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
33671 for APCS frame.
33672 (arm_expand_epilogue): MVE check for enabling pop instructions in
33673 epilogue.
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
33676 "SOFT FLOAT ABI".
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
33680 pointer support.
33681 (arm_conditional_register_usage): Enable usage of conditional regsiter
33682 for MVE.
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
33686 "SOFT FLOAT ABI".
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
33691 for MVE.
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
33700 for MVE.
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
33721 second operand.
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
33730 attribute "type".
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
33736 iterator VNIM1.
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
33740 NEON and MVE.
33741 * config/arm/vfp.md (neon_immediate_valid_for_move): Rename to
33742 simd_immediate_valid_for_move.
33743
33744
33745 2020-03-16 H.J. Lu <hongjiu.lu@intel.com>
33746
33747 PR target/89229
33748 * config/i386/i386.md (*movsi_internal): Call ix86_output_ssemov
33749 for TYPE_SSEMOV. Remove ext_sse_reg_operand and TARGET_AVX512VL
33750 check.
33751 * config/i386/predicates.md (ext_sse_reg_operand): Removed.
33752
33753 2020-03-16 Jakub Jelinek <jakub@redhat.com>
33754
33755 PR debug/94167
33756 * tree-inline.c (insert_init_stmt): Don't gimple_regimplify_operands
33757 DEBUG_STMTs.
33758
33759 PR tree-optimization/94166
33760 * tree-ssa-reassoc.c (sort_by_mach_mode): Use SSA_NAME_VERSION
33761 as secondary comparison key.
33762
33763 2020-03-16 Bin Cheng <bin.cheng@linux.alibaba.com>
33764
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.
33769
33770 2020-03-15 H.J. Lu <hongjiu.lu@intel.com>
33771
33772 PR target/89229
33773 * config/i386/i386.c (ix86_output_ssemov): Handle MODE_SI and
33774 MODE_SF.
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.
33778
33779 2020-03-15 Lewis Hyatt <lhyatt@gmail.com>
33780
33781 * common.opt: Avoid redundancy in the help text.
33782 * config/arc/arc.opt: Likewise.
33783 * config/cr16/cr16.opt: Likewise.
33784
33785 2020-03-14 Jakub Jelinek <jakub@redhat.com>
33786
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.
33791
33792 2020-03-14 H.J. Lu <hongjiu.lu@intel.com>
33793
33794 PR target/89229
33795 * config/i386/i386.md (*movdi_internal): Call ix86_output_ssemov
33796 for TYPE_SSEMOV. Remove ext_sse_reg_operand and TARGET_AVX512VL
33797 check.
33798
33799 2020-03-14 Jakub Jelinek <jakub@redhat.com>
33800
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.
33807
33808 2020-03-13 Aaron Sawdey <acsawdey@linux.ibm.com>
33809
33810 PR target/92379
33811 * config/rs6000/rs6000.c (num_insns_constant_multi): Don't shift a
33812 64-bit value by 64 bits (UB).
33813
33814 2020-03-13 Vladimir Makarov <vmakarov@redhat.com>
33815
33816 PR rtl-optimization/92303
33817 * lra-spills.c (remove_pseudos): Try to simplify memory subreg.
33818
33819 2020-03-13 Segher Boessenkool <segher@kernel.crashing.org>
33820
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.
33828
33829 2020-03-13 Richard Biener <rguenther@suse.de>
33830
33831 PR tree-optimization/94163
33832 * tree-ssa-pre.c (create_expression_by_pieces): Check
33833 whether alignment would be zero.
33834
33835 2020-03-13 Martin Liska <mliska@suse.cz>
33836
33837 PR lto/94157
33838 * lto-wrapper.c (run_gcc): Use concat for appending
33839 to collect_gcc_options.
33840
33841 2020-03-13 Jakub Jelinek <jakub@redhat.com>
33842
33843 PR target/94121
33844 * config/aarch64/aarch64.c (aarch64_add_offset_1): Use gen_int_mode
33845 instead of GEN_INT.
33846
33847 2020-03-13 H.J. Lu <hongjiu.lu@intel.com>
33848
33849 PR target/89229
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.
33854
33855 2020-03-13 Bu Le <bule1@huawei.com>
33856
33857 PR target/94154
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.
33863
33864 2020-03-13 Eric Botcazou <ebotcazou@adacore.com>
33865
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.
33872
33873 2020-03-13 Eric Botcazou <ebotcazou@adacore.com>
33874
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.
33879
33880 2020-03-12 Richard Sandiford <richard.sandiford@arm.com>
33881
33882 PR rtl-optimization/90275
33883 * cse.c (cse_insn): Delete no-op register moves too.
33884
33885 2020-03-12 Darius Galis <darius.galis@cyberthorstudios.com>
33886
33887 * config/rx/rx.md (CTRLREG_CPEN): Remove.
33888 * config/rx/rx.c (rx_print_operand): Remove CTRLREG_CPEN support.
33889
33890 2020-03-12 Richard Biener <rguenther@suse.de>
33891
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.
33895
33896 2020-03-12 H.J. Lu <hongjiu.lu@intel.com>
33897
33898 PR target/89229
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
33903 check.
33904
33905 2020-03-12 Jakub Jelinek <jakub@redhat.com>
33906
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.
33911
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.
33916 Formatting fixes.
33917 (decrement_count): Formatting fix.
33918
33919 2020-03-11 Delia Burduv <delia.burduv@arm.com>
33920
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.
33935
33936 2020-03-11 Jakub Jelinek <jakub@redhat.com>
33937
33938 PR target/94134
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.
33942
33943 2020-03-11 Richard Biener <rguenther@suse.de>
33944
33945 * match.pd ((T *)(ptr - ptr-cst) -> &MEM[ptr + -ptr-cst]):
33946 New pattern.
33947
33948 2020-03-11 Eric Botcazou <ebotcazou@adacore.com>
33949
33950 PR middle-end/93961
33951 * tree.c (variably_modified_type_p) <RECORD_TYPE>: Recurse into fields
33952 whose type is a qualified union.
33953
33954 2020-03-11 Jakub Jelinek <jakub@redhat.com>
33955
33956 PR target/94121
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.
33959
33960 PR bootstrap/93962
33961 * value-prof.c (dump_histogram_value): Use abs_hwi instead of
33962 std::abs.
33963 (get_nth_most_common_value): Use abs_hwi instead of abs.
33964
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
33968 string.
33969
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
33974 on dest and src.
33975
33976 2020-03-10 Jeff Law <law@redhat.com>
33977
33978 * config/bfin/bfin.md (movsi_insv): Add length attribute.
33979
33980 2020-03-10 Jiufu Guo <guojiufu@linux.ibm.com>
33981
33982 PR target/93709
33983 * config/rs6000/rs6000.c (rs6000_emit_p9_fp_minmax): Check
33984 NAN and SIGNED_ZEROR for smax/smin.
33985
33986 2020-03-10 Will Schmidt <will_schmidt@vnet.ibm.com>
33987
33988 PR target/90763
33989 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
33990 clause to handle P9V_BUILTIN_VEC_LXVL with const arguments.
33991
33992 2020-03-10 Roman Zhuykov <zhroma@ispras.ru>
33993
33994 * loop-iv.c (find_simple_exit): Make it static.
33995 * cfgloop.h: Remove the corresponding prototype.
33996
33997 2020-03-10 Roman Zhuykov <zhroma@ispras.ru>
33998
33999 * ddg.c (create_ddg): Fix intendation.
34000 (set_recurrence_length): Likewise.
34001 (create_ddg_all_sccs): Likewise.
34002
34003 2020-03-10 Jakub Jelinek <jakub@redhat.com>
34004
34005 PR target/94088
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
34008 is 32.
34009
34010 2020-03-09 Jason Merrill <jason@redhat.com>
34011
34012 * gdbinit.in (pgs): Fix typo in documentation.
34013
34014 2020-03-09 Vladimir Makarov <vmakarov@redhat.com>
34015
34016 Revert:
34017
34018 2020-02-28 Vladimir Makarov <vmakarov@redhat.com>
34019
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.
34023
34024 2020-03-09 Andrew Pinski <apinski@marvell.com>
34025
34026 PR inline-asm/94095
34027 * doc/extend.texi (x86 Operand Modifiers): Fix column
34028 for 'A' modifier.
34029
34030 2020-03-09 Martin Liska <mliska@suse.cz>
34031
34032 PR target/93800
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.
34036
34037 2020-03-09 Jakub Jelinek <jakub@redhat.com>
34038
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.
34043
34044 2020-03-06 Wilco Dijkstra <wdijkstr@arm.com>
34045
34046 PR target/91598
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.
34070 (Qlane): Likewise.
34071
34072 2020-03-06 Wilco Dijkstra <wdijkstr@arm.com>
34073
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.
34084
34085 2020-03-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34086
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.
34090
34091 2020-03-06 David Edelsohn <dje.gcc@gmail.com>
34092
34093 PR target/94065
34094 * config/rs6000/aix61.h (TARGET_NO_SUM_IN_TOC): Set to 1 for
34095 cmodel=large.
34096 (TARGET_NO_FP_IN_TOC): Same.
34097 * config/rs6000/aix71.h: Same.
34098 * config/rs6000/aix72.h: Same.
34099
34100 2020-03-06 Andrew Pinski <apinski@marvell.com>
34101 Jeff Law <law@redhat.com>
34102
34103 PR rtl-optimization/93996
34104 * haifa-sched.c (remove_notes): Be more careful when adding
34105 REG_SAVE_NOTE.
34106
34107 2020-03-06 Delia Burduv <delia.burduv@arm.com>
34108
34109 * config/arm/arm_neon.h (vld2_bf16): New.
34110 (vld2q_bf16): New.
34111 (vld3_bf16): New.
34112 (vld3q_bf16): New.
34113 (vld4_bf16): New.
34114 (vld4q_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.
34142
34143 2020-03-06 Delia Burduv <delia.burduv@arm.com>
34144
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.
34151 (vst2_bf16): New.
34152 (vst2q_bf16): New.
34153 (vst3_bf16): New.
34154 (vst3q_bf16): New.
34155 (vst4_bf16): New.
34156 (vst4q_bf16): New.
34157 * config/arm/arm-builtins.c (v2bf_UP): Define.
34158 (VAR13): New.
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.
34179
34180 2020-03-06 Delia Burduv <delia.burduv@arm.com>
34181
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.
34201
34202 2020-03-06 Andreas Krebbel <krebbel@linux.ibm.com>
34203
34204 * config/s390/s390.md ("tabort"): Get rid of two consecutive
34205 blanks in format string.
34206
34207 2020-03-05 H.J. Lu <hongjiu.lu@intel.com>
34208
34209 PR target/89229
34210 PR target/89346
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
34216 check.
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.
34222
34223 2020-03-05 Jeff Law <law@redhat.com>
34224
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.
34236
34237 2020-03-05 Jakub Jelinek <jakub@redhat.com>
34238
34239 PR target/94046
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
34243 from __m256d.
34244 (_mm_mask_i64gather_ps): Fix first cast of MASK argument to __m128
34245 from __m128d.
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
34249 __m256d.
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
34252 __m256.
34253
34254 2020-03-05 Delia Burduv <delia.burduv@arm.com>
34255
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.
34264 (vfmab): New.
34265 (vfmat): New.
34266 (vfmab_lane): New.
34267 (vfmat_lane): 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.
34281
34282 2020-03-05 Jakub Jelinek <jakub@redhat.com>
34283
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.
34291
34292 2020-03-05 Richard Biener <rguenther@suse.de>
34293 Jakub Jelinek <jakub@redhat.com>
34294
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
34298 fix.
34299
34300 2020-03-04 Andrew Pinski <apinski@marvell.com>
34301
34302 PR bootstrap/93962
34303 * value-prof.c (dump_histogram_value): Use std::abs.
34304
34305 2020-03-04 Martin Sebor <msebor@redhat.com>
34306
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.
34310
34311 2020-03-04 Bill Schmidt <wschmidt@linux.ibm.com>
34312
34313 PR target/87560
34314 * rs6000-cpus.def (OTHER_ALTIVEC_MASKS): New #define.
34315 * rs6000.c (rs6000_disable_incompatible_switches): Add table entry
34316 for OPTION_MASK_ALTIVEC.
34317
34318 2020-03-04 Andreas Krebbel <krebbel@linux.ibm.com>
34319
34320 * config.gcc: Include the glibc-stdint.h header for zTPF.
34321
34322 2020-03-04 Andreas Krebbel <krebbel@linux.ibm.com>
34323
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
34327 FPRs.
34328
34329 2020-03-04 Andreas Krebbel <krebbel@linux.ibm.com>
34330
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
34335 the new options.
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
34346 options.
34347 * doc/invoke.texi: Document -mtpf-trace-skip option. The other
34348 options are for debugging purposes and will not be documented
34349 here.
34350
34351 2020-03-04 Jakub Jelinek <jakub@redhat.com>
34352
34353 PR debug/93888
34354 * tree-inline.c (copy_decl_to_var): Copy DECL_BY_REFERENCE flag.
34355
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
34360 overflows.
34361 (vn_walk_cb_data::vn_walk_cb_data, vn_reference_lookup_3): Adjust
34362 callers.
34363
34364 2020-02-04 Richard Biener <rguenther@suse.de>
34365
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):
34371 Relax assert.
34372
34373 2020-03-04 Martin Liska <mliska@suse.cz>
34374
34375 PR c/93886
34376 PR c/93887
34377 * doc/invoke.texi: Clarify --help=language and --help=common
34378 interaction.
34379
34380 2020-03-04 Jakub Jelinek <jakub@redhat.com>
34381
34382 PR tree-optimization/94001
34383 * tree-tailcall.c (process_assignment): Before comparing op1 to
34384 *ass_var, verify *ass_var is non-NULL.
34385
34386 2020-03-04 Kito Cheng <kito.cheng@sifive.com>
34387
34388 PR target/93995
34389 * config/riscv/riscv.c (riscv_emit_float_compare): Using NE to compare
34390 the result of IOR.
34391
34392 2020-03-03 Dennis Zhang <dennis.zhang@arm.com>
34393
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.
34407
34408 2020-03-03 Jakub Jelinek <jakub@redhat.com>
34409
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
34415 contain zeros.
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.
34419 Formatting fix.
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
34422 data.mask_result.
34423 (visit_nary_op): Handle BIT_AND_EXPR of a memory load and INTEGER_CST
34424 mask.
34425 (visit_stmt): Formatting fix.
34426
34427 2020-03-03 Richard Biener <rguenther@suse.de>
34428
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
34433 zero.
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):
34438 Likewise.
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
34447 set everywhere.
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
34452 store removal.
34453
34454 2020-03-03 Jakub Jelinek <jakub@redhat.com>
34455
34456 PR target/26877
34457 * config/s390/s390.h (OPTION_DEFAULT_SPECS): Reorder.
34458
34459 PR rtl-optimization/94002
34460 * explow.c (plus_constant): Punt if cst has VOIDmode and
34461 get_pool_mode is different from mode.
34462
34463 2020-03-03 Claudiu Zissulescu <claziss@synopsys.com>
34464
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.
34473
34474 2020-03-03 Claudiu Zissulescu <claziss@synopsys.com>
34475
34476 * config/arc/arc.md (fmasf4_fpu): Use accl_operand predicate.
34477 (fnmasf4_fpu): Likewise.
34478
34479 2020-03-03 Claudiu Zissulescu <claziss@synopsys.com>
34480
34481 * config/arc/arc.md (adddi3): Early expand the 64bit operation into
34482 32bit ops.
34483 (subdi3): Likewise.
34484 (adddi3_i): Remove pattern.
34485 (subdi3_i): Likewise.
34486
34487 2020-03-03 Claudiu Zissulescu <claziss@synopsys.com>
34488
34489 * config/arc/arc.md (eh_return): Add length info.
34490
34491 2020-03-02 David Malcolm <dmalcolm@redhat.com>
34492
34493 * doc/invoke.texi (-fanalyzer-show-duplicate-count): New.
34494
34495 2020-03-02 David Malcolm <dmalcolm@redhat.com>
34496
34497 * doc/invoke.texi (Static Analyzer Options): Add
34498 -Wanalyzer-stale-setjmp-buffer to the list of options enabled
34499 by -fanalyzer.
34500
34501 2020-03-02 Uroš Bizjak <ubizjak@gmail.com>
34502
34503 PR target/93997
34504 * config/i386/i386.md (movstrict<mode>): Allow only
34505 registers with VALID_INT_MODE_P modes.
34506
34507 2020-03-02 Andrew Stubbs <ams@codesourcery.com>
34508
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.
34524
34525 2020-03-02 Martin Liska <mliska@suse.cz>
34526
34527 * lto-wrapper.c: Fix typo in comment about
34528 C++ standard version.
34529
34530 2020-03-01 Martin Sebor <msebor@redhat.com>
34531
34532 PR c++/92721
34533 * calls.c (init_attr_rdwr_indices): Correctly handle attribute.
34534
34535 2020-03-01 Martin Sebor <msebor@redhat.com>
34536
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.
34540
34541 2020-02-28 Jeff Law <law@redhat.com>
34542
34543 * config/v850/v850.h (STATIC_CHAIN_REGNUM): Change to r19.
34544 * config/v850/v850.c (v850_asm_trampoline_template): Update
34545 accordingly.
34546
34547 2020-02-28 Michael Meissner <meissner@linux.ibm.com>
34548
34549 PR target/93937
34550 * config/rs6000/vsx.md (vsx_extract_<mode>_<VS_scalar>mode_var):
34551 Delete insn.
34552
34553 2020-02-28 Martin Liska <mliska@suse.cz>
34554
34555 PR other/93965
34556 * configure.ac: Improve detection of ld_date by requiring
34557 either two dashes or none.
34558 * configure: Regenerate.
34559
34560 2020-02-28 Vladimir Makarov <vmakarov@redhat.com>
34561
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.
34565
34566 2020-02-27 Joel Hutton <Joel.Hutton@arm.com>
34567
34568 PR target/87612
34569 * config/aarch64/aarch64.c (aarch64_override_options): Fix
34570 misleading warning string.
34571
34572 2020-02-27 Martin Sebor <msebor@redhat.com>
34573
34574 * doc/invoke.texi (-Wbuiltin-declaration-mismatch): Fix a typo.
34575
34576 2020-02-27 Michael Meissner <meissner@linux.ibm.com>
34577
34578 PR target/93932
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
34587 memory.
34588 (vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): Split the insn
34589 into two parts. This insn only does variable extract from a
34590 register.
34591 (vsx_extract_<mode>_var_load, VSX_EXTRACT_I iterator): New insn,
34592 do variable extract from memory.
34593
34594 2020-02-27 Martin Jambor <mjambor@suse.cz>
34595 Feng Xue <fxue@os.amperecomputing.com>
34596
34597 PR ipa/93707
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.
34604
34605 2020-02-27 Jan Hubicka <hubicka@ucw.cz>
34606
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
34617 path.
34618
34619 2020-02-27 Mihail Ionescu <mihail.ionescu@arm.com>
34620
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.
34662 (VQX) Add V8BF.
34663 (V_DOUBLE): Likewise.
34664 (VDQX): Add V4BF and V8BF.
34665 (V_two_elem, V_three_elem, V_four_elem): Likewise.
34666 (V_reg): 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.
34675
34676 2020-02-27 Andrew Stubbs <ams@codesourcery.com>
34677
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.
34687
34688 2020-02-27 Alexandre Oliva <oliva@adacore.com>
34689
34690 * config/vx-common.h (NO_DOLLAR_IN_LABEL, NO_DOT_IN_LABEL): Leave
34691 them alone on vx7.
34692
34693 2020-02-27 Richard Biener <rguenther@suse.de>
34694
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.
34698
34699 2020-02-27 Richard Biener <rguenther@suse.de>
34700
34701 PR tree-optimization/93953
34702 * tree-vect-slp.c (slp_copy_subtree): Avoid keeping a reference
34703 to the hash-map entry.
34704
34705 2020-02-27 Andrew Stubbs <ams@codesourcery.com>
34706
34707 * config/gcn/gcn.md (mov<mode>): Add transformations for BI subregs.
34708
34709 2020-02-27 Mark Williams <mwilliams@fb.com>
34710
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.
34716
34717 2020-02-27 Jakub Jelinek <jakub@redhat.com>
34718
34719 PR c/93949
34720 * gimplify.c (gimplify_init_constructor): Don't promote readonly
34721 DECL_REGISTER variables to TREE_STATIC.
34722
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.
34728
34729 2020-02-27 Jonathan Wakely <jwakely@redhat.com>
34730
34731 * doc/install.texi (Binaries): Update description of BullFreeware.
34732
34733 2020-02-26 Sandra Loosemore <sandra@codesourcery.com>
34734
34735 PR c++/90467
34736
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.
34747
34748 2020-02-26 Carl Love <cel@us.ibm.com>
34749
34750 PR target/91276
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.
34759
34760 2020-02-26 Richard Biener <rguenther@suse.de>
34761
34762 * tree-vect-slp.c (vect_print_slp_tree): Also dump ref count
34763 and load permutation.
34764
34765 2020-02-26 Richard Sandiford <richard.sandiford@arm.com>
34766
34767 PR middle-end/93843
34768 * optabs-tree.c (supportable_convert_operation): Reject types with
34769 scalar modes.
34770
34771 2020-02-26 David Malcolm <dmalcolm@redhat.com>
34772
34773 * Makefile.in (ANALYZER_OBJS): Add analyzer/bar-chart.o.
34774
34775 2020-02-26 Jakub Jelinek <jakub@redhat.com>
34776
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
34783 overlapping one.
34784
34785 2020-02-25 Jakub Jelinek <jakub@redhat.com>
34786
34787 PR other/93912
34788 * config/sh/sh.c (expand_cbranchdi4): Fix comment typo, probablity
34789 -> probability.
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 ->
34796 successors.
34797 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Fix dump
34798 message typo, sucessors -> successors.
34799
34800 2020-02-25 Martin Sebor <msebor@redhat.com>
34801
34802 * doc/extend.texi (attribute access): Correct an example.
34803
34804 2020-02-25 Mihail Ionescu <mihail.ionescu@arm.com>
34805
34806 * config/aarch64/aarch64-builtins.c (aarch64_scalar_builtin_types):
34807 Add simd_bf.
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.
34812 (VDC): Likewise.
34813 (VQ): Enable for V8BF.
34814 (VQ2): Likewise.
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.
34833 (vld2_bf16): New.
34834 (vld2q_bf16): New.
34835 (vld2_dup_bf16): New.
34836 (vld2q_dup_bf16): New.
34837 (vld3_bf16): New.
34838 (vld3q_bf16): New.
34839 (vld3_dup_bf16): New.
34840 (vld3q_dup_bf16): New.
34841 (vld4_bf16): New.
34842 (vld4q_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.
34851 (vst2_bf16): New.
34852 (vst2q_bf16): New.
34853 (vst3_bf16): New.
34854 (vst3q_bf16): New.
34855 (vst4_bf16): New.
34856 (vst4q_bf16): New.
34857
34858 2020-02-25 Mihail Ionescu <mihail.ionescu@arm.com>
34859
34860 * config/aarch64/iterators.md (VDQF_F16) Add V4BF and V8BF.
34861 (VALL_F16): Likewise.
34862 (VALLDI_F16): Likewise.
34863 (Vtype): Likewise.
34864 (Vetype): Likewise.
34865 (vswap_width_name): Likewise.
34866 (VSWAP_WIDTH): Likewise.
34867 (Vel): Likewise.
34868 (VEL): Likewise.
34869 (q): 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.
34907
34908 2020-02-25 Dennis Zhang <dennis.zhang@arm.com>
34909
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.
34919
34920 2020-02-25 Christophe Lyon <christophe.lyon@linaro.org>
34921
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.
34926
34927 2020-02-25 Jakub Jelinek <jakub@redhat.com>
34928
34929 PR rtl-optimization/93908
34930 * combine.c (find_split_point): For store into ZERO_EXTRACT, and src
34931 with mask.
34932
34933 2019-02-25 Eric Botcazou <ebotcazou@adacore.com>
34934
34935 * dwarf2out.c (dwarf2out_size_function): Run in early-DWARF mode.
34936
34937 2020-02-25 Roman Zhuykov <zhroma@ispras.ru>
34938
34939 * doc/install.texi (--enable-checking): Adjust wording.
34940
34941 2020-02-25 Richard Biener <rguenther@suse.de>
34942
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.
34947
34948 2020-02-25 Jakub Jelinek <jakub@redhat.com>
34949
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.
34953
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.
34959
34960 2020-02-24 Roman Zhuykov <zhroma@ispras.ru>
34961
34962 * doc/install.texi (--enable-checking): Properly document current
34963 behavior.
34964 (--enable-stage1-checking): Minor clarification about bootstrap.
34965
34966 2020-02-24 David Malcolm <dmalcolm@redhat.com>
34967
34968 PR analyzer/93032
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.
34974
34975 2020-02-24 David Malcolm <dmalcolm@redhat.com>
34976
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".
34980
34981 2020-02-24 Jakub Jelinek <jakub@redhat.com>
34982
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.
34993
34994 2020-02-24 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
34995 Kugan Vivekandarajah <kugan.vivekanandarajah@linaro.org>
34996
34997 PR driver/47785
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
35014 options with LTO.
35015
35016 2020-02-24 Kito Cheng <kito.cheng@sifive.com>
35017
35018 * config/riscv/riscv.c (riscv_emit_float_compare): Change the code gen
35019 for LTGT.
35020 (riscv_rtx_costs): Update cost model for LTGT.
35021
35022 2020-02-23 Vladimir Makarov <vmakarov@redhat.com>
35023
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
35036 debugging print.
35037 (bucket_allocno_compare_func): Restore previous version.
35038
35039 2020-02-21 John David Anglin <danglin@gcc.gnu.org>
35040
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.
35046
35047 2020-02-21 Jakub Jelinek <jakub@redhat.com>
35048
35049 PR translation/93759
35050 * opts.c (print_filtered_help): Translate help before appending
35051 messages to it rather than after that.
35052
35053 2020-02-19 Richard Sandiford <richard.sandiford@arm.com>
35054
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.
35059
35060 2020-02-18 Feng Xue <fxue@os.amperecomputing.com>
35061
35062 PR ipa/93763
35063 * ipa-cp.c (self_recursively_generated_p): Mark self-dependent value as
35064 self-recursively generated.
35065
35066 2020-02-21 Iain Sandoe <iain@sandoe.co.uk>
35067
35068 PR target/93860
35069 * config/darwin-c.c (pop_field_alignment): Adjust quoting of
35070 error string.
35071
35072 2020-02-21 Mihail Ionescu <mihail.ionescu@arm.com>
35073
35074 * doc/sourcebuild.texi (arm_v8_1m_mve_ok):
35075 Document new target supports option.
35076
35077 2020-02-21 Dennis Zhang <dennis.zhang@arm.com>
35078
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.
35087
35088 2020-02-21 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
35089
35090 * config/arm/arm.md: Prevent scalar shifts from being used when big
35091 endian is enabled.
35092
35093 2020-02-21 Jan Hubicka <hubicka@ucw.cz>
35094 Richard Biener <rguenther@suse.de>
35095
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.
35100
35101 2020-02-21 Andrew Stubbs <ams@codesourcery.com>
35102
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.
35115
35116 2020-02-21 Martin Jambor <mjambor@suse.cz>
35117
35118 PR tree-optimization/93845
35119 * tree-sra.c (verify_sra_access_forest): Only test access size of
35120 scalar types.
35121
35122 2020-02-21 Andrew Stubbs <ams@codesourcery.com>
35123
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.
35144
35145 2020-02-21 Andrew Stubbs <ams@codesourcery.com>
35146
35147 * config/gcn/gcn-valu.md (vec_seriesv64di): Use gen_vec_duplicatev64di.
35148
35149 2020-02-21 Richard Sandiford <richard.sandiford@arm.com>
35150
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.
35156
35157 2020-02-21 Richard Sandiford <richard.sandiford@arm.com>
35158
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.
35165
35166 2020-02-21 Richard Sandiford <richard.sandiford@arm.com>
35167
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.
35172
35173 2020-02-21 Richard Sandiford <richard.sandiford@arm.com>
35174
35175 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Don't create
35176 an unused xmsk register when handling approximate rsqrt.
35177
35178 2020-02-21 Richard Sandiford <richard.sandiford@arm.com>
35179
35180 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Fix inverted
35181 flag_finite_math_only condition.
35182
35183 2020-02-20 Uroš Bizjak <ubizjak@gmail.com>
35184
35185 PR target/93828
35186 * config/i386/mmx.md (*vec_extractv2sf_1): Match source operand
35187 to destination operand for shufps alternative.
35188 (*vec_extractv2si_1): Ditto.
35189
35190 2020-02-20 Peter Bergner <bergner@linux.ibm.com>
35191
35192 PR target/93658
35193 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Handle VSX
35194 vector modes.
35195
35196 2020-02-20 Martin Liska <mliska@suse.cz>
35197
35198 PR translation/93831
35199 * config/darwin.c (darwin_override_options): Change 64b to 64-bit mode.
35200
35201 2020-02-20 Martin Liska <mliska@suse.cz>
35202
35203 PR translation/93830
35204 * common/config/avr/avr-common.c: Remote trailing "|".
35205
35206 2020-02-19 Bernd Edlinger <bernd.edlinger@hotmail.de>
35207
35208 * collect2.c (maybe_run_lto_and_relink): Fix typo in
35209 comment.
35210
35211 2020-02-19 Richard Sandiford <richard.sandiford@arm.com>
35212
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.
35216
35217 2020-02-19 Bernd Edlinger <bernd.edlinger@hotmail.de>
35218
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.
35230
35231 2020-02-19 Martin Jambor <mjambor@suse.cz>
35232
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.
35236
35237 2020-02-19 Martin Jambor <mjambor@suse.cz>
35238
35239 PR tree-optimization/93667
35240 * tree-sra.c (scalarizable_type_p): Return false if record fields
35241 do not follow wach other.
35242
35243 2020-01-21 Kito Cheng <kito.cheng@sifive.com>
35244
35245 * config/riscv/riscv.c (riscv_output_move) Using fmv.x.w/fmv.w.x
35246 rather than fmv.x.s/fmv.s.x.
35247
35248 2020-02-18 James Greenhalgh <james.greenhalgh@arm.com>
35249
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.
35269
35270 2020-02-18 Martin Liska <mliska@suse.cz>
35271
35272 * value-prof.c (stream_out_histogram_value): Restore LTO PGO
35273 bootstrap by missing removal of invalid sanity check.
35274
35275 2020-02-18 Martin Liska <mliska@suse.cz>
35276
35277 PR ipa/92518
35278 * ipa-icf-gimple.c (func_checker::compare_gimple_assign):
35279 Always compare LHS of gimple_assign.
35280
35281 2020-02-18 Martin Liska <mliska@suse.cz>
35282
35283 PR ipa/93583
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.
35290
35291 2020-02-18 Martin Liska <mliska@suse.cz>
35292
35293 PR ipa/92924
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.
35301
35302 2020-02-18 Jakub Jelinek <jakub@redhat.com>
35303
35304 PR ipa/93797
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.
35311
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.
35316
35317 PR driver/93796
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.
35323
35324 2020-02-17 David Malcolm <dmalcolm@redhat.com>
35325
35326 * diagnostic.c (print_any_cwe): Don't call get_cwe_url if URLs
35327 won't be printed.
35328 (print_option_information): Don't call get_option_url if URLs
35329 won't be printed.
35330
35331 2020-02-17 Alexandre Oliva <oliva@adacore.com>
35332
35333 * tree-emutls.c (new_emutls_decl, emutls_common_1): Complete
35334 handling of register_common-less targets.
35335
35336 2020-02-17 Martin Liska <mliska@suse.cz>
35337
35338 PR ipa/93760
35339 * ipa-devirt.c (odr_types_equivalent_p): Fix grammar.
35340
35341 2020-02-17 Martin Liska <mliska@suse.cz>
35342
35343 PR translation/93755
35344 * config/rs6000/rs6000.c (rs6000_option_override_internal):
35345 Fix double quotes.
35346
35347 2020-02-17 Martin Liska <mliska@suse.cz>
35348
35349 PR other/93756
35350 * config/rx/elf.opt: Fix typo.
35351
35352 2020-02-17 Richard Biener <rguenther@suse.de>
35353
35354 PR c/86134
35355 * opts-global.c (print_ignored_options): Use inform and
35356 amend message.
35357
35358 2020-02-17 Jiufu Guo <guojiufu@linux.ibm.com>
35359
35360 PR target/93047
35361 * config/rs6000/rs6000.md (untyped_call): Add emit_clobber.
35362
35363 2020-02-16 Uroš Bizjak <ubizjak@gmail.com>
35364
35365 PR target/93743
35366 * config/i386/i386.md (atan2xf3): Swap operands 1 and 2.
35367 (atan2<mode>3): Update operand order in the call to gen_atan2xf3.
35368
35369 2020-02-15 Jason Merrill <jason@redhat.com>
35370
35371 * doc/invoke.texi (C Dialect Options): Add -std=c++20.
35372
35373 2020-02-15 Jakub Jelinek <jakub@redhat.com>
35374
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.
35380
35381 2020-02-15 David Malcolm <dmalcolm@redhat.com>
35382 Bernd Edlinger <bernd.edlinger@hotmail.de>
35383
35384 PR 87488
35385 PR other/93168
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.
35416
35417 2020-02-14 Eric Botcazou <ebotcazou@adacore.com>
35418
35419 PR target/93704
35420 * config/sparc/sparc.c (eligible_for_call_delay): Test HAVE_GNU_LD in
35421 conjunction with TARGET_GNU_TLS in early return.
35422
35423 2020-02-14 Alexander Monakov <amonakov@ispras.ru>
35424
35425 * rtlanal.c (rtx_cost): Handle a SET up front. Avoid division if
35426 the mode is not wider than UNITS_PER_WORD.
35427
35428 2020-02-14 Martin Jambor <mjambor@suse.cz>
35429
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.
35434
35435 2020-02-14 Hongtao Liu <hongtao.liu@intel.com>
35436
35437 PR target/93724
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.
35468
35469 2020-02-13 H.J. Lu <hongjiu.lu@intel.com>
35470
35471 PR target/93656
35472 * config/i386/i386.c (ix86_trampoline_init): Skip ENDBR32 at
35473 the target function entry.
35474
35475 2020-02-13 Claudiu Zissulescu <claziss@synopsys.com>
35476
35477 * common/config/arc/arc-common.c (arc_option_optimization_table):
35478 Disable if-conversion step when optimized for size.
35479
35480 2020-02-13 Claudiu Zissulescu <claziss@synopsys.com>
35481
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
35486 option.
35487 * doc/invoke.texi (mq-class): Update text.
35488 * common/config/arc/arc-common.c (arc_option_optimization_table):
35489 Update list.
35490
35491 2020-02-13 Claudiu Zissulescu <claziss@synopsys.com>
35492
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.
35502
35503 2020-02-13 Claudiu Zissulescu <claziss@synopsys.com>
35504
35505 * config/arc/arc.md (mulsidi_600): Correctly select mlo/mhi
35506 registers.
35507 (umulsidi_600): Likewise.
35508
35509 2020-02-13 Jakub Jelinek <jakub@redhat.com>
35510
35511 PR target/93696
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
35517 __B.
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.
35523
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.
35544
35545 PR target/93673
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.
35553
35554 2020-02-12 Jeff Law <law@redhat.com>
35555
35556 * config/h8300/h8300.md (comparison shortening peepholes): Use
35557 a mode iterator to merge the HImode and SImode peepholes.
35558
35559 2020-02-12 Jakub Jelinek <jakub@redhat.com>
35560
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.
35565
35566 2020-02-12 Martin Sebor <msebor@redhat.com>
35567
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.
35573
35574 2020-02-12 Jeff Law <law@redhat.com>
35575
35576 * config/h8300/h8300.md (comparison shortening peepholes): Drop
35577 (and (xor)) variant. Combine other two into single peephole.
35578
35579 2020-02-12 Wilco Dijkstra <wdijkstr@arm.com>
35580
35581 PR rtl-optimization/93565
35582 * config/aarch64/aarch64.c (aarch64_rtx_costs): Add CTZ costs.
35583
35584 2020-02-12 Wilco Dijkstra <wdijkstr@arm.com>
35585
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.
35591
35592 2020-02-12 Jeff Law <law@redhat.com>
35593
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.
35604
35605 2020-02-12 Jakub Jelinek <jakub@redhat.com>
35606
35607 PR target/93670
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
35614 vextract*32x8.
35615 (vec_extract_lo_<mode><mask_name>): Drop <mask_avx512dq_condition>
35616 from condition.
35617
35618 2020-02-12 Kewen Lin <linkw@gcc.gnu.org>
35619
35620 PR target/91052
35621 * ira.c (combine_and_move_insns): Skip multiple_sets def_insn.
35622
35623 2020-02-12 Segher Boessenkool <segher@kernel.crashing.org>
35624
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.
35629
35630 2020-02-11 Martin Sebor <msebor@redhat.com>
35631
35632 PR tree-optimization/93683
35633 * tree-ssa-alias.c (stmt_kills_ref_p): Avoid using LHS when not set.
35634
35635 2020-02-11 Michael Meissner <meissner@linux.ibm.com>
35636
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
35647 -mprefixed.
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
35653 -mprefixed.
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
35665 -mprefixed.
35666
35667 2020-02-11 Hans-Peter Nilsson <hp@axis.com>
35668
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.
35672
35673 2020-02-11 Stam Markianos-Wright <stam.markianos-wright@arm.com>
35674
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.
35691
35692 2020-02-11 Richard Biener <rguenther@suse.de>
35693
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.
35699
35700 2020-02-10 Jakub Jelinek <jakub@redhat.com>
35701
35702 PR target/93637
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.
35706
35707 2020-02-10 Iain Sandoe <iain@sandoe.co.uk>
35708
35709 PR other/93641
35710 * config/darwin-c.c (darwin_cfstring_ref_p): Fix up last
35711 argument of strncmp.
35712
35713 2020-02-10 Hans-Peter Nilsson <hp@axis.com>
35714
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.
35720
35721 2020-02-10 Richard Earnshaw <rearnsha@arm.com>
35722
35723 PR target/91913
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
35726 variants.
35727
35728 2020-02-10 Hans-Peter Nilsson <hp@axis.com>
35729
35730 * md.texi (Define Subst): Match closing paren in example.
35731
35732 2020-02-10 Jakub Jelinek <jakub@redhat.com>
35733
35734 PR target/58218
35735 PR other/93641
35736 * config/i386/i386.c (x86_64_elf_section_type_flags): Fix up last
35737 arguments of strncmp.
35738
35739 2020-02-10 Feng Xue <fxue@os.amperecomputing.com>
35740
35741 PR ipa/93203
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.
35760
35761 2020-02-09 Uroš Bizjak <ubizjak@gmail.com>
35762
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
35769 split_all_insns.
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.
35777
35778 2020-02-09 Jakub Jelinek <jakub@redhat.com>
35779
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.
35783
35784 2020-02-08 Andrew Pinski <apinski@marvell.com>
35785
35786 PR target/91927
35787 * config/aarch64/aarch64-simd.md (movmisalign<mode>): Check
35788 STRICT_ALIGNMENT also.
35789
35790 2020-02-08 Jim Wilson <jimw@sifive.com>
35791
35792 PR target/93532
35793 * config/riscv/riscv.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
35794
35795 2020-02-08 Uroš Bizjak <ubizjak@gmail.com>
35796 Jakub Jelinek <jakub@redhat.com>
35797
35798 PR target/65782
35799 * config/i386/i386.h (CALL_USED_REGISTERS): Make
35800 xmm16-xmm31 call-used even in 64-bit ms-abi.
35801
35802 2020-02-07 Dennis Zhang <dennis.zhang@arm.com>
35803
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.
35809
35810 2020-02-07 Richard Biener <rguenther@suse.de>
35811
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
35816 inline.
35817
35818 2020-02-07 H.J. Lu <hongjiu.lu@intel.com>
35819
35820 PR target/85667
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
35823 register.
35824 (ix86_function_arg): Pass arg.type to function_arg_ms_64.
35825
35826 2020-02-07 Jakub Jelinek <jakub@redhat.com>
35827
35828 PR target/93122
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
35834 dwarf2cfi.c.
35835
35836 PR target/93594
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
35844 UNSPEC_CAST.
35845
35846 PR target/93611
35847 * config/i386/i386.c (ix86_lea_outperforms): Make sure to clear
35848 recog_data.insn if distance_non_agu_define changed it.
35849
35850 2020-02-06 Michael Meissner <meissner@linux.ibm.com>
35851
35852 PR target/93569
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.
35857
35858 2020-02-06 <zhongyunde@huawei.com>
35859 Vladimir Makarov <vmakarov@redhat.com>
35860
35861 PR rtl-optimization/93561
35862 * lra-assigns.c (spill_for): Check that tested hard regno is not out of
35863 hard register range.
35864
35865 2020-02-06 Richard Sandiford <richard.sandiford@arm.com>
35866
35867 * config/aarch64/aarch64.md (aarch64_movk<mode>): Add a type
35868 attribute.
35869
35870 2020-02-06 Segher Boessenkool <segher@kernel.crashing.org>
35871
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.
35875
35876 2020-02-06 Mihail Ionescu <mihail.ionescu@arm.com>
35877
35878 * config/arm/arm-cpus.in: Set profile M for armv8.1-m.main.
35879
35880 2020-02-06 Mihail Ionescu <mihail.ionescu@arm.com>
35881
35882 * config/arm/arm-tables.opt: Regenerate.
35883
35884 2020-02-06 Richard Sandiford <richard.sandiford@arm.com>
35885
35886 PR target/87763
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.
35890
35891 2020-02-06 Richard Sandiford <richard.sandiford@arm.com>
35892
35893 PR rtl-optimization/87763
35894 * config/aarch64/aarch64.md (*ashiftsi_extvdi_bfiz): New pattern.
35895
35896 2020-02-06 Delia Burduv <delia.burduv@arm.com>
35897
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.
35917
35918 2020-02-06 Uroš Bizjak <ubizjak@gmail.com>
35919
35920 * config/i386/i386.md (*pushtf): Emit "#" instead of
35921 calling gcc_unreachable in insn output.
35922 (*pushxf): Ditto.
35923 (*pushdf): Ditto.
35924 (*pushsf_rex64): Ditto for alternatives other than 1.
35925 (*pushsf): Ditto for alternatives other than 1.
35926
35927 2020-02-06 Martin Liska <mliska@suse.cz>
35928
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.
35934
35935 2020-02-06 Stam Markianos-Wright <stam.markianos-wright@arm.com>
35936
35937 PR target/93300
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.
35941
35942 2020-02-06 Jakub Jelinek <jakub@redhat.com>
35943
35944 PR target/93594
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.
35948
35949 PR libgomp/93515
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.
35954
35955 PR libgomp/93515
35956 * gimplify.c (gimplify_scan_omp_clauses) <do_notice>: If adding
35957 shared clause, call omp_notice_variable on outer context if any.
35958
35959 2020-02-05 Jason Merrill <jason@redhat.com>
35960
35961 PR c++/92003
35962 * symtab.c (symtab_node::nonzero_address): A DECL_COMDAT decl has
35963 non-zero address even if weak and not yet defined.
35964
35965 2020-02-05 Martin Sebor <msebor@redhat.com>
35966
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.
35976
35977 2020-02-05 Uroš Bizjak <ubizjak@gmail.com>
35978
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.
35984
35985 2020-02-05 Michael Meissner <meissner@linux.ibm.com>
35986
35987 PR target/93568
35988 * config/rs6000/rs6000.c (get_vector_offset): Fix
35989
35990 2020-02-05 Andrew Stubbs <ams@codesourcery.com>
35991
35992 * config/gcn/t-gcn-hsa (MULTILIB_OPTIONS): Use / not space.
35993
35994 2020-02-05 David Malcolm <dmalcolm@redhat.com>
35995
35996 * doc/analyzer.texi
35997 (Special Functions for Debugging the Analyzer): Update description
35998 of __analyzer_dump_exploded_nodes.
35999
36000 2020-02-05 Jakub Jelinek <jakub@redhat.com>
36001
36002 PR target/92190
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.
36008
36009 PR target/92190
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
36013 when !optimize.
36014
36015 2020-02-05 Richard Biener <rguenther@suse.de>
36016
36017 PR middle-end/90648
36018 * genmatch.c (dt_node::gen_kids_1): Emit number of argument
36019 checks before matching calls.
36020
36021 2020-02-05 Jakub Jelinek <jakub@redhat.com>
36022
36023 * tree-ssa-alias.c (aliasing_matching_component_refs_p): Fix up
36024 function comment typo.
36025
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
36029 clone->inbranch.
36030
36031 2020-02-05 Martin Liska <mliska@suse.cz>
36032
36033 PR c++/92717
36034 * doc/invoke.texi: Document that one should
36035 not combine ASLR and -fpch.
36036
36037 2020-02-04 Richard Biener <rguenther@suse.de>
36038
36039 PR tree-optimization/93538
36040 * match.pd (addr EQ/NE ptr): Amend to handle &ptr->x EQ/NE ptr.
36041
36042 2020-02-04 Richard Biener <rguenther@suse.de>
36043
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.
36057
36058 2020-02-04 Richard Biener <rguenther@suse.de>
36059
36060 PR tree-optimization/92819
36061 * tree-ssa-forwprop.c (simplify_vector_constructor): Avoid
36062 generating more stmts than before.
36063
36064 2020-02-04 Martin Liska <mliska@suse.cz>
36065
36066 * config/arm/arm.c (arm_gen_far_branch): Move the function
36067 outside of selftests.
36068
36069 2020-02-03 Michael Meissner <meissner@linux.ibm.com>
36070
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.
36075
36076 2020-02-03 Michael Meissner <meissner@linux.ibm.com>
36077
36078 * config/rs6000/rs6000.c (reg_to_non_prefixed): Add forward
36079 reference.
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.
36087
36088 2020-02-03 Michael Meissner <meissner@linux.ibm.com>
36089
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.
36098
36099 2020-02-03 Michael Meissner <meissner@linux.ibm.com>
36100
36101 * config/rs6000/rs6000.c (rs6000_adjust_vec_address): Add some
36102 gcc_asserts.
36103
36104 2020-02-03 Segher Boessenkool <segher@kernel.crashing.org>
36105
36106 * config/rs6000/constraints.md: Improve documentation.
36107
36108 2020-02-03 Richard Earnshaw <rearnsha@arm.com>
36109
36110 PR target/93548
36111 * config/arm/t-arm: ($(srcdir)/config/arm/arm-tune.md)
36112 ($(srcdir)/config/arm/arm-tables.opt): Use move-if-change.
36113
36114 2020-02-03 Andrew Stubbs <ams@codesourcery.com>
36115
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.
36121
36122 2020-02-03 Stam Markianos-Wright <stam.markianos-wright@arm.com>
36123
36124 PR target/91816
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.
36129
36130 2020-02-03 Julian Brown <julian@codesourcery.com>
36131 Tobias Burnus <tobias@codesourcery.com>
36132
36133 * doc/invoke.texi: Update mention of OpenACC version to 2.6.
36134
36135 2020-02-03 Jakub Jelinek <jakub@redhat.com>
36136
36137 PR target/93533
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
36140 result.
36141
36142 2020-02-02 Vladimir Makarov <vmakarov@redhat.com>
36143
36144 PR rtl-optimization/91333
36145 * ira-color.c (struct allocno_color_data): Add member
36146 hard_reg_prefs.
36147 (init_allocno_threads): Set the member up.
36148 (bucket_allocno_compare_func): Add compare hard reg
36149 prefs.
36150
36151 2020-01-31 Sandra Loosemore <sandra@codesourcery.com>
36152
36153 nios2: Support for GOT-relative DW_EH_PE_datarel encoding.
36154
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.
36161
36162 2020-02-01 Andrew Burgess <andrew.burgess@embecosm.com>
36163
36164 * configure: Regenerate.
36165
36166 2020-01-31 Vladimir Makarov <vmakarov@redhat.com>
36167
36168 PR rtl-optimization/91333
36169 * ira-color.c (bucket_allocno_compare_func): Move conflict hard
36170 reg preferences comparison up.
36171
36172 2020-01-31 Richard Sandiford <richard.sandiford@arm.com>
36173
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):
36191 Declare.
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.
36217
36218 2020-01-31 Richard Sandiford <richard.sandiford@arm.com>
36219
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
36225 BF modes.
36226 (aarch64_full_sve_mode): Likewise.
36227 * config/aarch64/iterators.md (SVE_STRUCT): Add VNx16BF, VNx24BF
36228 and VNx32BF.
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
36233 new SVE BF modes.
36234 * config/aarch64/aarch64-sve-builtins.h (TYPE_bfloat): New
36235 type_class_index.
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.
36248
36249 2020-01-31 Dennis Zhang <dennis.zhang@arm.com>
36250 Matthew Malcomson <matthew.malcomson@arm.com>
36251 Richard Sandiford <richard.sandiford@arm.com>
36252
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):
36311 Generalize to...
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
36317 functions.
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):
36327
36328 2020-01-31 Andrew Stubbs <ams@codesourcery.com>
36329
36330 * config/gcn/gcn-valu.md (addv64di3_exec): Allow one '0' in each
36331 alternative only.
36332
36333 2020-01-31 Uroš Bizjak <ubizjak@gmail.com>
36334
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.
36361
36362 2020-01-31 Kwok Cheung Yeung <kcy@codesourcery.com>
36363
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.
36367
36368 2020-01-31 Tamar Christina <tamar.christina@arm.com>
36369
36370 PR rtl-optimization/91838
36371 * simplify-rtx.c (simplify_binary_operation_1): Update LSHIFTRT case
36372 to truncate if allowed or reject combination.
36373
36374 2020-01-31 Andrew Stubbs <ams@codesourcery.com>
36375
36376 * tree-ssa-loop-ivopts.c (get_iv): Use sizetype for zero-step.
36377 (find_inv_vars_cb): Likewise.
36378
36379 2020-01-31 David Malcolm <dmalcolm@redhat.com>
36380
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.
36386
36387 2020-01-30 Andrew Stubbs <ams@codesourcery.com>
36388
36389 * config/gcn/gcn-valu.md (gather<mode>_exec): Move contents ...
36390 (mask_gather_load<mode>): ... here, and zero-initialize the
36391 destination.
36392 (maskload<mode>di): Zero-initialize the destination.
36393 * config/gcn/gcn.c:
36394
36395 2020-01-30 David Malcolm <dmalcolm@redhat.com>
36396
36397 PR analyzer/93356
36398 * doc/analyzer.texi (Limitations): Note that constraints on
36399 floating-point values are currently ignored.
36400
36401 2020-01-30 Jakub Jelinek <jakub@redhat.com>
36402
36403 PR lto/93384
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.
36407
36408 PR middle-end/93505
36409 * combine.c (simplify_comparison) <case ROTATE>: Punt on out of range
36410 rotate counts.
36411
36412 2020-01-30 Andrew Stubbs <ams@codesourcery.com>
36413
36414 * config/gcn/gcn.c (print_operand): Handle LTGT.
36415 * config/gcn/predicates.md (gcn_fp_compare_operator): Allow ltgt.
36416
36417 2020-01-30 Richard Biener <rguenther@suse.de>
36418
36419 * tree-pretty-print.c (dump_generic_node): Wrap VECTOR_CST
36420 and CONSTRUCTOR in _Literal (type) with TDF_GIMPLE.
36421
36422 2020-01-30 John David Anglin <danglin@gcc.gnu.org>
36423
36424 * config/pa/pa.c (pa_elf_select_rtx_section): Place function pointers
36425 without a DECL in .data.rel.ro.local.
36426
36427 2020-01-30 Jakub Jelinek <jakub@redhat.com>
36428
36429 PR target/93494
36430 * config/arm/arm.md (uaddvdi4): Actually emit what gen_uaddvsi4
36431 returned.
36432
36433 PR target/91824
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.
36446
36447 PR target/91824
36448 * config/i386/i386.md (*popcountsi2_zext): New define_insn_and_split.
36449 (*popcountsi2_zext_falsedep): New define_insn.
36450
36451 2020-01-30 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
36452
36453 * config.in: Regenerated.
36454 * configure: Regenerated.
36455
36456 2020-01-29 Tobias Burnus <tobias@codesourcery.com>
36457
36458 PR bootstrap/93409
36459 * config/gcn/gcn-hsa.h (ASM_SPEC): Add -mattr=-code-object-v3 as
36460 LLVM's assembler changed the default in version 9.
36461
36462 2020-01-24 Jeff Law <law@redhat.com>
36463
36464 PR tree-optimization/89689
36465 * builtins.def (BUILT_IN_OBJECT_SIZE): Make it const rather than pure.
36466
36467 2020-01-29 Richard Sandiford <richard.sandiford@arm.com>
36468
36469 Revert:
36470
36471 2020-01-28 Richard Sandiford <richard.sandiford@arm.com>
36472
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.
36477
36478 2020-01-29 Joel Hutton <Joel.Hutton@arm.com>
36479
36480 PR target/93221
36481 * ira.c (ira): Revert use of simplified LRA algorithm.
36482
36483 2020-01-29 Martin Jambor <mjambor@suse.cz>
36484
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
36502 work_queue.
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
36512 RHSs.
36513
36514 2020-01-29 Martin Jambor <mjambor@suse.cz>
36515
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
36520 access.
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
36526 flags.
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.
36539
36540 2020-01-29 Martin Jambor <mjambor@suse.cz>
36541
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.
36546
36547 2020-01-28 Jan Hubicka <hubicka@ucw.cz>
36548
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.
36553
36554 2020-01-29 Richard Biener <rguenther@suse.de>
36555
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.
36560
36561 2020-01-28 Jan Hubicka <hubicka@ucw.cz>
36562
36563 * ipa-prop.c (update_indirect_edges_after_inlining): Fix warning.
36564
36565 2020-01-28 Vladimir Makarov <vmakarov@redhat.com>
36566
36567 PR rtl-optimization/93272
36568 * ira-lives.c (process_out_of_region_eh_regs): New function.
36569 (process_bb_node_lives): Call it.
36570
36571 2020-01-28 Jan Hubicka <hubicka@ucw.cz>
36572
36573 * coverage.c (read_counts_file): Make error message lowercase.
36574
36575 2020-01-28 Jan Hubicka <hubicka@ucw.cz>
36576
36577 * profile-count.c (profile_quality_display_names): Fix ordering.
36578
36579 2020-01-28 Jan Hubicka <hubicka@ucw.cz>
36580
36581 PR lto/93318
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
36597 of profile.
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
36616 profiles.
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.
36624
36625 2020-01-28 H.J. Lu <hongjiu.lu@intel.com>
36626
36627 PR target/91461
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.
36636
36637 2020-01-28 David Malcolm <dmalcolm@redhat.com>
36638
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.
36646
36647 2020-01-28 Richard Biener <rguenther@suse.de>
36648
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
36653 tracked.
36654
36655 2020-01-28 H.J. Lu <hongjiu.lu@intel.com>
36656
36657 PR target/91399
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.
36666
36667 2020-01-28 Richard Sandiford <richard.sandiford@arm.com>
36668
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.
36673
36674 2020-01-28 Richard Sandiford <richard.sandiford@arm.com>
36675
36676 * tree-vect-loop.c (vectorizable_reduction): Fail gracefully
36677 for reduction chains that (now) include a call.
36678
36679 2020-01-28 Richard Sandiford <richard.sandiford@arm.com>
36680
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.
36685
36686 2020-01-28 Richard Sandiford <richard.sandiford@arm.com>
36687
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.
36692
36693 2020-01-28 Jakub Jelinek <jakub@redhat.com>
36694
36695 PR target/93418
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.
36699
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.
36706
36707 2020-01-27 Joseph Myers <joseph@codesourcery.com>
36708
36709 * config/mips/mips.c (mips_declare_object_name)
36710 [USE_GNU_UNIQUE_OBJECT]: Support use of gnu_unique_object.
36711
36712 2020-01-27 Martin Liska <mliska@suse.cz>
36713
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.
36718
36719 2020-01-27 Richard Sandiford <richard.sandiford@arm.com>
36720
36721 PR target/92822
36722 * config/aarch64/aarch64-simd.md (aarch64_get_half<mode>): New
36723 expander.
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.
36730
36731 2020-01-27 Richard Sandiford <richard.sandiford@arm.com>
36732
36733 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Match
36734 jump conditions for *compare_condjump<GPI:mode>.
36735
36736 2020-01-27 David Malcolm <dmalcolm@redhat.com>
36737
36738 PR analyzer/93276
36739 * digraph.cc (test_edge::test_edge): Specify template for base
36740 class initializer.
36741
36742 2020-01-27 Claudiu Zissulescu <claziss@synopsys.com>
36743
36744 * config/arc/arc.c (arc_rtx_costs): Update mul64 cost.
36745
36746 2020-01-27 Claudiu Zissulescu <claziss@synopsys.com>
36747
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
36754 paramter is true.
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.
36760 (gen_mlo): Remove.
36761 (gen_mhi): Remove.
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
36770 TARGET_BIG_ENDIAN.
36771 (mhi_operand): Likewise.
36772
36773 2020-01-27 Claudiu Zissulescu <claziss@synopsys.com>
36774 Petro Karashchenko <petro.karashchenko@ring.com>
36775
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
36779 direct access.
36780 (arc_isuncached_mem_p): Propagate uncached attribute to each
36781 structure member.
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.
36787 (stdi): Likewise.
36788 (stdidi_split): Split instruction for architectures which are not
36789 supporting ll64 option.
36790 (lddidi_split): Likewise.
36791
36792 2020-01-27 Richard Sandiford <richard.sandiford@arm.com>
36793
36794 PR rtl-optimization/92989
36795 * lra-lives.c (process_bb_lives): Update the live-in set before
36796 processing additional clobbers.
36797
36798 2020-01-27 Richard Sandiford <richard.sandiford@arm.com>
36799
36800 PR rtl-optimization/93170
36801 * cselib.c (cselib_invalidate_regno_val): New function, split out
36802 from...
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.
36807
36808 2020-01-27 Richard Sandiford <richard.sandiford@arm.com>
36809
36810 * dojump.c (split_comparison): Use HONOR_NANS rather than
36811 HONOR_SNANS when splitting LTGT.
36812
36813 2020-01-27 Martin Liska <mliska@suse.cz>
36814
36815 PR driver/91220
36816 * opts.c (print_filtered_help): Exclude language-specific
36817 options from --help=common unless enabled in all FEs.
36818
36819 2020-01-27 Martin Liska <mliska@suse.cz>
36820
36821 * opts.c (print_help): Exclude params from
36822 all except --help=param.
36823
36824 2020-01-27 Martin Liska <mliska@suse.cz>
36825
36826 PR target/93274
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.
36830
36831 2020-01-27 Richard Biener <rguenther@suse.de>
36832
36833 PR tree-optimization/93397
36834 * tree-vect-slp.c (vect_analyze_slp_instance): Delay
36835 converted reduction chain SLP graph adjustment.
36836
36837 2020-01-26 Marek Polacek <polacek@redhat.com>
36838
36839 PR sanitizer/93436
36840 * sanopt.c (sanitize_rewrite_addressable_params): Avoid crash on
36841 null DECL_NAME.
36842
36843 2020-01-26 Jason Merrill <jason@redhat.com>
36844
36845 PR c++/92601
36846 * tree.c (verify_type_variant): Only verify TYPE_NEEDS_CONSTRUCTING
36847 of complete types.
36848
36849 2020-01-26 Darius Galis <darius.galis@cyberthorstudios.com>
36850
36851 * config/rx/rx.md (setmemsi): Added rx_allow_string_insns constraint
36852 (rx_setmem): Likewise.
36853
36854 2020-01-26 Jakub Jelinek <jakub@redhat.com>
36855
36856 PR target/93412
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.
36860
36861 PR target/93430
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.
36865
36866 2020-01-25 Feng Xue <fxue@os.amperecomputing.com>
36867
36868 PR ipa/93166
36869 * ipa-cp.c (get_info_about_necessary_edges): Remove value
36870 check assertion.
36871
36872 2020-01-24 Jeff Law <law@redhat.com>
36873
36874 PR tree-optimization/92788
36875 * tree-ssa-threadedge.c (thread_across_edge): Check EDGE_COMPLEX
36876 not EDGE_ABNORMAL.
36877
36878 2020-01-24 Jakub Jelinek <jakub@redhat.com>
36879
36880 PR target/93395
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>.
36886
36887 PR target/93376
36888 * simplify-rtx.c (simplify_const_unary_operation,
36889 simplify_const_binary_operation): Punt for mode precision above
36890 MAX_BITSIZE_MODE_ANY_INT.
36891
36892 2020-01-24 Andrew Pinski <apinski@marvell.com>
36893
36894 * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): Change
36895 alu.shift_reg to 0.
36896
36897 2020-01-24 Jeff Law <law@redhat.com>
36898
36899 PR target/13721
36900 * config/h8300/h8300.c (h8300_print_operand): Only call byte_reg
36901 for REGs. Call output_operand_lossage to get more reasonable
36902 diagnostics.
36903
36904 2020-01-24 Andrew Stubbs <ams@codesourcery.com>
36905
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.
36923
36924 2020-01-24 Maciej W. Rozycki <macro@wdc.com>
36925
36926 * doc/install.texi (Cross-Compiler-Specific Options): Document
36927 `--with-toolexeclibdir' option.
36928
36929 2020-01-24 Hans-Peter Nilsson <hp@axis.com>
36930
36931 * target.def (flags_regnum): Also mention effect on delay slot filling.
36932 * doc/tm.texi: Regenerate.
36933
36934 2020-01-23 Jeff Law <law@redhat.com>
36935
36936 PR translation/90162
36937 * config/h8300/h8300.c (h8300_option_override): Fix diagnostic text.
36938
36939 2020-01-23 Mikael Tillenius <mti-1@tillenius.com>
36940
36941 PR target/92269
36942 * config/h8300/h8300.h (FUNCTION_PROFILER): Fix emission of
36943 profiling label
36944
36945 2020-01-23 Jakub Jelinek <jakub@redhat.com>
36946
36947 PR rtl-optimization/93402
36948 * postreload.c (reload_combine_recognize_pattern): Don't try to adjust
36949 USE insns.
36950
36951 2020-01-23 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
36952
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.
36959
36960 2020-01-23 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
36961
36962 * config/mips/linux.h (NEED_INDICATE_EXEC_STACK): Define to
36963 TARGET_SOFT_FLOAT.
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.
36968
36969 2020-01-23 Jakub Jelinek <jakub@redhat.com>
36970
36971 PR target/93376
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>
36980 instead of <QWI>.
36981
36982 2020-01-23 Richard Sandiford <richard.sandiford@arm.com>
36983
36984 PR target/93341
36985 * config/aarch64/aarch64.md (UNSPEC_SPECULATION_TRACKER_REV): New
36986 unspec.
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.
36990
36991 2020-01-23 Richard Biener <rguenther@suse.de>
36992
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
36999 case.
37000 (vn_reference_lookup): Consistently set *last_vuse_ptr.
37001 * real.c (clear_significand_below): Fix out-of-bound access.
37002
37003 2020-01-23 Jakub Jelinek <jakub@redhat.com>
37004
37005 PR target/93346
37006 * config/i386/i386.md (*bmi2_bzhi_<mode>3_2, *bmi2_bzhi_<mode>3_3):
37007 New define_insn patterns.
37008
37009 2020-01-23 Richard Sandiford <richard.sandiford@arm.com>
37010
37011 * doc/sourcebuild.texi (check-function-bodies): Add an
37012 optional target/xfail selector.
37013
37014 2020-01-23 Richard Sandiford <richard.sandiford@arm.com>
37015
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.
37019
37020 2020-01-22 Andrew Pinski <apinski@marvell.com>
37021
37022 * config/arc/arc.c (output_short_suffix): Check insn for nullness.
37023
37024 2020-01-22 David Malcolm <dmalcolm@redhat.com>
37025
37026 PR analyzer/93307
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.
37032
37033 2020-01-22 Richard Sandiford <richard.sandiford@arm.com>
37034
37035 * cfgexpand.c (union_stack_vars): Update the size.
37036
37037 2020-01-22 Richard Biener <rguenther@suse.de>
37038
37039 PR tree-optimization/93381
37040 * tree-ssa-structalias.c (find_func_aliases): Assume offsetting
37041 throughout, handle all conversions the same.
37042
37043 2020-01-22 Jakub Jelinek <jakub@redhat.com>
37044
37045 PR target/93335
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.
37050
37051 2020-01-22 Martin Liska <mliska@suse.cz>
37052
37053 PR tree-optimization/92924
37054 * profile.c (compute_value_histograms): Divide
37055 all counter values.
37056
37057 2020-01-22 Jakub Jelinek <jakub@redhat.com>
37058
37059 PR target/91298
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.
37064
37065 2020-01-22 Joseph Myers <joseph@codesourcery.com>
37066
37067 * doc/sourcebuild.texi (Texinfo Manuals, Front End): Refer to
37068 update_web_docs_git instead of update_web_docs_svn.
37069
37070 2020-01-21 Andrew Pinski <apinski@marvell.com>
37071
37072 PR target/9311
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.
37079
37080 2020-01-21 Jim Wilson <jimw@sifive.com>
37081
37082 * config/riscv/riscv-sr.c (riscv_sr_match_prologue): Use INTVAL
37083 instead of XINT.
37084
37085 2020-01-21 H.J. Lu <hongjiu.lu@intel.com>
37086 Uros Bizjak <ubizjak@gmail.com>
37087
37088 PR target/93319
37089 * config/i386/i386.c (ix86_tls_module_base): Replace Pmode
37090 with ptr_mode.
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.
37098
37099 2020-01-21 Jakub Jelinek <jakub@redhat.com>
37100
37101 PR target/93333
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.
37104
37105 2020-01-21 Richard Sandiford <richard.sandiford@arm.com>
37106
37107 * config/aarch64/aarch64-sve-builtins.def: Use get_typenode_from_name
37108 to get the integer element types.
37109
37110 2020-01-21 Richard Sandiford <richard.sandiford@arm.com>
37111
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.
37120
37121 2020-01-21 Szabolcs Nagy <szabolcs.nagy@arm.com>
37122
37123 PR target/92424
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.
37130
37131 2020-01-21 David Malcolm <dmalcolm@redhat.com>
37132
37133 PR ipa/93315
37134 * ipa-profile.c (ipa_profile): Delete call_sums and set it to
37135 NULL on exit.
37136
37137 2020-01-18 Jan Hubicka <hubicka@ucw.cz>
37138
37139 PR lto/93318
37140 * cgraph.c (cgraph_edge::resolve_speculation,
37141 cgraph_edge::redirect_call_stmt_to_callee): Fix update of
37142 call_stmt_site_hash.
37143
37144 2020-01-21 Martin Liska <mliska@suse.cz>
37145
37146 * config/rs6000/rs6000.c (common_mode_defined): Remove
37147 unused variable.
37148
37149 2020-01-21 Richard Biener <rguenther@suse.de>
37150
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
37154 VIEW_CONVERT_EXPR.
37155 (eliminate_dom_walker::eliminate_stmt): When eliminating
37156 a redundant store handle bit-reinterpretation of the same value.
37157
37158 2020-01-21 Andrew Pinski <apinski@marvel.com>
37159
37160 PR tree-opt/93321
37161 * tree-into-ssa.c (prepare_block_for_update_1): Split out
37162 from ...
37163 (prepare_block_for_update): This. Use a worklist instead of
37164 recursing.
37165
37166 2020-01-21 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
37167
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.
37172
37173 2020-01-21 Jakub Jelinek <jakub@redhat.com>
37174
37175 PR target/93073
37176 * config/rs6000/rs6000.c (rs6000_emit_cmove): If using fsel, punt for
37177 compare_mode other than SFmode or DFmode.
37178
37179 2020-01-21 Kito Cheng <kito.cheng@sifive.com>
37180
37181 PR target/93304
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.
37185
37186 2020-01-20 Wilco Dijkstra <wdijkstr@arm.com>
37187
37188 * config/aarch64/aarch64.c (neoversen1_tunings): Set jump_align to 4.
37189
37190 2020-01-20 Andrew Pinski <apinski@marvell.com>
37191
37192 PR middle-end/93242
37193 * targhooks.c (default_print_patchable_function_entry): Use
37194 output_asm_insn to emit the nop instruction.
37195
37196 2020-01-20 Fangrui Song <maskray@google.com>
37197
37198 PR middle-end/93194
37199 * targhooks.c (default_print_patchable_function_entry): Align to
37200 POINTER_SIZE.
37201
37202 2020-01-20 H.J. Lu <hongjiu.lu@intel.com>
37203
37204 PR target/93319
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.
37217
37218 2020-01-20 Wilco Dijkstra <wdijkstr@arm.com>
37219
37220 * config/aarch64/aarch64.h (SLOW_BYTE_ACCESS): Set to 1.
37221
37222 2020-01-20 Richard Sandiford <richard.sandiford@arm.com>
37223
37224 * config/aarch64/aarch64-sve-builtins-base.cc
37225 (svld1ro_impl::memory_vector_mode): Remove parameter name.
37226
37227 2020-01-20 Richard Biener <rguenther@suse.de>
37228
37229 PR debug/92763
37230 * dwarf2out.c (prune_unused_types): Unconditionally mark
37231 called function DIEs.
37232
37233 2020-01-20 Martin Liska <mliska@suse.cz>
37234
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
37242 for this_state.
37243 (lower_catch): Likewise.
37244 (lower_eh_filter): Likewise.
37245 (lower_eh_must_not_throw): Likewise.
37246 (lower_cleanup): Likewise.
37247
37248 2020-01-20 Richard Biener <rguenther@suse.de>
37249
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.
37259
37260 2020-01-19 Eric S. Raymond <esr@thyrsus.com>
37261
37262 * doc/contribute.texi: Update for SVN -> Git transition.
37263 * doc/install.texi: Likewise.
37264
37265 2020-01-18 Jan Hubicka <hubicka@ucw.cz>
37266
37267 PR lto/93318
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
37273 speculations.
37274
37275 2020-01-18 Jan Hubicka <hubicka@ucw.cz>
37276
37277 PR lto/93318
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
37284 lto_stmt_uid.
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.
37288
37289 2020-01-18 Tamar Christina <tamar.christina@arm.com>
37290
37291 * config/aarch64/aarch64-sve-builtins-base.cc (memory_vector_mode):
37292 Mark parameter unused.
37293
37294 2020-01-18 Hans-Peter Nilsson <hp@axis.com>
37295
37296 * config.gcc <obsolete targets>: Add crisv32-*-* and cris-*-linux*
37297
37298 2019-01-18 Gerald Pfeifer <gerald@pfeifer.com>
37299
37300 * varpool.c (ctor_useable_for_folding_p): Fix grammar.
37301
37302 2020-01-18 Iain Sandoe <iain@sandoe.co.uk>
37303
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.
37318 (CO_YIELD): New.
37319 (CO_SUSPN): New.
37320 (CO_FRAME): 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
37326 switch.
37327
37328 2020-01-18 Jakub Jelinek <jakub@redhat.com>
37329
37330 * config/arm/vfp.md (*clear_vfp_multiple): Remove unused variable.
37331
37332 PR target/93312
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.
37336
37337 2020-01-17 David Malcolm <dmalcolm@redhat.com>
37338
37339 * doc/analyzer.texi (Limitations): Add note about NaN.
37340
37341 2020-01-17 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
37342 Sudakshina Das <sudi.das@arm.com>
37343
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.
37354
37355 2020-01-17 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
37356 Sudakshina Das <sudi.das@arm.com>
37357
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.
37364
37365 2020-01-17 Jakub Jelinek <jakub@redhat.com>
37366
37367 * config/arm/arm.c (cmse_nonsecure_call_inline_register_clear): Remove
37368 unused variable.
37369
37370 2020-01-17 Alexander Monakov <amonakov@ispras.ru>
37371
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
37375 documentation.
37376
37377 2020-01-17 Matthew Malcomson <matthew.malcomson@arm.com>
37378
37379 * config/aarch64/aarch64-sve.md (@aarch64_sve_ld1ro<mode>): Use the
37380 correct target macro.
37381
37382 2020-01-17 Matthew Malcomson <matthew.malcomson@arm.com>
37383
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
37397 OImode.
37398 * config/aarch64/aarch64-sve.md (@aarch64_sve_ld1ro<mode>): New
37399 pattern.
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.
37408
37409 2020-01-17 Matthew Malcomson <matthew.malcomson@arm.com>
37410
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.
37422
37423 2020-01-17 Wilco Dijkstra <wdijkstr@arm.com>
37424
37425 * config/aarch64/aarch64.c (generic_tunings): Add branch fusion.
37426 (neoversen1_tunings): Likewise.
37427
37428 2020-01-17 Wilco Dijkstra <wdijkstr@arm.com>
37429
37430 PR target/92692
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.
37443
37444 2020-01-17 Richard Sandiford <richard.sandiford@arm.com>
37445
37446 PR target/93133
37447 * config/aarch64/aarch64.h (REVERSIBLE_CC_MODE): Return false
37448 for FP modes.
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
37463 patterns instead.
37464
37465 2020-01-17 Richard Sandiford <richard.sandiford@arm.com>
37466
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.
37470
37471 2020-01-17 Jakub Jelinek <jakub@redhat.com>
37472
37473 PR tree-optimization/93292
37474 * tree-vect-stmts.c (vectorizable_comparison): Punt also if
37475 get_vectype_for_scalar_type returns NULL.
37476
37477 2020-01-16 Jan Hubicka <hubicka@ucw.cz>
37478
37479 * params.opt (-param=max-predicted-iterations): Increase range from 0.
37480 * predict.c (estimate_loops): Add 1 to param_max_predicted_iterations.
37481
37482 2020-01-16 Jan Hubicka <hubicka@ucw.cz>
37483
37484 * ipa-fnsummary.c (estimate_calls_size_and_time): Fix formating of
37485 dump.
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
37494 of back edge prob.
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.
37498
37499 2020-01-16 Stam Markianos-Wright <stam.markianos-wright@arm.com>
37500
37501 * config/arm/arm.c
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.
37505
37506 2020-01-16 Stam Markianos-Wright <stam.markianos-wright@arm.com>
37507
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.
37531
37532 2020-01-16 Mihail Ionescu <mihail.ionescu@arm.com>
37533 Andre Vieira <andre.simoesdiasvieira@arm.com>
37534
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.
37540
37541 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
37542 Thomas Preud'homme <thomas.preudhomme@arm.com>
37543
37544 * config/arm/arm-cpus.in (ARMv8_1m_main): Redefine as an extension to
37545 Armv8-M Mainline.
37546 * config/arm/arm.c (arm_options_perform_arch_sanity_checks): Remove
37547 error for using -mcmse when targeting Armv8.1-M Mainline.
37548
37549 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
37550 Thomas Preud'homme <thomas.preudhomme@arm.com>
37551
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.
37559
37560 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
37561 Thomas Preud'homme <thomas.preudhomme@arm.com>
37562
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.
37573
37574 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
37575 Thomas Preud'homme <thomas.preudhomme@arm.com>
37576
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.
37582
37583 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
37584 Thomas Preud'homme <thomas.preudhomme@arm.com>
37585
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.
37593
37594 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
37595 Thomas Preud'homme <thomas.preudhomme@arm.com>
37596
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
37605 VFP register.
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.
37611
37612 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
37613 Thomas Preud'homme <thomas.preudhomme@arm.com>
37614
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.
37626
37627 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
37628 Thomas Preud'homme <thomas.preudhomme@arm.com>
37629
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
37642 entry function.
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.
37650
37651 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
37652 Thomas Preud'homme <thomas.preudhomme@arm.com>
37653
37654 * config/arm/arm-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.
37667
37668 2020-01-16 Stam Markianos-Wright <stam.markianos-wright@arm.com>
37669
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.
37680
37681 2020-01-16 Stam Markianos-Wright <stam.markianos-wright@arm.com>
37682
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.
37698
37699 2020-01-16 Martin Liska <mliska@suse.cz>
37700
37701 * value-prof.c (dump_histogram_value): Fix
37702 obvious spacing issue.
37703
37704 2020-01-16 Andrew Pinski <apinski@marvell.com>
37705
37706 * tree-ssa-sccvn.c(vn_reference_lookup_3): Check lhs for
37707 !storage_order_barrier_p.
37708
37709 2020-01-16 Andrew Pinski <apinski@marvell.com>
37710
37711 * sched-int.h (_dep): Add unused bit-field field for the padding.
37712 * sched-deps.c (init_dep_1): Init unused field.
37713
37714 2020-01-16 Andrew Pinski <apinski@marvell.com>
37715
37716 * optabs.h (create_expand_operand): Initialize target field also.
37717
37718 2020-01-16 Andre Vieira <andre.simoesdiasvieira@arm.com>
37719
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
37723 control folding.
37724 * tree-vect-loop.c (update_epilogue_vinfo): Do not fold when replacing
37725 tree.
37726
37727 2020-01-16 Richard Sandiford <richard.sandiford@arm.com>
37728
37729 * config/aarch64/aarch64.c (aarch64_split_sve_subreg_move): Apply
37730 aarch64_sve_int_mode to each mode.
37731
37732 2020-01-15 David Malcolm <dmalcolm@redhat.com>
37733
37734 * doc/analyzer.texi (Overview): Add note about
37735 -fdump-ipa-analyzer.
37736
37737 2020-01-15 Wilco Dijkstra <wdijkstr@arm.com>
37738
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.
37745
37746 2020-01-15 Uroš Bizjak <ubizjak@gmail.com>
37747
37748 * config/i386/i386.md (*movsf_internal): Do not require
37749 SSE2 ISA for alternatives 14 and 15.
37750
37751 2020-01-15 Richard Biener <rguenther@suse.de>
37752
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.
37758
37759 2020-01-15 Jakub Jelinek <jakub@redhat.com>
37760
37761 * BASE-VER: Bump to 10.0.1.
37762
37763 2020-01-15 Richard Sandiford <richard.sandiford@arm.com>
37764
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.
37768
37769 2020-01-15 Richard Sandiford <richard.sandiford@arm.com>
37770
37771 * tree-vect-slp.c (vectorize_slp_instance_root_stmt): Use a
37772 VIEW_CONVERT_EXPR if the vectorized constructor has a diffeent
37773 type from the lhs.
37774
37775 2020-01-15 Martin Liska <mliska@suse.cz>
37776
37777 * ipa-profile.c (ipa_profile_read_edge_summary): Do not allow
37778 2 calls of streamer_read_hwi in a function call.
37779
37780 2020-01-15 Richard Biener <rguenther@suse.de>
37781
37782 * alias.c (record_alias_subset): Avoid redundant work when
37783 subset is already recorded.
37784
37785 2020-01-14 David Malcolm <dmalcolm@redhat.com>
37786
37787 * doc/invoke.texi (-fdiagnostics-show-cwe): Add note that some of
37788 the analyzer options provide CWE identifiers.
37789
37790 2020-01-14 David Malcolm <dmalcolm@redhat.com>
37791
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.
37795
37796 2020-01-15 Jakub Jelinek <jakub@redhat.com>
37797
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.
37803
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.
37810
37811 2020-01-14 David Malcolm <dmalcolm@redhat.com>
37812
37813 * Makefile.in (ANALYZER_OBJS): Add analyzer/function-set.o.
37814
37815 2020-01-15 Jakub Jelinek <jakub@redhat.com>
37816
37817 PR target/93009
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
37824 commutative.
37825
37826 2020-01-14 Jan Hubicka <hubicka@ucw.cz>
37827
37828 PR lto/91576
37829 * ipa-devirt.c (odr_types_equivalent_p): Compare TREE_ADDRESSABLE and
37830 TYPE_MODE.
37831
37832 2020-01-14 David Malcolm <dmalcolm@redhat.com>
37833
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
37895 decl.
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.
37909
37910 2020-01-14 Uroš Bizjak <ubizjak@gmail.com>
37911
37912 PR target/93254
37913 * config/i386/i386.md (*movsf_internal): Require SSE2 ISA for
37914 alternatives 9 and 10.
37915
37916 2020-01-14 David Malcolm <dmalcolm@redhat.com>
37917
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
37928 from Traits.
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):
37939 Likewise.
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):
37950 Likewise.
37951
37952 2020-01-14 Kewen Lin <linkw@gcc.gnu.org>
37953
37954 * cfgloopanal.c (average_num_loop_insns): Free bbs when early return,
37955 fix typo on return value.
37956
37957 2020-01-14 Xiong Hu Luo <luoxhu@linux.ibm.com>
37958
37959 PR ipa/69678
37960 * cgraph.c (symbol_table::create_edge): Init speculative_id and
37961 target_prob.
37962 (cgraph_edge::make_speculative): Add param for setting speculative_id
37963 and target_prob.
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
37996 profile summaries.
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
38004 precise.
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.
38017
38018 2020-01-13 Andrew Pinski <apinski@marvell.com>
38019
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.
38029
38030 2020-01-13 Jason Merrill <jason@redhat.com>
38031
38032 PR c++/33799 - destroy return value if local cleanup throws.
38033 * gimplify.c (gimplify_return_expr): Handle COMPOUND_EXPR.
38034
38035 2020-01-13 Martin Liska <mliska@suse.cz>
38036
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.
38040
38041 2020-01-13 Martin Sebor <msebor@redhat.com>
38042
38043 PR tree-optimization/93213
38044 * tree-ssa-strlen.c (handle_store): Only allow single-byte nul-over-nul
38045 stores to be eliminated.
38046
38047 2020-01-13 Martin Liska <mliska@suse.cz>
38048
38049 * opts.c (print_help): Do not print CL_PARAM
38050 and CL_WARNING for CL_OPTIMIZATION.
38051
38052 2020-01-13 Jonathan Wakely <jwakely@redhat.com>
38053
38054 PR driver/92757
38055 * doc/invoke.texi (Warning Options): Add caveat about some warnings
38056 depending on optimization settings.
38057
38058 2020-01-13 Jakub Jelinek <jakub@redhat.com>
38059
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
38065 warning at -O0.
38066
38067 2020-01-10 Thomas Schwinge <thomas@codesourcery.com>
38068
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.
38074
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'.
38077
38078 2020-01-10 David Malcolm <dmalcolm@redhat.com>
38079
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
38088 non-static.
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
38154 decl.
38155 (default_tree_make_json_for_path): New decl.
38156 (maybe_unwind_expanded_macro_loc): New decl.
38157
38158 2020-01-10 Jakub Jelinek <jakub@redhat.com>
38159
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,
38164 simplify.
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.
38177
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.
38182
38183 2020-01-10 Vladimir Makarov <vmakarov@redhat.com>
38184
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
38188 mode.
38189
38190 2020-01-10 Wilco Dijkstra <wdijkstr@arm.com>
38191
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.
38199
38200 2020-01-10 Stam Markianos-Wright <stam.markianos-wright@arm.com>
38201
38202 * config/aarch64/aarch64.c (aarch64_invalid_conversion): New function
38203 for target hook.
38204 (aarch64_invalid_unary_op): New function for target hook.
38205 (aarch64_invalid_binary_op): New function for target hook.
38206
38207 2020-01-10 Stam Markianos-Wright <stam.markianos-wright@arm.com>
38208
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
38213 types.
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
38217 modes.
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
38220 patterns.
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.
38234
38235 2020-01-10 Jason Merrill <jason@redhat.com>
38236
38237 PR c++/93173 - incorrect tree sharing.
38238 * gimplify.c (copy_if_shared): No longer static.
38239 * gimplify.h: Declare it.
38240
38241 2020-01-10 Richard Sandiford <richard.sandiford@arm.com>
38242
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.
38252
38253 2020-01-10 Richard Sandiford <richard.sandiford@arm.com>
38254
38255 * config/aarch64/aarch64.c (aarch64_evpc_sel): Fix gen_vcond_mask
38256 invocation.
38257
38258 2020-01-10 Richard Sandiford <richard.sandiford@arm.com>
38259
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.
38263
38264 2020-01-10 Richard Sandiford <richard.sandiford@arm.com>
38265
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.
38269
38270 2020-01-10 Richard Sandiford <richard.sandiford@arm.com>
38271
38272 * tree-vect-loop.c (update_epilogue_loop_vinfo): Update DR_REF
38273 for any type of gather or scatter, including strided accesses.
38274
38275 2020-01-10 Andre Vieira <andre.simoesdiasvieira@arm.com>
38276
38277 * tree-vectorizer.h (get_dr_vinfo_offset): Add missing function
38278 comment.
38279
38280 2020-01-10 Andre Vieira <andre.simoesdiasvieira@arm.com>
38281
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.
38296
38297 2020-01-10 Richard Biener <rguenther@suse.de>
38298
38299 * gimple-ssa-store-merging
38300 (pass_store_merging::terminate_all_aliasing_chains): Cache alias info.
38301
38302 2020-01-10 Martin Liska <mliska@suse.cz>
38303
38304 PR ipa/93217
38305 * ipa-inline-analysis.c (offline_size): Make proper parenthesis
38306 encapsulation that was there before r280040.
38307
38308 2020-01-10 Richard Biener <rguenther@suse.de>
38309
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
38314 them here.
38315
38316 2020-01-10 Richard Biener <rguenther@suse.de>
38317
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.
38322
38323 2020-01-10 Martin Jambor <mjambor@suse.cz>
38324
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.
38330
38331 2020-01-10 Martin Jambor <mjambor@suse.cz>
38332
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.
38342
38343 2020-01-10 Martin Jambor <mjambor@suse.cz>
38344
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.
38350
38351 2020-01-09 Kwok Cheung Yeung <kcy@codesourcery.com>
38352
38353 * lto-streamer-in.c (input_function): Remove streamed-in inline debug
38354 markers if debug_inline_points is false.
38355
38356 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
38357
38358 * config.gcc (aarch64*-*-*): Add aarch64-sve-builtins-sve2.o to
38359 extra_objs.
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
38370 TARGET_SVE2_SM4.
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
38383 pattern.
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
38391 new pattern.
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
38425 pattern.
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
38444 new pattern.
38445 (<SHRNT:r>shrnt<mode>): Generalize to...
38446 (@aarch64_sve_<SVE2_INT_SHIFT_IMM_NARROWT:sve_int_op><mode>): ...this
38447 new pattern.
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
38522 further down file.
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
38554 and UNSPEC_RSHRNT.
38555 (lr): Handle the new unspecs.
38556 (bt): Delete.
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
38568 bool parameter.
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
38601 scaling operands.
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
38617 typedefs.
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
38622 typedefs.
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.
38711
38712 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
38713
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.
38722
38723 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
38724
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.
38730
38731 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
38732
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.
38742
38743 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
38744
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.
38758
38759 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
38760
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.
38767
38768 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
38769
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.
38777
38778 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
38779
38780 * config/aarch64/iterators.md (addsub): New code attribute.
38781 * config/aarch64/aarch64-simd.md (aarch64_<su_optab><optab><mode>):
38782 Re-express as...
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>):
38786 Re-express as...
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.
38797
38798 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
38799
38800 * config/aarch64/iterators.md (SRHSUB, URHSUB): Delete.
38801 (HADDSUB, sur, addsub): Remove them.
38802
38803 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
38804
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.
38808
38809 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
38810
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
38819 function.
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.
38823
38824 2020-01-09 Martin Jambor <mjambor@suse.cz>
38825
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
38846 set_call_stmt.
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
38861 make_direct.
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.
38875
38876 2020-01-09 Martin Liska <mliska@suse.cz>
38877
38878 * params.opt: Set Optimization for
38879 param_max_speculative_devirt_maydefs.
38880
38881 2020-01-09 Martin Sebor <msebor@redhat.com>
38882
38883 PR middle-end/93200
38884 PR fortran/92956
38885 * builtins.c (compute_objsize): Avoid handling MEM_REFs of vector type.
38886
38887 2020-01-09 Martin Liska <mliska@suse.cz>
38888
38889 * auto-profile.c (auto_profile): Use opt_for_fn
38890 for a parameter.
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.
38911
38912 2020-01-09 Richard Biener <rguenther@suse.de>
38913
38914 PR middle-end/93054
38915 * gimplify.c (gimplify_expr): Deal with NOP definitions.
38916
38917 2020-01-09 Richard Biener <rguenther@suse.de>
38918
38919 PR tree-optimization/93040
38920 * gimple-ssa-store-merging.c (find_bswap_or_nop): Raise search limit.
38921
38922 2020-01-09 Georg-Johann Lay <avr@gjlay.de>
38923
38924 * common/config/avr/avr-common.c (avr_option_optimization_table)
38925 [OPT_LEVELS_1_PLUS]: Set -fsplit-wide-types-early.
38926
38927 2020-01-09 Martin Liska <mliska@suse.cz>
38928
38929 * cgraphclones.c (symbol_table::materialize_all_clones):
38930 Use cgraph_node::dump_name.
38931
38932 2020-01-09 Jakub Jelinek <jakub@redhat.com>
38933
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.
38938
38939 PR target/93141
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
38948 patterns.
38949
38950 2020-01-08 David Malcolm <dmalcolm@redhat.com>
38951
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.
38957
38958 2020-01-08 David Malcolm <dmalcolm@redhat.com>
38959
38960 * sbitmap.h (auto_sbitmap): Add operator const_sbitmap.
38961
38962 2020-01-08 Jim Wilson <jimw@sifive.com>
38963
38964 * config/riscv/riscv.c (riscv_legitimize_tls_address): Ifdef out
38965 use of TLS_MODEL_LOCAL_EXEC when not pic.
38966
38967 2020-01-08 David Malcolm <dmalcolm@redhat.com>
38968
38969 * hash-map-tests.c (selftest::test_map_of_strings_to_int): Fix
38970 memory leak.
38971
38972 2020-01-08 Jakub Jelinek <jakub@redhat.com>
38973
38974 PR target/93187
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.
38978
38979 PR target/93174
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].
38984
38985 2020-01-08 Martin Liska <mliska@suse.cz>
38986
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.
39029
39030 2020-01-08 Richard Biener <rguenther@suse.de>
39031
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.
39038
39039 2020-01-08 Georg-Johann Lay <avr@gjlay.de>
39040
39041 PR target/93182
39042 * doc/invoke.texi (AVR Options) <-nodevicespecs>: Document.
39043
39044 2019-01-08 Richard Biener <rguenther@suse.de>
39045
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.
39055
39056 2020-01-08 Martin Liska <mliska@suse.cz>
39057
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.
39061
39062 2020-01-08 Martin Liska <mliska@suse.cz>
39063
39064 * cgraph.c (cgraph_node::dump): Use systematically
39065 dump_asm_name.
39066
39067 2020-01-08 Georg-Johann Lay <avr@gjlay.de>
39068
39069 Add -nodevicespecs option for avr.
39070
39071 PR target/93182
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.
39076
39077 2020-01-08 Georg-Johann Lay <avr@gjlay.de>
39078
39079 Implement 64-bit double functions for avr.
39080
39081 PR target/92055
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.
39092
39093 2020-01-08 Richard Earnshaw <rearnsha@arm.com>
39094
39095 PR target/93188
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.
39099
39100 2020-01-08 Feng Xue <fxue@os.amperecomputing.com>
39101
39102 PR ipa/93084
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.
39107
39108 2020-01-08 Luo Xiong Hu <luoxhu@linux.ibm.com>
39109
39110 * ipa-inline.c (caller_growth_limits): Restore the AND.
39111
39112 2020-01-07 Andrew Stubbs <ams@codesourcery.com>
39113
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
39134 this.
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.
39137
39138 2020-01-07 Andrew Stubbs <ams@codesourcery.com>
39139
39140 * config/gcn/constraints.md (DA): Update description and match.
39141 (DB): Likewise.
39142 (Db): New constraint.
39143 * config/gcn/gcn-protos.h (gcn_inline_constant64_p): Add second
39144 parameter.
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.
39163
39164 2020-01-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
39165
39166 * doc/sourcebuild.texi (arm_little_endian, arm_nothumb): Documented
39167 existing target checks.
39168
39169 2020-01-07 Richard Biener <rguenther@suse.de>
39170
39171 * doc/install.texi: Bump minimal supported MPC version.
39172
39173 2020-01-07 Richard Sandiford <richard.sandiford@arm.com>
39174
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.
39182
39183 2020-01-07 Richard Sandiford <richard.sandiford@arm.com>
39184
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.
39206
39207 2020-01-07 Jakub Jelinek <jakub@redhat.com>
39208
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.
39212
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.
39216
39217 2020-01-07 Martin Liska <mliska@suse.cz>
39218
39219 * params.opt: Add Optimization for various parameters.
39220
39221 2020-01-07 Martin Liska <mliska@suse.cz>
39222
39223 PR ipa/83411
39224 * doc/extend.texi: Explain cloning for target_clone
39225 attribute.
39226
39227 2020-01-07 Martin Liska <mliska@suse.cz>
39228
39229 PR tree-optimization/92860
39230 * common.opt: Make in Optimization option
39231 as it is affected by -O0, which is an Optimization
39232 option.
39233 * tree-inline.c (tree_inlinable_function_p):
39234 Use opt_for_fn for warn_inline.
39235 (expand_call_inline): Likewise.
39236
39237 2020-01-07 Martin Liska <mliska@suse.cz>
39238
39239 PR tree-optimization/92860
39240 * common.opt: Make flag_ree as optimization
39241 attribute.
39242
39243 2020-01-07 Martin Liska <mliska@suse.cz>
39244
39245 PR optimization/92860
39246 * params.opt: Mark param_min_crossjump_insns with Optimization
39247 keyword.
39248
39249 2020-01-07 Luo Xiong Hu <luoxhu@linux.ibm.com>
39250
39251 * ipa-inline-analysis.c (estimate_growth): Fix typo.
39252 * ipa-inline.c (caller_growth_limits): Use OR instead of AND.
39253
39254 2020-01-06 Michael Meissner <meissner@linux.ibm.com>
39255
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.
39260
39261 * config/rs6000/constraints.md (Q constraint): Update
39262 documentation.
39263 * doc/md.texi (RS/6000 constraints): Update 'Q' cosntraint
39264 documentation.
39265
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
39269 memory.
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.
39274
39275 * config/rs6000/rs6000.c (rs6000_adjust_vec_address): Add support
39276 for the offset being 34-bits when -mcpu=future is used.
39277
39278 2020-01-06 John David Anglin <danglin@gcc.gnu.org>
39279
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.
39284
39285 2020-01-06 Richard Sandiford <richard.sandiford@arm.com>
39286
39287 * tree-vect-slp.c (vect_build_slp_tree_1): Require all shifts
39288 in an IFN_DIV_POW2 node to be equal.
39289
39290 2020-01-06 Richard Sandiford <richard.sandiford@arm.com>
39291
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.
39297
39298 2020-01-06 Andrew Stubbs <ams@codesourcery.com>
39299
39300 * config/gcn/gcn-valu.md (subv64di3): Use separate alternatives for
39301 '0' matching inputs.
39302 (subv64di3_exec): Likewise.
39303
39304 2020-01-06 Bryan Stenson <bryan@siliconvortex.com>
39305
39306 * config/mips/mips.c (vr4130_align_insns): Fix typo.
39307 * doc/md.texi (movstr): Likewise.
39308
39309 2020-01-06 Andrew Stubbs <ams@codesourcery.com>
39310
39311 * config/gcn/gcn-valu.md (vec_extract<mode><scalar_mode>): Add early
39312 clobber.
39313
39314 2020-01-06 Richard Sandiford <richard.sandiford@arm.com>
39315
39316 * config/aarch64/t-aarch64 ($(srcdir)/config/aarch64/aarch64-tune.md):
39317 Depend on...
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.
39321
39322 2020-01-06 Richard Sandiford <richard.sandiford@arm.com>
39323
39324 * config/aarch64/aarch64-sve.md (@aarch64_sel_dup<mode>): Use Upl
39325 rather than Upa for CPY /M.
39326
39327 2020-01-06 Andrew Stubbs <ams@codesourcery.com>
39328
39329 * config/gcn/gcn.c (gcn_inline_constant_p): Allow 64 as an inline
39330 immediate.
39331
39332 2020-01-06 Martin Liska <mliska@suse.cz>
39333
39334 PR tree-optimization/92860
39335 * params.opt: Mark param_max_combine_insns with Optimization
39336 keyword.
39337
39338 2020-01-05 Jakub Jelinek <jakub@redhat.com>
39339
39340 PR target/93141
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
39352 patterns.
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.
39357
39358 2020-01-03 Konstantin Kharlamov <Hi-Angel@yandex.ru>
39359
39360 * gdbinit.in (pr, prl, pt, pct, pgg, pgq, pgs, pge, pmz, pdd, pbs, pbm):
39361 Use "call" instead of "set".
39362
39363 2020-01-03 Martin Jambor <mjambor@suse.cz>
39364
39365 PR ipa/92917
39366 * ipa-cp.c (print_all_lattices): Skip functions without info.
39367
39368 2020-01-03 Jakub Jelinek <jakub@redhat.com>
39369
39370 PR target/93089
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.
39375
39376 PR target/93089
39377 * config/i386/i386.opt (x_prefer_vector_width_type): Remove TargetSave
39378 entry.
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.
39389
39390 PR target/93110
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.
39394
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
39398 to first uses.
39399
39400 2020-01-02 Dennis Zhang <dennis.zhang@arm.com>
39401
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.
39418
39419 2020-01-02 Jakub Jelinek <jakub@redhat.com>
39420
39421 PR ipa/93087
39422 * predict.c (compute_function_frequency): Don't call
39423 warn_function_cold on functions that already have cold attribute.
39424
39425 2020-01-01 John David Anglin <danglin@gcc.gnu.org>
39426
39427 PR target/67834
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.
39431
39432 PR target/93111
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
39436 cmpib patterns.
39437 * config/pa/predicates.md (cmpib_comparison_operator): Remove.
39438
39439 2020-01-01 Jakub Jelinek <jakub@redhat.com>
39440
39441 Update copyright years.
39442
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.
39455
39456 2020-01-01 Jan Hubicka <hubicka@ucw.cz>
39457
39458 * ipa.c (walk_polymorphic_call_targets): Fix updating of overall
39459 summary.
39460
39461 2020-01-01 Jakub Jelinek <jakub@redhat.com>
39462
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.
39469 \f
39470 Copyright (C) 2020 Free Software Foundation, Inc.
39471
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.